diff --git a/build.json b/build.json
index 499d594..6069394 100644
--- a/build.json
+++ b/build.json
@@ -3,14 +3,22 @@
 		"lib/js/core.min.js": [
 			"lib/js/wn/class.js",
 			"lib/js/wn/provide.js",
-			"lib/js/wn/xmlhttp.js",
 			"lib/js/wn/versions.js",
 			"lib/js/wn/assets.js",
 			"lib/js/wn/require.js",
 			"lib/js/wn/dom.js",
-			"lib/js/wn/page.js",
+			"lib/js/wn/model.js",
+			"lib/js/wn/misc/tools.js",
 			"lib/js/wn/misc/user.js",
 			"lib/js/lib/json2.js",
+			"lib/js/wn/router.js",
+			"lib/js/wn/ui/listing.js",
+			"lib/js/wn/views/container.js",
+			"lib/js/wn/views/doclistview.js",
+			"lib/js/wn/views/pageview.js",
+			"lib/js/wn/views/formview.js",
+			"lib/js/wn/views/reportview.js",
+			"lib/js/wn/request.js",
 			"lib/js/core.js"
 		]
 	},
@@ -44,6 +52,8 @@
 			"lib/css/bootstrap/navbar.css",
 			"lib/css/bootstrap/dropdown.css",
 			"lib/css/bootstrap/tooltip.css",
+			"lib/css/ui/fonts.css",
+			"lib/css/ui/list.css",
 			"erpnext/startup/startup.css",
 			"erpnext/website/css/website.css"	
 		]
@@ -57,10 +67,12 @@
 			"lib/css/legacy/grid.css",
 			"lib/css/legacy/listing.css",
 			"lib/css/legacy/report.css",
-			"lib/css/legacy/autosuggest.css",
 			"lib/css/legacy/dialog.css",
 			"lib/css/legacy/tabs.css",
 			"lib/css/legacy/sidebar.css",
+			"lib/css/Aristo/aristo.selected.css",
+			"lib/css/ui/list.css",
+			"lib/css/ui/fonts.css",
 			"lib/css/bootstrap/headings.css",
 			"lib/css/bootstrap/buttons.css",
 			"lib/css/bootstrap/navbar.css",
@@ -68,7 +80,8 @@
 			"lib/css/bootstrap/tooltip.css",
 			"lib/css/bootstrap/label.css",
 			"lib/css/bootstrap/icons.css",
-			"erpnext/startup/startup.css"							
+			"lib/css/bootstrap/popover.css",
+			"erpnext/startup/startup.css"
 		]
 	},
 
@@ -87,15 +100,13 @@
 			"lib/js/legacy/utils/shortcut.js",
 			"lib/js/legacy/widgets/form/fields.js",
 			"lib/js/wn/ui/dialog.js",
+			"lib/js/wn/ui/button.js",
 			"lib/js/legacy/widgets/dialog.js",
 			"lib/js/wn/ui/listing.js",
 			"lib/js/legacy/widgets/layout.js",
 			"lib/js/legacy/webpage/page_header.js",
-			"lib/js/legacy/widgets/select.js",
-			"lib/js/legacy/webpage/history.js",
 			"lib/js/legacy/webpage/search.js",
 			"lib/js/legacy/webpage/spinner.js",
-			"lib/js/legacy/webpage/freeze_page.js",
 			"lib/js/legacy/webpage/error_console.js",
 			"lib/js/legacy/webpage/loaders.js",
 			"lib/js/legacy/webpage/uploader.js",
@@ -104,7 +115,6 @@
 			"lib/js/legacy/wn/widgets/footer.js",
 			"lib/js/legacy/model/local_data.js",
 			"lib/js/legacy/model/doclist.js",
-			"lib/js/legacy/webpage/body.js",
 			"lib/js/legacy/app.js",
 			"js/app.js",
 			"erpnext/startup/startup.js",
@@ -115,8 +125,10 @@
 	{
 		"js/all-app.js": [
 			"lib/js/lib/history/history.min.js:concat",
-			"lib/js/legacy/jquery/jquery-ui.min.js:concat",
-			"lib/js/legacy/tiny_mce_33/jquery.tinymce.js:concat",
+			"lib/js/lib/jquery/jquery.ui.core.js:concat",
+			"lib/js/lib/jquery/jquery.ui.datepicker.js:concat",
+			"lib/js/lib/jquery/jquery.ui.autocomplete.js:concat",
+			"lib/js/lib/tiny_mce_33/jquery.tinymce.js:concat",
 			"lib/js/lib/bootstrap.min.js:concat",
 			"lib/js/lib/sprintf.js",
 			"lib/js/core.min.js:concat",
@@ -130,19 +142,15 @@
 			"lib/js/legacy/utils/printElement.js",
 			"lib/js/legacy/widgets/form/fields.js",
 			"lib/js/wn/ui/dialog.js",
+			"lib/js/wn/ui/button.js",
 			"lib/js/legacy/widgets/dialog.js",
-			"lib/js/legacy/widgets/listing.js",
-			"lib/js/wn/ui/listing.js",
 			"lib/js/legacy/widgets/layout.js",
 			"lib/js/legacy/widgets/tabbedpage.js",
 			"lib/js/legacy/webpage/page_header.js",
-			"lib/js/legacy/widgets/select.js",
 			"lib/js/legacy/widgets/tags.js",
 			"lib/js/legacy/widgets/export_query.js",
-			"lib/js/legacy/webpage/history.js",
 			"lib/js/legacy/webpage/search.js",
 			"lib/js/legacy/webpage/spinner.js",
-			"lib/js/legacy/webpage/freeze_page.js",
 			"lib/js/legacy/webpage/error_console.js",
 			"lib/js/legacy/webpage/loaders.js",
 			"lib/js/legacy/webpage/uploader.js",
@@ -153,9 +161,9 @@
 			"lib/js/legacy/model/local_data.js",
 			"lib/js/legacy/model/doclist.js",
 			"lib/js/wn/ui/toolbar.min.js:concat",
-			"lib/js/legacy/webpage/body.js",
+			"lib/js/wn/views/breadcrumbs.js",
 			"lib/js/legacy/widgets/form/fields.js",
-			"lib/js/legacy/widgets/form/form_container.js",
+			"lib/js/legacy/widgets/form/form_dialog.js",
 			"lib/js/legacy/widgets/form/form_header.js",
 			"lib/js/legacy/widgets/form/form.js",
 			"lib/js/legacy/widgets/form/form_fields.js",
diff --git a/css/all-app.css b/css/all-app.css
index 0dea8b7..4ed2d57 100644
--- a/css/all-app.css
+++ b/css/all-app.css
@@ -1,7 +1,8 @@
 
 /*
  *	lib/css/legacy/body.css
- */html { 
+ */
+html { 
 	margin: 0px;
 	padding: 0px;
 }
@@ -10,7 +11,7 @@
 	margin: 0px;
 	padding: 0px;
 	font-family: Arial, Helvetica, Sans;
-	font-size: 12px;
+	font-size: 14px;
 	color: #000;
 	background-color: #e2e2e2;
 }
@@ -25,19 +26,22 @@
 }
 
 select, input, textarea { 
-	border: 1px solid #AAA; 
+	border: 1px solid #ccc; 
 	-moz-border-radius: 4px;
 	-webkit-border-radius: 4px;
-	font-size: 13px;
+	font-size: inherit;
 	padding: 4px;
-	color: #222;
+	color: #444;
+	-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+	-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+	box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 }
 
 textarea { 
 	font-family: inherit; 
 	height: 120px; 
 	width: 90%; 
-	font-size: 12px; 
+	font-size: inherit; 
 	white-space: normal;
 }
 
@@ -100,8 +104,16 @@
 
 div.comment { color: #444; }
 
+.small {
+	font-size: 11px;
+}
+
+.help {
+	margin: 3px 0px;
+	color: #888;
+}
+
 div#body_div {
-	position: relative;
 	display: none;
 	padding-right: 7px;
 	width: 900px;
@@ -109,6 +121,17 @@
 	margin-top: 56px;
 }
 
+.content {
+	width: 900px;
+}
+
+.background-fade-in {
+	-webkit-transition: background 1s ease-in; /* property duration timing-function delay */
+    -moz-transition: background 1s ease-in;
+    -o-transition: background 1s ease-in;
+    transition: background 1s ease-in;
+}
+
 footer {
 	width: 900px;
 	margin: auto;
@@ -118,12 +141,23 @@
 	margin: auto;
 }
 
+@media (max-width: 1200px) {
+	div#body_div, header .container, .content, #opened-page-selector, footer {
+		width: 900px;
+	}
+}
+
+@media (min-width: 1200px) {
+	div#body_div, header .container, .content, #opened-page-selector, footer {
+		width: 1100px;
+	}
+}
+
 div.no_script {
 	display: none;
 }
 
 div.loading_div {
-	position: absolute;
 	background-color: #FFFFCC;
 	z-index: 1999;
 	right: 5px;
@@ -131,7 +165,6 @@
 	display: none;
 	text-align: center;
 	padding: 2px;
-	font-size: 12px;
 	border: 1px solid #FF4;
 }
 
@@ -156,27 +189,17 @@
 	-moz-border-radius: 5px;
 	border-radius: 5px;	
 }
-.gradient {
-	background: #ededed; /* Old browsers */
-	background: -moz-linear-gradient(top, #ededed 0%, #d1d1d1 47%, #b7b7b7 100%); /* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(47%,#d1d1d1), color-stop(100%,#b7b7b7)); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* Opera11.10+ */
-	background: -ms-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* IE10+ */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#b7b7b7',GradientType=0 ); /* IE6-9 */
-	background: linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* W3C */	
-}
 
 .layout_wrapper, .layout-wrapper {
-	-moz-box-shadow: 1px 1px 8px #555;
-	-webkit-box-shadow: 1px 1px 8px #555;
-	box-shadow: 1px 1px 8px #555;
+	-moz-box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
+	-webkit-box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
+	box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
 	background-color: #fff;
 	padding: 15px;
 }
 
 .layout-wrapper-background {
-	background-color: #f2f2f2 !important;
+	background-color: #fafafa !important;
 	padding: 0px;
 }
 
@@ -185,7 +208,7 @@
 	float: left;
 	padding: 15px;
 	background-color: #FFF;
-	min-height: 450px;
+	min-height: 600px;
 	-moz-box-shadow:    7px 0px 6px -2px #ddd;
 	-webkit-box-shadow: 7px 0px 6px -2px #ddd;
 	box-shadow:         7px 0px 6px -2px #ddd;
@@ -194,10 +217,10 @@
 .layout-side-section {
 	width: 22%;
 	/*float: right;*/
-	color: #606060;
+	color: #606060; 
 	overflow-x: hidden;
 	padding: 15px;
-	min-height: 450px;
+	min-height: 600px;
 }
 
 /* from bootstrap */
@@ -232,17 +255,20 @@
 
 .avatar-small {
 	display: inline-block; 
-	min-width: 29px;
+	width: 24px;
+	height: 20px;
+	vertical-align: middle;
+	overflow: hidden;
+	margin: 0px 3px;
 }
 .avatar-small img {
-	height: 24px; 
-	margin-bottom: -7px;
-	max-width: 24px;
+	width: 24px; 
 }
 
 /*
  *	lib/css/legacy/messages.css
  */
+
 /* FLOATING MESSAGE */
 
 .btn-img { cursor: pointer; }
@@ -291,9 +317,29 @@
 	text-align: center;
 	font-size: 14px;
 }
+
 /*
  *	lib/css/legacy/forms.css
- *//* FORMS */
+ */
+/* FORMS */
+
+div.form-section-head {
+	margin: 11px 0px 3px 0px;
+	border-top: 1px solid #ccc;
+	padding-top: 11px;
+}
+
+div.form-layout-row:first-child .form-section-head {
+	border-top: 0px solid #ccc !important;	
+}
+
+div.form-section-head h3 {
+	line-height: 20px;
+}
+
+div.form-section-head hr {
+	margin: 9px 0px;
+}
 
 
 div.frm_print_wrapper {
@@ -323,24 +369,6 @@
 }
 
 
-div.frm_tip_box {
-	margin: 0px;
-	padding: 8px;
-	background-color: #FFC;
-	display: none;
-	font-size: 11px;
-	border: 1px solid #FFB;
-}
-
-div.frm_tip_box table {
-	border-collapse: collapse;
-	vertical-align: top;
-}
-
-td.frm_tray_area {
-	width: 122px;
-}
-
 div.dialog_frm {
 	position: relative;
 	margin: 10px;
@@ -437,19 +465,14 @@
 .datainputcell { padding: 2px 0px; }
 
 
-.field_description, .help {
-	margin: 3px 0px 11px 0px;
-	color: #888;
-	font-style: italic;
+.help ol {
+	padding-left: 19px;
 }
 
 .field_description_top {
 	margin-bottom: 3px;
 }
 
-.field_label {
-	font-size:11px;
-}
 .input_area input, select, textarea { 
 	font-size: 14px;
 	padding: 2px;
@@ -500,7 +523,6 @@
 }
 div.sidebar-comment-message {
 	margin-top: 8px;
-	font-size: 11px;
 	color: #777;
 }
 
@@ -511,13 +533,14 @@
 	color: #444;
 }
 div.sidebar-comment-info {
-	font-size: 10px;
 	color: #777;
 }
+
 /*
  *	lib/css/legacy/grid.css
  */
 
+
 /* Grid */
 
 
@@ -638,19 +661,11 @@
 }
 
 .gridDivSelected option { border: 0px; }
+
 /*
  *	lib/css/legacy/listing.css
- *//* listing 2.0 */
+ */
 
-div.listing-more {
-	margin: 7px 0px 17px 0px;
-	text-align: center;
-	display: none;
-}
-
-div.listing-toolbar {
-	margin: 7px 0px;
-}
 
 /* SRS */
 
@@ -694,12 +709,10 @@
 	vertical-align: middle;
 }
 
-
-
-
 /*
  *	lib/css/legacy/report.css
  */
+
 /* Reports */
 
 div.report_grid_area {
@@ -878,103 +891,11 @@
 	width: 33%;
 	padding: 2px;
 }
-/*
- *	lib/css/legacy/autosuggest.css
- *//* 
-================================================
-autosuggest, inquisitor style
-================================================
-*/
-
-div.autosuggest
-{
-	position: absolute; 
-	margin-top: 3px; 
-	border: 1px solid #222;
-}
-
-div.autosuggest ul
-{
-	list-style: none;
-	margin: 0px;
-	padding: 2px;
-	overflow: hidden;
-	background-color: #FFF;
-}
-
-div.autosuggest ul li
-{
-	color: #444;
-	padding: 0;
-	margin: 0;
-	text-align: left;
-}
-
-div.autosuggest ul li a
-{
-	color: #444;
-	display: block;
-	text-decoration: none;
-	position: relative;
-	padding: 0;
-	width: 100%;
-}
-div.autosuggest ul li a:hover
-{
-
-}
-div.autosuggest ul li.as_highlight a:hover
-{
-	background-color: #45A;
-	color: #FFF;
-}
-
-div.autosuggest ul li a span
-{
-	display: block;
-	padding: 3px 6px;
-	color: #444;
-	border-bottom:1px solid #DDD;
-}
-
-div.autosuggest ul li a span small
-{
-	display: block;
-	font-weight: normal;
-	color: #444;
-}
-
-div.autosuggest ul li.as_highlight a span small
-{
-	color: #FFF;
-}
-
-div.autosuggest ul li.as_highlight a span {
-	color: #FFF;	
-}
-
-div.autosuggest ul li.as_highlight a
-{
-	color: #FFF;
-	background-color: #45A;
-	cursor: pointer;
-}
-
-div.autosuggest ul li.as_warning
-{
-	font-weight: bold;
-	text-align: center;
-}
-
-div.autosuggest ul em
-{
-	font-style: normal;
-	font-weight: bold;
-}
 
 /*
  *	lib/css/legacy/dialog.css
- *//***** Dialogs *******/
+ */
+/***** Dialogs *******/
 
 div.dialog_wrapper {
 	position: absolute;
@@ -1052,9 +973,11 @@
 	font-size: 12px;
 }
 
+
 /*
  *	lib/css/legacy/tabs.css
  */
+
 /******* TABS ********/
 
 div.box_label_wrapper {
@@ -1108,9 +1031,11 @@
 ul.box_tabs li.box_tab_selected a {
 	color: #fff;
 }
+
 /*
  *	lib/css/legacy/sidebar.css
- */div.psidebar {
+ */
+div.psidebar {
 }
 
 div.psidebar div.head {
@@ -1126,9 +1051,8 @@
 }
 
 div.psidebar div.section-head {
-	font-size: 12px;
 	padding: 5px 11px;
-	border-bottom: 2px solid #444;
+	border-bottom: 1px solid #aaa;
 }
 
 div.psidebar div.section-body {
@@ -1140,12 +1064,694 @@
 }
 
 div.psidebar div.section-item, div.psidebar .section-link {
-	font-size: 11px;
 	color: #666;
 }
+
+/*
+ *	lib/css/Aristo/aristo.selected.css
+ */
+/*
+ * jQuery UI CSS Framework 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Arial,sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial,sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #B6B6B6; background: #ffffff; color: #4F4F4F; }
+.ui-widget-content a { color: #4F4F4F; }
+.ui-widget-header { border: 1px solid #B6B6B6; color: #4F4F4F; font-weight: bold; }
+.ui-widget-header {
+	background: #ededed url(../lib/css/Aristo/images/bg_fallback.png) 0 0 repeat-x; /* Old browsers */
+		background: -moz-linear-gradient(top, #ededed 0%, #c4c4c4 100%); /* FF3.6+ */
+		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(100%,#c4c4c4)); /* Chrome,Safari4+ */
+		background: -webkit-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Chrome10+,Safari5.1+ */
+		background: -o-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Opera11.10+ */
+		background: -ms-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* IE10+ */
+		background: linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* W3C */
+}
+.ui-widget-header a { color: #4F4F4F; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #B6B6B6; font-weight: normal; color: #4F4F4F; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+	background: #ededed url(../lib/css/Aristo/images/bg_fallback.png) 0 0 repeat-x; /* Old browsers */
+		background: -moz-linear-gradient(top, #ededed 0%, #c4c4c4 100%); /* FF3.6+ */
+		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(100%,#c4c4c4)); /* Chrome,Safari4+ */
+		background: -webkit-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Chrome10+,Safari5.1+ */
+		background: -o-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* Opera11.10+ */
+		background: -ms-linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* IE10+ */
+		background: linear-gradient(top, #ededed 0%,#c4c4c4 100%); /* W3C */
+	-webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
+	-moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
+	box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
+}
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #4F4F4F; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #9D9D9D; font-weight: normal; color: #313131; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #313131; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { 
+	outline: none;
+	color: #1c4257; border: 1px solid #7096ab;
+	background: #ededed url(../lib/css/Aristo/images/bg_fallback.png) 0 -50px repeat-x; /* Old browsers */
+		background: -moz-linear-gradient(top, #b9e0f5 0%, #92bdd6 100%); /* FF3.6+ */
+		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b9e0f5), color-stop(100%,#92bdd6)); /* Chrome,Safari4+ */
+		background: -webkit-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Chrome10+,Safari5.1+ */
+		background: -o-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* Opera11.10+ */
+		background: -ms-linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* IE10+ */
+		background: linear-gradient(top, #b9e0f5 0%,#92bdd6 100%); /* W3C */
+	-webkit-box-shadow: none;
+	-moz-box-shadow: none;
+	box-shadow: none;
+}
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #313131; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  { border: 1px solid #d2dbf4; background: #f4f8fd; color: #0d2054; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #e2d0d0; background: #fcf0f0; color: #280b0b; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(../lib/css/Aristo/images/ui-icons_222222_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(../lib/css/Aristo/images/ui-icons_222222_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(../lib/css/Aristo/images/ui-icons_222222_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(../lib/css/Aristo/images/ui-icons_454545_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../lib/css/Aristo/images/ui-icons_454545_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(../lib/css/Aristo/images/ui-icons_454545_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(../lib/css/Aristo/images/ui-icons_454545_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background: url(../lib/css/Aristo/images/icon_sprite.png) -16px 0 no-repeat !important; }
+.ui-state-highlight .ui-icon, .ui-state-error .ui-icon { margin-top: -1px; }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background: url(../lib/css/Aristo/images/icon_sprite.png) 0 0 no-repeat !important; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; }
+.ui-corner-tr { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
+.ui-corner-br { -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
+.ui-corner-top { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
+.ui-corner-right {  -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
+.ui-corner-left { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
+.ui-corner-all { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #262b33; opacity: .70;filter:Alpha(Opacity=70); }
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
+
+/*
+ * jQuery UI Autocomplete 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.ui-autocomplete {
+	position: absolute; cursor: default; z-index: 3;
+		-moz-border-radius: 0; 
+		-webkit-border-radius: 0;
+		border-radius: 0;
+			-moz-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
+			-webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
+			box-shadow: 0 1px 5px rgba(0,0,0,0.3);
+}	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+	background: #5f83b9;
+	color: #FFFFFF;
+	border-color: #466086;
+		-moz-border-radius: 0; 
+		-webkit-border-radius: 0;
+		border-radius: 0;
+}
+
+/*
+ * jQuery UI Datepicker 1.8.7
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.ui-datepicker { width: 17em; padding: 0; display: none; border-color: #DDDDDD; }
+.ui-datepicker {
+	-moz-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
+	-webkit-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
+	box-shadow: 0 4px 8px rgba(0,0,0,0.5);
+}
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.35em 0; border: none; border-bottom: 1px solid #B6B6B6; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 6px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { border: 1px none; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev span { background-position: 0px -32px !important; }
+.ui-datepicker .ui-datepicker-next span { background-position: -16px -32px !important; }
+.ui-datepicker .ui-datepicker-prev-hover span { background-position: 0px -48px !important; }
+.ui-datepicker .ui-datepicker-next-hover span { background-position: -16px -48px !important; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; background: url(../lib/css/Aristo/images/icon_sprite.png) no-repeat; }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; font-size: 12px; text-shadow: 0 1px 0 rgba(255,255,255,0.6); }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+.ui-datepicker table .ui-state-highlight { border-color: #5F83B9; }
+.ui-datepicker table .ui-state-hover { background: #5F83B9; color: #FFF; font-weight: bold; text-shadow: 0 1px 1px #234386; -webkit-box-shadow: 0 0px 0 rgba(255,255,255,0.6) inset; -moz-box-shadow: 0 0px 0 rgba(255,255,255,0.6) inset; box-shadow: 0 0px 0 rgba(255,255,255,0.6) inset; border-color: #5F83B9; }
+.ui-datepicker-calendar .ui-state-default { background: transparent; border-color: #FFF; }
+.ui-datepicker-calendar .ui-state-active { background: #5F83B9; border-color: #5F83B9; color: #FFF; font-weight: bold; text-shadow: 0 1px 1px #234386; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}
+
+
+
+/*
+ *	lib/css/ui/list.css
+ */
+.hide {
+	display: none;
+}
+
+.list-filters {
+	margin: 7px 0px;
+}
+
+.wnlist .img-load {
+	display: none;
+	float: left;
+	margin-bottom: 8px;
+}
+
+/* list-row */
+div.list-row {
+	border-bottom: 1px solid #eee;
+	padding: 5px 0px;
+}
+div.list-row:hover {
+	background-color: #eef
+}
+
+div.list-row .label {
+	margin-right: 4px;
+}
+
+div.list-row table {
+	table-layout: fixed;
+	border-collapse: collapse;
+	width: 100%;
+}
+
+div.list-row table td {
+	overflow: hidden;
+	/*padding-right: 3px;*/
+	padding: 0px 3px;
+	vertical-align: middle;
+	height: 24px;
+	max-height: 24px;
+	word-wrap: break-word;
+}
+
+div.paging-button {
+	text-align: center;
+	padding: 11px 0px;
+}
+
+div.show_filters {
+	display: none;
+}
+
+div.filter_list {
+	padding: 13px;
+}
+
+div.show_filters.well {
+	margin-top: 11px;
+	margin-bottom: 11px;
+}
+
+div.filter_list .run_btn {
+	text-align: right;
+}
+
+div.filter_list .add_filter {
+	margin: 3px 0px;
+}
+
+div.list_filter {
+	margin: 7px 0px;
+}
+
+div.list_filter input, div.list_filter select {
+	width: 130px;
+	margin-right: 7px;
+}
+
+/* bar */
+
+span.bar-outer {
+	display: inline-block;
+	margin: 0px 7px;
+	margin-top: 3px;
+	background-color: #fff;
+	border: 1px solid #aaa;
+	height: 10px;
+}
+
+span.bar-inner {
+	display: inline-block;
+	background-color: #bdf;
+	height: 100%;
+	margin-bottom: 2px;
+	float: left;
+}
+span.bar-complete {
+	background-color: #009900;
+}
+span.bar-empty {
+	background-color: #990000;
+}
+
+
+/* stats */
+
+div.stat-wrapper {
+	margin-bottom: 19px;	
+}
+
+div.stat-grid {
+	border: 2px solid #bbb;
+	background-color: white;
+	border-radius: 5px;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+	overflow: hidden;
+}
+
+div.stat-label {
+	position: relative;
+	padding: 3px;
+	text-align: center;
+}
+div.stat-label, div.stat-label a {
+	z-index: 5;
+}
+
+div.stat-item {
+	position: relative;
+	border-bottom: 1px solid #ddd;
+}
+div.stat-item:last-child {
+	border-bottom: 0px solid #ddd;	
+}
+
+div.stat-bar {
+	position: absolute;
+	left: 0px;
+	background-color: #def;
+	height: 100%;
+	z-index: 0;
+}
+
+
+
+
+
+/*
+ *	lib/css/ui/fonts.css
+ */
+@font-face {
+  font-family: 'Pontano Sans';
+  font-style: normal;
+  font-weight: 800;
+  src: url('../lib/css/fonts/pontanosans.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Droid Sans';
+  font-style: normal;
+  font-weight: normal;
+  src: local('Droid Sans'), local('DroidSans'), url('../lib/css/fonts/droidsans.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'PT Sans';
+  font-style: normal;
+  font-weight: normal;
+  src: local('PT Sans'), local('PTSans-Regular'), url('../lib/css/fonts/ptsans.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Open Sans'), local('OpenSans'), url('../lib/css/fonts/opensans.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Lato';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Lato Regular'), local('Lato-Regular'), url('../lib/css/fonts/lato.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Cabin';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Cabin Regular'), local('Cabin-Regular'), url('../lib/css/fonts/cabin.woff') format('woff');
+}
+
+
 /*
  *	lib/css/bootstrap/headings.css
- *//* heading from bootstrap */
+ */
+/* heading from bootstrap */
 
 h1,
 h2,
@@ -1206,9 +1812,12 @@
   color: #999999;
   text-transform: uppercase;
 }
+
 /*
  *	lib/css/bootstrap/buttons.css
- */.close {
+ */
+.close {
+  font-family: Helvetica, Sans;
   float: right;
   font-size: 20px;
   font-weight: bold;
@@ -1591,9 +2200,11 @@
 .btn-small .caret {
   margin-top: 4px;
 }
+
 /*
  *	lib/css/bootstrap/navbar.css
- */.nav {
+ */
+.nav {
   margin-left: 0;
   margin-bottom: 18px;
   list-style: none;
@@ -2059,9 +2670,11 @@
 	padding: 0px 20px;
 }
 
+
 /*
  *	lib/css/bootstrap/dropdown.css
- */.dropdown {
+ */
+.dropdown {
   position: relative;
 }
 .dropdown-toggle {
@@ -2161,9 +2774,11 @@
 .dropdown.open .dropdown-menu {
   display: block;
 }
+
 /*
  *	lib/css/bootstrap/tooltip.css
- */.tooltip {
+ */
+.tooltip {
   position: absolute;
   z-index: 1020;
   display: block;
@@ -2329,9 +2944,11 @@
 .popover-content p, .popover-content ul, .popover-content ol {
   margin-bottom: 0;
 }
+
 /*
  *	lib/css/bootstrap/label.css
- */.label {
+ */
+.label {
   padding: 2px 4px 3px;
   font-size: 11.049999999999999px;
   font-weight: bold;
@@ -2370,9 +2987,11 @@
 .label-info:hover {
   background-color: #2d6987;
 }
+
 /*
  *	lib/css/bootstrap/icons.css
- */[class^="icon-"], [class*=" icon-"] {
+ */
+[class^="icon-"], [class*=" icon-"] {
   display: inline-block;
   width: 14px;
   height: 14px;
@@ -2749,16 +3368,114 @@
 .icon-resize-horizontal {
   background-position: -456px -118px;
 }
+
+/*
+ *	lib/css/bootstrap/popover.css
+ */
+.popover {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 1010;
+  display: none;
+  padding: 5px;
+}
+.popover.top {
+  margin-top: -5px;
+}
+.popover.right {
+  margin-left: 5px;
+}
+.popover.bottom {
+  margin-top: 5px;
+}
+.popover.left {
+  margin-left: -5px;
+}
+.popover.top .arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-top: 5px solid #000000;
+}
+.popover.right .arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-right: 5px solid #000000;
+}
+.popover.bottom .arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-bottom: 5px solid #000000;
+}
+.popover.left .arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-left: 5px solid #000000;
+}
+.popover .arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+}
+.popover-inner {
+  padding: 3px;
+  width: 280px;
+  overflow: hidden;
+  background: #000000;
+  background: rgba(0, 0, 0, 0.8);
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+}
+.popover-title {
+  padding: 9px 15px;
+  line-height: 1;
+  background-color: #f5f5f5;
+  border-bottom: 1px solid #eee;
+  -webkit-border-radius: 3px 3px 0 0;
+  -moz-border-radius: 3px 3px 0 0;
+  border-radius: 3px 3px 0 0;
+}
+.popover-content {
+  padding: 14px;
+  background-color: #ffffff;
+  -webkit-border-radius: 0 0 3px 3px;
+  -moz-border-radius: 0 0 3px 3px;
+  border-radius: 0 0 3px 3px;
+  -webkit-background-clip: padding-box;
+  -moz-background-clip: padding-box;
+  background-clip: padding-box;
+}
+.popover-content p, .popover-content ul, .popover-content ol {
+  margin-bottom: 0;
+}
+
 /*
  *	erpnext/startup/startup.css
- */h1, h2, h3, h4, h5 {
-	font-family: Tahoma, Arial, Verdana, sans-serif;
+ */
+h1, h2, h3, h4, h5 {
+	font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif;
 	font-weight: bold;
 }
 
 body {
-	font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
-	font-size: 12px;
+	font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif;
+	font-size: 13px;
 }
 
 span, div, td, input, textarea, button, select {
@@ -2766,7 +3483,11 @@
 }
 
 body {
-	background: url(../images/stripedbg.png) repeat;
+	background: url(../images/redbeech.jpg) repeat;
+}
+
+.small {
+	font-size: 11.5px;
 }
 
 .erpnext-footer {
@@ -2835,3 +3556,4 @@
 	min-width: 160px !important;
 	max-width: 260px !important;
 }
+
diff --git a/css/all-web.css b/css/all-web.css
index 36d9cda..bdd2ad5 100644
--- a/css/all-web.css
+++ b/css/all-web.css
@@ -1,7 +1,8 @@
 
 /*
  *	lib/css/legacy/body.css
- */html { 
+ */
+html { 
 	margin: 0px;
 	padding: 0px;
 }
@@ -10,7 +11,7 @@
 	margin: 0px;
 	padding: 0px;
 	font-family: Arial, Helvetica, Sans;
-	font-size: 12px;
+	font-size: 14px;
 	color: #000;
 	background-color: #e2e2e2;
 }
@@ -25,19 +26,22 @@
 }
 
 select, input, textarea { 
-	border: 1px solid #AAA; 
+	border: 1px solid #ccc; 
 	-moz-border-radius: 4px;
 	-webkit-border-radius: 4px;
-	font-size: 13px;
+	font-size: inherit;
 	padding: 4px;
-	color: #222;
+	color: #444;
+	-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+	-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+	box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 }
 
 textarea { 
 	font-family: inherit; 
 	height: 120px; 
 	width: 90%; 
-	font-size: 12px; 
+	font-size: inherit; 
 	white-space: normal;
 }
 
@@ -100,8 +104,16 @@
 
 div.comment { color: #444; }
 
+.small {
+	font-size: 11px;
+}
+
+.help {
+	margin: 3px 0px;
+	color: #888;
+}
+
 div#body_div {
-	position: relative;
 	display: none;
 	padding-right: 7px;
 	width: 900px;
@@ -109,6 +121,17 @@
 	margin-top: 56px;
 }
 
+.content {
+	width: 900px;
+}
+
+.background-fade-in {
+	-webkit-transition: background 1s ease-in; /* property duration timing-function delay */
+    -moz-transition: background 1s ease-in;
+    -o-transition: background 1s ease-in;
+    transition: background 1s ease-in;
+}
+
 footer {
 	width: 900px;
 	margin: auto;
@@ -118,12 +141,23 @@
 	margin: auto;
 }
 
+@media (max-width: 1200px) {
+	div#body_div, header .container, .content, #opened-page-selector, footer {
+		width: 900px;
+	}
+}
+
+@media (min-width: 1200px) {
+	div#body_div, header .container, .content, #opened-page-selector, footer {
+		width: 1100px;
+	}
+}
+
 div.no_script {
 	display: none;
 }
 
 div.loading_div {
-	position: absolute;
 	background-color: #FFFFCC;
 	z-index: 1999;
 	right: 5px;
@@ -131,7 +165,6 @@
 	display: none;
 	text-align: center;
 	padding: 2px;
-	font-size: 12px;
 	border: 1px solid #FF4;
 }
 
@@ -156,27 +189,17 @@
 	-moz-border-radius: 5px;
 	border-radius: 5px;	
 }
-.gradient {
-	background: #ededed; /* Old browsers */
-	background: -moz-linear-gradient(top, #ededed 0%, #d1d1d1 47%, #b7b7b7 100%); /* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(47%,#d1d1d1), color-stop(100%,#b7b7b7)); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* Opera11.10+ */
-	background: -ms-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* IE10+ */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#b7b7b7',GradientType=0 ); /* IE6-9 */
-	background: linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* W3C */	
-}
 
 .layout_wrapper, .layout-wrapper {
-	-moz-box-shadow: 1px 1px 8px #555;
-	-webkit-box-shadow: 1px 1px 8px #555;
-	box-shadow: 1px 1px 8px #555;
+	-moz-box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
+	-webkit-box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
+	box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
 	background-color: #fff;
 	padding: 15px;
 }
 
 .layout-wrapper-background {
-	background-color: #f2f2f2 !important;
+	background-color: #fafafa !important;
 	padding: 0px;
 }
 
@@ -185,7 +208,7 @@
 	float: left;
 	padding: 15px;
 	background-color: #FFF;
-	min-height: 450px;
+	min-height: 600px;
 	-moz-box-shadow:    7px 0px 6px -2px #ddd;
 	-webkit-box-shadow: 7px 0px 6px -2px #ddd;
 	box-shadow:         7px 0px 6px -2px #ddd;
@@ -194,10 +217,10 @@
 .layout-side-section {
 	width: 22%;
 	/*float: right;*/
-	color: #606060;
+	color: #606060; 
 	overflow-x: hidden;
 	padding: 15px;
-	min-height: 450px;
+	min-height: 600px;
 }
 
 /* from bootstrap */
@@ -232,17 +255,20 @@
 
 .avatar-small {
 	display: inline-block; 
-	min-width: 29px;
+	width: 24px;
+	height: 20px;
+	vertical-align: middle;
+	overflow: hidden;
+	margin: 0px 3px;
 }
 .avatar-small img {
-	height: 24px; 
-	margin-bottom: -7px;
-	max-width: 24px;
+	width: 24px; 
 }
 
 /*
  *	lib/css/legacy/messages.css
  */
+
 /* FLOATING MESSAGE */
 
 .btn-img { cursor: pointer; }
@@ -291,9 +317,11 @@
 	text-align: center;
 	font-size: 14px;
 }
+
 /*
  *	lib/css/legacy/dialog.css
- *//***** Dialogs *******/
+ */
+/***** Dialogs *******/
 
 div.dialog_wrapper {
 	position: absolute;
@@ -371,9 +399,11 @@
 	font-size: 12px;
 }
 
+
 /*
  *	lib/css/bootstrap/headings.css
- *//* heading from bootstrap */
+ */
+/* heading from bootstrap */
 
 h1,
 h2,
@@ -434,9 +464,12 @@
   color: #999999;
   text-transform: uppercase;
 }
+
 /*
  *	lib/css/bootstrap/buttons.css
- */.close {
+ */
+.close {
+  font-family: Helvetica, Sans;
   float: right;
   font-size: 20px;
   font-weight: bold;
@@ -819,9 +852,11 @@
 .btn-small .caret {
   margin-top: 4px;
 }
+
 /*
  *	lib/css/bootstrap/navbar.css
- */.nav {
+ */
+.nav {
   margin-left: 0;
   margin-bottom: 18px;
   list-style: none;
@@ -1287,9 +1322,11 @@
 	padding: 0px 20px;
 }
 
+
 /*
  *	lib/css/bootstrap/dropdown.css
- */.dropdown {
+ */
+.dropdown {
   position: relative;
 }
 .dropdown-toggle {
@@ -1389,9 +1426,11 @@
 .dropdown.open .dropdown-menu {
   display: block;
 }
+
 /*
  *	lib/css/bootstrap/tooltip.css
- */.tooltip {
+ */
+.tooltip {
   position: absolute;
   z-index: 1020;
   display: block;
@@ -1557,16 +1596,215 @@
 .popover-content p, .popover-content ul, .popover-content ol {
   margin-bottom: 0;
 }
+
+/*
+ *	lib/css/ui/fonts.css
+ */
+@font-face {
+  font-family: 'Pontano Sans';
+  font-style: normal;
+  font-weight: 800;
+  src: url('../lib/css/fonts/pontanosans.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Droid Sans';
+  font-style: normal;
+  font-weight: normal;
+  src: local('Droid Sans'), local('DroidSans'), url('../lib/css/fonts/droidsans.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'PT Sans';
+  font-style: normal;
+  font-weight: normal;
+  src: local('PT Sans'), local('PTSans-Regular'), url('../lib/css/fonts/ptsans.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Open Sans'), local('OpenSans'), url('../lib/css/fonts/opensans.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Lato';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Lato Regular'), local('Lato-Regular'), url('../lib/css/fonts/lato.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Cabin';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Cabin Regular'), local('Cabin-Regular'), url('../lib/css/fonts/cabin.woff') format('woff');
+}
+
+
+/*
+ *	lib/css/ui/list.css
+ */
+.hide {
+	display: none;
+}
+
+.list-filters {
+	margin: 7px 0px;
+}
+
+.wnlist .img-load {
+	display: none;
+	float: left;
+	margin-bottom: 8px;
+}
+
+/* list-row */
+div.list-row {
+	border-bottom: 1px solid #eee;
+	padding: 5px 0px;
+}
+div.list-row:hover {
+	background-color: #eef
+}
+
+div.list-row .label {
+	margin-right: 4px;
+}
+
+div.list-row table {
+	table-layout: fixed;
+	border-collapse: collapse;
+	width: 100%;
+}
+
+div.list-row table td {
+	overflow: hidden;
+	/*padding-right: 3px;*/
+	padding: 0px 3px;
+	vertical-align: middle;
+	height: 24px;
+	max-height: 24px;
+	word-wrap: break-word;
+}
+
+div.paging-button {
+	text-align: center;
+	padding: 11px 0px;
+}
+
+div.show_filters {
+	display: none;
+}
+
+div.filter_list {
+	padding: 13px;
+}
+
+div.show_filters.well {
+	margin-top: 11px;
+	margin-bottom: 11px;
+}
+
+div.filter_list .run_btn {
+	text-align: right;
+}
+
+div.filter_list .add_filter {
+	margin: 3px 0px;
+}
+
+div.list_filter {
+	margin: 7px 0px;
+}
+
+div.list_filter input, div.list_filter select {
+	width: 130px;
+	margin-right: 7px;
+}
+
+/* bar */
+
+span.bar-outer {
+	display: inline-block;
+	margin: 0px 7px;
+	margin-top: 3px;
+	background-color: #fff;
+	border: 1px solid #aaa;
+	height: 10px;
+}
+
+span.bar-inner {
+	display: inline-block;
+	background-color: #bdf;
+	height: 100%;
+	margin-bottom: 2px;
+	float: left;
+}
+span.bar-complete {
+	background-color: #009900;
+}
+span.bar-empty {
+	background-color: #990000;
+}
+
+
+/* stats */
+
+div.stat-wrapper {
+	margin-bottom: 19px;	
+}
+
+div.stat-grid {
+	border: 2px solid #bbb;
+	background-color: white;
+	border-radius: 5px;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+	overflow: hidden;
+}
+
+div.stat-label {
+	position: relative;
+	padding: 3px;
+	text-align: center;
+}
+div.stat-label, div.stat-label a {
+	z-index: 5;
+}
+
+div.stat-item {
+	position: relative;
+	border-bottom: 1px solid #ddd;
+}
+div.stat-item:last-child {
+	border-bottom: 0px solid #ddd;	
+}
+
+div.stat-bar {
+	position: absolute;
+	left: 0px;
+	background-color: #def;
+	height: 100%;
+	z-index: 0;
+}
+
+
+
+
+
 /*
  *	erpnext/startup/startup.css
- */h1, h2, h3, h4, h5 {
-	font-family: Tahoma, Arial, Verdana, sans-serif;
+ */
+h1, h2, h3, h4, h5 {
+	font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif;
 	font-weight: bold;
 }
 
 body {
-	font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
-	font-size: 12px;
+	font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif;
+	font-size: 13px;
 }
 
 span, div, td, input, textarea, button, select {
@@ -1574,7 +1812,11 @@
 }
 
 body {
-	background: url(../images/stripedbg.png) repeat;
+	background: url(../images/redbeech.jpg) repeat;
+}
+
+.small {
+	font-size: 11.5px;
 }
 
 .erpnext-footer {
@@ -1644,9 +1886,11 @@
 	max-width: 260px !important;
 }
 
+
 /*
  *	erpnext/website/css/website.css
- */.layout_wrapper {
+ */
+.layout_wrapper {
 	padding: 20px;
 }
 
@@ -1662,6 +1906,10 @@
 	margin-bottom: 7px;
 }
 
+p, li {
+	line-height: 1.6em;
+}
+
 pre {
     background-color: #F8F8F8;
     border: 1px solid #CCCCCC;
@@ -1757,4 +2005,4 @@
 
 .web-footer-menu ul li:last-child {
 	border-right: 0px solid #777 !important;
-}
\ No newline at end of file
+}
diff --git a/css/style-app.css b/css/style-app.css
deleted file mode 100644
index f5447cf..0000000
--- a/css/style-app.css
+++ /dev/null
@@ -1,1850 +0,0 @@
-
-/*
- *	lib/css/legacy/body.css
- */html { 
-	margin: 0px;
-	padding: 0px;
-}
-
-body {	
-	margin: 0px;
-	padding: 0px;
-	font-family: Arial, Helvetica, Sans;
-	font-size: 12px;
-	color: #000;
-}
-
-/* heading from bootstrap */
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  margin: 0;
-  font-weight: bold;
-  color: #333333;
-  text-rendering: optimizelegibility;
-  margin-bottom: 0.3em;
-}
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small {
-  font-weight: normal;
-  color: #999999;
-}
-h1 {
-  font-size: 30px;
-  line-height: 36px;
-}
-h1 small {
-  font-size: 18px;
-}
-h2 {
-  font-size: 24px;
-  line-height: 36px;
-}
-h2 small {
-  font-size: 18px;
-}
-h3 {
-  line-height: 27px;
-  font-size: 18px;
-}
-h3 small {
-  font-size: 14px;
-}
-h4, h5, h6 {
-  line-height: 18px;
-}
-h4 {
-  font-size: 14px;
-}
-h4 small {
-  font-size: 12px;
-}
-h5 {
-  font-size: 12px;
-}
-h6 {
-  font-size: 11px;
-  color: #999999;
-  text-transform: uppercase;
-}
-
-pre { margin: 0px; padding: 0px; }
-
-button { margin: 2px; margin-left: 0px; }
-
-label {
-	padding-top: 15px;
-	color: #404040;
-}
-
-select, input, textarea { 
-	border: 1px solid #AAA; 
-	-moz-border-radius: 4px;
-	-webkit-border-radius: 4px;
-	font-size: 13px;
-	padding: 4px;
-	color: #222;
-}
-
-textarea { 
-	font-family: inherit; 
-	height: 120px; 
-	width: 90%; 
-	font-size: 12px; 
-	white-space: normal;
-}
-
-table { padding: 0px; border-collapse: 'collapse'}
-
-td { 
-	padding:0px; 
-	margin: 0px; 
-	vertical-align: top; 
-}
-
-p {
-	margin: 0px 0px 9px 0px;
-	line-height: 1.5em;
-}
-
-li {
-	line-height: 1.5em;
-}
-
-a:active { outline:none; }
-
-:focus { -moz-outline-style:none; }
-
-table.simpletable { border-collapse: collapse; margin-bottom: 10px;}
-table.simpletable td {border: 1pt solid #000; vertical-align: top; padding: 2px; }
-
-div.fix_ff_cursor { overflow: auto; }
-
-/* --- Layout --- */
-
-div.comment { color: #444; }
-
-div#body_div {
-	position: relative;
-	display: none;
-	margin-top: 56px;
-	padding-right: 7px;
-}
-
-div.no_script {
-	display: none;
-}
-
-div.loading_div {
-	position: absolute;
-	background-color: #FFFFCC;
-	z-index: 1999;
-	right: 5px;
-	width: 90px;
-	display: none;
-	text-align: center;
-	padding: 2px;
-	font-size: 12px;
-	border: 1px solid #FF4;
-}
-
-
-div#head_div { background-color: #FFF; }
-
-#head_banner { background-color: #FFF; }
-
-.link_type {
-	padding:2px;
-	color: #00b;
-	text-decoration: underline;
-	cursor: pointer;
-}
-
-.link_type:hover {
-	color: #fff !important; 
-	background-color: #07b;
-	text-decoration: none;
-}
-
-div.std-footer {
-	margin: 13px 0px;
-	border-top: 1px solid #AAA;
-	padding: 13px;
-}
-
-div.std-footer-item {
-	margin: 0px 13px 13px 0px;
-}
-
-.shadow {
-	-moz-box-shadow: 0px 2px 2px #888;
-	-webkit-box-shadow: 0px 2px 2px #888;
- 	box-shadow: 0px 2px 2px #888;
-}
-
-.round {
-	-webkit-border-radius: 5px;
-	-moz-border-radius: 5px;
-	border-radius: 5px;	
-}
-.gradient {
-	background: #ededed; /* Old browsers */
-	background: -moz-linear-gradient(top, #ededed 0%, #d1d1d1 47%, #b7b7b7 100%); /* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(47%,#d1d1d1), color-stop(100%,#b7b7b7)); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* Opera11.10+ */
-	background: -ms-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* IE10+ */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#b7b7b7',GradientType=0 ); /* IE6-9 */
-	background: linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* W3C */	
-}
-
-.header-gradient {
-	background: #84827c; /* Old browsers */
-	background: -moz-linear-gradient(top, #84827c 0%, #27211c 100%); /* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#84827c), color-stop(100%,#27211c)); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #84827c 0%,#27211c 100%); /* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #84827c 0%,#27211c 100%); /* Opera11.10+ */
-	background: -ms-linear-gradient(top, #84827c 0%,#27211c 100%); /* IE10+ */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#84827c', endColorstr='#27211c',GradientType=0 ); /* IE6-9 */
-	background: linear-gradient(top, #84827c 0%,#27211c 100%); /* W3C */
-	color: #FFF;
-}
-
-.layout_wrapper {
-	padding: 15px;
-	-moz-box-shadow: 1px 1px 6px #AAA;
-	-webkit-box-shadow: 1px 1px 6px #AAA;
-	box-shadow: 1px 1px 6px #AAA;
-	background-color: #FFF;
-}
-
-/* from bootstrap */
-.container {
-  margin-left: auto;
-  margin-right: auto;
-  zoom: 1;
-}
-.container:before, .container:after {
-  display: table;
-  content: "";
-  zoom: 1;
-}
-.container:after {
-  clear: both;
-}
-
-/*
- *	lib/css/legacy/menus.css
- */
-/******** Menus - menu.js ************/
-
-ul.menu_toolbar {
-	z-index: 30;
-	padding: 0px;
-	margin: 0px;
-	margin-top: 1px;
-}
-
-ul.menu_toolbar li {
-	list-style: none;
-	margin: 0px;
-	float: left;
-}
-
-.top_menu {
-	margin: 0px;
-	padding: 4px;
-	cursor: pointer;
-	color: #FFF;
-	margin-right: 8px;
-}
-
-.top_menu_mo {
-	background-color: #000;
-
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;
-}
-
-div.menu_toolbar_dropdown {
-	position: absolute;
-	margin-top: 4px;
-	margin-left: 8px;
-	width: 140px;
-	background-color: #FFF;
-	color: #000;
-	display: none;
-	border: 2px solid #333;
-	z-index: 31;
-	overflow-y: auto;
-	overflow-x: hidden;
-}
-
-div.dd_item {
-	cursor: pointer;
-	padding: 4px;
-	background-color: #FFF;
-}
-div.dd_item_mo { background-color: #FE8; }
-/*
- *	lib/css/legacy/messages.css
- */
-/* FLOATING MESSAGE */
-
-.btn-img { cursor: pointer; }
-
-div.fetching { color: #888; text-align:right; }
-
-div.notice {
-	postion: absolute;
-	background-color: #000;
-	-moz-border-radius: 5px; -webkit-border-radius: 5px;
-	opacity: 0.6;
-	right: 0;
-	top: 0;
-	margin-top: 8px;
-	z-index: -1;
-	padding: 8px;
-}
-
-/** help **/
-
-.info-box {
-    background-color: #F8F8F8;
-    border: 1px solid #CCCCCC;
-    border-radius: 3px 3px 3px 3px;
-    line-height: 1.6em;
-    overflow: auto;
-    padding: 6px 10px;
-	margin-bottom: 9px;
-}
-
-.help_box, .help-box {
-	background-color:#FFC;
-	font-size: 13px;
-	color: #864;
-	padding: 7px;
-	margin: 11px 0px;
-	border: 1px solid #EEB;
-}
-
-.help_box_big {
-	background-color:#FFC;
-	color: #864;
-	padding: 7px;
-	margin: 7px 0px;
-	border: 1px solid #EEB;
-	text-align: center;
-	font-size: 14px;
-}
-/*
- *	lib/css/legacy/forms.css
- *//* FORMS */
-
-
-div.frm_print_wrapper {
-	background-color:#FFF;
-	border:1px solid #444;
-	padding: 40px;
-
-	box-shadow:1px 1px 8px #229;
-	-moz-box-shadow: 1px 1px 8px #229;
-	-webkit-box-shadow: 1px 1px 8px #229;
-}
-
-div.page_break {
-	margin: 24px 0px;
-	border-top: 1px dashed #888;
-}
-
-div.grid_tbarlinks {
-	border-bottom: 0px;
-	background-color: #CCC;
-	padding: 4px 4px 2px 4px;
-	width: 180px;
-	float: right;
-
-	-moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;
-	-webkit-border-top-left-radius: 5px; -webkit-border-top-right-radius: 5px;
-}
-
-
-div.frm_tip_box {
-	margin: 0px;
-	padding: 8px;
-	background-color: #FFC;
-	display: none;
-	font-size: 11px;
-	border: 1px solid #FFB;
-}
-
-div.frm_tip_box table {
-	border-collapse: collapse;
-	vertical-align: top;
-}
-
-td.frm_tray_area {
-	width: 122px;
-}
-
-div.dialog_frm {
-	position: relative;
-	margin: 10px;
-}
-
-
-
-/*------------------*/
-
-.top_cell {
-	height: 50px;
-}
-
-div.attach_area {
-	padding: 8px;
-	margin: 8px;
-	background-color: #EEE;
-}
-
-div.attach_area table {
-	width: 100%;
-}
-
-.tablabel_normal {
-	margin: 0 4px 0 0;
-	padding: 3px 5px;
-	line-height: 1.3em;
-	display: inline;
-	cursor: pointer;
-}
-
-.tablabel_selected {
-	margin: 0 4px 0 0;
-	padding: 3px 5px;
-	line-height: 1.3em;
-	font-weight: bold;
-	display: inline;
-	cursor: pointer;
-	color: #000;
-}
-
-.scrollhead_wrapper {
-	position: absolute;
-	z-index: 1;
-	height: 30px;
-}
-
-.treeimg {
-	cursor: pointer;
-	margin-right: 3px;
-}
-
-
-.sectionCell {
-	padding: 5px;
-	vertical-align: top;
-}
-
-.code_area {
-	width: 80%;
-	margin: 8px;
-	padding: 4px;
-	background-color: #F8F8F8;
-	border: 1px solid #CCC;
-	overflow-x: auto;
-}
-
-.code_text {
-	width: 100%;
-	height: 360px;
-	margin-top: 3px;
-	font-family: Courier, Fixed;
-	font-size: 12px;
-}
-
-div.time_field select{
-	display: inline;
-	margin: 2px;
-	width: 45px;
-}
-
-/* Documents */
-
-.frm_field_table {
-        width: 100%;
-        border-collapse: collapse;
-}
-
-.datalabelcell { 
-        padding: 2px 0px; 
-        width: 160px; 
-        vertical-align: top; 
-}
-.datainputcell { padding: 2px 0px; }
-
-
-.field_description, .help {
-	margin: 3px 0px 11px 0px;
-	color: #888;
-	font-style: italic;
-}
-
-.field_description_top {
-	margin-bottom: 3px;
-}
-
-.field_label {
-	font-size:11px;
-}
-.input_area input, select, textarea { 
-	font-size: 14px;
-	padding: 2px;
-}
-
-.input_area input { 
-	width: 80%; 
-	margin: 0px; 
-}
-.input_area select { 
-	width: 80%; 
-}
-.input_area textarea { 
-	width: 90%; 
-}
-
-.disp_area { 
-	width: 80%; 
-	padding: 2px 0px; 
-	font-size: 12px; 
-}
-.disp_area_no_val { 
-	height: 14px; 
-}
-
-.no_img {
-	padding: 40px;
-	width: 100px;
-	height: 20px;
-	color: #888;
-	text-align: center;
-	border: 1px solid #AAA;
-}
-
-.input-mandatory {
-	font-size: 14px !important;
-	font-weight: bold;
-}
-
-.field-to-update {
-	background-color:#FEE;
-}
-
-/* sidebar */
-
-div.sidebar-comment-wrapper input {
-	width: 50%;
-}
-div.sidebar-comment-message {
-	margin-top: 8px;
-	font-size: 11px;
-	color: #777;
-}
-
-div.sidebar-comment-text {
-	font-size: 12px;
-	font-weight: bold;
-	margin-top: 8px;
-	color: #444;
-}
-div.sidebar-comment-info {
-	font-size: 10px;
-	color: #777;
-}
-/*
- *	lib/css/legacy/grid.css
- */
-
-/* Grid */
-
-
-/* --- Simple --- */
-.grid_wrapper_simple {
-	width: 100%;
-	margin-bottom: 8px;
-	border: 1px solid #AA9;
-}
-
-.grid_head_wrapper_simple {
-	padding: 0px;
-	border-bottom: 2px solid #AAA;
-}
-
-.grid_head_wrapper_simple td {
-	border-right: 1px solid #AA9;
-}
-
-.grid_head_wrapper_simple td div {
-	padding: 2px;
-}
-
-.grid_tab_wrapper_simple {
-}
-
-.grid_cell_simple {
-	padding: 2px;
-	background-color: #fff;
-	border-right: 1px solid #AA9;
-}
-
-
-/* --- Normal --- */
-.grid_wrapper {
-	position: relative;
-	overflow: auto;
-	border: 1px solid #AAA;
-	width: 100%;
-	margin-bottom: 8px;
-	background-color: #fff;	
-}
-
-.grid_tab_wrapper {
-	position: absolute;
-	top: 40px;
-	border-bottom: 1px solid #DDD;
-}
-
-.grid_table, .grid_head_table  {
-	table-layout: fixed;
-	border-collapse: collapse;
-	/*width: 100%;*/
-}
-
-.grid_cell {
-	border-right: 1px solid #ddd;
-	padding: 0px;
-	background-color: #fff;
-}
-
-.grid_head_wrapper {
-	position: absolute;
-	z-index: 1;
-	height: 40px;
-	padding: 0px;
-	overflow: hidden;
-	/*background-color: #fff;*/
-}
-
-.grid_head_table td {
-	background-color: #EEE;
-	border-right: 1px solid #AAA;
-	border-bottom: 1px solid #AAA;
-	height: 40px;
-	padding: 0px;
-}
-
-.grid_head_table td div {
-	color: #222;
-	font-weight: bold;
-	overflow: hidden;
-	padding: 2px 0px;
-	text-align: center;	
-}
-
-.grid_selector {
-	padding: 1px;
-	border-right: 1px solid #DDD;
-	width: 20px;
-	background-color: #fff;
-}
-
-.grid_cell_div {
-	padding: 2px;
-	cursor: pointer;
-	overflow: hidden;
-	border: 2px solid #FFF;
-}
-
-.grid_cell_div_selected {
-	border: 2px solid #88f;
-}
-
-.grid_cell_div input, .grid_cell_div select, .grid_cell_div div input {
-	margin: 0px;
-	border: 0px;
-	width: 100%;
- 	margin: 0px;
- }
-
-.grid_cell_div textarea {
-	border: 3px solid #abf;
-	height:200px;
-	width: 300px;
-	z-index: 10;
-	position:absolute;
-}
-
-.gridDivSelected option { border: 0px; }
-/*
- *	lib/css/legacy/listing.css
- *//* listing 2.0 */
-
-div.listing-more {
-	margin: 7px 0px 17px 0px;
-	text-align: center;
-	display: none;
-}
-
-div.listing-toolbar {
-	margin: 7px 0px;
-}
-
-/* SRS */
-
-table.srs_result_tab {
-	border: 2px solid #AAA;
-	border-collapse: collapse;
-}
-
-/* firefox bug fix for disappering borders */
-table.srs_result_tab td, table.srs_result_tab tr, table.srs_result_tab tbody, table.srs_result_tab div {
-	position: static;
-}
-
-table.srs_result_tab td {
-	padding: 3px 2px;
-	position: static;
-}
-
-div.srs_body_area {
-}
-
-div.srs_results_area {
-}
-
-div.srs_filter_wrapper {
-	border: 1px solid #CCF;
-	
-	background-color: #EEF;
-	margin:0px 0px 8px 0px;
-
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;
-	border-radius: 5px;
-}
-
-div.srs_filter_area {
-	padding: 8px;
-}
-
-div.srs_filter_area td {
-	vertical-align: middle;
-}
-
-
-
-
-/*
- *	lib/css/legacy/report.css
- */
-/* Reports */
-
-div.report_grid_area {
-	position: relative;
-	padding: 8px;
-}
-
-
-div.report_tab { 
-	border: 1px solid #AAA; 
-	position: relative; 
-	overflow: auto; 
-}
-
-div.report_no_data {
-	padding: 8px;
-	background-color: #EEE;
-	border: 1px solid #DDD;
-	position: absolute;
-	margin-left: 40%;
-	margin-top: 50px;
-	display: none;	
-}
-
-div.report_htitle {
-	float: left;
-	padding: 2px;
-	font-size: 14px;
-	font-weight: bold;
-	margin-left: 4px;
-	color: #665;
-	/*font-weight: bold;*/
-}
-
-div.report_tbar {
-	/*background: url('../images/ui/blue-back.gif') repeat-x;	*/
-	background-color: #EEF;
-	border: 1px solid #CCF;
-	border-bottom: 0px;
-	height: 28px;
-}
-
-div.report_tbar table{
-	width: 100%;
-}
-div.report_tbar table td {
-	
-}
-div.report_tbar table td div {
-	position: relative;
-}
-div.report_tbar button, div.report_tbar select, div.report_tbar img {
-	font-size: 11px;
-	margin: 0px;
-}
-
-div.report_head_wrapper {
-	position: absolute;
-	height: 24px;
-	top: 0px;
-	z-index: 1;
-}
-
-div.report_tab_wrapper {
-	position: absolute;
-	border-bottom: 1px solid #AAA;
-	border-top: 1px solid #AAA;
-}
-
-div.report_tab_wrapper table, div.report_head_wrapper table {
-	table-layout: fixed;
-	border-collapse: collapse;
-	/*width: 100%;*/
-}
-
-div.report_tab_wrapper table td, div.report_head_wrapper table td {
-	border-left: 1px solid #AAA;
-	border-right: 1px solid #AAA;
-	border-bottom: 1px solid #AAA;
-	overflow: hidden;
-	padding: 0px;
-}
-
-div.report_tab_wrapper table td div, div.report_head_wrapper table td div {
-	padding: 3px;
-	overflow: hidden;
-}
-
-.report_head_cell {
-	background-color: #EEE;
-	border-bottom: 1px solid #AA9;
-	text-align: center;
-	font-weight: bold;
-}
-.report_head_cell div {
-	color:#222; 
-	height: 18px;
-}
-
-
-/* FINDER */
-
-div.finder_wrapper {
-}
-
-div.finder_body_area {
-	margin: 16px;
-}
-
-div.finder_body {
-	display: none;
-}
-
-div.finder_advanced_area table {
-	width: 80%;
-}
-
-div.finder_advanced_area textarea {
-	width: 80%;
-}
-
-div.finder_filter_area {
-	position: relative;
-}
-
-div.filter_head {
-	font-size: 14px;
-	margin-bottom: 2px;
-}
-div.filter_dt_head {
-	font-size: 14px;
-	font-weight: bold;
-	margin-bottom: 2px;
-}
-table.filter_tab {
-	width: 96%;
-	border-collapse: collapse;
-}
-
-table.filter_tab td {
-	width: 50%;
-}
-
-div.finder_picker_area {
-	
-}
-div.builder_field {
-	margin: 0px;
-}
-div.builder_dt_head {
-	font-size: 14px;
-	font-weight: bold;
-	margin-bottom: 2px;
-}
-
-div.builder_field table {
-	width: 90%;
-	border-collapse: collapse;
-}
-
-div.builder_label {
-	height: 20px;
-}
-
-div.builder_head {
-	font-size: 16px;
-	font-weight: bold;
-	color: #AB6;
-}
-
-table.builder_tab {
-	width: 96%;
-	border-collapse: collapse;
-}
-
-table.builder_tab td {
-	width: 33%;
-	padding: 2px;
-}
-/*
- *	lib/css/legacy/calendar.css
- *//**** CALENDAR ****/
-
-.caldiv {
-	position:absolute;
-	visibility:hidden;
-	background-color:white;
-	width: 144px;
-	z-index: 301; /* always on top(?) */
-}
-
-
-	
-div.cal_wrapper { }
-div.cal_body {
-	margin: 16px;
-	background-color: #DDD;
-	position: relative;
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;	
-}
-
-div.cal_head {
-	margin: 16px;
-	margin-bottom: 0px;
-}
-div.cal_head div {
-	font-size: 18px;
-	color: #666;
-	padding-top: 8px;
-}
-
-div.cal_view_body {
-	margin: 16px;
-}
-
-div.cal_view_body_plain {
-	margin: 16px;
-}
-
-div.cal_month_head {
-}
-
-div.cal_month_body {
-	border-top: 1px solid #888;
-}
-
-.cal_month_headtable {
-	/*table-layout:fixed;*/
-	width: 100%;
-}
-
-.cal_month_name {
-	width: 100%;
-	color: #888;
-	font-size: 14px;
-	font-weight: bold;
-	text-align: center;
-	padding: 4px;
-}
-
-.cal_month_headtable tr td{
-	font-size: 12px;
-	font-weight: bold;
-	text-align: center;
-	padding: 4px;
-}
-
-table.cal_month_table {
-	border-collapse: collapse;
-	/*table-layout:fixed;*/
-	height: 100%;
-	width: 100%;
-}
-
-table.cal_month_table td {
-	width: 14.29%;
-	height: 20%;
-	/*overflow:hidden;*/
-	padding:0px;
-}
-
-div.cal_month_date {
-	width:100%;
-	height:25%;
-	font-size: 10px;
-	overflow:hidden;
-	/*background-color: #EEF;*/
-}
-
-div.cal_month_date_holiday {
-	/*background-color: #FFF;*/
-}
-
-div.cal_month_unit {
-	width:100%;
-	height:75%;
-	overflow:hidden;
-	cursor:pointer;
-	/*background-color:#FFF;*/
-}
-	
-div.cal_vu_disabled {
-	background-color:#FFF;
-	cursor:default;
-}
-
-table.cal_day_table {
-	border-collapse: collapse;
-	width: 100%;
-}
-
-table.cal_day_table td {
-}
-
-div.cal_day_body {
-	width: 100%;
-	height: 80%;
-	overflow-y: auto;
-	overflow-x: hidden;
-	border-top: 1px solid #AAA;
-}
-
-div.cal_day_unit{
-	width:100%;
-	cursor:pointer;
-}
-
-table.cal_week_table {
-	border-collapse: collapse;
-	width: 100%;
-}
-
-table.cal_week_table td {
-	width: 12.5%;
-}
-
-div.cal_week_body {
-	width: 100%;
-	height: 80%;
-	overflow-y: auto;
-	overflow-x: hidden;
-	border-top: 1px solid #888;
-}
-
-div.cal_week_unit{
-	width: 100%;
-	cursor:pointer;
-}
-
-div.cal_event {
-	width: 100%;
-	height: 12px;
-	overflow: hidden;
-	font-size: 11px;
-	color: #00B;
-	margin-bottom: 2px;
-	text-decoration: underline;
-}
-
-div.cal_event_Public {
-	color: GREEN;
-}
-
-div.cal_event_Private {
-	color: BLUE;
-}
-
-div.cal_event_hover {
-	text-decoration: underline;
-}
-
-/*
- *	lib/css/legacy/autosuggest.css
- *//* 
-================================================
-autosuggest, inquisitor style
-================================================
-*/
-
-div.autosuggest
-{
-	position: absolute; 
-	margin-top: 3px; 
-	border: 1px solid #222;
-}
-
-div.autosuggest ul
-{
-	list-style: none;
-	margin: 0px;
-	padding: 2px;
-	overflow: hidden;
-	background-color: #FFF;
-}
-
-div.autosuggest ul li
-{
-	color: #444;
-	padding: 0;
-	margin: 0;
-	text-align: left;
-}
-
-div.autosuggest ul li a
-{
-	color: #444;
-	display: block;
-	text-decoration: none;
-	position: relative;
-	padding: 0;
-	width: 100%;
-}
-div.autosuggest ul li a:hover
-{
-
-}
-div.autosuggest ul li.as_highlight a:hover
-{
-	background-color: #45A;
-	color: #FFF;
-}
-
-div.autosuggest ul li a span
-{
-	display: block;
-	padding: 3px 6px;
-	color: #444;
-	border-bottom:1px solid #DDD;
-}
-
-div.autosuggest ul li a span small
-{
-	display: block;
-	font-weight: normal;
-	color: #444;
-}
-
-div.autosuggest ul li.as_highlight a span small
-{
-	color: #FFF;
-}
-
-div.autosuggest ul li.as_highlight a span {
-	color: #FFF;	
-}
-
-div.autosuggest ul li.as_highlight a
-{
-	color: #FFF;
-	background-color: #45A;
-	cursor: pointer;
-}
-
-div.autosuggest ul li.as_warning
-{
-	font-weight: bold;
-	text-align: center;
-}
-
-div.autosuggest ul em
-{
-	font-style: normal;
-	font-weight: bold;
-}
-
-/*
- *	lib/css/legacy/dialog.css
- *//***** Dialogs *******/
-
-div.dialog_wrapper {
-	position: absolute;
-	width: 440px;
-	display: none;
-	z-index: 90;
-	background-color: #FFF;
-	border: 3px solid #222;
-	box-shadow:1px 1px 5px #777;
-	-moz-box-shadow: 1px 1px 5px #777;
-	-webkit-box-shadow: 1px 1px 5px #777;
-	
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;	
-}
-
-div.dialog_head {
-	height: 22px;
-	padding: 4px;
-	background-color: #222;
-	color: #FFF;
-}
-
-div.dialog_body {
-	padding: 8px 4px 16px 4px;
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;	
-}
-
-div.dialog_back {
-	position: fixed;
-	display: none;
-	top: 0px;
-	left: 0px;
-	bottom: 0px;
-	right: 0px;
-	background-color: #EEE;
-	opacity: 0.6;
-	z-index: 50;
-	text-align: center;
-}
-
-div.dialog_message {
-	display: none;
-	position: absolute;
-	width: 250px;
-	font-size: 12px;
-	z-index: 91;
-	background-color:#FFF;
-	padding: 12px;
-	border: 1px solid #444;
-}
-
-div.dialog_row {
-	padding: 8px 8px 0px 8px;
-}
-
-div.dialog_row table {
-	width: 100%;
-}
-
-div.dialog_row table td {
-}
-
-div.dialog_row input[type="text"], div.dialog_row input[type="password"], div.dialog_row textarea, div.dialog_row select {
-	width: 80%;
-	font-size: 14px;
-}
-
-div.dialog_row table td textarea {
-	width: 80%;
-	height: 200px;
-	font-size: 12px;
-}
-
-/*
- *	lib/css/legacy/tabs.css
- */
-/******* TABS ********/
-
-div.box_label_wrapper {
-	border-bottom: 6px solid #777;
-}
-
-div.box_label_body {
-	height: 22px;
-}
-
-ul.box_tabs {
-	margin: 0px;
-	padding: 0px;
-	list-style: none;
-}
-
-ul.box_tabs li {
-	height: 22px;
-	float:left;
-	font-size: 12px;
-	text-decoration: underline;
-	
-	background-color: #DDD;
-	
-	margin:0;
-	margin-left: 4px;
-	padding:0 0 0 9px;
-	cursor: pointer;
-}
-
-ul.box_tabs a {
-	display:block;
-	padding:3px 15px 3px 6px;
-	text-decoration:none;
-}
-
-ul.box_tabs li.box_tab_mouseover {
-	background-color: #BBB;
-}
-
-
-ul.box_tabs li.box_tab_selected {
-/*	background:url("../images/ui/rc/tab-left-CCC.gif") no-repeat left top;
-	background-color: #ABABAB; */
-	
-	background-color: #777;
-	
-	background: -webkit-gradient(linear, left top, left bottom, from(#999), to(#777));
-	background: -moz-linear-gradient(top, #999, #777);
-		
-	color: #FFF;
-	font-weight:bold;
-	
-}
-ul.box_tabs li.box_tab_selected a {
-/*	background:url("../images/ui/rc/tab-right-CCC.gif") no-repeat right top; */
-}
-
-/*
- *	lib/css/legacy/bw-icons.css
- */
-/** general icons **/
-
-.wn-icon { background: url('lib/images/icons/icons.png'); width: 16px; height: 16px; cursor: pointer; }
-.ic-2x2_grid { background-position: 0 0;  } 
-.ic-3x3_grid { background-position: 0 -36px;  } 
-.ic-3x3_grid_2 { background-position: 0 -72px;  } 
-.ic-air_signal { background-position: 0 -108px;  } 
-.ic-align_center { background-position: 0 -144px;  } 
-.ic-align_just { background-position: 0 -180px;  } 
-.ic-align_left { background-position: 0 -216px;  } 
-.ic-align_right { background-position: 0 -252px;  } 
-.ic-app_window { background-position: 0 -288px;  } 
-.ic-arrow_bottom { background-position: 0 -324px;  } 
-.ic-arrow_bottom_left { background-position: 0 -360px;  } 
-.ic-arrow_bottom_right { background-position: 0 -396px;  } 
-.ic-arrow_l { background-position: 0 -432px;  } 
-.ic-arrow_left { background-position: 0 -468px;  } 
-.ic-arrow_r { background-position: 0 -504px;  } 
-.ic-arrow_right { background-position: 0 -540px;  } 
-.ic-arrow_top { background-position: 0 -576px;  } 
-.ic-arrow_top_left { background-position: 0 -612px;  } 
-.ic-arrow_top_right { background-position: 0 -648px;  } 
-.ic-arrow_two_head { background-position: 0 -684px;  } 
-.ic-arrow_two_head_2 { background-position: 0 -720px;  } 
-.ic-attention { background-position: 0 -756px;  } 
-.ic-battery { background-position: 0 -792px;  } 
-.ic-bell { background-position: 0 -828px;  } 
-.ic-book { background-position: 0 -864px;  } 
-.ic-bookmark_1 { background-position: 0 -900px;  } 
-.ic-bookmark_2 { background-position: 0 -936px;  } 
-.ic-box { background-position: 0 -972px;  } 
-.ic-br_down { background-position: 0 -1008px;  } 
-.ic-br_next { background-position: 0 -1044px;  } 
-.ic-br_prev { background-position: 0 -1080px;  } 
-.ic-br_up { background-position: 0 -1116px;  } 
-.ic-brackets { background-position: 0 -1152px;  } 
-.ic-browser { background-position: 0 -1188px;  } 
-.ic-brush { background-position: 0 -1224px;  } 
-.ic-bug { background-position: 0 -1260px;  } 
-.ic-burst { background-position: 0 -1296px;  } 
-.ic-calc { background-position: 0 -1332px;  } 
-.ic-calendar_1 { background-position: 0 -1368px;  } 
-.ic-calendar_2 { background-position: 0 -1404px;  } 
-.ic-cancel { background-position: 0 -1440px;  } 
-.ic-case { background-position: 0 -1476px;  } 
-.ic-cc { background-position: 0 -1512px;  } 
-.ic-cert { background-position: 0 -1548px;  } 
-.ic-chart_bar { background-position: 0 -1584px;  } 
-.ic-chart_line { background-position: 0 -1620px;  } 
-.ic-chart_line_2 { background-position: 0 -1656px;  } 
-.ic-chart_pie { background-position: 0 -1692px;  } 
-.ic-checkbox_checked { background-position: 0 -1728px;  } 
-.ic-checkbox_unchecked { background-position: 0 -1764px;  } 
-.ic-checkmark { background-position: 0 -1800px;  } 
-.ic-clip { background-position: 0 -1836px;  } 
-.ic-clipboard_copy { background-position: 0 -1872px;  } 
-.ic-clipboard_cut { background-position: 0 -1908px;  } 
-.ic-clipboard_past { background-position: 0 -1944px;  } 
-.ic-clock { background-position: -36px 0;  } 
-.ic-cloud { background-position: -36px -36px;  } 
-.ic-cloud_rain { background-position: -36px -72px;  } 
-.ic-cog { background-position: -36px -108px;  } 
-.ic-comp { background-position: -36px -144px;  } 
-.ic-compass { background-position: -36px -180px;  } 
-.ic-contact_card { background-position: -36px -216px;  } 
-.ic-cube { background-position: -36px -252px;  } 
-.ic-cur_bp { background-position: -36px -288px;  } 
-.ic-cur_dollar { background-position: -36px -324px;  } 
-.ic-cur_euro { background-position: -36px -360px;  } 
-.ic-cur_yen { background-position: -36px -396px;  } 
-.ic-cursor_H_split { background-position: -36px -432px;  } 
-.ic-cursor_V_split { background-position: -36px -468px;  } 
-.ic-cursor_arrow { background-position: -36px -504px;  } 
-.ic-cursor_drag_arrow { background-position: -36px -540px;  } 
-.ic-cursor_drag_arrow_2 { background-position: -36px -576px;  } 
-.ic-cursor_drag_hand { background-position: -36px -612px;  } 
-.ic-cursor_hand { background-position: -36px -648px;  } 
-.ic-db { background-position: -36px -684px;  } 
-.ic-delete { background-position: -36px -720px;  } 
-.ic-doc_delete { background-position: -36px -756px;  } 
-.ic-doc_edit { background-position: -36px -792px;  } 
-.ic-doc_empty { background-position: -36px -828px;  } 
-.ic-doc_export { background-position: -36px -864px;  } 
-.ic-doc_import { background-position: -36px -900px;  } 
-.ic-doc_lines { background-position: -36px -936px;  } 
-.ic-doc_lines_stright { background-position: -36px -972px;  } 
-.ic-doc_minus { background-position: -36px -1008px;  } 
-.ic-doc_new { background-position: -36px -1044px;  } 
-.ic-doc_plus { background-position: -36px -1080px;  } 
-.ic-document { background-position: -36px -1116px;  } 
-.ic-download { background-position: -36px -1152px;  } 
-.ic-emotion_sad { background-position: -36px -1188px;  } 
-.ic-emotion_smile { background-position: -36px -1224px;  } 
-.ic-expand { background-position: -36px -1260px;  } 
-.ic-eye { background-position: -36px -1296px;  } 
-.ic-eye_inv { background-position: -36px -1332px;  } 
-.ic-facebook { background-position: -36px -1368px;  } 
-.ic-filter { background-position: -36px -1404px;  } 
-.ic-fire { background-position: -36px -1440px;  } 
-.ic-flag { background-position: -36px -1476px;  } 
-.ic-folder { background-position: -36px -1512px;  } 
-.ic-folder_arrow { background-position: -36px -1548px;  } 
-.ic-folder_delete { background-position: -36px -1584px;  } 
-.ic-folder_minus { background-position: -36px -1620px;  } 
-.ic-folder_open { background-position: -36px -1656px;  } 
-.ic-folder_plus { background-position: -36px -1692px;  } 
-.ic-font_bold { background-position: -36px -1728px;  } 
-.ic-font_italic { background-position: -36px -1764px;  } 
-.ic-font_size { background-position: -36px -1800px;  } 
-.ic-font_strokethrough { background-position: -36px -1836px;  } 
-.ic-font_underline { background-position: -36px -1872px;  } 
-.ic-game_pad { background-position: -36px -1908px;  } 
-.ic-globe_1 { background-position: -36px -1944px;  } 
-.ic-globe_2 { background-position: -72px 0;  } 
-.ic-globe_3 { background-position: -72px -36px;  } 
-.ic-google { background-position: -72px -72px;  } 
-.ic-hand_1 { background-position: -72px -108px;  } 
-.ic-hand_2 { background-position: -72px -144px;  } 
-.ic-hand_contra { background-position: -72px -180px;  } 
-.ic-hand_pro { background-position: -72px -216px;  } 
-.ic-headphones { background-position: -72px -252px;  } 
-.ic-heart { background-position: -72px -288px;  } 
-.ic-heart_empty { background-position: -72px -324px;  } 
-.ic-home { background-position: -72px -360px;  } 
-.ic-image_text { background-position: -72px -396px;  } 
-.ic-inbox { background-position: -72px -432px;  } 
-.ic-indent_decrease { background-position: -72px -468px;  } 
-.ic-indent_increase { background-position: -72px -504px;  } 
-.ic-info { background-position: -72px -540px;  } 
-.ic-iphone { background-position: -72px -576px;  } 
-.ic-key { background-position: -72px -612px;  } 
-.ic-layers_1 { background-position: -72px -648px;  } 
-.ic-layers_2 { background-position: -72px -684px;  } 
-.ic-lightbulb { background-position: -72px -720px;  } 
-.ic-lighting { background-position: -72px -756px;  } 
-.ic-link { background-position: -72px -792px;  } 
-.ic-list_bullets { background-position: -72px -828px;  } 
-.ic-list_num { background-position: -72px -864px;  } 
-.ic-magic_wand { background-position: -72px -900px;  } 
-.ic-mail { background-position: -72px -936px;  } 
-.ic-mail_2 { background-position: -72px -972px;  } 
-.ic-mic { background-position: -72px -1008px;  } 
-.ic-monitor { background-position: -72px -1044px;  } 
-.ic-movie { background-position: -72px -1080px;  } 
-.ic-music { background-position: -72px -1116px;  } 
-.ic-net_comp { background-position: -72px -1152px;  } 
-.ic-network { background-position: -72px -1188px;  } 
-.ic-notepad { background-position: -72px -1224px;  } 
-.ic-notepad_2 { background-position: -72px -1260px;  } 
-.ic-on-off { background-position: -72px -1296px;  } 
-.ic-openid { background-position: -72px -1332px;  } 
-.ic-padlock_closed { background-position: -72px -1368px;  } 
-.ic-padlock_open { background-position: -72px -1404px;  } 
-.ic-page_layout { background-position: -72px -1440px;  } 
-.ic-paragraph { background-position: -72px -1476px;  } 
-.ic-pencil { background-position: -72px -1512px;  } 
-.ic-phone { background-position: -72px -1548px;  } 
-.ic-phone_1 { background-position: -72px -1584px;  } 
-.ic-phone_2 { background-position: -72px -1620px;  } 
-.ic-phone_touch { background-position: -72px -1656px;  } 
-.ic-photo { background-position: -72px -1692px;  } 
-.ic-picture { background-position: -72px -1728px;  } 
-.ic-pin { background-position: -72px -1764px;  } 
-.ic-pin_2 { background-position: -72px -1800px;  } 
-.ic-pin_map { background-position: -72px -1836px;  } 
-.ic-pin_map_down { background-position: -72px -1872px;  } 
-.ic-pin_map_left { background-position: -72px -1908px;  } 
-.ic-pin_map_right { background-position: -72px -1944px;  } 
-.ic-pin_map_top { background-position: -108px 0;  } 
-.ic-pin_sq_down { background-position: -108px -36px;  } 
-.ic-pin_sq_left { background-position: -108px -72px;  } 
-.ic-pin_sq_right { background-position: -108px -108px;  } 
-.ic-pin_sq_top { background-position: -108px -144px;  } 
-.ic-playback_ff { background-position: -108px -180px;  } 
-.ic-playback_next { background-position: -108px -216px;  } 
-.ic-playback_pause { background-position: -108px -252px;  } 
-.ic-playback_play { background-position: -108px -288px;  } 
-.ic-playback_prev { background-position: -108px -324px;  } 
-.ic-playback_rec { background-position: -108px -360px;  } 
-.ic-playback_reload { background-position: -108px -396px;  } 
-.ic-playback_rew { background-position: -108px -432px;  } 
-.ic-playback_stop { background-position: -108px -468px;  } 
-.ic-preso { background-position: -108px -504px;  } 
-.ic-print { background-position: -108px -540px;  } 
-.ic-question { background-position: -108px -576px;  } 
-.ic-redo { background-position: -108px -612px;  } 
-.ic-rnd_br_down { background-position: -108px -648px;  } 
-.ic-rnd_br_first { background-position: -108px -684px;  } 
-.ic-rnd_br_last { background-position: -108px -720px;  } 
-.ic-rnd_br_next { background-position: -108px -756px;  } 
-.ic-rnd_br_prev { background-position: -108px -792px;  } 
-.ic-rnd_br_up { background-position: -108px -828px;  } 
-.ic-round { background-position: -108px -864px;  } 
-.ic-round_and_up { background-position: -108px -900px;  } 
-.ic-round_arrow_left { background-position: -108px -936px;  } 
-.ic-round_arrow_right { background-position: -108px -972px;  } 
-.ic-round_checkmark { background-position: -108px -1008px;  } 
-.ic-round_delete { background-position: -108px -1044px;  } 
-.ic-round_minus { background-position: -108px -1080px;  } 
-.ic-round_plus { background-position: -108px -1116px;  } 
-.ic-rss { background-position: -108px -1152px;  } 
-.ic-rss_sq { background-position: -108px -1188px;  } 
-.ic-sand { background-position: -108px -1224px;  } 
-.ic-sat_dish { background-position: -108px -1260px;  } 
-.ic-save { background-position: -108px -1296px;  } 
-.ic-server { background-position: -108px -1332px;  } 
-.ic-share { background-position: -108px -1368px;  } 
-.ic-shop_cart { background-position: -108px -1404px;  } 
-.ic-sound_high { background-position: -108px -1440px;  } 
-.ic-sound_low { background-position: -108px -1476px;  } 
-.ic-sound_mute { background-position: -108px -1512px;  } 
-.ic-spechbubble { background-position: -108px -1548px;  } 
-.ic-spechbubble_2 { background-position: -108px -1584px;  } 
-.ic-spechbubble_sq { background-position: -108px -1620px;  } 
-.ic-spechbubble_sq_line { background-position: -108px -1656px;  } 
-.ic-sq_br_down { background-position: -108px -1692px;  } 
-.ic-sq_br_first { background-position: -108px -1728px;  } 
-.ic-sq_br_last { background-position: -108px -1764px;  } 
-.ic-sq_br_next { background-position: -108px -1800px;  } 
-.ic-sq_br_prev { background-position: -108px -1836px;  } 
-.ic-sq_br_up { background-position: -108px -1872px;  } 
-.ic-sq_down { background-position: -108px -1908px;  } 
-.ic-sq_minus { background-position: -108px -1944px;  } 
-.ic-sq_next { background-position: -144px 0;  } 
-.ic-sq_plus { background-position: -144px -36px;  } 
-.ic-sq_prev { background-position: -144px -72px;  } 
-.ic-sq_up { background-position: -144px -108px;  } 
-.ic-square_shape { background-position: -144px -144px;  } 
-.ic-star { background-position: -144px -180px;  } 
-.ic-star_fav { background-position: -144px -216px;  } 
-.ic-star_fav_empty { background-position: -144px -252px;  } 
-.ic-sun { background-position: -144px -288px;  } 
-.ic-tag { background-position: -144px -324px;  } 
-.ic-tape { background-position: -144px -360px;  } 
-.ic-target { background-position: -144px -396px;  } 
-.ic-text_curstor { background-position: -144px -432px;  } 
-.ic-text_letter_t { background-position: -144px -468px;  } 
-.ic-top_right_expand { background-position: -144px -504px;  } 
-.ic-trash { background-position: -144px -540px;  } 
-.ic-twitter { background-position: -144px -576px;  } 
-.ic-twitter_2 { background-position: -144px -612px;  } 
-.ic-undo { background-position: -144px -648px;  } 
-.ic-user { background-position: -144px -684px;  } 
-.ic-users { background-position: -144px -720px;  } 
-.ic-wrench { background-position: -144px -756px;  } 
-.ic-wrench_plus { background-position: -144px -792px;  } 
-.ic-wrench_plus_2 { background-position: -144px -828px;  } 
-.ic-zoom { background-position: -144px -864px;  } 
-
-
-/*
- *	lib/css/legacy/sidebar.css
- */div.psidebar-wrapper {
-	margin: 0px 8px;
-}
-
-div.psidebar-head {
-	font-size: 14px;
-	font-weight: bold;
-	color: #555;
-	margin-bottom: 12px;
-}
-
-div.psidebar-section {
-	background-color: #fff;
-	border: 1px solid #b2b2b7;
-	margin-bottom: 11px;
-	overflow: hidden;
-}
-
-div.psidebar-section-head {
-	font-size: 12px;
-	padding: 5px 11px;
-	background: #eeeeee; /* Old browsers */
-	background: -moz-linear-gradient(top,  #eeeeee 0%, #cccccc 100%); /* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eeeeee), color-stop(100%,#cccccc)); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top,  #eeeeee 0%,#cccccc 100%); /* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top,  #eeeeee 0%,#cccccc 100%); /* Opera 11.10+ */
-	background: -ms-linear-gradient(top,  #eeeeee 0%,#cccccc 100%); /* IE10+ */
-	background: linear-gradient(top,  #eeeeee 0%,#cccccc 100%); /* W3C */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#cccccc',GradientType=0 ); /* IE6-9 */
-}
-
-div.psidebar-section-body {
-	margin: 7px 11px 11px 11px;
-}
-
-div.psidebar-section-item {
-	margin-bottom: 7px;
-}
-
-.psidebar-section-link {
-	font-size: 11px;
-	color: #666;
-}
-
-div.follower-list {
-	color: #666;
-	margin-top: 7px;
-	font-size: 11px;
-}
-/*
- *	lib/css/legacy/bootstrap-buttons.css
- */.btn.danger,
-.alert-message.danger,
-.btn.danger:hover,
-.alert-message.danger:hover,
-.btn.error,
-.alert-message.error,
-.btn.error:hover,
-.alert-message.error:hover,
-.btn.success,
-.alert-message.success,
-.btn.success:hover,
-.alert-message.success:hover,
-.btn.info,
-.alert-message.info,
-.btn.info:hover,
-.alert-message.info:hover {
-  color: #ffffff;
-}
-.btn .close, .alert-message .close {
-  font-family: Arial, sans-serif;
-  line-height: 18px;
-}
-.btn.danger,
-.alert-message.danger,
-.btn.error,
-.alert-message.error {
-  background-color: #c43c35;
-  background-repeat: repeat-x;
-  background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
-  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
-  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: linear-gradient(top, #ee5f5b, #c43c35);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  border-color: #c43c35 #c43c35 #882a25;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-.btn.success, .alert-message.success {
-  background-color: #57a957;
-  background-repeat: repeat-x;
-  background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
-  background-image: -moz-linear-gradient(top, #62c462, #57a957);
-  background-image: -ms-linear-gradient(top, #62c462, #57a957);
-  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
-  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
-  background-image: -o-linear-gradient(top, #62c462, #57a957);
-  background-image: linear-gradient(top, #62c462, #57a957);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  border-color: #57a957 #57a957 #3d773d;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-.btn.info, .alert-message.info {
-  background-color: #339bb9;
-  background-repeat: repeat-x;
-  background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
-  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
-  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: linear-gradient(top, #5bc0de, #339bb9);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  border-color: #339bb9 #339bb9 #22697d;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-.btn {
-  cursor: pointer;
-  display: inline-block;
-  background-color: #e6e6e6;
-  background-repeat: no-repeat;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));
-  background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);
-  background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
-  padding: 5px 14px 6px;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
-  color: #333;
-  font-size: 11px;
-  line-height: normal;
-  border: 1px solid #ccc;
-  border-bottom-color: #bbb;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  -webkit-transition: 0.1s linear all;
-  -moz-transition: 0.1s linear all;
-  -ms-transition: 0.1s linear all;
-  -o-transition: 0.1s linear all;
-  transition: 0.1s linear all;
-}
-.btn:hover {
-  background-position: 0 -15px;
-  color: #333;
-  text-decoration: none;
-}
-.btn:focus {
-  outline: 1px dotted #666;
-}
-.btn.primary {
-  color: #ffffff;
-  background-color: #0064cd;
-  background-repeat: repeat-x;
-  background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
-  background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
-  background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
-  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
-  background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
-  background-image: -o-linear-gradient(top, #049cdb, #0064cd);
-  background-image: linear-gradient(top, #049cdb, #0064cd);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  border-color: #0064cd #0064cd #003f81;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-.btn.active, .btn :active {
-  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-.btn.disabled {
-  cursor: default;
-  background-image: none;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  filter: alpha(opacity=65);
-  -khtml-opacity: 0.65;
-  -moz-opacity: 0.65;
-  opacity: 0.65;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-.btn[disabled] {
-  cursor: default;
-  background-image: none;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  filter: alpha(opacity=65);
-  -khtml-opacity: 0.65;
-  -moz-opacity: 0.65;
-  opacity: 0.65;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-.btn.large {
-  font-size: 15px;
-  line-height: normal;
-  padding: 9px 14px 9px;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-}
-.btn.small {
-  padding: 5px 7px 5px;
-  font-size: 11px;
-}
-:root .alert-message, :root .btn {
-  border-radius: 0 \0;
-}
-button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
-  padding: 0;
-  border: 0;
-}
-
-/* CLose */
-
-.close {
-  float: right;
-  color: #000000;
-  font-size: 15px;
-  font-weight: bold;
-  line-height: 13.5px;
-  margin-bottom: -2px;
-  text-shadow: 0 1px 0 #ffffff;
-  filter: alpha(opacity=25);
-  -khtml-opacity: 0.25;
-  -moz-opacity: 0.25;
-  opacity: 0.25;
-  text-decoration: none;
-}
-.close:hover {
-  color: #000000;
-  text-decoration: none;
-  filter: alpha(opacity=40);
-  -khtml-opacity: 0.4;
-  -moz-opacity: 0.4;
-  opacity: 0.4;
-  cursor: pointer;
-  font-weight: bold;
-}
\ No newline at end of file
diff --git a/css/style-web.css b/css/style-web.css
deleted file mode 100644
index a80fa2d..0000000
--- a/css/style-web.css
+++ /dev/null
@@ -1,629 +0,0 @@
-
-/*
- *	lib/css/legacy/body.css
- */html { 
-	margin: 0px;
-	padding: 0px;
-}
-
-body {	
-	margin: 0px;
-	padding: 0px;
-	font-family: Arial, Helvetica, Sans;
-	font-size: 12px;
-	color: #000;
-}
-
-/* heading from bootstrap */
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  margin: 0;
-  font-weight: bold;
-  color: #333333;
-  text-rendering: optimizelegibility;
-  margin-bottom: 0.3em;
-}
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small {
-  font-weight: normal;
-  color: #999999;
-}
-h1 {
-  font-size: 30px;
-  line-height: 36px;
-}
-h1 small {
-  font-size: 18px;
-}
-h2 {
-  font-size: 24px;
-  line-height: 36px;
-}
-h2 small {
-  font-size: 18px;
-}
-h3 {
-  line-height: 27px;
-  font-size: 18px;
-}
-h3 small {
-  font-size: 14px;
-}
-h4, h5, h6 {
-  line-height: 18px;
-}
-h4 {
-  font-size: 14px;
-}
-h4 small {
-  font-size: 12px;
-}
-h5 {
-  font-size: 12px;
-}
-h6 {
-  font-size: 11px;
-  color: #999999;
-  text-transform: uppercase;
-}
-
-pre { margin: 0px; padding: 0px; }
-
-button { margin: 2px; margin-left: 0px; }
-
-label {
-	padding-top: 15px;
-	color: #404040;
-}
-
-select, input, textarea { 
-	border: 1px solid #AAA; 
-	-moz-border-radius: 4px;
-	-webkit-border-radius: 4px;
-	font-size: 13px;
-	padding: 4px;
-	color: #222;
-}
-
-textarea { 
-	font-family: inherit; 
-	height: 120px; 
-	width: 90%; 
-	font-size: 12px; 
-	white-space: normal;
-}
-
-table { padding: 0px; border-collapse: 'collapse'}
-
-td { 
-	padding:0px; 
-	margin: 0px; 
-	vertical-align: top; 
-}
-
-p {
-	margin: 0px 0px 9px 0px;
-	line-height: 1.5em;
-}
-
-li {
-	line-height: 1.5em;
-}
-
-a:active { outline:none; }
-
-:focus { -moz-outline-style:none; }
-
-table.simpletable { border-collapse: collapse; margin-bottom: 10px;}
-table.simpletable td {border: 1pt solid #000; vertical-align: top; padding: 2px; }
-
-div.fix_ff_cursor { overflow: auto; }
-
-/* --- Layout --- */
-
-div.comment { color: #444; }
-
-div#body_div {
-	position: relative;
-	display: none;
-	margin-top: 56px;
-	padding-right: 7px;
-}
-
-div.no_script {
-	display: none;
-}
-
-div.loading_div {
-	position: absolute;
-	background-color: #FFFFCC;
-	z-index: 1999;
-	right: 5px;
-	width: 90px;
-	display: none;
-	text-align: center;
-	padding: 2px;
-	font-size: 12px;
-	border: 1px solid #FF4;
-}
-
-
-div#head_div { background-color: #FFF; }
-
-#head_banner { background-color: #FFF; }
-
-.link_type {
-	padding:2px;
-	color: #00b;
-	text-decoration: underline;
-	cursor: pointer;
-}
-
-.link_type:hover {
-	color: #fff !important; 
-	background-color: #07b;
-	text-decoration: none;
-}
-
-div.std-footer {
-	margin: 13px 0px;
-	border-top: 1px solid #AAA;
-	padding: 13px;
-}
-
-div.std-footer-item {
-	margin: 0px 13px 13px 0px;
-}
-
-.shadow {
-	-moz-box-shadow: 0px 2px 2px #888;
-	-webkit-box-shadow: 0px 2px 2px #888;
- 	box-shadow: 0px 2px 2px #888;
-}
-
-.round {
-	-webkit-border-radius: 5px;
-	-moz-border-radius: 5px;
-	border-radius: 5px;	
-}
-.gradient {
-	background: #ededed; /* Old browsers */
-	background: -moz-linear-gradient(top, #ededed 0%, #d1d1d1 47%, #b7b7b7 100%); /* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(47%,#d1d1d1), color-stop(100%,#b7b7b7)); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* Opera11.10+ */
-	background: -ms-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* IE10+ */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#b7b7b7',GradientType=0 ); /* IE6-9 */
-	background: linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* W3C */	
-}
-
-.header-gradient {
-	background: #84827c; /* Old browsers */
-	background: -moz-linear-gradient(top, #84827c 0%, #27211c 100%); /* FF3.6+ */
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#84827c), color-stop(100%,#27211c)); /* Chrome,Safari4+ */
-	background: -webkit-linear-gradient(top, #84827c 0%,#27211c 100%); /* Chrome10+,Safari5.1+ */
-	background: -o-linear-gradient(top, #84827c 0%,#27211c 100%); /* Opera11.10+ */
-	background: -ms-linear-gradient(top, #84827c 0%,#27211c 100%); /* IE10+ */
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#84827c', endColorstr='#27211c',GradientType=0 ); /* IE6-9 */
-	background: linear-gradient(top, #84827c 0%,#27211c 100%); /* W3C */
-	color: #FFF;
-}
-
-.layout_wrapper {
-	padding: 15px;
-	-moz-box-shadow: 1px 1px 6px #AAA;
-	-webkit-box-shadow: 1px 1px 6px #AAA;
-	box-shadow: 1px 1px 6px #AAA;
-	background-color: #FFF;
-}
-
-/* from bootstrap */
-.container {
-  margin-left: auto;
-  margin-right: auto;
-  zoom: 1;
-}
-.container:before, .container:after {
-  display: table;
-  content: "";
-  zoom: 1;
-}
-.container:after {
-  clear: both;
-}
-
-/*
- *	lib/css/legacy/menus.css
- */
-/******** Menus - menu.js ************/
-
-ul.menu_toolbar {
-	z-index: 30;
-	padding: 0px;
-	margin: 0px;
-	margin-top: 1px;
-}
-
-ul.menu_toolbar li {
-	list-style: none;
-	margin: 0px;
-	float: left;
-}
-
-.top_menu {
-	margin: 0px;
-	padding: 4px;
-	cursor: pointer;
-	color: #FFF;
-	margin-right: 8px;
-}
-
-.top_menu_mo {
-	background-color: #000;
-
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;
-}
-
-div.menu_toolbar_dropdown {
-	position: absolute;
-	margin-top: 4px;
-	margin-left: 8px;
-	width: 140px;
-	background-color: #FFF;
-	color: #000;
-	display: none;
-	border: 2px solid #333;
-	z-index: 31;
-	overflow-y: auto;
-	overflow-x: hidden;
-}
-
-div.dd_item {
-	cursor: pointer;
-	padding: 4px;
-	background-color: #FFF;
-}
-div.dd_item_mo { background-color: #FE8; }
-/*
- *	lib/css/legacy/messages.css
- */
-/* FLOATING MESSAGE */
-
-.btn-img { cursor: pointer; }
-
-div.fetching { color: #888; text-align:right; }
-
-div.notice {
-	postion: absolute;
-	background-color: #000;
-	-moz-border-radius: 5px; -webkit-border-radius: 5px;
-	opacity: 0.6;
-	right: 0;
-	top: 0;
-	margin-top: 8px;
-	z-index: -1;
-	padding: 8px;
-}
-
-/** help **/
-
-.info-box {
-    background-color: #F8F8F8;
-    border: 1px solid #CCCCCC;
-    border-radius: 3px 3px 3px 3px;
-    line-height: 1.6em;
-    overflow: auto;
-    padding: 6px 10px;
-	margin-bottom: 9px;
-}
-
-.help_box, .help-box {
-	background-color:#FFC;
-	font-size: 13px;
-	color: #864;
-	padding: 7px;
-	margin: 11px 0px;
-	border: 1px solid #EEB;
-}
-
-.help_box_big {
-	background-color:#FFC;
-	color: #864;
-	padding: 7px;
-	margin: 7px 0px;
-	border: 1px solid #EEB;
-	text-align: center;
-	font-size: 14px;
-}
-/*
- *	lib/css/legacy/dialog.css
- *//***** Dialogs *******/
-
-div.dialog_wrapper {
-	position: absolute;
-	width: 440px;
-	display: none;
-	z-index: 90;
-	background-color: #FFF;
-	border: 3px solid #222;
-	box-shadow:1px 1px 5px #777;
-	-moz-box-shadow: 1px 1px 5px #777;
-	-webkit-box-shadow: 1px 1px 5px #777;
-	
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;	
-}
-
-div.dialog_head {
-	height: 22px;
-	padding: 4px;
-	background-color: #222;
-	color: #FFF;
-}
-
-div.dialog_body {
-	padding: 8px 4px 16px 4px;
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;	
-}
-
-div.dialog_back {
-	position: fixed;
-	display: none;
-	top: 0px;
-	left: 0px;
-	bottom: 0px;
-	right: 0px;
-	background-color: #EEE;
-	opacity: 0.6;
-	z-index: 50;
-	text-align: center;
-}
-
-div.dialog_message {
-	display: none;
-	position: absolute;
-	width: 250px;
-	font-size: 12px;
-	z-index: 91;
-	background-color:#FFF;
-	padding: 12px;
-	border: 1px solid #444;
-}
-
-div.dialog_row {
-	padding: 8px 8px 0px 8px;
-}
-
-div.dialog_row table {
-	width: 100%;
-}
-
-div.dialog_row table td {
-}
-
-div.dialog_row input[type="text"], div.dialog_row input[type="password"], div.dialog_row textarea, div.dialog_row select {
-	width: 80%;
-	font-size: 14px;
-}
-
-div.dialog_row table td textarea {
-	width: 80%;
-	height: 200px;
-	font-size: 12px;
-}
-
-/*
- *	lib/css/legacy/bootstrap-buttons.css
- */.btn.danger,
-.alert-message.danger,
-.btn.danger:hover,
-.alert-message.danger:hover,
-.btn.error,
-.alert-message.error,
-.btn.error:hover,
-.alert-message.error:hover,
-.btn.success,
-.alert-message.success,
-.btn.success:hover,
-.alert-message.success:hover,
-.btn.info,
-.alert-message.info,
-.btn.info:hover,
-.alert-message.info:hover {
-  color: #ffffff;
-}
-.btn .close, .alert-message .close {
-  font-family: Arial, sans-serif;
-  line-height: 18px;
-}
-.btn.danger,
-.alert-message.danger,
-.btn.error,
-.alert-message.error {
-  background-color: #c43c35;
-  background-repeat: repeat-x;
-  background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
-  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
-  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: linear-gradient(top, #ee5f5b, #c43c35);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  border-color: #c43c35 #c43c35 #882a25;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-.btn.success, .alert-message.success {
-  background-color: #57a957;
-  background-repeat: repeat-x;
-  background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
-  background-image: -moz-linear-gradient(top, #62c462, #57a957);
-  background-image: -ms-linear-gradient(top, #62c462, #57a957);
-  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
-  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
-  background-image: -o-linear-gradient(top, #62c462, #57a957);
-  background-image: linear-gradient(top, #62c462, #57a957);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  border-color: #57a957 #57a957 #3d773d;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-.btn.info, .alert-message.info {
-  background-color: #339bb9;
-  background-repeat: repeat-x;
-  background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
-  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
-  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: linear-gradient(top, #5bc0de, #339bb9);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  border-color: #339bb9 #339bb9 #22697d;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-.btn {
-  cursor: pointer;
-  display: inline-block;
-  background-color: #e6e6e6;
-  background-repeat: no-repeat;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));
-  background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);
-  background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
-  padding: 5px 14px 6px;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
-  color: #333;
-  font-size: 11px;
-  line-height: normal;
-  border: 1px solid #ccc;
-  border-bottom-color: #bbb;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  -webkit-transition: 0.1s linear all;
-  -moz-transition: 0.1s linear all;
-  -ms-transition: 0.1s linear all;
-  -o-transition: 0.1s linear all;
-  transition: 0.1s linear all;
-}
-.btn:hover {
-  background-position: 0 -15px;
-  color: #333;
-  text-decoration: none;
-}
-.btn:focus {
-  outline: 1px dotted #666;
-}
-.btn.primary {
-  color: #ffffff;
-  background-color: #0064cd;
-  background-repeat: repeat-x;
-  background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
-  background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
-  background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
-  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
-  background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
-  background-image: -o-linear-gradient(top, #049cdb, #0064cd);
-  background-image: linear-gradient(top, #049cdb, #0064cd);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  border-color: #0064cd #0064cd #003f81;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-.btn.active, .btn :active {
-  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-.btn.disabled {
-  cursor: default;
-  background-image: none;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  filter: alpha(opacity=65);
-  -khtml-opacity: 0.65;
-  -moz-opacity: 0.65;
-  opacity: 0.65;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-.btn[disabled] {
-  cursor: default;
-  background-image: none;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  filter: alpha(opacity=65);
-  -khtml-opacity: 0.65;
-  -moz-opacity: 0.65;
-  opacity: 0.65;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-.btn.large {
-  font-size: 15px;
-  line-height: normal;
-  padding: 9px 14px 9px;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-}
-.btn.small {
-  padding: 5px 7px 5px;
-  font-size: 11px;
-}
-:root .alert-message, :root .btn {
-  border-radius: 0 \0;
-}
-button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
-  padding: 0;
-  border: 0;
-}
-
-/* CLose */
-
-.close {
-  float: right;
-  color: #000000;
-  font-size: 15px;
-  font-weight: bold;
-  line-height: 13.5px;
-  margin-bottom: -2px;
-  text-shadow: 0 1px 0 #ffffff;
-  filter: alpha(opacity=25);
-  -khtml-opacity: 0.25;
-  -moz-opacity: 0.25;
-  opacity: 0.25;
-  text-decoration: none;
-}
-.close:hover {
-  color: #000000;
-  text-decoration: none;
-  filter: alpha(opacity=40);
-  -khtml-opacity: 0.4;
-  -moz-opacity: 0.4;
-  opacity: 0.4;
-  cursor: pointer;
-  font-weight: bold;
-}
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Label/Payable Voucher/Payable Voucher.txt b/erpnext/accounts/DocType Label/Payable Voucher/Payable Voucher.txt
deleted file mode 100644
index d12b2d2..0000000
--- a/erpnext/accounts/DocType Label/Payable Voucher/Payable Voucher.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'modified_by': 'Administrator', 'name': 'Payable Voucher', 'parent': None, 'dt_label': 'Purchase Invoice', 'creation': '2010-06-10 10:44:55', 'modified': '2010-06-10 10:44:55', 'module': 'Accounts', 'doctype': 'DocType Label', 'idx': None, 'parenttype': None, 'owner': 'Administrator', 'docstatus': 0, 'dt': 'Payable Voucher', 'parentfield': None}]
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt b/erpnext/accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt
deleted file mode 100644
index 459e4b8..0000000
--- a/erpnext/accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'modified_by': 'Administrator', 'name': 'Receivable Voucher', 'parent': None, 'dt_label': 'Sales Invoice', 'creation': '2010-06-10 10:44:40', 'modified': '2010-06-10 10:44:40', 'module': 'Accounts', 'doctype': 'DocType Label', 'idx': None, 'parenttype': None, 'owner': 'Administrator', 'docstatus': 0, 'dt': 'Receivable Voucher', 'parentfield': None}]
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt
deleted file mode 100644
index 7a4544f..0000000
--- a/erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt
+++ /dev/null
@@ -1,188 +0,0 @@
-# DocType Mapper, Delivery Note-Receivable Voucher
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:34',
-		'docstatus': 0,
-		'modified': '2011-09-15 15:04:42',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'name': '__common__',
-		'parent': 'Delivery Note-Receivable Voucher',
-		'parentfield': 'table_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'name': '__common__',
-		'parent': 'Delivery Note-Receivable Voucher',
-		'parentfield': 'field_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': u'DocType Mapper',
-		'from_doctype': 'Delivery Note',
-		'module': 'Accounts',
-		'name': '__common__',
-		'ref_doc_submitted': 1,
-		'to_doctype': 'Receivable Voucher'
-	},
-
-	# DocType Mapper, Delivery Note-Receivable Voucher
-	{
-		'doctype': u'DocType Mapper',
-		'name': 'Delivery Note-Receivable Voucher'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt)) / flt(obj.basic_rate) or obj.qty',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'qty'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parent',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'delivery_note'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'name',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'dn_detail'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'prevdoc_docname',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'sales_order'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'prevdoc_detail_docname',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'so_detail'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval: flt(obj.amount) - flt(obj.billed_amt)',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'amount'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt)) * flt(obj.export_rate)/flt(obj.basic_rate)',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'export_amount'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'naming_series',
-		'map': 'No',
-		'match_id': 0,
-		'to_field': 'naming_series'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'incentives',
-		'map': 'No',
-		'match_id': 3,
-		'to_field': 'incentives'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'serial_no',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'serial_no'
-	},
-
-	# Field Mapper Detail
-	{
-		'checking_operator': u'=',
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'export_rate',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'export_rate'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_table': 'Delivery Note',
-		'match_id': 0,
-		'to_table': 'Receivable Voucher',
-		'validation_logic': 'docstatus=1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'delivery_note_details',
-		'from_table': 'Delivery Note Detail',
-		'match_id': 1,
-		'to_field': 'entries',
-		'to_table': 'RV Detail',
-		'validation_logic': '(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'other_charges',
-		'from_table': 'RV Tax Detail',
-		'match_id': 2,
-		'to_field': 'other_charges',
-		'to_table': 'RV Tax Detail',
-		'validation_logic': 'name is not null'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'sales_team',
-		'from_table': 'Sales Team',
-		'match_id': 3,
-		'to_field': 'sales_team',
-		'to_table': 'Sales Team',
-		'validation_logic': 'name is not null'
-	}
-]
diff --git a/erpnext/accounts/DocType Mapper/Delivery Note-Sales Invoice/Delivery Note-Sales Invoice.txt b/erpnext/accounts/DocType Mapper/Delivery Note-Sales Invoice/Delivery Note-Sales Invoice.txt
new file mode 100644
index 0000000..72f326b
--- /dev/null
+++ b/erpnext/accounts/DocType Mapper/Delivery Note-Sales Invoice/Delivery Note-Sales Invoice.txt
@@ -0,0 +1,188 @@
+# DocType Mapper, Delivery Note-Sales Invoice
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-04-03 12:49:42',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:43',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'name': '__common__',
+		'parent': u'Delivery Note-Sales Invoice',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'name': '__common__',
+		'parent': u'Delivery Note-Sales Invoice',
+		'parentfield': u'field_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': u'DocType Mapper',
+		'from_doctype': u'Delivery Note',
+		'module': u'Accounts',
+		'name': '__common__',
+		'ref_doc_submitted': 1,
+		'to_doctype': u'Sales Invoice'
+	},
+
+	# DocType Mapper, Delivery Note-Sales Invoice
+	{
+		'doctype': u'DocType Mapper',
+		'name': u'Delivery Note-Sales Invoice'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt)) / flt(obj.basic_rate) or obj.qty',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'qty'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parent',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'delivery_note'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'name',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'dn_detail'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'prevdoc_docname',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'sales_order'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'prevdoc_detail_docname',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'so_detail'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: flt(obj.amount) - flt(obj.billed_amt)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'amount'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: (flt(obj.amount) - flt(obj.billed_amt)) * flt(obj.export_rate)/flt(obj.basic_rate)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'export_amount'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'naming_series',
+		'map': u'No',
+		'match_id': 0,
+		'to_field': u'naming_series'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'incentives',
+		'map': u'No',
+		'match_id': 3,
+		'to_field': u'incentives'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'serial_no',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'serial_no'
+	},
+
+	# Field Mapper Detail
+	{
+		'checking_operator': u'=',
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'export_rate',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'export_rate'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_table': u'Delivery Note',
+		'match_id': 0,
+		'to_table': u'Sales Invoice',
+		'validation_logic': u'docstatus=1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'delivery_note_details',
+		'from_table': u'Delivery Note Item',
+		'match_id': 1,
+		'to_field': u'entries',
+		'to_table': u'Sales Invoice Item',
+		'validation_logic': u'(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'other_charges',
+		'from_table': u'Sales Taxes and Charges',
+		'match_id': 2,
+		'to_field': u'other_charges',
+		'to_table': u'Sales Taxes and Charges',
+		'validation_logic': u'name is not null'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'sales_team',
+		'from_table': u'Sales Team',
+		'match_id': 3,
+		'to_field': u'sales_team',
+		'to_table': u'Sales Team',
+		'validation_logic': u'name is not null'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt
deleted file mode 100644
index e88f452..0000000
--- a/erpnext/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-# DocType Mapper, Project-Receivable Voucher
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-01 15:47:59',
-		'docstatus': 0,
-		'modified': '2011-09-15 15:04:43',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_table': 'Project',
-		'match_id': 0,
-		'name': '__common__',
-		'parent': 'Project-Receivable Voucher',
-		'parentfield': 'table_mapper_details',
-		'parenttype': 'DocType Mapper',
-		'to_table': 'Receivable Voucher',
-		'validation_logic': 'name is not null'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'checking_operator': '=',
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'customer',
-		'map': 'Yes',
-		'match_id': 0,
-		'name': '__common__',
-		'parent': 'Project-Receivable Voucher',
-		'parentfield': 'field_mapper_details',
-		'parenttype': 'DocType Mapper',
-		'to_field': 'customer'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': 'DocType Mapper',
-		'from_doctype': 'Project',
-		'module': 'Accounts',
-		'name': '__common__',
-		'to_doctype': 'Receivable Voucher'
-	},
-
-	# DocType Mapper, Project-Receivable Voucher
-	{
-		'doctype': 'DocType Mapper',
-		'name': 'Project-Receivable Voucher'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Mapper/Project-Sales Invoice/Project-Sales Invoice.txt b/erpnext/accounts/DocType Mapper/Project-Sales Invoice/Project-Sales Invoice.txt
new file mode 100644
index 0000000..8d87fda
--- /dev/null
+++ b/erpnext/accounts/DocType Mapper/Project-Sales Invoice/Project-Sales Invoice.txt
@@ -0,0 +1,64 @@
+# DocType Mapper, Project-Sales Invoice
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2010-09-01 15:47:59',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_table': u'Project',
+		'match_id': 0,
+		'name': '__common__',
+		'parent': u'Project-Sales Invoice',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper',
+		'to_table': u'Sales Invoice',
+		'validation_logic': u'name is not null'
+	},
+
+	# These values are common for all Field Mapper Detail
+	{
+		'checking_operator': u'=',
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'customer',
+		'map': u'Yes',
+		'match_id': 0,
+		'name': '__common__',
+		'parent': u'Project-Sales Invoice',
+		'parentfield': u'field_mapper_details',
+		'parenttype': u'DocType Mapper',
+		'to_field': u'customer'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': 'DocType Mapper',
+		'from_doctype': u'Project',
+		'module': u'Accounts',
+		'name': '__common__',
+		'to_doctype': u'Sales Invoice'
+	},
+
+	# DocType Mapper, Project-Sales Invoice
+	{
+		'doctype': 'DocType Mapper',
+		'name': u'Project-Sales Invoice'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt b/erpnext/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt
deleted file mode 100644
index 159b5bb..0000000
--- a/erpnext/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt
+++ /dev/null
@@ -1,158 +0,0 @@
-# DocType Mapper, Purchase Order-Payable Voucher
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:35',
-		'docstatus': 0,
-		'modified': '2012-02-07 13:28:31',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'name': '__common__',
-		'parent': u'Purchase Order-Payable Voucher',
-		'parentfield': u'table_mapper_details',
-		'parenttype': u'DocType Mapper'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'name': '__common__',
-		'parent': u'Purchase Order-Payable Voucher',
-		'parentfield': u'field_mapper_details',
-		'parenttype': u'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': u'DocType Mapper',
-		'from_doctype': u'Purchase Order',
-		'module': u'Accounts',
-		'name': '__common__',
-		'ref_doc_submitted': 1,
-		'to_doctype': u'Payable Voucher'
-	},
-
-	# DocType Mapper, Purchase Order-Payable Voucher
-	{
-		'doctype': u'DocType Mapper',
-		'name': u'Purchase Order-Payable Voucher'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval: flt(obj.qty) - flt(obj.billed_qty)',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'qty'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'purchase_rate',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'rate'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'amount'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'import_amount'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'parent',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'purchase_order'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'name',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'po_detail'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'naming_series',
-		'map': u'No',
-		'match_id': 0,
-		'to_field': u'naming_series'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'total_tax',
-		'map': u'Yes',
-		'match_id': 0,
-		'to_field': u'total_tax'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'conversion_rate',
-		'map': u'Yes',
-		'match_id': 0,
-		'to_field': u'conversion_rate'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_table': u'Purchase Order',
-		'match_id': 0,
-		'to_table': u'Payable Voucher',
-		'validation_logic': u'docstatus =1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_field': u'po_details',
-		'from_table': u'PO Detail',
-		'match_id': 1,
-		'to_field': u'entries',
-		'to_table': u'PV Detail',
-		'validation_logic': u'ifnull(billed_qty,0)  < qty and docstatus = 1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_field': u'purchase_tax_details',
-		'from_table': u'Purchase Tax Detail',
-		'match_id': 2,
-		'to_field': u'purchase_tax_details',
-		'to_table': u'Purchase Tax Detail',
-		'validation_logic': u'docstatus =1'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Mapper/Purchase Order-Purchase Invoice/Purchase Order-Purchase Invoice.txt b/erpnext/accounts/DocType Mapper/Purchase Order-Purchase Invoice/Purchase Order-Purchase Invoice.txt
new file mode 100644
index 0000000..0e54457
--- /dev/null
+++ b/erpnext/accounts/DocType Mapper/Purchase Order-Purchase Invoice/Purchase Order-Purchase Invoice.txt
@@ -0,0 +1,158 @@
+# DocType Mapper, Purchase Order-Purchase Invoice
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2010-08-08 17:09:35',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'name': '__common__',
+		'parent': u'Purchase Order-Purchase Invoice',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'name': '__common__',
+		'parent': u'Purchase Order-Purchase Invoice',
+		'parentfield': u'field_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': u'DocType Mapper',
+		'from_doctype': u'Purchase Order',
+		'module': u'Accounts',
+		'name': '__common__',
+		'ref_doc_submitted': 1,
+		'to_doctype': u'Purchase Invoice'
+	},
+
+	# DocType Mapper, Purchase Order-Purchase Invoice
+	{
+		'doctype': u'DocType Mapper',
+		'name': u'Purchase Order-Purchase Invoice'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: flt(obj.qty) - flt(obj.billed_qty)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'qty'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'purchase_rate',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'rate'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'amount'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'import_amount'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parent',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'purchase_order'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'name',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'po_detail'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'naming_series',
+		'map': u'No',
+		'match_id': 0,
+		'to_field': u'naming_series'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'total_tax',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'total_tax'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'conversion_rate',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'conversion_rate'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_table': u'Purchase Order',
+		'match_id': 0,
+		'to_table': u'Purchase Invoice',
+		'validation_logic': u'docstatus =1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'po_details',
+		'from_table': u'Purchase Order Item',
+		'match_id': 1,
+		'to_field': u'entries',
+		'to_table': u'Purchase Invoice Item',
+		'validation_logic': u'ifnull(billed_qty,0)  < qty and docstatus = 1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'purchase_tax_details',
+		'from_table': u'Purchase Taxes and Charges',
+		'match_id': 2,
+		'to_field': u'purchase_tax_details',
+		'to_table': u'Purchase Taxes and Charges',
+		'validation_logic': u'docstatus =1'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt b/erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt
deleted file mode 100644
index ffc748b..0000000
--- a/erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt
+++ /dev/null
@@ -1,185 +0,0 @@
-# DocType Mapper, Purchase Receipt-Payable Voucher
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:35',
-		'docstatus': 0,
-		'modified': '2012-02-06 15:26:25',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'name': '__common__',
-		'parent': u'Purchase Receipt-Payable Voucher',
-		'parentfield': u'table_mapper_details',
-		'parenttype': u'DocType Mapper'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'name': '__common__',
-		'parent': u'Purchase Receipt-Payable Voucher',
-		'parentfield': u'field_mapper_details',
-		'parenttype': u'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': u'DocType Mapper',
-		'from_doctype': u'Purchase Receipt',
-		'module': u'Accounts',
-		'name': '__common__',
-		'ref_doc_submitted': 1,
-		'to_doctype': u'Payable Voucher'
-	},
-
-	# DocType Mapper, Purchase Receipt-Payable Voucher
-	{
-		'doctype': u'DocType Mapper',
-		'name': u'Purchase Receipt-Payable Voucher'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval: flt(obj.qty) - flt(obj.billed_qty)',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'qty'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'purchase_rate',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'rate'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'amount'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'import_amount'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'parent',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'purchase_receipt'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'prevdoc_docname',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'purchase_order'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'name',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'pr_detail'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'prevdoc_detail_docname',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'po_detail'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'naming_series',
-		'map': u'No',
-		'match_id': 0,
-		'to_field': u'naming_series'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'net_total',
-		'map': u'Yes',
-		'match_id': 0,
-		'to_field': u'net_total'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'grand_total',
-		'map': u'Yes',
-		'match_id': 0,
-		'to_field': u'grand_total'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'total_tax',
-		'map': u'Yes',
-		'match_id': 0,
-		'to_field': u'total_tax'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_field': u'purchase_receipt_details',
-		'from_table': u'Purchase Receipt Detail',
-		'match_id': 1,
-		'to_field': u'entries',
-		'to_table': u'PV Detail',
-		'validation_logic': u'ifnull(billed_qty,0)  < qty'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_table': u'Purchase Receipt',
-		'match_id': 0,
-		'to_table': u'Payable Voucher',
-		'validation_logic': u'docstatus=1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_field': u'purchase_tax_details',
-		'from_table': u'Purchase Tax Detail',
-		'match_id': 2,
-		'to_field': u'purchase_tax_details',
-		'to_table': u'Purchase Tax Detail',
-		'validation_logic': u'docstatus=1'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Mapper/Purchase Receipt-Purchase Invoice/Purchase Receipt-Purchase Invoice.txt b/erpnext/accounts/DocType Mapper/Purchase Receipt-Purchase Invoice/Purchase Receipt-Purchase Invoice.txt
new file mode 100644
index 0000000..75b188b
--- /dev/null
+++ b/erpnext/accounts/DocType Mapper/Purchase Receipt-Purchase Invoice/Purchase Receipt-Purchase Invoice.txt
@@ -0,0 +1,185 @@
+# DocType Mapper, Purchase Receipt-Purchase Invoice
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2010-08-08 17:09:35',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'name': '__common__',
+		'parent': u'Purchase Receipt-Purchase Invoice',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'name': '__common__',
+		'parent': u'Purchase Receipt-Purchase Invoice',
+		'parentfield': u'field_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': u'DocType Mapper',
+		'from_doctype': u'Purchase Receipt',
+		'module': u'Accounts',
+		'name': '__common__',
+		'ref_doc_submitted': 1,
+		'to_doctype': u'Purchase Invoice'
+	},
+
+	# DocType Mapper, Purchase Receipt-Purchase Invoice
+	{
+		'doctype': u'DocType Mapper',
+		'name': u'Purchase Receipt-Purchase Invoice'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: flt(obj.qty) - flt(obj.billed_qty)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'qty'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'purchase_rate',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'rate'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'amount'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'import_amount'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parent',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'purchase_receipt'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'prevdoc_docname',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'purchase_order'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'name',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'pr_detail'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'prevdoc_detail_docname',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'po_detail'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'naming_series',
+		'map': u'No',
+		'match_id': 0,
+		'to_field': u'naming_series'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'net_total',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'net_total'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'grand_total',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'grand_total'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'total_tax',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'total_tax'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'purchase_receipt_details',
+		'from_table': u'Purchase Receipt Item',
+		'match_id': 1,
+		'to_field': u'entries',
+		'to_table': u'Purchase Invoice Item',
+		'validation_logic': u'ifnull(billed_qty,0)  < qty'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_table': u'Purchase Receipt',
+		'match_id': 0,
+		'to_table': u'Purchase Invoice',
+		'validation_logic': u'docstatus=1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'purchase_tax_details',
+		'from_table': u'Purchase Taxes and Charges',
+		'match_id': 2,
+		'to_field': u'purchase_tax_details',
+		'to_table': u'Purchase Taxes and Charges',
+		'validation_logic': u'docstatus=1'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt
deleted file mode 100644
index d076d9f..0000000
--- a/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt
+++ /dev/null
@@ -1,190 +0,0 @@
-# DocType Mapper, Sales Order-Receivable Voucher
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-20 12:33:35',
-		'docstatus': 0,
-		'modified': '2012-03-28 19:19:38',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'name': '__common__',
-		'parent': u'Sales Order-Receivable Voucher',
-		'parentfield': u'table_mapper_details',
-		'parenttype': u'DocType Mapper'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'name': '__common__',
-		'parent': u'Sales Order-Receivable Voucher',
-		'parentfield': u'field_mapper_details',
-		'parenttype': u'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': u'DocType Mapper',
-		'from_doctype': u'Sales Order',
-		'module': u'Accounts',
-		'name': '__common__',
-		'ref_doc_submitted': 1,
-		'to_doctype': u'Receivable Voucher'
-	},
-
-	# DocType Mapper, Sales Order-Receivable Voucher
-	{
-		'doctype': u'DocType Mapper',
-		'name': u'Sales Order-Receivable Voucher'
-	},
-
-	# Field Mapper Detail
-	{
-		'checking_operator': u'=',
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'customer',
-		'map': u'Yes',
-		'match_id': 0,
-		'to_field': u'customer'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate) or obj.qty',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'qty'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'parent',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'sales_order'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'name',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'so_detail'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval:flt(obj.amount) - flt(obj.billed_amt)',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'amount'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval: (flt(obj.amount) - flt(obj.billed_amt))* flt(obj.export_rate)/flt(obj.basic_rate)',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'export_amount'
-	},
-
-	# Field Mapper Detail
-	{
-		'checking_operator': u'=',
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'project_name',
-		'map': u'Yes',
-		'match_id': 0,
-		'to_field': u'project_name'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'reserved_warehouse',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'warehouse'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'naming_series',
-		'map': u'No',
-		'match_id': 0,
-		'to_field': u'naming_series'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'incentives',
-		'map': u'No',
-		'match_id': 3,
-		'to_field': u'incentives'
-	},
-
-	# Field Mapper Detail
-	{
-		'checking_operator': u'=',
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'export_rate',
-		'map': u'Yes',
-		'match_id': 1,
-		'to_field': u'export_rate'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_table': u'Sales Order',
-		'match_id': 0,
-		'to_table': u'Receivable Voucher',
-		'validation_logic': u'docstatus=1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_field': u'sales_order_detail',
-		'from_table': u'Sales Order Detail',
-		'match_id': 1,
-		'to_field': u'entries',
-		'to_table': u'RV Detail',
-		'validation_logic': u'(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_field': u'other_charges',
-		'from_table': u'RV Tax Detail',
-		'match_id': 2,
-		'to_field': u'other_charges',
-		'to_table': u'RV Tax Detail',
-		'validation_logic': u'name is not null'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_field': u'sales_team',
-		'from_table': u'Sales Team',
-		'match_id': 3,
-		'to_field': u'sales_team',
-		'to_table': u'Sales Team',
-		'validation_logic': u'name is not null'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/DocType Mapper/Sales Order-Sales Invoice/Sales Order-Sales Invoice.txt b/erpnext/accounts/DocType Mapper/Sales Order-Sales Invoice/Sales Order-Sales Invoice.txt
new file mode 100644
index 0000000..aa1cc3c
--- /dev/null
+++ b/erpnext/accounts/DocType Mapper/Sales Order-Sales Invoice/Sales Order-Sales Invoice.txt
@@ -0,0 +1,190 @@
+# DocType Mapper, Sales Order-Sales Invoice
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-04-03 12:49:42',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:42',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'name': '__common__',
+		'parent': u'Sales Order-Sales Invoice',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'name': '__common__',
+		'parent': u'Sales Order-Sales Invoice',
+		'parentfield': u'field_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': u'DocType Mapper',
+		'from_doctype': u'Sales Order',
+		'module': u'Accounts',
+		'name': '__common__',
+		'ref_doc_submitted': 1,
+		'to_doctype': u'Sales Invoice'
+	},
+
+	# DocType Mapper, Sales Order-Sales Invoice
+	{
+		'doctype': u'DocType Mapper',
+		'name': u'Sales Order-Sales Invoice'
+	},
+
+	# Field Mapper Detail
+	{
+		'checking_operator': u'=',
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'customer',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'customer'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate) or obj.qty',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'qty'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parent',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'sales_order'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'name',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'so_detail'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval:flt(obj.amount) - flt(obj.billed_amt)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'amount'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: (flt(obj.amount) - flt(obj.billed_amt))* flt(obj.export_rate)/flt(obj.basic_rate)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'export_amount'
+	},
+
+	# Field Mapper Detail
+	{
+		'checking_operator': u'=',
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'project_name',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'project_name'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'reserved_warehouse',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'warehouse'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'naming_series',
+		'map': u'No',
+		'match_id': 0,
+		'to_field': u'naming_series'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'incentives',
+		'map': u'No',
+		'match_id': 3,
+		'to_field': u'incentives'
+	},
+
+	# Field Mapper Detail
+	{
+		'checking_operator': u'=',
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'export_rate',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'export_rate'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_table': u'Sales Order',
+		'match_id': 0,
+		'to_table': u'Sales Invoice',
+		'validation_logic': u'docstatus=1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'sales_order_detail',
+		'from_table': u'Sales Order Item',
+		'match_id': 1,
+		'to_field': u'entries',
+		'to_table': u'Sales Invoice Item',
+		'validation_logic': u'(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'other_charges',
+		'from_table': u'Sales Taxes and Charges',
+		'match_id': 2,
+		'to_field': u'other_charges',
+		'to_table': u'Sales Taxes and Charges',
+		'validation_logic': u'name is not null'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'sales_team',
+		'from_table': u'Sales Team',
+		'match_id': 3,
+		'to_field': u'sales_team',
+		'to_table': u'Sales Team',
+		'validation_logic': u'name is not null'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/GL Mapper/Journal Voucher/Journal Voucher.txt b/erpnext/accounts/GL Mapper/Journal Voucher/Journal Voucher.txt
index fac3831..1909477 100644
--- a/erpnext/accounts/GL Mapper/Journal Voucher/Journal Voucher.txt
+++ b/erpnext/accounts/GL Mapper/Journal Voucher/Journal Voucher.txt
@@ -1 +1 @@
-[{'doc_type': 'Journal Voucher', 'modified_by': 'nabin@webnotestech.com', 'name': 'Journal Voucher', 'parent': None, 'creation': '2009-03-12 12:09:24', 'modified': '2010-04-30 17:56:41', 'module': 'Accounts', 'doctype': 'GL Mapper', 'idx': None, 'parenttype': None, 'owner': 'Administrator', 'docstatus': 0, 'parentfield': None}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'parent:doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': 'cost_center', 'voucher_no': 'parent:name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': "value:d.against_voucher or d.against_invoice or d.against_jv or ''", 'table_field': 'entries', 'transaction_date': 'parent:voucher_date', 'debit': 'debit', 'docstatus': 0, 'parent': 'Journal Voucher', 'company': 'parent:company', 'aging_date': 'parent:aging_date', 'fiscal_year': 'parent:fiscal_year', 'is_advance': 'is_advance', 'remarks': 'parent:remark', 'account': 'account', 'name': 'GLMDetail00001', 'idx': 1, 'against_voucher_type': "value:(d.against_voucher and 'Payable Voucher') or (d.against_invoice and 'Receivable Voucher') or (d.against_jv and 'Journal Voucher') or ''", 'modified': '2010-04-30 17:56:41', 'against': 'against_account', 'credit': 'credit', 'parenttype': 'GL Mapper', 'is_opening': 'parent:is_opening', 'posting_date': 'parent:posting_date', 'parentfield': 'fields'}, {'creation': '2009-06-11 11:09:11', 'voucher_type': 'doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': '', 'voucher_no': 'name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': '', 'table_field': '', 'transaction_date': 'voucher_date', 'debit': 'value:0', 'docstatus': 0, 'parent': 'Journal Voucher', 'company': 'company', 'aging_date': 'aging_date', 'fiscal_year': 'fiscal_year', 'is_advance': '', 'remarks': 'remark', 'account': 'tax_code', 'name': 'GLMDetail00009', 'idx': 2, 'against_voucher_type': None, 'modified': '2010-04-30 17:56:41', 'against': 'supplier_account', 'credit': 'ded_amount', 'parenttype': 'GL Mapper', 'is_opening': 'is_opening', 'posting_date': 'posting_date', 'parentfield': 'fields'}]
+[{'doc_type': 'Journal Voucher', 'modified_by': 'nabin@webnotestech.com', 'name': 'Journal Voucher', 'parent': None, 'creation': '2009-03-12 12:09:24', 'modified': '2010-04-30 17:56:41', 'module': 'Accounts', 'doctype': 'GL Mapper', 'idx': None, 'parenttype': None, 'owner': 'Administrator', 'docstatus': 0, 'parentfield': None}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'parent:doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': 'cost_center', 'voucher_no': 'parent:name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': "value:d.against_voucher or d.against_invoice or d.against_jv or ''", 'table_field': 'entries', 'transaction_date': 'parent:voucher_date', 'debit': 'debit', 'docstatus': 0, 'parent': 'Journal Voucher', 'company': 'parent:company', 'aging_date': 'parent:aging_date', 'fiscal_year': 'parent:fiscal_year', 'is_advance': 'is_advance', 'remarks': 'parent:remark', 'account': 'account', 'name': 'GLMDetail00001', 'idx': 1, 'against_voucher_type': "value:(d.against_voucher and 'Purchase Invoice') or (d.against_invoice and 'Sales Invoice') or (d.against_jv and 'Journal Voucher') or ''", 'modified': '2010-04-30 17:56:41', 'against': 'against_account', 'credit': 'credit', 'parenttype': 'GL Mapper', 'is_opening': 'parent:is_opening', 'posting_date': 'parent:posting_date', 'parentfield': 'fields'}, {'creation': '2009-06-11 11:09:11', 'voucher_type': 'doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': '', 'voucher_no': 'name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': '', 'table_field': '', 'transaction_date': 'voucher_date', 'debit': 'value:0', 'docstatus': 0, 'parent': 'Journal Voucher', 'company': 'company', 'aging_date': 'aging_date', 'fiscal_year': 'fiscal_year', 'is_advance': '', 'remarks': 'remark', 'account': 'tax_code', 'name': 'GLMDetail00009', 'idx': 2, 'against_voucher_type': None, 'modified': '2010-04-30 17:56:41', 'against': 'supplier_account', 'credit': 'ded_amount', 'parenttype': 'GL Mapper', 'is_opening': 'is_opening', 'posting_date': 'posting_date', 'parentfield': 'fields'}]
diff --git a/erpnext/accounts/GL Mapper/Payable Voucher/Payable Voucher.txt b/erpnext/accounts/GL Mapper/Payable Voucher/Payable Voucher.txt
deleted file mode 100644
index eeeea70..0000000
--- a/erpnext/accounts/GL Mapper/Payable Voucher/Payable Voucher.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'doc_type': 'Payable Voucher', 'modified_by': 'nabin@webnotestech.com', 'name': 'Payable Voucher', 'parent': None, 'creation': '2009-03-12 12:09:24', 'modified': '2010-05-26 16:48:58', 'module': 'Accounts', 'doctype': 'GL Mapper', 'idx': None, 'parenttype': None, 'owner': 'Administrator', 'docstatus': 0, 'parentfield': None}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'parent:doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': 'cost_center', 'voucher_no': 'parent:name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': None, 'table_field': 'entries', 'transaction_date': 'parent:voucher_date', 'debit': 'amount', 'docstatus': 0, 'parent': 'Payable Voucher', 'company': 'parent:company', 'aging_date': 'parent:aging_date', 'fiscal_year': 'parent:fiscal_year', 'is_advance': None, 'remarks': 'parent:remarks', 'account': 'expense_head', 'name': 'GLMDetail00002', 'idx': 1, 'against_voucher_type': None, 'modified': '2010-05-26 16:48:58', 'against': 'parent:credit_to', 'credit': 'value:0', 'parenttype': 'GL Mapper', 'is_opening': 'parent:is_opening', 'posting_date': 'parent:posting_date', 'parentfield': 'fields'}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'parent:doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': 'cost_center', 'voucher_no': 'parent:name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': None, 'table_field': 'purchase_tax_details', 'transaction_date': 'parent:voucher_date', 'debit': "value:d.fields.get('category') != 'For Valuation' and d.fields.get('add_deduct_tax') == 'Add' and d.fields.get('tax_amount') or 0", 'docstatus': 0, 'parent': 'Payable Voucher', 'company': 'parent:company', 'aging_date': 'parent:aging_date', 'fiscal_year': 'parent:fiscal_year', 'is_advance': None, 'remarks': 'parent:remarks', 'account': 'account_head', 'name': 'GLMDetail00003', 'idx': 2, 'against_voucher_type': None, 'modified': '2010-05-26 16:48:58', 'against': 'parent:credit_to', 'credit': "value:d.fields.get('category') != 'For Valuation' and d.fields.get('add_deduct_tax') == 'Deduct' and d.fields.get('tax_amount') or 0", 'parenttype': 'GL Mapper', 'is_opening': 'parent:is_opening', 'posting_date': 'parent:posting_date', 'parentfield': 'fields'}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': '', 'voucher_no': 'name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': None, 'table_field': '', 'transaction_date': 'voucher_date', 'debit': 'value:0', 'docstatus': 0, 'parent': 'Payable Voucher', 'company': 'company', 'aging_date': 'aging_date', 'fiscal_year': 'fiscal_year', 'is_advance': None, 'remarks': 'remarks', 'account': 'tax_code', 'name': 'GLMDetail00004', 'idx': 3, 'against_voucher_type': None, 'modified': '2010-05-26 16:48:58', 'against': 'credit_to', 'credit': 'ded_amount', 'parenttype': 'GL Mapper', 'is_opening': 'is_opening', 'posting_date': 'posting_date', 'parentfield': 'fields'}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': '', 'voucher_no': 'name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': 'name', 'table_field': '', 'transaction_date': 'voucher_date', 'debit': 'value:0', 'docstatus': 0, 'parent': 'Payable Voucher', 'company': 'company', 'aging_date': 'aging_date', 'fiscal_year': 'fiscal_year', 'is_advance': None, 'remarks': 'remarks', 'account': 'credit_to', 'name': 'GLMDetail00005', 'idx': 4, 'against_voucher_type': "value:'Payable Voucher'", 'modified': '2010-05-26 16:48:58', 'against': 'against_expense_account', 'credit': 'total_amount_to_pay', 'parenttype': 'GL Mapper', 'is_opening': 'is_opening', 'posting_date': 'posting_date', 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/accounts/GL Mapper/Purchase Invoice/Purchase Invoice.txt b/erpnext/accounts/GL Mapper/Purchase Invoice/Purchase Invoice.txt
new file mode 100644
index 0000000..7fcf199
--- /dev/null
+++ b/erpnext/accounts/GL Mapper/Purchase Invoice/Purchase Invoice.txt
@@ -0,0 +1 @@
+[{'doc_type': 'Purchase Invoice', 'modified_by': 'nabin@webnotestech.com', 'name': 'Purchase Invoice', 'parent': None, 'creation': '2009-03-12 12:09:24', 'modified': '2010-05-26 16:48:58', 'module': 'Accounts', 'doctype': 'GL Mapper', 'idx': None, 'parenttype': None, 'owner': 'Administrator', 'docstatus': 0, 'parentfield': None}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'parent:doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': 'cost_center', 'voucher_no': 'parent:name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': None, 'table_field': 'entries', 'transaction_date': 'parent:voucher_date', 'debit': 'amount', 'docstatus': 0, 'parent': 'Purchase Invoice', 'company': 'parent:company', 'aging_date': 'parent:aging_date', 'fiscal_year': 'parent:fiscal_year', 'is_advance': None, 'remarks': 'parent:remarks', 'account': 'expense_head', 'name': 'GLMDetail00002', 'idx': 1, 'against_voucher_type': None, 'modified': '2010-05-26 16:48:58', 'against': 'parent:credit_to', 'credit': 'value:0', 'parenttype': 'GL Mapper', 'is_opening': 'parent:is_opening', 'posting_date': 'parent:posting_date', 'parentfield': 'fields'}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'parent:doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': 'cost_center', 'voucher_no': 'parent:name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': None, 'table_field': 'purchase_tax_details', 'transaction_date': 'parent:voucher_date', 'debit': "value:d.fields.get('category') != 'For Valuation' and d.fields.get('add_deduct_tax') == 'Add' and d.fields.get('tax_amount') or 0", 'docstatus': 0, 'parent': 'Purchase Invoice', 'company': 'parent:company', 'aging_date': 'parent:aging_date', 'fiscal_year': 'parent:fiscal_year', 'is_advance': None, 'remarks': 'parent:remarks', 'account': 'account_head', 'name': 'GLMDetail00003', 'idx': 2, 'against_voucher_type': None, 'modified': '2010-05-26 16:48:58', 'against': 'parent:credit_to', 'credit': "value:d.fields.get('category') != 'For Valuation' and d.fields.get('add_deduct_tax') == 'Deduct' and d.fields.get('tax_amount') or 0", 'parenttype': 'GL Mapper', 'is_opening': 'parent:is_opening', 'posting_date': 'parent:posting_date', 'parentfield': 'fields'}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': '', 'voucher_no': 'name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': None, 'table_field': '', 'transaction_date': 'voucher_date', 'debit': 'value:0', 'docstatus': 0, 'parent': 'Purchase Invoice', 'company': 'company', 'aging_date': 'aging_date', 'fiscal_year': 'fiscal_year', 'is_advance': None, 'remarks': 'remarks', 'account': 'tax_code', 'name': 'GLMDetail00004', 'idx': 3, 'against_voucher_type': None, 'modified': '2010-05-26 16:48:58', 'against': 'credit_to', 'credit': 'ded_amount', 'parenttype': 'GL Mapper', 'is_opening': 'is_opening', 'posting_date': 'posting_date', 'parentfield': 'fields'}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': '', 'voucher_no': 'name', 'modified_by': 'nabin@webnotestech.com', 'against_voucher': 'name', 'table_field': '', 'transaction_date': 'voucher_date', 'debit': 'value:0', 'docstatus': 0, 'parent': 'Purchase Invoice', 'company': 'company', 'aging_date': 'aging_date', 'fiscal_year': 'fiscal_year', 'is_advance': None, 'remarks': 'remarks', 'account': 'credit_to', 'name': 'GLMDetail00005', 'idx': 4, 'against_voucher_type': "value:'Purchase Invoice'", 'modified': '2010-05-26 16:48:58', 'against': 'against_expense_account', 'credit': 'total_amount_to_pay', 'parenttype': 'GL Mapper', 'is_opening': 'is_opening', 'posting_date': 'posting_date', 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt b/erpnext/accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt
deleted file mode 100644
index 72d0175..0000000
--- a/erpnext/accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'doc_type': 'Receivable Voucher', 'modified_by': 'Administrator', 'name': 'Receivable Voucher', 'parent': None, 'creation': '2009-03-12 12:09:24', 'modified': '2010-05-17 08:59:14', 'module': 'Accounts', 'doctype': 'GL Mapper', 'idx': None, 'parenttype': None, 'owner': 'Administrator', 'docstatus': 0, 'parentfield': None}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'parent:doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': 'cost_center', 'voucher_no': 'parent:name', 'modified_by': 'Administrator', 'against_voucher': None, 'table_field': 'entries', 'transaction_date': 'parent:voucher_date', 'debit': 'value:0', 'docstatus': 0, 'parent': 'Receivable Voucher', 'company': 'parent:company', 'aging_date': 'parent:aging_date', 'fiscal_year': 'parent:fiscal_year', 'is_advance': None, 'remarks': 'parent:remarks', 'account': 'income_account', 'name': 'GLMDetail00006', 'idx': 1, 'against_voucher_type': None, 'modified': '2010-05-17 08:59:14', 'against': 'parent:debit_to', 'credit': 'amount', 'parenttype': 'GL Mapper', 'is_opening': 'parent:is_opening', 'posting_date': 'parent:posting_date', 'parentfield': 'fields'}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'parent:doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': 'cost_center_other_charges', 'voucher_no': 'parent:name', 'modified_by': 'Administrator', 'against_voucher': None, 'table_field': 'other_charges', 'transaction_date': 'parent:voucher_date', 'debit': 'value:0', 'docstatus': 0, 'parent': 'Receivable Voucher', 'company': 'parent:company', 'aging_date': 'parent:aging_date', 'fiscal_year': 'parent:fiscal_year', 'is_advance': None, 'remarks': 'parent:remarks', 'account': 'account_head', 'name': 'GLMDetail00007', 'idx': 2, 'against_voucher_type': None, 'modified': '2010-05-17 08:59:14', 'against': 'parent:debit_to', 'credit': 'tax_amount', 'parenttype': 'GL Mapper', 'is_opening': 'parent:is_opening', 'posting_date': 'parent:posting_date', 'parentfield': 'fields'}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': '', 'voucher_no': 'name', 'modified_by': 'Administrator', 'against_voucher': 'name', 'table_field': '', 'transaction_date': 'voucher_date', 'debit': 'grand_total', 'docstatus': 0, 'parent': 'Receivable Voucher', 'company': 'company', 'aging_date': 'aging_date', 'fiscal_year': 'fiscal_year', 'is_advance': None, 'remarks': 'remarks', 'account': 'debit_to', 'name': 'GLMDetail00008', 'idx': 3, 'against_voucher_type': "value:'Receivable Voucher'", 'modified': '2010-05-17 08:59:14', 'against': 'against_income_account', 'credit': 'value:0', 'parenttype': 'GL Mapper', 'is_opening': 'is_opening', 'posting_date': 'posting_date', 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/accounts/GL Mapper/Sales Invoice/Sales Invoice.txt b/erpnext/accounts/GL Mapper/Sales Invoice/Sales Invoice.txt
new file mode 100644
index 0000000..4a4df3c
--- /dev/null
+++ b/erpnext/accounts/GL Mapper/Sales Invoice/Sales Invoice.txt
@@ -0,0 +1 @@
+[{'doc_type': 'Sales Invoice', 'modified_by': 'Administrator', 'name': 'Sales Invoice', 'parent': None, 'creation': '2009-03-12 12:09:24', 'modified': '2010-05-17 08:59:14', 'module': 'Accounts', 'doctype': 'GL Mapper', 'idx': None, 'parenttype': None, 'owner': 'Administrator', 'docstatus': 0, 'parentfield': None}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'parent:doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': 'cost_center', 'voucher_no': 'parent:name', 'modified_by': 'Administrator', 'against_voucher': None, 'table_field': 'entries', 'transaction_date': 'parent:voucher_date', 'debit': 'value:0', 'docstatus': 0, 'parent': 'Sales Invoice', 'company': 'parent:company', 'aging_date': 'parent:aging_date', 'fiscal_year': 'parent:fiscal_year', 'is_advance': None, 'remarks': 'parent:remarks', 'account': 'income_account', 'name': 'GLMDetail00006', 'idx': 1, 'against_voucher_type': None, 'modified': '2010-05-17 08:59:14', 'against': 'parent:debit_to', 'credit': 'amount', 'parenttype': 'GL Mapper', 'is_opening': 'parent:is_opening', 'posting_date': 'parent:posting_date', 'parentfield': 'fields'}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'parent:doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': 'cost_center_other_charges', 'voucher_no': 'parent:name', 'modified_by': 'Administrator', 'against_voucher': None, 'table_field': 'other_charges', 'transaction_date': 'parent:voucher_date', 'debit': 'value:0', 'docstatus': 0, 'parent': 'Sales Invoice', 'company': 'parent:company', 'aging_date': 'parent:aging_date', 'fiscal_year': 'parent:fiscal_year', 'is_advance': None, 'remarks': 'parent:remarks', 'account': 'account_head', 'name': 'GLMDetail00007', 'idx': 2, 'against_voucher_type': None, 'modified': '2010-05-17 08:59:14', 'against': 'parent:debit_to', 'credit': 'tax_amount', 'parenttype': 'GL Mapper', 'is_opening': 'parent:is_opening', 'posting_date': 'parent:posting_date', 'parentfield': 'fields'}, {'creation': '2009-03-12 12:09:24', 'voucher_type': 'doctype', 'doctype': 'GL Mapper Detail', 'owner': 'Administrator', 'cost_center': '', 'voucher_no': 'name', 'modified_by': 'Administrator', 'against_voucher': 'name', 'table_field': '', 'transaction_date': 'voucher_date', 'debit': 'grand_total', 'docstatus': 0, 'parent': 'Sales Invoice', 'company': 'company', 'aging_date': 'aging_date', 'fiscal_year': 'fiscal_year', 'is_advance': None, 'remarks': 'remarks', 'account': 'debit_to', 'name': 'GLMDetail00008', 'idx': 3, 'against_voucher_type': "value:'Sales Invoice'", 'modified': '2010-05-17 08:59:14', 'against': 'against_income_account', 'credit': 'value:0', 'parenttype': 'GL Mapper', 'is_opening': 'is_opening', 'posting_date': 'posting_date', 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/accounts/Module Def/Accounts/Accounts.txt b/erpnext/accounts/Module Def/Accounts/Accounts.txt
deleted file mode 100644
index f9c36c8..0000000
--- a/erpnext/accounts/Module Def/Accounts/Accounts.txt
+++ /dev/null
@@ -1,411 +0,0 @@
-# Module Def, Accounts
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-25 10:50:37',
-		'docstatus': 0,
-		'modified': '2011-12-07 16:18:28',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'name': '__common__',
-		'parent': 'Accounts',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def Item
-	{
-		'doctype': 'Module Def Item',
-		'name': '__common__',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def
-	{
-		'disabled': 'No',
-		'doctype': u'Module Def',
-		'doctype_list': 'GL Mapper, Journal Voucher\nGL Mapper, Payable Voucher\nGL Mapper, Receivable Voucher\nDocType Label, Receivable Voucher\nDocType Label, Payable Voucher',
-		'file_list': 'finance.gif,FileData/00210',
-		'is_hidden': 'No',
-		'last_updated_date': '2010-12-08 10:13:30',
-		'module_desc': 'Data about your payables, receivables and books of accounts',
-		'module_icon': 'Accounts.gif',
-		'module_label': 'Accounts',
-		'module_name': 'Accounts',
-		'module_seq': 5,
-		'name': '__common__'
-	},
-
-	# Module Def, Accounts
-	{
-		'doctype': u'Module Def',
-		'name': 'Accounts'
-	},
-
-	# Module Def Item
-	{
-		'click_function': "show_chart_browser('Accounts Browser','Account')",
-		'description': 'Manage your accounts',
-		'display_name': 'Chart of Accounts',
-		'doc_name': 'Accounts Browser',
-		'doc_type': 'Pages',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'click_function': "show_chart_browser('Accounts Browser','Cost Center')",
-		'description': 'Manage your cost centers',
-		'display_name': 'Chart of Cost Centers',
-		'doc_name': 'Accounts Browser',
-		'doc_type': 'Pages',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Regular journal entry',
-		'display_name': 'Journal Voucher',
-		'doc_name': 'Journal Voucher',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'voucher_type\nvoucher_date\nfiscal_year\ntotal_debit\ntotal_credit'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Outgoing Invoice to your customers',
-		'display_name': 'Sales Invoice',
-		'doc_name': 'Receivable Voucher',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'voucher_date\ndue_date\ndebit_to\ngrand_total\noutstanding_amount'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Incoming invoice from your service providers',
-		'display_name': 'Purchase Invoice',
-		'doc_name': 'Payable Voucher',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'voucher_date\ncredit_to\nbill_no\ngrand_total\noutstanding_amount'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Lease Agreement for Vehicles',
-		'display_name': 'Lease Agreement',
-		'doc_name': 'Lease Agreement',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Profit & Loss and Balance Sheet builder',
-		'display_name': 'Financial Statements',
-		'doc_name': 'Financial Statements',
-		'doc_type': 'Pages',
-		'doctype': 'Module Def Item',
-		'icon': 'table.gif'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Update your actual clearance dates and find out if bank ledger tallies with your bank statement.',
-		'display_name': 'Bank Reconciliation',
-		'doc_name': 'Bank Reconciliation',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Link your invoices and payment vouchers to clear/update outstanding amount',
-		'display_name': 'Internal Reconciliation',
-		'doc_name': 'Internal Reconciliation',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'TDS Payment',
-		'doc_name': 'TDS Payment',
-		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'TDS Return Acknowledgement',
-		'doc_name': 'TDS Return Acknowledgement',
-		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Form 16A',
-		'doc_name': 'Form 16A',
-		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Account closing entry (Profit Booking) on any date',
-		'display_name': 'Period Closing Voucher',
-		'doc_name': 'Period Closing Voucher',
-		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'You can export balance of selected ledgers within a specific period',
-		'display_name': 'Ledger Balance Export',
-		'doc_name': 'Ledger Balance Export',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Track C-Form received from customers',
-		'display_name': 'C-Form',
-		'doc_name': 'C-Form',
-		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'General Ledger',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Accounts Receivable',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Accounts Payable',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Bank Reconciliation Statement',
-		'doc_name': 'Journal Voucher Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Trial Balance',
-		'doc_name': 'Account',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Sales Register',
-		'doc_name': 'Receivable Voucher',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Purchase Register',
-		'doc_name': 'Payable Voucher',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Bank Clearance report',
-		'doc_name': 'Journal Voucher Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Monthly Ledger Summary Report',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Collection Report',
-		'doc_name': 'Journal Voucher Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Total amout collection for a period - Customerwise',
-		'doc_name': 'Account',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Payment Report',
-		'doc_name': 'Journal Voucher Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Itemwise Sales Register',
-		'doc_name': 'RV Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Itemwise Purchase Register',
-		'doc_name': 'PV Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Cost Center wise Expense',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'TDS Return',
-		'doc_name': 'TDS Payment Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Budget Variance Report',
-		'doc_name': 'Budget Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Payment Receipt Report',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Track total commission given to your Business Associate',
-		'display_name': 'Business Associate Commission Report',
-		'doc_name': 'Receivable Voucher',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Lease Agreement List',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Lease Monthly Future Installment Inflows',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Lease Overdue Age Wise',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Lease Overdue List',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Lease Receipts Client Wise',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Lease Yearly Future Installment Inflows',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Voucher wise tax details',
-		'doc_name': 'RV Tax Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Accounts Manager'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Accounts User'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/Print Format/POS Invoice/POS Invoice.txt b/erpnext/accounts/Print Format/POS Invoice/POS Invoice.txt
index 8664b38..82eeaf0 100644
--- a/erpnext/accounts/Print Format/POS Invoice/POS Invoice.txt
+++ b/erpnext/accounts/Print Format/POS Invoice/POS Invoice.txt
@@ -12,9 +12,9 @@
 
 	# These values are common for all Print Format
 	{
-		'doc_type': u'Receivable Voucher',
+		'doc_type': u'Sales Invoice',
 		'doctype': 'Print Format',
-		'html': u'<html>\n<head>\n<!--Other charges function-->\n<script>\nvar make_row = function(title,val,bold){\nvar bstart = \'<b>\'; var bend = \'</b>\';\nreturn \'<tr><td style="width:50%">\'+(bold?bstart:\'\')+title+(bold?bend:\'\')+\'</td>\'\n        +\'<td style="width:20%">\'+doc.currency+\'</td>\'\n        +\'<td style="width:30%;text-align:right">\'+(val?val:\'0.00\')+\'</td>\'\n        +\'</tr>\'\n}\nvar make_row1 = function(title,val,bold){\n    var bstart = \'<b>\'; var bend = \'</b>\';\n    \n    return \'<tr style="font-family:courier new; line-height:150%"><td style="width:50%">\'+(bold?bstart:\'\')+title+(bold?bend:\'\')+\'</td>\'\n            +\'<td style="width:50%;text-align:right">\'+(bold?bstart:\'\')+(val?val:\'0.00\')+(bold?bend:\'\')+\'</td>\'\n            +\'</tr>\'\n}\n\nfunction get_letter_head() {\n    // add letter head\n    var cp = wn.boot.control_panel;\n    if(doc.letter_head)\n        var lh= cstr(_p.letter_heads[doc.letter_head]);\n    else if(cp.letter_head)\n        var lh= cp.letter_head;\n    else \n        var lh= \'\';\n        \n    return lh;\n}\n\nfunction get_tax_details(){\n    var cl = getchildren(\'RV Tax Detail\',doc.name,\'other_charges\');\n    var out = \'\';\n\n    out += \'<div><table style="float: right;">\';\n    for(var i=0;i<cl.length;i++){\n        if(cl[i].tax_amount) {\n            out += make_row1(cl[i].description,fmt_money(convert_rate(cl[i].tax_amount)),0);\n        }\n    }\n    out += make_row1(\'TOTAL\',doc.currency + " " + fmt_money(convert_rate(doc.grand_total)),1);\n    out +=\'</table></div>\';\n    return out;\n}\n\nfunction convert_rate(val){    \n    var new_val = flt(val)/flt(doc.conversion_rate);\n    return new_val;\n}\n</script>\n<style>\n    table, td, tr, div, span {\n        font-family: courier new;\n        line-height: 200%;\n    }\n</style>\n</head>\n\n<body>\n<table width="100%" style="font-family: courier new; line-height:200%">\n<tr>\n    <td align="left">NO: <script>doc.name</script></td>\n    <td align="right">DATE: <script>date.str_to_user(doc.posting_date)</script></td>\n</tr>\n<tr>\n    <td>M/s <script>doc.contact_display</script></td>\n</tr>\n</table>\n<!--Item Table-->\n<div>\n<script>\nvar t = print_table(\'Receivable Voucher\', doc.name, \'entries\', \'RV Detail\',\n        [\'description\',\'qty\',\'export_rate\',\'export_amount\'], [\'ITEM\', \'QTY\',\'RATE\',\'AMOUNT\'],\n        [\'35%\',\'20%\',\'20%\',\'25%\']);\nif(t.appendChild) { // single\n    out = t.innerHTML.replace(/style="/gi,\'style="font-family:courier new;line-height:150%;\');\n} else { //multiple\n    out = \'<table class="None" border="0px" width="100%" style="border:0px; font-family:courier-new">\';\n\n    for(var i=0;i<t.length;i++) {\n        if(i==0) {\n            out += \'<tr>\' + t[i].childNodes[0].childNodes[0].childNodes[0].innerHTML\n                .replace(/style="border: 1px solid rgb\\(0, 0, 0\\);/gi,\'style="font-family:courier new;\')\n                + \'</tr>\';\n        }\n        out += \'<tr>\' + t[i].childNodes[0].childNodes[0].childNodes[1].innerHTML\n                .replace(/style="border: 1px solid rgb\\(0, 0, 0\\);/gi,\'style="font-family:courier new;\')\n                + \'</tr>\';\n    }\n    out += \'</table>\';\n}\nout;\n</script>\n</div>\n<!--Tax table-->\n<div><script>get_tax_details();</script></div><br />\n<table style="font-family:courier new;">\n    <tr><td><b><script>doc.terms</script></b></td></tr>\n    <tr><td nowrap><b>For <script>doc.company</script></b></td></tr>\n    <tr><td>&nbsp;</td></tr>\n    <tr><td nowrap><b>Signatory</b></td></tr>\n</table>\n</body>\n</html>\n',
+		'html': u'<html>\n<head>\n<!--Other charges function-->\n<script>\nvar make_row = function(title,val,bold){\nvar bstart = \'<b>\'; var bend = \'</b>\';\nreturn \'<tr><td style="width:50%">\'+(bold?bstart:\'\')+title+(bold?bend:\'\')+\'</td>\'\n        +\'<td style="width:20%">\'+doc.currency+\'</td>\'\n        +\'<td style="width:30%;text-align:right">\'+(val?val:\'0.00\')+\'</td>\'\n        +\'</tr>\'\n}\nvar make_row1 = function(title,val,bold){\n    var bstart = \'<b>\'; var bend = \'</b>\';\n    \n    return \'<tr style="font-family:courier new; line-height:150%"><td style="width:50%">\'+(bold?bstart:\'\')+title+(bold?bend:\'\')+\'</td>\'\n            +\'<td style="width:50%;text-align:right">\'+(bold?bstart:\'\')+(val?val:\'0.00\')+(bold?bend:\'\')+\'</td>\'\n            +\'</tr>\'\n}\n\nfunction get_letter_head() {\n    // add letter head\n    var cp = wn.boot.control_panel;\n    if(doc.letter_head)\n        var lh= cstr(_p.letter_heads[doc.letter_head]);\n    else if(cp.letter_head)\n        var lh= cp.letter_head;\n    else \n        var lh= \'\';\n        \n    return lh;\n}\n\nfunction get_tax_details(){\n    var cl = getchildren(\'Sales Taxes and Charges\',doc.name,\'other_charges\');\n    var out = \'\';\n\n    out += \'<div><table style="float: right;">\';\n    for(var i=0;i<cl.length;i++){\n        if(cl[i].tax_amount) {\n            out += make_row1(cl[i].description,fmt_money(convert_rate(cl[i].tax_amount)),0);\n        }\n    }\n    out += make_row1(\'TOTAL\',doc.currency + " " + fmt_money(convert_rate(doc.grand_total)),1);\n    out +=\'</table></div>\';\n    return out;\n}\n\nfunction convert_rate(val){    \n    var new_val = flt(val)/flt(doc.conversion_rate);\n    return new_val;\n}\n</script>\n<style>\n    table, td, tr, div, span {\n        font-family: courier new;\n        line-height: 200%;\n    }\n</style>\n</head>\n\n<body>\n<table width="100%" style="font-family: courier new; line-height:200%">\n<tr>\n    <td align="left">NO: <script>doc.name</script></td>\n    <td align="right">DATE: <script>date.str_to_user(doc.posting_date)</script></td>\n</tr>\n<tr>\n    <td>M/s <script>doc.contact_display</script></td>\n</tr>\n</table>\n<!--Item Table-->\n<div>\n<script>\nvar t = print_table(\'Sales Invoice\', doc.name, \'entries\', \'Sales Invoice Item\',\n        [\'description\',\'qty\',\'export_rate\',\'export_amount\'], [\'ITEM\', \'QTY\',\'RATE\',\'AMOUNT\'],\n        [\'35%\',\'20%\',\'20%\',\'25%\']);\nif(t.appendChild) { // single\n    out = t.innerHTML.replace(/style="/gi,\'style="font-family:courier new;line-height:150%;\');\n} else { //multiple\n    out = \'<table class="None" border="0px" width="100%" style="border:0px; font-family:courier-new">\';\n\n    for(var i=0;i<t.length;i++) {\n        if(i==0) {\n            out += \'<tr>\' + t[i].childNodes[0].childNodes[0].childNodes[0].innerHTML\n                .replace(/style="border: 1px solid rgb\\(0, 0, 0\\);/gi,\'style="font-family:courier new;\')\n                + \'</tr>\';\n        }\n        out += \'<tr>\' + t[i].childNodes[0].childNodes[0].childNodes[1].innerHTML\n                .replace(/style="border: 1px solid rgb\\(0, 0, 0\\);/gi,\'style="font-family:courier new;\')\n                + \'</tr>\';\n    }\n    out += \'</table>\';\n}\nout;\n</script>\n</div>\n<!--Tax table-->\n<div><script>get_tax_details();</script></div><br />\n<table style="font-family:courier new;">\n    <tr><td><b><script>doc.terms</script></b></td></tr>\n    <tr><td nowrap><b>For <script>doc.company</script></b></td></tr>\n    <tr><td>&nbsp;</td></tr>\n    <tr><td nowrap><b>Signatory</b></td></tr>\n</table>\n</body>\n</html>\n',
 		'module': u'Accounts',
 		'name': '__common__',
 		'standard': u'Yes'
diff --git a/erpnext/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt b/erpnext/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt
index 510e922..8238600 100644
--- a/erpnext/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt
+++ b/erpnext/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt
@@ -12,9 +12,9 @@
 
 	# These values are common for all Print Format
 	{
-		'doc_type': u'Receivable Voucher',
+		'doc_type': u'Sales Invoice',
 		'doctype': 'Print Format',
-		'html': u'<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Georgia", serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Georgia", serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table thead {\n\t\tborder-bottom: 1px solid black;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px 0px;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Receivable Voucher\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'entries\',\n\t\t\t\t\'RV Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td><script>\'<h1>\' + (doc.select_print_heading || \'Invoice\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=40%><b>Invoice Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.posting_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Due Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.due_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': u'<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Georgia", serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Georgia", serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table thead {\n\t\tborder-bottom: 1px solid black;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px 0px;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Sales Invoice\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'entries\',\n\t\t\t\t\'Sales Invoice Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td><script>\'<h1>\' + (doc.select_print_heading || \'Invoice\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=40%><b>Invoice Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.posting_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Due Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.due_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': u'Accounts',
 		'name': '__common__',
 		'standard': u'Yes'
diff --git a/erpnext/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt b/erpnext/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt
index 3c44fc7..7d58d65 100644
--- a/erpnext/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt
+++ b/erpnext/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt
@@ -12,9 +12,9 @@
 
 	# These values are common for all Print Format
 	{
-		'doc_type': u'Receivable Voucher',
+		'doc_type': u'Sales Invoice',
 		'doctype': 'Print Format',
-		'html': u'<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Helvetica", "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Helvetica", "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t\tborder-style: none !important;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t\tborder-style: none !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h1 {\n\t\ttext-transform: uppercase;\n\t\tcolor: white;\n\t\tfont-size: 55px;\n\t\tfont-style: italic;\n\t}\n\n\ttable.header-table thead tr:nth-child(1) div {\n\t\theight: 24px;\n\t\tbackground-color: #696969;\n\t\tvertical-align: middle;\n\t\tpadding: 12px 0px 0px 0px;\n\t\twidth: 100%;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body table tr td {\n\t\tbackground-color: #DCDCDC !important;\n\t}\n\n\tdiv.page-body table tr:nth-child(1) td {\n\t\tbackground-color: #696969 !important;\n\t\tcolor: white !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table tfoot td {\n\t\tbackground-color: #696969;\n\t\theight: 10px;\n\t}\n\n\t.imp-details {\n\t\tbackground-color: #DCDCDC;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Receivable Voucher\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'entries\',\n\t\t\t\t\'RV Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><div><script>\'<h1>\' + (doc.select_print_heading || \'Invoice\') + \'</h1>\'</script></div></td></tr>\n\t\t\t<tr><td colspan=2><div style="height:15px"></div></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr class=\'imp-details\'>\n\t\t\t\t\t\t<td><b>Invoice No.</b></td>\n\t\t\t\t\t\t<td><script>cur_frm.docname</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=40%><b>Invoice Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.posting_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Due Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.due_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\' class=\'imp-details\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\t<tr><td colspan=2><div></div></td><tr>\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': u'<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Helvetica", "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Helvetica", "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t\tborder-style: none !important;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t\tborder-style: none !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h1 {\n\t\ttext-transform: uppercase;\n\t\tcolor: white;\n\t\tfont-size: 55px;\n\t\tfont-style: italic;\n\t}\n\n\ttable.header-table thead tr:nth-child(1) div {\n\t\theight: 24px;\n\t\tbackground-color: #696969;\n\t\tvertical-align: middle;\n\t\tpadding: 12px 0px 0px 0px;\n\t\twidth: 100%;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body table tr td {\n\t\tbackground-color: #DCDCDC !important;\n\t}\n\n\tdiv.page-body table tr:nth-child(1) td {\n\t\tbackground-color: #696969 !important;\n\t\tcolor: white !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table tfoot td {\n\t\tbackground-color: #696969;\n\t\theight: 10px;\n\t}\n\n\t.imp-details {\n\t\tbackground-color: #DCDCDC;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Sales Invoice\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'entries\',\n\t\t\t\t\'Sales Invoice Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><div><script>\'<h1>\' + (doc.select_print_heading || \'Invoice\') + \'</h1>\'</script></div></td></tr>\n\t\t\t<tr><td colspan=2><div style="height:15px"></div></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr class=\'imp-details\'>\n\t\t\t\t\t\t<td><b>Invoice No.</b></td>\n\t\t\t\t\t\t<td><script>cur_frm.docname</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=40%><b>Invoice Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.posting_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Due Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.due_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\' class=\'imp-details\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\t<tr><td colspan=2><div></div></td><tr>\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': u'Accounts',
 		'name': '__common__',
 		'standard': u'Yes'
diff --git a/erpnext/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt b/erpnext/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt
index b91f5cd..354e65f 100644
--- a/erpnext/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt
+++ b/erpnext/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt
@@ -12,9 +12,9 @@
 
 	# These values are common for all Print Format
 	{
-		'doc_type': u'Receivable Voucher',
+		'doc_type': u'Sales Invoice',
 		'doctype': 'Print Format',
-		'html': u'<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 0px;\n\t}\n\n\ttable {\n\t\twidth: 100% !important;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\n\ttable, td {\n\t\tborder-collapse: collapse !important;\n\t\tpadding: 0px;\n\t\tmargin: 0px !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px;\n\t}\n\n\ttable.header-table > thead,\n\ttable.header-table > tbody > tr > td,\n\ttable.footer-table > tbody > tr > td {\n\t\tborder: 1px solid black;\n\t\tpadding: 5px;\n\t}\n\n\ttable.footer-table > tbody,\n\ttable.header-table > thead {\n\t\tborder-bottom: 3px solid black;\n\t}\n\n\ttable.header-table > thead {\n\t\tborder-top: 3px solid black;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body td {\n\t\tbackground-color: white !important;\n\t\tborder: 1px solid black !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Receivable Voucher\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'entries\',\n\t\t\t\t\'RV Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><script>\'<h1>\' + (doc.select_print_heading || \'Invoice\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=40%><b>Invoice Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.posting_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Due Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.due_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': u'<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 0px;\n\t}\n\n\ttable {\n\t\twidth: 100% !important;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\n\ttable, td {\n\t\tborder-collapse: collapse !important;\n\t\tpadding: 0px;\n\t\tmargin: 0px !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px;\n\t}\n\n\ttable.header-table > thead,\n\ttable.header-table > tbody > tr > td,\n\ttable.footer-table > tbody > tr > td {\n\t\tborder: 1px solid black;\n\t\tpadding: 5px;\n\t}\n\n\ttable.footer-table > tbody,\n\ttable.header-table > thead {\n\t\tborder-bottom: 3px solid black;\n\t}\n\n\ttable.header-table > thead {\n\t\tborder-top: 3px solid black;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body td {\n\t\tbackground-color: white !important;\n\t\tborder: 1px solid black !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Sales Invoice\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'entries\',\n\t\t\t\t\'Sales Invoice Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><script>\'<h1>\' + (doc.select_print_heading || \'Invoice\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=40%><b>Invoice Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.posting_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Due Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.due_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': u'Accounts',
 		'name': '__common__',
 		'standard': u'Yes'
diff --git a/erpnext/accounts/Role/Accounts Manager/Accounts Manager.txt b/erpnext/accounts/Role/Accounts Manager/Accounts Manager.txt
deleted file mode 100644
index 6f6759c..0000000
--- a/erpnext/accounts/Role/Accounts Manager/Accounts Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Accounts Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2009-03-19 14:57:46',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Accounts',
-		'name': '__common__',
-		'role_name': 'Accounts Manager'
-	},
-
-	# Role, Accounts Manager
-	{
-		'doctype': 'Role',
-		'name': 'Accounts Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/Role/Accounts User/Accounts User.txt b/erpnext/accounts/Role/Accounts User/Accounts User.txt
deleted file mode 100644
index 519924e..0000000
--- a/erpnext/accounts/Role/Accounts User/Accounts User.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Accounts User
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-08 12:05:21',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Accounts',
-		'name': '__common__',
-		'role_name': 'Accounts User'
-	},
-
-	# Role, Accounts User
-	{
-		'doctype': 'Role',
-		'name': 'Accounts User'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/__init__.py b/erpnext/accounts/__init__.py
index 44d6aec..6934003 100644
--- a/erpnext/accounts/__init__.py
+++ b/erpnext/accounts/__init__.py
@@ -18,6 +18,11 @@
 from webnotes.utils import flt
 from webnotes.model.code import get_obj
 
+install_docs = [
+	{"doctype":"Role", "name":"Accounts Manager"},
+	{"doctype":"Role", "name":"Accounts User"}
+]
+
 @webnotes.whitelist()
 def get_default_bank_account():
 	"""
@@ -67,9 +72,9 @@
 		}, { ... }, ...]
 	"""
 	if doc.get('return_type')=='Sales Return':
-		obj = get_obj('Receivable Voucher', doc.get('sales_invoice_no'), with_children=1)
+		obj = get_obj('Sales Invoice', doc.get('sales_invoice_no'), with_children=1)
 	else:
-		obj = get_obj('Payable Voucher', doc.get('purchase_invoice_no'), with_children=1)
+		obj = get_obj('Purchase Invoice', doc.get('purchase_invoice_no'), with_children=1)
 	if not obj.doc.docstatus==1: return
 
 	# Build invoice account jv detail record
@@ -200,14 +205,14 @@
 	
 	dn_obj = get_obj('Delivery Note', doc['delivery_note_no'], with_children=1)
 	
-	inv_list = get_inv_list('tabRV Detail', 'delivery_note', doc['delivery_note_no'])
+	inv_list = get_inv_list('tabSales Invoice Item', 'delivery_note', doc['delivery_note_no'])
 
 	if inv_list:
 		jv_details_list = get_jv_details_from_inv_list(doc, children, fiscal_year, inv_list, jv_details_list)
 	
 	if not (inv_list and jv_details_list):
 		so_list = get_prev_doc_list(dn_obj, 'Sales Order')
-		inv_list = get_inv_list('tabRV Detail', 'sales_order', so_list)
+		inv_list = get_inv_list('tabSales Invoice Item', 'sales_order', so_list)
 		if inv_list:
 			jv_details_list = get_jv_details_from_inv_list(doc, children, fiscal_year, inv_list, jv_details_list)
 
@@ -223,14 +228,14 @@
 	
 	pr_obj = get_obj('Purchase Receipt', doc['purchase_receipt_no'], with_children=1)
 	
-	inv_list = get_inv_list('tabPV Detail', 'purchase_receipt', doc['purchase_receipt_no'])
+	inv_list = get_inv_list('tabPurchase Invoice Item', 'purchase_receipt', doc['purchase_receipt_no'])
 
 	if inv_list:
 		jv_details_list = get_jv_details_from_inv_list(doc, children, fiscal_year, inv_list, jv_details_list)
 	
 	if not (inv_list and jv_details_list):
 		po_list = get_prev_doc_list(pr_obj, 'Purchase Order')
-		inv_list = get_inv_list('tabPV Detail', 'purchase_order', po_list)
+		inv_list = get_inv_list('tabPurchase Invoice Item', 'purchase_order', po_list)
 		if inv_list:
 			jv_details_list = get_jv_details_from_inv_list(doc, children, fiscal_year, inv_list, jv_details_list)
 
diff --git a/erpnext/accounts/doctype/account/account.js b/erpnext/accounts/doctype/account/account.js
index 32f60c7..57edd5a 100644
--- a/erpnext/accounts/doctype/account/account.js
+++ b/erpnext/accounts/doctype/account/account.js
@@ -57,7 +57,7 @@
 
 // Convert group to ledger
 // -----------------------------------------
-cur_frm.cscript['Convert to Ledger'] = function(doc, cdt, cdn) {
+cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) {
   $c_obj(make_doclist(cdt,cdn),'convert_group_to_ledger','',function(r,rt) {
     if(r.message == 1) {
       doc.group_or_ledger = 'Ledger';
@@ -69,7 +69,7 @@
 
 // Convert ledger to group
 // -----------------------------------------
-cur_frm.cscript['Convert to Group'] = function(doc, cdt, cdn) {
+cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) {
   $c_obj(make_doclist(cdt,cdn),'convert_ledger_to_group','',function(r,rt) {
     if(r.message == 1) {
       doc.group_or_ledger = 'Group';
diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py
index e3c1977..f11ec0c 100644
--- a/erpnext/accounts/doctype/account/account.py
+++ b/erpnext/accounts/doctype/account/account.py
@@ -223,7 +223,7 @@
 	# ==================================================================
 	def get_authorized_user(self):
 		# Check logged-in user is authorized
-		if get_value('Manage Account', None, 'credit_controller') in webnotes.user.get_roles():
+		if get_value('Global Defaults', None, 'credit_controller') in webnotes.user.get_roles():
 			return 1
 			
 	# Check Credit limit for customer
diff --git a/erpnext/accounts/doctype/account/account.txt b/erpnext/accounts/doctype/account/account.txt
index 0fdeaac..ec0ade9 100644
--- a/erpnext/accounts/doctype/account/account.txt
+++ b/erpnext/accounts/doctype/account/account.txt
@@ -3,170 +3,168 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:51',
+		'creation': '2012-03-27 14:35:39',
 		'docstatus': 0,
-		'modified': '2012-02-02 15:34:41',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:39',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1325570645',
+		'_last_update': u'1325570645',
 		'allow_copy': 1,
 		'allow_trash': 1,
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'search_fields': 'account_type, debit_or_credit, group_or_ledger',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'search_fields': u'debit_or_credit, group_or_ledger',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 138
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Account',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Account',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'amend': 0,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Account',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
+		'parent': u'Account',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1,
+		'submit': 0
 	},
 
 	# DocType, Account
 	{
 		'doctype': 'DocType',
-		'name': 'Account'
+		'name': u'Account'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Sales User'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Purchase User'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Accounts User',
-		'submit': 0,
+		'role': u'Accounts User',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Accounts Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Accounts User',
-		'submit': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
 		'write': 0
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Accounts Manager',
-		'submit': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase User',
 		'write': 0
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 2,
-		'role': 'Accounts Manager',
-		'submit': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts User',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 2,
-		'role': 'Accounts User',
-		'submit': 0,
+		'role': u'Accounts Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'Accounts User',
 		'write': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Properties',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'properties',
+		'fieldtype': u'Section Break',
+		'label': u'Properties',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'account_name',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'account_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Account Name',
+		'label': u'Account Name',
 		'no_copy': 1,
-		'oldfieldname': 'account_name',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'account_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 1
@@ -174,42 +172,42 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'parent_account',
-		'fieldtype': 'Link',
-		'label': 'Parent Account',
-		'oldfieldname': 'parent_account',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'doctype': u'DocField',
+		'fieldname': u'parent_account',
+		'fieldtype': u'Link',
+		'label': u'Parent Account',
+		'oldfieldname': u'parent_account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'permlevel': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'level',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'level',
+		'fieldtype': u'Int',
 		'hidden': 1,
-		'label': 'Level',
-		'oldfieldname': 'level',
-		'oldfieldtype': 'Int',
+		'label': u'Level',
+		'oldfieldname': u'level',
+		'oldfieldtype': u'Int',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'default': 'Ledger',
-		'doctype': 'DocField',
-		'fieldname': 'group_or_ledger',
-		'fieldtype': 'Select',
+		'default': u'Ledger',
+		'doctype': u'DocField',
+		'fieldname': u'group_or_ledger',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Group or Ledger',
-		'oldfieldname': 'group_or_ledger',
-		'oldfieldtype': 'Select',
-		'options': '\nLedger\nGroup',
+		'label': u'Group or Ledger',
+		'oldfieldname': u'group_or_ledger',
+		'oldfieldtype': u'Select',
+		'options': u'\nLedger\nGroup',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 1
@@ -217,109 +215,112 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Convert to Group',
+		'doctype': u'DocField',
+		'fieldname': u'convert_to_group',
+		'fieldtype': u'Button',
+		'label': u'Convert to Group',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Convert to Ledger',
+		'doctype': u'DocField',
+		'fieldname': u'convert_to_ledger',
+		'fieldtype': u'Button',
+		'label': u'Convert to Ledger',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'debit_or_credit',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'debit_or_credit',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Debit or Credit',
-		'oldfieldname': 'debit_or_credit',
-		'oldfieldtype': 'Data',
+		'label': u'Debit or Credit',
+		'oldfieldname': u'debit_or_credit',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_pl_account',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'is_pl_account',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Is PL Account',
-		'oldfieldname': 'is_pl_account',
-		'oldfieldtype': 'Select',
-		'options': 'Yes\nNo',
+		'label': u'Is PL Account',
+		'oldfieldname': u'is_pl_account',
+		'oldfieldtype': u'Select',
+		'options': u'Yes\nNo',
 		'permlevel': 1,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'account_type',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'account_type',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Account Type',
-		'oldfieldname': 'account_type',
-		'oldfieldtype': 'Select',
-		'options': '\nFixed Asset Account\nBank or Cash\nExpense Account\nTax\nIncome Account\nChargeable',
+		'label': u'Account Type',
+		'oldfieldname': u'account_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nFixed Asset Account\nBank or Cash\nExpense Account\nTax\nIncome Account\nChargeable',
 		'permlevel': 0,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'If Account Type is "Tax" then the default rate is required.',
-		'doctype': 'DocField',
-		'fieldname': 'tax_rate',
-		'fieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'description': u'If Account Type is "Tax" then the default rate is required.',
+		'doctype': u'DocField',
+		'fieldname': u'tax_rate',
+		'fieldtype': u'Currency',
 		'hidden': 0,
-		'label': 'Rate',
-		'oldfieldname': 'tax_rate',
-		'oldfieldtype': 'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'tax_rate',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'freeze_account',
-		'fieldtype': 'Select',
-		'label': 'Freeze Account',
-		'oldfieldname': 'freeze_account',
-		'oldfieldtype': 'Select',
-		'options': 'No\nYes',
+		'doctype': u'DocField',
+		'fieldname': u'freeze_account',
+		'fieldtype': u'Select',
+		'label': u'Freeze Account',
+		'oldfieldname': u'freeze_account',
+		'oldfieldtype': u'Select',
+		'options': u'No\nYes',
 		'permlevel': 2
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 1
@@ -327,128 +328,129 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'credit_days',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'credit_days',
+		'fieldtype': u'Int',
 		'hidden': 1,
-		'label': 'Credit Days',
-		'oldfieldname': 'credit_days',
-		'oldfieldtype': 'Int',
+		'label': u'Credit Days',
+		'oldfieldname': u'credit_days',
+		'oldfieldtype': u'Int',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'credit_limit',
-		'fieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'credit_limit',
+		'fieldtype': u'Currency',
 		'hidden': 1,
-		'label': 'Credit Limit',
-		'oldfieldname': 'credit_limit',
-		'oldfieldtype': 'Currency',
+		'label': u'Credit Limit',
+		'oldfieldname': u'credit_limit',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'master_type',
-		'fieldtype': 'Select',
-		'label': 'Master Type',
-		'oldfieldname': 'master_type',
-		'oldfieldtype': 'Select',
-		'options': '\nNA\nSupplier\nCustomer\nEmployee',
+		'doctype': u'DocField',
+		'fieldname': u'master_type',
+		'fieldtype': u'Select',
+		'label': u'Master Type',
+		'oldfieldname': u'master_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nNA\nSupplier\nCustomer\nEmployee',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'master_name',
-		'fieldtype': 'Link',
-		'label': 'Master Name',
-		'oldfieldname': 'master_name',
-		'oldfieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'master_name',
+		'fieldtype': u'Link',
+		'label': u'Master Name',
+		'oldfieldname': u'master_name',
+		'oldfieldtype': u'Link',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'TDS',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'tds',
+		'fieldtype': u'Section Break',
+		'label': u'TDS',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'pan_number',
-		'fieldtype': 'Data',
-		'label': 'PAN Number',
-		'oldfieldname': 'pan_number',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'pan_number',
+		'fieldtype': u'Data',
+		'label': u'PAN Number',
+		'oldfieldname': u'pan_number',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'default': 'No',
-		'doctype': 'DocField',
-		'fieldname': 'tds_applicable',
-		'fieldtype': 'Select',
-		'label': 'TDS Applicable',
-		'oldfieldname': 'tds_applicable',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'default': u'No',
+		'doctype': u'DocField',
+		'fieldname': u'tds_applicable',
+		'fieldtype': u'Select',
+		'label': u'TDS Applicable',
+		'oldfieldname': u'tds_applicable',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tds_details',
-		'fieldtype': 'Table',
-		'label': 'TDS Details',
-		'oldfieldname': 'tds_details',
-		'oldfieldtype': 'Table',
-		'options': 'TDS Detail',
+		'doctype': u'DocField',
+		'fieldname': u'tds_details',
+		'fieldtype': u'Table',
+		'label': u'TDS Details',
+		'oldfieldname': u'tds_details',
+		'oldfieldtype': u'Table',
+		'options': u'TDS Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'description': "Don't delete this field at any cost",
-		'doctype': 'DocField',
-		'fieldname': 'old_parent',
-		'fieldtype': 'Link',
+		'description': u"Don't delete this field at any cost",
+		'doctype': u'DocField',
+		'fieldname': u'old_parent',
+		'fieldtype': u'Link',
 		'hidden': 1,
-		'label': 'Old Parent',
+		'label': u'Old Parent',
 		'no_copy': 1,
-		'oldfieldname': 'old_parent',
-		'oldfieldtype': 'Data',
-		'options': 'Account',
+		'oldfieldname': u'old_parent',
+		'oldfieldtype': u'Data',
+		'options': u'Account',
 		'permlevel': 0,
 		'report_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': "Don't delete this field at any cost",
-		'doctype': 'DocField',
-		'fieldname': 'lft',
-		'fieldtype': 'Int',
+		'colour': u'White:FFF',
+		'description': u"Don't delete this field at any cost",
+		'doctype': u'DocField',
+		'fieldname': u'lft',
+		'fieldtype': u'Int',
 		'hidden': 1,
 		'in_filter': 1,
-		'label': 'Lft',
+		'label': u'Lft',
 		'no_copy': 1,
-		'oldfieldname': 'lft',
-		'oldfieldtype': 'Int',
+		'oldfieldname': u'lft',
+		'oldfieldtype': u'Int',
 		'permlevel': 3,
 		'print_hide': 1,
 		'report_hide': 1,
@@ -457,17 +459,17 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': "Don't delete this field at any cost",
-		'doctype': 'DocField',
-		'fieldname': 'rgt',
-		'fieldtype': 'Int',
+		'colour': u'White:FFF',
+		'description': u"Don't delete this field at any cost",
+		'doctype': u'DocField',
+		'fieldname': u'rgt',
+		'fieldtype': u'Int',
 		'hidden': 1,
 		'in_filter': 1,
-		'label': 'Rgt',
+		'label': u'Rgt',
 		'no_copy': 1,
-		'oldfieldname': 'rgt',
-		'oldfieldtype': 'Int',
+		'oldfieldname': u'rgt',
+		'oldfieldtype': u'Int',
 		'permlevel': 3,
 		'print_hide': 1,
 		'report_hide': 1,
@@ -476,12 +478,12 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/account_balance/account_balance.txt b/erpnext/accounts/doctype/account_balance/account_balance.txt
index 1d23bb2..903d270 100644
--- a/erpnext/accounts/doctype/account_balance/account_balance.txt
+++ b/erpnext/accounts/doctype/account_balance/account_balance.txt
@@ -3,36 +3,37 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:51',
+		'creation': '2012-03-27 14:35:40',
 		'docstatus': 0,
-		'modified': '2011-03-24 14:43:15',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:40',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1305714002',
-		'autoname': '_ACB.######',
-		'colour': 'White:FFF',
+		'_last_update': u'1322549700',
+		'autoname': u'_ACB.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'istable': 0,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'search_fields': 'account, period, fiscal_year, balance',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'account, period, fiscal_year, balance',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 28
+		'version': 6
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Account Balance',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Account Balance',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
@@ -41,11 +42,11 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Account Balance',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Account Balance',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'submit': 0,
@@ -55,153 +56,122 @@
 	# DocType, Account Balance
 	{
 		'doctype': 'DocType',
-		'name': 'Account Balance'
+		'name': u'Account Balance'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'Accounts User'
+		'doctype': u'DocPerm',
+		'role': u'Accounts User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'Accounts Manager'
+		'doctype': u'DocPerm',
+		'role': u'Accounts Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'account',
-		'fieldtype': 'Link',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'account',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Account',
-		'options': 'Account',
+		'label': u'Account',
+		'options': u'Account',
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'period',
-		'fieldtype': 'Link',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'period',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Period',
-		'oldfieldname': 'period',
-		'oldfieldtype': 'Link',
-		'options': 'Period',
+		'label': u'Period',
+		'oldfieldname': u'period',
+		'oldfieldtype': u'Link',
+		'options': u'Period',
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'opening',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Opening',
-		'oldfieldname': 'opening',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'opening',
+		'fieldtype': u'Currency',
+		'label': u'Opening',
+		'oldfieldname': u'opening',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'debit',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Debit',
-		'oldfieldname': 'debit',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'debit',
+		'fieldtype': u'Currency',
+		'label': u'Debit',
+		'oldfieldname': u'debit',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'debit',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Debit',
-		'oldfieldname': 'debit',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'credit',
+		'fieldtype': u'Currency',
+		'label': u'Credit',
+		'oldfieldname': u'credit',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'credit',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Credit',
-		'oldfieldname': 'credit',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'balance',
+		'fieldtype': u'Currency',
+		'label': u'Balance',
+		'oldfieldname': u'balance',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'credit',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Credit',
-		'oldfieldname': 'credit',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'balance',
-		'fieldtype': 'Currency',
-		'idx': 8,
-		'label': 'Balance',
-		'oldfieldname': 'balance',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Link',
 		'hidden': 1,
-		'idx': 9,
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Link',
-		'options': 'Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Link',
+		'options': u'Fiscal Year',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'start_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'start_date',
+		'fieldtype': u'Date',
 		'hidden': 1,
-		'idx': 10,
 		'in_filter': 1,
-		'label': 'Start Date',
-		'oldfieldname': 'start_date',
-		'oldfieldtype': 'Date',
+		'label': u'Start Date',
+		'oldfieldname': u'start_date',
+		'oldfieldtype': u'Date',
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'end_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'end_date',
+		'fieldtype': u'Date',
 		'hidden': 1,
-		'idx': 11,
 		'in_filter': 1,
-		'label': 'End Date',
-		'oldfieldname': 'end_date',
-		'oldfieldtype': 'Date',
+		'label': u'End Date',
+		'oldfieldname': u'end_date',
+		'oldfieldtype': u'Date',
 		'search_index': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt b/erpnext/accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt
deleted file mode 100644
index a3a63c9..0000000
--- a/erpnext/accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-# DocType, Advance Adjustment Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Accounts',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 24
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'no_copy': 1,
-		'parent': 'Advance Adjustment Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Advance Adjustment Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Advance Adjustment Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'journal_voucher',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Journal Voucher',
-		'oldfieldname': 'journal_voucher',
-		'oldfieldtype': 'Link',
-		'options': 'Journal Voucher',
-		'permlevel': 1,
-		'width': '250px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'jv_detail_no',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 2,
-		'label': 'Journal Voucher Detail No',
-		'oldfieldname': 'jv_detail_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': '120px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'advance_amount',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Advance amount',
-		'oldfieldname': 'advance_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'width': '120px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'allocated_amount',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Allocated amount',
-		'oldfieldname': 'allocated_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'trigger': 'Client',
-		'width': '120px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'remarks',
-		'fieldtype': 'Small Text',
-		'idx': 5,
-		'label': 'Remarks',
-		'oldfieldname': 'remarks',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 1,
-		'width': '150px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/advance_allocation_detail/__init__.py b/erpnext/accounts/doctype/advance_allocation_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/doctype/advance_allocation_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt b/erpnext/accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt
deleted file mode 100644
index 5bb5d38..0000000
--- a/erpnext/accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt
+++ /dev/null
@@ -1,141 +0,0 @@
-# DocType, Advance Allocation Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Accounts',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 20
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Advance Allocation Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Advance Allocation Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Advance Allocation Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'journal_voucher',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Journal Voucher',
-		'no_copy': 1,
-		'oldfieldname': 'journal_voucher',
-		'oldfieldtype': 'Link',
-		'options': 'Journal Voucher',
-		'permlevel': 1,
-		'width': '180px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'jv_detail_no',
-		'fieldtype': 'Date',
-		'hidden': 1,
-		'idx': 2,
-		'label': 'Journal Voucher Detail No',
-		'no_copy': 1,
-		'oldfieldname': 'jv_detail_no',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': '80px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'advance_amount',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Advance Amount',
-		'no_copy': 1,
-		'oldfieldname': 'advance_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'allocated_amount',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Allocated Amount',
-		'no_copy': 1,
-		'oldfieldname': 'allocated_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'trigger': 'Client',
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'tds_amount',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'TDS Amount',
-		'oldfieldname': 'tds_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'width': '80px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'tds_allocated',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'TDS Allocated',
-		'oldfieldname': 'tds_allocated',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'width': '80px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'remarks',
-		'fieldtype': 'Small Text',
-		'idx': 7,
-		'label': 'Remarks',
-		'no_copy': 1,
-		'oldfieldname': 'remarks',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 1,
-		'width': '150px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.txt b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.txt
index 7dc5e5a..f1d0b9f 100644
--- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.txt
+++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.txt
@@ -3,56 +3,56 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:52',
+		'creation': '2012-03-27 14:35:40',
 		'docstatus': 0,
-		'modified': '2010-12-29 18:11:06',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:40',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1294312169',
+		'_last_update': u'1294312169',
 		'allow_copy': 1,
 		'allow_email': 1,
 		'allow_print': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'hide_heading': 1,
 		'hide_toolbar': 1,
 		'issingle': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 12
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Bank Reconciliation',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Bank Reconciliation',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Bank Reconciliation',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Bank Reconciliation',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Bank Reconciliation
 	{
 		'doctype': 'DocType',
-		'name': 'Bank Reconciliation'
+		'name': u'Bank Reconciliation'
 	},
 
 	# DocPerm
@@ -60,106 +60,108 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Accounts User',
+		'role': u'Accounts User',
 		'submit': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All'
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts Manager',
+		'write': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 1,
-		'label': 'Head HTML',
+		'doctype': u'DocField',
+		'fieldname': u'head_html',
+		'fieldtype': u'HTML',
+		'label': u'Head HTML',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'description': 'Select account head of the bank where cheque was deposited.',
-		'doctype': 'DocField',
-		'fieldname': 'bank_account',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'label': 'Bank Account',
-		'options': 'Account',
+		'description': u'Select account head of the bank where cheque was deposited.',
+		'doctype': u'DocField',
+		'fieldname': u'bank_account',
+		'fieldtype': u'Link',
+		'label': u'Bank Account',
+		'options': u'Account',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'idx': 3,
-		'label': 'From Date',
+		'doctype': u'DocField',
+		'fieldname': u'from_date',
+		'fieldtype': u'Date',
+		'label': u'From Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'idx': 4,
-		'label': 'To Date',
+		'doctype': u'DocField',
+		'fieldname': u'to_date',
+		'fieldtype': u'Date',
+		'label': u'To Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 5,
-		'label': 'Get Non Reconciled Entries',
-		'options': 'get_details',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'get_non_reconciled_entries',
+		'fieldtype': u'Button',
+		'label': u'Get Non Reconciled Entries',
+		'options': u'get_details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'entries',
-		'fieldtype': 'Table',
-		'idx': 6,
-		'label': 'Entries',
-		'options': 'Bank Reconciliation Detail',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'entries',
+		'fieldtype': u'Table',
+		'label': u'Entries',
+		'options': u'Bank Reconciliation Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 7,
-		'label': 'Update Clearance Date',
-		'options': 'update_details',
+		'doctype': u'DocField',
+		'fieldname': u'update_clearance_date',
+		'fieldtype': u'Button',
+		'label': u'Update Clearance Date',
+		'options': u'update_details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_amount',
-		'fieldtype': 'Currency',
-		'idx': 8,
-		'label': 'Total Amount',
+		'doctype': u'DocField',
+		'fieldname': u'total_amount',
+		'fieldtype': u'Currency',
+		'label': u'Total Amount',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt b/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt
index 4d1fb0c..3924980 100644
--- a/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt
+++ b/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt
@@ -3,111 +3,130 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:52',
+		'creation': '2012-03-27 14:35:41',
 		'docstatus': 0,
-		'modified': '2010-09-23 13:57:17',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:41',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Tray',
+		'section_style': u'Tray',
 		'show_in_menu': 0,
-		'version': 4
+		'version': 5
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Bank Reconciliation Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'no_copy': 0,
+		'parent': u'Bank Reconciliation Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'search_index': 0
 	},
 
 	# DocType, Bank Reconciliation Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Bank Reconciliation Detail'
+		'name': u'Bank Reconciliation Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_id',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Voucher ID',
-		'oldfieldname': 'voucher_id',
-		'oldfieldtype': 'Link',
-		'options': 'Journal Voucher',
+		'doctype': u'DocField',
+		'fieldname': u'voucher_id',
+		'fieldtype': u'Link',
+		'label': u'Voucher ID',
+		'oldfieldname': u'voucher_id',
+		'oldfieldtype': u'Link',
+		'options': u'Journal Voucher',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'against_account',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Against Account',
-		'oldfieldname': 'against_account',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'against_account',
+		'fieldtype': u'Data',
+		'label': u'Against Account',
+		'oldfieldname': u'against_account',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'description': 'The date at which current entry will get or has actually executed.',
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
-		'idx': 3,
-		'label': 'Posting Date',
-		'oldfieldname': 'posting_date',
-		'oldfieldtype': 'Date',
+		'description': u'The date at which current entry will get or has actually executed.',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
+		'label': u'Posting Date',
+		'oldfieldname': u'posting_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cheque_number',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Cheque Number',
-		'oldfieldname': 'cheque_number',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'cheque_number',
+		'fieldtype': u'Data',
+		'label': u'Cheque Number',
+		'oldfieldname': u'cheque_number',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cheque_date',
-		'fieldtype': 'Date',
-		'idx': 5,
-		'label': 'Cheque Date',
-		'oldfieldname': 'cheque_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'cheque_date',
+		'fieldtype': u'Date',
+		'label': u'Cheque Date',
+		'oldfieldname': u'cheque_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'clearance_date',
-		'fieldtype': 'Date',
-		'idx': 8,
-		'label': 'Clearance Date',
-		'oldfieldname': 'clearance_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'debit',
+		'fieldtype': u'Currency',
+		'label': u'Debit',
+		'oldfieldname': u'debit',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'credit',
+		'fieldtype': u'Currency',
+		'label': u'Credit',
+		'oldfieldname': u'credit',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'clearance_date',
+		'fieldtype': u'Date',
+		'label': u'Clearance Date',
+		'oldfieldname': u'clearance_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/budget_control/budget_control.txt b/erpnext/accounts/doctype/budget_control/budget_control.txt
index 4f84bd4..a08762f 100644
--- a/erpnext/accounts/doctype/budget_control/budget_control.txt
+++ b/erpnext/accounts/doctype/budget_control/budget_control.txt
@@ -3,22 +3,22 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:54',
+		'creation': '2012-03-27 14:35:41',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'nabin@webnotestech.com'
+		'modified': '2012-03-27 14:35:41',
+		'modified_by': u'Administrator',
+		'owner': u'nabin@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 23
 	},
@@ -26,6 +26,6 @@
 	# DocType, Budget Control
 	{
 		'doctype': 'DocType',
-		'name': 'Budget Control'
+		'name': u'Budget Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/budget_detail/budget_detail.txt b/erpnext/accounts/doctype/budget_detail/budget_detail.txt
index dafa391..f9f287a 100644
--- a/erpnext/accounts/doctype/budget_detail/budget_detail.txt
+++ b/erpnext/accounts/doctype/budget_detail/budget_detail.txt
@@ -3,94 +3,90 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:54',
+		'creation': '2012-03-27 14:35:41',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:41',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'CBD/.######',
-		'colour': 'White:FFF',
+		'autoname': u'CBD/.######',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Tray',
+		'section_style': u'Tray',
 		'show_in_menu': 0,
 		'version': 6
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Budget Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Budget Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# DocType, Budget Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Budget Detail'
+		'name': u'Budget Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'account',
-		'fieldtype': 'Link',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'account',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Account',
-		'oldfieldname': 'account',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'label': u'Account',
+		'oldfieldname': u'account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'budget_allocated',
-		'fieldtype': 'Currency',
-		'idx': 2,
-		'label': 'Budget Allocated',
-		'oldfieldname': 'budget_allocated',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'budget_allocated',
+		'fieldtype': u'Currency',
+		'label': u'Budget Allocated',
+		'oldfieldname': u'budget_allocated',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'actual',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Actual',
-		'oldfieldname': 'actual',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'actual',
+		'fieldtype': u'Currency',
+		'label': u'Actual',
+		'oldfieldname': u'actual',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 4,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
diff --git a/erpnext/accounts/doctype/budget_distribution/budget_distribution.txt b/erpnext/accounts/doctype/budget_distribution/budget_distribution.txt
index 5e224ee..ca9b869 100644
--- a/erpnext/accounts/doctype/budget_distribution/budget_distribution.txt
+++ b/erpnext/accounts/doctype/budget_distribution/budget_distribution.txt
@@ -3,79 +3,76 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:54',
+		'creation': '2012-03-27 14:35:41',
 		'docstatus': 0,
-		'modified': '2010-12-29 18:20:37',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:41',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:distribution_id',
-		'colour': 'White:FFF',
+		'autoname': u'field:distribution_id',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'name_case': 'Title Case',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'name_case': u'Title Case',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 24
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Budget Distribution',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Budget Distribution',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Budget Distribution',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Budget Distribution',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Budget Distribution
 	{
 		'doctype': 'DocType',
-		'name': 'Budget Distribution'
+		'name': u'Budget Distribution'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 2,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
@@ -83,10 +80,9 @@
 		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Accounts Manager',
+		'role': u'Accounts Manager',
 		'submit': 0,
 		'write': 1
 	},
@@ -96,71 +92,65 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Accounts Manager',
+		'role': u'Accounts Manager',
 		'submit': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 2,
-		'role': 'Accounts Manager'
+		'role': u'Accounts Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'distribution_id',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Distribution ID',
-		'oldfieldname': 'distribution_id',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'distribution_id',
+		'fieldtype': u'Data',
+		'label': u'Distribution ID',
+		'oldfieldname': u'distribution_id',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'budget_distribution_details',
-		'fieldtype': 'Table',
-		'idx': 3,
-		'label': 'Budget Distribution Details',
-		'oldfieldname': 'budget_distribution_details',
-		'oldfieldtype': 'Table',
-		'options': 'Budget Distribution Detail',
+		'doctype': u'DocField',
+		'fieldname': u'budget_distribution_details',
+		'fieldtype': u'Table',
+		'label': u'Budget Distribution Details',
+		'oldfieldname': u'budget_distribution_details',
+		'oldfieldtype': u'Table',
+		'options': u'Budget Distribution Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 4,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt b/erpnext/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt
index cc872a9..d0912be 100644
--- a/erpnext/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt
+++ b/erpnext/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt
@@ -3,76 +3,73 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:54',
+		'creation': '2012-03-27 14:35:41',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:41',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'BDD/.#####',
-		'colour': 'White:FFF',
+		'autoname': u'BDD/.#####',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 6
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Budget Distribution Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Budget Distribution Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# DocType, Budget Distribution Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Budget Distribution Detail'
+		'name': u'Budget Distribution Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'month',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Month',
-		'oldfieldname': 'month',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'month',
+		'fieldtype': u'Data',
+		'label': u'Month',
+		'oldfieldname': u'month',
+		'oldfieldtype': u'Data',
 		'permlevel': 2,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'percentage_allocation',
-		'fieldtype': 'Currency',
-		'idx': 2,
-		'label': 'Percentage Allocation',
-		'oldfieldname': 'percentage_allocation',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'percentage_allocation',
+		'fieldtype': u'Currency',
+		'label': u'Percentage Allocation',
+		'oldfieldname': u'percentage_allocation',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'aggregate_percentage',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Aggregate Percentage',
-		'oldfieldname': 'aggregate_percentage',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'aggregate_percentage',
+		'fieldtype': u'Currency',
+		'label': u'Aggregate Percentage',
+		'oldfieldname': u'aggregate_percentage',
+		'oldfieldtype': u'Currency',
 		'permlevel': 2
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/c_form/c_form.js b/erpnext/accounts/doctype/c_form/c_form.js
index 82adf29..4fb3227 100644
--- a/erpnext/accounts/doctype/c_form/c_form.js
+++ b/erpnext/accounts/doctype/c_form/c_form.js
@@ -17,7 +17,7 @@
 //c-form js file
 // -----------------------------
 cur_frm.fields_dict.invoice_details.grid.get_field("invoice_no").get_query = function(doc) {
-	return 'SELECT `tabReceivable Voucher`.`name` FROM `tabReceivable Voucher` WHERE `tabReceivable Voucher`.`company` = "' +doc.company+'" AND `tabReceivable Voucher`.%(key)s LIKE "%s" AND `tabReceivable Voucher`.`customer` = "' + doc.customer + '" AND `tabReceivable Voucher`.`docstatus` = 1 and `tabReceivable Voucher`.`c_form_applicable` = "Yes" and ifnull(`tabReceivable Voucher`.c_form_no, "") = "" ORDER BY `tabReceivable Voucher`.`name` ASC LIMIT 50';
+	return 'SELECT `tabSales Invoice`.`name` FROM `tabSales Invoice` WHERE `tabSales Invoice`.`company` = "' +doc.company+'" AND `tabSales Invoice`.%(key)s LIKE "%s" AND `tabSales Invoice`.`customer` = "' + doc.customer + '" AND `tabSales Invoice`.`docstatus` = 1 and `tabSales Invoice`.`c_form_applicable` = "Yes" and ifnull(`tabSales Invoice`.c_form_no, "") = "" ORDER BY `tabSales Invoice`.`name` ASC LIMIT 50';
 }
 
 cur_frm.cscript.invoice_no = function(doc, cdt, cdn) {
diff --git a/erpnext/accounts/doctype/c_form/c_form.py b/erpnext/accounts/doctype/c_form/c_form.py
index bc5ed7b..416657b 100644
--- a/erpnext/accounts/doctype/c_form/c_form.py
+++ b/erpnext/accounts/doctype/c_form/c_form.py
@@ -39,9 +39,9 @@
 		
 		if len(getlist(self.doclist, 'invoice_details')):
 			inv = "'" + "', '".join([d.invoice_no for d in getlist(self.doclist, 'invoice_details')]) + "'"
-			sql("""update `tabReceivable Voucher` set c_form_no = '%s', modified ='%s'
+			sql("""update `tabSales Invoice` set c_form_no = '%s', modified ='%s'
 				where name in (%s)"""%(self.doc.name, self.doc.modified, inv))
-			sql("""update `tabReceivable Voucher` set c_form_no = '', modified = %s where name not
+			sql("""update `tabSales Invoice` set c_form_no = '', modified = %s where name not
 				in (%s) and ifnull(c_form_no, '') = %s""", (self.doc.modified, self.doc.name, inv))
 		else:
 			msgprint("Please enter atleast 1 invoice in the table below", raise_exception=1)
@@ -59,7 +59,7 @@
 		"""	Pull details from invoices for referrence """
 
 		inv = sql("""select posting_date, territory, net_total, grand_total from
-			`tabReceivable Voucher` where name = %s""", invoice_no)	
+			`tabSales Invoice` where name = %s""", invoice_no)	
 		ret = {
 			'invoice_date' : inv and getdate(inv[0][0]).strftime('%Y-%m-%d') or '',
 			'territory'    : inv and inv[0][1] or '',
@@ -75,7 +75,7 @@
 
 		for d in getlist(self.doclist, 'invoice_details'):
 			inv = sql("""select c_form_applicable, c_form_no from
-				`tabReceivable Voucher` where name = %s""", invoice_no)
+				`tabSales Invoice` where name = %s""", invoice_no)
 			if not inv:
 				msgprint("Invoice: %s is not exists in the system, please check." % d.invoice_no, raise_exception=1)
 			elif inv[0][0] != 'Yes':
diff --git a/erpnext/accounts/doctype/c_form/c_form.txt b/erpnext/accounts/doctype/c_form/c_form.txt
index 2cead89..e24de31 100644
--- a/erpnext/accounts/doctype/c_form/c_form.txt
+++ b/erpnext/accounts/doctype/c_form/c_form.txt
@@ -30,7 +30,8 @@
 		'name': '__common__',
 		'parent': u'C-Form',
 		'parentfield': u'fields',
-		'parenttype': u'DocType'
+		'parenttype': u'DocType',
+		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
@@ -78,6 +79,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -128,6 +130,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break1',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -188,7 +191,8 @@
 	# DocField
 	{
 		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break'
 		'permlevel': 0
 	},
 
@@ -222,4 +226,4 @@
 		'permlevel': 0,
 		'print_hide': 1
 	}
-]
\ No newline at end of file
+]
diff --git a/erpnext/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.txt b/erpnext/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.txt
index d6be6c0d..367d8c1 100644
--- a/erpnext/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.txt
+++ b/erpnext/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.txt
@@ -3,89 +3,89 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-12-07 16:15:39',
+		'creation': '2012-03-27 14:35:41',
 		'docstatus': 0,
-		'modified': '2011-12-07 16:21:55',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:41',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 5
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'C-Form Invoice Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'C-Form Invoice Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# DocType, C-Form Invoice Detail
 	{
 		'doctype': 'DocType',
-		'name': 'C-Form Invoice Detail'
+		'name': u'C-Form Invoice Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'invoice_no',
-		'fieldtype': 'Link',
-		'label': 'Invoice No',
-		'options': 'Receivable Voucher',
+		'doctype': u'DocField',
+		'fieldname': u'invoice_no',
+		'fieldtype': u'Link',
+		'label': u'Invoice No',
+		'options': u'Sales Invoice',
 		'permlevel': 0,
-		'width': '160px'
+		'width': u'160px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'invoice_date',
-		'fieldtype': 'Date',
-		'label': 'Invoice Date',
+		'doctype': u'DocField',
+		'fieldname': u'invoice_date',
+		'fieldtype': u'Date',
+		'label': u'Invoice Date',
 		'permlevel': 1,
-		'width': '120px'
+		'width': u'120px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
-		'label': 'Territory',
-		'options': 'Territory',
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
+		'label': u'Territory',
+		'options': u'Territory',
 		'permlevel': 1,
-		'width': '120px'
+		'width': u'120px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'net_total',
-		'fieldtype': 'Currency',
-		'label': 'Net Total',
+		'doctype': u'DocField',
+		'fieldname': u'net_total',
+		'fieldtype': u'Currency',
+		'label': u'Net Total',
 		'permlevel': 1,
-		'width': '120px'
+		'width': u'120px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'grand_total',
-		'fieldtype': 'Currency',
-		'label': 'Grand Total',
+		'doctype': u'DocField',
+		'fieldname': u'grand_total',
+		'fieldtype': u'Currency',
+		'label': u'Grand Total',
 		'permlevel': 1,
-		'width': '120px'
+		'width': u'120px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/cost_center/cost_center.js b/erpnext/accounts/doctype/cost_center/cost_center.js
index 180836a..d638ee4 100644
--- a/erpnext/accounts/doctype/cost_center/cost_center.js
+++ b/erpnext/accounts/doctype/cost_center/cost_center.js
@@ -65,7 +65,7 @@
 
 // Convert group to ledger
 // -----------------------------------------
-cur_frm.cscript['Convert to Ledger'] = function(doc, cdt, cdn) {
+cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) {
 	$c_obj(make_doclist(cdt,cdn),'convert_group_to_ledger','',function(r,rt) {
 		if(r.message == 1) {
 			doc.group_or_ledger = 'Ledger';
@@ -77,7 +77,7 @@
 
 // Convert ledger to group
 // -----------------------------------------
-cur_frm.cscript['Convert to Group'] = function(doc, cdt, cdn) {
+cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) {
 	$c_obj(make_doclist(cdt,cdn),'convert_ledger_to_group','',function(r,rt) {
 		if(r.message == 1) {
 			doc.group_or_ledger = 'Group';
diff --git a/erpnext/accounts/doctype/cost_center/cost_center.txt b/erpnext/accounts/doctype/cost_center/cost_center.txt
index 94fb02b..b02d909 100644
--- a/erpnext/accounts/doctype/cost_center/cost_center.txt
+++ b/erpnext/accounts/doctype/cost_center/cost_center.txt
@@ -3,56 +3,56 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:56',
+		'creation': '2012-03-27 14:35:41',
 		'docstatus': 0,
-		'modified': '2011-10-10 12:05:07',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:41',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1317365120',
+		'_last_update': u'1317365120',
 		'allow_copy': 1,
 		'allow_trash': 1,
-		'autoname': 'field:cost_center_name',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'autoname': u'field:cost_center_name',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'search_fields': 'name,parent_cost_center',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'name,parent_cost_center',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 109
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Cost Center',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Cost Center',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Cost Center',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Cost Center',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Cost Center
 	{
 		'doctype': 'DocType',
-		'name': 'Cost Center'
+		'name': u'Cost Center'
 	},
 
 	# DocPerm
@@ -60,9 +60,38 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Accounts Manager',
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts Manager',
 		'submit': 0,
 		'write': 0
 	},
@@ -72,9 +101,9 @@
 		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Accounts Manager',
+		'role': u'Accounts Manager',
 		'submit': 0,
 		'write': 1
 	},
@@ -84,63 +113,34 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Accounts User',
+		'role': u'Accounts User',
 		'submit': 0,
 		'write': 0
 	},
 
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Accounts User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'All'
-	},
-
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cost_center_name',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'cost_center_name',
+		'fieldtype': u'Data',
 		'in_filter': 0,
-		'label': 'Cost Center Name',
+		'label': u'Cost Center Name',
 		'no_copy': 1,
-		'oldfieldname': 'cost_center_name',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'cost_center_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -148,119 +148,121 @@
 
 	# DocField
 	{
-		'description': 'Select company name first.',
-		'doctype': 'DocField',
-		'fieldname': 'parent_cost_center',
-		'fieldtype': 'Link',
-		'label': 'Parent Cost Center',
-		'oldfieldname': 'parent_cost_center',
-		'oldfieldtype': 'Link',
-		'options': 'Cost Center',
+		'description': u'Select company name first.',
+		'doctype': u'DocField',
+		'fieldname': u'parent_cost_center',
+		'fieldtype': u'Link',
+		'label': u'Parent Cost Center',
+		'oldfieldname': u'parent_cost_center',
+		'oldfieldtype': u'Link',
+		'options': u'Cost Center',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'company_name',
-		'fieldtype': 'Link',
-		'label': 'Company',
-		'oldfieldname': 'company_name',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'company_name',
+		'fieldtype': u'Link',
+		'label': u'Company',
+		'oldfieldname': u'company_name',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company_abbr',
-		'fieldtype': 'Data',
-		'label': 'Company Abbr',
-		'oldfieldname': 'company_abbr',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'company_abbr',
+		'fieldtype': u'Data',
+		'label': u'Company Abbr',
+		'oldfieldname': u'company_abbr',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'group_or_ledger',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'group_or_ledger',
+		'fieldtype': u'Select',
 		'hidden': 0,
-		'label': 'Group or Ledger',
+		'label': u'Group or Ledger',
 		'no_copy': 1,
-		'oldfieldname': 'group_or_ledger',
-		'oldfieldtype': 'Select',
-		'options': '\nGroup\nLedger',
+		'oldfieldname': u'group_or_ledger',
+		'oldfieldtype': u'Select',
+		'options': u'\nGroup\nLedger',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Convert to Group',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'convert_to_group',
+		'fieldtype': u'Button',
+		'label': u'Convert to Group',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Convert to Ledger',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'convert_to_ledger',
+		'fieldtype': u'Button',
+		'label': u'Convert to Ledger',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'distribution_id',
-		'fieldtype': 'Link',
-		'label': 'Distribution Id',
-		'oldfieldname': 'distribution_id',
-		'oldfieldtype': 'Link',
-		'options': 'Budget Distribution',
+		'doctype': u'DocField',
+		'fieldname': u'distribution_id',
+		'fieldtype': u'Link',
+		'label': u'Distribution Id',
+		'oldfieldname': u'distribution_id',
+		'oldfieldtype': u'Link',
+		'options': u'Budget Distribution',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'budget_details',
-		'fieldtype': 'Table',
-		'label': 'Budget Details',
-		'oldfieldname': 'budget_details',
-		'oldfieldtype': 'Table',
-		'options': 'Budget Detail',
+		'doctype': u'DocField',
+		'fieldname': u'budget_details',
+		'fieldtype': u'Table',
+		'label': u'Budget Details',
+		'oldfieldname': u'budget_details',
+		'oldfieldtype': u'Table',
+		'options': u'Budget Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'lft',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'lft',
+		'fieldtype': u'Int',
 		'hidden': 1,
 		'in_filter': 1,
-		'label': 'lft',
+		'label': u'lft',
 		'no_copy': 1,
-		'oldfieldname': 'lft',
-		'oldfieldtype': 'Int',
+		'oldfieldname': u'lft',
+		'oldfieldtype': u'Int',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1,
@@ -269,15 +271,15 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rgt',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'rgt',
+		'fieldtype': u'Int',
 		'hidden': 1,
 		'in_filter': 1,
-		'label': 'rgt',
+		'label': u'rgt',
 		'no_copy': 1,
-		'oldfieldname': 'rgt',
-		'oldfieldtype': 'Int',
+		'oldfieldname': u'rgt',
+		'oldfieldtype': u'Int',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1,
@@ -287,15 +289,15 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'old_parent',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'old_parent',
+		'fieldtype': u'Link',
 		'hidden': 1,
-		'label': 'old_parent',
+		'label': u'old_parent',
 		'no_copy': 1,
-		'oldfieldname': 'old_parent',
-		'oldfieldtype': 'Data',
-		'options': 'Cost Center',
+		'oldfieldname': u'old_parent',
+		'oldfieldtype': u'Data',
+		'options': u'Cost Center',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
diff --git a/erpnext/accounts/doctype/fiscal_year/fiscal_year.py b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
index 84a1c05..f894fae 100644
--- a/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
+++ b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
@@ -178,8 +178,8 @@
 	# ====================================================================================
 	def clear_outstanding(self):
 		# clear o/s of current year
-		sql("update `tabPayable Voucher` set outstanding_amount = 0 where fiscal_year=%s and company=%s", (self.doc.name, self.doc.company))
-		sql("update `tabReceivable Voucher` set outstanding_amount = 0 where fiscal_year=%s and company=%s", (self.doc.name, self.doc.company))
+		sql("update `tabPurchase Invoice` set outstanding_amount = 0 where fiscal_year=%s and company=%s", (self.doc.name, self.doc.company))
+		sql("update `tabSales Invoice` set outstanding_amount = 0 where fiscal_year=%s and company=%s", (self.doc.name, self.doc.company))
 
 	# Update Voucher Outstanding
 	def update_voucher_outstanding(self):
@@ -190,7 +190,7 @@
 			# get voucher balance
 			bal = sql("select sum(debit)-sum(credit) from `tabGL Entry` where against_voucher=%s and against_voucher_type=%s and ifnull(is_cancelled, 'No') = 'No'", (d[0], d[1]))
 			bal = bal and flt(bal[0][0]) or 0.0
-			if d[1] == 'Payable Voucher':
+			if d[1] == 'Purchase Invoice':
 				bal = -bal
 			# set voucher balance
 			sql("update `tab%s` set outstanding_amount=%s where name='%s'"% (d[1], bal, d[0]))
diff --git a/erpnext/accounts/doctype/fiscal_year/fiscal_year.txt b/erpnext/accounts/doctype/fiscal_year/fiscal_year.txt
index 4a7f49a..ae4c5a0 100644
--- a/erpnext/accounts/doctype/fiscal_year/fiscal_year.txt
+++ b/erpnext/accounts/doctype/fiscal_year/fiscal_year.txt
@@ -3,207 +3,199 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:02',
+		'creation': '2012-03-27 14:35:41',
 		'docstatus': 0,
-		'modified': '2011-01-03 17:52:39',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:41',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1307707462',
+		'_last_update': u'1322549700',
 		'allow_trash': 1,
-		'autoname': 'field:year',
-		'colour': 'White:FFF',
+		'autoname': u'field:year',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Accounts',
+		'document_type': u'Master',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 54
+		'version': 57
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Fiscal Year',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Fiscal Year',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Fiscal Year',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Fiscal Year',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocType, Fiscal Year
 	{
 		'doctype': 'DocType',
-		'name': 'Fiscal Year'
+		'name': u'Fiscal Year'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm'
 	},
 
 	# DocPerm
 	{
 		'amend': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'submit': 0
 	},
 
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 2
-	},
-
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Year Details',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'year_details',
+		'fieldtype': u'Section Break',
+		'label': u'Year Details',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 2,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'year',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Year Name',
-		'oldfieldname': 'year',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'year',
+		'fieldtype': u'Data',
+		'label': u'Year Name',
+		'oldfieldname': u'year',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'abbreviation',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Abbreviation',
-		'oldfieldname': 'abbreviation',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'abbreviation',
+		'fieldtype': u'Data',
+		'label': u'Abbreviation',
+		'oldfieldname': u'abbreviation',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'year_start_date',
-		'fieldtype': 'Date',
-		'idx': 5,
-		'label': 'Year Start Date',
-		'oldfieldname': 'year_start_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'year_start_date',
+		'fieldtype': u'Date',
+		'label': u'Year Start Date',
+		'oldfieldname': u'year_start_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_fiscal_year_closed',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Year Closed',
-		'oldfieldname': 'is_fiscal_year_closed',
-		'oldfieldtype': 'Select',
-		'options': '\nNo\nYes',
+		'doctype': u'DocField',
+		'fieldname': u'is_fiscal_year_closed',
+		'fieldtype': u'Select',
+		'label': u'Year Closed',
+		'oldfieldname': u'is_fiscal_year_closed',
+		'oldfieldtype': u'Select',
+		'options': u'\nNo\nYes',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': "Click on the button below to reset balances from your previous year's closing and repost your balances. You can use this if your previous year balance sheet has been changed and you wish to update your current accounts.",
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 7,
-		'label': 'Repost Accounts',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'description': u"Click on the button below to reset balances from your previous year's closing and repost your balances. You can use this if your previous year balance sheet has been changed and you wish to update your current accounts.",
+		'doctype': u'DocField',
+		'fieldname': u'repost_accounts',
+		'fieldtype': u'Section Break',
+		'label': u'Repost Accounts',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'past_year',
-		'fieldtype': 'Select',
-		'idx': 8,
-		'label': 'Past Year',
-		'oldfieldname': 'past_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'doctype': u'DocField',
+		'fieldname': u'past_year',
+		'fieldtype': u'Select',
+		'label': u'Past Year',
+		'oldfieldname': u'past_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 9,
-		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'in_filter': 0,
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 10,
-		'label': 'Repost Account Balances',
-		'oldfieldtype': 'Button',
-		'options': 'repost',
+		'doctype': u'DocField',
+		'fieldname': u'repost_account_balances',
+		'fieldtype': u'Button',
+		'label': u'Repost Account Balances',
+		'oldfieldtype': u'Button',
+		'options': u'repost',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 11,
-		'label': 'Repost Voucher Outstanding',
-		'oldfieldtype': 'Button',
-		'options': 'update_voucher_outstanding',
+		'doctype': u'DocField',
+		'fieldname': u'repost_voucher_outstanding',
+		'fieldtype': u'Button',
+		'label': u'Repost Voucher Outstanding',
+		'oldfieldtype': u'Button',
+		'options': u'update_voucher_outstanding',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/form_16a/form_16a.txt b/erpnext/accounts/doctype/form_16a/form_16a.txt
index 530d410..96ebb19 100644
--- a/erpnext/accounts/doctype/form_16a/form_16a.txt
+++ b/erpnext/accounts/doctype/form_16a/form_16a.txt
@@ -3,61 +3,50 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-27 15:56:52',
+		'creation': '2012-03-27 14:35:41',
 		'docstatus': 0,
-		'modified': '2011-06-15 13:07:17',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Form 16A',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'modified': '2012-03-27 14:35:41',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1308123438',
-		'colour': 'White:FFF',
+		'_last_update': u'1308123438',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 0,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 75
 	},
 
-	# These values are common for all DocFormat
+	# These values are common for all DocField
 	{
-		'doctype': 'DocFormat',
-		'format': 'Form 16A Print Format',
-		'idx': 1,
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Form 16A',
-		'parentfield': 'formats',
-		'parenttype': 'DocType'
+		'parent': u'Form 16A',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Form 16A',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Form 16A',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Form 16A
 	{
 		'doctype': 'DocType',
-		'name': 'Form 16A'
+		'name': u'Form 16A'
 	},
 
 	# DocPerm
@@ -65,10 +54,9 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Accounts Manager',
+		'role': u'Accounts Manager',
 		'submit': 0,
 		'write': 0
 	},
@@ -78,10 +66,9 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Accounts Manager',
+		'role': u'Accounts Manager',
 		'submit': 0,
 		'write': 1
 	},
@@ -91,10 +78,9 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Accounts User',
+		'role': u'Accounts User',
 		'submit': 0,
 		'write': 0
 	},
@@ -104,10 +90,9 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Accounts User',
+		'role': u'Accounts User',
 		'submit': 0,
 		'write': 1
 	},
@@ -115,168 +100,153 @@
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
-	},
-
-	# DocFormat
-	{
-		'doctype': 'DocFormat'
+		'role': u'System Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Basic Info',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 2,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'idx': 3,
-		'label': 'From Date',
-		'oldfieldname': 'from_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'from_date',
+		'fieldtype': u'Date',
+		'label': u'From Date',
+		'oldfieldname': u'from_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'idx': 4,
-		'label': 'To Date',
-		'oldfieldname': 'to_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'to_date',
+		'fieldtype': u'Date',
+		'label': u'To Date',
+		'oldfieldname': u'to_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'tds_category',
-		'fieldtype': 'Link',
-		'idx': 5,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'tds_category',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'TDS Category',
-		'oldfieldname': 'tds_category',
-		'oldfieldtype': 'Link',
-		'options': 'TDS Category',
+		'label': u'TDS Category',
+		'oldfieldname': u'tds_category',
+		'oldfieldtype': u'Link',
+		'options': u'TDS Category',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'party_name',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'party_name',
+		'fieldtype': u'Link',
 		'hidden': 0,
-		'idx': 6,
 		'in_filter': 1,
-		'label': 'Party Name',
-		'oldfieldname': 'party_name',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'label': u'Party Name',
+		'oldfieldname': u'party_name',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'party_address',
-		'fieldtype': 'Small Text',
-		'idx': 7,
-		'label': 'Address',
-		'oldfieldname': 'party_address',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'party_address',
+		'fieldtype': u'Small Text',
+		'label': u'Address',
+		'oldfieldname': u'party_address',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'pan_number',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'pan_number',
+		'fieldtype': u'Data',
 		'hidden': 0,
-		'idx': 8,
-		'label': 'PAN No',
-		'oldfieldname': 'pan_number',
-		'oldfieldtype': 'Data',
+		'label': u'PAN No',
+		'oldfieldname': u'pan_number',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 9,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 10,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 11,
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Company ',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'label': u'Company ',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -284,194 +254,184 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company_address',
-		'fieldtype': 'Small Text',
-		'idx': 12,
-		'label': 'Company Address',
-		'oldfieldname': 'company_address',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'company_address',
+		'fieldtype': u'Small Text',
+		'label': u'Company Address',
+		'oldfieldname': u'company_address',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'registration_details',
-		'fieldtype': 'Small Text',
-		'idx': 13,
-		'label': 'Registration Details',
-		'oldfieldname': 'registration_details',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'registration_details',
+		'fieldtype': u'Small Text',
+		'label': u'Registration Details',
+		'oldfieldname': u'registration_details',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 14,
-		'label': 'Return Details',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'return_details',
+		'fieldtype': u'Section Break',
+		'label': u'Return Details',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 15,
-		'label': 'Get Return Details',
-		'oldfieldtype': 'Button',
-		'options': 'get_return_ack_details',
+		'doctype': u'DocField',
+		'fieldname': u'get_return_details',
+		'fieldtype': u'Button',
+		'label': u'Get Return Details',
+		'oldfieldtype': u'Button',
+		'options': u'get_return_ack_details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'form_16A_ack_details',
-		'fieldtype': 'Table',
-		'idx': 16,
-		'label': 'Form 16A Ack Details',
-		'oldfieldname': 'form_16A_ack_details',
-		'oldfieldtype': 'Table',
-		'options': 'Form 16A Ack Detail',
+		'doctype': u'DocField',
+		'fieldname': u'form_16A_ack_details',
+		'fieldtype': u'Table',
+		'label': u'Form 16A Ack Details',
+		'oldfieldname': u'form_16A_ack_details',
+		'oldfieldtype': u'Table',
+		'options': u'Form 16A Ack Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 17,
-		'label': 'Payment Details',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'payment_details',
+		'fieldtype': u'Section Break',
+		'label': u'Payment Details',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 18,
-		'label': 'Get TDS',
-		'oldfieldtype': 'Button',
-		'options': 'get_tds',
+		'doctype': u'DocField',
+		'fieldname': u'get_tds',
+		'fieldtype': u'Button',
+		'label': u'Get TDS',
+		'oldfieldtype': u'Button',
+		'options': u'get_tds',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'form_16A_tax_details',
-		'fieldtype': 'Table',
-		'idx': 19,
-		'label': 'Tax Details',
-		'oldfieldname': 'form_16A_tax_details',
-		'oldfieldtype': 'Table',
-		'options': 'Form 16A Tax Detail',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'form_16A_tax_details',
+		'fieldtype': u'Table',
+		'label': u'Tax Details',
+		'oldfieldname': u'form_16A_tax_details',
+		'oldfieldtype': u'Table',
+		'options': u'Form 16A Tax Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_amount',
-		'fieldtype': 'Currency',
-		'idx': 20,
-		'label': 'Total Amount',
-		'oldfieldname': 'total_amount',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'total_amount',
+		'fieldtype': u'Currency',
+		'label': u'Total Amount',
+		'oldfieldname': u'total_amount',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'in_words',
-		'fieldtype': 'Data',
-		'idx': 21,
-		'label': 'In Words',
+		'doctype': u'DocField',
+		'fieldname': u'in_words',
+		'fieldtype': u'Data',
+		'label': u'In Words',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 22,
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 23,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'place',
-		'fieldtype': 'Data',
-		'idx': 24,
-		'label': 'Place',
-		'oldfieldname': 'place',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'place',
+		'fieldtype': u'Data',
+		'label': u'Place',
+		'oldfieldname': u'place',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'dt',
-		'fieldtype': 'Date',
-		'idx': 25,
-		'label': 'Date',
-		'oldfieldname': 'dt',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'dt',
+		'fieldtype': u'Date',
+		'label': u'Date',
+		'oldfieldname': u'dt',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 26,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'full_name',
-		'fieldtype': 'Data',
-		'idx': 27,
-		'label': 'Full Name',
-		'oldfieldname': 'full_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'full_name',
+		'fieldtype': u'Data',
+		'label': u'Full Name',
+		'oldfieldname': u'full_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Data',
-		'idx': 28,
-		'label': 'Designation',
-		'oldfieldname': 'designation',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Data',
+		'label': u'Designation',
+		'oldfieldname': u'designation',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	}
-]
\ No newline at end of file
+]
diff --git a/erpnext/accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt b/erpnext/accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt
index 0f2c188..b3d1546 100644
--- a/erpnext/accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt
+++ b/erpnext/accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt
@@ -3,61 +3,59 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:02',
+		'creation': '2012-03-27 14:35:42',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:42',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Tray',
+		'section_style': u'Tray',
 		'show_in_menu': 0,
 		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Form 16A Ack Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Form 16A Ack Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Form 16A Ack Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Form 16A Ack Detail'
+		'name': u'Form 16A Ack Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'quarter',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Quarter',
-		'oldfieldname': 'quarter',
-		'oldfieldtype': 'Select',
-		'options': '\nApr-Jun\nJul-Sept\nOct-Dec\nJan-Mar'
+		'doctype': u'DocField',
+		'fieldname': u'quarter',
+		'fieldtype': u'Select',
+		'label': u'Quarter',
+		'oldfieldname': u'quarter',
+		'oldfieldtype': u'Select',
+		'options': u'\nApr-Jun\nJul-Sept\nOct-Dec\nJan-Mar'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'ack_no',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Acknowledgement No.',
-		'oldfieldname': 'ack_no',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'ack_no',
+		'fieldtype': u'Data',
+		'label': u'Acknowledgement No.',
+		'oldfieldname': u'ack_no',
+		'oldfieldtype': u'Data'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt b/erpnext/accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt
index 86a25da..c0a0c73 100644
--- a/erpnext/accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt
+++ b/erpnext/accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt
@@ -3,148 +3,138 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:02',
+		'creation': '2012-03-27 14:35:42',
 		'docstatus': 0,
-		'modified': '2010-09-27 16:53:54',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:42',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Tray',
+		'section_style': u'Tray',
 		'show_in_menu': 0,
 		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Form 16A Tax Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Form 16A Tax Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Form 16A Tax Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Form 16A Tax Detail'
+		'name': u'Form 16A Tax Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amount_paid',
-		'fieldtype': 'Currency',
-		'idx': 1,
-		'label': 'Amount paid / credited',
-		'oldfieldname': 'amount_paid',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'amount_paid',
+		'fieldtype': u'Currency',
+		'label': u'Amount paid / credited',
+		'oldfieldname': u'amount_paid',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'date_of_payment',
-		'fieldtype': 'Date',
-		'idx': 2,
-		'label': 'Date of payment / credit',
-		'oldfieldname': 'date_of_payment',
-		'oldfieldtype': 'Date'
+		'doctype': u'DocField',
+		'fieldname': u'date_of_payment',
+		'fieldtype': u'Date',
+		'label': u'Date of payment / credit',
+		'oldfieldname': u'date_of_payment',
+		'oldfieldtype': u'Date'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tds_main',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'TDS(Main)',
-		'oldfieldname': 'tds_main',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'tds_main',
+		'fieldtype': u'Currency',
+		'label': u'TDS(Main)',
+		'oldfieldname': u'tds_main',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'surcharge',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Surcharge',
-		'oldfieldname': 'surcharge',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'surcharge',
+		'fieldtype': u'Currency',
+		'label': u'Surcharge',
+		'oldfieldname': u'surcharge',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cess_on_tds',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Cess on TDS',
-		'oldfieldname': 'cess_on_tds',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'cess_on_tds',
+		'fieldtype': u'Currency',
+		'label': u'Cess on TDS',
+		'oldfieldname': u'cess_on_tds',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_tax_deposited',
-		'fieldtype': 'Currency',
-		'idx': 8,
-		'label': 'Total Tax Deposited',
-		'oldfieldname': 'total_tax_deposited',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'total_tax_deposited',
+		'fieldtype': u'Currency',
+		'label': u'Total Tax Deposited',
+		'oldfieldname': u'total_tax_deposited',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cheque_no',
-		'fieldtype': 'Data',
-		'idx': 9,
-		'label': 'Cheque / DD No.',
-		'oldfieldname': 'cheque_no',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'cheque_no',
+		'fieldtype': u'Data',
+		'label': u'Cheque / DD No.',
+		'oldfieldname': u'cheque_no',
+		'oldfieldtype': u'Data'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'bsr_code',
-		'fieldtype': 'Data',
-		'idx': 10,
-		'label': 'BSR Code',
-		'oldfieldname': 'bsr_code',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'bsr_code',
+		'fieldtype': u'Data',
+		'label': u'BSR Code',
+		'oldfieldname': u'bsr_code',
+		'oldfieldtype': u'Data'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tax_deposited_date',
-		'fieldtype': 'Date',
-		'idx': 11,
-		'label': 'Tax Deposited Date',
-		'oldfieldname': 'tax_deposited_date',
-		'oldfieldtype': 'Date'
+		'doctype': u'DocField',
+		'fieldname': u'tax_deposited_date',
+		'fieldtype': u'Date',
+		'label': u'Tax Deposited Date',
+		'oldfieldname': u'tax_deposited_date',
+		'oldfieldtype': u'Date'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'challan_no',
-		'fieldtype': 'Data',
-		'idx': 12,
-		'label': 'Challan No.',
-		'oldfieldname': 'challan_no',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'challan_no',
+		'fieldtype': u'Data',
+		'label': u'Challan No.',
+		'oldfieldname': u'challan_no',
+		'oldfieldtype': u'Data'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/gl_control/gl_control.py b/erpnext/accounts/doctype/gl_control/gl_control.py
index fa98441..2ff5a1f 100644
--- a/erpnext/accounts/doctype/gl_control/gl_control.py
+++ b/erpnext/accounts/doctype/gl_control/gl_control.py
@@ -297,7 +297,7 @@
 			add.remarks = d[1]
 			add.advance_amount = flt(d[2])
 			add.allocate_amount = 0
-			if table_name == 'Advance Allocation Detail':
+			if table_name == 'Purchase Invoice Advance':
 				add.tds_amount = flt(d[4])
 
 	# Clear rows which is not adjusted
@@ -319,7 +319,7 @@
 				get_obj(dt='GL Control').make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel =1, adv_adj =1)
 
 				# update ref in JV Detail
-				webnotes.conn.sql("update `tabJournal Voucher Detail` set %s = '%s' where name = '%s'" % (doctype=='Payable Voucher' and 'against_voucher' or 'against_invoice', cstr(against_document_no), d.jv_detail_no))
+				webnotes.conn.sql("update `tabJournal Voucher Detail` set %s = '%s' where name = '%s'" % (doctype=='Purchase Invoice' and 'against_voucher' or 'against_invoice', cstr(against_document_no), d.jv_detail_no))
 
 				# re-submit JV
 				jv_obj = get_obj('Journal Voucher', d.journal_voucher, with_children =1)
@@ -351,7 +351,7 @@
 		balance = flt(advance) - flt(allocate)
 
 		# update old entry
-		webnotes.conn.sql("update `tabJournal Voucher Detail` set %s = '%s', %s = '%s' where name = '%s'" % (dr_or_cr, flt(allocate), doctype == "Payable Voucher" and 'against_voucher' or 'against_invoice',cstr(against_document_no), jv_detail_no))
+		webnotes.conn.sql("update `tabJournal Voucher Detail` set %s = '%s', %s = '%s' where name = '%s'" % (dr_or_cr, flt(allocate), doctype == "Purchase Invoice" and 'against_voucher' or 'against_invoice',cstr(against_document_no), jv_detail_no))
 
 		# new entry with balance amount
 		add = addchild(jv_obj.doc, 'entries', 'Journal Voucher Detail', 1, jv_obj.doclist)
@@ -390,8 +390,8 @@
 
 			against_fld = {
 				'Journal Voucher' : 'against_jv',
-				'Receivable Voucher' : 'against_invoice',
-				'Payable Voucher' : 'against_voucher'
+				'Sales Invoice' : 'against_invoice',
+				'Purchase Invoice' : 'against_voucher'
 			}
 			
 			d['against_fld'] = against_fld[d['against_voucher_type']]
@@ -462,7 +462,7 @@
 		# Get Balance from GL Entries
 		bal = webnotes.conn.sql("select sum(debit)-sum(credit) from `tabGL Entry` where against_voucher=%s and against_voucher_type=%s", (voucher_obj.doc.name , voucher_obj.doc.doctype))
 		bal = bal and flt(bal[0][0]) or 0.0
-		if cstr(voucher_obj.doc.doctype) == 'Payable Voucher':
+		if cstr(voucher_obj.doc.doctype) == 'Purchase Invoice':
 			bal = -bal
 
 		# Check outstanding Amount
@@ -520,11 +520,11 @@
 		Create recurring invoices on specific date by copying the original one
 		and notify the concerned people
 	"""	
-	rv = webnotes.conn.sql("""select name, recurring_id from `tabReceivable Voucher` where ifnull(convert_into_recurring_invoice, 0) = 1 
+	rv = webnotes.conn.sql("""select name, recurring_id from `tabSales Invoice` where ifnull(convert_into_recurring_invoice, 0) = 1 
 			and next_date = %s and next_date <= end_date and docstatus=1 order by next_date	desc""", nowdate())
 	for d in rv:
-		if not webnotes.conn.sql("""select name from `tabReceivable Voucher` where posting_date = %s and recurring_id = %s and docstatus=1""", (nowdate(), d[1])):
-			prev_rv = get_obj('Receivable Voucher', d[0], with_children=1)
+		if not webnotes.conn.sql("""select name from `tabSales Invoice` where posting_date = %s and recurring_id = %s and docstatus=1""", (nowdate(), d[1])):
+			prev_rv = get_obj('Sales Invoice', d[0], with_children=1)
 			new_rv = create_new_invoice(prev_rv)
 
 			send_notification(new_rv)
diff --git a/erpnext/accounts/doctype/gl_control/gl_control.txt b/erpnext/accounts/doctype/gl_control/gl_control.txt
index f31b64d..d75ff16 100644
--- a/erpnext/accounts/doctype/gl_control/gl_control.txt
+++ b/erpnext/accounts/doctype/gl_control/gl_control.txt
@@ -3,22 +3,22 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:03',
+		'creation': '2012-03-27 14:35:42',
 		'docstatus': 0,
-		'modified': '2010-12-29 12:57:24',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:42',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 288
 	},
@@ -26,6 +26,6 @@
 	# DocType, GL Control
 	{
 		'doctype': 'DocType',
-		'name': 'GL Control'
+		'name': u'GL Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py
index 49b0593..11ab2c2 100644
--- a/erpnext/accounts/doctype/gl_entry/gl_entry.py
+++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py
@@ -114,9 +114,9 @@
 	#----------------------------------------------------------------------------------------------
 	def check_freezing_date(self, adv_adj):
 		if not adv_adj:
-			acc_frozen_upto = get_value('Manage Account', None, 'acc_frozen_upto')
+			acc_frozen_upto = get_value('Global Defaults', None, 'acc_frozen_upto')
 			if acc_frozen_upto:
-				bde_auth_role = get_value( 'Manage Account', None,'bde_auth_role')
+				bde_auth_role = get_value( 'Global Defaults', None,'bde_auth_role')
 				if getdate(self.doc.posting_date) <= getdate(acc_frozen_upto) and not bde_auth_role in webnotes.user.get_roles():
 					msgprint("You are not authorized to do/modify back dated accounting entries before %s." % getdate(acc_frozen_upto).strftime('%d-%m-%Y'), raise_exception=1)
 
@@ -234,12 +234,12 @@
 		bal = flt(sql("select sum(debit)-sum(credit) from `tabGL Entry` where against_voucher=%s and against_voucher_type=%s and ifnull(is_cancelled,'No') = 'No'", (self.doc.against_voucher, self.doc.against_voucher_type))[0][0] or 0.0)
 		tds = 0
 		
-		if self.doc.against_voucher_type=='Payable Voucher':
+		if self.doc.against_voucher_type=='Purchase Invoice':
 			# amount to debit
 			bal = -bal
 			
 			# Check if tds applicable
-			tds = sql("select total_tds_on_voucher from `tabPayable Voucher` where name = '%s'" % self.doc.against_voucher)
+			tds = sql("select total_tds_on_voucher from `tabPurchase Invoice` where name = '%s'" % self.doc.against_voucher)
 			tds = tds and flt(tds[0][0]) or 0
 		
 		# Validation : Outstanding can not be negative
@@ -257,7 +257,7 @@
 		#check for user role Freezed
 		master_type=sql("select master_type, master_name from `tabAccount` where name='%s' " %self.doc.account)
 		tot_outstanding = 0	#needed when there is no GL Entry in the system for that acc head
-		if (self.doc.voucher_type=='Journal Voucher' or self.doc.voucher_type=='Receivable Voucher') and (master_type and master_type[0][0]=='Customer' and master_type[0][1]):
+		if (self.doc.voucher_type=='Journal Voucher' or self.doc.voucher_type=='Sales Invoice') and (master_type and master_type[0][0]=='Customer' and master_type[0][1]):
 			dbcr = sql("select sum(debit),sum(credit) from `tabGL Entry` where account = '%s' and is_cancelled='No'" % self.doc.account)
 			if dbcr:
 				tot_outstanding = flt(dbcr[0][0])-flt(dbcr[0][1])+flt(self.doc.debit)-flt(self.doc.credit)
diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.txt b/erpnext/accounts/doctype/gl_entry/gl_entry.txt
index 1d84e1d..0888a95 100644
--- a/erpnext/accounts/doctype/gl_entry/gl_entry.txt
+++ b/erpnext/accounts/doctype/gl_entry/gl_entry.txt
@@ -3,303 +3,301 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:03',
+		'creation': '2012-03-27 14:35:42',
 		'docstatus': 0,
-		'modified': '2011-11-24 15:03:45',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:42',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1319016431',
-		'autoname': 'GL.#######',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'_last_update': u'1319016431',
+		'autoname': u'GL.#######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'in_create': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'search_fields': 'voucher_no,account,posting_date,against_voucher',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'voucher_no,account,posting_date,against_voucher',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 103
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'GL Entry',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'GL Entry',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'create': 0,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'GL Entry',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
+		'parent': u'GL Entry',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1,
+		'write': 0
 	},
 
 	# DocType, GL Entry
 	{
 		'doctype': 'DocType',
-		'name': 'GL Entry'
+		'name': u'GL Entry'
 	},
 
 	# DocPerm
 	{
 		'amend': 0,
 		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'role': 'Accounts User',
-		'submit': 0,
-		'write': 0
+		'doctype': u'DocPerm',
+		'role': u'Accounts User',
+		'submit': 0
 	},
 
 	# DocPerm
 	{
 		'amend': 0,
 		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Accounts Manager',
-		'submit': 0,
-		'write': 0
+		'role': u'Accounts Manager',
+		'submit': 0
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocField
 	{
-		'description': 'The date at which current entry will get or has actually executed.',
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
+		'description': u'The date at which current entry will get or has actually executed.',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Posting Date',
-		'oldfieldname': 'posting_date',
-		'oldfieldtype': 'Date',
+		'label': u'Posting Date',
+		'oldfieldname': u'posting_date',
+		'oldfieldtype': u'Date',
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'description': 'The date at which current entry is made in system.',
-		'doctype': 'DocField',
-		'fieldname': 'transaction_date',
-		'fieldtype': 'Date',
-		'label': 'Transaction Date',
-		'oldfieldname': 'transaction_date',
-		'oldfieldtype': 'Date'
+		'description': u'The date at which current entry is made in system.',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_date',
+		'fieldtype': u'Date',
+		'label': u'Transaction Date',
+		'oldfieldname': u'transaction_date',
+		'oldfieldtype': u'Date'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'aging_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'aging_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Aging Date',
-		'oldfieldname': 'aging_date',
-		'oldfieldtype': 'Date',
+		'label': u'Aging Date',
+		'oldfieldname': u'aging_date',
+		'oldfieldtype': u'Date',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'account',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'account',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Account',
-		'oldfieldname': 'account',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'label': u'Account',
+		'oldfieldname': u'account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cost_center',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'cost_center',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Cost Center',
-		'oldfieldname': 'cost_center',
-		'oldfieldtype': 'Link',
-		'options': 'Cost Center',
+		'label': u'Cost Center',
+		'oldfieldname': u'cost_center',
+		'oldfieldtype': u'Link',
+		'options': u'Cost Center',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'debit',
-		'fieldtype': 'Currency',
-		'label': 'Debit Amt',
-		'oldfieldname': 'debit',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'debit',
+		'fieldtype': u'Currency',
+		'label': u'Debit Amt',
+		'oldfieldname': u'debit',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'credit',
-		'fieldtype': 'Currency',
-		'label': 'Credit Amt',
-		'oldfieldname': 'credit',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'credit',
+		'fieldtype': u'Currency',
+		'label': u'Credit Amt',
+		'oldfieldname': u'credit',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'against',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'against',
+		'fieldtype': u'Text',
 		'in_filter': 1,
-		'label': 'Against',
-		'oldfieldname': 'against',
-		'oldfieldtype': 'Text'
+		'label': u'Against',
+		'oldfieldname': u'against',
+		'oldfieldtype': u'Text'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'against_voucher',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'against_voucher',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Against Voucher',
-		'oldfieldname': 'against_voucher',
-		'oldfieldtype': 'Data',
+		'label': u'Against Voucher',
+		'oldfieldname': u'against_voucher',
+		'oldfieldtype': u'Data',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'against_voucher_type',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'against_voucher_type',
+		'fieldtype': u'Data',
 		'in_filter': 0,
-		'label': 'Against Voucher Type',
-		'oldfieldname': 'against_voucher_type',
-		'oldfieldtype': 'Data',
+		'label': u'Against Voucher Type',
+		'oldfieldname': u'against_voucher_type',
+		'oldfieldtype': u'Data',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_type',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'voucher_type',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Voucher Type',
-		'oldfieldname': 'voucher_type',
-		'oldfieldtype': 'Select',
-		'options': 'Journal Voucher\nReceivable Voucher\nPayable Voucher',
+		'label': u'Voucher Type',
+		'oldfieldname': u'voucher_type',
+		'oldfieldtype': u'Select',
+		'options': u'Journal Voucher\nSales Invoice\nPurchase Invoice',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_no',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'voucher_no',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Voucher No',
-		'oldfieldname': 'voucher_no',
-		'oldfieldtype': 'Data',
+		'label': u'Voucher No',
+		'oldfieldname': u'voucher_no',
+		'oldfieldtype': u'Data',
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'remarks',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Text',
 		'in_filter': 1,
-		'label': 'Remarks',
+		'label': u'Remarks',
 		'no_copy': 1,
-		'oldfieldname': 'remarks',
-		'oldfieldtype': 'Text',
+		'oldfieldname': u'remarks',
+		'oldfieldtype': u'Text',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_cancelled',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'is_cancelled',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Is Cancelled',
-		'oldfieldname': 'is_cancelled',
-		'oldfieldtype': 'Select',
-		'options': 'No\nYes',
+		'label': u'Is Cancelled',
+		'oldfieldname': u'is_cancelled',
+		'oldfieldtype': u'Select',
+		'options': u'No\nYes',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_opening',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'is_opening',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Is Opening',
-		'oldfieldname': 'is_opening',
-		'oldfieldtype': 'Select',
-		'options': 'No\nYes',
+		'label': u'Is Opening',
+		'oldfieldname': u'is_opening',
+		'oldfieldtype': u'Select',
+		'options': u'No\nYes',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_advance',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'is_advance',
+		'fieldtype': u'Select',
 		'in_filter': 0,
-		'label': 'Is Advance',
-		'oldfieldname': 'is_advance',
-		'oldfieldtype': 'Select',
-		'options': 'No\nYes',
+		'label': u'Is Advance',
+		'oldfieldname': u'is_advance',
+		'oldfieldtype': u'Select',
+		'options': u'No\nYes',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'search_index': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.py b/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.py
deleted file mode 100644
index 0ab0e05..0000000
--- a/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.py
+++ /dev/null
@@ -1,156 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-	def __init__(self, doc, doclist):
-		self.doc = doc
-		self.doclist = doclist
-		self.acc_type = self.doc.account and sql("select debit_or_credit from `tabAccount` where name = %s", self.doc.account)[0][0].lower() or ''
-		self.dt = {
-			'Sales Invoice': 'Receivable Voucher',
-			'Purchase Invoice': 'Payable Voucher',
-			'Journal Voucher': 'Journal Voucher'
-		}
-		
-	#--------------------------------------------------
-	def get_voucher_details(self):
-		tot_amt = sql("""
-			select sum(%s) from `tabGL Entry` where 
-			voucher_type = %s and voucher_no = %s 
-			and account = %s and ifnull(is_cancelled, 'No') = 'No'
-		"""% (self.acc_type, '%s', '%s', '%s'), (self.dt[self.doc.voucher_type], self.doc.voucher_no, self.doc.account))
-		
-		outstanding = sql("""
-			select sum(%s) - sum(%s) from `tabGL Entry` where 
-			against_voucher = %s and voucher_no != %s
-			and account = %s and ifnull(is_cancelled, 'No') = 'No'
-		""" % ((self.acc_type == 'debit' and 'credit' or 'debit'), self.acc_type, '%s', '%s', '%s'), (self.doc.voucher_no, self.doc.voucher_no, self.doc.account))
-		
-		ret = {
-			'total_amount': flt(tot_amt[0][0]) or 0,	
-			'pending_amt_to_reconcile': flt(tot_amt[0][0]) - flt(outstanding[0][0]) or 0
-		}
-		
-		return ret
-
-		
-	#--------------------------------------------------
-	def get_payment_entries(self):
-		"""
-			Get payment entries for the account and period
-			Payment entry will be decided based on account type (Dr/Cr)
-		"""
-
-		self.doc.clear_table(self.doclist, 'ir_payment_details')		
-		gle = self.get_gl_entries()
-		self.create_payment_table(gle)
-
-	#--------------------------------------------------
-	def get_gl_entries(self):
-		self.validate_mandatory()
-		dc = self.acc_type == 'debit' and 'credit' or 'debit'
-		
-		cond = self.doc.from_date and " and t1.posting_date >= '" + self.doc.from_date + "'" or ""
-		cond += self.doc.to_date and " and t1.posting_date <= '" + self.doc.to_date + "'"or ""
-		
-		cond += self.doc.amt_greater_than and ' and t2.' + dc+' >= ' + self.doc.amt_greater_than or ''
-		cond += self.doc.amt_less_than and ' and t2.' + dc+' <= ' + self.doc.amt_less_than or ''
-
-		gle = sql("""
-			select t1.name as voucher_no, t1.posting_date, t1.total_debit as total_amt,  sum(ifnull(t2.credit, 0)) - sum(ifnull(t2.debit, 0)) as amt_due, t1.remark, t2.against_account, t2.name as voucher_detail_no
-			from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
-			where t1.name = t2.parent  
-			and t1.docstatus = 1 
-			and t2.account = %s
-			and ifnull(t2.against_voucher, '')='' and ifnull(t2.against_invoice, '')='' and ifnull(t2.against_jv, '')=''
-			and t2.%s > 0
-			%s
-			group by t1.name, t2.name
-		"""% ('%s', dc, cond), self.doc.account, as_dict=1)
-
-		return gle
-
-	#--------------------------------------------------
-	def create_payment_table(self, gle):
-		for d in gle:
-			ch = addchild(self.doc, 'ir_payment_details', 'IR Payment Detail', 1, self.doclist)
-			ch.voucher_no = d.get('voucher_no')
-			ch.posting_date = d.get('posting_date')
-			ch.amt_due =  self.acc_type == 'debit' and flt(d.get('amt_due')) or -1*flt(d.get('amt_due'))
-			ch.total_amt = flt(d.get('total_amt'))
-			ch.against_account = d.get('against_account')
-			ch.remarks = d.get('remark')
-			ch.amt_to_be_reconciled = flt(ch.amt_due)
-			ch.voucher_detail_no = d.get('voucher_detail_no')
-			
-	#--------------------------------------------------
-	def validate_mandatory(self):
-		if not self.doc.account:
-			msgprint("Please select Account first", raise_exception=1)
-	
-	#--------------------------------------------------	
-	def reconcile(self):
-		"""
-			Links booking and payment voucher
-			1. cancel payment voucher
-			2. split into multiple rows if partially adjusted, assign against voucher
-			3. submit payment voucher
-		"""
-		if not self.doc.voucher_no or not sql("select name from `tab%s` where name = %s" %(self.dt[self.doc.voucher_type], '%s'),  self.doc.voucher_no):
-			msgprint("Please select valid Voucher No to proceed", raise_exception=1)
-		
-		lst = []
-		for d in getlist(self.doclist, 'ir_payment_details'):
-			if d.selected and flt(d.amt_to_be_reconciled) > 0:
-				args = {
-					'voucher_no' : d.voucher_no,
-					'voucher_detail_no' : d.voucher_detail_no, 
-					'against_voucher_type' : self.dt[self.doc.voucher_type], 
-					'against_voucher'  : self.doc.voucher_no,
-					'account' : self.doc.account, 
-					'is_advance' : 'No', 
-					'dr_or_cr' :  self.acc_type=='debit' and 'credit' or 'debit', 
-					'unadjusted_amt' : flt(d.amt_due),
-					'allocated_amt' : flt(d.amt_to_be_reconciled)
-				}
-			
-				lst.append(args)
-		
-
-		if lst:
-			get_obj('GL Control').reconcile_against_document(lst)
-			msgprint("Successfully reconciled.")
-		else:
-			msgprint("No payment entries selected.", raise_exception=1)
diff --git a/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.txt b/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.txt
deleted file mode 100644
index cc1523a..0000000
--- a/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.txt
+++ /dev/null
@@ -1,266 +0,0 @@
-# DocType, Internal Reconciliation
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-30 11:45:50',
-		'docstatus': 0,
-		'modified': '2011-09-26 14:21:22',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1316509358',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'document_type': 'Other',
-		'issingle': 1,
-		'module': 'Accounts',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 1,
-		'version': 35
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Internal Reconciliation',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Internal Reconciliation',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Internal Reconciliation
-	{
-		'doctype': 'DocType',
-		'name': 'Internal Reconciliation'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Accounts Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Accounts User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'All'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'account',
-		'fieldtype': 'Link',
-		'label': 'Account',
-		'options': 'Account',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_type',
-		'fieldtype': 'Select',
-		'label': 'Voucher Type',
-		'options': 'Sales Invoice\nPurchase Invoice\nJournal Voucher',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'voucher_no',
-		'fieldtype': 'Link',
-		'label': 'Voucher No',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'total_amount',
-		'fieldtype': 'Currency',
-		'label': 'Total Amount',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'pending_amt_to_reconcile',
-		'fieldtype': 'Currency',
-		'label': 'Pending Amt To Reconcile',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Payment Entries',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'label': "<div class = 'field_description'>Filter payment entries based on date:</div>",
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'label': 'From Date',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'label': 'To Date',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'label': "<div class = 'field_description'>Filter payment entries based on amount:</div>",
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'amt_greater_than',
-		'fieldtype': 'Data',
-		'label': 'Amount >=',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amt_less_than',
-		'fieldtype': 'Data',
-		'label': 'Amount <=',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'options': 'Simple',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Pull Payment Entries',
-		'options': 'get_payment_entries',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'ir_payment_details',
-		'fieldtype': 'Table',
-		'label': 'Payment Entries',
-		'options': 'IR Payment Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'Reconcile HTML',
-		'options': "<div class='field_description'>Select Payment Voucher and Amount to Reconcile in the above table and then click Reconcile button</div>",
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Reconcile',
-		'options': 'reconcile',
-		'permlevel': 0,
-		'trigger': 'Client'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/internal_reconciliation/test_ir.py b/erpnext/accounts/doctype/internal_reconciliation/test_ir.py
deleted file mode 100644
index c5aa935..0000000
--- a/erpnext/accounts/doctype/internal_reconciliation/test_ir.py
+++ /dev/null
@@ -1,185 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import unittest
-import webnotes
-
-from webnotes.model.doc import Document
-from webnotes.model.code import get_obj
-from webnotes.utils import cstr, flt
-sql = webnotes.conn.sql
-
-class TestInternalReco(unittest.TestCase):
-	def setUp(self):
-		webnotes.conn.begin()
-		
-		comp1.save(1)
-		cust1.save(1)
-		bank1.save(1)
-		rv1.save(1)
-		rv_gle.save(1)
-
-
-		for t in jv1: t.save(1)
-		for t in jv1[1:]:
-			sql("update `tabJournal Voucher Detail` set parent = '%s' where name = '%s'" % (jv1[0].name, t.name))
-			
-		ir[0].save()
-		for t in ir[1:]:
-			t.save(1)
-			sql("update `tabIR Payment Detail` set voucher_no = '%s', voucher_detail_no = '%s' where parent = 'Internal Reconciliation'" % (jv1[0].name, jv1[1].name))
-		
-		
-		sql("update `tabGL Entry` set voucher_no = %s, against_voucher = %s where voucher_no = 'rv1'", (rv1.name, rv1.name))
-		sql("update `tabSingles` set value = %s where doctype = 'Internal Reconciliation' and field = 'voucher_no'", rv1.name)
-		
-		
-		self.ir = get_obj('Internal Reconciliation', with_children=1)		
-		self.ir.reconcile()
-		
-	#===========================
-	def test_jv(self):
-		"""
-			Test whether JV has benn properly splitted and against doc has been updated
-		"""
-		amt_against_doc = [[cstr(d[0]), flt(d[1]), flt(d[2])]for d in sql("select against_invoice, debit, credit from `tabJournal Voucher Detail` where parent = %s and account = 'cust1 - c1'", jv1[0].name)]
-		self.assertTrue(amt_against_doc == [[rv1.name, 0, 100.0], ['', 0, 400.0]])
-
-	#============================		
-	def test_gl_entry(self):
-		"""
-			Check proper gl entry has been made
-		"""
-		gle = [[cstr(d[0]), flt(d[1])] for d in sql("select against_voucher, sum(credit) - sum(debit) from `tabGL Entry` where voucher_no = %s and account = 'cust1 - c1' and ifnull(is_cancelled, 'No') = 'No' group by against_voucher", jv1[0].name)]
-
-		self.assertTrue([rv1.name, 100.0] in gle)
-		self.assertTrue(['', 400.0] in gle)
-		
-	#============================
-	def test_outstanding(self):
-		"""
-			Check whether Outstanding amount has been properly updated in RV
-		"""
-		amt = sql("select outstanding_amount from `tabReceivable Voucher` where name = '%s'" % rv1.name)[0][0]
-		self.assertTrue(amt == 0)
-		
-	#============================
-	def tearDown(self):
-		webnotes.conn.rollback()
-	
-
-
-
-# test data
-#---------------
-rv1 = Document(fielddata={
-		'doctype':'Receivable Voucher',
-		'docstatus':1,
-		'debit_to':'cust1 - c1',
-		'grand_total': 100,
-		'outstanding_amount': 100,
-		'name': 'rv1'
-	})
-	
-jv1 = [Document(fielddata={
-		'doctype':'Journal Voucher',
-		'docstatus':1,
-		'cheque_no': '163567',
-		'docstatus':1,
-		'company': 'comp1',
-		'posting_date' : '2011-05-02',
-		'remark': 'test data',
-		'fiscal_year': '2011-2012',
-		'total_debit': 500,
-		'total_credit': 500
-	}),
-	Document(fielddata = {
-		'parenttype':'Journal Voucher',
-		'parentfield':'entries',
-		'doctype':'Journal Voucher Detail',
-		'account' : 'cust1 - c1',
-		'credit':500,
-		'debit' : 0,
-		'docstatus':1
-	}),
-	Document(fielddata = {
-		'parenttype':'Journal Voucher',
-		'parentfield':'entries',
-		'doctype':'Journal Voucher Detail',
-		'account' : 'bank1 - c1',
-		'credit':0,
-		'debit' : 500,
-		'docstatus':1
-	})]
-	
-ir = [Document(fielddata = {
-		'doctype':'Internal Reconciliation',
-		'name' : 'Internal Reconciliation',
-		'account':'cust1 - c1',
-		'voucher_type' : 'Sales Invoice',
-		'voucher_no': 'rv1'
-	}),
-	Document(fielddata = {
-		'parenttype':'Internal Reconciliation',
-		'parentfield':'ir_payment_details',
-		'doctype':'IR Payment Detail',
-		'parent': 'Internal Reconciliation',
-		'voucher_no': 'jv1',
-		'name' : '123112',
-		'voucher_detail_no' : 'jvd1',
-		'selected' : 1,
-		'amt_due' : 500,
-		'amt_to_be_reconciled':100
-	})]
-	
-cust1 = Document(fielddata={
-		'doctype':'Account',
-		'docstatus':0,
-		'account_name' : 'cust1',
-		'debit_or_credit': 'Debit',
-		'company' : 'comp1',
-		'lft': 1,
-		'rgt': 2
-	})
-	
-bank1 = Document(fielddata={
-		'doctype':'Account',
-		'docstatus':0,
-		'account_name' : 'bank1',
-		'debit_or_credit': 'Debit',
-		'company' : 'comp1',
-		'lft': 3,
-		'rgt': 4
-	})	
-	
-comp1 = Document(fielddata={
-		'doctype':'Company',
-		'abbr': 'c1',
-		'company_name' : 'comp1',
-		'name': 'comp1'
-	})
-	
-rv_gle = Document(fielddata={
-		'doctype':'GL Entry',
-		'account': 'cust1 - c1',
-		'company' : 'comp1',
-		'voucher_no': 'rv1',
-		'against_voucher': 'rv1',
-		'against_voucher_type': 'Receivable Voucher',
-		'voucher_type' : 'Receivable Voucher',
-		'debit': 100,
-		'credit': 0
-	})
diff --git a/erpnext/accounts/doctype/ir_payment_detail/ir_payment_detail.txt b/erpnext/accounts/doctype/ir_payment_detail/ir_payment_detail.txt
deleted file mode 100644
index b35c497..0000000
--- a/erpnext/accounts/doctype/ir_payment_detail/ir_payment_detail.txt
+++ /dev/null
@@ -1,132 +0,0 @@
-# DocType, IR Payment Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-30 11:57:48',
-		'docstatus': 0,
-		'modified': '2011-09-20 15:18:02',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Accounts',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 14
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'IR Payment Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, IR Payment Detail
-	{
-		'doctype': 'DocType',
-		'name': 'IR Payment Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'selected',
-		'fieldtype': 'Check',
-		'label': 'Select',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': '60px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_no',
-		'fieldtype': 'Link',
-		'label': 'Voucher No',
-		'options': 'Journal Voucher',
-		'permlevel': 1,
-		'reqd': 0,
-		'width': '140px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amt_due',
-		'fieldtype': 'Currency',
-		'label': 'Amt Due',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amt_to_be_reconciled',
-		'fieldtype': 'Currency',
-		'label': 'Amt to be reconciled',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
-		'label': 'Posting Date',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'total_amt',
-		'fieldtype': 'Currency',
-		'label': 'Total Amt',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'against_account',
-		'fieldtype': 'Data',
-		'label': 'Against Account',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'remarks',
-		'fieldtype': 'Small Text',
-		'label': 'Remarks',
-		'permlevel': 1,
-		'width': '200px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_detail_no',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'label': 'Voucher Detail No',
-		'no_column': 0,
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.js b/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
index 771f026..e947133 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
@@ -69,12 +69,12 @@
 // ---------------------------------
 cur_frm.fields_dict['entries'].grid.get_field('against_voucher').get_query = function(doc) {
 	var d = locals[this.doctype][this.docname];
-	return "SELECT `tabPayable Voucher`.name, `tabPayable Voucher`.credit_to, `tabPayable Voucher`.outstanding_amount,`tabPayable Voucher`.bill_no, `tabPayable Voucher`.bill_date FROM `tabPayable Voucher` WHERE `tabPayable Voucher`.credit_to='"+d.account+"' AND `tabPayable Voucher`.outstanding_amount > 0 AND `tabPayable Voucher`.docstatus = 1 AND `tabPayable Voucher`.%(key)s LIKE '%s' ORDER BY `tabPayable Voucher`.name DESC LIMIT 200";
+	return "SELECT `tabPurchase Invoice`.name, `tabPurchase Invoice`.credit_to, `tabPurchase Invoice`.outstanding_amount,`tabPurchase Invoice`.bill_no, `tabPurchase Invoice`.bill_date FROM `tabPurchase Invoice` WHERE `tabPurchase Invoice`.credit_to='"+d.account+"' AND `tabPurchase Invoice`.outstanding_amount > 0 AND `tabPurchase Invoice`.docstatus = 1 AND `tabPurchase Invoice`.%(key)s LIKE '%s' ORDER BY `tabPurchase Invoice`.name DESC LIMIT 200";
 }
 
 cur_frm.fields_dict['entries'].grid.get_field('against_invoice').get_query = function(doc) {
 	var d = locals[this.doctype][this.docname];
-	return "SELECT `tabReceivable Voucher`.name, `tabReceivable Voucher`.debit_to, `tabReceivable Voucher`.outstanding_amount FROM `tabReceivable Voucher` WHERE `tabReceivable Voucher`.debit_to='"+d.account+"' AND `tabReceivable Voucher`.outstanding_amount > 0 AND `tabReceivable Voucher`.docstatus = 1 AND `tabReceivable Voucher`.%(key)s LIKE '%s' ORDER BY `tabReceivable Voucher`.name DESC LIMIT 200";
+	return "SELECT `tabSales Invoice`.name, `tabSales Invoice`.debit_to, `tabSales Invoice`.outstanding_amount FROM `tabSales Invoice` WHERE `tabSales Invoice`.debit_to='"+d.account+"' AND `tabSales Invoice`.outstanding_amount > 0 AND `tabSales Invoice`.docstatus = 1 AND `tabSales Invoice`.%(key)s LIKE '%s' ORDER BY `tabSales Invoice`.name DESC LIMIT 200";
 }
 
 // TDS Account Head
@@ -92,13 +92,13 @@
 	}
 }
 
-// Get Outstanding of Payable & Receivable Voucher
+// Get Outstanding of Payable & Sales Invoice
 // -----------------------------------------------
 
 cur_frm.cscript.against_voucher = function(doc,cdt,cdn) {
 	var d = locals[cdt][cdn];
 	if (d.against_voucher && !flt(d.debit)) {
-		args = {'doctype': 'Payable Voucher', 'docname': d.against_voucher }
+		args = {'doctype': 'Purchase Invoice', 'docname': d.against_voucher }
 		get_server_fields('get_outstanding',docstring(args),'entries',doc,cdt,cdn,1,function(r,rt) { cur_frm.cscript.update_totals(doc); });
 	}
 }
@@ -106,7 +106,7 @@
 cur_frm.cscript.against_invoice = function(doc,cdt,cdn) {
 	var d = locals[cdt][cdn];
 	if (d.against_invoice && !flt(d.credit)) {
-		args = {'doctype': 'Receivable Voucher', 'docname': d.against_invoice }
+		args = {'doctype': 'Sales Invoice', 'docname': d.against_invoice }
 		get_server_fields('get_outstanding',docstring(args),'entries',doc,cdt,cdn,1,function(r,rt) { cur_frm.cscript.update_totals(doc); });
 	}
 }
@@ -137,7 +137,7 @@
 	refresh_field('ded_amount');
 	cur_frm.cscript.update_totals(doc); 
 }
-cur_frm.cscript['Get Balance'] = function(doc,dt,dn) {
+cur_frm.cscript.get_balance = function(doc,dt,dn) {
 	cur_frm.cscript.update_totals(doc); 
 	$c_obj(make_doclist(dt,dn), 'get_balance', '', function(r, rt){
 	cur_frm.refresh();
@@ -157,14 +157,14 @@
 
 // TDS
 // --------
-cur_frm.cscript['Get TDS'] = function(doc, dt, dn) {
+cur_frm.cscript.get_tds = function(doc, dt, dn) {
 	$c_obj(make_doclist(dt,dn), 'get_tds', '', function(r, rt){
 		cur_frm.refresh();
 		cur_frm.cscript.update_totals(doc);
 	});
 }
 
-// ***************** Get Print Heading based on Receivable Voucher *****************
+// ***************** Get Print Heading based on Sales Invoice *****************
 cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
 	return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
 }
@@ -181,7 +181,7 @@
 }
 
 /****************** Get Accounting Entry *****************/
-cur_frm.cscript['View Ledger Entry'] = function(doc,cdt,cdn){
+cur_frm.cscript.view_ledger_entry = function(doc,cdt,cdn){
 	var callback = function(report){
 		report.set_filter('GL Entry', 'Voucher No',doc.name);
 		report.dt.run();
diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
index a5b2abf..02f4841 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
@@ -53,9 +53,9 @@
   def get_outstanding(self, args):
     args = eval(args)
     o_s = sql("select outstanding_amount from `tab%s` where name = '%s'" % (args['doctype'],args['docname']))
-    if args['doctype'] == 'Payable Voucher':
+    if args['doctype'] == 'Purchase Invoice':
       return {'debit': o_s and flt(o_s[0][0]) or 0}
-    if args['doctype'] == 'Receivable Voucher':
+    if args['doctype'] == 'Sales Invoice':
       return {'credit': o_s and flt(o_s[0][0]) or 0}
 
   #--------------------------------------------------------------------------------------------------------
@@ -72,11 +72,11 @@
     
     for d in getlist(self.doclist, 'entries'):
       if d.against_invoice and d.credit:
-        currency = sql("select currency from `tabReceivable Voucher` where name = '%s'" % d.against_invoice)
+        currency = sql("select currency from `tabSales Invoice` where name = '%s'" % d.against_invoice)
         currency = currency and currency[0][0] or ''
         r.append('%s %s against Invoice: %s' % (cstr(currency), fmt_money(flt(d.credit)), d.against_invoice))
       if d.against_voucher and d.debit:
-        bill_no = sql("select bill_no, bill_date, currency from `tabPayable Voucher` where name=%s", d.against_voucher)
+        bill_no = sql("select bill_no, bill_date, currency from `tabPurchase Invoice` where name=%s", d.against_voucher)
         if bill_no and bill_no[0][0] and bill_no[0][0].lower().strip() not in ['na', 'not applicable', 'none']:
           bill_no = bill_no and bill_no[0]
           r.append('%s %s against Bill %s dated %s' % (bill_no[2] and cstr(bill_no[2]) or '', fmt_money(flt(d.debit)), bill_no[0], bill_no[1] and formatdate(bill_no[1].strftime('%Y-%m-%d')) or ''))
@@ -97,7 +97,7 @@
       self.is_approving_authority = 0
 
       # Fetch credit controller role
-      approving_authority = sql("select value from `tabSingles` where field='credit_controller' and doctype='Manage Account'")
+      approving_authority = sql("select value from `tabSingles` where field='credit_controller' and doctype='Global Defaults'")
       approving_authority = approving_authority and approving_authority[0][0] or ''
 	    
       # Check logged-in user is authorized
@@ -155,13 +155,13 @@
   def check_account_against_entries(self):
     for d in getlist(self.doclist,'entries'):
       if d.against_invoice:
-        acc=sql("select debit_to from `tabReceivable Voucher` where name='%s'"%d.against_invoice)
+        acc=sql("select debit_to from `tabSales Invoice` where name='%s'"%d.against_invoice)
         if acc and acc[0][0] != d.account:
           msgprint("Debit account is not matching with receivable voucher")
           raise Exception
       
       if d.against_voucher:
-        acc=sql("select credit_to from `tabPayable Voucher` where name='%s'"%d.against_voucher)
+        acc=sql("select credit_to from `tabPurchase Invoice` where name='%s'"%d.against_voucher)
         if acc and acc[0][0] != d.account:
           msgprint("Credit account is not matching with payable voucher")
           raise Exception
@@ -369,9 +369,9 @@
   def get_values(self):
     cond = (flt(self.doc.write_off_amount) > 0) and ' and outstanding_amount <= '+self.doc.write_off_amount or ''
     if self.doc.write_off_based_on == 'Accounts Receivable':
-      return sql("select name, debit_to, outstanding_amount from `tabReceivable Voucher` where docstatus = 1 and company = '%s' and outstanding_amount > 0 %s" % (self.doc.company, cond))
+      return sql("select name, debit_to, outstanding_amount from `tabSales Invoice` where docstatus = 1 and company = '%s' and outstanding_amount > 0 %s" % (self.doc.company, cond))
     elif self.doc.write_off_based_on == 'Accounts Payable':
-      return sql("select name, credit_to, outstanding_amount from `tabPayable Voucher` where docstatus = 1 and company = '%s' and outstanding_amount > 0 %s" % (self.doc.company, cond))
+      return sql("select name, credit_to, outstanding_amount from `tabPurchase Invoice` where docstatus = 1 and company = '%s' and outstanding_amount > 0 %s" % (self.doc.company, cond))
 
 
   # -------------------------
diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.txt b/erpnext/accounts/doctype/journal_voucher/journal_voucher.txt
index 0d67374..dedd2f9 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.txt
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.txt
@@ -3,74 +3,54 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:06',
+		'creation': '2012-03-27 14:35:43',
 		'docstatus': 0,
-		'modified': '2012-01-19 14:15:53',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Journal Voucher',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'modified': '2012-03-27 14:45:48',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1311251040',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'_last_update': u'1311251040',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Accounts',
+		'is_submittable': 1,
+		'module': u'Accounts',
 		'name': '__common__',
-		'search_fields': 'voucher_type,posting_date, due_date, cheque_no',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'search_fields': u'voucher_type,posting_date, due_date, cheque_no',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': ' ',
-		'tag_fields': 'voucher_type',
+		'subject': u' ',
+		'tag_fields': u'voucher_type',
 		'version': 311
 	},
 
-	# These values are common for all DocFormat
+	# These values are common for all DocField
 	{
-		'doctype': 'DocFormat',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Journal Voucher',
-		'parentfield': 'formats',
-		'parenttype': 'DocType'
+		'parent': u'Journal Voucher',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Journal Voucher',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Journal Voucher',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Journal Voucher
 	{
 		'doctype': 'DocType',
-		'name': 'Journal Voucher'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Accounts Manager',
-		'submit': 0,
-		'write': 0
+		'name': u'Journal Voucher'
 	},
 
 	# DocPerm
@@ -78,21 +58,9 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Accounts Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Accounts User',
+		'role': u'Accounts User',
 		'submit': 1,
 		'write': 1
 	},
@@ -102,63 +70,78 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Accounts User',
+		'role': u'Accounts User',
 		'submit': 0,
 		'write': 0
 	},
 
-	# DocFormat
+	# DocPerm
 	{
-		'doctype': 'DocFormat',
-		'format': 'Payment Receipt Voucher'
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts Manager',
+		'submit': 0,
+		'write': 0
 	},
 
-	# DocFormat
+	# DocPerm
 	{
-		'doctype': 'DocFormat',
-		'format': 'Cheque Printing Format'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Basic Info',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': '1. Select Series and Dates',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'width': '50%'
+		'role': u'Accounts Manager',
+		'submit': 1,
+		'write': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_type',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'1_select_series_and_dates',
+		'fieldtype': u'Section Break',
+		'label': u'1. Select Series and Dates',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'voucher_type',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Voucher Type',
-		'oldfieldname': 'voucher_type',
-		'oldfieldtype': 'Select',
-		'options': '\nJournal Entry\nBank Voucher\nCash Voucher\nCredit Card Voucher\nDebit Note\nCredit Note\nContra Voucher\nExcise Voucher\nWrite Off Voucher',
+		'label': u'Voucher Type',
+		'oldfieldname': u'voucher_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nJournal Entry\nBank Voucher\nCash Voucher\nCredit Card Voucher\nDebit Note\nCredit Note\nContra Voucher\nExcise Voucher\nWrite Off Voucher',
 		'permlevel': 0,
 		'print_hide': 0,
 		'search_index': 1
@@ -166,12 +149,12 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.voucher_type == 'Write Off Voucher'",
-		'doctype': 'DocField',
-		'fieldname': 'write_off_amount',
-		'fieldtype': 'Currency',
-		'label': 'Write Off Amount <=',
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.voucher_type == 'Write Off Voucher'",
+		'doctype': u'DocField',
+		'fieldname': u'write_off_amount',
+		'fieldtype': u'Currency',
+		'label': u'Write Off Amount <=',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -179,14 +162,14 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Accounts Receivable',
-		'depends_on': "eval:doc.voucher_type == 'Write Off Voucher'",
-		'doctype': 'DocField',
-		'fieldname': 'write_off_based_on',
-		'fieldtype': 'Select',
-		'label': 'Write Off Based On',
-		'options': 'Accounts Receivable\nAccounts Payable',
+		'colour': u'White:FFF',
+		'default': u'Accounts Receivable',
+		'depends_on': u"eval:doc.voucher_type == 'Write Off Voucher'",
+		'doctype': u'DocField',
+		'fieldname': u'write_off_based_on',
+		'fieldtype': u'Select',
+		'label': u'Write Off Based On',
+		'options': u'Accounts Receivable\nAccounts Payable',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -194,16 +177,16 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'To manage multiple series please go to Setup > Manage Series',
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'label': 'Series',
+		'colour': u'White:FFF',
+		'description': u'To manage multiple series please go to Setup > Manage Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Series',
 		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
-		'options': 'JV',
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'JV',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1
@@ -211,16 +194,16 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Today',
-		'doctype': 'DocField',
-		'fieldname': 'voucher_date',
-		'fieldtype': 'Date',
+		'colour': u'White:FFF',
+		'default': u'Today',
+		'doctype': u'DocField',
+		'fieldname': u'voucher_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Voucher Date',
+		'label': u'Voucher Date',
 		'no_copy': 1,
-		'oldfieldname': 'voucher_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'voucher_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'print_hide': 0,
 		'reqd': 1,
@@ -229,15 +212,15 @@
 
 	# DocField
 	{
-		'description': 'The date at which current entry will get or has actually executed.',
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
+		'description': u'The date at which current entry will get or has actually executed.',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Posting Date',
+		'label': u'Posting Date',
 		'no_copy': 1,
-		'oldfieldname': 'posting_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'posting_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -245,102 +228,104 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'due_date',
-		'fieldtype': 'Date',
-		'label': 'Due Date',
-		'oldfieldname': 'due_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'due_date',
+		'fieldtype': u'Date',
+		'label': u'Due Date',
+		'oldfieldname': u'due_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'print_hide': 0
 	},
 
 	# DocField
 	{
-		'description': 'The date at which current entry is corrected in the system.',
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'label': 'Amendment Date',
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
 		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Link',
-		'label': 'Amended From',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Link',
+		'label': u'Amended From',
 		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Link',
-		'options': 'Journal Voucher',
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Link',
+		'options': u'Journal Voucher',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.voucher_type == 'Write Off Voucher'",
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Get Outstanding Invoices',
-		'options': 'get_outstanding_invoices',
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.voucher_type == 'Write Off Voucher'",
+		'doctype': u'DocField',
+		'fieldname': u'get_outstanding_invoices',
+		'fieldtype': u'Button',
+		'label': u'Get Outstanding Invoices',
+		'options': u'get_outstanding_invoices',
 		'permlevel': 0,
 		'print_hide': 1,
-		'trigger': 'Server'
+		'trigger': u'Server'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cheque_no',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'cheque_no',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Cheque No',
+		'label': u'Cheque No',
 		'no_copy': 1,
-		'oldfieldname': 'cheque_no',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'cheque_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cheque_date',
-		'fieldtype': 'Date',
-		'label': 'Cheque Date',
+		'doctype': u'DocField',
+		'fieldname': u'cheque_date',
+		'fieldtype': u'Date',
+		'label': u'Cheque Date',
 		'no_copy': 1,
-		'oldfieldname': 'cheque_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'cheque_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'clearance_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'clearance_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Clearance Date',
+		'label': u'Clearance Date',
 		'no_copy': 1,
-		'oldfieldname': 'clearance_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'clearance_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'print_hide': 0,
 		'search_index': 1
@@ -348,197 +333,201 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'user_remark',
-		'fieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'user_remark',
+		'fieldtype': u'Small Text',
 		'in_filter': 1,
-		'label': 'User Remark',
+		'label': u'User Remark',
 		'no_copy': 1,
-		'oldfieldname': 'user_remark',
-		'oldfieldtype': 'Small Text',
+		'oldfieldname': u'user_remark',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'description': 'User Remark will be added to Auto Remark',
-		'doctype': 'DocField',
-		'fieldname': 'remark',
-		'fieldtype': 'Small Text',
-		'label': 'Remark',
+		'description': u'User Remark will be added to Auto Remark',
+		'doctype': u'DocField',
+		'fieldname': u'remark',
+		'fieldtype': u'Small Text',
+		'label': u'Remark',
 		'no_copy': 1,
-		'oldfieldname': 'remark',
-		'oldfieldtype': 'Small Text',
+		'oldfieldname': u'remark',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': '2. Add / Edit GL Entries',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'2_add_edit_gl_entries',
+		'fieldtype': u'Section Break',
+		'label': u'2. Add / Edit GL Entries',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'entries',
-		'fieldtype': 'Table',
-		'label': 'Entries',
-		'oldfieldname': 'entries',
-		'oldfieldtype': 'Table',
-		'options': 'Journal Voucher Detail',
+		'doctype': u'DocField',
+		'fieldname': u'entries',
+		'fieldtype': u'Table',
+		'label': u'Entries',
+		'oldfieldname': u'entries',
+		'oldfieldtype': u'Table',
+		'options': u'Journal Voucher Detail',
 		'permlevel': 0,
 		'print_hide': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Get Balance',
-		'oldfieldtype': 'Button',
+		'doctype': u'DocField',
+		'fieldname': u'get_balance',
+		'fieldtype': u'Button',
+		'label': u'Get Balance',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_debit',
-		'fieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'total_debit',
+		'fieldtype': u'Currency',
 		'in_filter': 1,
-		'label': 'Total Debit',
+		'label': u'Total Debit',
 		'no_copy': 1,
-		'oldfieldname': 'total_debit',
-		'oldfieldtype': 'Currency',
+		'oldfieldname': u'total_debit',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_credit',
-		'fieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'total_credit',
+		'fieldtype': u'Currency',
 		'in_filter': 1,
-		'label': 'Total Credit',
+		'label': u'Total Credit',
 		'no_copy': 1,
-		'oldfieldname': 'total_credit',
-		'oldfieldtype': 'Currency',
+		'oldfieldname': u'total_credit',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'difference',
-		'fieldtype': 'Currency',
-		'label': 'Difference',
+		'doctype': u'DocField',
+		'fieldname': u'difference',
+		'fieldtype': u'Currency',
+		'label': u'Difference',
 		'no_copy': 1,
-		'oldfieldname': 'difference',
-		'oldfieldtype': 'Currency',
+		'oldfieldname': u'difference',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Addtional Info',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'addtional_info',
+		'fieldtype': u'Section Break',
+		'label': u'Addtional Info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'bill_no',
-		'fieldtype': 'Data',
-		'label': 'Bill No',
-		'oldfieldname': 'bill_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'bill_no',
+		'fieldtype': u'Data',
+		'label': u'Bill No',
+		'oldfieldname': u'bill_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'bill_date',
-		'fieldtype': 'Date',
-		'label': 'Bill Date',
-		'oldfieldname': 'bill_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'bill_date',
+		'fieldtype': u'Date',
+		'label': u'Bill Date',
+		'oldfieldname': u'bill_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'No',
-		'doctype': 'DocField',
-		'fieldname': 'is_opening',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'default': u'No',
+		'doctype': u'DocField',
+		'fieldname': u'is_opening',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Is Opening',
-		'oldfieldname': 'is_opening',
-		'oldfieldtype': 'Select',
-		'options': 'No\nYes',
+		'label': u'Is Opening',
+		'oldfieldname': u'is_opening',
+		'oldfieldtype': u'Select',
+		'options': u'No\nYes',
 		'permlevel': 0,
 		'print_hide': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'aging_date',
-		'fieldtype': 'Date',
-		'label': 'Aging Date',
+		'doctype': u'DocField',
+		'fieldname': u'aging_date',
+		'fieldtype': u'Date',
+		'label': u'Aging Date',
 		'no_copy': 0,
-		'oldfieldname': 'aging_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'aging_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cancel_reason',
-		'fieldtype': 'Data',
-		'label': 'Cancel Reason',
+		'doctype': u'DocField',
+		'fieldname': u'cancel_reason',
+		'fieldtype': u'Data',
+		'label': u'Cancel Reason',
 		'no_copy': 1,
-		'oldfieldname': 'cancel_reason',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'cancel_reason',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'pay_to_recd_from',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'pay_to_recd_from',
+		'fieldtype': u'Data',
 		'hidden': 0,
-		'label': 'Pay To / Recd From',
+		'label': u'Pay To / Recd From',
 		'no_copy': 1,
 		'permlevel': 0,
 		'print_hide': 1,
@@ -547,11 +536,11 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_amount',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'total_amount',
+		'fieldtype': u'Data',
 		'hidden': 0,
-		'label': 'Total Amount',
+		'label': u'Total Amount',
 		'no_copy': 1,
 		'permlevel': 1,
 		'print_hide': 1,
@@ -560,11 +549,11 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_amount_in_words',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'total_amount_in_words',
+		'fieldtype': u'Data',
 		'hidden': 0,
-		'label': 'Total Amount in Words',
+		'label': u'Total Amount in Words',
 		'no_copy': 1,
 		'permlevel': 1,
 		'print_hide': 1,
@@ -573,23 +562,24 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
@@ -598,14 +588,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
@@ -615,64 +605,67 @@
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'select_print_heading',
-		'fieldtype': 'Link',
-		'label': 'Select Print Heading',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'select_print_heading',
+		'fieldtype': u'Link',
+		'label': u'Select Print Heading',
 		'no_copy': 1,
-		'oldfieldname': 'select_print_heading',
-		'oldfieldtype': 'Link',
-		'options': 'Print Heading',
+		'oldfieldname': u'select_print_heading',
+		'oldfieldtype': u'Link',
+		'options': u'Print Heading',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'View Ledger Entry',
-		'oldfieldtype': 'Button',
+		'doctype': u'DocField',
+		'fieldname': u'view_ledger_entry',
+		'fieldtype': u'Button',
+		'label': u'View Ledger Entry',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
 		'print_hide': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'TDS',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'tds',
+		'fieldtype': u'Section Break',
+		'label': u'TDS',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0,
 		'print_hide': 0
 	},
 
 	# DocField
 	{
-		'default': 'No',
-		'doctype': 'DocField',
-		'fieldname': 'tds_applicable',
-		'fieldtype': 'Select',
+		'default': u'No',
+		'doctype': u'DocField',
+		'fieldname': u'tds_applicable',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'TDS Applicable',
+		'label': u'TDS Applicable',
 		'no_copy': 1,
-		'oldfieldname': 'tds_applicable',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'oldfieldname': u'tds_applicable',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'print_hide': 1,
 		'search_index': 1
@@ -680,93 +673,94 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'tds_category',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'tds_category',
+		'fieldtype': u'Select',
 		'hidden': 0,
 		'in_filter': 1,
-		'label': 'TDS Category',
+		'label': u'TDS Category',
 		'no_copy': 1,
-		'oldfieldname': 'tds_category',
-		'oldfieldtype': 'Select',
-		'options': 'link:TDS Category',
+		'oldfieldname': u'tds_category',
+		'oldfieldtype': u'Select',
+		'options': u'link:TDS Category',
 		'permlevel': 0,
 		'print_hide': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'supplier_account',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'supplier_account',
+		'fieldtype': u'Link',
 		'hidden': 0,
-		'label': 'Supplier Account',
+		'label': u'Supplier Account',
 		'no_copy': 1,
-		'oldfieldname': 'supplier_account',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'oldfieldname': u'supplier_account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'permlevel': 0,
 		'print_hide': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Get TDS',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'get_tds',
+		'fieldtype': u'Button',
+		'label': u'Get TDS',
 		'no_copy': 0,
-		'oldfieldtype': 'Button',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Tax Code will be populated based on account head mentioned in TDS Category master',
-		'doctype': 'DocField',
-		'fieldname': 'tax_code',
-		'fieldtype': 'Link',
-		'label': 'TDS Account Head',
+		'colour': u'White:FFF',
+		'description': u'Tax Code will be populated based on account head mentioned in TDS Category master',
+		'doctype': u'DocField',
+		'fieldname': u'tax_code',
+		'fieldtype': u'Link',
+		'label': u'TDS Account Head',
 		'no_copy': 1,
-		'oldfieldname': 'tax_code',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'oldfieldname': u'tax_code',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rate',
-		'fieldtype': 'Currency',
-		'label': 'Rate',
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
 		'no_copy': 1,
-		'oldfieldname': 'rate',
-		'oldfieldtype': 'Currency',
+		'oldfieldname': u'rate',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'print_hide': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'ded_amount',
-		'fieldtype': 'Currency',
-		'label': 'Amount',
+		'doctype': u'DocField',
+		'fieldname': u'ded_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
 		'no_copy': 1,
-		'oldfieldname': 'ded_amount',
-		'oldfieldtype': 'Currency',
+		'oldfieldname': u'ded_amount',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'print_hide': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/journal_voucher/listview.js b/erpnext/accounts/doctype/journal_voucher/listview.js
new file mode 100644
index 0000000..5d7f85a
--- /dev/null
+++ b/erpnext/accounts/doctype/journal_voucher/listview.js
@@ -0,0 +1,34 @@
+wn.doclistviews['Journal Voucher'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d);
+		this.fields = this.fields.concat([
+			'`tabJournal Voucher`.voucher_type',
+			'`tabJournal Voucher`.remark',
+			'`tabJournal Voucher`.total_debit'
+		]);
+		this.stats = this.stats.concat(['voucher_type']);
+	},
+	prepare_data: function(data) {
+		this._super(data);
+		if(!data.remark) data.remark = '';
+		if(data.remark.length> 30) {
+			data.remark = '<span title="'+data.remark+'">' + data.remark.substr(0,30) 
+				+ '...</span>';
+		}
+	},
+	columns: [
+		{width: '5%', content:'avatar'},
+		{width: '3%', content:'docstatus'},
+		{width: '12%', content:'name'},
+		{width: '15%', content:'voucher_type'},
+		{width: '38%', content:'tags+remark', css: {'color':'#aaa'}},
+		{
+			width: '18%', 
+			content: function(parent, data) { 
+				$(parent).html(sys_defaults.currency + ' ' + fmt_money(data.total_debit)) 
+			},
+			css: {'text-align':'right'}
+		},
+		{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}		
+	],
+});
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt b/erpnext/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt
index 4a350c2..c7b6d1a 100644
--- a/erpnext/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt
+++ b/erpnext/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt
@@ -3,189 +3,181 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:06',
+		'creation': '2012-03-27 14:35:43',
 		'docstatus': 0,
-		'modified': '2010-10-01 16:24:51',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:43',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'JVD.######',
-		'colour': 'White:FFF',
+		'autoname': u'JVD.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 2
+		'version': 3
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Journal Voucher Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Journal Voucher Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# DocType, Journal Voucher Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Journal Voucher Detail'
+		'name': u'Journal Voucher Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'account',
-		'fieldtype': 'Link',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'account',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Account',
-		'oldfieldname': 'account',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'label': u'Account',
+		'oldfieldname': u'account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client',
-		'width': '180px'
+		'trigger': u'Client',
+		'width': u'180px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cost_center',
-		'fieldtype': 'Link',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'cost_center',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Cost Center',
-		'oldfieldname': 'cost_center',
-		'oldfieldtype': 'Link',
-		'options': 'Cost Center',
+		'label': u'Cost Center',
+		'oldfieldname': u'cost_center',
+		'oldfieldtype': u'Link',
+		'options': u'Cost Center',
 		'permlevel': 0,
 		'search_index': 0,
-		'width': '180px'
+		'width': u'180px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'balance',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Balance',
+		'doctype': u'DocField',
+		'fieldname': u'balance',
+		'fieldtype': u'Data',
+		'label': u'Balance',
 		'no_copy': 1,
-		'oldfieldname': 'balance',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'balance',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'debit',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Debit',
-		'oldfieldname': 'debit',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'debit',
+		'fieldtype': u'Currency',
+		'label': u'Debit',
+		'oldfieldname': u'debit',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'credit',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Credit',
-		'oldfieldname': 'credit',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'credit',
+		'fieldtype': u'Currency',
+		'label': u'Credit',
+		'oldfieldname': u'credit',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'against_voucher',
-		'fieldtype': 'Link',
-		'idx': 6,
+		'doctype': u'DocField',
+		'fieldname': u'against_voucher',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Against Payable',
+		'label': u'Against Payable',
 		'no_copy': 1,
-		'oldfieldname': 'against_voucher',
-		'oldfieldtype': 'Link',
-		'options': 'Payable Voucher',
+		'oldfieldname': u'against_voucher',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Invoice',
 		'permlevel': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'against_invoice',
-		'fieldtype': 'Link',
-		'idx': 7,
+		'doctype': u'DocField',
+		'fieldname': u'against_invoice',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Against Receivable',
+		'label': u'Against Receivable',
 		'no_copy': 1,
-		'oldfieldname': 'against_invoice',
-		'oldfieldtype': 'Link',
-		'options': 'Receivable Voucher',
+		'oldfieldname': u'against_invoice',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Invoice',
 		'permlevel': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'against_jv',
-		'fieldtype': 'Link',
-		'idx': 8,
+		'doctype': u'DocField',
+		'fieldname': u'against_jv',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Against JV',
+		'label': u'Against JV',
 		'no_copy': 1,
-		'oldfieldname': 'against_jv',
-		'oldfieldtype': 'Link',
-		'options': 'Journal Voucher',
+		'oldfieldname': u'against_jv',
+		'oldfieldtype': u'Link',
+		'options': u'Journal Voucher',
+		'permlevel': 0,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'is_advance',
+		'fieldtype': u'Select',
+		'label': u'Is Advance',
+		'no_copy': 1,
+		'oldfieldname': u'is_advance',
+		'oldfieldtype': u'Select',
+		'options': u'No\nYes',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_advance',
-		'fieldtype': 'Select',
-		'idx': 9,
-		'label': 'Is Advance',
-		'no_copy': 1,
-		'oldfieldname': 'is_advance',
-		'oldfieldtype': 'Select',
-		'options': 'No\nYes',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'against_account',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'against_account',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 10,
-		'label': 'Against Account',
+		'label': u'Against Account',
 		'no_copy': 1,
-		'oldfieldname': 'against_account',
-		'oldfieldtype': 'Text',
+		'oldfieldname': u'against_account',
+		'oldfieldtype': u'Text',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/lease_agreement/lease_agreement.js b/erpnext/accounts/doctype/lease_agreement/lease_agreement.js
index 1453528..c728003 100644
--- a/erpnext/accounts/doctype/lease_agreement/lease_agreement.js
+++ b/erpnext/accounts/doctype/lease_agreement/lease_agreement.js
@@ -90,5 +90,5 @@
 
 cur_frm.fields_dict.invoice.get_query=function(doc){
 
-	return "SELECT tv.name FROM `tabReceivable Voucher` tv WHERE debit_to='"+doc.account+"' and  tv.%(key)s like '%s' ORDER BY tv.name LIMIT 50"
+	return "SELECT tv.name FROM `tabSales Invoice` tv WHERE debit_to='"+doc.account+"' and  tv.%(key)s like '%s' ORDER BY tv.name LIMIT 50"
 }
diff --git a/erpnext/accounts/doctype/lease_agreement/lease_agreement.txt b/erpnext/accounts/doctype/lease_agreement/lease_agreement.txt
index c221020..c4f3e12 100644
--- a/erpnext/accounts/doctype/lease_agreement/lease_agreement.txt
+++ b/erpnext/accounts/doctype/lease_agreement/lease_agreement.txt
@@ -3,308 +3,274 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-07-22 17:47:57',
+		'creation': '2012-03-27 14:35:44',
 		'docstatus': 0,
-		'modified': '2011-07-27 15:33:55',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:44',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1311555967',
-		'colour': 'White:FFF',
+		'_last_update': u'1311555967',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
-		'version': 21
+		'version': 24
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Lease Agreement',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Lease Agreement',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'create': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Lease Agreement',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
+		'parent': u'Lease Agreement',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1,
+		'role': u'Accounts Manager'
 	},
 
 	# DocType, Lease Agreement
 	{
 		'doctype': 'DocType',
-		'name': 'Lease Agreement'
+		'name': u'Lease Agreement'
 	},
 
 	# DocPerm
 	{
+		'amend': 1,
 		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 0,
-		'role': 'Accounts User',
+		'doctype': u'DocPerm',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 1,
-		'role': 'Accounts User'
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 0,
-		'role': 'Accounts Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 1,
-		'role': 'Accounts Manager'
+		'amend': 0,
+		'cancel': 0,
+		'doctype': u'DocPerm',
+		'submit': 0,
+		'write': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Naming Series',
-		'options': '\nLA',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Naming Series',
+		'no_copy': 1,
+		'options': u'\nLA',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 2,
-		'label': 'Lessee Info.',
+		'doctype': u'DocField',
+		'fieldname': u'lessee_info',
+		'fieldtype': u'Section Break',
+		'label': u'Lessee Info.',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'account',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'Lessee Account',
-		'options': 'Account',
+		'doctype': u'DocField',
+		'fieldname': u'account',
+		'fieldtype': u'Link',
+		'label': u'Account',
+		'options': u'Account',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'lessee_father',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Lessee Father',
+		'doctype': u'DocField',
+		'fieldname': u'lessee_father',
+		'fieldtype': u'Data',
+		'label': u'Lessee Father',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'lessee_nic',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Lessee NIC',
+		'doctype': u'DocField',
+		'fieldname': u'lessee_nic',
+		'fieldtype': u'Data',
+		'label': u'Lessee NIC',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'lessee_contact',
-		'fieldtype': 'Data',
-		'idx': 6,
-		'label': 'Lessee Contact',
+		'doctype': u'DocField',
+		'fieldname': u'lessee_contact',
+		'fieldtype': u'Data',
+		'label': u'Lessee Contact',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'lessee_address',
-		'fieldtype': 'Text',
-		'idx': 7,
-		'label': 'Lessee Address',
+		'doctype': u'DocField',
+		'fieldname': u'lessee_address',
+		'fieldtype': u'Text',
+		'label': u'Lessee Address',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 8,
-		'label': 'Vehicle Info.',
+		'doctype': u'DocField',
+		'fieldname': u'vehicle_info',
+		'fieldtype': u'Section Break',
+		'label': u'Vehicle Info.',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'model_no',
-		'fieldtype': 'Data',
-		'idx': 9,
-		'label': 'Model No',
+		'doctype': u'DocField',
+		'fieldname': u'model_no',
+		'fieldtype': u'Data',
+		'label': u'Model No',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'engine_no',
-		'fieldtype': 'Data',
-		'idx': 10,
-		'label': 'Engine No',
+		'doctype': u'DocField',
+		'fieldname': u'engine_no',
+		'fieldtype': u'Data',
+		'label': u'Engine No',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'chassis_no',
-		'fieldtype': 'Data',
-		'idx': 11,
-		'label': 'Chassis No',
+		'doctype': u'DocField',
+		'fieldname': u'chassis_no',
+		'fieldtype': u'Data',
+		'label': u'Chassis No',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 12,
-		'label': 'Invoice and Payment Info.',
+		'doctype': u'DocField',
+		'fieldname': u'invoice_and_payment_info',
+		'fieldtype': u'Section Break',
+		'label': u'Invoice and Payment Info.',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'invoice',
-		'fieldtype': 'Link',
-		'idx': 13,
-		'label': 'Invoice',
-		'options': 'Receivable Voucher',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'invoice',
+		'fieldtype': u'Link',
+		'label': u'Invoice',
+		'options': u'Sales Invoice',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'invoice_amount',
-		'fieldtype': 'Currency',
-		'idx': 14,
-		'label': 'Invoice Amount',
+		'doctype': u'DocField',
+		'fieldname': u'invoice_amount',
+		'fieldtype': u'Currency',
+		'label': u'Invoice Amount',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'down_payment',
-		'fieldtype': 'Currency',
-		'idx': 15,
-		'label': 'Down Payment',
+		'doctype': u'DocField',
+		'fieldname': u'down_payment',
+		'fieldtype': u'Currency',
+		'label': u'Down Payment',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'start_date',
-		'fieldtype': 'Date',
-		'idx': 16,
-		'label': 'Start Date',
+		'doctype': u'DocField',
+		'fieldname': u'start_date',
+		'fieldtype': u'Date',
+		'label': u'Start Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'no_of_installments',
-		'fieldtype': 'Int',
-		'idx': 17,
-		'label': 'No of Installments',
+		'doctype': u'DocField',
+		'fieldname': u'no_of_installments',
+		'fieldtype': u'Int',
+		'label': u'No of Installments',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'installment_amount',
-		'fieldtype': 'Currency',
-		'idx': 18,
-		'label': 'Installment Amount',
+		'doctype': u'DocField',
+		'fieldname': u'installment_amount',
+		'fieldtype': u'Currency',
+		'label': u'Installment Amount',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 19,
-		'label': 'Generate',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'generate',
+		'fieldtype': u'Button',
+		'label': u'Generate',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'installments',
-		'fieldtype': 'Table',
-		'idx': 20,
-		'label': 'Installments',
-		'options': 'Lease Installment',
+		'doctype': u'DocField',
+		'fieldname': u'installments',
+		'fieldtype': u'Table',
+		'label': u'Installments',
+		'options': u'Lease Installment',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 21,
-		'label': 'Installment Reciept',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'installment_reciept',
+		'fieldtype': u'Button',
+		'label': u'Installment Reciept',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/lease_installment/lease_installment.txt b/erpnext/accounts/doctype/lease_installment/lease_installment.txt
index 2434a78..475d226 100644
--- a/erpnext/accounts/doctype/lease_installment/lease_installment.txt
+++ b/erpnext/accounts/doctype/lease_installment/lease_installment.txt
@@ -3,89 +3,84 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-07-22 17:49:33',
+		'creation': '2012-03-27 14:35:44',
 		'docstatus': 0,
-		'modified': '2011-07-22 17:49:33',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:44',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 5
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Lease Installment',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Lease Installment',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# DocType, Lease Installment
 	{
 		'doctype': 'DocType',
-		'name': 'Lease Installment'
+		'name': u'Lease Installment'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amount',
-		'fieldtype': 'Currency',
-		'idx': 1,
-		'label': 'Amount',
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'due_date',
-		'fieldtype': 'Date',
-		'idx': 2,
-		'label': 'Due Date',
+		'doctype': u'DocField',
+		'fieldname': u'due_date',
+		'fieldtype': u'Date',
+		'label': u'Due Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cheque_number',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Cheque Number',
+		'doctype': u'DocField',
+		'fieldname': u'cheque_number',
+		'fieldtype': u'Data',
+		'label': u'Cheque Number',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cheque_date',
-		'fieldtype': 'Date',
-		'idx': 4,
-		'label': 'Cheque Date',
+		'doctype': u'DocField',
+		'fieldname': u'cheque_date',
+		'fieldtype': u'Date',
+		'label': u'Cheque Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'jv_number',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'jv_number',
+		'fieldtype': u'Link',
 		'hidden': 0,
-		'idx': 5,
-		'label': 'JV Number',
-		'options': 'Journal Voucher',
+		'label': u'JV Number',
+		'options': u'Journal Voucher',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.js b/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.js
deleted file mode 100755
index 10b1bc1..0000000
--- a/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-cur_frm.cscript['Export Report'] = function(doc, cdt, cdn) {
-	$c_obj_csv(make_doclist(cdt, cdn), 'get_report_data', '');
-}
diff --git a/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.txt b/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.txt
deleted file mode 100755
index 251588c..0000000
--- a/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.txt
+++ /dev/null
@@ -1,129 +0,0 @@
-# DocType, Ledger Balance Export
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-05-24 14:41:08',
-		'docstatus': 0,
-		'modified': '2011-05-24 15:22:43',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1306229235',
-		'allow_copy': 1,
-		'allow_email': 1,
-		'allow_print': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'document_type': 'Other',
-		'hide_heading': 0,
-		'issingle': 1,
-		'module': 'Accounts',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 9
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Ledger Balance Export',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Ledger Balance Export',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'write': 1
-	},
-
-	# DocType, Ledger Balance Export
-	{
-		'doctype': 'DocType',
-		'name': 'Ledger Balance Export'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'Accounts Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Accounts User'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 1,
-		'label': 'Select Date Range'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'idx': 2,
-		'label': 'From Date',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'idx': 3,
-		'label': 'To Date',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 4,
-		'label': 'Select ledgers'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'ledger_details',
-		'fieldtype': 'Table',
-		'idx': 5,
-		'label': 'Ledger Details',
-		'options': 'Ledger Detail'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 6,
-		'label': 'Export Report',
-		'trigger': 'Client'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/ledger_detail/ledger_detail.txt b/erpnext/accounts/doctype/ledger_detail/ledger_detail.txt
deleted file mode 100755
index f4d1084..0000000
--- a/erpnext/accounts/doctype/ledger_detail/ledger_detail.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-# DocType, Ledger Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-05-24 14:50:42',
-		'docstatus': 0,
-		'modified': '2011-05-24 15:24:03',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Accounts',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 3
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'account',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Account',
-		'name': '__common__',
-		'options': 'Account',
-		'parent': 'Ledger Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': '300px'
-	},
-
-	# DocType, Ledger Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Ledger Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/analysis/doctype/mis_control/__init__.py b/erpnext/accounts/doctype/mis_control/__init__.py
similarity index 100%
rename from erpnext/analysis/doctype/mis_control/__init__.py
rename to erpnext/accounts/doctype/mis_control/__init__.py
diff --git a/erpnext/accounts/doctype/mis_control/mis_control.py b/erpnext/accounts/doctype/mis_control/mis_control.py
new file mode 100644
index 0000000..9f8dfa4
--- /dev/null
+++ b/erpnext/accounts/doctype/mis_control/mis_control.py
@@ -0,0 +1,418 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+
+class DocType:
+  def __init__(self, doc, doclist):
+    self.doc = doc
+    self.doclist = doclist
+    self.account_list = []
+    self.ac_details = {} # key: account id, values: debit_or_credit, lft, rgt
+    
+    self.roles = webnotes.user.get_roles()
+
+    self.period_list = []
+    self.period_start_date = {}
+    self.period_end_date = {}
+
+    self.fs_list = []
+    self.root_bal = []
+    self.flag = 0
+
+  # Get defaults on load of MIS, MIS - Comparison Report and Financial statements
+  # ----------------------------------------------------
+  def get_comp(self):
+    ret = {}
+    type = []
+    comp = []
+    # ------ get period -----------
+    ret['period'] = ['Annual','Half Yearly','Quarterly','Monthly']
+    
+    # ---- get companies ---------
+    res = sql("select name from `tabCompany`")
+    for r in res:
+      comp.append(r[0])
+    #comp.append(r[0] for r in res)
+    ret['company'] = comp
+
+    #--- to get fiscal year and start_date of that fiscal year -----
+    res = sql("select name, year_start_date from `tabFiscal Year`")
+    ret['fiscal_year'] = [r[0] for r in res]
+    ret['start_dates'] = {}
+    for r in res:
+      ret['start_dates'][r[0]] = str(r[1])
+      
+    #--- from month and to month (for MIS - Comparison Report) -------
+    month_list = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
+    fiscal_start_month = sql("select MONTH(year_start_date) from `tabFiscal Year` where name = %s",(get_defaults()['fiscal_year']))
+    fiscal_start_month = fiscal_start_month and fiscal_start_month[0][0] or 1
+    mon = ['']
+    for i in range(fiscal_start_month,13): mon.append(month_list[i-1])
+    for i in range(0,fiscal_start_month-1): mon.append(month_list[i])
+    ret['month'] = mon
+
+    # ------------------------ get MIS Type on basis of roles of session user ------------------------------------------
+    if has_common(self.roles, ['Sales Manager']):
+      type.append('Sales')
+    if has_common(self.roles, ['Purchase Manager']):
+      type.append('Purchase')
+    ret['type'] = type
+    return ret
+    
+  # Gets Transactions type and Group By options based on module
+  #------------------------------------------------------------------
+  def get_trans_group(self,module):
+    ret = {}
+    st,group = [],[]
+    if module == 'Sales':
+      st = ['Quotation','Sales Order','Delivery Note','Sales Invoice']
+      group = ['Item','Item Group','Customer','Customer Group','Cost Center']
+    elif module == 'Purchase':
+      st = ['Purchase Order','Purchase Receipt','Purchase Invoice']
+      group = ['Item','Item Group','Supplier','Supplier Type']
+    
+    ret['stmt_type'] = st
+    ret['group_by'] = group
+    
+    return ret
+
+  # Get Days based on month (for MIS Comparison Report)
+  # --------------------------------------------------------
+  def get_days(self,month):
+    days = []
+    ret = {}
+    if month == 'Jan' or month == 'Mar' or month == 'May' or month == 'Jul' or month == 'Aug' or month == 'Oct' or month == 'Dec':
+      for i in range(1,32):
+        days.append(i)
+    elif month == 'Apr' or month == 'Jun' or month == 'Sep' or month == 'Nov':
+      for i in range(1,31):
+        days.append(i)
+    elif month == 'Feb':
+      for i in range(1,29):
+        days.append(i)
+    ret['days'] = days
+    return ret
+	
+  # Get from date and to date based on fiscal year (for in summary - comparison report)
+  # -----------------------------------------------------------------------------------------------------
+  def dates(self,fiscal_year,from_date,to_date):
+    import datetime
+    ret = ''
+    start_date = cstr(sql("select year_start_date from `tabFiscal Year` where name = %s",fiscal_year)[0][0])
+    st_mon = cint(from_date.split('-')[1])
+    ed_mon = cint(to_date.split('-')[1])
+    st_day = cint(from_date.split('-')[2])
+    ed_day = cint(to_date.split('-')[2])
+    fiscal_start_month = cint(start_date.split('-')[1])
+    next_fiscal_year = cint(start_date.split('-')[0]) + 1
+    current_year = ''
+    next_year = ''
+    
+    #CASE - 1 : Jan - Mar (Valid)
+    if st_mon < fiscal_start_month and ed_mon < fiscal_start_month:
+      current_year = cint(start_date.split('-')[0]) + 1
+      next_year  = cint(start_date.split('-')[0]) + 1
+    
+    # Case - 2 : Apr - Dec (Valid)
+    elif st_mon >= fiscal_start_month and ed_mon <= 12 and ed_mon >= fiscal_start_month:
+      current_year = cint(start_date.split('-')[0])
+      next_year  = cint(start_date.split('-')[0])
+
+    # Case 3 : Jan - May (Invalid)
+    elif st_mon < fiscal_start_month and ed_mon >= fiscal_start_month:
+      current_year = cint(start_date.split('-')[0]) + 1
+      next_year  = cint(start_date.split('-')[0]) + 2
+	
+    # check whether from date is within fiscal year
+    if datetime.date(current_year, st_mon, st_day) >= datetime.date(cint(start_date.split('-')[0]), cint(start_date.split('-')[1]), cint(start_date.split('-')[2])) and datetime.date(cint(current_year), cint(st_mon), cint(st_day)) < datetime.date((cint(start_date.split('-')[0])+1), cint(start_date.split('-')[1]), cint(start_date.split('-')[2])):
+      begin_date = cstr(current_year)+"-"+cstr(st_mon)+"-"+cstr(st_day)
+    else:
+      msgprint("Please enter appropriate from date.")
+      raise Exception
+    # check whether to date is within fiscal year
+    if datetime.date(next_year, ed_mon, ed_day) >= datetime.date(cint(start_date.split('-')[0]), cint(start_date.split('-')[1]), cint(start_date.split('-')[2])) and datetime.date(cint(next_year), cint(ed_mon), cint(ed_day)) < datetime.date(cint(start_date.split('-')[0])+1, cint(start_date.split('-')[1]), cint(start_date.split('-')[2])):
+      end_date = cstr(next_year)+"-"+cstr(ed_mon)+"-"+cstr(ed_day)
+    else:
+      msgprint("Please enter appropriate to date.")
+      raise Exception
+    ret = begin_date+'~~~'+end_date
+    return ret
+
+  # Get MIS Totals
+  # ---------------
+  def get_totals(self, args):
+    args = eval(args)
+    #msgprint(args)
+    totals = sql("SELECT %s FROM %s WHERE %s %s %s %s" %(cstr(args['query_val']), cstr(args['tables']), cstr(args['company']), cstr(args['cond']), cstr(args['add_cond']), cstr(args['fil_cond'])), as_dict = 1)[0]
+    #msgprint(totals)
+    tot_keys = totals.keys()
+    # return in flt because JSON doesn't accept Decimal
+    for d in tot_keys:
+      totals[d] = flt(totals[d])
+    return totals
+
+  # Get Statement
+  # -------------
+  
+  def get_statement(self, arg): 
+    self.return_data = []    
+
+    # define periods
+    arg = eval(arg)
+    pl = ''
+    
+    self.define_periods(arg['year'], arg['period'])    # declares 1.period_list i.e. (['Jan','Feb','Mar'...] or ['Q1','Q2'...] or ['FY2009-2010']) based on period
+                                                       #          2.period_start_date dict {'Jan':'01-01-2009'...}
+                                                       #          3.period_start_date dict {'Jan':'31-01-2009'...}
+    self.return_data.append([4,'']+self.period_list)
+
+        
+    if arg['statement'] == 'Balance Sheet': pl = 'No'
+    if arg['statement'] == 'Profit & Loss': pl = 'Yes'
+    
+    self.get_children('',0,pl,arg['company'], arg['year'])
+        
+    #self.balance_pl_statement(acct, arg['statement'])
+    #msgprint(self.return_data)
+    return self.return_data
+    
+  # Get Children
+  # ------------
+  def get_children(self, parent_account, level, pl, company, fy):
+    cl = sql("select distinct account_name, name, debit_or_credit, lft, rgt from `tabAccount` where ifnull(parent_account, '') = %s and ifnull(is_pl_account, 'No')=%s and company=%s and docstatus != 2 order by name asc", (parent_account, pl, company))
+    level0_diff = [0 for p in self.period_list]
+    if pl=='Yes' and level==0: # switch for income & expenses
+      cl = [c for c in cl]
+      cl.reverse()
+    if cl:
+      for c in cl:
+        self.ac_details[c[1]] = [c[2], c[3], c[4]]
+        bal_list = self.get_period_balance(c[1], level, pl, company, fy)
+        if level==0: # top level - put balances as totals
+          self.return_data.append([level, c[0]] + ['' for b in bal_list])
+          totals = bal_list
+          for i in range(len(totals)): # make totals
+            if c[2]=='Credit':
+              level0_diff[i] += flt(totals[i])
+            else:
+              level0_diff[i] -= flt(totals[i])
+        else:
+          self.return_data.append([level, c[0]]+bal_list)
+          
+        if level < 2:
+          self.get_children(c[1], level+1, pl, company, fy)
+          
+        # make totals - for top level
+        # ---------------------------
+        if level==0:
+          # add rows for profit / loss in B/S
+          if pl=='No':
+            if c[2]=='Credit':
+              self.return_data.append([1, 'Total Liabilities'] + totals)
+              level0_diff = [-i for i in level0_diff] # convert to debit
+              self.return_data.append([5, 'Profit/Loss (Provisional)'] + level0_diff)
+              for i in range(len(totals)): # make totals
+                level0_diff[i] = flt(totals[i]) + level0_diff[i]
+              self.return_data.append([4, 'Total '+c[0]] + level0_diff)
+            else:
+              self.return_data.append([4, 'Total '+c[0]] + totals)
+
+          # add rows for profit / loss in P/L
+          else:
+            if c[2]=='Debit':
+              self.return_data.append([1, 'Total Expenses (before Profit)'] + totals)
+              self.return_data.append([5, 'Profit/Loss (Provisional)'] + level0_diff)
+              for i in range(len(totals)): # make totals
+                level0_diff[i] = flt(totals[i]) + level0_diff[i]
+              self.return_data.append([4, 'Total '+c[0]] + level0_diff)
+            else:
+              self.return_data.append([4, 'Total '+c[0]] + totals)
+  
+  # Define Periods
+  # --------------
+  
+  def define_periods(self, year, period):
+    
+    # get year start date    
+    ysd = sql("select year_start_date from `tabFiscal Year` where name=%s", year)
+    ysd = ysd and ysd[0][0] or ''
+
+    self.ysd = ysd
+
+    # year
+    if period == 'Annual':
+      pn = 'FY'+year
+      self.period_list.append(pn)
+      self.period_start_date[pn] = ysd
+      self.period_end_date[pn] = get_last_day(get_first_day(ysd,0,11))
+
+    # quarter
+    if period == 'Quarterly':
+      for i in range(4):
+        pn = 'Q'+str(i+1)
+        self.period_list.append(pn)
+      
+        self.period_start_date[pn] = get_first_day(ysd,0,i*3)
+        self.period_end_date[pn] = get_last_day(get_first_day(ysd,0,((i+1)*3)-1))  
+
+    # month
+    if period == 'Monthly':
+      mlist = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
+      for i in range(12):
+        fd = get_first_day(ysd,0,i)
+        pn = mlist[fd.month-1]
+        self.period_list.append(pn)
+      
+        self.period_start_date[pn] = fd
+        self.period_end_date[pn] = get_last_day(fd)
+      
+  # Get Balance For A Period
+  # ------------------------
+  
+  def get_period_balance(self, acc, level, pl, company, fy):
+    debit_or_credit, lft, rgt = self.ac_details[acc]
+    ret = []
+    for p in self.period_list:
+      sd, ed = self.period_start_date[p].strftime('%Y-%m-%d'), self.period_end_date[p].strftime('%Y-%m-%d')
+      cond = "and t1.voucher_type != 'Period Closing Voucher'"
+      if pl=='No':
+        sd = self.ysd.strftime('%Y-%m-%d')
+        cond = ""
+
+      bal = sql("select SUM(t1.debit), SUM(t1.credit) from `tabGL Entry` t1, `tabAccount` t2 WHERE t1.posting_date >= '%s' AND t1.posting_date <= '%s' AND t1.company = '%s' AND t1.account = t2.name AND t2.lft >= %s AND t2.rgt <= %s and ifnull(t1.is_opening,'No') = 'No' and ifnull(t1.is_cancelled, 'No') = 'No' %s" % (sd,ed,company,lft,rgt, cond))
+      
+      
+      bal = bal and (flt(bal[0][0]) - flt(bal[0][1])) or 0
+      if debit_or_credit == 'Credit' and bal:
+        bal = -bal
+      if pl=='No':
+        op = sql("select opening from `tabAccount Balance` where account=%s and period=%s", (acc, fy))
+        op = op and op[0][0] or 0
+        bal += flt(op)
+      
+      ret.append(bal)
+    return ret
+    
+  # Get Dashboard Amounts
+  # ---------------------
+  
+  def get_balance(self, acc, sd, ed, company, fy):
+    a = sql("select account_name, name, debit_or_credit, lft, rgt, is_pl_account from `tabAccount` where account_name=%s and company=%s", (acc, company), as_dict=1)
+    if a:
+      a = a[0]
+      bal = sql("select SUM(IFNULL(t1.debit,0)), SUM(IFNULL(t1.credit,0)) from `tabGL Entry` t1, `tabAccount` t2 WHERE t1.posting_date >= %s AND t1.posting_date <= %s AND t1.account = t2.name AND t2.lft >= %s AND t2.rgt <= %s and ifnull(is_opening, 'No') = 'No' and ifnull(t1.is_cancelled, 'No') = 'No'", (sd,ed,a['lft'],a['rgt']))
+      if a['debit_or_credit']=='Debit':
+        bal = flt(flt(bal[0][0]) - flt(bal[0][1]))
+      else:
+        bal = flt(flt(bal[0][1]) - flt(bal[0][0]))
+
+      if a['is_pl_account']=='No':
+        op = sql("select opening from `tabAccount Balance` where account=%s and period=%s", (acc, fy))
+        op = op and op[0][0] or 0
+        bal += flt(op)
+
+      return flt(bal)
+
+    else:
+      msgprint("Did not find %s for %s" % (acc, company))
+      return 0
+
+  def get_cur_balance(self, acc, company):
+    bal = sql("select IFNULL(t1.balance,0) from `tabAccount Balance` t1, `tabAccount` t2 where t1.account = %s and t1.period=%s and t1.account = t2.name and t2.company=%s", (acc, self.fiscal_year, company))
+    return bal and flt(bal[0][0]) or 0
+  
+  def get_top_5_cust(self, company):
+    rec_grp = sql("select receivables_group from tabCompany where name=%s", company)
+    if rec_grp:
+      pa_lft_rgt = sql("select lft, rgt from tabAccount where name=%s and company=%s", (rec_grp[0][0], company))[0]
+      return sql("select t1.account_name, SUM(t2.debit) from tabAccount t1, `tabGL Entry` t2 where t1.lft > %s and t1.rgt < %s and t2.account = t1.name  and ifnull(t2.is_cancelled, 'No') = 'No' GROUP BY t1.name ORDER BY SUM(t2.debit) desc limit 5", (pa_lft_rgt[0], pa_lft_rgt[1]))
+    else:
+      return []
+
+  def get_top_5_exp(self, company):
+    a = sql("select distinct account_name, name, debit_or_credit, lft, rgt from `tabAccount` where account_name=%s and company=%s", ('Expenses', company), as_dict=1)[0]
+    return sql("select t1.account_name, SUM(t2.debit) from tabAccount t1, `tabGL Entry` t2 where t1.lft>%s and t1.rgt<%s and t1.group_or_ledger = 'Ledger' and t2.account = t1.name  and ifnull(t2.is_cancelled, 'No') = 'No' and t2.voucher_type != 'Period Closing Voucher' GROUP BY t1.name ORDER BY SUM(t2.debit) desc limit 5", (a['lft'],a['rgt']))
+  
+  def bl(self, acc, company):
+    dt = getdate(nowdate())
+
+    r = []
+    # cur
+    r.append(self.get_cur_balance(acc, company))
+    # this month
+    r.append(self.get_balance(acc, get_first_day(dt), get_last_day(dt), company, self.fiscal_year))
+    # last month
+    r.append(self.get_balance(acc, get_first_day(dt,0,-1), get_last_day(get_first_day(dt,0,-1)), company, self.fiscal_year))
+    return r
+
+  def bl_bs(self, acc, company, sd):
+    dt = getdate(nowdate())
+    r = []
+    # cur
+    r.append(self.get_cur_balance(acc, company))
+    # last month
+    r.append(self.get_balance(acc, sd, get_last_day(get_first_day(dt,0,-1)), company, self.fiscal_year))
+    # opening
+    r.append(self.get_balance(acc, sd, sd, company, self.fiscal_year))
+    return r
+
+  def get_dashboard_values(self, arg=''):
+    d = get_defaults()
+    self.fiscal_year = d['fiscal_year']
+    if arg:
+      company = arg
+    else:
+      company = d['company']
+
+    r = {}
+    r['Income'] = self.bl('Income', company)
+    r['Expenses'] = self.bl('Expenses', company)
+
+    r['Profit'] = []
+    for i in range(3):
+      r['Profit'].append(r['Income'][i] - r['Expenses'][i])
+    
+    r['Current Assets'] = self.bl_bs('Current Assets', company, getdate(d['year_start_date']))
+    r['Current Liabilities'] = self.bl_bs('Current Liabilities', company, getdate(d['year_start_date']))
+    
+    r['Working Capital'] = []
+    for i in range(3):
+      r['Working Capital'].append(r['Current Assets'][i] - r['Current Liabilities'][i])
+
+    r['Bank Accounts'] = self.bl_bs('Bank Accounts', company, getdate(d['year_start_date']))
+    
+    r['Top Customers'] = convert_to_lists(self.get_top_5_cust(company))
+    r['Top Expenses'] = convert_to_lists(self.get_top_5_exp(company))
+    
+    return r
diff --git a/erpnext/accounts/doctype/mis_control/mis_control.txt b/erpnext/accounts/doctype/mis_control/mis_control.txt
new file mode 100644
index 0000000..ebfca08
--- /dev/null
+++ b/erpnext/accounts/doctype/mis_control/mis_control.txt
@@ -0,0 +1,31 @@
+# DocType, MIS Control
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:49',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'issingle': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 120
+	},
+
+	# DocType, MIS Control
+	{
+		'doctype': 'DocType',
+		'name': u'MIS Control'
+	}
+]
diff --git a/erpnext/accounts/doctype/mode_of_payment/mode_of_payment.txt b/erpnext/accounts/doctype/mode_of_payment/mode_of_payment.txt
index ac11016..cf7d740 100644
--- a/erpnext/accounts/doctype/mode_of_payment/mode_of_payment.txt
+++ b/erpnext/accounts/doctype/mode_of_payment/mode_of_payment.txt
@@ -3,39 +3,38 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:10',
+		'creation': '2012-03-27 14:35:44',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-03-27 14:35:44',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'field:mode_of_payment',
-		'colour': 'White:FFF',
+		'autoname': u'field:mode_of_payment',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Accounts',
+		'document_type': u'Master',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 3
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'mode_of_payment',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Mode of Payment',
+		'doctype': u'DocField',
+		'fieldname': u'mode_of_payment',
+		'fieldtype': u'Data',
+		'label': u'Mode of Payment',
 		'name': '__common__',
-		'oldfieldname': 'mode_of_payment',
-		'oldfieldtype': 'Data',
-		'parent': 'Mode of Payment',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'oldfieldname': u'mode_of_payment',
+		'oldfieldtype': u'Data',
+		'parent': u'Mode of Payment',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'reqd': 1
 	},
@@ -43,31 +42,30 @@
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Mode of Payment',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Mode of Payment',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'Accounts Manager',
+		'role': u'Accounts Manager',
 		'write': 1
 	},
 
 	# DocType, Mode of Payment
 	{
 		'doctype': 'DocType',
-		'name': 'Mode of Payment'
+		'name': u'Mode of Payment'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField'
+		'doctype': u'DocField'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/ledger_balance_export/__init__.py b/erpnext/accounts/doctype/multi_ledger_report/__init__.py
similarity index 100%
rename from erpnext/accounts/doctype/ledger_balance_export/__init__.py
rename to erpnext/accounts/doctype/multi_ledger_report/__init__.py
diff --git a/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.js b/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.js
new file mode 100755
index 0000000..2dabb66
--- /dev/null
+++ b/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.js
@@ -0,0 +1,19 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+cur_frm.cscript.export_report = function(doc, cdt, cdn) {
+	$c_obj_csv(make_doclist(cdt, cdn), 'get_report_data', '');
+}
diff --git a/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py b/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.py
similarity index 100%
rename from erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py
rename to erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.py
diff --git a/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.txt b/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.txt
new file mode 100755
index 0000000..0ef7a5d
--- /dev/null
+++ b/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.txt
@@ -0,0 +1,124 @@
+# DocType, Multi Ledger Report
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:44',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:44',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1306229235',
+		'allow_copy': 1,
+		'allow_email': 1,
+		'allow_print': 1,
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'document_type': u'Other',
+		'hide_heading': 0,
+		'issingle': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'show_in_menu': 0,
+		'version': 9
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Multi Ledger Report',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# These values are common for all DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Multi Ledger Report',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'write': 1
+	},
+
+	# DocType, Multi Ledger Report
+	{
+		'doctype': 'DocType',
+		'name': u'Multi Ledger Report'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'Accounts Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'Accounts User'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'select_date_range',
+		'fieldtype': u'Column Break',
+		'label': u'Select Date Range'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'from_date',
+		'fieldtype': u'Date',
+		'label': u'From Date',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'to_date',
+		'fieldtype': u'Date',
+		'label': u'To Date',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'select_ledgers',
+		'fieldtype': u'Column Break',
+		'label': u'Select ledgers'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'ledger_details',
+		'fieldtype': u'Table',
+		'label': u'Multi Ledger Report Details',
+		'options': u'Multi Ledger Report Detail'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'export_report',
+		'fieldtype': u'Button',
+		'label': u'Export Report',
+		'trigger': u'Client'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/advance_adjustment_detail/__init__.py b/erpnext/accounts/doctype/multi_ledger_report_detail/__init__.py
old mode 100644
new mode 100755
similarity index 100%
rename from erpnext/accounts/doctype/advance_adjustment_detail/__init__.py
rename to erpnext/accounts/doctype/multi_ledger_report_detail/__init__.py
diff --git a/erpnext/accounts/doctype/multi_ledger_report_detail/multi_ledger_report_detail.txt b/erpnext/accounts/doctype/multi_ledger_report_detail/multi_ledger_report_detail.txt
new file mode 100755
index 0000000..20d618b
--- /dev/null
+++ b/erpnext/accounts/doctype/multi_ledger_report_detail/multi_ledger_report_detail.txt
@@ -0,0 +1,51 @@
+# DocType, Multi Ledger Report Detail
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:44',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:44',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'show_in_menu': 0,
+		'version': 3
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'account',
+		'fieldtype': u'Link',
+		'label': u'Account',
+		'name': '__common__',
+		'options': u'Account',
+		'parent': u'Multi Ledger Report Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'300px'
+	},
+
+	# DocType, Multi Ledger Report Detail
+	{
+		'doctype': 'DocType',
+		'name': u'Multi Ledger Report Detail'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/payable_voucher/payable_voucher.js b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js
deleted file mode 100644
index 0bba213..0000000
--- a/erpnext/accounts/doctype/payable_voucher/payable_voucher.js
+++ /dev/null
@@ -1,408 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-cur_frm.cscript.tname = "PV Detail";
-cur_frm.cscript.fname = "entries";
-cur_frm.cscript.other_fname = "purchase_tax_details";
-$import(Purchase Other Charges)
-$import(Purchase Common)
-
-// On Load
-// --------
-cur_frm.cscript.onload = function(doc,dt,dn) {
-	var cp = wn.control_panel;
-
-	if(!doc.voucher_date) set_multiple(dt,dn,{voucher_date:get_today()});
-	if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});  
-
-	if(cp.country == 'India') {
-		unhide_field(['TDS','tds_applicable','tds_category','Get TDS','tax_code','rate','ded_amount','total_tds_on_voucher','tds_amount_on_advance']);
-	}
-	else {
-		hide_field(['TDS','tds_applicable','tds_category','Get TDS','tax_code','rate','ded_amount','total_tds_on_voucher','tds_amount_on_advance']);
-	}	
-	
-	if(doc.__islocal){
-		hide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email']);
-	}
-}
-
-
-//Onload post render
-//------------------------
-cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
-	var callback = function(doc, dt, dn) {
-		var callback1 = function(doc, dt, dn) {
-			if(doc.__islocal && doc.supplier) cur_frm.cscript.supplier(doc,dt,dn);
-		}
-	
-		// defined in purchase_common.js
-		cur_frm.cscript.update_item_details(doc, dt, dn, callback1);
-	}
-	cur_frm.cscript.dynamic_label(doc, dt, dn, callback);
-}
-
-// Refresh
-// --------
-cur_frm.cscript.refresh = function(doc, dt, dn) {
-	
-	cur_frm.clear_custom_buttons();
-
-	if (!cur_frm.cscript.is_onload) cur_frm.cscript.dynamic_label(doc, dt, dn);
-
-
-	// Show / Hide button
-	if(doc.docstatus==1 && doc.outstanding_amount > 0)
-		cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript['Make Bank Voucher']);
-	
-	if(doc.docstatus==1) { 
-		unhide_field(['Repair Outstanding Amt']); 
-		cur_frm.add_custom_button('View Ledger', cur_frm.cscript['View Ledger Entry']);
-	} else hide_field(['Repair Outstanding Amt']);
-	
-	cur_frm.cscript.is_opening(doc, dt, dn);
-}
-
-
-//Supplier
-cur_frm.cscript.supplier = function(doc,dt,dn) {
-	var callback = function(r,rt) {
-			var doc = locals[cur_frm.doctype][cur_frm.docname];		
-			get_server_fields('get_credit_to','','',doc, dt, dn, 0, callback2);
-	}
-	
-	var callback2 = function(r,rt){
-		var doc = locals[cur_frm.doctype][cur_frm.docname];
-		var el = getchildren('PV Detail',doc.name,'entries');
-		for(var i in el){
-			if(el[i].item_code && (!el[i].expense_head || !el[i].cost_center)){
-				args = {
-					item_code: el[i].item_code,
-					expense_head: el[i].expense_head,
-					cost_center: el[i].cost_center
-				};
-				get_server_fields('get_default_values', JSON.stringify(args), 'entries', doc, el[i].doctype, el[i].name, 1);
-			}
-		}
-		cur_frm.cscript.calc_amount(doc, 1);
-	}
-
-	if(doc.supplier) get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1,callback);
-	if(doc.supplier) unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']);
-}
-
-cur_frm.cscript.supplier_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {
-	if(doc.supplier) get_server_fields('get_supplier_address', JSON.stringify({supplier: doc.supplier, address: doc.supplier_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
-}
-
-
-
-cur_frm.fields_dict.supplier_address.on_new = function(dn) {
-	locals['Address'][dn].supplier = locals[cur_frm.doctype][cur_frm.docname].supplier;
-	locals['Address'][dn].supplier_name = locals[cur_frm.doctype][cur_frm.docname].supplier_name;
-}
-
-cur_frm.fields_dict.contact_person.on_new = function(dn) {
-	locals['Contact'][dn].supplier = locals[cur_frm.doctype][cur_frm.docname].supplier;
-	locals['Contact'][dn].supplier_name = locals[cur_frm.doctype][cur_frm.docname].supplier_name;
-}
-
-
-cur_frm.cscript.credit_to = function(doc,dt,dn) {
-
-	var callback = function(r,rt) {
-			var doc = locals[cur_frm.doctype][cur_frm.docname];		
-			if(doc.supplier) get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1);
-			if(doc.supplier) unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']);
-			cur_frm.refresh();
-	}
-
-	get_server_fields('get_cust','','',doc,dt,dn,1,callback);	
-}
-
-
-
-//Set expense_head and cost center on adding new row
-//----------------------------------------------
-cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){
-	
-	cl = getchildren('PV Detail', doc.name, cur_frm.cscript.fname, doc.doctype);
-	acc = '';
-	cc = '';
-
-	for(var i = 0; i<cl.length; i++) {
-		if (cl[i].idx == 1){
-			acc = cl[i].expense_head;
-			cc = cl[i].cost_center;
-		}
-		else{
-			if (! cl[i].expense_head) { cl[i].expense_head = acc; refresh_field('expense_head', cl[i].name, 'entries');}
-			if (! cl[i].cost_center)	{cl[i].cost_center = cc; refresh_field('cost_center', cl[i].name, 'entries');}
-		}
-	}
-}
-
-cur_frm.cscript.is_opening = function(doc, dt, dn) {
-	hide_field('aging_date');
-	if (doc.is_opening == 'Yes') unhide_field('aging_date');
-}
-
-// Recalculate Button
-// -------------------
-cur_frm.cscript['Recalculate'] = function(doc, cdt, cdn) {
-	cur_frm.cscript['Calculate Tax'](doc,cdt,cdn);
-	calc_total_advance(doc,cdt,cdn);
-}
-
-// Get Items Button
-// -----------------
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
-	var callback = function(r,rt) { 
-		unhide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile','contact_email']);				
-		refresh_many(['credit_to','supplier','supplier_address','contact_person','supplier_name', 'address_display', 'contact_display','contact_mobile', 'contact_email','entries', 'purchase_receipt_main', 'purchase_order_main', 'purchase_tax_details']);
-	}
-	$c_obj(make_doclist(dt,dn),'pull_details','',callback);
-}
-
-// ========== PV Details Table ============
-
-// Item Code
-// ----------
-cur_frm.cscript.item_code = function(doc,cdt,cdn){
-	var d = locals[cdt][cdn];
-	if(d.item_code){
-		get_server_fields('get_item_details',d.item_code,'entries',doc,cdt,cdn,1);
-	}
-}
-
-// Rate in Deduct Taxes (TDS)
-// --------------------------
-cur_frm.cscript.rate = function(doc,dt,dn) {
-	//This is done as Purchase tax detail and PV detail both contain the same fieldname 'rate'
-	if(dt != 'Purchase Tax Detail')	 cur_frm.cscript.calc_amount(doc, 2);
-}
-
-// Amount
-// -------
-cur_frm.cscript.ded_amount = function(doc,dt,dn) {calculate_outstanding(doc);}
-
-// Get TDS Button
-// ---------------
-cur_frm.cscript['Get TDS'] = function(doc, dt, dn) {
-	var callback = function(r,rt) {
-		cur_frm.refresh();
-		refresh_field('ded_amount');
-		//cur_frm.cscript.calc_total(locals[dt][dn]);
-	}
-	$c_obj(make_doclist(dt,dn), 'get_tds', '', callback);
-}
-
-// ===================== Advance Allocation ==================
-cur_frm.cscript.allocated_amount = function(doc,cdt,cdn){
-	var d = locals[cdt][cdn];
-	if (d.allocated_amount && d.tds_amount){
-		d.tds_allocated=flt(d.tds_amount*(d.allocated_amount/d.advance_amount))
-		refresh_field('tds_allocated', d.name, 'advance_allocation_details');
-	}
-	tot_tds=0
-	el = getchildren('Advance Allocation Detail',doc.name,'advance_allocation_details')
-	for(var i in el){
-		tot_tds += el[i].tds_allocated
-	}
-	doc.tds_amount_on_advance = tot_tds
-	refresh_field('tds_amount_on_advance');
-	
-	calc_total_advance(doc, cdt, cdn);
-}
-
-
-// Make Journal Voucher
-// --------------------
-cur_frm.cscript['Make Bank Voucher'] = function() {
-	$c('accounts.get_default_bank_account', { company: cur_frm.doc.company }, function(r, rt) {
-		if(!r.exc) {
-			cur_frm.cscript.make_jv(cur_frm.doc, null, null, r.message);
-	}
-	});
-}
-
-
-/* ***************************** GET QUERY Functions *************************** */
-
-
-cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,address_line1,city FROM tabAddress WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
-
-cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
-
-// Item Code
-// ----------
-cur_frm.fields_dict['entries'].grid.get_field("item_code").get_query = function(doc, cdt, cdn) {
-	return 'SELECT tabItem.name, tabItem.description FROM tabItem WHERE tabItem.is_purchase_item="Yes" AND (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` ="0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND tabItem.docstatus != 2 AND tabItem.%(key)s LIKE "%s" LIMIT 50'
-}
-
-// Credit To
-// ----------
-cur_frm.fields_dict['credit_to'].get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.is_pl_account="No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
-}
-
-
-// Purchase Order
-// ---------------
-cur_frm.fields_dict['purchase_order_main'].get_query = function(doc) {
-	if (doc.supplier){
-		return 'SELECT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`docstatus` = 1 AND `tabPurchase Order`.supplier = "'+ doc.supplier +'" AND `tabPurchase Order`.`status` != "Stopped" AND ifnull(`tabPurchase Order`.`per_billed`,0) < 100 AND `tabPurchase Order`.`company` = "' + doc.company + '" AND `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50'
-	} else {
-		return 'SELECT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`docstatus` = 1 AND `tabPurchase Order`.`status` != "Stopped" AND ifnull(`tabPurchase Order`.`per_billed`, 0) < 100 AND `tabPurchase Order`.`company` = "' + doc.company + '" AND `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50'
-	}
-}
-
-// Purchase Receipt
-// -----------------
-cur_frm.fields_dict['purchase_receipt_main'].get_query = function(doc) {
-	if (doc.supplier){
-		return 'SELECT `tabPurchase Receipt`.`name` FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.`docstatus` = 1 AND `tabPurchase Receipt`.supplier = "'+ doc.supplier +'" AND `tabPurchase Receipt`.`status` != "Stopped" AND ifnull(`tabPurchase Receipt`.`per_billed`, 0) < 100 AND `tabPurchase Receipt`.`company` = "' + doc.company + '" AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.`name` DESC LIMIT 50'
-	} else {
-		return 'SELECT `tabPurchase Receipt`.`name` FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.`docstatus` = 1 AND `tabPurchase Receipt`.`status` != "Stopped" AND ifnull(`tabPurchase Receipt`.`per_billed`, 0) < 100 AND `tabPurchase Receipt`.`company` = "' + doc.company + '" AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.`name` DESC LIMIT 50'
-	}
-}
-
-// Get Print Heading
-cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
-}
-
-
-// ================== PV Details Table ===================
-// Expense Head
-// -------------
-cur_frm.fields_dict['entries'].grid.get_field("expense_head").get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"';
-}
-cur_frm.cscript.expense_head = function(doc, cdt, cdn){
-	var d = locals[cdt][cdn];
-	if(d.idx == 1 && d.expense_head){
-		var cl = getchildren('PV Detail', doc.name, 'entries', doc.doctype);
-		for(var i = 0; i < cl.length; i++){
-			if(!cl[i].expense_head) cl[i].expense_head = d.expense_head;
-		}
-	}
-	refresh_field('entries');
-}
-
-
-// Cost Center
-//-------------
-cur_frm.fields_dict['entries'].grid.get_field("cost_center").get_query = function(doc) {
-	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.docstatus != 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
-}
-
-cur_frm.cscript.cost_center = function(doc, cdt, cdn){
-	var d = locals[cdt][cdn];
-	if(d.idx == 1 && d.cost_center){
-		var cl = getchildren('PV Detail', doc.name, 'entries', doc.doctype);
-		for(var i = 0; i < cl.length; i++){
-			if(!cl[i].cost_center) cl[i].cost_center = d.cost_center;
-		}
-	}
-	refresh_field('entries');
-}
-
-
-// TDS Account Head
-cur_frm.fields_dict['tax_code'].get_query = function(doc) {
-	return "SELECT `tabTDS Category Account`.account_head FROM `tabTDS Category Account` WHERE `tabTDS Category Account`.parent = '"+doc.tds_category+"' AND `tabTDS Category Account`.company='"+doc.company+"' AND `tabTDS Category Account`.account_head LIKE '%s' ORDER BY `tabTDS Category Account`.account_head DESC LIMIT 50";
-}
-
-cur_frm.cscript.tax_code = function(doc, dt, dn) {
-	get_server_fields('get_tds_rate','','',doc, dt, dn, 0);
-}
-
-/* ***************************** UTILITY FUNCTIONS ************************ */
-
-// Calculate Advance
-// ------------------
-var calc_total_advance = function(doc,cdt,cdn) {
-	var doc = locals[doc.doctype][doc.name];
-	var el = getchildren('Advance Allocation Detail',doc.name,'advance_allocation_details')
-	var tot_tds=0;
-	var total_advance = 0;
-	for(var i in el) {
-		if (! el[i].allocated_amount == 0) {
-			total_advance += flt(el[i].allocated_amount);
-			tot_tds += flt(el[i].tds_allocated)
-		}
-	}
-	doc.total_amount_to_pay = flt(doc.grand_total) - flt(doc.ded_amount);
-	doc.tds_amount_on_advance = flt(tot_tds);
-	doc.total_advance = flt(total_advance);
-	doc.outstanding_amount = flt(doc.total_amount_to_pay) - flt(total_advance);
-	refresh_many(['total_advance','outstanding_amount','tds_amount_on_advance', 'total_amount_to_pay']);
-}
-
-// Make JV
-// --------
-cur_frm.cscript.make_jv = function(doc, dt, dn, bank_account) {
-	var jv = LocalDB.create('Journal Voucher');
-	jv = locals['Journal Voucher'][jv];
-	jv.voucher_type = 'Bank Voucher';
-	jv.remark = repl('Payment against voucher %(vn)s for %(rem)s', {vn:doc.name, rem:doc.remarks});
-	jv.total_debit = doc.outstanding_amount;
-	jv.total_credit = doc.outstanding_amount;
-	jv.fiscal_year = doc.fiscal_year;
-	jv.company = doc.company;
-	
-	// debit to creditor
-	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
-	d1.account = doc.credit_to;
-	d1.debit = doc.outstanding_amount;
-	d1.against_voucher = doc.name;
-	
-	// credit to bank
-	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
-	d1.account = bank_account;
-	d1.credit = doc.outstanding_amount;
-	
-	loaddoc('Journal Voucher', jv.name);
-}
-
-// ***************** Get project name *****************
-cur_frm.fields_dict['entries'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
-}
-
-
-cur_frm.cscript.select_print_heading = function(doc,cdt,cdn){
-	if(doc.select_print_heading){
-		// print heading
-		cur_frm.pformat.print_heading = doc.select_print_heading;
-	}
-	else
-		cur_frm.pformat.print_heading = "Purchase Invoice";
-}
-
-/****************** Get Accounting Entry *****************/
-cur_frm.cscript['View Ledger Entry'] = function(){
-	var callback = function(report){
-		report.set_filter('GL Entry', 'Voucher No',cur_frm.doc.name);
-		report.dt.run();
-	}
-	loadreport('GL Entry','General Ledger', callback);
-}
diff --git a/erpnext/accounts/doctype/payable_voucher/payable_voucher.py b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py
deleted file mode 100644
index d930583..0000000
--- a/erpnext/accounts/doctype/payable_voucher/payable_voucher.py
+++ /dev/null
@@ -1,565 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-from utilities.transaction_base import TransactionBase
-
-class DocType(TransactionBase):
-	def __init__(self,d,dl):
-		self.doc, self.doclist = d, dl 
-		self.tname = 'PV Detail'
-		self.fname = 'entries'
-
-	# Autoname
-	# ---------
-	def autoname(self):
-		self.doc.name = make_autoname(self.doc.naming_series+'.####')
-
-
-# ************************** Trigger Functions ****************************
-
-	# Credit To
-	# ----------
-	def get_credit_to(self):
-		acc_head = sql("select name, credit_days from `tabAccount` where (name = %s or (master_name = %s and master_type = 'supplier')) and docstatus != 2", (cstr(self.doc.supplier) + " - " + self.get_company_abbr(),self.doc.supplier))		
-		#supp_detail = sql("select supplier_name,address from `tabSupplier` where name = %s", self.doc.supplier, as_dict =1)
-		#ret = {
-		#	'supplier_name' : supp_detail and supp_detail[0]['supplier_name'] or '',
-		#	'supplier_address': supp_detail and supp_detail[0]['address'] or ''
-		#}
-		ret = {}
-		if acc_head and acc_head[0][0]:
-			ret['credit_to'] = acc_head[0][0]
-			if not self.doc.due_date:
-				ret['due_date'] = add_days(cstr(self.doc.posting_date), acc_head and cint(acc_head[0][1]) or 0)
-		elif not acc_head:
-			msgprint("%s does not have an Account Head in %s. You must first create it from the Supplier Master" % (self.doc.supplier, self.doc.company))
-		return ret
-		
-	def get_cust(self):
-		ret = {}
-		if self.doc.credit_to:			
-			ret['supplier'] = get_value('Account',self.doc.credit_to,'master_name')
-			
-		return ret
-
-
-	# Get Default Cost Center and Expense Head from Item Master
-	# ----------------------------------------------------------
-	def get_default_values(self,args):
-		import json
-		args = json.loads(args)
-		ret = {}
-		if sql("select name from `tabItem` where name = '%s'" % args['item_code']):
-			if not args['expense_head'] or args['expense_head'] == 'undefined':
-				expense_head = sql("select name from `tabAccount` where account_name in (select purchase_account from `tabItem` where name = '%s')" % args['item_code'])
-				ret['expense_head'] = expense_head and expense_head[0][0] or ''
-			if not args['cost_center'] or args['cost_center'] == 'undefined':
-				cost_center = sql("select cost_center from `tabItem` where name = '%s'" % args['item_code'])
-				ret['cost_center'] = cost_center and cost_center[0][0] or ''
-		return ret
-		 
-		
-	# Get Items based on PO or PR
-	# ----------------------------
-	def pull_details(self):
-		if self.doc.purchase_receipt_main:
-			self.validate_duplicate_docname('purchase_receipt')
-			self.doclist = get_obj('DocType Mapper', 'Purchase Receipt-Payable Voucher').dt_map('Purchase Receipt', 'Payable Voucher', self.doc.purchase_receipt_main, self.doc, self.doclist, "[['Purchase Receipt', 'Payable Voucher'], ['Purchase Receipt Detail', 'PV Detail'], ['Purchase Tax Detail','Purchase Tax Detail']]")
-
-		elif self.doc.purchase_order_main:
-			self.validate_duplicate_docname('purchase_order')
-			self.doclist = get_obj('DocType Mapper', 'Purchase Order-Payable Voucher').dt_map('Purchase Order', 'Payable Voucher', self.doc.purchase_order_main, self.doc, self.doclist, "[['Purchase Order', 'Payable Voucher'],['PO Detail', 'PV Detail'], ['Purchase Tax Detail','Purchase Tax Detail']]")
-		
-		ret = self.get_credit_to()
-
-		if ret.has_key('credit_to'):
-			self.doc.credit_to = ret['credit_to']
-			
-
-	# Get Item Details
-	# -----------------		
-	def get_item_details(self, arg=None):
-		if arg:
-			return self.get_pv_details(arg)
-		else:
-			for doc in self.doclist:
-				if doc.fields.get('item_code'):
-					ret = self.get_pv_details(doc.item_code)
-					for r in ret:
-						if not doc.fields.get(r):
-							doc.fields[r] = ret[r]
-
-
-	def get_pv_details(self, arg):
-		import json
-		item_det = sql("select item_name, brand, description, item_group,purchase_account,cost_center, last_purchase_rate from tabItem where name=%s",arg,as_dict=1)
-		lpr = item_det and flt(item_det[0]['last_purchase_rate']) or 0
-		import_lpr = lpr / flt(self.doc.conversion_rate) or 1
-
-		tax = sql("select tax_type, tax_rate from `tabItem Tax` where parent = %s" , arg)
-		t = {}
-		for x in tax: t[x[0]] = flt(x[1])
-		ret = {
-			'item_name' : item_det and item_det[0]['item_name'] or '',
-			'brand' : item_det and item_det[0]['brand'] or '',
-			'description' : item_det and item_det[0]['description'] or '',
-			'item_group'	: item_det and item_det[0]['item_group'] or '',
-			'rate' : lpr,
-			'purchase_ref_rate' : lpr,
-			'import_ref_rate' : import_lpr,
-			'import_rate' : import_lpr,
-			'qty' : 0.00,
-			'amount' : 0.00,
-			'expense_head' : item_det and item_det[0]['purchase_account'] or '',
-			'cost_center' : item_det and item_det[0]['cost_center'] or '',
-			'item_tax_rate'			: json.dumps(t)
-		}
-
-		return ret
-
-
-		
-	# Advance Allocation
-	# -------------------
-	def get_advances(self):
-		get_obj('GL Control').get_advances( self, self.doc.credit_to, 'Advance Allocation Detail','advance_allocation_details','debit')
-		
-		
-	# ============= OTHER CHARGES ====================
-	
-	# Get Tax rate if account type is TAX
-	# ------------------------------------
-	def get_rate(self,arg):
-		return get_obj('Purchase Common').get_rate(arg,self)
-
-	# Pull details from other charges master (Get Other Charges)
-	# -----------------------------------------------------------
-	def get_purchase_tax_details(self):
-		return get_obj('Purchase Common').get_purchase_tax_details(self)
-
-
-	def get_rate1(self,acc):
-		rate = sql("select tax_rate from `tabAccount` where name='%s'"%(acc))
-		ret={'add_tax_rate' :rate and flt(rate[0][0]) or 0 }
-		return ret
-
-
-
-# *************************** Server Utility Functions *****************************
-	# Get Company abbr
-	# -----------------
-	def get_company_abbr(self):
-		return sql("select abbr from tabCompany where name=%s", self.doc.company)[0][0]
-
-	# Check whether PO or PR is already fetched
-	# ------------------------------------------
-	def validate_duplicate_docname(self,doctype):
-		for d in getlist(self.doclist, 'entries'): 
-			if doctype == 'purchase_receipt' and cstr(self.doc.purchase_receipt_main) == cstr(d.purchase_receipt):
-				msgprint(cstr(self.doc.purchase_receipt_main) + " purchase receipt details have already been pulled.")
-				raise Exception , " Validation Error. "
-
-			if doctype == 'purchase_order' and cstr(self.doc.purchase_order_main) == cstr(d.purchase_order) and not d.purchase_receipt:
-				msgprint(cstr(self.doc.purchase_order_main) + " purchase order details have already been pulled.")
-				raise Exception , " Validation Error. "
-
-		
-# **************************** VALIDATE ********************************
-
-	# Check for Item.is_Purchase_item = 'Yes' and Item is active
-	# ------------------------------------------------------------------
-	def check_active_purchase_items(self):
-		for d in getlist(self.doclist, 'entries'):
-			if d.item_code:		# extra condn coz item_code is not mandatory in PV
-				valid_item = sql("select docstatus,is_purchase_item from tabItem where name = %s",d.item_code)
-				if valid_item[0][0] == 2:
-					msgprint("Item : '%s' is Inactive, you can restore it from Trash" %(d.item_code))
-					raise Exception
-				if not valid_item[0][1] == 'Yes':
-					msgprint("Item : '%s' is not Purchase Item"%(d.item_code))
-					raise Exception
-						
-	# Check Conversion Rate
-	# ----------------------
-	def check_conversion_rate(self):
-		default_currency = TransactionBase().get_company_currency(self.doc.company)		
-		if not default_currency:
-			msgprint('Message: Please enter default currency in Company Master')
-			raise Exception
-		if (self.doc.currency == default_currency and flt(self.doc.conversion_rate) != 1.00) or not self.doc.conversion_rate or (self.doc.currency != default_currency and flt(self.doc.conversion_rate) == 1.00):
-			msgprint("Message: Please Enter Appropriate Conversion Rate.")
-			raise Exception				
-
-	# 1. Check whether bill is already booked against this bill no. or not
-	# 2. Add Remarks
-	# ---------------------------------------------------------------------
-	def validate_bill_no(self):
-		if self.doc.bill_no and self.doc.bill_no.lower().strip()	not in ['na', 'not applicable', 'none']:
-			b_no = sql("select bill_no, name, ifnull(is_opening,'') from `tabPayable Voucher` where bill_no = '%s' and credit_to = '%s' and docstatus = 1 and name != '%s' " % (self.doc.bill_no, self.doc.credit_to, self.doc.name))
-			if b_no and cstr(b_no[0][2]) == cstr(self.doc.is_opening):
-				msgprint("Please check you have already booked expense against Bill No. %s in Purchase Invoice %s" % (cstr(b_no[0][0]), cstr(b_no[0][1])))
-				raise Exception , "Validation Error"
-			if not self.doc.remarks:
-				self.doc.remarks = (self.doc.remarks or '') + "\n" + ("Against Bill %s dated %s" % (self.doc.bill_no, formatdate(self.doc.bill_date)))
-				if self.doc.ded_amount:
-					self.doc.remarks = (self.doc.remarks or '') + "\n" + ("Grand Total: %s, Tax Deduction Amount: %s" %(self.doc.grand_total, self.doc.ded_amount))
-		else:
-			if not self.doc.remarks:
-				self.doc.remarks = "No Remarks"
-					
-	# Validate Bill No Date
-	# ---------------------
-	def validate_bill_no_date(self):
-		if self.doc.bill_no and not self.doc.bill_date and self.doc.bill_no.lower().strip() not in ['na', 'not applicable', 'none']:
-			msgprint("Please enter Bill Date")
-			raise Exception					
-
-
- 
-	# Clear Advances
-	# ---------------
-	def clear_advances(self):
-		get_obj('GL Control').clear_advances( self, 'Advance Allocation Detail','advance_allocation_details')
-
-
-	# 1. Credit To Account Exists
-	# 2. Is a Credit Account
-	# 3. Is not a PL Account
-	# ----------------------------
-	def validate_credit_acc(self):
-		acc = sql("select debit_or_credit, is_pl_account from tabAccount where name = '%s'" % self.doc.credit_to)
-		if not acc:
-			msgprint("Account: "+ self.doc.credit_to + "does not exist")
-			raise Exception
-		elif acc[0][0] and acc[0][0] != 'Credit':
-			msgprint("Account: "+ self.doc.credit_to + "is not a credit account")
-			raise Exception
-		elif acc[0][1] and acc[0][1] != 'No':
-			msgprint("Account: "+ self.doc.credit_to + "is a pl account")
-			raise Exception
-	
-	# Validate Acc Head of Supplier and Credit To Account entered
-	# ------------------------------------------------------------
-	def check_for_acc_head_of_supplier(self): 
-		if self.doc.supplier and self.doc.credit_to:
-			acc_head = sql("select master_name from `tabAccount` where name = %s", self.doc.credit_to)
-			
-			if (acc_head and cstr(acc_head[0][0]) != cstr(self.doc.supplier)) or (not acc_head and (self.doc.credit_to != cstr(self.doc.supplier) + " - " + self.get_company_abbr())):
-				msgprint("Credit To: %s do not match with Supplier: %s for Company: %s.\n If both correctly entered, please select Master Type and Master Name in account master." %(self.doc.credit_to,self.doc.supplier,self.doc.company), raise_exception=1)
-				
-	# Check for Stopped PO
-	# ---------------------
-	def check_for_stopped_status(self):
-		check_list = []
-		for d in getlist(self.doclist,'entries'):
-			if d.purchase_order and not d.purchase_order in check_list and not d.purchase_receipt:
-				check_list.append(d.purhcase_order)
-				stopped = sql("select name from `tabPurchase Order` where status = 'Stopped' and name = '%s'" % d.purchase_order)
-				if stopped:
-					msgprint("One cannot do any transaction against 'Purchase Order' : %s, it's status is 'Stopped'" % (d.purhcase_order))
-					raise Exception
-					
-	# Validate Supplier
-	# -----------------
-	def validate_supplier(self, d):
-		supplier = ''
-		if d.purchase_order and not d.purchase_order in self.po_list:
-			supplier = sql("select supplier from `tabPurchase Order` where name = '%s'" % d.purchase_order)[0][0]
-			doctype = 'purchase order'
-			doctype_no = cstr(d.purchase_order)
-			if supplier and not cstr(self.doc.supplier) == cstr(supplier):
-				msgprint("Supplier name %s do not match with supplier name	of %s %s." %(self.doc.supplier,doctype,doctype_no))
-				raise Exception , " Validation Error "
-
-		if d.purchase_receipt and not d.purchase_receipt in self.pr_list:
-			supplier = sql("select supplier from `tabPurchase Receipt` where name = '%s'" % d.purchase_receipt)[0][0]
-			doctype = 'purchase receipt'
-			doctype_no = cstr(d.purchase_receipt)
-			if supplier and not cstr(self.doc.supplier) == cstr(supplier):
-				msgprint("Supplier name %s do not match with supplier name	of %s %s." %(self.doc.supplier,doctype,doctype_no))
-				raise Exception , " Validation Error "
-
-	# Validate values with reference document
-	#----------------------------------------
-	def validate_reference_value(self):
-		get_obj('DocType Mapper', 'Purchase Order-Payable Voucher', with_children = 1).validate_reference_value(self, self.doc.name)
-
-				
-	# Validate PO and PR
-	# -------------------
-	def validate_po_pr(self, d):
-		# check po / pr for qty and rates and currency and conversion rate
-
-		# always import_rate must be equal to import_rate of purchase order
-		if d.purchase_order and not d.purchase_order in self.po_list:
-			# currency
-			currency = cstr(sql("select currency from `tabPurchase Order` where name = '%s'" % d.purchase_order)[0][0])
-			if not cstr(currency) == cstr(self.doc.currency):
-				msgprint("Purchase Order: " + cstr(d.purchase_order) + " currency : " + cstr(currency) + " does not match with currency of current document.")
-				raise Exception
-			# import_rate
-			rate = flt(sql('select import_rate from `tabPO Detail` where item_code=%s and parent=%s and name = %s', (d.item_code, d.purchase_order, d.po_detail))[0][0])
-			if abs(rate - flt(d.import_rate)) > 1:
-				msgprint("Import Rate for %s in the Purchase Order is %s. Rate must be same as Purchase Order Rate" % (d.item_code,rate))
-				raise Exception
-									
-		if d.purchase_receipt and not d.purchase_receipt in self.pr_list:
-			# currency , conversion_rate
-			data = sql("select currency, conversion_rate from `tabPurchase Receipt` where name = '%s'" % d.purchase_receipt, as_dict = 1)
-			if not cstr(data[0]['currency']) == cstr(self.doc.currency):
-				msgprint("Purchase Receipt: " + cstr(d.purchase_receipt) + " currency : " + cstr(data[0]['currency']) + " does not match with currency of current document.")
-				raise Exception
-			if not flt(data[0]['conversion_rate']) == flt(self.doc.conversion_rate):
-				msgprint("Purchase Receipt: " + cstr(d.purchase_receipt) + " conversion_rate : " + cstr(data[0]['conversion_rate']) + " does not match with conversion_rate of current document.")
-				raise Exception
-					
-	# Build tds table if applicable
-	#------------------------------
-	def get_tds(self):
-		if cstr(self.doc.is_opening) != 'Yes':
-			if not self.doc.credit_to:
-				msgprint("Please Enter Credit To account first")
-				raise Exception
-			else:
-				tds_applicable = sql("select tds_applicable from tabAccount where name = '%s'" % self.doc.credit_to)
-				if tds_applicable and cstr(tds_applicable[0][0]) == 'Yes':
-					if not self.doc.tds_applicable:
-						msgprint("Please enter whether TDS Applicable or not")
-						raise Exception
-					if self.doc.tds_applicable == 'Yes':
-						if not self.doc.tds_category:
-							msgprint("Please select TDS Category")
-							raise Exception
-						else:
-							get_obj('TDS Control').get_tds_amount(self)
-							self.doc.total_tds_on_voucher = self.doc.ded_amount
-							self.doc.total_amount_to_pay=flt(self.doc.grand_total)-flt(self.doc.ded_amount)-flt(self.doc.other_tax_deducted)
-					elif self.doc.tds_applicable == 'No':
-						self.doc.tds_category = ''
-						self.doc.tax_code = ''
-						self.doc.rate = 0
-						self.doc.ded_amount = 0
-						self.doc.total_tds_on_voucher = 0
-
-	# get tds rate
-	# -------------
-	def get_tds_rate(self):
-		return {'rate' : flt(get_value('Account', self.doc.tax_code, 'tax_rate'))}
-
-	# set aging date
-	#-------------------
-	def set_aging_date(self):
-		if self.doc.is_opening != 'Yes':
-			self.doc.aging_date = self.doc.posting_date
-		elif not self.doc.aging_date:
-			msgprint("Aging Date is mandatory for opening entry")
-			raise Exception
-			
-
-	# Set against account for debit to account
-	#------------------------------------------
-	def set_against_expense_account(self):
-		against_acc = []
-		for d in getlist(self.doclist, 'entries'):
-			if d.expense_account not in against_acc:
-				against_acc.append(d.expense_account)
-		self.doc.against_expense_account = ','.join(against_acc)
-
-	#check in manage account if purchase order required or not.
-	# ====================================================================================
-	def po_required(self):
-		res = sql("select value from `tabSingles` where doctype = 'Manage Account' and field = 'po_required'")
-		if res and res[0][0] == 'Yes':
-			 for d in getlist(self.doclist,'entries'):
-				 if not d.purchase_order:
-					 msgprint("Purchse Order No. required against item %s"%d.item_code)
-					 raise Exception
-
-	#check in manage account if purchase receipt required or not.
-	# ====================================================================================
-	def pr_required(self):
-		res = sql("select value from `tabSingles` where doctype = 'Manage Account' and field = 'pr_required'")
-		if res and res[0][0] == 'Yes':
-			 for d in getlist(self.doclist,'entries'):
-				 if not d.purchase_receipt:
-					 msgprint("Purchase Receipt No. required against item %s"%d.item_code)
-					 raise Exception
-
-	# VALIDATE
-	# ====================================================================================
-	def validate(self):
-		self.po_required()
-		self.pr_required()
-		self.check_active_purchase_items()
-		self.check_conversion_rate()
-		self.validate_bill_no_date()
-		self.validate_bill_no()
-		self.validate_reference_value()
-		self.clear_advances()
-		self.validate_credit_acc()
-		self.check_for_acc_head_of_supplier()
-		self.check_for_stopped_status()
-
-		self.po_list, self.pr_list = [], []
-		for d in getlist(self.doclist, 'entries'):
-			self.validate_supplier(d)
-			self.validate_po_pr(d)
-			if not d.purchase_order in self.po_list:
-				self.po_list.append(d.purchase_order)
-			if not d.purhcase_receipt in self.pr_list:
-				self.pr_list.append(d.purchase_receipt)
-		# tds
-		get_obj('TDS Control').validate_first_entry(self)
-		if not flt(self.doc.ded_amount):
-			self.get_tds()
-			self.doc.save()
-
-		if not self.doc.is_opening:
-			self.doc.is_opening = 'No'
-
-		self.set_aging_date()
-
-		#set against account for credit to
-		self.set_against_expense_account()
-
-		#FY validation
-		get_obj('Sales Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Posting Date')
-		
-		#get Purchase Common Obj
-		pc_obj = get_obj(dt='Purchase Common')
-		
-		 # get total in words
-		self.doc.in_words = pc_obj.get_total_in_words('Rs', self.doc.grand_total)
-		self.doc.in_words_import = pc_obj.get_total_in_words(self.doc.currency, self.doc.grand_total_import)
-# ***************************** SUBMIT *****************************
-	# Check Ref Document docstatus
-	# -----------------------------
-	def check_prev_docstatus(self):
-		for d in getlist(self.doclist,'entries'):
-			if d.purchase_order:
-				submitted = sql("select name from `tabPurchase Order` where docstatus = 1 and name = '%s'" % d.purchase_order)
-				if not submitted:
-					msgprint("Purchase Order : "+ cstr(d.purchase_order) +" is not submitted")
-					raise Exception , "Validation Error."
-			if d.purchase_receipt:
-				submitted = sql("select name from `tabPurchase Receipt` where docstatus = 1 and name = '%s'" % d.purchase_receipt)
-				if not submitted:
-					msgprint("Purchase Receipt : "+ cstr(d.purchase_receipt) +" is not submitted")
-					raise Exception , "Validation Error."
-					
-					
-	#--------------------------------------------------------------------
-	def update_against_document_in_jv(self):
-		"""
-			Links invoice and advance voucher:
-				1. cancel advance voucher
-				2. split into multiple rows if partially adjusted, assign against voucher
-				3. submit advance voucher
-		"""
-		
-		lst = []
-		for d in getlist(self.doclist, 'advance_allocation_details'):
-			if flt(d.allocated_amount) > 0:
-				args = {
-					'voucher_no' : d.journal_voucher, 
-					'voucher_detail_no' : d.jv_detail_no, 
-					'against_voucher_type' : 'Payable Voucher', 
-					'against_voucher'  : self.doc.name,
-					'account' : self.doc.credit_to, 
-					'is_advance' : 'Yes', 
-					'dr_or_cr' : 'debit', 
-					'unadjusted_amt' : flt(d.advance_amount),
-					'allocated_amt' : flt(d.allocated_amount)
-				}
-				lst.append(args)
-		
-		if lst:
-			get_obj('GL Control').reconcile_against_document(lst)
-
-	# On Submit
-	#--------------------------------------------------------------------
-	def on_submit(self):
-		self.check_prev_docstatus()
-		
-		# Check for Approving Authority
-		get_obj('Authorization Control').validate_approving_authority(self.doc.doctype,self.doc.company, self.doc.grand_total)
-		
-		
-		# this sequence because outstanding may get -negative
-		get_obj(dt='GL Control').make_gl_entries(self.doc, self.doclist)
-		
-		self.update_against_document_in_jv()
-		
-		get_obj(dt = 'Purchase Common').update_prevdoc_detail(self, is_submit = 1)
-
-
-
-# ********************************* CANCEL *********************************
-	# Check Next Document's docstatus
-	# --------------------------------
-	def check_next_docstatus(self):
-		submit_jv = sql("select t1.name from `tabJournal Voucher` t1,`tabJournal Voucher Detail` t2 where t1.name = t2.parent and t2.against_voucher = '%s' and t1.docstatus = 1" % (self.doc.name))
-		if submit_jv:
-			msgprint("Journal Voucher : " + cstr(submit_jv[0][0]) + " has been created against " + cstr(self.doc.doctype) + ". So " + cstr(self.doc.doctype) + " cannot be Cancelled.")
-			raise Exception, "Validation Error."
-		
-	# On Cancel
-	# ----------
-	def on_cancel(self):
-		self.check_next_docstatus()
-
-		# Check whether tds payment voucher has been created against this voucher
-		self.check_tds_payment_voucher()
-		
-		get_obj(dt='GL Control').make_gl_entries(self.doc, self.doclist, cancel=1)
-		get_obj(dt = 'Purchase Common').update_prevdoc_detail(self, is_submit = 0)
-
-
-	# Check whether tds payment voucher has been created against this voucher
-	#---------------------------------------------------------------------------
-	def check_tds_payment_voucher(self):
-		tdsp =	sql("select parent from `tabTDS Payment Detail` where voucher_no = '%s' and docstatus = 1 and parent not like 'old%'")
-		if tdsp:
-			msgprint("TDS Payment voucher '%s' has been made against this voucher. Please cancel the payment voucher to proceed." % (tdsp and tdsp[0][0] or ''))
-			raise Exception
-
-	# on update
-	def on_update(self):
-		pass
-		
-########################################################################
-# Repair Outstanding
-#######################################################################
-	def repair_pv_outstanding(self):
-		get_obj(dt = 'GL Control').repair_voucher_outstanding(self)
diff --git a/erpnext/accounts/doctype/payable_voucher/payable_voucher.txt b/erpnext/accounts/doctype/payable_voucher/payable_voucher.txt
deleted file mode 100755
index f7d66ea..0000000
--- a/erpnext/accounts/doctype/payable_voucher/payable_voucher.txt
+++ /dev/null
@@ -1,1117 +0,0 @@
-# DocType, Payable Voucher
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:11',
-		'docstatus': 0,
-		'modified': '2012-03-02 12:28:23',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1330345793',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'module': u'Accounts',
-		'name': '__common__',
-		'read_only_onload': 1,
-		'search_fields': u'posting_date, credit_to, fiscal_year, bill_no, grand_total, outstanding_amount',
-		'section_style': u'Tabbed',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'subject': u'From %(supplier_name)s worth %(grand_total)s due on %(due_date)s | %(outstanding_amount)s outstanding',
-		'version': 521
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Payable Voucher',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
-		'parent': u'Payable Voucher',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'read': 1
-	},
-
-	# DocType, Payable Voucher
-	{
-		'doctype': 'DocType',
-		'name': u'Payable Voucher'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Accounts Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Accounts Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Accounts User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Purchase User'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Purchase User',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Accounts User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'match': u'supplier',
-		'permlevel': 0,
-		'role': u'Supplier'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 0,
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Basic Info',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'To manage multiple series please go to Setup > Manage Series',
-		'doctype': u'DocField',
-		'fieldname': u'naming_series',
-		'fieldtype': u'Select',
-		'label': u'Series',
-		'no_copy': 1,
-		'oldfieldname': u'naming_series',
-		'oldfieldtype': u'Select',
-		'options': u'BILL\nBILLJ',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'description': u'The account to which you will pay (have paid) the money to.',
-		'doctype': u'DocField',
-		'fieldname': u'credit_to',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Credit To',
-		'oldfieldname': u'credit_to',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'amended_from',
-		'fieldtype': u'Link',
-		'label': u'Amended From',
-		'no_copy': 1,
-		'oldfieldname': u'amended_from',
-		'oldfieldtype': u'Link',
-		'options': u'Payable Voucher',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'supplier',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'label': u'Supplier',
-		'oldfieldname': u'supplier',
-		'oldfieldtype': u'Link',
-		'options': u'Supplier',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'supplier_address',
-		'fieldtype': u'Link',
-		'label': u'Supplier Address',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_person',
-		'fieldtype': u'Link',
-		'label': u'Contact Person',
-		'options': u'Contact',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'supplier_name',
-		'fieldtype': u'Text',
-		'label': u'Name',
-		'oldfieldname': u'supplier_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'address_display',
-		'fieldtype': u'Small Text',
-		'label': u'Address',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_display',
-		'fieldtype': u'Small Text',
-		'label': u'Contact',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_mobile',
-		'fieldtype': u'Text',
-		'label': u'Mobile No',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_email',
-		'fieldtype': u'Text',
-		'label': u'Contact Email',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'reqd': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'default': u'Today',
-		'description': u'The date at which current entry will get or has actually executed.',
-		'doctype': u'DocField',
-		'fieldname': u'posting_date',
-		'fieldtype': u'Date',
-		'in_filter': 1,
-		'label': u'Posting Date',
-		'no_copy': 0,
-		'oldfieldname': u'posting_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'due_date',
-		'fieldtype': u'Date',
-		'in_filter': 1,
-		'label': u'Due Date',
-		'no_copy': 0,
-		'oldfieldname': u'due_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 0,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'description': u'If not applicable please enter: NA',
-		'doctype': u'DocField',
-		'fieldname': u'bill_no',
-		'fieldtype': u'Data',
-		'in_filter': 1,
-		'label': u'Bill No',
-		'oldfieldname': u'bill_no',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'bill_date',
-		'fieldtype': u'Date',
-		'in_filter': 1,
-		'label': u'Bill Date',
-		'oldfieldname': u'bill_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'description': u'The date at which current entry is corrected in the system.',
-		'doctype': u'DocField',
-		'fieldname': u'amendment_date',
-		'fieldtype': u'Date',
-		'label': u'Amendment Date',
-		'no_copy': 1,
-		'oldfieldname': u'amendment_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'mode_of_payment',
-		'fieldtype': u'Select',
-		'label': u'Mode of Payment',
-		'oldfieldname': u'mode_of_payment',
-		'oldfieldtype': u'Select',
-		'options': u'link:Mode of Payment',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Items',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'currency',
-		'fieldtype': u'Select',
-		'label': u'Bill Currency',
-		'oldfieldname': u'currency',
-		'oldfieldtype': u'Select',
-		'options': u'link:Currency',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'1',
-		'description': u"The rate at which Bill Currency is converted into company's base currency",
-		'doctype': u'DocField',
-		'fieldname': u'conversion_rate',
-		'fieldtype': u'Currency',
-		'label': u'Bill Conversion Rate',
-		'oldfieldname': u'conversion_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Select Items from Purchase Order',
-		'doctype': u'DocField',
-		'fieldname': u'purchase_order_main',
-		'fieldtype': u'Link',
-		'label': u'Purchase Order',
-		'oldfieldname': u'purchase_order_main',
-		'oldfieldtype': u'Link',
-		'options': u'Purchase Order',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Select Items from Purchase Receipt',
-		'doctype': u'DocField',
-		'fieldname': u'purchase_receipt_main',
-		'fieldtype': u'Link',
-		'label': u'Purchase Receipt',
-		'oldfieldname': u'purchase_receipt_main',
-		'oldfieldtype': u'Link',
-		'options': u'Purchase Receipt',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Get Items',
-		'oldfieldtype': u'Button',
-		'options': u'pull_details',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldname': u'entries',
-		'fieldtype': u'Table',
-		'label': u'Entries',
-		'oldfieldname': u'entries',
-		'oldfieldtype': u'Table',
-		'options': u'PV Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Recalculate',
-		'oldfieldtype': u'Button',
-		'permlevel': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'description': u'Will be calculated automatically when you enter the details',
-		'doctype': u'DocField',
-		'fieldname': u'net_total',
-		'fieldtype': u'Currency',
-		'label': u'Net Total',
-		'oldfieldname': u'net_total',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Add / Edit taxes and other charges',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Taxes',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_other_charges',
-		'fieldtype': u'Link',
-		'label': u'Purchase Other Charges',
-		'oldfieldname': u'purchase_other_charges',
-		'oldfieldtype': u'Link',
-		'options': u'Purchase Other Charges',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Get Tax Detail',
-		'oldfieldtype': u'Button',
-		'options': u'get_purchase_tax_details',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_tax_details',
-		'fieldtype': u'Table',
-		'label': u'Purchase Tax Details',
-		'oldfieldname': u'purchase_tax_details',
-		'oldfieldtype': u'Table',
-		'options': u'Purchase Tax Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Calculate Tax',
-		'oldfieldtype': u'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'HTML',
-		'label': u'Tax Calculation',
-		'oldfieldtype': u'HTML',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'total_tax',
-		'fieldtype': u'Currency',
-		'label': u'Total Tax',
-		'oldfieldname': u'total_tax',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'More Info',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No',
-		'doctype': u'DocField',
-		'fieldname': u'is_opening',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Is Opening',
-		'oldfieldname': u'is_opening',
-		'oldfieldtype': u'Select',
-		'options': u'No\nYes',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'aging_date',
-		'fieldtype': u'Date',
-		'label': u'Aging Date',
-		'oldfieldname': u'aging_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'select_print_heading',
-		'fieldtype': u'Link',
-		'label': u'Select Print Heading',
-		'no_copy': 1,
-		'oldfieldname': u'select_print_heading',
-		'oldfieldtype': u'Link',
-		'options': u'Print Heading',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'company',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Company',
-		'oldfieldname': u'company',
-		'oldfieldtype': u'Link',
-		'options': u'Company',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'fiscal_year',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Fiscal Year',
-		'oldfieldname': u'fiscal_year',
-		'oldfieldtype': u'Select',
-		'options': u'link:Fiscal Year',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldname': u'cancel_reason',
-		'fieldtype': u'Data',
-		'label': u'Cancel Reason',
-		'no_copy': 1,
-		'oldfieldname': u'cancel_reason',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'remarks',
-		'fieldtype': u'Small Text',
-		'label': u'Remarks',
-		'no_copy': 1,
-		'oldfieldname': u'remarks',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Advances',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Get Advances Paid',
-		'oldfieldtype': u'Button',
-		'options': u'get_advances',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'advance_allocation_details',
-		'fieldtype': u'Table',
-		'label': u'Advance Allocation Details',
-		'no_copy': 1,
-		'oldfieldname': u'advance_allocation_details',
-		'oldfieldtype': u'Table',
-		'options': u'Advance Allocation Detail',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'TDS',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'tds_applicable',
-		'fieldtype': u'Select',
-		'label': u'TDS Applicable',
-		'oldfieldname': u'tds_applicable',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'tds_category',
-		'fieldtype': u'Select',
-		'label': u'TDS Category',
-		'oldfieldname': u'tds_category',
-		'oldfieldtype': u'Select',
-		'options': u'link:TDS Category',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Get TDS',
-		'oldfieldtype': u'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'tax_code',
-		'fieldtype': u'Link',
-		'label': u'TDS Account Head',
-		'oldfieldname': u'tax_code',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate',
-		'oldfieldname': u'rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'ded_amount',
-		'fieldtype': u'Currency',
-		'label': u'TDS Amount',
-		'oldfieldname': u'ded_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Totals',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'other_charges_added',
-		'fieldtype': u'Currency',
-		'label': u'Other Charges Added',
-		'oldfieldname': u'other_charges_added',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'other_charges_deducted',
-		'fieldtype': u'Currency',
-		'label': u'Other Charges Deducted',
-		'oldfieldname': u'other_charges_deducted',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'total_tds_on_voucher',
-		'fieldtype': u'Currency',
-		'label': u'Total TDS On Voucher',
-		'no_copy': 1,
-		'oldfieldname': u'total_tds_on_voucher',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'tds_amount_on_advance',
-		'fieldtype': u'Currency',
-		'label': u'TDS Amount On Advance',
-		'no_copy': 1,
-		'oldfieldname': u'tds_amount_on_advance',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'total_advance',
-		'fieldtype': u'Currency',
-		'label': u'Total Advance (Incl. TDS)',
-		'no_copy': 1,
-		'oldfieldname': u'total_advance',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'total_amount_to_pay',
-		'fieldtype': u'Currency',
-		'hidden': 0,
-		'label': u'Total Amount To Pay',
-		'no_copy': 1,
-		'oldfieldname': u'total_amount_to_pay',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'outstanding_amount',
-		'fieldtype': u'Currency',
-		'in_filter': 1,
-		'label': u'Outstanding Amount',
-		'no_copy': 1,
-		'oldfieldname': u'outstanding_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'grand_total',
-		'fieldtype': u'Currency',
-		'label': u'Grand Total',
-		'oldfieldname': u'grand_total',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'In Words will be visible once you save the Purchase Invoice.',
-		'doctype': u'DocField',
-		'fieldname': u'in_words',
-		'fieldtype': u'Data',
-		'label': u'In Words',
-		'oldfieldname': u'in_words',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'net_total_import',
-		'fieldtype': u'Currency',
-		'label': u'Net Total (Import)',
-		'oldfieldname': u'net_total_import',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'other_charges_added_import',
-		'fieldtype': u'Currency',
-		'label': u'Other Charges Added (Import)',
-		'oldfieldname': u'other_charges_added_import',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'other_charges_deducted_import',
-		'fieldtype': u'Currency',
-		'label': u'Other Charges Deducted (Import)',
-		'oldfieldname': u'other_charges_deducted_import',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'grand_total_import',
-		'fieldtype': u'Currency',
-		'label': u'Grand Total (Import)',
-		'oldfieldname': u'grand_total_import',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'in_words_import',
-		'fieldtype': u'Data',
-		'label': u'In Words (Import)',
-		'oldfieldname': u'in_words_import',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Actions',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Repair Outstanding Amt',
-		'oldfieldtype': u'Button',
-		'options': u'repair_pv_outstanding',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'against_expense_account',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Against Expense Account',
-		'no_copy': 1,
-		'oldfieldname': u'against_expense_account',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/payable_voucher/__init__.py b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/__init__.py
similarity index 100%
rename from erpnext/accounts/doctype/payable_voucher/__init__.py
rename to erpnext/accounts/doctype/payment_to_invoice_matching_tool/__init__.py
diff --git a/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.js b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
similarity index 100%
rename from erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.js
rename to erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
diff --git a/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
new file mode 100644
index 0000000..848cc76
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
@@ -0,0 +1,156 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+
+class DocType:
+	def __init__(self, doc, doclist):
+		self.doc = doc
+		self.doclist = doclist
+		self.acc_type = self.doc.account and sql("select debit_or_credit from `tabAccount` where name = %s", self.doc.account)[0][0].lower() or ''
+		self.dt = {
+			'Sales Invoice': 'Sales Invoice',
+			'Purchase Invoice': 'Purchase Invoice',
+			'Journal Voucher': 'Journal Voucher'
+		}
+		
+	#--------------------------------------------------
+	def get_voucher_details(self):
+		tot_amt = sql("""
+			select sum(%s) from `tabGL Entry` where 
+			voucher_type = %s and voucher_no = %s 
+			and account = %s and ifnull(is_cancelled, 'No') = 'No'
+		"""% (self.acc_type, '%s', '%s', '%s'), (self.dt[self.doc.voucher_type], self.doc.voucher_no, self.doc.account))
+		
+		outstanding = sql("""
+			select sum(%s) - sum(%s) from `tabGL Entry` where 
+			against_voucher = %s and voucher_no != %s
+			and account = %s and ifnull(is_cancelled, 'No') = 'No'
+		""" % ((self.acc_type == 'debit' and 'credit' or 'debit'), self.acc_type, '%s', '%s', '%s'), (self.doc.voucher_no, self.doc.voucher_no, self.doc.account))
+		
+		ret = {
+			'total_amount': flt(tot_amt[0][0]) or 0,	
+			'pending_amt_to_reconcile': flt(tot_amt[0][0]) - flt(outstanding[0][0]) or 0
+		}
+		
+		return ret
+
+		
+	#--------------------------------------------------
+	def get_payment_entries(self):
+		"""
+			Get payment entries for the account and period
+			Payment entry will be decided based on account type (Dr/Cr)
+		"""
+
+		self.doc.clear_table(self.doclist, 'ir_payment_details')		
+		gle = self.get_gl_entries()
+		self.create_payment_table(gle)
+
+	#--------------------------------------------------
+	def get_gl_entries(self):
+		self.validate_mandatory()
+		dc = self.acc_type == 'debit' and 'credit' or 'debit'
+		
+		cond = self.doc.from_date and " and t1.posting_date >= '" + self.doc.from_date + "'" or ""
+		cond += self.doc.to_date and " and t1.posting_date <= '" + self.doc.to_date + "'"or ""
+		
+		cond += self.doc.amt_greater_than and ' and t2.' + dc+' >= ' + self.doc.amt_greater_than or ''
+		cond += self.doc.amt_less_than and ' and t2.' + dc+' <= ' + self.doc.amt_less_than or ''
+
+		gle = sql("""
+			select t1.name as voucher_no, t1.posting_date, t1.total_debit as total_amt,  sum(ifnull(t2.credit, 0)) - sum(ifnull(t2.debit, 0)) as amt_due, t1.remark, t2.against_account, t2.name as voucher_detail_no
+			from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
+			where t1.name = t2.parent  
+			and t1.docstatus = 1 
+			and t2.account = %s
+			and ifnull(t2.against_voucher, '')='' and ifnull(t2.against_invoice, '')='' and ifnull(t2.against_jv, '')=''
+			and t2.%s > 0
+			%s
+			group by t1.name, t2.name
+		"""% ('%s', dc, cond), self.doc.account, as_dict=1)
+
+		return gle
+
+	#--------------------------------------------------
+	def create_payment_table(self, gle):
+		for d in gle:
+			ch = addchild(self.doc, 'ir_payment_details', 'Payment to Invoice Matching Tool Detail', 1, self.doclist)
+			ch.voucher_no = d.get('voucher_no')
+			ch.posting_date = d.get('posting_date')
+			ch.amt_due =  self.acc_type == 'debit' and flt(d.get('amt_due')) or -1*flt(d.get('amt_due'))
+			ch.total_amt = flt(d.get('total_amt'))
+			ch.against_account = d.get('against_account')
+			ch.remarks = d.get('remark')
+			ch.amt_to_be_reconciled = flt(ch.amt_due)
+			ch.voucher_detail_no = d.get('voucher_detail_no')
+			
+	#--------------------------------------------------
+	def validate_mandatory(self):
+		if not self.doc.account:
+			msgprint("Please select Account first", raise_exception=1)
+	
+	#--------------------------------------------------	
+	def reconcile(self):
+		"""
+			Links booking and payment voucher
+			1. cancel payment voucher
+			2. split into multiple rows if partially adjusted, assign against voucher
+			3. submit payment voucher
+		"""
+		if not self.doc.voucher_no or not sql("select name from `tab%s` where name = %s" %(self.dt[self.doc.voucher_type], '%s'),  self.doc.voucher_no):
+			msgprint("Please select valid Voucher No to proceed", raise_exception=1)
+		
+		lst = []
+		for d in getlist(self.doclist, 'ir_payment_details'):
+			if d.selected and flt(d.amt_to_be_reconciled) > 0:
+				args = {
+					'voucher_no' : d.voucher_no,
+					'voucher_detail_no' : d.voucher_detail_no, 
+					'against_voucher_type' : self.dt[self.doc.voucher_type], 
+					'against_voucher'  : self.doc.voucher_no,
+					'account' : self.doc.account, 
+					'is_advance' : 'No', 
+					'dr_or_cr' :  self.acc_type=='debit' and 'credit' or 'debit', 
+					'unadjusted_amt' : flt(d.amt_due),
+					'allocated_amt' : flt(d.amt_to_be_reconciled)
+				}
+			
+				lst.append(args)
+		
+
+		if lst:
+			get_obj('GL Control').reconcile_against_document(lst)
+			msgprint("Successfully reconciled.")
+		else:
+			msgprint("No payment entries selected.", raise_exception=1)
diff --git a/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.txt b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.txt
new file mode 100644
index 0000000..5a95ba8
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.txt
@@ -0,0 +1,275 @@
+# DocType, Payment to Invoice Matching Tool
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:42',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:42',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1316509358',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'document_type': u'Other',
+		'issingle': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'show_in_menu': 1,
+		'version': 37
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Payment to Invoice Matching Tool',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Payment to Invoice Matching Tool',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Payment to Invoice Matching Tool
+	{
+		'doctype': 'DocType',
+		'name': u'Payment to Invoice Matching Tool'
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'account',
+		'fieldtype': u'Link',
+		'label': u'Account',
+		'options': u'Account',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'voucher_type',
+		'fieldtype': u'Select',
+		'label': u'Voucher Type',
+		'options': u'Sales Invoice\nPurchase Invoice\nJournal Voucher',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'voucher_no',
+		'fieldtype': u'Link',
+		'label': u'Voucher No',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total_amount',
+		'fieldtype': u'Currency',
+		'label': u'Total Amount',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'pending_amt_to_reconcile',
+		'fieldtype': u'Currency',
+		'label': u'Pending Amt To Reconcile',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'payment_entries',
+		'fieldtype': u'Section Break',
+		'label': u'Payment Entries',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'label': u"<div class = 'field_description'>Filter payment entries based on date:</div>",
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'from_date',
+		'fieldtype': u'Date',
+		'label': u'From Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'to_date',
+		'fieldtype': u'Date',
+		'label': u'To Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'label': u"<div class = 'field_description'>Filter payment entries based on amount:</div>",
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'amt_greater_than',
+		'fieldtype': u'Data',
+		'label': u'Amount >=',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amt_less_than',
+		'fieldtype': u'Data',
+		'label': u'Amount <=',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'options': u'Simple',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'pull_payment_entries',
+		'fieldtype': u'Button',
+		'label': u'Pull Payment Entries',
+		'options': u'get_payment_entries',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'ir_payment_details',
+		'fieldtype': u'Table',
+		'label': u'Payment Entries',
+		'options': u'Payment to Invoice Matching Tool Detail',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'reconcile_html',
+		'fieldtype': u'HTML',
+		'label': u'Reconcile HTML',
+		'options': u"<div class='field_description'>Select Payment Voucher and Amount to Reconcile in the above table and then click Reconcile button</div>",
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'reconcile',
+		'fieldtype': u'Button',
+		'label': u'Reconcile',
+		'options': u'reconcile',
+		'permlevel': 0,
+		'trigger': u'Client'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/payment_to_invoice_matching_tool/test_ir.py b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/test_ir.py
new file mode 100644
index 0000000..d990b18
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_to_invoice_matching_tool/test_ir.py
@@ -0,0 +1,185 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import unittest
+import webnotes
+
+from webnotes.model.doc import Document
+from webnotes.model.code import get_obj
+from webnotes.utils import cstr, flt
+sql = webnotes.conn.sql
+
+class TestInternalReco(unittest.TestCase):
+	def setUp(self):
+		webnotes.conn.begin()
+		
+		comp1.save(1)
+		cust1.save(1)
+		bank1.save(1)
+		rv1.save(1)
+		rv_gle.save(1)
+
+
+		for t in jv1: t.save(1)
+		for t in jv1[1:]:
+			sql("update `tabJournal Voucher Detail` set parent = '%s' where name = '%s'" % (jv1[0].name, t.name))
+			
+		ir[0].save()
+		for t in ir[1:]:
+			t.save(1)
+			sql("update `tabPayment to Invoice Matching Tool Detail` set voucher_no = '%s', voucher_detail_no = '%s' where parent = 'Payment to Invoice Matching Tool'" % (jv1[0].name, jv1[1].name))
+		
+		
+		sql("update `tabGL Entry` set voucher_no = %s, against_voucher = %s where voucher_no = 'rv1'", (rv1.name, rv1.name))
+		sql("update `tabSingles` set value = %s where doctype = 'Payment to Invoice Matching Tool' and field = 'voucher_no'", rv1.name)
+		
+		
+		self.ir = get_obj('Payment to Invoice Matching Tool', with_children=1)		
+		self.ir.reconcile()
+		
+	#===========================
+	def test_jv(self):
+		"""
+			Test whether JV has benn properly splitted and against doc has been updated
+		"""
+		amt_against_doc = [[cstr(d[0]), flt(d[1]), flt(d[2])]for d in sql("select against_invoice, debit, credit from `tabJournal Voucher Detail` where parent = %s and account = 'cust1 - c1'", jv1[0].name)]
+		self.assertTrue(amt_against_doc == [[rv1.name, 0, 100.0], ['', 0, 400.0]])
+
+	#============================		
+	def test_gl_entry(self):
+		"""
+			Check proper gl entry has been made
+		"""
+		gle = [[cstr(d[0]), flt(d[1])] for d in sql("select against_voucher, sum(credit) - sum(debit) from `tabGL Entry` where voucher_no = %s and account = 'cust1 - c1' and ifnull(is_cancelled, 'No') = 'No' group by against_voucher", jv1[0].name)]
+
+		self.assertTrue([rv1.name, 100.0] in gle)
+		self.assertTrue(['', 400.0] in gle)
+		
+	#============================
+	def test_outstanding(self):
+		"""
+			Check whether Outstanding amount has been properly updated in RV
+		"""
+		amt = sql("select outstanding_amount from `tabSales Invoice` where name = '%s'" % rv1.name)[0][0]
+		self.assertTrue(amt == 0)
+		
+	#============================
+	def tearDown(self):
+		webnotes.conn.rollback()
+	
+
+
+
+# test data
+#---------------
+rv1 = Document(fielddata={
+		'doctype':'Sales Invoice',
+		'docstatus':1,
+		'debit_to':'cust1 - c1',
+		'grand_total': 100,
+		'outstanding_amount': 100,
+		'name': 'rv1'
+	})
+	
+jv1 = [Document(fielddata={
+		'doctype':'Journal Voucher',
+		'docstatus':1,
+		'cheque_no': '163567',
+		'docstatus':1,
+		'company': 'comp1',
+		'posting_date' : '2011-05-02',
+		'remark': 'test data',
+		'fiscal_year': '2011-2012',
+		'total_debit': 500,
+		'total_credit': 500
+	}),
+	Document(fielddata = {
+		'parenttype':'Journal Voucher',
+		'parentfield':'entries',
+		'doctype':'Journal Voucher Detail',
+		'account' : 'cust1 - c1',
+		'credit':500,
+		'debit' : 0,
+		'docstatus':1
+	}),
+	Document(fielddata = {
+		'parenttype':'Journal Voucher',
+		'parentfield':'entries',
+		'doctype':'Journal Voucher Detail',
+		'account' : 'bank1 - c1',
+		'credit':0,
+		'debit' : 500,
+		'docstatus':1
+	})]
+	
+ir = [Document(fielddata = {
+		'doctype':'Payment to Invoice Matching Tool',
+		'name' : 'Payment to Invoice Matching Tool',
+		'account':'cust1 - c1',
+		'voucher_type' : 'Sales Invoice',
+		'voucher_no': 'rv1'
+	}),
+	Document(fielddata = {
+		'parenttype':'Payment to Invoice Matching Tool',
+		'parentfield':'ir_payment_details',
+		'doctype':'Payment to Invoice Matching Tool Detail',
+		'parent': 'Payment to Invoice Matching Tool',
+		'voucher_no': 'jv1',
+		'name' : '123112',
+		'voucher_detail_no' : 'jvd1',
+		'selected' : 1,
+		'amt_due' : 500,
+		'amt_to_be_reconciled':100
+	})]
+	
+cust1 = Document(fielddata={
+		'doctype':'Account',
+		'docstatus':0,
+		'account_name' : 'cust1',
+		'debit_or_credit': 'Debit',
+		'company' : 'comp1',
+		'lft': 1,
+		'rgt': 2
+	})
+	
+bank1 = Document(fielddata={
+		'doctype':'Account',
+		'docstatus':0,
+		'account_name' : 'bank1',
+		'debit_or_credit': 'Debit',
+		'company' : 'comp1',
+		'lft': 3,
+		'rgt': 4
+	})	
+	
+comp1 = Document(fielddata={
+		'doctype':'Company',
+		'abbr': 'c1',
+		'company_name' : 'comp1',
+		'name': 'comp1'
+	})
+	
+rv_gle = Document(fielddata={
+		'doctype':'GL Entry',
+		'account': 'cust1 - c1',
+		'company' : 'comp1',
+		'voucher_no': 'rv1',
+		'against_voucher': 'rv1',
+		'against_voucher_type': 'Sales Invoice',
+		'voucher_type' : 'Sales Invoice',
+		'debit': 100,
+		'credit': 0
+	})
diff --git a/erpnext/accounts/doctype/purchase_tax_detail/__init__.py b/erpnext/accounts/doctype/payment_to_invoice_matching_tool_detail/__init__.py
similarity index 100%
copy from erpnext/accounts/doctype/purchase_tax_detail/__init__.py
copy to erpnext/accounts/doctype/payment_to_invoice_matching_tool_detail/__init__.py
diff --git a/erpnext/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.txt b/erpnext/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.txt
new file mode 100644
index 0000000..5291057
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.txt
@@ -0,0 +1,132 @@
+# DocType, Payment to Invoice Matching Tool Detail
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:43',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:43',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'show_in_menu': 0,
+		'version': 14
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Payment to Invoice Matching Tool Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Payment to Invoice Matching Tool Detail
+	{
+		'doctype': 'DocType',
+		'name': u'Payment to Invoice Matching Tool Detail'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'selected',
+		'fieldtype': u'Check',
+		'label': u'Select',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'60px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'voucher_no',
+		'fieldtype': u'Link',
+		'label': u'Voucher No',
+		'options': u'Journal Voucher',
+		'permlevel': 1,
+		'reqd': 0,
+		'width': u'140px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amt_due',
+		'fieldtype': u'Currency',
+		'label': u'Amt Due',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amt_to_be_reconciled',
+		'fieldtype': u'Currency',
+		'label': u'Amt to be reconciled',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
+		'label': u'Posting Date',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total_amt',
+		'fieldtype': u'Currency',
+		'label': u'Total Amt',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'against_account',
+		'fieldtype': u'Data',
+		'label': u'Against Account',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Small Text',
+		'label': u'Remarks',
+		'permlevel': 1,
+		'width': u'200px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'voucher_detail_no',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Voucher Detail No',
+		'no_column': 0,
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 0
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.txt b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
index 5850887..54e458e 100644
--- a/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
+++ b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
@@ -3,77 +3,95 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-10-25 17:25:22',
+		'creation': '2012-03-27 14:35:46',
 		'docstatus': 0,
-		'modified': '2010-12-23 13:34:27',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'jai@webnotestech.com'
+		'modified': '2012-03-27 14:45:49',
+		'modified_by': u'Administrator',
+		'owner': u'jai@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'PCE/.###',
-		'colour': 'White:FFF',
+		'_last_update': u'1311621379',
+		'autoname': u'PCE/.###',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Accounts',
+		'is_submittable': 1,
+		'module': u'Accounts',
 		'name': '__common__',
-		'search_fields': 'posting_date, fiscal_year',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 121
+		'search_fields': u'posting_date, fiscal_year',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 123
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Period Closing Voucher',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Period Closing Voucher',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Period Closing Voucher',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Period Closing Voucher',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Period Closing Voucher
 	{
 		'doctype': 'DocType',
-		'name': 'Period Closing Voucher'
+		'name': u'Period Closing Voucher'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Accounts Manager'
+		'role': u'Accounts Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Accounts Manager'
+		'role': u'Accounts Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'System Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts Manager'
 	},
 
 	# DocPerm
@@ -81,10 +99,9 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 1,
 		'write': 1
 	},
@@ -93,161 +110,166 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Accounts Manager',
+		'role': u'Accounts Manager',
 		'submit': 1,
 		'write': 1
 	},
 
-	# DocField
+	# DocPerm
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 1,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'System Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'transaction_date',
-		'fieldtype': 'Date',
-		'idx': 2,
-		'label': 'Transaction Date',
-		'oldfieldname': 'transaction_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'transaction_date',
+		'fieldtype': u'Date',
+		'label': u'Transaction Date',
+		'oldfieldname': u'transaction_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
-		'idx': 3,
-		'label': 'Posting Date',
-		'oldfieldname': 'posting_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
+		'label': u'Posting Date',
+		'oldfieldname': u'posting_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 4,
-		'label': 'Closing Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
+		'label': u'Closing Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
+		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Amended From',
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'idx': 6,
-		'label': 'Amendment Date',
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 7,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Select',
-		'options': 'link:Company',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Select',
+		'options': u'link:Company',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 8,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'closing_account_head',
-		'fieldtype': 'Link',
-		'idx': 9,
-		'label': 'Closing Account Head',
-		'oldfieldname': 'closing_account_head',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'closing_account_head',
+		'fieldtype': u'Link',
+		'label': u'Closing Account Head',
+		'oldfieldname': u'closing_account_head',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 10,
-		'label': 'CoA Help',
-		'oldfieldtype': 'HTML',
-		'options': '<a href="javascript:cur_frm.cscript.acc_help();">To create Account Head, click here</a>',
+		'doctype': u'DocField',
+		'fieldname': u'coa_help',
+		'fieldtype': u'HTML',
+		'label': u'CoA Help',
+		'oldfieldtype': u'HTML',
+		'options': u'<a href="javascript:cur_frm.cscript.acc_help();">To create Account Head, click here</a>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'remarks',
-		'fieldtype': 'Small Text',
-		'idx': 11,
-		'label': 'Remarks',
-		'oldfieldname': 'remarks',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Small Text',
+		'label': u'Remarks',
+		'oldfieldname': u'remarks',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cancel_reason',
-		'fieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'cancel_reason',
+		'fieldtype': u'Small Text',
 		'hidden': 1,
-		'idx': 12,
-		'label': 'Cancel Reason',
-		'oldfieldname': 'cancel_reason',
-		'oldfieldtype': 'Small Text',
+		'label': u'Cancel Reason',
+		'oldfieldname': u'cancel_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0,
 		'print_hide': 1,
 		'search_index': 0
@@ -255,39 +277,38 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 13,
-		'label': 'Repost Account Balances',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'repost_account_balances',
+		'fieldtype': u'Section Break',
+		'label': u'Repost Account Balances',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'next_fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 14,
-		'label': 'Fiscal Year (For Reposting)',
-		'oldfieldname': 'next_fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'doctype': u'DocField',
+		'fieldname': u'next_fiscal_year',
+		'fieldtype': u'Select',
+		'label': u'Fiscal Year (For Reposting)',
+		'oldfieldname': u'next_fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 15,
-		'label': 'Repost',
-		'oldfieldtype': 'Button',
-		'options': 'repost_account_balances',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'repost',
+		'fieldtype': u'Button',
+		'label': u'Repost',
+		'oldfieldtype': u'Button',
+		'options': u'repost_account_balances',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/pos_setting/pos_setting.py b/erpnext/accounts/doctype/pos_setting/pos_setting.py
index 45caca5..43742ac 100755
--- a/erpnext/accounts/doctype/pos_setting/pos_setting.py
+++ b/erpnext/accounts/doctype/pos_setting/pos_setting.py
@@ -39,7 +39,7 @@
 
   #--------------------get naming series from sales invoice-----------------
   def get_series(self):
-    res = sql("select options from `tabDocField` where parent='Receivable Voucher' and fieldname = 'naming_series'")
+    res = sql("select options from `tabDocField` where parent='Sales Invoice' and fieldname = 'naming_series'")
     return res and cstr(res[0][0]) or ''
   
   def validate(self):
diff --git a/erpnext/accounts/doctype/pos_setting/pos_setting.txt b/erpnext/accounts/doctype/pos_setting/pos_setting.txt
index 3809d67..b1b90e6 100755
--- a/erpnext/accounts/doctype/pos_setting/pos_setting.txt
+++ b/erpnext/accounts/doctype/pos_setting/pos_setting.txt
@@ -3,42 +3,45 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-15 08:39:23',
+		'creation': '2012-03-27 14:35:46',
 		'docstatus': 0,
-		'modified': '2010-12-10 11:29:51',
-		'modified_by': 'rahul@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:46',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'POS/.####',
-		'colour': 'White:FFF',
+		'_last_update': u'1322549700',
+		'autoname': u'POS/.####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 27
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 33
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'POS Setting',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'POS Setting',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'POS Setting',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'POS Setting',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1
 	},
@@ -46,15 +49,14 @@
 	# DocType, POS Setting
 	{
 		'doctype': 'DocType',
-		'name': 'POS Setting'
+		'name': u'POS Setting'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager',
+		'doctype': u'DocPerm',
+		'role': u'System Manager',
 		'submit': 0,
 		'write': 1
 	},
@@ -62,247 +64,220 @@
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'System Manager',
+		'doctype': u'DocPerm',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'Accounts Manager',
+		'doctype': u'DocPerm',
+		'role': u'Accounts Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'role': 'Accounts User'
+		'doctype': u'DocPerm',
+		'role': u'Accounts User'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'user',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'User',
-		'oldfieldname': 'user',
-		'oldfieldtype': 'Link',
-		'options': 'Profile'
+		'doctype': u'DocField',
+		'fieldname': u'user',
+		'fieldtype': u'Link',
+		'label': u'User',
+		'oldfieldname': u'user',
+		'oldfieldtype': u'Link',
+		'options': u'Profile'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'label': 'Territory',
-		'oldfieldname': 'territory',
-		'oldfieldtype': 'Link',
-		'options': 'Territory',
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
+		'label': u'Territory',
+		'oldfieldname': u'territory',
+		'oldfieldtype': u'Link',
+		'options': u'Territory',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Series',
 		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'currency',
-		'fieldtype': 'Select',
-		'idx': 4,
-		'label': 'Currency',
-		'oldfieldname': 'currency',
-		'oldfieldtype': 'Select',
-		'options': 'link:Currency',
+		'doctype': u'DocField',
+		'fieldname': u'currency',
+		'fieldtype': u'Select',
+		'label': u'Currency',
+		'oldfieldname': u'currency',
+		'oldfieldtype': u'Select',
+		'options': u'link:Currency',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': '1.00',
-		'doctype': 'DocField',
-		'fieldname': 'conversion_rate',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Conversion Rate',
-		'oldfieldname': 'conversion_rate',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'default': u'1',
+		'doctype': u'DocField',
+		'fieldname': u'conversion_rate',
+		'fieldtype': u'Currency',
+		'label': u'Conversion Rate',
+		'oldfieldname': u'conversion_rate',
+		'oldfieldtype': u'Currency',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'price_list_name',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Price List',
-		'oldfieldname': 'price_list_name',
-		'oldfieldtype': 'Select',
-		'options': 'link:Price List',
+		'doctype': u'DocField',
+		'fieldname': u'price_list_name',
+		'fieldtype': u'Select',
+		'label': u'Price List',
+		'oldfieldname': u'price_list_name',
+		'oldfieldtype': u'Select',
+		'options': u'link:Price List',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 7,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
-		'reqd': 1,
-		'search_index': 0
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
+		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 8,
-		'oldfieldtype': 'Column Break'
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_account',
-		'fieldtype': 'Link',
-		'idx': 9,
-		'label': 'Customer Account',
-		'oldfieldname': 'customer_account',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
-		'reqd': 0,
-		'search_index': 0
+		'doctype': u'DocField',
+		'fieldname': u'customer_account',
+		'fieldtype': u'Link',
+		'label': u'Customer Account',
+		'oldfieldname': u'customer_account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cash_bank_account',
-		'fieldtype': 'Link',
-		'idx': 10,
-		'label': 'Cash/Bank Account',
-		'oldfieldname': 'cash_bank_account',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
-		'reqd': 1,
-		'search_index': 0
+		'doctype': u'DocField',
+		'fieldname': u'cash_bank_account',
+		'fieldtype': u'Link',
+		'label': u'Cash/Bank Account',
+		'oldfieldname': u'cash_bank_account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'income_account',
-		'fieldtype': 'Link',
-		'idx': 11,
-		'label': 'Income Account',
-		'oldfieldname': 'income_account',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
-		'reqd': 1,
-		'search_index': 0
+		'doctype': u'DocField',
+		'fieldname': u'income_account',
+		'fieldtype': u'Link',
+		'label': u'Income Account',
+		'oldfieldname': u'income_account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse',
-		'fieldtype': 'Link',
-		'idx': 12,
-		'label': 'Warehouse',
-		'oldfieldname': 'warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
-		'reqd': 1,
-		'search_index': 0
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
+		'label': u'Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
+		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cost_center',
-		'fieldtype': 'Link',
-		'idx': 13,
-		'label': 'Cost Center',
-		'oldfieldname': 'cost_center',
-		'oldfieldtype': 'Link',
-		'options': 'Cost Center',
-		'reqd': 1,
-		'search_index': 0
+		'doctype': u'DocField',
+		'fieldname': u'cost_center',
+		'fieldtype': u'Link',
+		'label': u'Cost Center',
+		'oldfieldname': u'cost_center',
+		'oldfieldtype': u'Link',
+		'options': u'Cost Center',
+		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'charge',
-		'fieldtype': 'Link',
-		'idx': 14,
-		'label': 'Charge',
-		'oldfieldname': 'charge',
-		'oldfieldtype': 'Link',
-		'options': 'Other Charges',
-		'search_index': 0
+		'doctype': u'DocField',
+		'fieldname': u'charge',
+		'fieldtype': u'Link',
+		'label': u'Charge',
+		'oldfieldname': u'charge',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Taxes and Charges Master'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'letter_head',
-		'fieldtype': 'Select',
-		'idx': 15,
-		'label': 'Letter Head',
-		'oldfieldname': 'letter_head',
-		'oldfieldtype': 'Select',
-		'options': 'link:Letter Head',
+		'doctype': u'DocField',
+		'fieldname': u'letter_head',
+		'fieldtype': u'Select',
+		'label': u'Letter Head',
+		'oldfieldname': u'letter_head',
+		'oldfieldtype': u'Select',
+		'options': u'link:Letter Head',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tc_name',
-		'fieldtype': 'Link',
-		'idx': 16,
-		'label': 'Terms',
-		'oldfieldname': 'tc_name',
-		'oldfieldtype': 'Link',
-		'options': 'Term',
-		'search_index': 0
+		'doctype': u'DocField',
+		'fieldname': u'tc_name',
+		'fieldtype': u'Link',
+		'label': u'Terms and Conditions',
+		'oldfieldname': u'tc_name',
+		'oldfieldtype': u'Link',
+		'options': u'Terms and Conditions'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'select_print_heading',
-		'fieldtype': 'Select',
-		'idx': 17,
+		'doctype': u'DocField',
+		'fieldname': u'select_print_heading',
+		'fieldtype': u'Select',
 		'in_filter': 0,
-		'label': 'Select Print Heading',
-		'oldfieldname': 'select_print_heading',
-		'oldfieldtype': 'Select',
-		'options': 'link:Print Heading'
+		'label': u'Select Print Heading',
+		'oldfieldname': u'select_print_heading',
+		'oldfieldtype': u'Select',
+		'options': u'link:Print Heading'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/purchase_tax_detail/__init__.py b/erpnext/accounts/doctype/purchase_invoice/__init__.py
similarity index 100%
rename from erpnext/accounts/doctype/purchase_tax_detail/__init__.py
rename to erpnext/accounts/doctype/purchase_invoice/__init__.py
diff --git a/erpnext/accounts/doctype/purchase_invoice/listview.js b/erpnext/accounts/doctype/purchase_invoice/listview.js
new file mode 100644
index 0000000..da8d2ac
--- /dev/null
+++ b/erpnext/accounts/doctype/purchase_invoice/listview.js
@@ -0,0 +1,39 @@
+// render
+wn.doclistviews['Purchase Invoice'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d);
+		this.fields = this.fields.concat([
+			'`tabPurchase Invoice`.supplier_name',
+			'`tabPurchase Invoice`.currency',
+			'IFNULL(`tabPurchase Invoice`.grand_total_import, 0) as grand_total_import',
+			'IFNULL(`tabPurchase Invoice`.grand_total, 0) as grand_total',
+			'IFNULL(`tabPurchase Invoice`.outstanding_amount, 0) as outstanding_amount',
+		]);
+		this.stats = this.stats.concat(['company']);
+	},
+
+	prepare_data: function(data) {
+		this._super(data);
+		data.paid = flt(
+			((data.grand_total - data.outstanding_amount) / data.grand_total) * 100,
+			2);
+	},
+
+	columns: [
+		{width: '5%', content: 'avatar'},
+		{width: '3%', content: 'docstatus'},
+		{width: '15%', content: 'name'},
+		{width: '37%', content: 'tags+supplier_name', css: {color: '#aaa'}},
+		{
+			width: '18%', 
+			content: function(parent, data) { 
+				$(parent).html(data.currency + ' ' + fmt_money(data.grand_total_import)) 
+			},
+			css: {'text-align':'right'}
+		},
+		{width: '10%', content: 'paid', type:'bar-graph', label:'Paid'},
+		{width: '12%', content:'modified', css: {
+			'text-align': 'right', 'color':'#777'
+		}},
+	]
+});
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
new file mode 100644
index 0000000..7e77068
--- /dev/null
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -0,0 +1,408 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+cur_frm.cscript.tname = "Purchase Invoice Item";
+cur_frm.cscript.fname = "entries";
+cur_frm.cscript.other_fname = "purchase_tax_details";
+wn.require('erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js');
+wn.require('erpnext/buying/doctype/purchase_common/purchase_common.js');
+
+// On Load
+// --------
+cur_frm.cscript.onload = function(doc,dt,dn) {
+	var cp = wn.control_panel;
+
+	if(!doc.voucher_date) set_multiple(dt,dn,{voucher_date:get_today()});
+	if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});  
+
+	if(cp.country == 'India') {
+		unhide_field(['TDS','tds_applicable','tds_category','Get TDS','tax_code','rate','ded_amount','total_tds_on_voucher','tds_amount_on_advance']);
+	}
+	else {
+		hide_field(['TDS','tds_applicable','tds_category','Get TDS','tax_code','rate','ded_amount','total_tds_on_voucher','tds_amount_on_advance']);
+	}	
+	
+	if(doc.__islocal){
+		hide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email']);
+	}
+}
+
+
+//Onload post render
+//------------------------
+cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
+	var callback = function(doc, dt, dn) {
+		var callback1 = function(doc, dt, dn) {
+			if(doc.__islocal && doc.supplier) cur_frm.cscript.supplier(doc,dt,dn);
+		}
+	
+		// defined in purchase_common.js
+		cur_frm.cscript.update_item_details(doc, dt, dn, callback1);
+	}
+	cur_frm.cscript.dynamic_label(doc, dt, dn, callback);
+}
+
+// Refresh
+// --------
+cur_frm.cscript.refresh = function(doc, dt, dn) {
+	
+	cur_frm.clear_custom_buttons();
+
+	if (!cur_frm.cscript.is_onload) cur_frm.cscript.dynamic_label(doc, dt, dn);
+
+
+	// Show / Hide button
+	if(doc.docstatus==1 && doc.outstanding_amount > 0)
+		cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript.make_bank_voucher);
+	
+	if(doc.docstatus==1) { 
+		unhide_field(['Repair Outstanding Amt']); 
+		cur_frm.add_custom_button('View Ledger', cur_frm.cscript.view_ledger_entry);
+	} else hide_field(['Repair Outstanding Amt']);
+	
+	cur_frm.cscript.is_opening(doc, dt, dn);
+}
+
+
+//Supplier
+cur_frm.cscript.supplier = function(doc,dt,dn) {
+	var callback = function(r,rt) {
+			var doc = locals[cur_frm.doctype][cur_frm.docname];		
+			get_server_fields('get_credit_to','','',doc, dt, dn, 0, callback2);
+	}
+	
+	var callback2 = function(r,rt){
+		var doc = locals[cur_frm.doctype][cur_frm.docname];
+		var el = getchildren('Purchase Invoice Item',doc.name,'entries');
+		for(var i in el){
+			if(el[i].item_code && (!el[i].expense_head || !el[i].cost_center)){
+				args = {
+					item_code: el[i].item_code,
+					expense_head: el[i].expense_head,
+					cost_center: el[i].cost_center
+				};
+				get_server_fields('get_default_values', JSON.stringify(args), 'entries', doc, el[i].doctype, el[i].name, 1);
+			}
+		}
+		cur_frm.cscript.calc_amount(doc, 1);
+	}
+
+	if(doc.supplier) get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1,callback);
+	if(doc.supplier) unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']);
+}
+
+cur_frm.cscript.supplier_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {
+	if(doc.supplier) get_server_fields('get_supplier_address', JSON.stringify({supplier: doc.supplier, address: doc.supplier_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
+}
+
+
+
+cur_frm.fields_dict.supplier_address.on_new = function(dn) {
+	locals['Address'][dn].supplier = locals[cur_frm.doctype][cur_frm.docname].supplier;
+	locals['Address'][dn].supplier_name = locals[cur_frm.doctype][cur_frm.docname].supplier_name;
+}
+
+cur_frm.fields_dict.contact_person.on_new = function(dn) {
+	locals['Contact'][dn].supplier = locals[cur_frm.doctype][cur_frm.docname].supplier;
+	locals['Contact'][dn].supplier_name = locals[cur_frm.doctype][cur_frm.docname].supplier_name;
+}
+
+
+cur_frm.cscript.credit_to = function(doc,dt,dn) {
+
+	var callback = function(r,rt) {
+			var doc = locals[cur_frm.doctype][cur_frm.docname];		
+			if(doc.supplier) get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1);
+			if(doc.supplier) unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']);
+			cur_frm.refresh();
+	}
+
+	get_server_fields('get_cust','','',doc,dt,dn,1,callback);	
+}
+
+
+
+//Set expense_head and cost center on adding new row
+//----------------------------------------------
+cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){
+	
+	cl = getchildren('Purchase Invoice Item', doc.name, cur_frm.cscript.fname, doc.doctype);
+	acc = '';
+	cc = '';
+
+	for(var i = 0; i<cl.length; i++) {
+		if (cl[i].idx == 1){
+			acc = cl[i].expense_head;
+			cc = cl[i].cost_center;
+		}
+		else{
+			if (! cl[i].expense_head) { cl[i].expense_head = acc; refresh_field('expense_head', cl[i].name, 'entries');}
+			if (! cl[i].cost_center)	{cl[i].cost_center = cc; refresh_field('cost_center', cl[i].name, 'entries');}
+		}
+	}
+}
+
+cur_frm.cscript.is_opening = function(doc, dt, dn) {
+	hide_field('aging_date');
+	if (doc.is_opening == 'Yes') unhide_field('aging_date');
+}
+
+// Recalculate Button
+// -------------------
+cur_frm.cscript.recalculate = function(doc, cdt, cdn) {
+	cur_frm.cscript.calculate_tax(doc,cdt,cdn);
+	calc_total_advance(doc,cdt,cdn);
+}
+
+// Get Items Button
+// -----------------
+cur_frm.cscript.get_items = function(doc, dt, dn) {
+	var callback = function(r,rt) { 
+		unhide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile','contact_email']);				
+		refresh_many(['credit_to','supplier','supplier_address','contact_person','supplier_name', 'address_display', 'contact_display','contact_mobile', 'contact_email','entries', 'purchase_receipt_main', 'purchase_order_main', 'purchase_tax_details']);
+	}
+	$c_obj(make_doclist(dt,dn),'pull_details','',callback);
+}
+
+// ========== Purchase Invoice Items Table ============
+
+// Item Code
+// ----------
+cur_frm.cscript.item_code = function(doc,cdt,cdn){
+	var d = locals[cdt][cdn];
+	if(d.item_code){
+		get_server_fields('get_item_details',d.item_code,'entries',doc,cdt,cdn,1);
+	}
+}
+
+// Rate in Deduct Taxes (TDS)
+// --------------------------
+cur_frm.cscript.rate = function(doc,dt,dn) {
+	//This is done as Purchase tax detail and PV detail both contain the same fieldname 'rate'
+	if(dt != 'Purchase Taxes and Charges')	 cur_frm.cscript.calc_amount(doc, 2);
+}
+
+// Amount
+// -------
+cur_frm.cscript.ded_amount = function(doc,dt,dn) {calculate_outstanding(doc);}
+
+// Get TDS Button
+// ---------------
+cur_frm.cscript.get_tds = function(doc, dt, dn) {
+	var callback = function(r,rt) {
+		cur_frm.refresh();
+		refresh_field('ded_amount');
+		//cur_frm.cscript.calc_total(locals[dt][dn]);
+	}
+	$c_obj(make_doclist(dt,dn), 'get_tds', '', callback);
+}
+
+// ===================== Advance Allocation ==================
+cur_frm.cscript.allocated_amount = function(doc,cdt,cdn){
+	var d = locals[cdt][cdn];
+	if (d.allocated_amount && d.tds_amount){
+		d.tds_allocated=flt(d.tds_amount*(d.allocated_amount/d.advance_amount))
+		refresh_field('tds_allocated', d.name, 'advance_allocation_details');
+	}
+	tot_tds=0
+	el = getchildren('Purchase Invoice Advance',doc.name,'advance_allocation_details')
+	for(var i in el){
+		tot_tds += el[i].tds_allocated
+	}
+	doc.tds_amount_on_advance = tot_tds
+	refresh_field('tds_amount_on_advance');
+	
+	calc_total_advance(doc, cdt, cdn);
+}
+
+
+// Make Journal Voucher
+// --------------------
+cur_frm.cscript.make_bank_voucher = function() {
+	$c('accounts.get_default_bank_account', { company: cur_frm.doc.company }, function(r, rt) {
+		if(!r.exc) {
+			cur_frm.cscript.make_jv(cur_frm.doc, null, null, r.message);
+	}
+	});
+}
+
+
+/* ***************************** GET QUERY Functions *************************** */
+
+
+cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
+	return 'SELECT name,address_line1,city FROM tabAddress WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
+
+cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
+	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
+
+// Item Code
+// ----------
+cur_frm.fields_dict['entries'].grid.get_field("item_code").get_query = function(doc, cdt, cdn) {
+	return 'SELECT tabItem.name, tabItem.description FROM tabItem WHERE tabItem.is_purchase_item="Yes" AND (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` ="0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND tabItem.docstatus != 2 AND tabItem.%(key)s LIKE "%s" LIMIT 50'
+}
+
+// Credit To
+// ----------
+cur_frm.fields_dict['credit_to'].get_query = function(doc) {
+	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.is_pl_account="No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+}
+
+
+// Purchase Order
+// ---------------
+cur_frm.fields_dict['purchase_order_main'].get_query = function(doc) {
+	if (doc.supplier){
+		return 'SELECT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`docstatus` = 1 AND `tabPurchase Order`.supplier = "'+ doc.supplier +'" AND `tabPurchase Order`.`status` != "Stopped" AND ifnull(`tabPurchase Order`.`per_billed`,0) < 100 AND `tabPurchase Order`.`company` = "' + doc.company + '" AND `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50'
+	} else {
+		return 'SELECT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`docstatus` = 1 AND `tabPurchase Order`.`status` != "Stopped" AND ifnull(`tabPurchase Order`.`per_billed`, 0) < 100 AND `tabPurchase Order`.`company` = "' + doc.company + '" AND `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50'
+	}
+}
+
+// Purchase Receipt
+// -----------------
+cur_frm.fields_dict['purchase_receipt_main'].get_query = function(doc) {
+	if (doc.supplier){
+		return 'SELECT `tabPurchase Receipt`.`name` FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.`docstatus` = 1 AND `tabPurchase Receipt`.supplier = "'+ doc.supplier +'" AND `tabPurchase Receipt`.`status` != "Stopped" AND ifnull(`tabPurchase Receipt`.`per_billed`, 0) < 100 AND `tabPurchase Receipt`.`company` = "' + doc.company + '" AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.`name` DESC LIMIT 50'
+	} else {
+		return 'SELECT `tabPurchase Receipt`.`name` FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.`docstatus` = 1 AND `tabPurchase Receipt`.`status` != "Stopped" AND ifnull(`tabPurchase Receipt`.`per_billed`, 0) < 100 AND `tabPurchase Receipt`.`company` = "' + doc.company + '" AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.`name` DESC LIMIT 50'
+	}
+}
+
+// Get Print Heading
+cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
+	return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
+}
+
+
+// ================== Purchase Invoice Items Table ===================
+// Expense Head
+// -------------
+cur_frm.fields_dict['entries'].grid.get_field("expense_head").get_query = function(doc) {
+	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"';
+}
+cur_frm.cscript.expense_head = function(doc, cdt, cdn){
+	var d = locals[cdt][cdn];
+	if(d.idx == 1 && d.expense_head){
+		var cl = getchildren('Purchase Invoice Item', doc.name, 'entries', doc.doctype);
+		for(var i = 0; i < cl.length; i++){
+			if(!cl[i].expense_head) cl[i].expense_head = d.expense_head;
+		}
+	}
+	refresh_field('entries');
+}
+
+
+// Cost Center
+//-------------
+cur_frm.fields_dict['entries'].grid.get_field("cost_center").get_query = function(doc) {
+	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.docstatus != 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
+}
+
+cur_frm.cscript.cost_center = function(doc, cdt, cdn){
+	var d = locals[cdt][cdn];
+	if(d.idx == 1 && d.cost_center){
+		var cl = getchildren('Purchase Invoice Item', doc.name, 'entries', doc.doctype);
+		for(var i = 0; i < cl.length; i++){
+			if(!cl[i].cost_center) cl[i].cost_center = d.cost_center;
+		}
+	}
+	refresh_field('entries');
+}
+
+
+// TDS Account Head
+cur_frm.fields_dict['tax_code'].get_query = function(doc) {
+	return "SELECT `tabTDS Category Account`.account_head FROM `tabTDS Category Account` WHERE `tabTDS Category Account`.parent = '"+doc.tds_category+"' AND `tabTDS Category Account`.company='"+doc.company+"' AND `tabTDS Category Account`.account_head LIKE '%s' ORDER BY `tabTDS Category Account`.account_head DESC LIMIT 50";
+}
+
+cur_frm.cscript.tax_code = function(doc, dt, dn) {
+	get_server_fields('get_tds_rate','','',doc, dt, dn, 0);
+}
+
+/* ***************************** UTILITY FUNCTIONS ************************ */
+
+// Calculate Advance
+// ------------------
+var calc_total_advance = function(doc,cdt,cdn) {
+	var doc = locals[doc.doctype][doc.name];
+	var el = getchildren('Purchase Invoice Advance',doc.name,'advance_allocation_details')
+	var tot_tds=0;
+	var total_advance = 0;
+	for(var i in el) {
+		if (! el[i].allocated_amount == 0) {
+			total_advance += flt(el[i].allocated_amount);
+			tot_tds += flt(el[i].tds_allocated)
+		}
+	}
+	doc.total_amount_to_pay = flt(doc.grand_total) - flt(doc.ded_amount);
+	doc.tds_amount_on_advance = flt(tot_tds);
+	doc.total_advance = flt(total_advance);
+	doc.outstanding_amount = flt(doc.total_amount_to_pay) - flt(total_advance);
+	refresh_many(['total_advance','outstanding_amount','tds_amount_on_advance', 'total_amount_to_pay']);
+}
+
+// Make JV
+// --------
+cur_frm.cscript.make_jv = function(doc, dt, dn, bank_account) {
+	var jv = LocalDB.create('Journal Voucher');
+	jv = locals['Journal Voucher'][jv];
+	jv.voucher_type = 'Bank Voucher';
+	jv.remark = repl('Payment against voucher %(vn)s for %(rem)s', {vn:doc.name, rem:doc.remarks});
+	jv.total_debit = doc.outstanding_amount;
+	jv.total_credit = doc.outstanding_amount;
+	jv.fiscal_year = doc.fiscal_year;
+	jv.company = doc.company;
+	
+	// debit to creditor
+	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
+	d1.account = doc.credit_to;
+	d1.debit = doc.outstanding_amount;
+	d1.against_voucher = doc.name;
+	
+	// credit to bank
+	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
+	d1.account = bank_account;
+	d1.credit = doc.outstanding_amount;
+	
+	loaddoc('Journal Voucher', jv.name);
+}
+
+// ***************** Get project name *****************
+cur_frm.fields_dict['entries'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
+	return 'SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+}
+
+
+cur_frm.cscript.select_print_heading = function(doc,cdt,cdn){
+	if(doc.select_print_heading){
+		// print heading
+		cur_frm.pformat.print_heading = doc.select_print_heading;
+	}
+	else
+		cur_frm.pformat.print_heading = "Purchase Invoice";
+}
+
+/****************** Get Accounting Entry *****************/
+cur_frm.cscript.view_ledger_entry = function(){
+	var callback = function(report){
+		report.set_filter('GL Entry', 'Voucher No',cur_frm.doc.name);
+		report.dt.run();
+	}
+	loadreport('GL Entry','General Ledger', callback);
+}
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
new file mode 100644
index 0000000..9b3968d
--- /dev/null
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -0,0 +1,565 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+from utilities.transaction_base import TransactionBase
+
+class DocType(TransactionBase):
+	def __init__(self,d,dl):
+		self.doc, self.doclist = d, dl 
+		self.tname = 'Purchase Invoice Item'
+		self.fname = 'entries'
+
+	# Autoname
+	# ---------
+	def autoname(self):
+		self.doc.name = make_autoname(self.doc.naming_series+'.####')
+
+
+# ************************** Trigger Functions ****************************
+
+	# Credit To
+	# ----------
+	def get_credit_to(self):
+		acc_head = sql("select name, credit_days from `tabAccount` where (name = %s or (master_name = %s and master_type = 'supplier')) and docstatus != 2", (cstr(self.doc.supplier) + " - " + self.get_company_abbr(),self.doc.supplier))		
+		#supp_detail = sql("select supplier_name,address from `tabSupplier` where name = %s", self.doc.supplier, as_dict =1)
+		#ret = {
+		#	'supplier_name' : supp_detail and supp_detail[0]['supplier_name'] or '',
+		#	'supplier_address': supp_detail and supp_detail[0]['address'] or ''
+		#}
+		ret = {}
+		if acc_head and acc_head[0][0]:
+			ret['credit_to'] = acc_head[0][0]
+			if not self.doc.due_date:
+				ret['due_date'] = add_days(cstr(self.doc.posting_date), acc_head and cint(acc_head[0][1]) or 0)
+		elif not acc_head:
+			msgprint("%s does not have an Account Head in %s. You must first create it from the Supplier Master" % (self.doc.supplier, self.doc.company))
+		return ret
+		
+	def get_cust(self):
+		ret = {}
+		if self.doc.credit_to:			
+			ret['supplier'] = get_value('Account',self.doc.credit_to,'master_name')
+			
+		return ret
+
+
+	# Get Default Cost Center and Expense Head from Item Master
+	# ----------------------------------------------------------
+	def get_default_values(self,args):
+		import json
+		args = json.loads(args)
+		ret = {}
+		if sql("select name from `tabItem` where name = '%s'" % args['item_code']):
+			if not args['expense_head'] or args['expense_head'] == 'undefined':
+				expense_head = sql("select name from `tabAccount` where account_name in (select purchase_account from `tabItem` where name = '%s')" % args['item_code'])
+				ret['expense_head'] = expense_head and expense_head[0][0] or ''
+			if not args['cost_center'] or args['cost_center'] == 'undefined':
+				cost_center = sql("select cost_center from `tabItem` where name = '%s'" % args['item_code'])
+				ret['cost_center'] = cost_center and cost_center[0][0] or ''
+		return ret
+		 
+		
+	# Get Items based on PO or PR
+	# ----------------------------
+	def pull_details(self):
+		if self.doc.purchase_receipt_main:
+			self.validate_duplicate_docname('purchase_receipt')
+			self.doclist = get_obj('DocType Mapper', 'Purchase Receipt-Purchase Invoice').dt_map('Purchase Receipt', 'Purchase Invoice', self.doc.purchase_receipt_main, self.doc, self.doclist, "[['Purchase Receipt', 'Purchase Invoice'], ['Purchase Receipt Item', 'Purchase Invoice Item'], ['Purchase Taxes and Charges','Purchase Taxes and Charges']]")
+
+		elif self.doc.purchase_order_main:
+			self.validate_duplicate_docname('purchase_order')
+			self.doclist = get_obj('DocType Mapper', 'Purchase Order-Purchase Invoice').dt_map('Purchase Order', 'Purchase Invoice', self.doc.purchase_order_main, self.doc, self.doclist, "[['Purchase Order', 'Purchase Invoice'],['Purchase Order Item', 'Purchase Invoice Item'], ['Purchase Taxes and Charges','Purchase Taxes and Charges']]")
+		
+		ret = self.get_credit_to()
+
+		if ret.has_key('credit_to'):
+			self.doc.credit_to = ret['credit_to']
+			
+
+	# Get Item Details
+	# -----------------		
+	def get_item_details(self, arg=None):
+		if arg:
+			return self.get_pv_details(arg)
+		else:
+			for doc in self.doclist:
+				if doc.fields.get('item_code'):
+					ret = self.get_pv_details(doc.item_code)
+					for r in ret:
+						if not doc.fields.get(r):
+							doc.fields[r] = ret[r]
+
+
+	def get_pv_details(self, arg):
+		import json
+		item_det = sql("select item_name, brand, description, item_group,purchase_account,cost_center, last_purchase_rate from tabItem where name=%s",arg,as_dict=1)
+		lpr = item_det and flt(item_det[0]['last_purchase_rate']) or 0
+		import_lpr = lpr / flt(self.doc.conversion_rate) or 1
+
+		tax = sql("select tax_type, tax_rate from `tabItem Tax` where parent = %s" , arg)
+		t = {}
+		for x in tax: t[x[0]] = flt(x[1])
+		ret = {
+			'item_name' : item_det and item_det[0]['item_name'] or '',
+			'brand' : item_det and item_det[0]['brand'] or '',
+			'description' : item_det and item_det[0]['description'] or '',
+			'item_group'	: item_det and item_det[0]['item_group'] or '',
+			'rate' : lpr,
+			'purchase_ref_rate' : lpr,
+			'import_ref_rate' : import_lpr,
+			'import_rate' : import_lpr,
+			'qty' : 0.00,
+			'amount' : 0.00,
+			'expense_head' : item_det and item_det[0]['purchase_account'] or '',
+			'cost_center' : item_det and item_det[0]['cost_center'] or '',
+			'item_tax_rate'			: json.dumps(t)
+		}
+
+		return ret
+
+
+		
+	# Advance Allocation
+	# -------------------
+	def get_advances(self):
+		get_obj('GL Control').get_advances( self, self.doc.credit_to, 'Purchase Invoice Advance','advance_allocation_details','debit')
+		
+		
+	# ============= OTHER CHARGES ====================
+	
+	# Get Tax rate if account type is TAX
+	# ------------------------------------
+	def get_rate(self,arg):
+		return get_obj('Purchase Common').get_rate(arg,self)
+
+	# Get Purchase Taxes and Charges Master
+	# -----------------------------------------------------------
+	def get_purchase_tax_details(self):
+		return get_obj('Purchase Common').get_purchase_tax_details(self)
+
+
+	def get_rate1(self,acc):
+		rate = sql("select tax_rate from `tabAccount` where name='%s'"%(acc))
+		ret={'add_tax_rate' :rate and flt(rate[0][0]) or 0 }
+		return ret
+
+
+
+# *************************** Server Utility Functions *****************************
+	# Get Company abbr
+	# -----------------
+	def get_company_abbr(self):
+		return sql("select abbr from tabCompany where name=%s", self.doc.company)[0][0]
+
+	# Check whether PO or PR is already fetched
+	# ------------------------------------------
+	def validate_duplicate_docname(self,doctype):
+		for d in getlist(self.doclist, 'entries'): 
+			if doctype == 'purchase_receipt' and cstr(self.doc.purchase_receipt_main) == cstr(d.purchase_receipt):
+				msgprint(cstr(self.doc.purchase_receipt_main) + " purchase receipt details have already been pulled.")
+				raise Exception , " Validation Error. "
+
+			if doctype == 'purchase_order' and cstr(self.doc.purchase_order_main) == cstr(d.purchase_order) and not d.purchase_receipt:
+				msgprint(cstr(self.doc.purchase_order_main) + " purchase order details have already been pulled.")
+				raise Exception , " Validation Error. "
+
+		
+# **************************** VALIDATE ********************************
+
+	# Check for Item.is_Purchase_item = 'Yes' and Item is active
+	# ------------------------------------------------------------------
+	def check_active_purchase_items(self):
+		for d in getlist(self.doclist, 'entries'):
+			if d.item_code:		# extra condn coz item_code is not mandatory in PV
+				valid_item = sql("select docstatus,is_purchase_item from tabItem where name = %s",d.item_code)
+				if valid_item[0][0] == 2:
+					msgprint("Item : '%s' is Inactive, you can restore it from Trash" %(d.item_code))
+					raise Exception
+				if not valid_item[0][1] == 'Yes':
+					msgprint("Item : '%s' is not Purchase Item"%(d.item_code))
+					raise Exception
+						
+	# Check Conversion Rate
+	# ----------------------
+	def check_conversion_rate(self):
+		default_currency = TransactionBase().get_company_currency(self.doc.company)		
+		if not default_currency:
+			msgprint('Message: Please enter default currency in Company Master')
+			raise Exception
+		if (self.doc.currency == default_currency and flt(self.doc.conversion_rate) != 1.00) or not self.doc.conversion_rate or (self.doc.currency != default_currency and flt(self.doc.conversion_rate) == 1.00):
+			msgprint("Message: Please Enter Appropriate Conversion Rate.")
+			raise Exception				
+
+	# 1. Check whether bill is already booked against this bill no. or not
+	# 2. Add Remarks
+	# ---------------------------------------------------------------------
+	def validate_bill_no(self):
+		if self.doc.bill_no and self.doc.bill_no.lower().strip()	not in ['na', 'not applicable', 'none']:
+			b_no = sql("select bill_no, name, ifnull(is_opening,'') from `tabPurchase Invoice` where bill_no = '%s' and credit_to = '%s' and docstatus = 1 and name != '%s' " % (self.doc.bill_no, self.doc.credit_to, self.doc.name))
+			if b_no and cstr(b_no[0][2]) == cstr(self.doc.is_opening):
+				msgprint("Please check you have already booked expense against Bill No. %s in Purchase Invoice %s" % (cstr(b_no[0][0]), cstr(b_no[0][1])))
+				raise Exception , "Validation Error"
+			if not self.doc.remarks:
+				self.doc.remarks = (self.doc.remarks or '') + "\n" + ("Against Bill %s dated %s" % (self.doc.bill_no, formatdate(self.doc.bill_date)))
+				if self.doc.ded_amount:
+					self.doc.remarks = (self.doc.remarks or '') + "\n" + ("Grand Total: %s, Tax Deduction Amount: %s" %(self.doc.grand_total, self.doc.ded_amount))
+		else:
+			if not self.doc.remarks:
+				self.doc.remarks = "No Remarks"
+					
+	# Validate Bill No Date
+	# ---------------------
+	def validate_bill_no_date(self):
+		if self.doc.bill_no and not self.doc.bill_date and self.doc.bill_no.lower().strip() not in ['na', 'not applicable', 'none']:
+			msgprint("Please enter Bill Date")
+			raise Exception					
+
+
+ 
+	# Clear Advances
+	# ---------------
+	def clear_advances(self):
+		get_obj('GL Control').clear_advances( self, 'Purchase Invoice Advance','advance_allocation_details')
+
+
+	# 1. Credit To Account Exists
+	# 2. Is a Credit Account
+	# 3. Is not a PL Account
+	# ----------------------------
+	def validate_credit_acc(self):
+		acc = sql("select debit_or_credit, is_pl_account from tabAccount where name = '%s'" % self.doc.credit_to)
+		if not acc:
+			msgprint("Account: "+ self.doc.credit_to + "does not exist")
+			raise Exception
+		elif acc[0][0] and acc[0][0] != 'Credit':
+			msgprint("Account: "+ self.doc.credit_to + "is not a credit account")
+			raise Exception
+		elif acc[0][1] and acc[0][1] != 'No':
+			msgprint("Account: "+ self.doc.credit_to + "is a pl account")
+			raise Exception
+	
+	# Validate Acc Head of Supplier and Credit To Account entered
+	# ------------------------------------------------------------
+	def check_for_acc_head_of_supplier(self): 
+		if self.doc.supplier and self.doc.credit_to:
+			acc_head = sql("select master_name from `tabAccount` where name = %s", self.doc.credit_to)
+			
+			if (acc_head and cstr(acc_head[0][0]) != cstr(self.doc.supplier)) or (not acc_head and (self.doc.credit_to != cstr(self.doc.supplier) + " - " + self.get_company_abbr())):
+				msgprint("Credit To: %s do not match with Supplier: %s for Company: %s.\n If both correctly entered, please select Master Type and Master Name in account master." %(self.doc.credit_to,self.doc.supplier,self.doc.company), raise_exception=1)
+				
+	# Check for Stopped PO
+	# ---------------------
+	def check_for_stopped_status(self):
+		check_list = []
+		for d in getlist(self.doclist,'entries'):
+			if d.purchase_order and not d.purchase_order in check_list and not d.purchase_receipt:
+				check_list.append(d.purhcase_order)
+				stopped = sql("select name from `tabPurchase Order` where status = 'Stopped' and name = '%s'" % d.purchase_order)
+				if stopped:
+					msgprint("One cannot do any transaction against 'Purchase Order' : %s, it's status is 'Stopped'" % (d.purhcase_order))
+					raise Exception
+					
+	# Validate Supplier
+	# -----------------
+	def validate_supplier(self, d):
+		supplier = ''
+		if d.purchase_order and not d.purchase_order in self.po_list:
+			supplier = sql("select supplier from `tabPurchase Order` where name = '%s'" % d.purchase_order)[0][0]
+			doctype = 'purchase order'
+			doctype_no = cstr(d.purchase_order)
+			if supplier and not cstr(self.doc.supplier) == cstr(supplier):
+				msgprint("Supplier name %s do not match with supplier name	of %s %s." %(self.doc.supplier,doctype,doctype_no))
+				raise Exception , " Validation Error "
+
+		if d.purchase_receipt and not d.purchase_receipt in self.pr_list:
+			supplier = sql("select supplier from `tabPurchase Receipt` where name = '%s'" % d.purchase_receipt)[0][0]
+			doctype = 'purchase receipt'
+			doctype_no = cstr(d.purchase_receipt)
+			if supplier and not cstr(self.doc.supplier) == cstr(supplier):
+				msgprint("Supplier name %s do not match with supplier name	of %s %s." %(self.doc.supplier,doctype,doctype_no))
+				raise Exception , " Validation Error "
+
+	# Validate values with reference document
+	#----------------------------------------
+	def validate_reference_value(self):
+		get_obj('DocType Mapper', 'Purchase Order-Purchase Invoice', with_children = 1).validate_reference_value(self, self.doc.name)
+
+				
+	# Validate PO and PR
+	# -------------------
+	def validate_po_pr(self, d):
+		# check po / pr for qty and rates and currency and conversion rate
+
+		# always import_rate must be equal to import_rate of purchase order
+		if d.purchase_order and not d.purchase_order in self.po_list:
+			# currency
+			currency = cstr(sql("select currency from `tabPurchase Order` where name = '%s'" % d.purchase_order)[0][0])
+			if not cstr(currency) == cstr(self.doc.currency):
+				msgprint("Purchase Order: " + cstr(d.purchase_order) + " currency : " + cstr(currency) + " does not match with currency of current document.")
+				raise Exception
+			# import_rate
+			rate = flt(sql('select import_rate from `tabPurchase Order Item` where item_code=%s and parent=%s and name = %s', (d.item_code, d.purchase_order, d.po_detail))[0][0])
+			if abs(rate - flt(d.import_rate)) > 1:
+				msgprint("Import Rate for %s in the Purchase Order is %s. Rate must be same as Purchase Order Rate" % (d.item_code,rate))
+				raise Exception
+									
+		if d.purchase_receipt and not d.purchase_receipt in self.pr_list:
+			# currency , conversion_rate
+			data = sql("select currency, conversion_rate from `tabPurchase Receipt` where name = '%s'" % d.purchase_receipt, as_dict = 1)
+			if not cstr(data[0]['currency']) == cstr(self.doc.currency):
+				msgprint("Purchase Receipt: " + cstr(d.purchase_receipt) + " currency : " + cstr(data[0]['currency']) + " does not match with currency of current document.")
+				raise Exception
+			if not flt(data[0]['conversion_rate']) == flt(self.doc.conversion_rate):
+				msgprint("Purchase Receipt: " + cstr(d.purchase_receipt) + " conversion_rate : " + cstr(data[0]['conversion_rate']) + " does not match with conversion_rate of current document.")
+				raise Exception
+					
+	# Build tds table if applicable
+	#------------------------------
+	def get_tds(self):
+		if cstr(self.doc.is_opening) != 'Yes':
+			if not self.doc.credit_to:
+				msgprint("Please Enter Credit To account first")
+				raise Exception
+			else:
+				tds_applicable = sql("select tds_applicable from tabAccount where name = '%s'" % self.doc.credit_to)
+				if tds_applicable and cstr(tds_applicable[0][0]) == 'Yes':
+					if not self.doc.tds_applicable:
+						msgprint("Please enter whether TDS Applicable or not")
+						raise Exception
+					if self.doc.tds_applicable == 'Yes':
+						if not self.doc.tds_category:
+							msgprint("Please select TDS Category")
+							raise Exception
+						else:
+							get_obj('TDS Control').get_tds_amount(self)
+							self.doc.total_tds_on_voucher = self.doc.ded_amount
+							self.doc.total_amount_to_pay=flt(self.doc.grand_total)-flt(self.doc.ded_amount)-flt(self.doc.other_tax_deducted)
+					elif self.doc.tds_applicable == 'No':
+						self.doc.tds_category = ''
+						self.doc.tax_code = ''
+						self.doc.rate = 0
+						self.doc.ded_amount = 0
+						self.doc.total_tds_on_voucher = 0
+
+	# get tds rate
+	# -------------
+	def get_tds_rate(self):
+		return {'rate' : flt(get_value('Account', self.doc.tax_code, 'tax_rate'))}
+
+	# set aging date
+	#-------------------
+	def set_aging_date(self):
+		if self.doc.is_opening != 'Yes':
+			self.doc.aging_date = self.doc.posting_date
+		elif not self.doc.aging_date:
+			msgprint("Aging Date is mandatory for opening entry")
+			raise Exception
+			
+
+	# Set against account for debit to account
+	#------------------------------------------
+	def set_against_expense_account(self):
+		against_acc = []
+		for d in getlist(self.doclist, 'entries'):
+			if d.expense_account not in against_acc:
+				against_acc.append(d.expense_account)
+		self.doc.against_expense_account = ','.join(against_acc)
+
+	#check in manage account if purchase order required or not.
+	# ====================================================================================
+	def po_required(self):
+		res = sql("select value from `tabSingles` where doctype = 'Global Defaults' and field = 'po_required'")
+		if res and res[0][0] == 'Yes':
+			 for d in getlist(self.doclist,'entries'):
+				 if not d.purchase_order:
+					 msgprint("Purchse Order No. required against item %s"%d.item_code)
+					 raise Exception
+
+	#check in manage account if purchase receipt required or not.
+	# ====================================================================================
+	def pr_required(self):
+		res = sql("select value from `tabSingles` where doctype = 'Global Defaults' and field = 'pr_required'")
+		if res and res[0][0] == 'Yes':
+			 for d in getlist(self.doclist,'entries'):
+				 if not d.purchase_receipt:
+					 msgprint("Purchase Receipt No. required against item %s"%d.item_code)
+					 raise Exception
+
+	# VALIDATE
+	# ====================================================================================
+	def validate(self):
+		self.po_required()
+		self.pr_required()
+		self.check_active_purchase_items()
+		self.check_conversion_rate()
+		self.validate_bill_no_date()
+		self.validate_bill_no()
+		self.validate_reference_value()
+		self.clear_advances()
+		self.validate_credit_acc()
+		self.check_for_acc_head_of_supplier()
+		self.check_for_stopped_status()
+
+		self.po_list, self.pr_list = [], []
+		for d in getlist(self.doclist, 'entries'):
+			self.validate_supplier(d)
+			self.validate_po_pr(d)
+			if not d.purchase_order in self.po_list:
+				self.po_list.append(d.purchase_order)
+			if not d.purhcase_receipt in self.pr_list:
+				self.pr_list.append(d.purchase_receipt)
+		# tds
+		get_obj('TDS Control').validate_first_entry(self)
+		if not flt(self.doc.ded_amount):
+			self.get_tds()
+			self.doc.save()
+
+		if not self.doc.is_opening:
+			self.doc.is_opening = 'No'
+
+		self.set_aging_date()
+
+		#set against account for credit to
+		self.set_against_expense_account()
+
+		#FY validation
+		get_obj('Sales Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Posting Date')
+		
+		#get Purchase Common Obj
+		pc_obj = get_obj(dt='Purchase Common')
+		
+		 # get total in words
+		self.doc.in_words = pc_obj.get_total_in_words('Rs', self.doc.grand_total)
+		self.doc.in_words_import = pc_obj.get_total_in_words(self.doc.currency, self.doc.grand_total_import)
+# ***************************** SUBMIT *****************************
+	# Check Ref Document docstatus
+	# -----------------------------
+	def check_prev_docstatus(self):
+		for d in getlist(self.doclist,'entries'):
+			if d.purchase_order:
+				submitted = sql("select name from `tabPurchase Order` where docstatus = 1 and name = '%s'" % d.purchase_order)
+				if not submitted:
+					msgprint("Purchase Order : "+ cstr(d.purchase_order) +" is not submitted")
+					raise Exception , "Validation Error."
+			if d.purchase_receipt:
+				submitted = sql("select name from `tabPurchase Receipt` where docstatus = 1 and name = '%s'" % d.purchase_receipt)
+				if not submitted:
+					msgprint("Purchase Receipt : "+ cstr(d.purchase_receipt) +" is not submitted")
+					raise Exception , "Validation Error."
+					
+					
+	#--------------------------------------------------------------------
+	def update_against_document_in_jv(self):
+		"""
+			Links invoice and advance voucher:
+				1. cancel advance voucher
+				2. split into multiple rows if partially adjusted, assign against voucher
+				3. submit advance voucher
+		"""
+		
+		lst = []
+		for d in getlist(self.doclist, 'advance_allocation_details'):
+			if flt(d.allocated_amount) > 0:
+				args = {
+					'voucher_no' : d.journal_voucher, 
+					'voucher_detail_no' : d.jv_detail_no, 
+					'against_voucher_type' : 'Purchase Invoice', 
+					'against_voucher'  : self.doc.name,
+					'account' : self.doc.credit_to, 
+					'is_advance' : 'Yes', 
+					'dr_or_cr' : 'debit', 
+					'unadjusted_amt' : flt(d.advance_amount),
+					'allocated_amt' : flt(d.allocated_amount)
+				}
+				lst.append(args)
+		
+		if lst:
+			get_obj('GL Control').reconcile_against_document(lst)
+
+	# On Submit
+	#--------------------------------------------------------------------
+	def on_submit(self):
+		self.check_prev_docstatus()
+		
+		# Check for Approving Authority
+		get_obj('Authorization Control').validate_approving_authority(self.doc.doctype,self.doc.company, self.doc.grand_total)
+		
+		
+		# this sequence because outstanding may get -negative
+		get_obj(dt='GL Control').make_gl_entries(self.doc, self.doclist)
+		
+		self.update_against_document_in_jv()
+		
+		get_obj(dt = 'Purchase Common').update_prevdoc_detail(self, is_submit = 1)
+
+
+
+# ********************************* CANCEL *********************************
+	# Check Next Document's docstatus
+	# --------------------------------
+	def check_next_docstatus(self):
+		submit_jv = sql("select t1.name from `tabJournal Voucher` t1,`tabJournal Voucher Detail` t2 where t1.name = t2.parent and t2.against_voucher = '%s' and t1.docstatus = 1" % (self.doc.name))
+		if submit_jv:
+			msgprint("Journal Voucher : " + cstr(submit_jv[0][0]) + " has been created against " + cstr(self.doc.doctype) + ". So " + cstr(self.doc.doctype) + " cannot be Cancelled.")
+			raise Exception, "Validation Error."
+		
+	# On Cancel
+	# ----------
+	def on_cancel(self):
+		self.check_next_docstatus()
+
+		# Check whether tds payment voucher has been created against this voucher
+		self.check_tds_payment_voucher()
+		
+		get_obj(dt='GL Control').make_gl_entries(self.doc, self.doclist, cancel=1)
+		get_obj(dt = 'Purchase Common').update_prevdoc_detail(self, is_submit = 0)
+
+
+	# Check whether tds payment voucher has been created against this voucher
+	#---------------------------------------------------------------------------
+	def check_tds_payment_voucher(self):
+		tdsp =	sql("select parent from `tabTDS Payment Detail` where voucher_no = '%s' and docstatus = 1 and parent not like 'old%'")
+		if tdsp:
+			msgprint("TDS Payment voucher '%s' has been made against this voucher. Please cancel the payment voucher to proceed." % (tdsp and tdsp[0][0] or ''))
+			raise Exception
+
+	# on update
+	def on_update(self):
+		pass
+		
+########################################################################
+# Repair Outstanding
+#######################################################################
+	def repair_pv_outstanding(self):
+		get_obj(dt = 'GL Control').repair_voucher_outstanding(self)
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.txt b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.txt
new file mode 100755
index 0000000..bc59d22
--- /dev/null
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.txt
@@ -0,0 +1,1144 @@
+# DocType, Purchase Invoice
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:45',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:45:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1330345793',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'is_submittable': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'read_only_onload': 1,
+		'search_fields': u'posting_date, credit_to, fiscal_year, bill_no, grand_total, outstanding_amount',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'subject': u'From %(supplier_name)s worth %(grand_total)s due on %(due_date)s | %(outstanding_amount)s outstanding',
+		'version': 521
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Invoice',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Purchase Invoice',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Purchase Invoice
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Invoice'
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts User',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase User'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase User',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'match': u'supplier',
+		'permlevel': 0,
+		'role': u'Supplier'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 0,
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'To manage multiple series please go to Setup > Manage Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Series',
+		'no_copy': 1,
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'BILL\nBILLJ',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'description': u'The account to which you will pay (have paid) the money to.',
+		'doctype': u'DocField',
+		'fieldname': u'credit_to',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Credit To',
+		'oldfieldname': u'credit_to',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Link',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Invoice',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'supplier',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'label': u'Supplier',
+		'oldfieldname': u'supplier',
+		'oldfieldtype': u'Link',
+		'options': u'Supplier',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'supplier_address',
+		'fieldtype': u'Link',
+		'label': u'Supplier Address',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_person',
+		'fieldtype': u'Link',
+		'label': u'Contact Person',
+		'options': u'Contact',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'supplier_name',
+		'fieldtype': u'Text',
+		'label': u'Name',
+		'oldfieldname': u'supplier_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'address_display',
+		'fieldtype': u'Small Text',
+		'label': u'Address',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_display',
+		'fieldtype': u'Small Text',
+		'label': u'Contact',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_mobile',
+		'fieldtype': u'Text',
+		'label': u'Mobile No',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_email',
+		'fieldtype': u'Text',
+		'label': u'Contact Email',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'reqd': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'default': u'Today',
+		'description': u'The date at which current entry will get or has actually executed.',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Posting Date',
+		'no_copy': 0,
+		'oldfieldname': u'posting_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'due_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Due Date',
+		'no_copy': 0,
+		'oldfieldname': u'due_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 0,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'description': u'If not applicable please enter: NA',
+		'doctype': u'DocField',
+		'fieldname': u'bill_no',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Bill No',
+		'oldfieldname': u'bill_no',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'bill_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Bill Date',
+		'oldfieldname': u'bill_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'mode_of_payment',
+		'fieldtype': u'Select',
+		'label': u'Mode of Payment',
+		'oldfieldname': u'mode_of_payment',
+		'oldfieldtype': u'Select',
+		'options': u'link:Mode of Payment',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'items',
+		'fieldtype': u'Section Break',
+		'label': u'Items',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'currency',
+		'fieldtype': u'Select',
+		'label': u'Bill Currency',
+		'oldfieldname': u'currency',
+		'oldfieldtype': u'Select',
+		'options': u'link:Currency',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'1',
+		'description': u"The rate at which Bill Currency is converted into company's base currency",
+		'doctype': u'DocField',
+		'fieldname': u'conversion_rate',
+		'fieldtype': u'Currency',
+		'label': u'Bill Conversion Rate',
+		'oldfieldname': u'conversion_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Select Items from Purchase Order',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_order_main',
+		'fieldtype': u'Link',
+		'label': u'Purchase Order',
+		'oldfieldname': u'purchase_order_main',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Order',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Select Items from Purchase Receipt',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_receipt_main',
+		'fieldtype': u'Link',
+		'label': u'Purchase Receipt',
+		'oldfieldname': u'purchase_receipt_main',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Receipt',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'get_items',
+		'fieldtype': u'Button',
+		'label': u'Get Items',
+		'oldfieldtype': u'Button',
+		'options': u'pull_details',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'entries',
+		'fieldtype': u'Table',
+		'label': u'Entries',
+		'oldfieldname': u'entries',
+		'oldfieldtype': u'Table',
+		'options': u'Purchase Invoice Item',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'recalculate',
+		'fieldtype': u'Button',
+		'label': u'Recalculate',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'description': u'Will be calculated automatically when you enter the details',
+		'doctype': u'DocField',
+		'fieldname': u'net_total',
+		'fieldtype': u'Currency',
+		'label': u'Net Total',
+		'oldfieldname': u'net_total',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Add / Edit Taxes and Charges',
+		'doctype': u'DocField',
+		'fieldname': u'taxes',
+		'fieldtype': u'Section Break',
+		'label': u'Taxes',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'purchase_other_charges',
+		'fieldtype': u'Link',
+		'label': u'Purchase Taxes and Charges',
+		'oldfieldname': u'purchase_other_charges',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Taxes and Charges Master',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'get_tax_detail',
+		'fieldtype': u'Button',
+		'label': u'Get Tax Detail',
+		'oldfieldtype': u'Button',
+		'options': u'get_purchase_tax_details',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'purchase_tax_details',
+		'fieldtype': u'Table',
+		'label': u'Purchase Taxes and Charges',
+		'oldfieldname': u'purchase_tax_details',
+		'oldfieldtype': u'Table',
+		'options': u'Purchase Taxes and Charges',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'calculate_tax',
+		'fieldtype': u'Button',
+		'label': u'Calculate Tax',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tax_calculation',
+		'fieldtype': u'HTML',
+		'label': u'Tax Calculation',
+		'oldfieldtype': u'HTML',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total_tax',
+		'fieldtype': u'Currency',
+		'label': u'Total Tax',
+		'oldfieldname': u'total_tax',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'more_info',
+		'fieldtype': u'Section Break',
+		'label': u'More Info',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'No',
+		'doctype': u'DocField',
+		'fieldname': u'is_opening',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Is Opening',
+		'oldfieldname': u'is_opening',
+		'oldfieldtype': u'Select',
+		'options': u'No\nYes',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'aging_date',
+		'fieldtype': u'Date',
+		'label': u'Aging Date',
+		'oldfieldname': u'aging_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'select_print_heading',
+		'fieldtype': u'Link',
+		'label': u'Select Print Heading',
+		'no_copy': 1,
+		'oldfieldname': u'select_print_heading',
+		'oldfieldtype': u'Link',
+		'options': u'Print Heading',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break4',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'cancel_reason',
+		'fieldtype': u'Data',
+		'label': u'Cancel Reason',
+		'no_copy': 1,
+		'oldfieldname': u'cancel_reason',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Small Text',
+		'label': u'Remarks',
+		'no_copy': 1,
+		'oldfieldname': u'remarks',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'advances',
+		'fieldtype': u'Section Break',
+		'label': u'Advances',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'get_advances_paid',
+		'fieldtype': u'Button',
+		'label': u'Get Advances Paid',
+		'oldfieldtype': u'Button',
+		'options': u'get_advances',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'advance_allocation_details',
+		'fieldtype': u'Table',
+		'label': u'Purchase Invoice Advances',
+		'no_copy': 1,
+		'oldfieldname': u'advance_allocation_details',
+		'oldfieldtype': u'Table',
+		'options': u'Purchase Invoice Advance',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tds',
+		'fieldtype': u'Section Break',
+		'label': u'TDS',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break5',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tds_applicable',
+		'fieldtype': u'Select',
+		'label': u'TDS Applicable',
+		'oldfieldname': u'tds_applicable',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tds_category',
+		'fieldtype': u'Select',
+		'label': u'TDS Category',
+		'oldfieldname': u'tds_category',
+		'oldfieldtype': u'Select',
+		'options': u'link:TDS Category',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'get_tds',
+		'fieldtype': u'Button',
+		'label': u'Get TDS',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break6',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tax_code',
+		'fieldtype': u'Link',
+		'label': u'TDS Account Head',
+		'oldfieldname': u'tax_code',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'ded_amount',
+		'fieldtype': u'Currency',
+		'label': u'TDS Amount',
+		'oldfieldname': u'ded_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'totals',
+		'fieldtype': u'Section Break',
+		'label': u'Totals',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break7',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'other_charges_added',
+		'fieldtype': u'Currency',
+		'label': u'Taxes and Charges Added',
+		'oldfieldname': u'other_charges_added',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'other_charges_deducted',
+		'fieldtype': u'Currency',
+		'label': u'Taxes and Charges Deducted',
+		'oldfieldname': u'other_charges_deducted',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total_tds_on_voucher',
+		'fieldtype': u'Currency',
+		'label': u'Total TDS On Voucher',
+		'no_copy': 1,
+		'oldfieldname': u'total_tds_on_voucher',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'tds_amount_on_advance',
+		'fieldtype': u'Currency',
+		'label': u'TDS Amount On Advance',
+		'no_copy': 1,
+		'oldfieldname': u'tds_amount_on_advance',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total_advance',
+		'fieldtype': u'Currency',
+		'label': u'Total Advance (Incl. TDS)',
+		'no_copy': 1,
+		'oldfieldname': u'total_advance',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total_amount_to_pay',
+		'fieldtype': u'Currency',
+		'hidden': 0,
+		'label': u'Total Amount To Pay',
+		'no_copy': 1,
+		'oldfieldname': u'total_amount_to_pay',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'outstanding_amount',
+		'fieldtype': u'Currency',
+		'in_filter': 1,
+		'label': u'Outstanding Amount',
+		'no_copy': 1,
+		'oldfieldname': u'outstanding_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break8',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'grand_total',
+		'fieldtype': u'Currency',
+		'label': u'Grand Total',
+		'oldfieldname': u'grand_total',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'In Words will be visible once you save the Purchase Invoice.',
+		'doctype': u'DocField',
+		'fieldname': u'in_words',
+		'fieldtype': u'Data',
+		'label': u'In Words',
+		'oldfieldname': u'in_words',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'net_total_import',
+		'fieldtype': u'Currency',
+		'label': u'Net Total (Import)',
+		'oldfieldname': u'net_total_import',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'other_charges_added_import',
+		'fieldtype': u'Currency',
+		'label': u'Taxes and Charges Added (Import)',
+		'oldfieldname': u'other_charges_added_import',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'other_charges_deducted_import',
+		'fieldtype': u'Currency',
+		'label': u'Taxes and Charges Deducted (Import)',
+		'oldfieldname': u'other_charges_deducted_import',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'grand_total_import',
+		'fieldtype': u'Currency',
+		'label': u'Grand Total (Import)',
+		'oldfieldname': u'grand_total_import',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'in_words_import',
+		'fieldtype': u'Data',
+		'label': u'In Words (Import)',
+		'oldfieldname': u'in_words_import',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'actions',
+		'fieldtype': u'Section Break',
+		'label': u'Actions',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'repair_outstanding_amt',
+		'fieldtype': u'Button',
+		'label': u'Repair Outstanding Amt',
+		'oldfieldtype': u'Button',
+		'options': u'repair_pv_outstanding',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'against_expense_account',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Against Expense Account',
+		'no_copy': 1,
+		'oldfieldname': u'against_expense_account',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 0
+	}
+]
diff --git a/erpnext/accounts/doctype/purchase_tax_detail/__init__.py b/erpnext/accounts/doctype/purchase_invoice_advance/__init__.py
similarity index 100%
copy from erpnext/accounts/doctype/purchase_tax_detail/__init__.py
copy to erpnext/accounts/doctype/purchase_invoice_advance/__init__.py
diff --git a/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.txt b/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.txt
new file mode 100644
index 0000000..586ae1c
--- /dev/null
+++ b/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.txt
@@ -0,0 +1,134 @@
+# DocType, Purchase Invoice Advance
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:40',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:40',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 20
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Invoice Advance',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Purchase Invoice Advance
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Invoice Advance'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'journal_voucher',
+		'fieldtype': u'Link',
+		'label': u'Journal Voucher',
+		'no_copy': 1,
+		'oldfieldname': u'journal_voucher',
+		'oldfieldtype': u'Link',
+		'options': u'Journal Voucher',
+		'permlevel': 1,
+		'width': u'180px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'jv_detail_no',
+		'fieldtype': u'Date',
+		'hidden': 1,
+		'label': u'Journal Voucher Detail No',
+		'no_copy': 1,
+		'oldfieldname': u'jv_detail_no',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'80px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'advance_amount',
+		'fieldtype': u'Currency',
+		'label': u'Advance Amount',
+		'no_copy': 1,
+		'oldfieldname': u'advance_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'allocated_amount',
+		'fieldtype': u'Currency',
+		'label': u'Allocated Amount',
+		'no_copy': 1,
+		'oldfieldname': u'allocated_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tds_amount',
+		'fieldtype': u'Currency',
+		'label': u'TDS Amount',
+		'oldfieldname': u'tds_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'width': u'80px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tds_allocated',
+		'fieldtype': u'Currency',
+		'label': u'TDS Allocated',
+		'oldfieldname': u'tds_allocated',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'width': u'80px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Small Text',
+		'label': u'Remarks',
+		'no_copy': 1,
+		'oldfieldname': u'remarks',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'width': u'150px'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/purchase_tax_detail/__init__.py b/erpnext/accounts/doctype/purchase_invoice_item/__init__.py
similarity index 100%
copy from erpnext/accounts/doctype/purchase_tax_detail/__init__.py
copy to erpnext/accounts/doctype/purchase_invoice_item/__init__.py
diff --git a/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt b/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt
new file mode 100755
index 0000000..236b75e
--- /dev/null
+++ b/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.txt
@@ -0,0 +1,348 @@
+# DocType, Purchase Invoice Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:46',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:46',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'EVD.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 46
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Invoice Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Purchase Invoice Item
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Invoice Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'in_filter': 0,
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'import_ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Ref Rate ',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'discount_rate',
+		'fieldtype': u'Currency',
+		'label': u'Discount %',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'import_rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate ',
+		'oldfieldname': u'import_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'import_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'import_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'purchase_ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Ref Rate *',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate *(Default Curr.)',
+		'oldfieldname': u'rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount (Default Curr.)',
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'expense_head',
+		'fieldtype': u'Link',
+		'label': u'Expense Head',
+		'oldfieldname': u'expense_head',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'120px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'cost_center',
+		'fieldtype': u'Link',
+		'label': u'Cost Center',
+		'oldfieldname': u'cost_center',
+		'oldfieldtype': u'Link',
+		'options': u'Cost Center',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client',
+		'width': u'120px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'project_name',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Project Name',
+		'options': u'Project',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Brand',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'purchase_order',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Pur Order',
+		'oldfieldname': u'purchase_order',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Order',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'po_detail',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Purchase Order Item',
+		'oldfieldname': u'po_detail',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'purchase_receipt',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Pur Receipt',
+		'oldfieldname': u'purchase_receipt',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Receipt',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'pr_detail',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'PR Detail',
+		'oldfieldname': u'pr_detail',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'description': u'Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges',
+		'doctype': u'DocField',
+		'fieldname': u'item_tax_rate',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Item Tax Rate',
+		'oldfieldname': u'item_tax_rate',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'page_break',
+		'fieldtype': u'Check',
+		'label': u'Page Break',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	}
+]
diff --git a/erpnext/accounts/doctype/purchase_tax_detail/purchase_tax_detail.txt b/erpnext/accounts/doctype/purchase_tax_detail/purchase_tax_detail.txt
deleted file mode 100644
index 2c5dc07..0000000
--- a/erpnext/accounts/doctype/purchase_tax_detail/purchase_tax_detail.txt
+++ /dev/null
@@ -1,237 +0,0 @@
-# DocType, Purchase Tax Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:16',
-		'docstatus': 0,
-		'modified': '2012-02-27 18:28:24',
-		'modified_by': u'Administrator',
-		'owner': u'wasim@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1322549700',
-		'autoname': u'PVTD.######',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'hide_heading': 1,
-		'istable': 1,
-		'module': u'Accounts',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 13
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Purchase Tax Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, Purchase Tax Detail
-	{
-		'doctype': 'DocType',
-		'name': u'Purchase Tax Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'category',
-		'fieldtype': u'Select',
-		'label': u'Category',
-		'oldfieldname': u'category',
-		'oldfieldtype': u'Select',
-		'options': u'\nFor Total\nFor Valuation\nFor Both',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'default': u'Add',
-		'doctype': u'DocField',
-		'fieldname': u'add_deduct_tax',
-		'fieldtype': u'Select',
-		'label': u'Add or Deduct',
-		'oldfieldname': u'add_deduct_tax',
-		'oldfieldtype': u'Select',
-		'options': u'\nAdd\nDeduct',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'charge_type',
-		'fieldtype': u'Select',
-		'label': u'Type',
-		'oldfieldname': u'charge_type',
-		'oldfieldtype': u'Select',
-		'options': u'\nActual\nOn Net Total\nOn Previous Row Amount\nOn Previous Row Total',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'row_id',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'label': u'Enter Row',
-		'oldfieldname': u'row_id',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'item_wise_tax_detail',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Item Wise Tax Detail ',
-		'oldfieldname': u'item_wise_tax_detail',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Small Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'account_head',
-		'fieldtype': u'Link',
-		'label': u'Account Head',
-		'oldfieldname': u'account_head',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'cost_center',
-		'fieldtype': u'Link',
-		'label': u'Cost Center',
-		'oldfieldname': u'cost_center',
-		'oldfieldtype': u'Link',
-		'options': u'Cost Center',
-		'permlevel': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate',
-		'oldfieldname': u'rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'tax_amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount',
-		'oldfieldname': u'tax_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'total',
-		'fieldtype': u'Currency',
-		'label': u'Aggregate Total',
-		'oldfieldname': u'total',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'parenttype',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Parenttype',
-		'oldfieldname': u'parenttype',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'description': u'Cheating Field\nPlease do not delete ',
-		'doctype': u'DocField',
-		'fieldname': u'total_tax_amount',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Total +Tax',
-		'no_copy': 1,
-		'oldfieldname': u'total_tax_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'description': u'Cheating Field\nPlease do not delete ',
-		'doctype': u'DocField',
-		'fieldname': u'total_amount',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Tax Amount',
-		'no_copy': 1,
-		'oldfieldname': u'total_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/purchase_tax_detail/__init__.py b/erpnext/accounts/doctype/purchase_taxes_and_charges/__init__.py
similarity index 100%
copy from erpnext/accounts/doctype/purchase_tax_detail/__init__.py
copy to erpnext/accounts/doctype/purchase_taxes_and_charges/__init__.py
diff --git a/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt b/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt
new file mode 100644
index 0000000..74fd697
--- /dev/null
+++ b/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt
@@ -0,0 +1,237 @@
+# DocType, Purchase Taxes and Charges
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:46',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:46',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1322549700',
+		'autoname': u'PVTD.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'hide_heading': 1,
+		'istable': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 13
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Taxes and Charges',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Purchase Taxes and Charges
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Taxes and Charges'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'category',
+		'fieldtype': u'Select',
+		'label': u'Category',
+		'oldfieldname': u'category',
+		'oldfieldtype': u'Select',
+		'options': u'\nFor Total\nFor Valuation\nFor Both',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'default': u'Add',
+		'doctype': u'DocField',
+		'fieldname': u'add_deduct_tax',
+		'fieldtype': u'Select',
+		'label': u'Add or Deduct',
+		'oldfieldname': u'add_deduct_tax',
+		'oldfieldtype': u'Select',
+		'options': u'\nAdd\nDeduct',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'charge_type',
+		'fieldtype': u'Select',
+		'label': u'Type',
+		'oldfieldname': u'charge_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nActual\nOn Net Total\nOn Previous Row Amount\nOn Previous Row Total',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'row_id',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'label': u'Enter Row',
+		'oldfieldname': u'row_id',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_wise_tax_detail',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Item Wise Tax Detail ',
+		'oldfieldname': u'item_wise_tax_detail',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'account_head',
+		'fieldtype': u'Link',
+		'label': u'Account Head',
+		'oldfieldname': u'account_head',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'cost_center',
+		'fieldtype': u'Link',
+		'label': u'Cost Center',
+		'oldfieldname': u'cost_center',
+		'oldfieldtype': u'Link',
+		'options': u'Cost Center',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tax_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'tax_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total',
+		'fieldtype': u'Currency',
+		'label': u'Aggregate Total',
+		'oldfieldname': u'total',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'parenttype',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Parenttype',
+		'oldfieldname': u'parenttype',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'description': u'Cheating Field\nPlease do not delete ',
+		'doctype': u'DocField',
+		'fieldname': u'total_tax_amount',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Total +Tax',
+		'no_copy': 1,
+		'oldfieldname': u'total_tax_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'description': u'Cheating Field\nPlease do not delete ',
+		'doctype': u'DocField',
+		'fieldname': u'total_amount',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Tax Amount',
+		'no_copy': 1,
+		'oldfieldname': u'total_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/purchase_tax_detail/__init__.py b/erpnext/accounts/doctype/purchase_taxes_and_charges_master/__init__.py
similarity index 100%
copy from erpnext/accounts/doctype/purchase_tax_detail/__init__.py
copy to erpnext/accounts/doctype/purchase_taxes_and_charges_master/__init__.py
diff --git a/erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js b/erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
new file mode 100644
index 0000000..ae4eb43
--- /dev/null
+++ b/erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
@@ -0,0 +1,175 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+// 
+
+//--------- ONLOAD -------------
+cur_frm.cscript.onload = function(doc, cdt, cdn) {
+   
+}
+
+cur_frm.cscript.refresh = function(doc, cdt, cdn) {
+   
+}
+
+cur_frm.pformat.purchase_tax_details= function(doc){
+ 
+  //function to make row of table
+  var make_row = function(title,val,bold){
+    var bstart = '<b>'; var bend = '</b>';
+    return '<tr><td style="width:50%;">'+(bold?bstart:'')+title+(bold?bend:'')+'</td>'
+     +'<td style="width:25%;text-align:right;">'+doc.currency+'</td>'
+     +'<td style="width:25%;text-align:right;">'+val+'</td>'
+     +'</tr>'
+  }
+
+  function convert_rate(val){
+    var new_val = flt(val)/flt(doc.conversion_rate);
+    return new_val;
+  }
+
+  var cl = getchildren('Purchase Taxes and Charges',doc.name,'purchase_tax_details');
+
+  // outer table  
+  var out='<div><table class="noborder" style="width:100%"><tr><td style="width: 60%"></td><td>';
+  
+  // main table
+  out +='<table class="noborder" style="width:100%">'+make_row('Net Total',fmt_money(convert_rate(doc.net_total)),1);
+
+  // add rows
+  if(cl.length){
+    for(var i=0;i<cl.length;i++){
+      out += make_row(cl[i].description,fmt_money(convert_rate(cl[i].tax_amount)),0);
+    }
+  }
+  
+  // grand total
+  out +=make_row('Grand Total',fmt_money(doc.grand_total_import),1)
+  if(doc.in_words_import){
+    out +='</table></td></tr>';
+    out += '<tr><td colspan = "2">';
+    out += '<table><tr><td style="width:25%;"><b>In Words</b></td>';
+    out+= '<td style="width:50%;">'+doc.in_words_import+'</td></tr>';
+  }
+  out +='</table></td></tr></table></div>';   
+  return out;
+}
+
+cur_frm.cscript.add_deduct_tax = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(!d.category && d.add_deduct_tax){
+    alert("Please select Category first");
+    d.add_deduct_tax = '';
+  }
+  else if(d.category != 'For Total' && d.add_deduct_tax == 'Deduct'){
+    alert("You cannot Deduct when category is for valuation or for both(i.e total and valuation)");
+    d.add_deduct_tax = '';
+  }
+
+}
+
+cur_frm.cscript.charge_type = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(!d.category && d.charge_type){
+    alert("Please select Category first");
+    d.charge_type = '';
+  }  
+  else if(d.idx == 1 && (d.charge_type == 'On Previous Row Amount' || d.charge_type == 'On Previous Row Total')){
+    alert("You cannot select Charge Type as 'On Previous Row Amount' or 'On Previous Row Total' for first row");
+    d.charge_type = '';
+  }
+  else if((d.category == 'For Valuation' || d.category == 'For Both') && (d.charge_type == 'On Previous Row Amount' || d.charge_type == 'On Previous Row Total')){
+    alert("You cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for valuation. You can select only 'For Total' option for previous row amount or previous row total")
+    d.charge_type = '';
+  }
+  validated = false;
+  refresh_field('charge_type',d.name,'purchase_tax_details');
+
+  cur_frm.cscript.row_id(doc, cdt, cdn);
+  cur_frm.cscript.rate(doc, cdt, cdn);
+  cur_frm.cscript.tax_amount(doc, cdt, cdn);
+}
+
+
+cur_frm.cscript.row_id = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(!d.charge_type && d.row_id){
+    alert("Please select Charge Type first");
+    d.row_id = '';
+  }
+  else if((d.charge_type == 'Actual' || d.charge_type == 'On Net Total') && d.row_id) {
+    alert("You can Enter Row only if your Charge Type is 'On Previous Row Amount' or ' Previous Row Total'");
+    d.row_id = '';
+  }
+  else if((d.charge_type == 'On Previous Row Amount' || d.charge_type == 'On Previous Row Total') && d.row_id){
+    if(d.row_id >= d.idx){
+      alert("You cannot Enter Row no. greater than or equal to current row no. for this Charge type");
+      d.row_id = '';
+    }
+  }
+  validated = false;
+  refresh_field('row_id',d.name,'purchase_tax_details');
+}
+
+/*---------------------- Get rate if account_head has account_type as TAX or CHARGEABLE-------------------------------------*/
+
+cur_frm.fields_dict['purchase_tax_details'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
+  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND (tabAccount.account_type = "Tax" OR tabAccount.account_type = "Chargeable" or (tabAccount.is_pl_account = "Yes" and tabAccount.debit_or_credit = "Debit")) AND tabAccount.company = "' + doc.company + '" AND  tabAccount.name LIKE "%s"'
+}
+
+
+cur_frm.fields_dict['purchase_tax_details'].grid.get_field("cost_center").get_query = function(doc) {
+	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
+}
+
+
+cur_frm.cscript.account_head = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(!d.charge_type && d.account_head){
+    alert("Please select Charge Type first");
+    validated = false;
+    d.account_head = '';
+  }
+  else if(d.account_head && d.charge_type) {
+    arg = "{'charge_type' : '" + d.charge_type +"', 'account_head' : '" + d.account_head + "'}";
+    get_server_fields('get_rate', arg, 'purchase_tax_details', doc, cdt, cdn, 1);
+  }
+  refresh_field('account_head',d.name,'purchase_tax_details');
+}
+
+cur_frm.cscript.rate = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(!d.charge_type && d.rate) {
+    alert("Please select Charge Type first");
+    d.rate = '';
+  }
+  validated = false;
+  refresh_field('rate',d.name,'purchase_tax_details');
+}
+
+cur_frm.cscript.tax_amount = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(!d.charge_type && d.tax_amount){
+    alert("Please select Charge Type first");
+    d.tax_amount = '';
+  }
+  else if(d.charge_type && d.tax_amount) {
+    alert("You cannot directly enter Amount and if your Charge Type is Actual enter your amount in Rate");
+    d.tax_amount = '';
+  }
+  validated = false;
+  refresh_field('tax_amount',d.name,'purchase_tax_details');
+}
diff --git a/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.py b/erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.py
similarity index 100%
rename from erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.py
rename to erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.py
diff --git a/erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt b/erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt
new file mode 100644
index 0000000..1ecac40
--- /dev/null
+++ b/erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt
@@ -0,0 +1,130 @@
+# DocType, Purchase Taxes and Charges Master
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:51',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:51',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1325570646',
+		'allow_trash': 1,
+		'autoname': u'field:title',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'document_type': u'Master',
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 18
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Taxes and Charges Master',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Purchase Taxes and Charges Master',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Purchase Taxes and Charges Master
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Taxes and Charges Master'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase Master Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'title',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Title',
+		'oldfieldname': u'title',
+		'oldfieldtype': u'Data',
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Company',
+		'options': u'Company',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'purchase_tax_details',
+		'fieldtype': u'Table',
+		'label': u'Purchase Taxes and Charges',
+		'oldfieldname': u'purchase_tax_details',
+		'oldfieldtype': u'Table',
+		'options': u'Purchase Taxes and Charges'
+	}
+]
diff --git a/erpnext/accounts/doctype/pv_detail/__init__.py b/erpnext/accounts/doctype/pv_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/doctype/pv_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/doctype/pv_detail/pv_detail.txt b/erpnext/accounts/doctype/pv_detail/pv_detail.txt
deleted file mode 100755
index 423f667..0000000
--- a/erpnext/accounts/doctype/pv_detail/pv_detail.txt
+++ /dev/null
@@ -1,348 +0,0 @@
-# DocType, PV Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:17',
-		'docstatus': 0,
-		'modified': '2012-03-05 15:02:25',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': u'EVD.######',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': u'Accounts',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 46
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'PV Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, PV Detail
-	{
-		'doctype': 'DocType',
-		'name': u'PV Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_name',
-		'fieldtype': u'Data',
-		'in_filter': 0,
-		'label': u'Item Name',
-		'oldfieldname': u'item_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'qty',
-		'fieldtype': u'Currency',
-		'label': u'Qty',
-		'oldfieldname': u'qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'import_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Ref Rate ',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'discount_rate',
-		'fieldtype': u'Currency',
-		'label': u'Discount %',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'import_rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate ',
-		'oldfieldname': u'import_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'import_amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount',
-		'oldfieldname': u'import_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Ref Rate *',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate *(Default Curr.)',
-		'oldfieldname': u'rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount (Default Curr.)',
-		'oldfieldname': u'amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'expense_head',
-		'fieldtype': u'Link',
-		'label': u'Expense Head',
-		'oldfieldname': u'expense_head',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'120px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'cost_center',
-		'fieldtype': u'Link',
-		'label': u'Cost Center',
-		'oldfieldname': u'cost_center',
-		'oldfieldtype': u'Link',
-		'options': u'Cost Center',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client',
-		'width': u'120px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'project_name',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Project Name',
-		'options': u'Project',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'brand',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'label': u'Brand',
-		'oldfieldname': u'brand',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_group',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Item Group',
-		'oldfieldname': u'item_group',
-		'oldfieldtype': u'Link',
-		'options': u'Item Group',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_order',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Pur Order',
-		'oldfieldname': u'purchase_order',
-		'oldfieldtype': u'Link',
-		'options': u'Purchase Order',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'po_detail',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'PO Detail',
-		'oldfieldname': u'po_detail',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_receipt',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Pur Receipt',
-		'oldfieldname': u'purchase_receipt',
-		'oldfieldtype': u'Link',
-		'options': u'Purchase Receipt',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'pr_detail',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'PR Detail',
-		'oldfieldname': u'pr_detail',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'description': u'Tax detail table fetched from item master as a string and stored in this field.\nUsed for Purchase Other Charges',
-		'doctype': u'DocField',
-		'fieldname': u'item_tax_rate',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Item Tax Rate',
-		'oldfieldname': u'item_tax_rate',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldname': u'page_break',
-		'fieldtype': u'Check',
-		'label': u'Page Break',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/receivable_voucher/__init__.py b/erpnext/accounts/doctype/receivable_voucher/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/doctype/receivable_voucher/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js
deleted file mode 100644
index 7b3c6ef..0000000
--- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js
+++ /dev/null
@@ -1,496 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-cur_frm.cscript.tname = "RV Detail";
-cur_frm.cscript.fname = "entries";
-cur_frm.cscript.other_fname = "other_charges";
-cur_frm.cscript.sales_team_fname = "sales_team";
-
-// print heading
-cur_frm.pformat.print_heading = 'Invoice';
-
-$import(Sales Common)
-$import(Other Charges)
-$import(SMS Control)
-
-// On Load
-// -------
-cur_frm.cscript.onload = function(doc,dt,dn) {
-	if(!doc.customer && doc.debit_to) get_field(dt, 'debit_to', dn).print_hide = 0;
-	if (doc.__islocal) {
-		if(!doc.voucher_date) set_multiple(dt,dn,{voucher_date:get_today()});
-		if(!doc.due_date) set_multiple(dt,dn,{due_date:get_today()});
-		if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});
-		if(!doc.currency && sys_defaults.currency) set_multiple(dt,dn,{currency:sys_defaults.currency});
-		if(!doc.price_list_currency) set_multiple(dt, dn, {price_list_currency: doc.currency, plc_conversion_rate: 1});
-
- 		hide_field(['customer_address', 'contact_person','customer_name','address_display', 'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']);
-	}
-}
-
-cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
-	var callback = function(doc, dt, dn) {
-		// called from mapper, update the account names for items and customer
-		var callback2 = function(doc, dt, dn) {
-			if(doc.customer && doc.__islocal) {
-				$c_obj(make_doclist(doc.doctype,doc.name),
-					'load_default_accounts','',
-					function(r,rt) {
-						refresh_field('entries');
-						cur_frm.cscript.customer(doc,dt,dn,onload=true);
-					}
-				);
-			}
-		}
-		// defined in sales_common.js
-		var callback1 = function(doc, dt, dn) {
-			//for previously created sales invoice, set required field related to pos	
-			cur_frm.cscript.update_item_details(doc, dt, dn, callback2);
-		}
-		
-		if(doc.is_pos ==1) cur_frm.cscript.is_pos(doc, dt, dn,callback1);
-		else cur_frm.cscript.update_item_details(doc, dt, dn, callback2);
-	}
-
-	cur_frm.cscript.hide_price_list_currency(doc, dt, dn, callback); 
-
-}
-
-
-// Hide Fields
-// ------------
-cur_frm.cscript.hide_fields = function(doc, cdt, cdn) {
-	par_flds = ['project_name', 'due_date', 'sales_order_main', 'delivery_note_main', 'Get Items', 'is_opening', 'conversion_rate', 'source', 'cancel_reason', 'total_advance', 'gross_profit', 'gross_profit_percent', 'Get Advances Received', 'advance_adjustment_details', 'sales_partner', 'commission_rate', 'total_commission', 'Repair Outstanding Amt'];
-	
-	item_flds_normal = ['sales_order', 'delivery_note']
-	item_flds_pos = ['warehouse', 'serial_no', 'batch_no', 'actual_qty', 'delivered_qty']
-	
-	if(cint(doc.is_pos) == 1) {
-		hide_field(par_flds);
-		for(f in item_flds_normal) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal[f], false);
-		for(f in item_flds_pos) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_pos[f], (doc.update_stock==1?true:false));
-	} else {
-		unhide_field(par_flds);
-		for(f in item_flds_normal) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal[f], true);
-		for(f in item_flds_pos) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_pos[f], false);
-	}
-
-	// India related fields
-	var cp = wn.control_panel;
-	if (cp.country == 'India') unhide_field(['c_form_applicable', 'c_form_no']);
-	else hide_field(['c_form_applicable', 'c_form_no']);
-
-}
-
-
-// Refresh
-// -------
-cur_frm.cscript.refresh = function(doc, dt, dn) {
-	cur_frm.cscript.is_opening(doc, dt, dn);
-	cur_frm.cscript.hide_fields(doc, dt, dn);
-	// Show / Hide button
-	cur_frm.clear_custom_buttons();
-
-	if (!cur_frm.cscript.is_onload)	cur_frm.cscript.hide_price_list_currency(doc, dt, dn); 
-
-	if(doc.docstatus==1) {
-		cur_frm.add_custom_button('View Ledger', cur_frm.cscript['View Ledger Entry']);
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
-		unhide_field('Repair Outstanding Amt');
-
-		if(doc.is_pos==1 && doc.update_stock!=1)
-			cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']);
-
-		if(doc.outstanding_amount!=0)
-			cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript['Make Bank Voucher']);
-	}
-	else
-		hide_field('Repair Outstanding Amt');
-}
-
-//fetch retail transaction related fields
-//--------------------------------------------
-cur_frm.cscript.is_pos = function(doc,dt,dn,callback){
-	cur_frm.cscript.hide_fields(doc, dt, dn);
-	if(doc.is_pos == 1){
-		if (!doc.company) {
-			msgprint("Please select company to proceed");
-			doc.is_pos = 0;
-			refresh_field('is_pos');
-		}
-		else {
-			var callback1 = function(r,rt){
-				if(callback) callback(doc, dt, dn);
-				cur_frm.refresh();
-			}
-			$c_obj(make_doclist(dt,dn),'set_pos_fields','',callback1);
-		}
-	}
-}
-
-
-cur_frm.cscript.update_stock = function(doc, dt, dn) {
-	cur_frm.cscript.hide_fields(doc, dt, dn);
-}
-
-
-cur_frm.cscript.warehouse = function(doc, cdt , cdn) {
-	var d = locals[cdt][cdn];
-	if (!d.item_code) {alert("please enter item code first"); return};
-	if (d.warehouse) {
-		arg = "{'item_code':'" + d.item_code + "','warehouse':'" + d.warehouse +"'}";
-		get_server_fields('get_actual_qty',arg,'entries',doc,cdt,cdn,1);
-	}
-}
-
-
-
-//Customer
-cur_frm.cscript.customer = function(doc,dt,dn,onload) {
-
-	var callback = function(r,rt) {
-			var callback2 = function(doc, dt, dn) {
-				doc = locals[dt][dn];
-				if(doc.debit_to && doc.posting_date){
-					get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,
-					function(doc, dt, dn) {
-						cur_frm.refresh();
-					});
-					
-				}
-			}
-			var doc = locals[cur_frm.doctype][cur_frm.docname];
-			get_server_fields('get_debit_to','','',doc, dt, dn, 0, callback2);
-	}
-	var args = onload ? 'onload':''
-	if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', args, callback);
-
-	if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
-	
-}
-
-
-
-cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {
-	if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
-}
-
-cur_frm.fields_dict.customer_address.on_new = function(dn) {
-	locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
-	locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
-}
-
-cur_frm.fields_dict.contact_person.on_new = function(dn) {
-	locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
-	locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
-}
-
-cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
-
-cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
-
-
-// Set Due Date = posting date + credit days
-cur_frm.cscript.debit_to = function(doc,dt,dn) {
-
-	var callback2 = function(r,rt) {
-			var doc = locals[cur_frm.doctype][cur_frm.docname];
-			cur_frm.refresh();
-	}
-
-	var callback = function(r,rt) {
-			var doc = locals[cur_frm.doctype][cur_frm.docname];
-			if(doc.customer) $c_obj(make_doclist(dt,dn), 'get_default_customer_address', '', callback2);
-			if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
-			cur_frm.refresh();
-	}
-
-	if(doc.debit_to && doc.posting_date){
-		get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,callback);
-	}
-}
-
-
-
-//refresh advance amount
-//-------------------------------------------------
-
-cur_frm.cscript.paid_amount = function(doc,dt,dn){
-	doc.outstanding_amount = flt(doc.grand_total) - flt(doc.paid_amount) - flt(doc.write_off_amount);
-	refresh_field('outstanding_amount');
-}
-
-
-//---- get customer details ----------------------------
-cur_frm.cscript.project_name = function(doc,cdt,cdn){
-	$c_obj(make_doclist(doc.doctype, doc.name),'pull_project_customer','', function(r,rt){
-		refresh_many(['customer', 'customer_name','customer_address', 'territory']);
-	});
-}
-
-//Set debit and credit to zero on adding new row
-//----------------------------------------------
-cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){
-
-	cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype);
-	acc = '';
-	cc = '';
-
-	for(var i = 0; i<cl.length; i++) {
-
-		if (cl[i].idx == 1){
-			acc = cl[i].income_account;
-			cc = cl[i].cost_center;
-		}
-		else{
-			if (! cl[i].income_account) { cl[i].income_account = acc; refresh_field('income_account', cl[i].name, 'entries');}
-			if (! cl[i].cost_center)	{cl[i].cost_center = cc;refresh_field('cost_center', cl[i].name, 'entries');}
-		}
-	}
-}
-
-cur_frm.cscript.is_opening = function(doc, dt, dn) {
-	hide_field('aging_date');
-	if (doc.is_opening == 'Yes') unhide_field('aging_date');
-}
-
-/* **************************** TRIGGERS ********************************** */
-
-// Get Items based on SO or DN Selected
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
-	var callback = function(r,rt) {
-		unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
-		cur_frm.refresh();
-	}
-	get_server_fields('pull_details','','',doc, dt, dn,1,callback);
-}
-
-
-
-// Allocated Amount in advances table
-// -----------------------------------
-cur_frm.cscript.allocated_amount = function(doc,cdt,cdn){
-	cur_frm.cscript.calc_adjustment_amount(doc,cdt,cdn);
-}
-
-//Make Delivery Note Button
-//-----------------------------
-
-cur_frm.cscript['Make Delivery Note'] = function() {
-
-	var doc = cur_frm.doc
-	n = createLocal('Delivery Note');
-	$c('dt_map', args={
-		'docs':compress_doclist([locals['Delivery Note'][n]]),
-		'from_doctype':doc.doctype,
-		'to_doctype':'Delivery Note',
-		'from_docname':doc.name,
-		'from_to_list':"[['Receivable Voucher','Delivery Note'],['RV Detail','Delivery Note Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team']]"
-		}, function(r,rt) {
-			 loaddoc('Delivery Note', n);
-		}
-	);
-}
-
-
-
-// Make Bank Voucher Button
-// -------------------------
-cur_frm.cscript['Make Bank Voucher'] = function(doc, dt, dn) {
-	$c('accounts.get_default_bank_account', { company: cur_frm.doc.company }, function(r, rt) {
-		if(!r.exc) {
-		  cur_frm.cscript.make_jv(cur_frm.doc, null, null, r.message);
-		}
-	});
-}
-
-
-/* ***************************** Get Query Functions ************************** */
-
-// Debit To
-// ---------
-cur_frm.fields_dict.debit_to.get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
-}
-
-// Cash/bank account
-//------------------
-cur_frm.fields_dict.cash_bank_account.get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
-}
-
-// Write off account
-//------------------
-cur_frm.fields_dict.write_off_account.get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "Yes" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
-}
-
-// Write off cost center
-//-----------------------
-cur_frm.fields_dict.write_off_cost_center.get_query = function(doc) {
-	return 'SELECT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Ledger" AND `tabCost Center`.docstatus!=2 AND `tabCost Center`.company_name="'+doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s"'
-}
-
-//project name
-//--------------------------
-cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
-	var cond = '';
-	if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
-	return repl('SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND %(cond)s `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
-}
-
-//Territory
-//-----------------------------
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
-}
-
-// Income Account in Details Table
-// --------------------------------
-cur_frm.fields_dict.entries.grid.get_field("income_account").get_query = function(doc) {
-	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"';
-}
-
-// warehouse in detail table
-//----------------------------
-cur_frm.fields_dict['entries'].grid.get_field('warehouse').get_query= function(doc, cdt, cdn) {
-	var d = locals[cdt][cdn];
-	return "SELECT `tabBin`.`warehouse`, `tabBin`.`actual_qty` FROM `tabBin` WHERE `tabBin`.`item_code` = '"+ d.item_code +"' AND ifnull(`tabBin`.`actual_qty`,0) > 0 AND `tabBin`.`warehouse` like '%s' ORDER BY `tabBin`.`warehouse` DESC LIMIT 50";
-}
-
-// Cost Center in Details Table
-// -----------------------------
-cur_frm.fields_dict.entries.grid.get_field("cost_center").get_query = function(doc) {
-	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
-}
-
-// Sales Order
-// -----------
-cur_frm.fields_dict.sales_order_main.get_query = function(doc) {
-	if (doc.customer)
-		return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.`customer` =	"' + doc.customer + '" and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
-	else
-		return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
-}
-
-// Delivery Note
-// --------------
-cur_frm.fields_dict.delivery_note_main.get_query = function(doc) {
-	if (doc.customer)
-		return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.`customer` =	"' + doc.customer + '" and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
-	else
-		return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
-}
-
-
-
-cur_frm.cscript.income_account = function(doc, cdt, cdn){
-	var d = locals[cdt][cdn];
-	if(d.income_account){
-		var cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype);
-		for(var i = 0; i < cl.length; i++){
-			if(!cl[i].income_account) cl[i].income_account = d.income_account;
-		}
-	}
-	refresh_field(cur_frm.cscript.fname);
-}
-
-
-cur_frm.cscript.cost_center = function(doc, cdt, cdn){
-	var d = locals[cdt][cdn];
-	if(d.cost_center){
-		var cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype);
-		for(var i = 0; i < cl.length; i++){
-			if(!cl[i].cost_center) cl[i].cost_center = d.cost_center;
-		}
-	}
-	refresh_field(cur_frm.cscript.fname);
-}
-
-/* **************************************** Utility Functions *************************************** */
-
-// Details Calculation
-// --------------------
-cur_frm.cscript.calc_adjustment_amount = function(doc,cdt,cdn) {
-	var doc = locals[doc.doctype][doc.name];
-	var el = getchildren('Advance Adjustment Detail',doc.name,'advance_adjustment_details');
-	var total_adjustment_amt = 0
-	for(var i in el) {
-			total_adjustment_amt += flt(el[i].allocated_amount)
-	}
-	doc.total_advance = flt(total_adjustment_amt);
-	doc.outstanding_amount = flt(doc.grand_total) - flt(total_adjustment_amt) - flt(doc.paid_amount) - flt(doc.write_off_amount);
-	refresh_many(['total_advance','outstanding_amount']);
-}
-
-
-// Make Journal Voucher
-// --------------------
-cur_frm.cscript.make_jv = function(doc, dt, dn, bank_account) {
-	var jv = LocalDB.create('Journal Voucher');
-	jv = locals['Journal Voucher'][jv];
-	jv.voucher_type = 'Bank Voucher';
-
-	jv.company = doc.company;
-	jv.remark = repl('Payment received against invoice %(vn)s for %(rem)s', {vn:doc.name, rem:doc.remarks});
-	jv.fiscal_year = doc.fiscal_year;
-
-	// debit to creditor
-	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
-	d1.account = doc.debit_to;
-	d1.credit = doc.outstanding_amount;
-	d1.against_invoice = doc.name;
-
-
-	// credit to bank
-	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
-	d1.account = bank_account;
-	d1.debit = doc.outstanding_amount;
-
-	loaddoc('Journal Voucher', jv.name);
-}
-
-
-/****************** Get Accounting Entry *****************/
-cur_frm.cscript['View Ledger Entry'] = function(){
-	var callback = function(report){
-		report.set_filter('GL Entry', 'Voucher No',cur_frm.doc.name);
-		report.dt.run();
-	}
-	loadreport('GL Entry','General Ledger', callback);
-}
-
-// Default values for recurring invoices
-cur_frm.cscript.convert_into_recurring_invoice = function(doc) {
-	if (doc.convert_into_recurring_invoice) {
-		doc.repeat_on_day_of_month = doc.posting_date.split('-')[2];
-		doc.notification_email_address = [doc.owner, doc.contact_email].join(', ');
-		refresh_field(['repeat_on_day_of_month', 'notification_email_address']);
-	}		
-}
-
-$import(Notification Control)
-cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
-	var args = {
-		type: 'Sales Invoice',
-		doctype: 'Receivable Voucher'
-	}
-	cur_frm.cscript.notify(doc, args);
-}
diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py
deleted file mode 100644
index 446a116..0000000
--- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py
+++ /dev/null
@@ -1,721 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr,date_diff, default_fields, flt, fmt_money, formatdate, generate_hash,getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common,month_name, now, nowdate, replace_newlines, sendmail, set_default,str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-session = webnotes.session
-
-# -----------------------------------------------------------------------------------------
-
-from utilities.transaction_base import TransactionBase
-
-class DocType(TransactionBase):
-	def __init__(self,d,dl):
-		self.doc, self.doclist = d, dl
-		self.log = []
-		self.tname = 'RV Detail'
-		self.fname = 'entries'
-
-
-	# Autoname
-	# ---------
-	def autoname(self):
-		self.doc.name = make_autoname(self.doc.naming_series+ '.#####')
-
-
-
-# ********************************* Trigger Functions ******************************
-
-	#Set retail related fields from pos settings
-	#-------------------------------------------------------------------------
-	def set_pos_fields(self):
-		pos = webnotes.conn.sql("select * from `tabPOS Setting` where ifnull(user,'') = '%s' and company = '%s'" % (session['user'], self.doc.company), as_dict=1)
-		if not pos:
-			pos = webnotes.conn.sql("select * from `tabPOS Setting` where ifnull(user,'') = '' and company = '%s'" % (self.doc.company), as_dict=1)
-		if pos:
-			val = webnotes.conn.sql("select name from `tabAccount` where name = %s and docstatus != 2", (cstr(self.doc.customer) + " - " + self.get_company_abbr()))
-			val = val and val[0][0] or ''
-			if not val: val = pos and pos[0]['customer_account'] or ''
-			if not self.doc.debit_to:
-				webnotes.conn.set(self.doc,'debit_to',val)
-			
-			lst = ['territory','naming_series','currency','charge','letter_head','tc_name','price_list_name','company','select_print_heading','cash_bank_account']
-				
-			for i in lst:
-				val = pos and pos[0][i] or ''
-				self.doc.fields[i] = val
-			self.set_pos_item_values()
-			
-			val = pos and flt(pos[0]['conversion_rate']) or 0	
-			self.doc.conversion_rate = val
-
-			#fetch terms	
-			if self.doc.tc_name:	 self.get_tc_details()
-			
-			#fetch charges
-			if self.doc.charge:		self.get_other_charges()
-
-
-	# Set default values related to pos for previously created sales invoice.
-	# -------------------------------------------------------------------------- 
-	def set_pos_item_values(self):
-		if cint(self.doc.is_pos) ==1:
-			dtl = webnotes.conn.sql("select income_account, warehouse, cost_center from `tabPOS Setting` where ifnull(user,'') = '%s' and company = '%s'" % (session['user'], self.doc.company), as_dict=1)
-			if not dtl:
-				dtl = webnotes.conn.sql("select income_account, warehouse, cost_center from `tabPOS Setting` where ifnull(user,'') = '' and company = '%s'" % (self.doc.company), as_dict=1)
-			for d in getlist(self.doclist,'entries'):
-				# overwrite if mentioned in item
-				item = webnotes.conn.sql("select default_income_account, default_sales_cost_center, default_warehouse from tabItem where name = '%s'" %(d.item_code), as_dict=1)
-				d.income_account = item and item[0]['default_income_account'] or dtl and dtl[0]['income_account'] or d.income_account
-				d.cost_center = item and item[0]['default_sales_cost_center'] or dtl and dtl[0]['cost_center'] or d.cost_center
-				d.warehouse = item and item[0]['default_warehouse'] or dtl and dtl[0]['warehouse'] or d.warehouse
-
-
-			
-	# Get Account Head to which amount needs to be Debited based on Customer
-	# ----------------------------------------------------------------------
-	def get_customer_account(self):
-		acc_head = webnotes.conn.sql("select name from `tabAccount` where (name = %s or (master_name = %s and master_type = 'customer')) and docstatus != 2", (cstr(self.doc.customer) + " - " + self.get_company_abbr(),self.doc.customer))
-		if acc_head and acc_head[0][0]:
-			return acc_head[0][0]
-		else:
-			msgprint("%s does not have an Account Head in %s. You must first create it from the Customer Master" % (self.doc.customer, self.doc.company))
-
-	def get_debit_to(self):
-		acc_head = self.get_customer_account()
-		return acc_head and {'debit_to' : acc_head} or {}
-
-
-
-	# Set Due Date = Posting Date + Credit Days
-	# -----------------------------------------
-	def get_cust_and_due_date(self):
-		credit_days = 0
-		if self.doc.debit_to:
-			credit_days = webnotes.conn.sql("select credit_days from `tabAccount` where name='%s' and docstatus != 2" % self.doc.debit_to)
-			credit_days = credit_days and cint(credit_days[0][0]) or 0
-		if self.doc.company and not credit_days:
-			credit_days = webnotes.conn.sql("select credit_days from `tabCompany` where name='%s'" % self.doc.company)
-			credit_days = credit_days and cint(credit_days[0][0]) or 0
-		# Customer has higher priority than company
-		# i.e.if not entered in customer will take credit days from company
-		self.doc.due_date = add_days(cstr(self.doc.posting_date), credit_days)
-		
-		if self.doc.debit_to:
-			self.doc.customer = webnotes.conn.get_value('Account',self.doc.debit_to,'master_name')
-		#	get_obj('Sales Common').get_customer_details(self, inv_det_reqd = 0)
-
-
-	# Pull Details of Delivery Note or Sales Order Selected
-	# ------------------------------------------------------
-	def pull_details(self):
-		# Delivery Note
-		if self.doc.delivery_note_main:
-			self.validate_prev_docname('delivery note')
-			self.doc.clear_table(self.doclist,'other_charges')			
-			self.doclist = get_obj('DocType Mapper', 'Delivery Note-Receivable Voucher').dt_map('Delivery Note', 'Receivable Voucher', self.doc.delivery_note_main, self.doc, self.doclist, "[['Delivery Note', 'Receivable Voucher'],['Delivery Note Detail', 'RV Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team']]")			
-			self.get_income_account('entries')
-		# Sales Order
-		elif self.doc.sales_order_main:
-			self.validate_prev_docname('sales order')
-			self.doc.clear_table(self.doclist,'other_charges')
-			get_obj('DocType Mapper', 'Sales Order-Receivable Voucher').dt_map('Sales Order', 'Receivable Voucher', self.doc.sales_order_main, self.doc, self.doclist, "[['Sales Order', 'Receivable Voucher'],['Sales Order Detail', 'RV Detail'],['RV Tax Detail','RV Tax Detail'], ['Sales Team', 'Sales Team']]")
-			self.get_income_account('entries')
-			
-		ret = self.get_debit_to()
-		self.doc.debit_to = ret.get('debit_to')
-					
-	# onload pull income account
-	# --------------------------
-	def load_default_accounts(self):
-		"""
-			Loads default accounts from items, customer when called from mapper
-		"""
-		self.get_income_account('entries')
-		
-	def get_income_account(self,doctype):		
-		for d in getlist(self.doclist, doctype):			
-			if d.item_code:
-				item = webnotes.conn.sql("select default_income_account, default_sales_cost_center from tabItem where name = '%s'" %(d.item_code), as_dict=1)
-				d.income_account = item and item[0]['default_income_account'] or ''
-				d.cost_center = item and item[0]['default_sales_cost_center'] or ''				
-
-	# Item Details
-	# -------------
-	def get_item_details(self, args=None):
-		args = args and eval(args) or {}
-		if args.get('item_code'):
-			ret = get_obj('Sales Common').get_item_details(args, self)
-			return self.get_pos_details(args, ret)
-		else:
-			obj = get_obj('Sales Common')
-			for doc in self.doclist:
-				if doc.fields.get('item_code'):
-					arg = {'item_code':doc.fields.get('item_code'), 'income_account':doc.fields.get('income_account'), 
-						'cost_center': doc.fields.get('cost_center'), 'warehouse': doc.fields.get('warehouse')};
-
-					ret = obj.get_item_details(arg, self)
-					ret = self.get_pos_details(arg, ret)
-					for r in ret:
-						if not doc.fields.get(r):
-							doc.fields[r] = ret[r]		
-
-
-	def get_pos_details(self, args, ret):
-		if args['item_code'] and cint(self.doc.is_pos) == 1:
-			dtl = webnotes.conn.sql("select income_account, warehouse, cost_center from `tabPOS Setting` where user = '%s' and company = '%s'" % (session['user'], self.doc.company), as_dict=1)				 
-			if not dtl:
-				dtl = webnotes.conn.sql("select income_account, warehouse, cost_center from `tabPOS Setting` where ifnull(user,'') = '' and company = '%s'" % (self.doc.company), as_dict=1)
-
-			item = webnotes.conn.sql("select default_income_account, default_sales_cost_center, default_warehouse from tabItem where name = '%s'" %(args['item_code']), as_dict=1)
-
-			ret['income_account'] = item and item[0]['default_income_account'] or dtl and dtl[0]['income_account'] or args['income_account']
-			ret['cost_center'] = item and item[0]['default_sales_cost_center'] or dtl and dtl[0]['cost_center'] or args['cost_center']
-			ret['warehouse'] = item and item[0]['default_warehouse'] or dtl and dtl[0]['warehouse'] or args['warehouse']
-
-			if ret['warehouse']:
-				actual_qty = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (args['item_code'], ret['warehouse']))
-				ret['actual_qty']= actual_qty and flt(actual_qty[0][0]) or 0
-		return ret
-
-
-	# Fetch ref rate from item master as per selected price list
-	def get_adj_percent(self, arg=''):
-		get_obj('Sales Common').get_adj_percent(self)
-
-
-	# Get tax rate if account type is tax
-	# ------------------------------------
-	def get_rate(self,arg):
-		get_obj('Sales Common').get_rate(arg)
-		
-		
-	# Get Commission rate of Sales Partner
-	# -------------------------------------
-	def get_comm_rate(self, sales_partner):
-		return get_obj('Sales Common').get_comm_rate(sales_partner, self)	
-	
- 
-	# GET TERMS & CONDITIONS
-	# -------------------------------------
-	def get_tc_details(self):
-		return get_obj('Sales Common').get_tc_details(self)
-
-	# Load Default Charges
-	# ----------------------------------------------------------
-	def load_default_taxes(self):
-		return get_obj('Sales Common').load_default_taxes(self)
-
-	# Get Other Charges Details
-	# --------------------------
-	def get_other_charges(self):
-		return get_obj('Sales Common').get_other_charges(self)
-		
-
-	# Get Advances
-	# -------------
-	def get_advances(self):
-		get_obj('GL Control').get_advances(self, self.doc.debit_to, 'Advance Adjustment Detail', 'advance_adjustment_details', 'credit')
-
-	#pull project customer
-	#-------------------------
-	def pull_project_customer(self):
-		res = webnotes.conn.sql("select customer from `tabProject` where name = '%s'"%self.doc.project_name)
-		if res:
-			get_obj('DocType Mapper', 'Project-Receivable Voucher').dt_map('Project', 'Receivable Voucher', self.doc.project_name, self.doc, self.doclist, "[['Project', 'Receivable Voucher']]")
-
-# ********************************** Server Utility Functions ******************************
-	
-	# Get Company Abbr.
-	# ------------------
-	def get_company_abbr(self):
-		return webnotes.conn.sql("select abbr from tabCompany where name=%s", self.doc.company)[0][0]
-		
-	
-	# Check whether sales order / delivery note items already pulled
-	#----------------------------------------------------------------
-	def validate_prev_docname(self,doctype):
-		for d in getlist(self.doclist, 'entries'): 
-			if doctype == 'delivery note' and self.doc.delivery_note_main == d.delivery_note:
-				msgprint(cstr(self.doc.delivery_note_main) + " delivery note details have already been pulled.")
-				raise Exception , "Validation Error. Delivery note details have already been pulled."
-			elif doctype == 'sales order' and self.doc.sales_order_main == d.sales_order and not d.delivery_note:
-				msgprint(cstr(self.doc.sales_order_main) + " sales order details have already been pulled.")
-				raise Exception , "Validation Error. Sales order details have already been pulled."
-
-
-	#-----------------------------------------------------------------
-	def update_against_document_in_jv(self):
-		"""
-			Links invoice and advance voucher:
-				1. cancel advance voucher
-				2. split into multiple rows if partially adjusted, assign against voucher
-				3. submit advance voucher
-		"""
-		
-		lst = []
-		for d in getlist(self.doclist, 'advance_adjustment_details'):
-			if flt(d.allocated_amount) > 0:
-				args = {
-					'voucher_no' : d.journal_voucher, 
-					'voucher_detail_no' : d.jv_detail_no, 
-					'against_voucher_type' : 'Receivable Voucher', 
-					'against_voucher'  : self.doc.name,
-					'account' : self.doc.debit_to, 
-					'is_advance' : 'Yes', 
-					'dr_or_cr' : 'credit', 
-					'unadjusted_amt' : flt(d.advance_amount),
-					'allocated_amt' : flt(d.allocated_amount)
-				}
-				lst.append(args)
-		
-		if lst:
-			get_obj('GL Control').reconcile_against_document(lst)
-	
-	
-	# ------------------------------------------------------------------------
-	def validate_customer(self):
-		"""
-			Validate customer name with SO and DN
-		"""
-		for d in getlist(self.doclist,'entries'):
-			dt = d.delivery_note and 'Delivery Note' or d.sales_order and 'Sales Order' or ''
-			if dt:
-				dt_no = d.delivery_note or d.sales_order
-				cust = webnotes.conn.sql("select customer from `tab%s` where name = %s" % (dt, '%s'), dt_no)
-				if cust and cstr(cust[0][0]) != cstr(self.doc.customer):
-					msgprint("Customer %s does not match with customer of %s: %s." %(self.doc.customer, dt, dt_no), raise_exception=1)
-			
-
-	# Validates Debit To Account and Customer Matches
-	# ------------------------------------------------
-	def validate_debit_to_acc(self):
-		if self.doc.customer and not cint(self.doc.is_pos):
-			acc_head = webnotes.conn.sql("select name from `tabAccount` where name = %s and docstatus != 2", (cstr(self.doc.customer) + " - " + self.get_company_abbr()))
-			if acc_head and acc_head[0][0]:
-				if not cstr(acc_head[0][0]) == cstr(self.doc.debit_to):
-					msgprint("Debit To %s do not match with Customer %s for Company %s i.e. %s" %(self.doc.debit_to,self.doc.customer,self.doc.company,cstr(acc_head[0][0])))
-					raise Exception, "Validation Error "
-			if not acc_head:
-				 msgprint("%s does not have an Account Head in %s. You must first create it from the Customer Master" % (self.doc.customer, self.doc.company))
-				 raise Exception, "Validation Error "
-
-
-	# Validate Debit To Account
-	# 1. Account Exists
-	# 2. Is a Debit Account
-	# 3. Is a PL Account
-	# ---------------------------
-	def validate_debit_acc(self):
-		acc = webnotes.conn.sql("select debit_or_credit, is_pl_account from tabAccount where name = '%s' and docstatus != 2" % self.doc.debit_to)
-		if not acc:
-			msgprint("Account: "+ self.doc.debit_to + " does not exist")
-			raise Exception
-		elif acc[0][0] and acc[0][0] != 'Debit':
-			msgprint("Account: "+ self.doc.debit_to + " is not a debit account")
-			raise Exception
-		elif acc[0][1] and acc[0][1] != 'No':
-			msgprint("Account: "+ self.doc.debit_to + " is a pl account")
-			raise Exception
-
-
-	# Validate Fixed Asset Account and whether Income Account Entered Exists
-	# -----------------------------------------------------------------------
-	def validate_fixed_asset_account(self):
-		for d in getlist(self.doclist,'entries'):
-			item = webnotes.conn.sql("select name,is_asset_item,is_sales_item from `tabItem` where name = '%s' and (ifnull(end_of_life,'')='' or end_of_life = '0000-00-00' or end_of_life >	now())"% d.item_code)
-			acc =	webnotes.conn.sql("select account_type from `tabAccount` where name = '%s' and docstatus != 2" % d.income_account)
-			if not acc:
-				msgprint("Account: "+d.income_account+" does not exist in the system")
-				raise Exception
-			elif item and item[0][1] == 'Yes' and not acc[0][0] == 'Fixed Asset Account':
-				msgprint("Please select income head with account type 'Fixed Asset Account' as Item %s is an asset item" % d.item_code)
-				raise Exception
-
-
-
-	# Set totals in words
-	#--------------------
-	def set_in_words(self):
-		dcc = TransactionBase().get_company_currency(self.doc.company)
-		self.doc.in_words = get_obj('Sales Common').get_total_in_words(dcc, self.doc.rounded_total)
-		self.doc.in_words_export = get_obj('Sales Common').get_total_in_words(self.doc.currency, self.doc.rounded_total_export)
-
-	# Clear Advances
-	# --------------
-	def clear_advances(self):
-		get_obj('GL Control').clear_advances(self, 'Advance Adjustment Detail','advance_adjustment_details')
-
-
-	# set aging date
-	#-------------------
-	def set_aging_date(self):
-		if self.doc.is_opening != 'Yes':
-			self.doc.aging_date = self.doc.posting_date
-		elif not self.doc.aging_date:
-			msgprint("Aging Date is mandatory for opening entry")
-			raise Exception
-			
-
-	# Set against account for debit to account
-	#------------------------------------------
-	def set_against_income_account(self):
-		against_acc = []
-		for d in getlist(self.doclist, 'entries'):
-			if d.income_account not in against_acc:
-				against_acc.append(d.income_account)
-		self.doc.against_income_account = ','.join(against_acc)
-
-	def add_remarks(self):
-		if not self.doc.remarks: self.doc.remarks = 'No Remarks'
-
-	#check in manage account if sales order / delivery note required or not.
-	def so_dn_required(self):
-		dict = {'Sales Order':'so_required','Delivery Note':'dn_required'}
-		for i in dict:	
-			res = webnotes.conn.sql("select value from `tabSingles` where doctype = 'Manage Account' and field = '%s'"%dict[i])
-			if res and res[0][0] == 'Yes':
-				for d in getlist(self.doclist,'entries'):
-					if not d.fields[i.lower().replace(' ','_')]:
-						msgprint("%s No. required against item %s"%(i,d.item_code))
-						raise Exception
-
-	#check for does customer belong to same project as entered..
-	#-------------------------------------------------------------------------------------------------
-	def validate_proj_cust(self):
-		if self.doc.project_name and self.doc.customer:
-			res = webnotes.conn.sql("select name from `tabProject` where name = '%s' and (customer = '%s' or ifnull(customer,'')='')"%(self.doc.project_name, self.doc.customer))
-			if not res:
-				msgprint("Customer - %s does not belong to project - %s. \n\nIf you want to use project for multiple customers then please make customer details blank in that project."%(self.doc.customer,self.doc.project_name))
-				raise Exception
-
-	def validate_pos(self):
-		if not self.doc.cash_bank_account:
-			msgprint("Cash/Bank Account is mandatory for POS entry")
-			raise Exception
-		if (flt(self.doc.paid_amount) + flt(self.doc.write_off_amount) - round(flt(self.doc.grand_total), 2))>0.001:
-			msgprint("(Paid amount + Write Off Amount) can not be greater than Grand Total")
-			raise Exception
-
-
-	# ********* UPDATE CURRENT STOCK *****************************
-	def update_current_stock(self):
-		for d in getlist(self.doclist, 'entries'):
-			bin = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
-			d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
-
-	def validate_item_code(self):
-		for d in getlist(self.doclist, 'entries'):
-			if not d.item_code:
-				msgprint("Please enter Item Code at line no : %s to update stock for POS or remove check from Update Stock in Basic Info Tab." % (d.idx))
-				raise Exception
-
-	# Validate Write Off Account
-	# -------------------------------
-	def validate_write_off_account(self):
-		if flt(self.doc.write_off_amount) and not self.doc.write_off_account:
-			msgprint("Please enter Write Off Account", raise_exception=1)
-
-
-	def validate_c_form(self):
-		""" Blank C-form no if C-form applicable marked as 'No'"""
-		if self.doc.amended_from and self.doc.c_form_applicable == 'No' and self.doc.c_form_no:
-			webnotes.conn.sql("""delete from `tabC-Form Invoice Detail` where invoice_no = %s
-					and parent = %s""", (self.doc.amended_from,	self.doc.c_form_no))
-
-			webnotes.conn.set(self.doc, 'c_form_no', '')
-	 
-	# VALIDATE
-	# ====================================================================================
-	def validate(self):
-		self.so_dn_required()
-		#self.dn_required()
-		self.validate_proj_cust()
-		sales_com_obj = get_obj('Sales Common')
-		sales_com_obj.check_stop_sales_order(self)
-		sales_com_obj.check_active_sales_items(self)
-		sales_com_obj.check_conversion_rate(self)
-		sales_com_obj.validate_max_discount(self, 'entries')	 #verify whether rate is not greater than tolerance
-		sales_com_obj.get_allocated_sum(self)	# this is to verify that the allocated % of sales persons is 100%
-		sales_com_obj.validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Posting Date')
-		if not self.doc.customer:
-			get_obj('Sales Common').get_customer_details(self, inv_det_reqd = 0)
-		self.validate_customer()
-		self.validate_debit_to_acc()
-		self.validate_debit_acc()
-		self.validate_fixed_asset_account()
-		self.add_remarks()
-		if cint(self.doc.is_pos):
-			self.validate_pos()
-			self.validate_write_off_account()
-			if cint(self.doc.update_stock):
-				get_obj('Stock Ledger').validate_serial_no(self, 'entries')
-				self.validate_item_code()
-				self.update_current_stock()
-		self.set_in_words()
-		if not self.doc.is_opening:
-			self.doc.is_opening = 'No'
-		self.set_aging_date()
-		self.clear_advances()
-		# Set against account
-		self.set_against_income_account()
-		self.validate_c_form()
-
-		
-# *************************************************** ON SUBMIT **********************************************
-	# Check Ref Document's docstatus
-	# -------------------------------
-	def check_prev_docstatus(self):
-		for d in getlist(self.doclist,'entries'):
-			if d.sales_order:
-				submitted = webnotes.conn.sql("select name from `tabSales Order` where docstatus = 1 and name = '%s'" % d.sales_order)
-				if not submitted:
-					msgprint("Sales Order : "+ cstr(d.sales_order) +" is not submitted")
-					raise Exception , "Validation Error."
-
-			if d.delivery_note:
-				submitted = webnotes.conn.sql("select name from `tabDelivery Note` where docstatus = 1 and name = '%s'" % d.delivery_note)
-				if not submitted:
-					msgprint("Delivery Note : "+ cstr(d.delivery_note) +" is not submitted")
-					raise Exception , "Validation Error."
-
-	#Set Actual Qty based on item code and warehouse
-	#------------------------------------------------------
-	def set_actual_qty(self):
-		for d in getlist(self.doclist, 'delivery_note_details'):
-			if d.item_code and d.warehouse:
-				actual_qty = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (d.item_code, d.warehouse))
-				d.actual_qty = actual_qty and flt(actual_qty[0][0]) or 0					
-
-	# Check qty in stock depends on item code and warehouse
-	#-------------------------------------------------------
-	def check_qty_in_stock(self):
-		for d in getlist(self.doclist, 'entries'):
-			is_stock_item = webnotes.conn.sql("select is_stock_item from `tabItem` where name = '%s'" % d.item_code)[0][0]
-			actual_qty = 0
-			if d.item_code and d.warehouse:
-				actual_qty = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (d.item_code, d.warehouse))
-				actual_qty = actual_qty and flt(actual_qty[0][0]) or 0
-
-			if is_stock_item == 'Yes' and flt(d.qty) > flt(actual_qty):
-				msgprint("For Item: " + cstr(d.item_code) + " at Warehouse: " + cstr(d.warehouse) + " Quantity: " + cstr(d.qty) +" is not Available. (Must be less than or equal to " + cstr(actual_qty) + " )")
-				raise Exception, "Validation Error"
-
-	
-
-	# ********************** Make Stock Entry ************************************
-	def make_sl_entry(self, d, wh, qty, in_value, update_stock):
-		st_uom = webnotes.conn.sql("select stock_uom from `tabItem` where name = '%s'"%d.item_code)
-		self.values.append({
-			'item_code'					 : d.item_code,
-			'warehouse'					 : wh,
-			'transaction_date'			: getdate(self.doc.modified).strftime('%Y-%m-%d'),
-			'posting_date'				: self.doc.posting_date,
-			'posting_time'				: self.doc.posting_time,
-			'voucher_type'				: 'Receivable Voucher',
-			'voucher_no'					: cstr(self.doc.name),
-			'voucher_detail_no'	 : cstr(d.name), 
-			'actual_qty'					: qty, 
-			'stock_uom'					 : st_uom and st_uom[0][0] or '',
-			'incoming_rate'			 : in_value,
-			'company'						 : self.doc.company,
-			'fiscal_year'				 : self.doc.fiscal_year,
-			'is_cancelled'				: (update_stock==1) and 'No' or 'Yes',
-			'batch_no'						: cstr(d.batch_no),
-			'serial_no'					 : d.serial_no
-		})		
-			
-
-	# UPDATE STOCK LEDGER
-	# ---------------------------------------------------------------------------
-	def update_stock_ledger(self, update_stock, clear = 0):
-		self.values = []
-		for d in getlist(self.doclist, 'entries'):
-			stock_item = webnotes.conn.sql("SELECT is_stock_item, is_sample_item FROM tabItem where name = '%s'"%(d.item_code), as_dict = 1) # stock ledger will be updated only if it is a stock item
-			if stock_item[0]['is_stock_item'] == "Yes":
-				# Reduce actual qty from warehouse
-				self.make_sl_entry( d, d.warehouse, - flt(d.qty) , 0, update_stock)
-		get_obj('Stock Ledger', 'Stock Ledger').update_stock(self.values, self.doc.amended_from and 'Yes' or 'No')
-
-
-	#-------------------POS Stock Updatation Part----------------------------------------------
-	def pos_update_stock(self):
-		self.check_qty_in_stock()	
-		self.update_stock_ledger(update_stock = 1)
-	
-	# ********** Get Actual Qty of item in warehouse selected *************
-	def get_actual_qty(self,args):
-		args = eval(args)
-		actual_qty = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (args['item_code'], args['warehouse']), as_dict=1)
-		ret = {
-			 'actual_qty' : actual_qty and flt(actual_qty[0]['actual_qty']) or 0
-		}
-		return ret
-
-	# Make GL Entries
-	# -------------------------
-	def make_gl_entries(self, is_cancel=0):
-		mapper = self.doc.is_pos and self.doc.write_off_account and 'POS with write off' or self.doc.is_pos and not self.doc.write_off_account and 'POS' or ''
-		update_outstanding = self.doc.is_pos and self.doc.write_off_account and 'No' or 'Yes'
-		get_obj(dt='GL Control').make_gl_entries(self.doc, self.doclist,cancel = is_cancel, use_mapper = mapper, update_outstanding = update_outstanding, merge_entries = cint(self.doc.is_pos) != 1 and 1 or 0)
-		
-
-	# On Submit
-	# ---------
-	def on_submit(self):
-		if cint(self.doc.is_pos) == 1:
-			if cint(self.doc.update_stock) == 1:
-				sl_obj = get_obj("Stock Ledger")
-				sl_obj.validate_serial_no_warehouse(self, 'entries')
-				sl_obj.update_serial_record(self, 'entries', is_submit = 1, is_incoming = 0)
-				self.pos_update_stock()
-		else:
-			self.check_prev_docstatus()
-			get_obj("Sales Common").update_prevdoc_detail(1,self)
-
-			# Check for Approving Authority
-			if not self.doc.recurring_id:
-				get_obj('Authorization Control').validate_approving_authority(self.doc.doctype, self.doc.company, self.doc.grand_total, self)
-
-		# this sequence because outstanding may get -ve		
-		self.make_gl_entries()
-
-		if not cint(self.doc.is_pos) == 1:
-			self.update_against_document_in_jv()
-
-		self.update_c_form()
-
-
-	def update_c_form(self):
-		"""Update amended id in C-form"""
-		if self.doc.c_form_no and self.doc.amended_from:
-			webnotes.conn.sql("""update `tabC-Form Invoice Detail` set invoice_no = %s,
-					invoice_date = %s, territory = %s, net_total = %s,
-					grand_total = %s where invoice_no = %s and parent = %s""", (self.doc.name, self.doc.amended_from, self.doc.c_form_no))
-	
-
-			
-# *************************************************** ON CANCEL **********************************************
-	# Check Next Document's docstatus
-	# --------------------------------
-	def check_next_docstatus(self):
-		submit_jv = webnotes.conn.sql("select t1.name from `tabJournal Voucher` t1,`tabJournal Voucher Detail` t2 where t1.name = t2.parent and t2.against_invoice = '%s' and t1.docstatus = 1" % (self.doc.name))
-		if submit_jv:
-			msgprint("Journal Voucher : " + cstr(submit_jv[0][0]) + " has been created against " + cstr(self.doc.doctype) + ". So " + cstr(self.doc.doctype) + " cannot be Cancelled.")
-			raise Exception, "Validation Error."
-
-
-	# On Cancel
-	# ----------
-	def on_cancel(self):
-		if cint(self.doc.is_pos) == 1:
-			if cint(self.doc.update_stock) == 1:
-				get_obj('Stock Ledger').update_serial_record(self, 'entries', is_submit = 0, is_incoming = 0)
-				self.update_stock_ledger(update_stock = -1)
-		else:
-			sales_com_obj = get_obj(dt = 'Sales Common')
-			sales_com_obj.check_stop_sales_order(self)
-			self.check_next_docstatus()
-			sales_com_obj.update_prevdoc_detail(0,self)
-
-		self.make_gl_entries(is_cancel=1)
-
-	# Get Warehouse
-	def get_warehouse(self):
-		w = webnotes.conn.sql("select warehouse from `tabPOS Setting` where ifnull(user,'') = '%s' and company = '%s'" % (session['user'], self.doc.company))
-		w = w and w[0][0] or ''
-		if not w:
-			ps = webnotes.conn.sql("select name, warehouse from `tabPOS Setting` where ifnull(user,'') = '' and company = '%s'" % self.doc.company)
-			if not ps:
-				msgprint("To make POS entry, please create POS Setting from Setup --> Accounts --> POS Setting and refresh the system.")
-				raise Exception
-			elif not ps[0][1]:
-				msgprint("Please enter warehouse in POS Setting")
-			else:
-				w = ps[0][1]
-		return w
-
-	# on update
-	def on_update(self):
-		# Set default warehouse from pos setting
-		#----------------------------------------
-		if cint(self.doc.is_pos) == 1:
-			self.set_actual_qty()
-			w = self.get_warehouse()
-			if w:
-				for d in getlist(self.doclist, 'entries'):
-					if not d.warehouse:
-						d.warehouse = cstr(w)
-
-			if flt(self.doc.paid_amount) == 0: 
-				webnotes.conn.set(self.doc,'paid_amount',(flt(self.doc.grand_total) - flt(self.doc.write_off_amount)))
-
-		else:
-			webnotes.conn.set(self.doc,'paid_amount',0)
-
-		webnotes.conn.set(self.doc,'outstanding_amount',flt(self.doc.grand_total) - flt(self.doc.total_advance) - flt(self.doc.paid_amount) - flt(self.doc.write_off_amount))
-
-########################################################################
-# Repair Outstanding
-
-	def repair_rv_outstanding(self):
-		get_obj(dt = 'GL Control').repair_voucher_outstanding(self)
-
-
-	#-------------------------------------------------------------------------------------
-	def on_update_after_submit(self):
-		self.convert_into_recurring()
-		
-
-	def convert_into_recurring(self):
-		if self.doc.convert_into_recurring_invoice:
-			self.set_next_date()
-			if not self.doc.recurring_id:
-				webnotes.conn.set(self.doc, 'recurring_id', make_autoname('RECINV/.#####'))
-		elif self.doc.recurring_id:
-			webnotes.conn.sql("""update `tabReceivable Voucher` set convert_into_recurring_invoice = 0 where recurring_id = %s""", self.doc.recurring_id)
-
-	def set_next_date(self):
-		""" Set next date on which auto invoice will be created"""
-
-		if not self.doc.repeat_on_day_of_month:
-			msgprint("""Please enter 'Repeat on Day of Month' field value. \nThe day of the month on which auto invoice 
-						will be generated e.g. 05, 28 etc.""", raise_exception=1)
-
-		import datetime
-		m = getdate(self.doc.posting_date).month + 1
-		y = getdate(self.doc.posting_date).year
-		if m > 12:
-			m, y = 1, y+1
-		try:
-			next_date = datetime.date(y, m, cint(self.doc.repeat_on_day_of_month))
-		except:
-			import calendar
-			last_day = calendar.monthrange(y, m)[1]
-			next_date = datetime.date(y, m, last_day)
-		next_date = next_date.strftime("%Y-%m-%d")
-
-		webnotes.conn.set(self.doc, 'next_date', next_date)
diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt
deleted file mode 100644
index 9d84f21..0000000
--- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt
+++ /dev/null
@@ -1,1521 +0,0 @@
-# DocType, Receivable Voucher
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:18',
-		'docstatus': 0,
-		'modified': '2012-03-06 11:05:53',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Receivable Voucher',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1330671142',
-		'change_log': u'1. Change in pull_details method dt.-26-06-2009',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'module': u'Accounts',
-		'name': '__common__',
-		'read_only_onload': 1,
-		'search_fields': u'posting_date, due_date, debit_to, fiscal_year, grand_total, outstanding_amount',
-		'section_style': u'Tabbed',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'subject': u'To %(customer_name)s worth %(currency)s %(grand_total_export)s due on %(due_date)s | %(outstanding_amount)s outstanding',
-		'version': 416
-	},
-
-	# These values are common for all DocFormat
-	{
-		'doctype': u'DocFormat',
-		'name': '__common__',
-		'parent': u'Receivable Voucher',
-		'parentfield': u'formats',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
-		'parent': u'Receivable Voucher',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'read': 1
-	},
-
-	# DocType, Receivable Voucher
-	{
-		'doctype': 'DocType',
-		'name': u'Receivable Voucher'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Accounts Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Accounts Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Accounts User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Accounts User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'match': u'customer',
-		'permlevel': 0,
-		'role': u'Customer',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'POS Invoice'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'POS Invoice'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Sales Invoice Classic'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Sales Invoice Modern'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Sales Invoice Spartan'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Basic Info',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:doc.retail_transaction!="Yes"',
-		'description': u'To manage multiple series please go to Setup > Manage Series',
-		'doctype': u'DocField',
-		'fieldname': u'naming_series',
-		'fieldtype': u'Select',
-		'label': u'Series',
-		'no_copy': 1,
-		'oldfieldname': u'naming_series',
-		'oldfieldtype': u'Select',
-		'options': u'INV\nINV/10-11/',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'is_pos',
-		'fieldtype': u'Check',
-		'label': u'Is POS',
-		'oldfieldname': u'is_pos',
-		'oldfieldtype': u'Check',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'default': u'1',
-		'depends_on': u'eval:doc.is_pos==1',
-		'doctype': u'DocField',
-		'fieldname': u'update_stock',
-		'fieldtype': u'Check',
-		'label': u'Update Stock',
-		'oldfieldname': u'update_stock',
-		'oldfieldtype': u'Check',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'The account to which you will pay (have paid) the money to.',
-		'doctype': u'DocField',
-		'fieldname': u'debit_to',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Debit To',
-		'oldfieldname': u'debit_to',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'customer',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'label': u'Customer',
-		'no_copy': 0,
-		'oldfieldname': u'customer',
-		'oldfieldtype': u'Link',
-		'options': u'Customer',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'customer_address',
-		'fieldtype': u'Link',
-		'label': u'Customer Address',
-		'options': u'Address',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_person',
-		'fieldtype': u'Link',
-		'label': u'Contact Person',
-		'options': u'Contact',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'customer_name',
-		'fieldtype': u'Data',
-		'label': u'Name',
-		'oldfieldname': u'customer_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'address_display',
-		'fieldtype': u'Small Text',
-		'label': u'Address',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_display',
-		'fieldtype': u'Small Text',
-		'label': u'Contact',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_mobile',
-		'fieldtype': u'Text',
-		'label': u'Mobile No',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_email',
-		'fieldtype': u'Text',
-		'label': u'Contact Email',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'Today',
-		'description': u'The date at which current entry will get or has actually executed.',
-		'doctype': u'DocField',
-		'fieldname': u'posting_date',
-		'fieldtype': u'Date',
-		'in_filter': 1,
-		'label': u'Posting Date',
-		'no_copy': 1,
-		'oldfieldname': u'posting_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'posting_time',
-		'fieldtype': u'Time',
-		'label': u'Posting Time',
-		'no_copy': 1,
-		'oldfieldname': u'posting_time',
-		'oldfieldtype': u'Time',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'Today',
-		'description': u'Enter the date by which payments from customer is expected against this invoice.',
-		'doctype': u'DocField',
-		'fieldname': u'due_date',
-		'fieldtype': u'Date',
-		'in_filter': 1,
-		'label': u'Due Date',
-		'no_copy': 1,
-		'oldfieldname': u'due_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'description': u'The date at which current entry is corrected in the system.',
-		'doctype': u'DocField',
-		'fieldname': u'amendment_date',
-		'fieldtype': u'Date',
-		'label': u'Amendment Date',
-		'no_copy': 1,
-		'oldfieldname': u'amendment_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'amended_from',
-		'fieldtype': u'Link',
-		'label': u'Amended From',
-		'no_copy': 1,
-		'oldfieldname': u'amended_from',
-		'oldfieldtype': u'Link',
-		'options': u'Receivable Voucher',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'mode_of_payment',
-		'fieldtype': u'Select',
-		'label': u'Mode of Payment',
-		'oldfieldname': u'mode_of_payment',
-		'oldfieldtype': u'Select',
-		'options': u'link:Mode of Payment',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'territory',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Territory',
-		'options': u'Territory',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'customer_group',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Customer Group',
-		'options': u'Customer Group',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Items',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'price_list_name',
-		'fieldtype': u'Select',
-		'label': u'Price List',
-		'oldfieldname': u'price_list_name',
-		'oldfieldtype': u'Select',
-		'options': u'link:Price List',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Select the currency in which price list is maintained',
-		'doctype': u'DocField',
-		'fieldname': u'price_list_currency',
-		'fieldtype': u'Select',
-		'label': u'Price List Currency',
-		'options': u'link:Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u"Rate at which Price list currency is converted to customer's base currency",
-		'doctype': u'DocField',
-		'fieldname': u'plc_conversion_rate',
-		'fieldtype': u'Currency',
-		'label': u'Price List Currency Conversion Rate',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'currency',
-		'fieldtype': u'Select',
-		'label': u'Currency',
-		'oldfieldname': u'currency',
-		'oldfieldtype': u'Select',
-		'options': u'link:Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'1.00',
-		'description': u"Rate at which Customer Currency is converted to customer's base currency",
-		'doctype': u'DocField',
-		'fieldname': u'conversion_rate',
-		'fieldtype': u'Currency',
-		'label': u'Conversion Rate',
-		'oldfieldname': u'conversion_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Select Items from Sales Order',
-		'doctype': u'DocField',
-		'fieldname': u'sales_order_main',
-		'fieldtype': u'Link',
-		'label': u'Sales Order',
-		'oldfieldname': u'sales_order_main',
-		'oldfieldtype': u'Link',
-		'options': u'Sales Order',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Select Items from Delivery Note',
-		'doctype': u'DocField',
-		'fieldname': u'delivery_note_main',
-		'fieldtype': u'Link',
-		'label': u'Delivery Note',
-		'oldfieldname': u'delivery_note_main',
-		'oldfieldtype': u'Link',
-		'options': u'Delivery Note',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Get Items',
-		'oldfieldtype': u'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'options': u'Simple',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'entries',
-		'fieldtype': u'Table',
-		'label': u'Entries',
-		'oldfieldname': u'entries',
-		'oldfieldtype': u'Table',
-		'options': u'RV Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Re-Calculate Values',
-		'oldfieldtype': u'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'description': u'Will be calculated automatically when you enter the details',
-		'doctype': u'DocField',
-		'fieldname': u'net_total',
-		'fieldtype': u'Currency',
-		'label': u'Net Total*',
-		'oldfieldname': u'net_total',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:doc.is_pos==1',
-		'doctype': u'DocField',
-		'fieldname': u'cash_bank_account',
-		'fieldtype': u'Link',
-		'label': u'Cash/Bank Account',
-		'oldfieldname': u'cash_bank_account',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:doc.is_pos==1',
-		'doctype': u'DocField',
-		'fieldname': u'paid_amount',
-		'fieldtype': u'Currency',
-		'label': u'Paid Amount',
-		'oldfieldname': u'paid_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:doc.is_pos==1',
-		'doctype': u'DocField',
-		'fieldname': u'write_off_account',
-		'fieldtype': u'Link',
-		'label': u'Write Off Account',
-		'options': u'Account',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:doc.is_pos==1',
-		'doctype': u'DocField',
-		'fieldname': u'write_off_cost_center',
-		'fieldtype': u'Link',
-		'label': u'Write Off Cost Center',
-		'options': u'Cost Center',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:doc.is_pos==1',
-		'doctype': u'DocField',
-		'fieldname': u'write_off_amount',
-		'fieldtype': u'Currency',
-		'label': u'Write Off Amount',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Taxes',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'charge',
-		'fieldtype': u'Link',
-		'label': u'Charge',
-		'oldfieldname': u'charge',
-		'oldfieldtype': u'Link',
-		'options': u'Other Charges',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Get Charges',
-		'oldfieldtype': u'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'other_charges',
-		'fieldtype': u'Table',
-		'label': u'Taxes1',
-		'oldfieldname': u'other_charges',
-		'oldfieldtype': u'Table',
-		'options': u'RV Tax Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Calculate Charges',
-		'oldfieldtype': u'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'other_charges_total',
-		'fieldtype': u'Currency',
-		'label': u'Total Charges',
-		'oldfieldname': u'other_charges_total',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'HTML',
-		'label': u'Other Charges Calculation',
-		'oldfieldtype': u'HTML',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Totals',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'grand_total',
-		'fieldtype': u'Currency',
-		'in_filter': 1,
-		'label': u'Grand Total',
-		'oldfieldname': u'grand_total',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'rounded_total',
-		'fieldtype': u'Currency',
-		'label': u'Rounded Total',
-		'oldfieldname': u'rounded_total',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'In Words will be visible once you save the Sales Invoice.',
-		'doctype': u'DocField',
-		'fieldname': u'in_words',
-		'fieldtype': u'Data',
-		'label': u'In Words',
-		'oldfieldname': u'in_words',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'total_advance',
-		'fieldtype': u'Currency',
-		'label': u'Total Advance',
-		'oldfieldname': u'total_advance',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'outstanding_amount',
-		'fieldtype': u'Currency',
-		'label': u'Outstanding Amount',
-		'no_copy': 1,
-		'oldfieldname': u'outstanding_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'grand_total_export',
-		'fieldtype': u'Currency',
-		'label': u'Grand Total (Export)',
-		'oldfieldname': u'grand_total_export',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'rounded_total_export',
-		'fieldtype': u'Currency',
-		'label': u'Rounded Total (Export)',
-		'oldfieldname': u'rounded_total_export',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'in_words_export',
-		'fieldtype': u'Data',
-		'label': u'In Words (Export)',
-		'oldfieldname': u'in_words_export',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'gross_profit',
-		'fieldtype': u'Currency',
-		'label': u'Gross Profit',
-		'oldfieldname': u'gross_profit',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'gross_profit_percent',
-		'fieldtype': u'Currency',
-		'label': u'Gross Profit (%)',
-		'oldfieldname': u'gross_profit_percent',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Terms',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'tc_name',
-		'fieldtype': u'Link',
-		'label': u'Select Terms',
-		'oldfieldname': u'tc_name',
-		'oldfieldtype': u'Link',
-		'options': u'Term',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Get Terms',
-		'oldfieldtype': u'Button',
-		'options': u'get_tc_details',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Server'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'HTML',
-		'label': u'Terms HTML',
-		'oldfieldtype': u'HTML',
-		'options': u'You can add Terms and Notes that will be printed in the Transaction',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'terms',
-		'fieldtype': u'Text Editor',
-		'label': u'Term Details',
-		'oldfieldname': u'terms',
-		'oldfieldtype': u'Text Editor',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'More Info',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No',
-		'doctype': u'DocField',
-		'fieldname': u'is_opening',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Is Opening',
-		'oldfieldname': u'is_opening',
-		'oldfieldtype': u'Select',
-		'options': u'No\nYes',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'aging_date',
-		'fieldtype': u'Date',
-		'label': u'Aging Date',
-		'oldfieldname': u'aging_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'letter_head',
-		'fieldtype': u'Select',
-		'label': u'Letter Head',
-		'oldfieldname': u'letter_head',
-		'oldfieldtype': u'Select',
-		'options': u'link:Letter Head',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'c_form_applicable',
-		'fieldtype': u'Select',
-		'label': u'C-Form Applicable',
-		'no_copy': 1,
-		'options': u'No\nYes',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'c_form_no',
-		'fieldtype': u'Link',
-		'label': u'C-Form No',
-		'no_copy': 1,
-		'options': u'C-Form',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u"eval:doc.source == 'Campaign'",
-		'doctype': u'DocField',
-		'fieldname': u'campaign',
-		'fieldtype': u'Link',
-		'label': u'Campaign',
-		'oldfieldname': u'campaign',
-		'oldfieldtype': u'Link',
-		'options': u'Campaign',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Track this Sales Invoice against any Project',
-		'doctype': u'DocField',
-		'fieldname': u'project_name',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Project Name',
-		'oldfieldname': u'project_name',
-		'oldfieldtype': u'Link',
-		'options': u'Project',
-		'permlevel': 0,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'select_print_heading',
-		'fieldtype': u'Link',
-		'label': u'Select Print Heading',
-		'no_copy': 1,
-		'oldfieldname': u'select_print_heading',
-		'oldfieldtype': u'Link',
-		'options': u'Print Heading',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'source',
-		'fieldtype': u'Select',
-		'label': u'Source',
-		'oldfieldname': u'source',
-		'oldfieldtype': u'Select',
-		'options': u"\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign",
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'company',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Company',
-		'oldfieldname': u'company',
-		'oldfieldtype': u'Link',
-		'options': u'Company',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'fiscal_year',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Fiscal Year',
-		'no_copy': 0,
-		'oldfieldname': u'fiscal_year',
-		'oldfieldtype': u'Select',
-		'options': u'link:Fiscal Year',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldname': u'cancel_reason',
-		'fieldtype': u'Data',
-		'label': u'Cancel Reason',
-		'oldfieldname': u'cancel_reason',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'remarks',
-		'fieldtype': u'Small Text',
-		'label': u'Remarks',
-		'no_copy': 1,
-		'oldfieldname': u'remarks',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:!doc.is_pos',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Advances',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Get Advances Received',
-		'oldfieldtype': u'Button',
-		'options': u'get_advances',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'advance_adjustment_details',
-		'fieldtype': u'Table',
-		'label': u'Advance Adjustment Detail',
-		'oldfieldname': u'advance_adjustment_details',
-		'oldfieldtype': u'Table',
-		'options': u'Advance Adjustment Detail',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Sales Team',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'sales_partner',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Sales Partner',
-		'oldfieldname': u'sales_partner',
-		'oldfieldtype': u'Link',
-		'options': u'Sales Partner',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'commission_rate',
-		'fieldtype': u'Currency',
-		'label': u'Commission Rate (%)',
-		'oldfieldname': u'commission_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'total_commission',
-		'fieldtype': u'Currency',
-		'label': u'Total Commission',
-		'oldfieldname': u'total_commission',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'options': u'Simple',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'sales_team',
-		'fieldtype': u'Table',
-		'label': u'Sales Team1',
-		'oldfieldname': u'sales_team',
-		'oldfieldtype': u'Table',
-		'options': u'Sales Team',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'depends_on': u'eval:doc.docstatus==1',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Recurring Invoice',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': u'White:FFF',
-		'depends_on': u'eval:doc.docstatus==1',
-		'description': u'Check if recurring invoice, uncheck to stop recurring or put proper End Date',
-		'doctype': u'DocField',
-		'fieldname': u'convert_into_recurring_invoice',
-		'fieldtype': u'Check',
-		'label': u'Convert into Recurring Invoice',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'depends_on': u'eval:doc.convert_into_recurring_invoice==1',
-		'description': u'The day of the month on which auto invoice will be generated e.g. 05, 28 etc ',
-		'doctype': u'DocField',
-		'fieldname': u'repeat_on_day_of_month',
-		'fieldtype': u'Data',
-		'label': u'Repeat on Day of Month',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'depends_on': u'eval:doc.convert_into_recurring_invoice==1',
-		'description': u'The date on which recurring invoice will be stop',
-		'doctype': u'DocField',
-		'fieldname': u'end_date',
-		'fieldtype': u'Date',
-		'label': u'End Date',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'no_copy': 0,
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'depends_on': u'eval:doc.convert_into_recurring_invoice==1',
-		'description': u'Enter email id separated by commas, invoice will be mailed automatically on particular date',
-		'doctype': u'DocField',
-		'fieldname': u'notification_email_address',
-		'fieldtype': u'Small Text',
-		'label': u'Notification Email Address',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'depends_on': u'eval:doc.convert_into_recurring_invoice==1',
-		'description': u'The unique id for tracking all recurring invoices ',
-		'doctype': u'DocField',
-		'fieldname': u'recurring_id',
-		'fieldtype': u'Data',
-		'label': u'Recurring Id',
-		'no_copy': 1,
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'depends_on': u'eval:doc.convert_into_recurring_invoice==1',
-		'description': u'The date on which next invoice will be generated ',
-		'doctype': u'DocField',
-		'fieldname': u'next_date',
-		'fieldtype': u'Date',
-		'label': u'Next Date',
-		'no_copy': 1,
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'against_income_account',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Against Income Account',
-		'no_copy': 1,
-		'oldfieldname': u'against_income_account',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldtype': u'Button',
-		'label': u'Repair Outstanding Amt',
-		'oldfieldtype': u'Button',
-		'options': u'repair_rv_outstanding',
-		'permlevel': 0,
-		'print_hide': 1
-	}
-]
diff --git a/erpnext/accounts/doctype/rv_detail/__init__.py b/erpnext/accounts/doctype/rv_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/doctype/rv_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/doctype/rv_detail/rv_detail.txt b/erpnext/accounts/doctype/rv_detail/rv_detail.txt
deleted file mode 100644
index 314dcd7..0000000
--- a/erpnext/accounts/doctype/rv_detail/rv_detail.txt
+++ /dev/null
@@ -1,435 +0,0 @@
-# DocType, RV Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:20',
-		'docstatus': 0,
-		'modified': '2012-03-05 15:01:04',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': u'INVD.######',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': u'Accounts',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 29
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'RV Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, RV Detail
-	{
-		'doctype': 'DocType',
-		'name': u'RV Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 0,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_name',
-		'fieldtype': u'Data',
-		'in_filter': 0,
-		'label': u'Item Name',
-		'oldfieldname': u'item_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': u'200px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'qty',
-		'fieldtype': u'Currency',
-		'label': u'Qty',
-		'oldfieldname': u'qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'stock_uom',
-		'fieldtype': u'Data',
-		'label': u'UOM',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Price List Rate',
-		'oldfieldname': u'ref_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'adj_rate',
-		'fieldtype': u'Float',
-		'label': u'Discount (%)',
-		'oldfieldname': u'adj_rate',
-		'oldfieldtype': u'Float',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'export_rate',
-		'fieldtype': u'Currency',
-		'label': u'Basic Rate',
-		'oldfieldname': u'export_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'export_amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount',
-		'oldfieldname': u'export_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'base_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Price List Rate*',
-		'oldfieldname': u'base_ref_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'basic_rate',
-		'fieldtype': u'Currency',
-		'in_filter': 0,
-		'label': u'Basic Rate*',
-		'oldfieldname': u'basic_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount*',
-		'oldfieldname': u'amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'warehouse',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'label': u'Warehouse',
-		'oldfieldname': u'warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'income_account',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Income Account',
-		'oldfieldname': u'income_account',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'120px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'Purchase - TC',
-		'doctype': u'DocField',
-		'fieldname': u'cost_center',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Cost Center',
-		'oldfieldname': u'cost_center',
-		'oldfieldtype': u'Link',
-		'options': u'Cost Center',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'120px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'serial_no',
-		'fieldtype': u'Small Text',
-		'in_filter': 1,
-		'label': u'Serial No',
-		'oldfieldname': u'serial_no',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'batch_no',
-		'fieldtype': u'Link',
-		'label': u'Batch No',
-		'options': u'Batch',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_group',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Item Group',
-		'oldfieldname': u'item_group',
-		'oldfieldtype': u'Link',
-		'options': u'Item Group',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'brand',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Brand Name',
-		'oldfieldname': u'brand',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'actual_qty',
-		'fieldtype': u'Currency',
-		'label': u'Available Qty at Warehouse',
-		'oldfieldname': u'actual_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'delivered_qty',
-		'fieldtype': u'Currency',
-		'label': u'Delivered Qty',
-		'oldfieldname': u'delivered_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'sales_order',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Sales Order',
-		'oldfieldname': u'sales_order',
-		'oldfieldtype': u'Link',
-		'options': u'Sales Order',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'so_detail',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'SO Detail ',
-		'oldfieldname': u'so_detail',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'delivery_note',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Delivery Note',
-		'oldfieldname': u'delivery_note',
-		'oldfieldtype': u'Link',
-		'options': u'Delivery Note',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'dn_detail',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'DN Detail',
-		'oldfieldname': u'dn_detail',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_tax_rate',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Item Tax Rate',
-		'oldfieldname': u'item_tax_rate',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'clear_pending',
-		'fieldtype': u'Check',
-		'hidden': 1,
-		'label': u'Clear Pending',
-		'no_copy': 1,
-		'oldfieldname': u'clear_pending',
-		'oldfieldtype': u'Check',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldname': u'page_break',
-		'fieldtype': u'Check',
-		'label': u'Page Break',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/rv_tax_detail/__init__.py b/erpnext/accounts/doctype/rv_tax_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/doctype/rv_tax_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/doctype/rv_tax_detail/rv_tax_detail.txt b/erpnext/accounts/doctype/rv_tax_detail/rv_tax_detail.txt
deleted file mode 100644
index 4a4c68a..0000000
--- a/erpnext/accounts/doctype/rv_tax_detail/rv_tax_detail.txt
+++ /dev/null
@@ -1,223 +0,0 @@
-# DocType, RV Tax Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:20',
-		'docstatus': 0,
-		'modified': '2012-02-23 15:49:43',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': u'INVTD.######',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'hide_heading': 1,
-		'istable': 1,
-		'module': u'Accounts',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 20
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'RV Tax Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, RV Tax Detail
-	{
-		'doctype': 'DocType',
-		'name': u'RV Tax Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'charge_type',
-		'fieldtype': u'Select',
-		'label': u'Type',
-		'oldfieldname': u'charge_type',
-		'oldfieldtype': u'Select',
-		'options': u'\nActual\nOn Net Total\nOn Previous Row Amount\nOn Previous Row Total',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'account_head',
-		'fieldtype': u'Link',
-		'label': u'Account Head',
-		'oldfieldname': u'account_head',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'cost_center_other_charges',
-		'fieldtype': u'Link',
-		'label': u'Cost Center',
-		'oldfieldname': u'cost_center_other_charges',
-		'oldfieldtype': u'Link',
-		'options': u'Cost Center',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Small Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate',
-		'oldfieldname': u'rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'tax_amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount*',
-		'oldfieldname': u'tax_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'total',
-		'fieldtype': u'Currency',
-		'label': u'Total*',
-		'oldfieldname': u'total',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'row_id',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'label': u'Enter Row',
-		'oldfieldname': u'row_id',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'item_wise_tax_detail',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Item Wise Tax Detail ',
-		'oldfieldname': u'item_wise_tax_detail',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'parenttype',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Parenttype',
-		'oldfieldname': u'parenttype',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Cheating Field\nPlease do not delete ',
-		'doctype': u'DocField',
-		'fieldname': u'total_tax_amount',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Total Tax Amount',
-		'no_copy': 1,
-		'oldfieldname': u'total_tax_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'description': u'Cheating Field\nPlease do not delete ',
-		'doctype': u'DocField',
-		'fieldname': u'total_amount',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Total Amount',
-		'no_copy': 1,
-		'oldfieldname': u'total_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 0,
-		'description': u'If checked, the tax amount will be considered as already included in the Print Rate / Print Amount',
-		'doctype': u'DocField',
-		'fieldname': u'included_in_print_rate',
-		'fieldtype': u'Check',
-		'label': u'Included in Print Rate',
-		'no_column': 0,
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/ledger_detail/__init__.py b/erpnext/accounts/doctype/sales_invoice/__init__.py
old mode 100755
new mode 100644
similarity index 100%
rename from erpnext/accounts/doctype/ledger_detail/__init__.py
rename to erpnext/accounts/doctype/sales_invoice/__init__.py
diff --git a/erpnext/accounts/doctype/sales_invoice/listview.js b/erpnext/accounts/doctype/sales_invoice/listview.js
new file mode 100644
index 0000000..f3548f0
--- /dev/null
+++ b/erpnext/accounts/doctype/sales_invoice/listview.js
@@ -0,0 +1,34 @@
+// render
+wn.doclistviews['Sales Invoice'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			"`tabSales Invoice`.customer_name", 
+			"ifnull(`tabSales Invoice`.outstanding_amount,0) as outstanding_amount", 
+			"ifnull(`tabSales Invoice`.grand_total,0) as grand_total", 
+			"`tabSales Invoice`.currency", 
+			"ifnull(`tabSales Invoice`.grand_total_export,0) as grand_total_export"
+		]);
+
+		this.stats = this.stats.concat(['company']);		
+	},
+	prepare_data: function(data) {
+		this._super(data);
+		data.paid = flt((data.grand_total - data.outstanding_amount) / data.grand_total * 100, 2);
+	},
+	columns: [
+		{width: '5%', content:'avatar'},
+		{width: '3%', content:'docstatus'},
+		{width: '15%', content:'name'},
+		{width: '37%', content:'tags+customer_name', css: {color:'#aaa'}},
+		{
+			width: '18%', 
+			content: function(parent, data) { 
+				$(parent).html(data.currency + ' ' + fmt_money(data.grand_total_export)) 
+			},
+			css: {'text-align':'right'}
+		},
+		{width: '10%', content: 'paid', type:'bar-graph', label:'Paid'},
+		{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+});
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
new file mode 100644
index 0000000..8091aee
--- /dev/null
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -0,0 +1,496 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+cur_frm.cscript.tname = "Sales Invoice Item";
+cur_frm.cscript.fname = "entries";
+cur_frm.cscript.other_fname = "other_charges";
+cur_frm.cscript.sales_team_fname = "sales_team";
+
+// print heading
+cur_frm.pformat.print_heading = 'Invoice';
+
+wn.require('erpnext/selling/doctype/sales_common/sales_common.js');
+wn.require('erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js');
+wn.require('erpnext/utilities/doctype/sms_control/sms_control.js');
+wn.require('erpnext/setup/doctype/notification_control/notification_control.js');
+
+// On Load
+// -------
+cur_frm.cscript.onload = function(doc,dt,dn) {
+	if(!doc.customer && doc.debit_to) get_field(dt, 'debit_to', dn).print_hide = 0;
+	if (doc.__islocal) {
+		if(!doc.voucher_date) set_multiple(dt,dn,{voucher_date:get_today()});
+		if(!doc.due_date) set_multiple(dt,dn,{due_date:get_today()});
+		if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});
+		if(!doc.currency && sys_defaults.currency) set_multiple(dt,dn,{currency:sys_defaults.currency});
+		if(!doc.price_list_currency) set_multiple(dt, dn, {price_list_currency: doc.currency, plc_conversion_rate: 1});
+
+ 		hide_field(['customer_address', 'contact_person','customer_name','address_display', 'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']);
+	}
+}
+
+cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
+	var callback = function(doc, dt, dn) {
+		// called from mapper, update the account names for items and customer
+		var callback2 = function(doc, dt, dn) {
+			if(doc.customer && doc.__islocal) {
+				$c_obj(make_doclist(doc.doctype,doc.name),
+					'load_default_accounts','',
+					function(r,rt) {
+						refresh_field('entries');
+						cur_frm.cscript.customer(doc,dt,dn,onload=true);
+					}
+				);
+			}
+		}
+		// defined in sales_common.js
+		var callback1 = function(doc, dt, dn) {
+			//for previously created sales invoice, set required field related to pos	
+			cur_frm.cscript.update_item_details(doc, dt, dn, callback2);
+		}
+		
+		if(doc.is_pos ==1) cur_frm.cscript.is_pos(doc, dt, dn,callback1);
+		else cur_frm.cscript.update_item_details(doc, dt, dn, callback2);
+	}
+
+	cur_frm.cscript.hide_price_list_currency(doc, dt, dn, callback); 
+
+}
+
+
+// Hide Fields
+// ------------
+cur_frm.cscript.hide_fields = function(doc, cdt, cdn) {
+	par_flds = ['project_name', 'due_date', 'sales_order_main', 'delivery_note_main', 'Get Items', 'is_opening', 'conversion_rate', 'source', 'cancel_reason', 'total_advance', 'gross_profit', 'gross_profit_percent', 'Get Advances Received', 'advance_adjustment_details', 'sales_partner', 'commission_rate', 'total_commission', 'Repair Outstanding Amt'];
+	
+	item_flds_normal = ['sales_order', 'delivery_note']
+	item_flds_pos = ['warehouse', 'serial_no', 'batch_no', 'actual_qty', 'delivered_qty']
+	
+	if(cint(doc.is_pos) == 1) {
+		hide_field(par_flds);
+		for(f in item_flds_normal) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal[f], false);
+		for(f in item_flds_pos) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_pos[f], (doc.update_stock==1?true:false));
+	} else {
+		unhide_field(par_flds);
+		for(f in item_flds_normal) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal[f], true);
+		for(f in item_flds_pos) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_pos[f], false);
+	}
+
+	// India related fields
+	var cp = wn.control_panel;
+	if (cp.country == 'India') unhide_field(['c_form_applicable', 'c_form_no']);
+	else hide_field(['c_form_applicable', 'c_form_no']);
+
+}
+
+
+// Refresh
+// -------
+cur_frm.cscript.refresh = function(doc, dt, dn) {
+	cur_frm.cscript.is_opening(doc, dt, dn);
+	cur_frm.cscript.hide_fields(doc, dt, dn);
+	// Show / Hide button
+	cur_frm.clear_custom_buttons();
+
+	if (!cur_frm.cscript.is_onload)	cur_frm.cscript.hide_price_list_currency(doc, dt, dn); 
+
+	if(doc.docstatus==1) {
+		cur_frm.add_custom_button('View Ledger', cur_frm.cscript.view_ledger_entry);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
+		unhide_field('Repair Outstanding Amt');
+
+		if(doc.is_pos==1 && doc.update_stock!=1)
+			cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']);
+
+		if(doc.outstanding_amount!=0)
+			cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript.make_bank_voucher);
+	}
+	else
+		hide_field('Repair Outstanding Amt');
+}
+
+//fetch retail transaction related fields
+//--------------------------------------------
+cur_frm.cscript.is_pos = function(doc,dt,dn,callback){
+	cur_frm.cscript.hide_fields(doc, dt, dn);
+	if(doc.is_pos == 1){
+		if (!doc.company) {
+			msgprint("Please select company to proceed");
+			doc.is_pos = 0;
+			refresh_field('is_pos');
+		}
+		else {
+			var callback1 = function(r,rt){
+				if(callback) callback(doc, dt, dn);
+				cur_frm.refresh();
+			}
+			$c_obj(make_doclist(dt,dn),'set_pos_fields','',callback1);
+		}
+	}
+}
+
+
+cur_frm.cscript.update_stock = function(doc, dt, dn) {
+	cur_frm.cscript.hide_fields(doc, dt, dn);
+}
+
+
+cur_frm.cscript.warehouse = function(doc, cdt , cdn) {
+	var d = locals[cdt][cdn];
+	if (!d.item_code) {alert("please enter item code first"); return};
+	if (d.warehouse) {
+		arg = "{'item_code':'" + d.item_code + "','warehouse':'" + d.warehouse +"'}";
+		get_server_fields('get_actual_qty',arg,'entries',doc,cdt,cdn,1);
+	}
+}
+
+
+
+//Customer
+cur_frm.cscript.customer = function(doc,dt,dn,onload) {
+
+	var callback = function(r,rt) {
+			var callback2 = function(doc, dt, dn) {
+				doc = locals[dt][dn];
+				if(doc.debit_to && doc.posting_date){
+					get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,
+					function(doc, dt, dn) {
+						cur_frm.refresh();
+					});
+					
+				}
+			}
+			var doc = locals[cur_frm.doctype][cur_frm.docname];
+			get_server_fields('get_debit_to','','',doc, dt, dn, 0, callback2);
+	}
+	var args = onload ? 'onload':''
+	if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', args, callback);
+
+	if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
+	
+}
+
+
+
+cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {
+	if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
+}
+
+cur_frm.fields_dict.customer_address.on_new = function(dn) {
+	locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
+	locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
+}
+
+cur_frm.fields_dict.contact_person.on_new = function(dn) {
+	locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
+	locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
+}
+
+cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
+	return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
+
+cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
+	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
+
+
+// Set Due Date = posting date + credit days
+cur_frm.cscript.debit_to = function(doc,dt,dn) {
+
+	var callback2 = function(r,rt) {
+			var doc = locals[cur_frm.doctype][cur_frm.docname];
+			cur_frm.refresh();
+	}
+
+	var callback = function(r,rt) {
+			var doc = locals[cur_frm.doctype][cur_frm.docname];
+			if(doc.customer) $c_obj(make_doclist(dt,dn), 'get_default_customer_address', '', callback2);
+			if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
+			cur_frm.refresh();
+	}
+
+	if(doc.debit_to && doc.posting_date){
+		get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,callback);
+	}
+}
+
+
+
+//refresh advance amount
+//-------------------------------------------------
+
+cur_frm.cscript.paid_amount = function(doc,dt,dn){
+	doc.outstanding_amount = flt(doc.grand_total) - flt(doc.paid_amount) - flt(doc.write_off_amount);
+	refresh_field('outstanding_amount');
+}
+
+
+//---- get customer details ----------------------------
+cur_frm.cscript.project_name = function(doc,cdt,cdn){
+	$c_obj(make_doclist(doc.doctype, doc.name),'pull_project_customer','', function(r,rt){
+		refresh_many(['customer', 'customer_name','customer_address', 'territory']);
+	});
+}
+
+//Set debit and credit to zero on adding new row
+//----------------------------------------------
+cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){
+
+	cl = getchildren('Sales Invoice Item', doc.name, cur_frm.cscript.fname, doc.doctype);
+	acc = '';
+	cc = '';
+
+	for(var i = 0; i<cl.length; i++) {
+
+		if (cl[i].idx == 1){
+			acc = cl[i].income_account;
+			cc = cl[i].cost_center;
+		}
+		else{
+			if (! cl[i].income_account) { cl[i].income_account = acc; refresh_field('income_account', cl[i].name, 'entries');}
+			if (! cl[i].cost_center)	{cl[i].cost_center = cc;refresh_field('cost_center', cl[i].name, 'entries');}
+		}
+	}
+}
+
+cur_frm.cscript.is_opening = function(doc, dt, dn) {
+	hide_field('aging_date');
+	if (doc.is_opening == 'Yes') unhide_field('aging_date');
+}
+
+/* **************************** TRIGGERS ********************************** */
+
+// Get Items based on SO or DN Selected
+cur_frm.cscript.get_items = function(doc, dt, dn) {
+	var callback = function(r,rt) {
+		unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
+		cur_frm.refresh();
+	}
+	get_server_fields('pull_details','','',doc, dt, dn,1,callback);
+}
+
+
+
+// Allocated Amount in advances table
+// -----------------------------------
+cur_frm.cscript.allocated_amount = function(doc,cdt,cdn){
+	cur_frm.cscript.calc_adjustment_amount(doc,cdt,cdn);
+}
+
+//Make Delivery Note Button
+//-----------------------------
+
+cur_frm.cscript['Make Delivery Note'] = function() {
+
+	var doc = cur_frm.doc
+	n = createLocal('Delivery Note');
+	$c('dt_map', args={
+		'docs':compress_doclist([locals['Delivery Note'][n]]),
+		'from_doctype':doc.doctype,
+		'to_doctype':'Delivery Note',
+		'from_docname':doc.name,
+		'from_to_list':"[['Sales Invoice','Delivery Note'],['Sales Invoice Item','Delivery Note Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team']]"
+		}, function(r,rt) {
+			 loaddoc('Delivery Note', n);
+		}
+	);
+}
+
+
+
+// Make Bank Voucher Button
+// -------------------------
+cur_frm.cscript.make_bank_voucher = function(doc, dt, dn) {
+	$c('accounts.get_default_bank_account', { company: cur_frm.doc.company }, function(r, rt) {
+		if(!r.exc) {
+		  cur_frm.cscript.make_jv(cur_frm.doc, null, null, r.message);
+		}
+	});
+}
+
+
+/* ***************************** Get Query Functions ************************** */
+
+// Debit To
+// ---------
+cur_frm.fields_dict.debit_to.get_query = function(doc) {
+	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+}
+
+// Cash/bank account
+//------------------
+cur_frm.fields_dict.cash_bank_account.get_query = function(doc) {
+	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+}
+
+// Write off account
+//------------------
+cur_frm.fields_dict.write_off_account.get_query = function(doc) {
+	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "Yes" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+}
+
+// Write off cost center
+//-----------------------
+cur_frm.fields_dict.write_off_cost_center.get_query = function(doc) {
+	return 'SELECT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Ledger" AND `tabCost Center`.docstatus!=2 AND `tabCost Center`.company_name="'+doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s"'
+}
+
+//project name
+//--------------------------
+cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
+	var cond = '';
+	if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
+	return repl('SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND %(cond)s `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
+}
+
+//Territory
+//-----------------------------
+cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
+	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
+}
+
+// Income Account in Details Table
+// --------------------------------
+cur_frm.fields_dict.entries.grid.get_field("income_account").get_query = function(doc) {
+	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"';
+}
+
+// warehouse in detail table
+//----------------------------
+cur_frm.fields_dict['entries'].grid.get_field('warehouse').get_query= function(doc, cdt, cdn) {
+	var d = locals[cdt][cdn];
+	return "SELECT `tabBin`.`warehouse`, `tabBin`.`actual_qty` FROM `tabBin` WHERE `tabBin`.`item_code` = '"+ d.item_code +"' AND ifnull(`tabBin`.`actual_qty`,0) > 0 AND `tabBin`.`warehouse` like '%s' ORDER BY `tabBin`.`warehouse` DESC LIMIT 50";
+}
+
+// Cost Center in Details Table
+// -----------------------------
+cur_frm.fields_dict.entries.grid.get_field("cost_center").get_query = function(doc) {
+	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
+}
+
+// Sales Order
+// -----------
+cur_frm.fields_dict.sales_order_main.get_query = function(doc) {
+	if (doc.customer)
+		return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.`customer` =	"' + doc.customer + '" and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
+	else
+		return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
+}
+
+// Delivery Note
+// --------------
+cur_frm.fields_dict.delivery_note_main.get_query = function(doc) {
+	if (doc.customer)
+		return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.`customer` =	"' + doc.customer + '" and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
+	else
+		return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
+}
+
+
+
+cur_frm.cscript.income_account = function(doc, cdt, cdn){
+	var d = locals[cdt][cdn];
+	if(d.income_account){
+		var cl = getchildren('Sales Invoice Item', doc.name, cur_frm.cscript.fname, doc.doctype);
+		for(var i = 0; i < cl.length; i++){
+			if(!cl[i].income_account) cl[i].income_account = d.income_account;
+		}
+	}
+	refresh_field(cur_frm.cscript.fname);
+}
+
+
+cur_frm.cscript.cost_center = function(doc, cdt, cdn){
+	var d = locals[cdt][cdn];
+	if(d.cost_center){
+		var cl = getchildren('Sales Invoice Item', doc.name, cur_frm.cscript.fname, doc.doctype);
+		for(var i = 0; i < cl.length; i++){
+			if(!cl[i].cost_center) cl[i].cost_center = d.cost_center;
+		}
+	}
+	refresh_field(cur_frm.cscript.fname);
+}
+
+/* **************************************** Utility Functions *************************************** */
+
+// Details Calculation
+// --------------------
+cur_frm.cscript.calc_adjustment_amount = function(doc,cdt,cdn) {
+	var doc = locals[doc.doctype][doc.name];
+	var el = getchildren('Sales Invoice Advance',doc.name,'advance_adjustment_details');
+	var total_adjustment_amt = 0
+	for(var i in el) {
+			total_adjustment_amt += flt(el[i].allocated_amount)
+	}
+	doc.total_advance = flt(total_adjustment_amt);
+	doc.outstanding_amount = flt(doc.grand_total) - flt(total_adjustment_amt) - flt(doc.paid_amount) - flt(doc.write_off_amount);
+	refresh_many(['total_advance','outstanding_amount']);
+}
+
+
+// Make Journal Voucher
+// --------------------
+cur_frm.cscript.make_jv = function(doc, dt, dn, bank_account) {
+	var jv = LocalDB.create('Journal Voucher');
+	jv = locals['Journal Voucher'][jv];
+	jv.voucher_type = 'Bank Voucher';
+
+	jv.company = doc.company;
+	jv.remark = repl('Payment received against invoice %(vn)s for %(rem)s', {vn:doc.name, rem:doc.remarks});
+	jv.fiscal_year = doc.fiscal_year;
+
+	// debit to creditor
+	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
+	d1.account = doc.debit_to;
+	d1.credit = doc.outstanding_amount;
+	d1.against_invoice = doc.name;
+
+
+	// credit to bank
+	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
+	d1.account = bank_account;
+	d1.debit = doc.outstanding_amount;
+
+	loaddoc('Journal Voucher', jv.name);
+}
+
+
+/****************** Get Accounting Entry *****************/
+cur_frm.cscript.view_ledger_entry = function(){
+	var callback = function(report){
+		report.set_filter('GL Entry', 'Voucher No',cur_frm.doc.name);
+		report.dt.run();
+	}
+	loadreport('GL Entry','General Ledger', callback);
+}
+
+// Default values for recurring invoices
+cur_frm.cscript.convert_into_recurring_invoice = function(doc) {
+	if (doc.convert_into_recurring_invoice) {
+		doc.repeat_on_day_of_month = doc.posting_date.split('-')[2];
+		doc.notification_email_address = [doc.owner, doc.contact_email].join(', ');
+		refresh_field(['repeat_on_day_of_month', 'notification_email_address']);
+	}		
+}
+
+cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
+	var args = {
+		type: 'Sales Invoice',
+		doctype: 'Sales Invoice'
+	}
+	cur_frm.cscript.notify(doc, args);
+}
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
new file mode 100644
index 0000000..d89ff04
--- /dev/null
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -0,0 +1,722 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr,date_diff, default_fields, flt, fmt_money, formatdate, generate_hash,getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common,month_name, now, nowdate, replace_newlines, sendmail, set_default,str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+session = webnotes.session
+
+# -----------------------------------------------------------------------------------------
+
+from utilities.transaction_base import TransactionBase
+
+class DocType(TransactionBase):
+	def __init__(self,d,dl):
+		self.doc, self.doclist = d, dl
+		self.log = []
+		self.tname = 'Sales Invoice Item'
+		self.fname = 'entries'
+
+
+	# Autoname
+	# ---------
+	def autoname(self):
+		self.doc.name = make_autoname(self.doc.naming_series+ '.#####')
+
+
+
+# ********************************* Trigger Functions ******************************
+
+	#Set retail related fields from pos settings
+	#-------------------------------------------------------------------------
+	def set_pos_fields(self):
+		pos = webnotes.conn.sql("select * from `tabPOS Setting` where ifnull(user,'') = '%s' and company = '%s'" % (session['user'], self.doc.company), as_dict=1)
+		if not pos:
+			pos = webnotes.conn.sql("select * from `tabPOS Setting` where ifnull(user,'') = '' and company = '%s'" % (self.doc.company), as_dict=1)
+		if pos:
+			val = webnotes.conn.sql("select name from `tabAccount` where name = %s and docstatus != 2", (cstr(self.doc.customer) + " - " + self.get_company_abbr()))
+			val = val and val[0][0] or ''
+			if not val: val = pos and pos[0]['customer_account'] or ''
+			if not self.doc.debit_to:
+				webnotes.conn.set(self.doc,'debit_to',val)
+			
+			lst = ['territory','naming_series','currency','charge','letter_head','tc_name','price_list_name','company','select_print_heading','cash_bank_account']
+				
+			for i in lst:
+				val = pos and pos[0][i] or ''
+				self.doc.fields[i] = val
+			self.set_pos_item_values()
+			
+			val = pos and flt(pos[0]['conversion_rate']) or 0	
+			self.doc.conversion_rate = val
+
+			#fetch terms	
+			if self.doc.tc_name:	 self.get_tc_details()
+			
+			#fetch charges
+			if self.doc.charge:		self.get_other_charges()
+
+
+	# Set default values related to pos for previously created sales invoice.
+	# -------------------------------------------------------------------------- 
+	def set_pos_item_values(self):
+		if cint(self.doc.is_pos) ==1:
+			dtl = webnotes.conn.sql("select income_account, warehouse, cost_center from `tabPOS Setting` where ifnull(user,'') = '%s' and company = '%s'" % (session['user'], self.doc.company), as_dict=1)
+			if not dtl:
+				dtl = webnotes.conn.sql("select income_account, warehouse, cost_center from `tabPOS Setting` where ifnull(user,'') = '' and company = '%s'" % (self.doc.company), as_dict=1)
+			for d in getlist(self.doclist,'entries'):
+				# overwrite if mentioned in item
+				item = webnotes.conn.sql("select default_income_account, default_sales_cost_center, default_warehouse from tabItem where name = '%s'" %(d.item_code), as_dict=1)
+				d.income_account = item and item[0]['default_income_account'] or dtl and dtl[0]['income_account'] or d.income_account
+				d.cost_center = item and item[0]['default_sales_cost_center'] or dtl and dtl[0]['cost_center'] or d.cost_center
+				d.warehouse = item and item[0]['default_warehouse'] or dtl and dtl[0]['warehouse'] or d.warehouse
+
+
+			
+	# Get Account Head to which amount needs to be Debited based on Customer
+	# ----------------------------------------------------------------------
+	def get_customer_account(self):
+		acc_head = webnotes.conn.sql("select name from `tabAccount` where (name = %s or (master_name = %s and master_type = 'customer')) and docstatus != 2", (cstr(self.doc.customer) + " - " + self.get_company_abbr(),self.doc.customer))
+		if acc_head and acc_head[0][0]:
+			return acc_head[0][0]
+		else:
+			msgprint("%s does not have an Account Head in %s. You must first create it from the Customer Master" % (self.doc.customer, self.doc.company))
+
+	def get_debit_to(self):
+		acc_head = self.get_customer_account()
+		return acc_head and {'debit_to' : acc_head} or {}
+
+
+
+	# Set Due Date = Posting Date + Credit Days
+	# -----------------------------------------
+	def get_cust_and_due_date(self):
+		credit_days = 0
+		if self.doc.debit_to:
+			credit_days = webnotes.conn.sql("select credit_days from `tabAccount` where name='%s' and docstatus != 2" % self.doc.debit_to)
+			credit_days = credit_days and cint(credit_days[0][0]) or 0
+		if self.doc.company and not credit_days:
+			credit_days = webnotes.conn.sql("select credit_days from `tabCompany` where name='%s'" % self.doc.company)
+			credit_days = credit_days and cint(credit_days[0][0]) or 0
+		# Customer has higher priority than company
+		# i.e.if not entered in customer will take credit days from company
+		self.doc.due_date = add_days(cstr(self.doc.posting_date), credit_days)
+		
+		if self.doc.debit_to:
+			self.doc.customer = webnotes.conn.get_value('Account',self.doc.debit_to,'master_name')
+		#	get_obj('Sales Common').get_customer_details(self, inv_det_reqd = 0)
+
+
+	# Pull Details of Delivery Note or Sales Order Selected
+	# ------------------------------------------------------
+	def pull_details(self):
+		# Delivery Note
+		if self.doc.delivery_note_main:
+			self.validate_prev_docname('delivery note')
+			self.doc.clear_table(self.doclist,'other_charges')			
+			self.doclist = get_obj('DocType Mapper', 'Delivery Note-Sales Invoice').dt_map('Delivery Note', 'Sales Invoice', self.doc.delivery_note_main, self.doc, self.doclist, "[['Delivery Note', 'Sales Invoice'],['Delivery Note Item', 'Sales Invoice Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team']]")			
+			self.get_income_account('entries')
+		# Sales Order
+		elif self.doc.sales_order_main:
+			self.validate_prev_docname('sales order')
+			self.doc.clear_table(self.doclist,'other_charges')
+			get_obj('DocType Mapper', 'Sales Order-Sales Invoice').dt_map('Sales Order', 'Sales Invoice', self.doc.sales_order_main, self.doc, self.doclist, "[['Sales Order', 'Sales Invoice'],['Sales Order Item', 'Sales Invoice Item'],['Sales Taxes and Charges','Sales Taxes and Charges'], ['Sales Team', 'Sales Team']]")
+			self.get_income_account('entries')
+			
+		ret = self.get_debit_to()
+		self.doc.debit_to = ret.get('debit_to')
+					
+	# onload pull income account
+	# --------------------------
+	def load_default_accounts(self):
+		"""
+			Loads default accounts from items, customer when called from mapper
+		"""
+		self.get_income_account('entries')
+		
+	def get_income_account(self,doctype):		
+		for d in getlist(self.doclist, doctype):			
+			if d.item_code:
+				item = webnotes.conn.sql("select default_income_account, default_sales_cost_center from tabItem where name = '%s'" %(d.item_code), as_dict=1)
+				d.income_account = item and item[0]['default_income_account'] or ''
+				d.cost_center = item and item[0]['default_sales_cost_center'] or ''				
+
+	# Item Details
+	# -------------
+	def get_item_details(self, args=None):
+		import json
+		args = args and json.loads(args) or {}
+		if args.get('item_code'):
+			ret = get_obj('Sales Common').get_item_details(args, self)
+			return self.get_pos_details(args, ret)
+		else:
+			obj = get_obj('Sales Common')
+			for doc in self.doclist:
+				if doc.fields.get('item_code'):
+					arg = {'item_code':doc.fields.get('item_code'), 'income_account':doc.fields.get('income_account'), 
+						'cost_center': doc.fields.get('cost_center'), 'warehouse': doc.fields.get('warehouse')};
+
+					ret = obj.get_item_details(arg, self)
+					ret = self.get_pos_details(arg, ret)
+					for r in ret:
+						if not doc.fields.get(r):
+							doc.fields[r] = ret[r]		
+
+
+	def get_pos_details(self, args, ret):
+		if args['item_code'] and cint(self.doc.is_pos) == 1:
+			dtl = webnotes.conn.sql("select income_account, warehouse, cost_center from `tabPOS Setting` where user = '%s' and company = '%s'" % (session['user'], self.doc.company), as_dict=1)				 
+			if not dtl:
+				dtl = webnotes.conn.sql("select income_account, warehouse, cost_center from `tabPOS Setting` where ifnull(user,'') = '' and company = '%s'" % (self.doc.company), as_dict=1)
+
+			item = webnotes.conn.sql("select default_income_account, default_sales_cost_center, default_warehouse from tabItem where name = '%s'" %(args['item_code']), as_dict=1)
+
+			ret['income_account'] = item and item[0]['default_income_account'] or dtl and dtl[0]['income_account'] or args['income_account']
+			ret['cost_center'] = item and item[0]['default_sales_cost_center'] or dtl and dtl[0]['cost_center'] or args['cost_center']
+			ret['warehouse'] = item and item[0]['default_warehouse'] or dtl and dtl[0]['warehouse'] or args['warehouse']
+
+			if ret['warehouse']:
+				actual_qty = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (args['item_code'], ret['warehouse']))
+				ret['actual_qty']= actual_qty and flt(actual_qty[0][0]) or 0
+		return ret
+
+
+	# Fetch ref rate from item master as per selected price list
+	def get_adj_percent(self, arg=''):
+		get_obj('Sales Common').get_adj_percent(self)
+
+
+	# Get tax rate if account type is tax
+	# ------------------------------------
+	def get_rate(self,arg):
+		get_obj('Sales Common').get_rate(arg)
+		
+		
+	# Get Commission rate of Sales Partner
+	# -------------------------------------
+	def get_comm_rate(self, sales_partner):
+		return get_obj('Sales Common').get_comm_rate(sales_partner, self)	
+	
+ 
+	# GET TERMS & CONDITIONS
+	# -------------------------------------
+	def get_tc_details(self):
+		return get_obj('Sales Common').get_tc_details(self)
+
+	# Load Default Charges
+	# ----------------------------------------------------------
+	def load_default_taxes(self):
+		return get_obj('Sales Common').load_default_taxes(self)
+
+	# Get Sales Taxes and Charges Master Details
+	# --------------------------
+	def get_other_charges(self):
+		return get_obj('Sales Common').get_other_charges(self)
+		
+
+	# Get Advances
+	# -------------
+	def get_advances(self):
+		get_obj('GL Control').get_advances(self, self.doc.debit_to, 'Sales Invoice Advance', 'advance_adjustment_details', 'credit')
+
+	#pull project customer
+	#-------------------------
+	def pull_project_customer(self):
+		res = webnotes.conn.sql("select customer from `tabProject` where name = '%s'"%self.doc.project_name)
+		if res:
+			get_obj('DocType Mapper', 'Project-Sales Invoice').dt_map('Project', 'Sales Invoice', self.doc.project_name, self.doc, self.doclist, "[['Project', 'Sales Invoice']]")
+
+# ********************************** Server Utility Functions ******************************
+	
+	# Get Company Abbr.
+	# ------------------
+	def get_company_abbr(self):
+		return webnotes.conn.sql("select abbr from tabCompany where name=%s", self.doc.company)[0][0]
+		
+	
+	# Check whether sales order / delivery note items already pulled
+	#----------------------------------------------------------------
+	def validate_prev_docname(self,doctype):
+		for d in getlist(self.doclist, 'entries'): 
+			if doctype == 'delivery note' and self.doc.delivery_note_main == d.delivery_note:
+				msgprint(cstr(self.doc.delivery_note_main) + " delivery note details have already been pulled.")
+				raise Exception , "Validation Error. Delivery note details have already been pulled."
+			elif doctype == 'sales order' and self.doc.sales_order_main == d.sales_order and not d.delivery_note:
+				msgprint(cstr(self.doc.sales_order_main) + " sales order details have already been pulled.")
+				raise Exception , "Validation Error. Sales order details have already been pulled."
+
+
+	#-----------------------------------------------------------------
+	def update_against_document_in_jv(self):
+		"""
+			Links invoice and advance voucher:
+				1. cancel advance voucher
+				2. split into multiple rows if partially adjusted, assign against voucher
+				3. submit advance voucher
+		"""
+		
+		lst = []
+		for d in getlist(self.doclist, 'advance_adjustment_details'):
+			if flt(d.allocated_amount) > 0:
+				args = {
+					'voucher_no' : d.journal_voucher, 
+					'voucher_detail_no' : d.jv_detail_no, 
+					'against_voucher_type' : 'Sales Invoice', 
+					'against_voucher'  : self.doc.name,
+					'account' : self.doc.debit_to, 
+					'is_advance' : 'Yes', 
+					'dr_or_cr' : 'credit', 
+					'unadjusted_amt' : flt(d.advance_amount),
+					'allocated_amt' : flt(d.allocated_amount)
+				}
+				lst.append(args)
+		
+		if lst:
+			get_obj('GL Control').reconcile_against_document(lst)
+	
+	
+	# ------------------------------------------------------------------------
+	def validate_customer(self):
+		"""
+			Validate customer name with SO and DN
+		"""
+		for d in getlist(self.doclist,'entries'):
+			dt = d.delivery_note and 'Delivery Note' or d.sales_order and 'Sales Order' or ''
+			if dt:
+				dt_no = d.delivery_note or d.sales_order
+				cust = webnotes.conn.sql("select customer from `tab%s` where name = %s" % (dt, '%s'), dt_no)
+				if cust and cstr(cust[0][0]) != cstr(self.doc.customer):
+					msgprint("Customer %s does not match with customer of %s: %s." %(self.doc.customer, dt, dt_no), raise_exception=1)
+			
+
+	# Validates Debit To Account and Customer Matches
+	# ------------------------------------------------
+	def validate_debit_to_acc(self):
+		if self.doc.customer and not cint(self.doc.is_pos):
+			acc_head = webnotes.conn.sql("select name from `tabAccount` where name = %s and docstatus != 2", (cstr(self.doc.customer) + " - " + self.get_company_abbr()))
+			if acc_head and acc_head[0][0]:
+				if not cstr(acc_head[0][0]) == cstr(self.doc.debit_to):
+					msgprint("Debit To %s do not match with Customer %s for Company %s i.e. %s" %(self.doc.debit_to,self.doc.customer,self.doc.company,cstr(acc_head[0][0])))
+					raise Exception, "Validation Error "
+			if not acc_head:
+				 msgprint("%s does not have an Account Head in %s. You must first create it from the Customer Master" % (self.doc.customer, self.doc.company))
+				 raise Exception, "Validation Error "
+
+
+	# Validate Debit To Account
+	# 1. Account Exists
+	# 2. Is a Debit Account
+	# 3. Is a PL Account
+	# ---------------------------
+	def validate_debit_acc(self):
+		acc = webnotes.conn.sql("select debit_or_credit, is_pl_account from tabAccount where name = '%s' and docstatus != 2" % self.doc.debit_to)
+		if not acc:
+			msgprint("Account: "+ self.doc.debit_to + " does not exist")
+			raise Exception
+		elif acc[0][0] and acc[0][0] != 'Debit':
+			msgprint("Account: "+ self.doc.debit_to + " is not a debit account")
+			raise Exception
+		elif acc[0][1] and acc[0][1] != 'No':
+			msgprint("Account: "+ self.doc.debit_to + " is a pl account")
+			raise Exception
+
+
+	# Validate Fixed Asset Account and whether Income Account Entered Exists
+	# -----------------------------------------------------------------------
+	def validate_fixed_asset_account(self):
+		for d in getlist(self.doclist,'entries'):
+			item = webnotes.conn.sql("select name,is_asset_item,is_sales_item from `tabItem` where name = '%s' and (ifnull(end_of_life,'')='' or end_of_life = '0000-00-00' or end_of_life >	now())"% d.item_code)
+			acc =	webnotes.conn.sql("select account_type from `tabAccount` where name = '%s' and docstatus != 2" % d.income_account)
+			if not acc:
+				msgprint("Account: "+d.income_account+" does not exist in the system")
+				raise Exception
+			elif item and item[0][1] == 'Yes' and not acc[0][0] == 'Fixed Asset Account':
+				msgprint("Please select income head with account type 'Fixed Asset Account' as Item %s is an asset item" % d.item_code)
+				raise Exception
+
+
+
+	# Set totals in words
+	#--------------------
+	def set_in_words(self):
+		dcc = TransactionBase().get_company_currency(self.doc.company)
+		self.doc.in_words = get_obj('Sales Common').get_total_in_words(dcc, self.doc.rounded_total)
+		self.doc.in_words_export = get_obj('Sales Common').get_total_in_words(self.doc.currency, self.doc.rounded_total_export)
+
+	# Clear Advances
+	# --------------
+	def clear_advances(self):
+		get_obj('GL Control').clear_advances(self, 'Sales Invoice Advance','advance_adjustment_details')
+
+
+	# set aging date
+	#-------------------
+	def set_aging_date(self):
+		if self.doc.is_opening != 'Yes':
+			self.doc.aging_date = self.doc.posting_date
+		elif not self.doc.aging_date:
+			msgprint("Aging Date is mandatory for opening entry")
+			raise Exception
+			
+
+	# Set against account for debit to account
+	#------------------------------------------
+	def set_against_income_account(self):
+		against_acc = []
+		for d in getlist(self.doclist, 'entries'):
+			if d.income_account not in against_acc:
+				against_acc.append(d.income_account)
+		self.doc.against_income_account = ','.join(against_acc)
+
+	def add_remarks(self):
+		if not self.doc.remarks: self.doc.remarks = 'No Remarks'
+
+	#check in manage account if sales order / delivery note required or not.
+	def so_dn_required(self):
+		dict = {'Sales Order':'so_required','Delivery Note':'dn_required'}
+		for i in dict:	
+			res = webnotes.conn.sql("select value from `tabSingles` where doctype = 'Global Defaults' and field = '%s'"%dict[i])
+			if res and res[0][0] == 'Yes':
+				for d in getlist(self.doclist,'entries'):
+					if not d.fields[i.lower().replace(' ','_')]:
+						msgprint("%s No. required against item %s"%(i,d.item_code))
+						raise Exception
+
+	#check for does customer belong to same project as entered..
+	#-------------------------------------------------------------------------------------------------
+	def validate_proj_cust(self):
+		if self.doc.project_name and self.doc.customer:
+			res = webnotes.conn.sql("select name from `tabProject` where name = '%s' and (customer = '%s' or ifnull(customer,'')='')"%(self.doc.project_name, self.doc.customer))
+			if not res:
+				msgprint("Customer - %s does not belong to project - %s. \n\nIf you want to use project for multiple customers then please make customer details blank in that project."%(self.doc.customer,self.doc.project_name))
+				raise Exception
+
+	def validate_pos(self):
+		if not self.doc.cash_bank_account:
+			msgprint("Cash/Bank Account is mandatory for POS entry")
+			raise Exception
+		if (flt(self.doc.paid_amount) + flt(self.doc.write_off_amount) - round(flt(self.doc.grand_total), 2))>0.001:
+			msgprint("(Paid amount + Write Off Amount) can not be greater than Grand Total")
+			raise Exception
+
+
+	# ********* UPDATE CURRENT STOCK *****************************
+	def update_current_stock(self):
+		for d in getlist(self.doclist, 'entries'):
+			bin = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
+			d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
+
+	def validate_item_code(self):
+		for d in getlist(self.doclist, 'entries'):
+			if not d.item_code:
+				msgprint("Please enter Item Code at line no : %s to update stock for POS or remove check from Update Stock in Basic Info Tab." % (d.idx))
+				raise Exception
+
+	# Validate Write Off Account
+	# -------------------------------
+	def validate_write_off_account(self):
+		if flt(self.doc.write_off_amount) and not self.doc.write_off_account:
+			msgprint("Please enter Write Off Account", raise_exception=1)
+
+
+	def validate_c_form(self):
+		""" Blank C-form no if C-form applicable marked as 'No'"""
+		if self.doc.amended_from and self.doc.c_form_applicable == 'No' and self.doc.c_form_no:
+			webnotes.conn.sql("""delete from `tabC-Form Invoice Detail` where invoice_no = %s
+					and parent = %s""", (self.doc.amended_from,	self.doc.c_form_no))
+
+			webnotes.conn.set(self.doc, 'c_form_no', '')
+	 
+	# VALIDATE
+	# ====================================================================================
+	def validate(self):
+		self.so_dn_required()
+		#self.dn_required()
+		self.validate_proj_cust()
+		sales_com_obj = get_obj('Sales Common')
+		sales_com_obj.check_stop_sales_order(self)
+		sales_com_obj.check_active_sales_items(self)
+		sales_com_obj.check_conversion_rate(self)
+		sales_com_obj.validate_max_discount(self, 'entries')	 #verify whether rate is not greater than tolerance
+		sales_com_obj.get_allocated_sum(self)	# this is to verify that the allocated % of sales persons is 100%
+		sales_com_obj.validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Posting Date')
+		if not self.doc.customer:
+			get_obj('Sales Common').get_customer_details(self, inv_det_reqd = 0)
+		self.validate_customer()
+		self.validate_debit_to_acc()
+		self.validate_debit_acc()
+		self.validate_fixed_asset_account()
+		self.add_remarks()
+		if cint(self.doc.is_pos):
+			self.validate_pos()
+			self.validate_write_off_account()
+			if cint(self.doc.update_stock):
+				get_obj('Stock Ledger').validate_serial_no(self, 'entries')
+				self.validate_item_code()
+				self.update_current_stock()
+		self.set_in_words()
+		if not self.doc.is_opening:
+			self.doc.is_opening = 'No'
+		self.set_aging_date()
+		self.clear_advances()
+		# Set against account
+		self.set_against_income_account()
+		self.validate_c_form()
+
+		
+# *************************************************** ON SUBMIT **********************************************
+	# Check Ref Document's docstatus
+	# -------------------------------
+	def check_prev_docstatus(self):
+		for d in getlist(self.doclist,'entries'):
+			if d.sales_order:
+				submitted = webnotes.conn.sql("select name from `tabSales Order` where docstatus = 1 and name = '%s'" % d.sales_order)
+				if not submitted:
+					msgprint("Sales Order : "+ cstr(d.sales_order) +" is not submitted")
+					raise Exception , "Validation Error."
+
+			if d.delivery_note:
+				submitted = webnotes.conn.sql("select name from `tabDelivery Note` where docstatus = 1 and name = '%s'" % d.delivery_note)
+				if not submitted:
+					msgprint("Delivery Note : "+ cstr(d.delivery_note) +" is not submitted")
+					raise Exception , "Validation Error."
+
+	#Set Actual Qty based on item code and warehouse
+	#------------------------------------------------------
+	def set_actual_qty(self):
+		for d in getlist(self.doclist, 'delivery_note_details'):
+			if d.item_code and d.warehouse:
+				actual_qty = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (d.item_code, d.warehouse))
+				d.actual_qty = actual_qty and flt(actual_qty[0][0]) or 0					
+
+	# Check qty in stock depends on item code and warehouse
+	#-------------------------------------------------------
+	def check_qty_in_stock(self):
+		for d in getlist(self.doclist, 'entries'):
+			is_stock_item = webnotes.conn.sql("select is_stock_item from `tabItem` where name = '%s'" % d.item_code)[0][0]
+			actual_qty = 0
+			if d.item_code and d.warehouse:
+				actual_qty = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (d.item_code, d.warehouse))
+				actual_qty = actual_qty and flt(actual_qty[0][0]) or 0
+
+			if is_stock_item == 'Yes' and flt(d.qty) > flt(actual_qty):
+				msgprint("For Item: " + cstr(d.item_code) + " at Warehouse: " + cstr(d.warehouse) + " Quantity: " + cstr(d.qty) +" is not Available. (Must be less than or equal to " + cstr(actual_qty) + " )")
+				raise Exception, "Validation Error"
+
+	
+
+	# ********************** Make Stock Entry ************************************
+	def make_sl_entry(self, d, wh, qty, in_value, update_stock):
+		st_uom = webnotes.conn.sql("select stock_uom from `tabItem` where name = '%s'"%d.item_code)
+		self.values.append({
+			'item_code'					 : d.item_code,
+			'warehouse'					 : wh,
+			'transaction_date'			: getdate(self.doc.modified).strftime('%Y-%m-%d'),
+			'posting_date'				: self.doc.posting_date,
+			'posting_time'				: self.doc.posting_time,
+			'voucher_type'				: 'Sales Invoice',
+			'voucher_no'					: cstr(self.doc.name),
+			'voucher_detail_no'	 : cstr(d.name), 
+			'actual_qty'					: qty, 
+			'stock_uom'					 : st_uom and st_uom[0][0] or '',
+			'incoming_rate'			 : in_value,
+			'company'						 : self.doc.company,
+			'fiscal_year'				 : self.doc.fiscal_year,
+			'is_cancelled'				: (update_stock==1) and 'No' or 'Yes',
+			'batch_no'						: cstr(d.batch_no),
+			'serial_no'					 : d.serial_no
+		})		
+			
+
+	# UPDATE STOCK LEDGER
+	# ---------------------------------------------------------------------------
+	def update_stock_ledger(self, update_stock, clear = 0):
+		self.values = []
+		for d in getlist(self.doclist, 'entries'):
+			stock_item = webnotes.conn.sql("SELECT is_stock_item, is_sample_item FROM tabItem where name = '%s'"%(d.item_code), as_dict = 1) # stock ledger will be updated only if it is a stock item
+			if stock_item[0]['is_stock_item'] == "Yes":
+				# Reduce actual qty from warehouse
+				self.make_sl_entry( d, d.warehouse, - flt(d.qty) , 0, update_stock)
+		get_obj('Stock Ledger', 'Stock Ledger').update_stock(self.values, self.doc.amended_from and 'Yes' or 'No')
+
+
+	#-------------------POS Stock Updatation Part----------------------------------------------
+	def pos_update_stock(self):
+		self.check_qty_in_stock()	
+		self.update_stock_ledger(update_stock = 1)
+	
+	# ********** Get Actual Qty of item in warehouse selected *************
+	def get_actual_qty(self,args):
+		args = eval(args)
+		actual_qty = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (args['item_code'], args['warehouse']), as_dict=1)
+		ret = {
+			 'actual_qty' : actual_qty and flt(actual_qty[0]['actual_qty']) or 0
+		}
+		return ret
+
+	# Make GL Entries
+	# -------------------------
+	def make_gl_entries(self, is_cancel=0):
+		mapper = self.doc.is_pos and self.doc.write_off_account and 'POS with write off' or self.doc.is_pos and not self.doc.write_off_account and 'POS' or ''
+		update_outstanding = self.doc.is_pos and self.doc.write_off_account and 'No' or 'Yes'
+		get_obj(dt='GL Control').make_gl_entries(self.doc, self.doclist,cancel = is_cancel, use_mapper = mapper, update_outstanding = update_outstanding, merge_entries = cint(self.doc.is_pos) != 1 and 1 or 0)
+		
+
+	# On Submit
+	# ---------
+	def on_submit(self):
+		if cint(self.doc.is_pos) == 1:
+			if cint(self.doc.update_stock) == 1:
+				sl_obj = get_obj("Stock Ledger")
+				sl_obj.validate_serial_no_warehouse(self, 'entries')
+				sl_obj.update_serial_record(self, 'entries', is_submit = 1, is_incoming = 0)
+				self.pos_update_stock()
+		else:
+			self.check_prev_docstatus()
+			get_obj("Sales Common").update_prevdoc_detail(1,self)
+
+			# Check for Approving Authority
+			if not self.doc.recurring_id:
+				get_obj('Authorization Control').validate_approving_authority(self.doc.doctype, self.doc.company, self.doc.grand_total, self)
+
+		# this sequence because outstanding may get -ve		
+		self.make_gl_entries()
+
+		if not cint(self.doc.is_pos) == 1:
+			self.update_against_document_in_jv()
+
+		self.update_c_form()
+
+
+	def update_c_form(self):
+		"""Update amended id in C-form"""
+		if self.doc.c_form_no and self.doc.amended_from:
+			webnotes.conn.sql("""update `tabC-Form Invoice Detail` set invoice_no = %s,
+					invoice_date = %s, territory = %s, net_total = %s,
+					grand_total = %s where invoice_no = %s and parent = %s""", (self.doc.name, self.doc.amended_from, self.doc.c_form_no))
+	
+
+			
+# *************************************************** ON CANCEL **********************************************
+	# Check Next Document's docstatus
+	# --------------------------------
+	def check_next_docstatus(self):
+		submit_jv = webnotes.conn.sql("select t1.name from `tabJournal Voucher` t1,`tabJournal Voucher Detail` t2 where t1.name = t2.parent and t2.against_invoice = '%s' and t1.docstatus = 1" % (self.doc.name))
+		if submit_jv:
+			msgprint("Journal Voucher : " + cstr(submit_jv[0][0]) + " has been created against " + cstr(self.doc.doctype) + ". So " + cstr(self.doc.doctype) + " cannot be Cancelled.")
+			raise Exception, "Validation Error."
+
+
+	# On Cancel
+	# ----------
+	def on_cancel(self):
+		if cint(self.doc.is_pos) == 1:
+			if cint(self.doc.update_stock) == 1:
+				get_obj('Stock Ledger').update_serial_record(self, 'entries', is_submit = 0, is_incoming = 0)
+				self.update_stock_ledger(update_stock = -1)
+		else:
+			sales_com_obj = get_obj(dt = 'Sales Common')
+			sales_com_obj.check_stop_sales_order(self)
+			self.check_next_docstatus()
+			sales_com_obj.update_prevdoc_detail(0,self)
+
+		self.make_gl_entries(is_cancel=1)
+
+	# Get Warehouse
+	def get_warehouse(self):
+		w = webnotes.conn.sql("select warehouse from `tabPOS Setting` where ifnull(user,'') = '%s' and company = '%s'" % (session['user'], self.doc.company))
+		w = w and w[0][0] or ''
+		if not w:
+			ps = webnotes.conn.sql("select name, warehouse from `tabPOS Setting` where ifnull(user,'') = '' and company = '%s'" % self.doc.company)
+			if not ps:
+				msgprint("To make POS entry, please create POS Setting from Setup --> Accounts --> POS Setting and refresh the system.")
+				raise Exception
+			elif not ps[0][1]:
+				msgprint("Please enter warehouse in POS Setting")
+			else:
+				w = ps[0][1]
+		return w
+
+	# on update
+	def on_update(self):
+		# Set default warehouse from pos setting
+		#----------------------------------------
+		if cint(self.doc.is_pos) == 1:
+			self.set_actual_qty()
+			w = self.get_warehouse()
+			if w:
+				for d in getlist(self.doclist, 'entries'):
+					if not d.warehouse:
+						d.warehouse = cstr(w)
+
+			if flt(self.doc.paid_amount) == 0: 
+				webnotes.conn.set(self.doc,'paid_amount',(flt(self.doc.grand_total) - flt(self.doc.write_off_amount)))
+
+		else:
+			webnotes.conn.set(self.doc,'paid_amount',0)
+
+		webnotes.conn.set(self.doc,'outstanding_amount',flt(self.doc.grand_total) - flt(self.doc.total_advance) - flt(self.doc.paid_amount) - flt(self.doc.write_off_amount))
+
+########################################################################
+# Repair Outstanding
+
+	def repair_rv_outstanding(self):
+		get_obj(dt = 'GL Control').repair_voucher_outstanding(self)
+
+
+	#-------------------------------------------------------------------------------------
+	def on_update_after_submit(self):
+		self.convert_into_recurring()
+		
+
+	def convert_into_recurring(self):
+		if self.doc.convert_into_recurring_invoice:
+			self.set_next_date()
+			if not self.doc.recurring_id:
+				webnotes.conn.set(self.doc, 'recurring_id', make_autoname('RECINV/.#####'))
+		elif self.doc.recurring_id:
+			webnotes.conn.sql("""update `tabSales Invoice` set convert_into_recurring_invoice = 0 where recurring_id = %s""", self.doc.recurring_id)
+
+	def set_next_date(self):
+		""" Set next date on which auto invoice will be created"""
+
+		if not self.doc.repeat_on_day_of_month:
+			msgprint("""Please enter 'Repeat on Day of Month' field value. \nThe day of the month on which auto invoice 
+						will be generated e.g. 05, 28 etc.""", raise_exception=1)
+
+		import datetime
+		m = getdate(self.doc.posting_date).month + 1
+		y = getdate(self.doc.posting_date).year
+		if m > 12:
+			m, y = 1, y+1
+		try:
+			next_date = datetime.date(y, m, cint(self.doc.repeat_on_day_of_month))
+		except:
+			import calendar
+			last_day = calendar.monthrange(y, m)[1]
+			next_date = datetime.date(y, m, last_day)
+		next_date = next_date.strftime("%Y-%m-%d")
+
+		webnotes.conn.set(self.doc, 'next_date', next_date)
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.txt b/erpnext/accounts/doctype/sales_invoice/sales_invoice.txt
new file mode 100644
index 0000000..7466d4e
--- /dev/null
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.txt
@@ -0,0 +1,1516 @@
+# DocType, Sales Invoice
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:47',
+		'docstatus': 0,
+		'modified': '2012-03-27 18:44:28',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1330671142',
+		'change_log': u'1. Change in pull_details method dt.-26-06-2009',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'is_submittable': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'read_only_onload': 1,
+		'search_fields': u'posting_date, due_date, debit_to, fiscal_year, grand_total, outstanding_amount',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'subject': u'To %(customer_name)s worth %(currency)s %(grand_total_export)s due on %(due_date)s | %(outstanding_amount)s outstanding',
+		'version': 417
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Sales Invoice',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Sales Invoice',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Sales Invoice
+	{
+		'doctype': 'DocType',
+		'name': u'Sales Invoice'
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts User',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Customer',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.retail_transaction!="Yes"',
+		'description': u'To manage multiple series please go to Setup > Manage Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Series',
+		'no_copy': 1,
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'INV\nINV/10-11/',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'is_pos',
+		'fieldtype': u'Check',
+		'label': u'Is POS',
+		'oldfieldname': u'is_pos',
+		'oldfieldtype': u'Check',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'default': u'1',
+		'depends_on': u'eval:doc.is_pos==1',
+		'doctype': u'DocField',
+		'fieldname': u'update_stock',
+		'fieldtype': u'Check',
+		'label': u'Update Stock',
+		'oldfieldname': u'update_stock',
+		'oldfieldtype': u'Check',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'The account to which you will pay (have paid) the money to.',
+		'doctype': u'DocField',
+		'fieldname': u'debit_to',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Debit To',
+		'oldfieldname': u'debit_to',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'label': u'Customer',
+		'no_copy': 0,
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer_address',
+		'fieldtype': u'Link',
+		'label': u'Customer Address',
+		'options': u'Address',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_person',
+		'fieldtype': u'Link',
+		'label': u'Contact Person',
+		'options': u'Contact',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
+		'label': u'Name',
+		'oldfieldname': u'customer_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'address_display',
+		'fieldtype': u'Small Text',
+		'label': u'Address',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_display',
+		'fieldtype': u'Small Text',
+		'label': u'Contact',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_mobile',
+		'fieldtype': u'Text',
+		'label': u'Mobile No',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_email',
+		'fieldtype': u'Text',
+		'label': u'Contact Email',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'Today',
+		'description': u'The date at which current entry will get or has actually executed.',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Posting Date',
+		'no_copy': 1,
+		'oldfieldname': u'posting_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'posting_time',
+		'fieldtype': u'Time',
+		'label': u'Posting Time',
+		'no_copy': 1,
+		'oldfieldname': u'posting_time',
+		'oldfieldtype': u'Time',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'Today',
+		'description': u'Enter the date by which payments from customer is expected against this invoice.',
+		'doctype': u'DocField',
+		'fieldname': u'due_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Due Date',
+		'no_copy': 1,
+		'oldfieldname': u'due_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Link',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Invoice',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'mode_of_payment',
+		'fieldtype': u'Select',
+		'label': u'Mode of Payment',
+		'oldfieldname': u'mode_of_payment',
+		'oldfieldtype': u'Select',
+		'options': u'link:Mode of Payment',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Territory',
+		'options': u'Territory',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer_group',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Customer Group',
+		'options': u'Customer Group',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'items',
+		'fieldtype': u'Section Break',
+		'label': u'Items',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'price_list_name',
+		'fieldtype': u'Select',
+		'label': u'Price List',
+		'oldfieldname': u'price_list_name',
+		'oldfieldtype': u'Select',
+		'options': u'link:Price List',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Select the currency in which price list is maintained',
+		'doctype': u'DocField',
+		'fieldname': u'price_list_currency',
+		'fieldtype': u'Select',
+		'label': u'Price List Currency',
+		'options': u'link:Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u"Rate at which Price list currency is converted to customer's base currency",
+		'doctype': u'DocField',
+		'fieldname': u'plc_conversion_rate',
+		'fieldtype': u'Currency',
+		'label': u'Price List Currency Conversion Rate',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'currency',
+		'fieldtype': u'Select',
+		'label': u'Currency',
+		'oldfieldname': u'currency',
+		'oldfieldtype': u'Select',
+		'options': u'link:Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'1.00',
+		'description': u"Rate at which Customer Currency is converted to customer's base currency",
+		'doctype': u'DocField',
+		'fieldname': u'conversion_rate',
+		'fieldtype': u'Currency',
+		'label': u'Conversion Rate',
+		'oldfieldname': u'conversion_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Select Items from Sales Order',
+		'doctype': u'DocField',
+		'fieldname': u'sales_order_main',
+		'fieldtype': u'Link',
+		'label': u'Sales Order',
+		'oldfieldname': u'sales_order_main',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Order',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Select Items from Delivery Note',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_note_main',
+		'fieldtype': u'Link',
+		'label': u'Delivery Note',
+		'oldfieldname': u'delivery_note_main',
+		'oldfieldtype': u'Link',
+		'options': u'Delivery Note',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'get_items',
+		'fieldtype': u'Button',
+		'label': u'Get Items',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'options': u'Simple',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'entries',
+		'fieldtype': u'Table',
+		'label': u'Entries',
+		'oldfieldname': u'entries',
+		'oldfieldtype': u'Table',
+		'options': u'Sales Invoice Item',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'recalculate_values',
+		'fieldtype': u'Button',
+		'label': u'Re-Calculate Values',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'section_break1',
+		'fieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'description': u'Will be calculated automatically when you enter the details',
+		'doctype': u'DocField',
+		'fieldname': u'net_total',
+		'fieldtype': u'Currency',
+		'label': u'Net Total*',
+		'oldfieldname': u'net_total',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.is_pos==1',
+		'doctype': u'DocField',
+		'fieldname': u'cash_bank_account',
+		'fieldtype': u'Link',
+		'label': u'Cash/Bank Account',
+		'oldfieldname': u'cash_bank_account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.is_pos==1',
+		'doctype': u'DocField',
+		'fieldname': u'paid_amount',
+		'fieldtype': u'Currency',
+		'label': u'Paid Amount',
+		'oldfieldname': u'paid_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break4',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.is_pos==1',
+		'doctype': u'DocField',
+		'fieldname': u'write_off_account',
+		'fieldtype': u'Link',
+		'label': u'Write Off Account',
+		'options': u'Account',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.is_pos==1',
+		'doctype': u'DocField',
+		'fieldname': u'write_off_cost_center',
+		'fieldtype': u'Link',
+		'label': u'Write Off Cost Center',
+		'options': u'Cost Center',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.is_pos==1',
+		'doctype': u'DocField',
+		'fieldname': u'write_off_amount',
+		'fieldtype': u'Currency',
+		'label': u'Write Off Amount',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'taxes',
+		'fieldtype': u'Section Break',
+		'label': u'Taxes and Charges',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'charge',
+		'fieldtype': u'Link',
+		'label': u'Taxes and Charges',
+		'oldfieldname': u'charge',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Taxes and Charges Master',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'get_charges',
+		'fieldtype': u'Button',
+		'label': u'Get Taxes and Charges',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'other_charges',
+		'fieldtype': u'Table',
+		'label': u'Taxes and Charges1',
+		'oldfieldname': u'other_charges',
+		'oldfieldtype': u'Table',
+		'options': u'Sales Taxes and Charges',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'calculate_charges',
+		'fieldtype': u'Button',
+		'label': u'Calculate Taxes and Charges',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'other_charges_total',
+		'fieldtype': u'Currency',
+		'label': u'Total Taxes and Charges',
+		'oldfieldname': u'other_charges_total',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'other_charges_calculation',
+		'fieldtype': u'HTML',
+		'label': u'Taxes and Charges Calculation',
+		'oldfieldtype': u'HTML',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'totals',
+		'fieldtype': u'Section Break',
+		'label': u'Totals',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'column_break5',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'grand_total',
+		'fieldtype': u'Currency',
+		'in_filter': 1,
+		'label': u'Grand Total',
+		'oldfieldname': u'grand_total',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rounded_total',
+		'fieldtype': u'Currency',
+		'label': u'Rounded Total',
+		'oldfieldname': u'rounded_total',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'In Words will be visible once you save the Sales Invoice.',
+		'doctype': u'DocField',
+		'fieldname': u'in_words',
+		'fieldtype': u'Data',
+		'label': u'In Words',
+		'oldfieldname': u'in_words',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total_advance',
+		'fieldtype': u'Currency',
+		'label': u'Total Advance',
+		'oldfieldname': u'total_advance',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'outstanding_amount',
+		'fieldtype': u'Currency',
+		'label': u'Outstanding Amount',
+		'no_copy': 1,
+		'oldfieldname': u'outstanding_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'column_break6',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'grand_total_export',
+		'fieldtype': u'Currency',
+		'label': u'Grand Total (Export)',
+		'oldfieldname': u'grand_total_export',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rounded_total_export',
+		'fieldtype': u'Currency',
+		'label': u'Rounded Total (Export)',
+		'oldfieldname': u'rounded_total_export',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'in_words_export',
+		'fieldtype': u'Data',
+		'label': u'In Words (Export)',
+		'oldfieldname': u'in_words_export',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'gross_profit',
+		'fieldtype': u'Currency',
+		'label': u'Gross Profit',
+		'oldfieldname': u'gross_profit',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'gross_profit_percent',
+		'fieldtype': u'Currency',
+		'label': u'Gross Profit (%)',
+		'oldfieldname': u'gross_profit_percent',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'terms_section_break',
+		'fieldtype': u'Section Break',
+		'label': u'Terms and Conditions',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tc_name',
+		'fieldtype': u'Link',
+		'label': u'Select Terms and Conditions',
+		'oldfieldname': u'tc_name',
+		'oldfieldtype': u'Link',
+		'options': u'Terms and Conditions',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'get_terms',
+		'fieldtype': u'Button',
+		'label': u'Get Terms and Conditions',
+		'oldfieldtype': u'Button',
+		'options': u'get_tc_details',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Server'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'terms_html',
+		'fieldtype': u'HTML',
+		'label': u'Terms and Conditions HTML',
+		'oldfieldtype': u'HTML',
+		'options': u'You can add Terms and Notes that will be printed in the Transaction',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'terms',
+		'fieldtype': u'Text Editor',
+		'label': u'Terms and Conditions Details',
+		'oldfieldname': u'terms',
+		'oldfieldtype': u'Text Editor',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'more_info',
+		'fieldtype': u'Section Break',
+		'label': u'More Info',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'column_break7',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'No',
+		'doctype': u'DocField',
+		'fieldname': u'is_opening',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Is Opening',
+		'oldfieldname': u'is_opening',
+		'oldfieldtype': u'Select',
+		'options': u'No\nYes',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'aging_date',
+		'fieldtype': u'Date',
+		'label': u'Aging Date',
+		'oldfieldname': u'aging_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'letter_head',
+		'fieldtype': u'Select',
+		'label': u'Letter Head',
+		'oldfieldname': u'letter_head',
+		'oldfieldtype': u'Select',
+		'options': u'link:Letter Head',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'c_form_applicable',
+		'fieldtype': u'Select',
+		'label': u'C-Form Applicable',
+		'no_copy': 1,
+		'options': u'No\nYes',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'c_form_no',
+		'fieldtype': u'Link',
+		'label': u'C-Form No',
+		'no_copy': 1,
+		'options': u'C-Form',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.source == 'Campaign'",
+		'doctype': u'DocField',
+		'fieldname': u'campaign',
+		'fieldtype': u'Link',
+		'label': u'Campaign',
+		'oldfieldname': u'campaign',
+		'oldfieldtype': u'Link',
+		'options': u'Campaign',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Track this Sales Invoice against any Project',
+		'doctype': u'DocField',
+		'fieldname': u'project_name',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Project Name',
+		'oldfieldname': u'project_name',
+		'oldfieldtype': u'Link',
+		'options': u'Project',
+		'permlevel': 0,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'column_break8',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'select_print_heading',
+		'fieldtype': u'Link',
+		'label': u'Select Print Heading',
+		'no_copy': 1,
+		'oldfieldname': u'select_print_heading',
+		'oldfieldtype': u'Link',
+		'options': u'Print Heading',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'source',
+		'fieldtype': u'Select',
+		'label': u'Source',
+		'oldfieldname': u'source',
+		'oldfieldtype': u'Select',
+		'options': u"\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign",
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Fiscal Year',
+		'no_copy': 0,
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'cancel_reason',
+		'fieldtype': u'Data',
+		'label': u'Cancel Reason',
+		'oldfieldname': u'cancel_reason',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Small Text',
+		'label': u'Remarks',
+		'no_copy': 1,
+		'oldfieldname': u'remarks',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.is_pos',
+		'doctype': u'DocField',
+		'fieldname': u'advances',
+		'fieldtype': u'Section Break',
+		'label': u'Advances',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'get_advances_received',
+		'fieldtype': u'Button',
+		'label': u'Get Advances Received',
+		'oldfieldtype': u'Button',
+		'options': u'get_advances',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'advance_adjustment_details',
+		'fieldtype': u'Table',
+		'label': u'Sales Invoice Advance',
+		'oldfieldname': u'advance_adjustment_details',
+		'oldfieldtype': u'Table',
+		'options': u'Sales Invoice Advance',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sales_team_section_break',
+		'fieldtype': u'Section Break',
+		'label': u'Sales Team',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'column_break9',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sales_partner',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Sales Partner',
+		'oldfieldname': u'sales_partner',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Partner',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'column_break10',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'commission_rate',
+		'fieldtype': u'Currency',
+		'label': u'Commission Rate (%)',
+		'oldfieldname': u'commission_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'total_commission',
+		'fieldtype': u'Currency',
+		'label': u'Total Commission',
+		'oldfieldname': u'total_commission',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'section_break2',
+		'fieldtype': u'Section Break',
+		'options': u'Simple',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sales_team',
+		'fieldtype': u'Table',
+		'label': u'Sales Team1',
+		'oldfieldname': u'sales_team',
+		'oldfieldtype': u'Table',
+		'options': u'Sales Team',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'depends_on': u'eval:doc.docstatus==1',
+		'doctype': u'DocField',
+		'fieldname': u'recurring_invoice',
+		'fieldtype': u'Section Break',
+		'label': u'Recurring Invoice',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break11',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.docstatus==1',
+		'description': u'Check if recurring invoice, uncheck to stop recurring or put proper End Date',
+		'doctype': u'DocField',
+		'fieldname': u'convert_into_recurring_invoice',
+		'fieldtype': u'Check',
+		'label': u'Convert into Recurring Invoice',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'depends_on': u'eval:doc.convert_into_recurring_invoice==1',
+		'description': u'The day of the month on which auto invoice will be generated e.g. 05, 28 etc ',
+		'doctype': u'DocField',
+		'fieldname': u'repeat_on_day_of_month',
+		'fieldtype': u'Data',
+		'label': u'Repeat on Day of Month',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'depends_on': u'eval:doc.convert_into_recurring_invoice==1',
+		'description': u'The date on which recurring invoice will be stop',
+		'doctype': u'DocField',
+		'fieldname': u'end_date',
+		'fieldtype': u'Date',
+		'label': u'End Date',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break12',
+		'fieldtype': u'Column Break',
+		'no_copy': 0,
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'depends_on': u'eval:doc.convert_into_recurring_invoice==1',
+		'description': u'Enter email id separated by commas, invoice will be mailed automatically on particular date',
+		'doctype': u'DocField',
+		'fieldname': u'notification_email_address',
+		'fieldtype': u'Small Text',
+		'label': u'Notification Email Address',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'depends_on': u'eval:doc.convert_into_recurring_invoice==1',
+		'description': u'The unique id for tracking all recurring invoices ',
+		'doctype': u'DocField',
+		'fieldname': u'recurring_id',
+		'fieldtype': u'Data',
+		'label': u'Recurring Id',
+		'no_copy': 1,
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'depends_on': u'eval:doc.convert_into_recurring_invoice==1',
+		'description': u'The date on which next invoice will be generated ',
+		'doctype': u'DocField',
+		'fieldname': u'next_date',
+		'fieldtype': u'Date',
+		'label': u'Next Date',
+		'no_copy': 1,
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'against_income_account',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Against Income Account',
+		'no_copy': 1,
+		'oldfieldname': u'against_income_account',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'repair_outstanding_amt',
+		'fieldtype': u'Button',
+		'label': u'Repair Outstanding Amt',
+		'oldfieldtype': u'Button',
+		'options': u'repair_rv_outstanding',
+		'permlevel': 0,
+		'print_hide': 1
+	}
+]
diff --git a/erpnext/accounts/doctype/internal_reconciliation/__init__.py b/erpnext/accounts/doctype/sales_invoice_advance/__init__.py
similarity index 100%
rename from erpnext/accounts/doctype/internal_reconciliation/__init__.py
rename to erpnext/accounts/doctype/sales_invoice_advance/__init__.py
diff --git a/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.txt b/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.txt
new file mode 100644
index 0000000..5725246
--- /dev/null
+++ b/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.txt
@@ -0,0 +1,105 @@
+# DocType, Sales Invoice Advance
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:40',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:40',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 24
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'no_copy': 1,
+		'parent': u'Sales Invoice Advance',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Sales Invoice Advance
+	{
+		'doctype': 'DocType',
+		'name': u'Sales Invoice Advance'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'journal_voucher',
+		'fieldtype': u'Link',
+		'label': u'Journal Voucher',
+		'oldfieldname': u'journal_voucher',
+		'oldfieldtype': u'Link',
+		'options': u'Journal Voucher',
+		'permlevel': 1,
+		'width': u'250px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'jv_detail_no',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Journal Voucher Detail No',
+		'oldfieldname': u'jv_detail_no',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'120px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'advance_amount',
+		'fieldtype': u'Currency',
+		'label': u'Advance amount',
+		'oldfieldname': u'advance_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'width': u'120px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'allocated_amount',
+		'fieldtype': u'Currency',
+		'label': u'Allocated amount',
+		'oldfieldname': u'allocated_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'trigger': u'Client',
+		'width': u'120px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Small Text',
+		'label': u'Remarks',
+		'oldfieldname': u'remarks',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'width': u'150px'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/ir_payment_detail/__init__.py b/erpnext/accounts/doctype/sales_invoice_item/__init__.py
similarity index 100%
rename from erpnext/accounts/doctype/ir_payment_detail/__init__.py
rename to erpnext/accounts/doctype/sales_invoice_item/__init__.py
diff --git a/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.txt b/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
new file mode 100644
index 0000000..acb1d95
--- /dev/null
+++ b/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
@@ -0,0 +1,435 @@
+# DocType, Sales Invoice Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:48',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:48',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'INVD.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 29
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Sales Invoice Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Sales Invoice Item
+	{
+		'doctype': 'DocType',
+		'name': u'Sales Invoice Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 0,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'in_filter': 0,
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'200px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'UOM',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Price List Rate',
+		'oldfieldname': u'ref_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'adj_rate',
+		'fieldtype': u'Float',
+		'label': u'Discount (%)',
+		'oldfieldname': u'adj_rate',
+		'oldfieldtype': u'Float',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'export_rate',
+		'fieldtype': u'Currency',
+		'label': u'Basic Rate',
+		'oldfieldname': u'export_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'export_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'export_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'base_ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Price List Rate*',
+		'oldfieldname': u'base_ref_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'basic_rate',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Basic Rate*',
+		'oldfieldname': u'basic_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount*',
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'label': u'Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'income_account',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Income Account',
+		'oldfieldname': u'income_account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'120px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'Purchase - TC',
+		'doctype': u'DocField',
+		'fieldname': u'cost_center',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Cost Center',
+		'oldfieldname': u'cost_center',
+		'oldfieldtype': u'Link',
+		'options': u'Cost Center',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'120px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Small Text',
+		'in_filter': 1,
+		'label': u'Serial No',
+		'oldfieldname': u'serial_no',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'print_hide': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'batch_no',
+		'fieldtype': u'Link',
+		'label': u'Batch No',
+		'options': u'Batch',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Brand Name',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'actual_qty',
+		'fieldtype': u'Currency',
+		'label': u'Available Qty at Warehouse',
+		'oldfieldname': u'actual_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'delivered_qty',
+		'fieldtype': u'Currency',
+		'label': u'Delivered Qty',
+		'oldfieldname': u'delivered_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sales_order',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Sales Order',
+		'oldfieldname': u'sales_order',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Order',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'so_detail',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'SO Detail ',
+		'oldfieldname': u'so_detail',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'delivery_note',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Delivery Note',
+		'oldfieldname': u'delivery_note',
+		'oldfieldtype': u'Link',
+		'options': u'Delivery Note',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'dn_detail',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'DN Detail',
+		'oldfieldname': u'dn_detail',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_tax_rate',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Item Tax Rate',
+		'oldfieldname': u'item_tax_rate',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'clear_pending',
+		'fieldtype': u'Check',
+		'hidden': 1,
+		'label': u'Clear Pending',
+		'no_copy': 1,
+		'oldfieldname': u'clear_pending',
+		'oldfieldtype': u'Check',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'page_break',
+		'fieldtype': u'Check',
+		'label': u'Page Break',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/internal_reconciliation/__init__.py b/erpnext/accounts/doctype/sales_taxes_and_charges/__init__.py
similarity index 100%
copy from erpnext/accounts/doctype/internal_reconciliation/__init__.py
copy to erpnext/accounts/doctype/sales_taxes_and_charges/__init__.py
diff --git a/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt b/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt
new file mode 100644
index 0000000..b8c8a5e
--- /dev/null
+++ b/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt
@@ -0,0 +1,223 @@
+# DocType, Sales Taxes and Charges
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:48',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:48',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'INVTD.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'hide_heading': 1,
+		'istable': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 20
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Sales Taxes and Charges',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Sales Taxes and Charges
+	{
+		'doctype': 'DocType',
+		'name': u'Sales Taxes and Charges'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'charge_type',
+		'fieldtype': u'Select',
+		'label': u'Type',
+		'oldfieldname': u'charge_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nActual\nOn Net Total\nOn Previous Row Amount\nOn Previous Row Total',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'account_head',
+		'fieldtype': u'Link',
+		'label': u'Account Head',
+		'oldfieldname': u'account_head',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'cost_center_other_charges',
+		'fieldtype': u'Link',
+		'label': u'Cost Center',
+		'oldfieldname': u'cost_center_other_charges',
+		'oldfieldtype': u'Link',
+		'options': u'Cost Center',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tax_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount*',
+		'oldfieldname': u'tax_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total',
+		'fieldtype': u'Currency',
+		'label': u'Total*',
+		'oldfieldname': u'total',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'row_id',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'label': u'Enter Row',
+		'oldfieldname': u'row_id',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_wise_tax_detail',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Item Wise Tax Detail ',
+		'oldfieldname': u'item_wise_tax_detail',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'parenttype',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Parenttype',
+		'oldfieldname': u'parenttype',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Cheating Field\nPlease do not delete ',
+		'doctype': u'DocField',
+		'fieldname': u'total_tax_amount',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Total Tax Amount',
+		'no_copy': 1,
+		'oldfieldname': u'total_tax_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'description': u'Cheating Field\nPlease do not delete ',
+		'doctype': u'DocField',
+		'fieldname': u'total_amount',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Total Amount',
+		'no_copy': 1,
+		'oldfieldname': u'total_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 0,
+		'description': u'If checked, the tax amount will be considered as already included in the Print Rate / Print Amount',
+		'doctype': u'DocField',
+		'fieldname': u'included_in_print_rate',
+		'fieldtype': u'Check',
+		'label': u'Included in Print Rate',
+		'no_column': 0,
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/payable_voucher/__init__.py b/erpnext/accounts/doctype/sales_taxes_and_charges_master/__init__.py
similarity index 100%
copy from erpnext/accounts/doctype/payable_voucher/__init__.py
copy to erpnext/accounts/doctype/sales_taxes_and_charges_master/__init__.py
diff --git a/erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js b/erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
new file mode 100644
index 0000000..66bfd61
--- /dev/null
+++ b/erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
@@ -0,0 +1,187 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+//--------- ONLOAD -------------
+cur_frm.cscript.onload = function(doc, cdt, cdn) {
+  // 
+}
+
+/*cur_frm.cscript.refresh = function(doc, cdt, cdn) {
+   
+}*/
+
+// For customizing print
+cur_frm.pformat.net_total = function(doc) {
+	return '';
+}
+
+cur_frm.pformat.grand_total_export = function(doc) {
+	return '';
+}
+
+cur_frm.pformat.rounded_total_export = function(doc) {
+	return '';
+}
+
+cur_frm.pformat.in_words_export = function(doc) {
+	return '';
+}
+
+cur_frm.pformat.other_charges= function(doc){
+  //function to make row of table
+	var make_row = function(title,val,bold){
+		var bstart = '<b>'; var bend = '</b>';
+		return '<tr><td style="width:50%;">'+(bold?bstart:'')+title+(bold?bend:'')+'</td>'
+		 +'<td style="width:25%;text-align:right;">'+doc.currency+'</td>'
+		 +'<td style="width:25%;text-align:right;">'+val+'</td>'
+		 +'</tr>'
+	}
+
+	function convert_rate(val){
+		var new_val = flt(val)/flt(doc.conversion_rate);
+		return new_val;
+	}
+	out ='';
+	if (!doc.print_without_amount) {
+		print_hide_dict = {};
+		for(var i in locals['DocField']) {
+			var doc_field = locals['DocField'][i];
+			if(doc_field.fieldname) {
+				print_hide_dict[doc_field.fieldname] = doc_field.print_hide;
+			}
+		}
+
+		var cl = getchildren('Sales Taxes and Charges',doc.name,'other_charges');
+
+		// outer table  
+		var out='<div><table class="noborder" style="width:100%"><tr><td style="width: 60%"></td><td>';
+
+		// main table
+
+		out +='<table class="noborder" style="width:100%">';
+		if(!print_hide_dict['net_total']) {
+			out +=make_row('Net Total',fmt_money(convert_rate(doc.net_total)),1);
+		}
+
+		// add rows
+		if(cl.length){
+			for(var i=0;i<cl.length;i++){
+				if(fmt_money(convert_rate(cl[i].tax_amount))!=0 && !cl[i].included_in_print_rate)
+				  out += make_row(cl[i].description,fmt_money(convert_rate(cl[i].tax_amount)),0);
+			}
+		}
+
+		// grand total
+		if(!print_hide_dict['grand_total_export']) {
+			out += make_row('Grand Total',fmt_money(doc.grand_total_export),1);
+		}
+		
+		if(!print_hide_dict['rounded_total_export']) {
+			out += make_row('Rounded Total',fmt_money(doc.rounded_total_export),1);
+		}
+
+		if(doc.in_words_export && !print_hide_dict['in_words_export']){
+			out +='</table></td></tr>';
+			out += '<tr><td colspan = "2">';
+			out += '<table><tr><td style="width:25%;"><b>In Words</b></td>'
+			out+= '<td style="width:50%;">'+doc.in_words_export+'</td></tr>'
+		}
+		out +='</table></td></tr></table></div>';   
+	}
+	return out;
+}
+
+cur_frm.cscript.charge_type = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(d.idx == 1 && (d.charge_type == 'On Previous Row Amount' || d.charge_type == 'On Previous Row Total')){
+    alert("You cannot select Charge Type as 'On Previous Row Amount' or 'On Previous Row Total' for first row");
+    d.charge_type = '';
+  }
+  validated = false;
+  refresh_field('charge_type',d.name,'other_charges');
+  cur_frm.cscript.row_id(doc, cdt, cdn);
+  cur_frm.cscript.rate(doc, cdt, cdn);
+  cur_frm.cscript.tax_amount(doc, cdt, cdn);
+}
+
+cur_frm.cscript.row_id = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(!d.charge_type && d.row_id){
+    alert("Please select Charge Type first");
+    d.row_id = '';
+  }
+  else if((d.charge_type == 'Actual' || d.charge_type == 'On Net Total') && d.row_id) {
+    alert("You can Enter Row only if your Charge Type is 'On Previous Row Amount' or ' Previous Row Total'");
+    d.row_id = '';
+  }
+  else if((d.charge_type == 'On Previous Row Amount' || d.charge_type == 'On Previous Row Total') && d.row_id){
+    if(d.row_id >= d.idx){
+      alert("You cannot Enter Row no. greater than or equal to current row no. for this Charge type");
+      d.row_id = '';
+    }
+  }
+  validated = false;
+  refresh_field('row_id',d.name,'other_charges');
+}
+
+/*---------------------- Get rate if account_head has account_type as TAX or CHARGEABLE-------------------------------------*/
+
+cur_frm.fields_dict['other_charges'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
+  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND (tabAccount.account_type = "Tax" OR tabAccount.account_type = "Chargeable") AND tabAccount.company = "'+doc.company+'" AND  tabAccount.name LIKE "%s"'
+}
+
+cur_frm.fields_dict['other_charges'].grid.get_field("cost_center_other_charges").get_query = function(doc) {
+	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
+}
+
+
+cur_frm.cscript.account_head = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(!d.charge_type && d.account_head){
+    alert("Please select Charge Type first");
+    validated = false;
+    d.account_head = '';
+  }
+  else if(d.account_head && d.charge_type) {
+    arg = "{'charge_type' : '" + d.charge_type +"', 'account_head' : '" + d.account_head + "'}";
+    get_server_fields('get_rate', arg, 'other_charges', doc, cdt, cdn, 1);
+  }
+  refresh_field('account_head',d.name,'other_charges');
+}
+
+cur_frm.cscript.rate = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(!d.charge_type && d.rate) {
+    alert("Please select Charge Type first");
+    d.rate = '';
+  }
+  validated = false;
+  refresh_field('rate',d.name,'other_charges');
+}
+
+cur_frm.cscript.tax_amount = function(doc, cdt, cdn) {
+  var d = locals[cdt][cdn];
+  if(!d.charge_type && d.tax_amount){
+    alert("Please select Charge Type first");
+    d.tax_amount = '';
+  }
+  else if(d.charge_type && d.tax_amount) {
+    alert("You cannot directly enter Amount and if your Charge Type is Actual enter your amount in Rate");
+    d.tax_amount = '';
+  }
+  validated = false;
+  refresh_field('tax_amount',d.name,'other_charges');
+}
diff --git a/erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.py b/erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.py
new file mode 100644
index 0000000..f57de83
--- /dev/null
+++ b/erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.py
@@ -0,0 +1,50 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+
+class DocType:
+  def __init__(self, doc, doclist=[]):
+    self.doc = doc
+    self.doclist = doclist
+
+  # Get Tax Rate if account type is Tax
+  # ===================================================================
+  def get_rate(self, arg):
+    get_obj('Sales Common').get_rate(arg, self)
+
+  def update_other_default_charges(self):
+    sql("update `tabSales Taxes and Charges Master` set is_default = 0 where ifnull(is_default,0) = 1 and name != '%s' and company = '%s'" % (self.doc.name, self.doc.company))
+
+  def on_update(self):
+    self.update_other_default_charges()
diff --git a/erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt b/erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt
new file mode 100644
index 0000000..655269c
--- /dev/null
+++ b/erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt
@@ -0,0 +1,195 @@
+# DocType, Sales Taxes and Charges Master
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:22',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:22',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1322549700',
+		'allow_trash': 1,
+		'autoname': u'field:title',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'document_type': u'Master',
+		'module': u'Accounts',
+		'name': '__common__',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 57
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Sales Taxes and Charges Master',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Sales Taxes and Charges Master',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Sales Taxes and Charges Master
+	{
+		'doctype': 'DocType',
+		'name': u'Sales Taxes and Charges Master'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Master Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Master Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'other_charges_details',
+		'fieldtype': u'Section Break',
+		'label': u'Other Charges Details',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'title',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Title',
+		'oldfieldname': u'title',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'is_default',
+		'fieldtype': u'Check',
+		'label': u'Default',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'other_charges',
+		'fieldtype': u'Table',
+		'label': u'Sales Taxes and Charges Master',
+		'oldfieldname': u'other_charges',
+		'oldfieldtype': u'Table',
+		'options': u'Sales Taxes and Charges',
+		'permlevel': 0
+	}
+]
diff --git a/erpnext/accounts/doctype/tds_category/tds_category.txt b/erpnext/accounts/doctype/tds_category/tds_category.txt
index 509f177..caac059 100644
--- a/erpnext/accounts/doctype/tds_category/tds_category.txt
+++ b/erpnext/accounts/doctype/tds_category/tds_category.txt
@@ -3,46 +3,46 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:27',
+		'creation': '2012-03-27 14:35:48',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:48',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1302586171',
-		'autoname': 'field:category_name',
-		'colour': 'White:FFF',
+		'_last_update': u'1302586171',
+		'autoname': u'field:category_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 0,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 8
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'TDS Category',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'TDS Category',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'TDS Category',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'TDS Category',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1
 	},
@@ -50,7 +50,26 @@
 	# DocType, TDS Category
 	{
 		'doctype': 'DocType',
-		'name': 'TDS Category'
+		'name': u'TDS Category'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'role': u'Accounts Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'role': u'System Manager',
+		'write': 1
 	},
 
 	# DocPerm
@@ -58,47 +77,24 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'Accounts User',
+		'doctype': u'DocPerm',
+		'role': u'Accounts User',
 		'submit': 0,
 		'write': 0
 	},
 
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Accounts Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'System Manager',
-		'write': 1
-	},
-
 	# DocField
 	{
-		'default': 'Accounts',
-		'doctype': 'DocField',
-		'fieldname': 'module',
-		'fieldtype': 'Link',
+		'default': u'Accounts',
+		'doctype': u'DocField',
+		'fieldname': u'module',
+		'fieldtype': u'Link',
 		'hidden': 0,
-		'idx': 1,
 		'in_filter': 0,
-		'label': 'Module',
-		'oldfieldname': 'module',
-		'oldfieldtype': 'Link',
-		'options': 'Module Def',
+		'label': u'Module',
+		'oldfieldname': u'module',
+		'oldfieldtype': u'Link',
+		'options': u'Module Def',
 		'print_hide': 0,
 		'report_hide': 0,
 		'search_index': 0
@@ -106,36 +102,34 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 2,
-		'label': 'Note HTML',
-		'oldfieldtype': 'HTML',
-		'options': '<b>Note:</b> You must first create the Accounts from the Chart of Accounts and then link it to this Category.'
+		'doctype': u'DocField',
+		'fieldname': u'note_html',
+		'fieldtype': u'HTML',
+		'label': u'Note HTML',
+		'oldfieldtype': u'HTML',
+		'options': u'<b>Note:</b> You must first create the Accounts from the Chart of Accounts and then link it to this Category.'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'category_name',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Category Name',
-		'oldfieldname': 'category_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'category_name',
+		'fieldtype': u'Data',
+		'label': u'Category Name',
+		'oldfieldname': u'category_name',
+		'oldfieldtype': u'Data',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tds_sh_edu_cess_account',
-		'fieldtype': 'Table',
-		'idx': 4,
-		'label': 'TDS Account Detail',
-		'oldfieldname': 'tds_sh_edu_cess_account',
-		'oldfieldtype': 'Table',
-		'options': 'TDS Category Account',
+		'doctype': u'DocField',
+		'fieldname': u'tds_sh_edu_cess_account',
+		'fieldtype': u'Table',
+		'label': u'TDS Account Detail',
+		'oldfieldname': u'tds_sh_edu_cess_account',
+		'oldfieldtype': u'Table',
+		'options': u'TDS Category Account',
 		'reqd': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/tds_category_account/tds_category_account.txt b/erpnext/accounts/doctype/tds_category_account/tds_category_account.txt
index 6f6022b..522ef35 100644
--- a/erpnext/accounts/doctype/tds_category_account/tds_category_account.txt
+++ b/erpnext/accounts/doctype/tds_category_account/tds_category_account.txt
@@ -3,35 +3,36 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:27',
+		'creation': '2012-03-27 14:35:48',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:48',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 1
+		'version': 2
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldtype': u'Link',
 		'name': '__common__',
-		'oldfieldtype': 'Link',
-		'parent': 'TDS Category Account',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'oldfieldtype': u'Link',
+		'parent': u'TDS Category Account',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'reqd': 1
 	},
@@ -39,28 +40,26 @@
 	# DocType, TDS Category Account
 	{
 		'doctype': 'DocType',
-		'name': 'TDS Category Account'
+		'name': u'TDS Category Account'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'company',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'options': 'Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'options': u'Company',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'account_head',
-		'idx': 3,
-		'label': 'Account Head',
-		'oldfieldname': 'account_head',
-		'options': 'Account'
+		'doctype': u'DocField',
+		'fieldname': u'account_head',
+		'label': u'Account Head',
+		'oldfieldname': u'account_head',
+		'options': u'Account'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/tds_control/tds_control.js b/erpnext/accounts/doctype/tds_control/tds_control.js
index fae4dd9..89f1301 100644
--- a/erpnext/accounts/doctype/tds_control/tds_control.js
+++ b/erpnext/accounts/doctype/tds_control/tds_control.js
@@ -25,14 +25,14 @@
   # voucher in which tds was applicable for 1st time
         
   def validate_first_entry(self,obj):
-    if obj.doc.doctype == 'Payable Voucher':
+    if obj.doc.doctype == 'Purchase Invoice':
       supp_acc = obj.doc.credit_to
     elif obj.doc.doctype == 'Journal Voucher':
       supp_acc = obj.doc.supplier_account
 
     if obj.doc.ded_amount:
       # first pv
-      first_pv = sql("select posting_date from `tabPayable Voucher` where credit_to = '%s' and docstatus = 1 and tds_category = '%s' and fiscal_year = '%s' and tds_applicable = 'Yes' and (ded_amount != 0 or ded_amount is not null) order by posting_date asc limit 1"%(supp_acc, obj.doc.tds_category, obj.doc.fiscal_year))
+      first_pv = sql("select posting_date from `tabPurchase Invoice` where credit_to = '%s' and docstatus = 1 and tds_category = '%s' and fiscal_year = '%s' and tds_applicable = 'Yes' and (ded_amount != 0 or ded_amount is not null) order by posting_date asc limit 1"%(supp_acc, obj.doc.tds_category, obj.doc.fiscal_year))
       first_pv_date = first_pv and first_pv[0][0] or ''
       # first jv
       first_jv = sql("select posting_date from `tabJournal Voucher` where supplier_account = '%s'and docstatus = 1 and tds_category = '%s' and fiscal_year = '%s' and tds_applicable = 'Yes' and (ded_amount != 0 or ded_amount is not null) order by posting_date asc limit 1"%(supp_acc, obj.doc.tds_category, obj.doc.fiscal_year))
@@ -58,7 +58,7 @@
     self.validate_first_entry(obj)
 
     # get current amount and supplier head
-    if obj.doc.doctype == 'Payable Voucher':
+    if obj.doc.doctype == 'Purchase Invoice':
       supplier_account = obj.doc.credit_to
       total_amount=flt(obj.doc.grand_total)
       for d in getlist(obj.doclist,'advance_allocation_details'):
@@ -71,7 +71,7 @@
     if obj.doc.tds_category:      
       # get total billed
       total_billed = 0
-      pv = sql("select sum(ifnull(grand_total,0)), sum(ifnull(ded_amount,0)) from `tabPayable Voucher` where tds_category = %s and credit_to = %s and fiscal_year = %s and docstatus = 1 and name != %s and is_opening != 'Yes'", (obj.doc.tds_category, supplier_account, obj.doc.fiscal_year, obj.doc.name))
+      pv = sql("select sum(ifnull(grand_total,0)), sum(ifnull(ded_amount,0)) from `tabPurchase Invoice` where tds_category = %s and credit_to = %s and fiscal_year = %s and docstatus = 1 and name != %s and is_opening != 'Yes'", (obj.doc.tds_category, supplier_account, obj.doc.fiscal_year, obj.doc.name))
       jv = sql("select sum(ifnull(total_debit,0)), sum(ifnull(ded_amount,0)) from `tabJournal Voucher` where tds_category = %s and supplier_account = %s and fiscal_year = %s and docstatus = 1 and name != %s and is_opening != 'Yes'", (obj.doc.tds_category, supplier_account, obj.doc.fiscal_year, obj.doc.name))
       tds_in_pv = pv and pv[0][1] or 0
       tds_in_jv = jv and jv[0][1] or 0
diff --git a/erpnext/accounts/doctype/tds_control/tds_control.py b/erpnext/accounts/doctype/tds_control/tds_control.py
index be1945d..ccbee7c 100644
--- a/erpnext/accounts/doctype/tds_control/tds_control.py
+++ b/erpnext/accounts/doctype/tds_control/tds_control.py
@@ -44,14 +44,14 @@
   # voucher in which tds was applicable for 1st time
         
   def validate_first_entry(self,obj):
-    if obj.doc.doctype == 'Payable Voucher':
+    if obj.doc.doctype == 'Purchase Invoice':
       supp_acc = obj.doc.credit_to
     elif obj.doc.doctype == 'Journal Voucher':
       supp_acc = obj.doc.supplier_account
 
     if obj.doc.ded_amount:
       # first pv
-      first_pv = sql("select posting_date from `tabPayable Voucher` where credit_to = '%s' and docstatus = 1 and tds_category = '%s' and fiscal_year = '%s' and tds_applicable = 'Yes' and (ded_amount != 0 or ded_amount is not null) order by posting_date asc limit 1"%(supp_acc, obj.doc.tds_category, obj.doc.fiscal_year))
+      first_pv = sql("select posting_date from `tabPurchase Invoice` where credit_to = '%s' and docstatus = 1 and tds_category = '%s' and fiscal_year = '%s' and tds_applicable = 'Yes' and (ded_amount != 0 or ded_amount is not null) order by posting_date asc limit 1"%(supp_acc, obj.doc.tds_category, obj.doc.fiscal_year))
       first_pv_date = first_pv and first_pv[0][0] or ''
       # first jv
       first_jv = sql("select posting_date from `tabJournal Voucher` where supplier_account = '%s'and docstatus = 1 and tds_category = '%s' and fiscal_year = '%s' and tds_applicable = 'Yes' and (ded_amount != 0 or ded_amount is not null) order by posting_date asc limit 1"%(supp_acc, obj.doc.tds_category, obj.doc.fiscal_year))
@@ -77,7 +77,7 @@
     self.validate_first_entry(obj)
 
     # get current amount and supplier head
-    if obj.doc.doctype == 'Payable Voucher':
+    if obj.doc.doctype == 'Purchase Invoice':
       supplier_account = obj.doc.credit_to
       total_amount=flt(obj.doc.grand_total)
       for d in getlist(obj.doclist,'advance_allocation_details'):
@@ -90,7 +90,7 @@
     if obj.doc.tds_category:      
       # get total billed
       total_billed = 0
-      pv = sql("select sum(ifnull(grand_total,0)), sum(ifnull(ded_amount,0)) from `tabPayable Voucher` where tds_category = %s and credit_to = %s and fiscal_year = %s and docstatus = 1 and name != %s and is_opening != 'Yes'", (obj.doc.tds_category, supplier_account, obj.doc.fiscal_year, obj.doc.name))
+      pv = sql("select sum(ifnull(grand_total,0)), sum(ifnull(ded_amount,0)) from `tabPurchase Invoice` where tds_category = %s and credit_to = %s and fiscal_year = %s and docstatus = 1 and name != %s and is_opening != 'Yes'", (obj.doc.tds_category, supplier_account, obj.doc.fiscal_year, obj.doc.name))
       jv = sql("select sum(ifnull(total_debit,0)), sum(ifnull(ded_amount,0)) from `tabJournal Voucher` where tds_category = %s and supplier_account = %s and fiscal_year = %s and docstatus = 1 and name != %s and is_opening != 'Yes'", (obj.doc.tds_category, supplier_account, obj.doc.fiscal_year, obj.doc.name))
       tds_in_pv = pv and pv[0][1] or 0
       tds_in_jv = jv and jv[0][1] or 0
diff --git a/erpnext/accounts/doctype/tds_control/tds_control.txt b/erpnext/accounts/doctype/tds_control/tds_control.txt
index 03f17b5..ca002eb 100644
--- a/erpnext/accounts/doctype/tds_control/tds_control.txt
+++ b/erpnext/accounts/doctype/tds_control/tds_control.txt
@@ -3,22 +3,22 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:27',
+		'creation': '2012-03-27 14:35:48',
 		'docstatus': 0,
-		'modified': '2010-12-16 16:31:49',
-		'modified_by': 'Administrator',
-		'owner': 'wasim@webnotestech.com'
+		'modified': '2012-03-27 14:35:48',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 36
 	},
@@ -26,6 +26,6 @@
 	# DocType, TDS Control
 	{
 		'doctype': 'DocType',
-		'name': 'TDS Control'
+		'name': u'TDS Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/tds_detail/tds_detail.txt b/erpnext/accounts/doctype/tds_detail/tds_detail.txt
index f24e32a..c248e73 100644
--- a/erpnext/accounts/doctype/tds_detail/tds_detail.txt
+++ b/erpnext/accounts/doctype/tds_detail/tds_detail.txt
@@ -3,131 +3,123 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:27',
+		'creation': '2012-03-27 14:35:48',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'wasim@webnotestech.com'
+		'modified': '2012-03-27 14:35:48',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 2
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'TDS Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'TDS Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'TDS Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'TDS Detail',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, TDS Detail
 	{
 		'doctype': 'DocType',
-		'name': 'TDS Detail'
+		'name': u'TDS Detail'
 	},
 
 	# DocPerm
 	{
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'All',
+		'role': u'All',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All'
+		'role': u'All'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tds_category',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'TDS Category',
-		'oldfieldname': 'tds_category',
-		'oldfieldtype': 'Select',
-		'options': 'link:TDS Category'
+		'doctype': u'DocField',
+		'fieldname': u'tds_category',
+		'fieldtype': u'Select',
+		'label': u'TDS Category',
+		'oldfieldname': u'tds_category',
+		'oldfieldtype': u'Select',
+		'options': u'link:TDS Category'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'special_tds_rate_applicable',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'label': 'Special TDS Rate Applicable',
-		'oldfieldname': 'special_tds_rate_applicable',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo'
+		'doctype': u'DocField',
+		'fieldname': u'special_tds_rate_applicable',
+		'fieldtype': u'Select',
+		'label': u'Special TDS Rate Applicable',
+		'oldfieldname': u'special_tds_rate_applicable',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'special_tds_rate',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Special TDS Rate(Section-197)\t',
-		'oldfieldname': 'special_tds_rate',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'special_tds_rate',
+		'fieldtype': u'Currency',
+		'label': u'Special TDS Rate(Section-197)\t',
+		'oldfieldname': u'special_tds_rate',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'special_tds_limit',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Special TDS Limit',
-		'oldfieldname': 'special_tds_limit',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'special_tds_limit',
+		'fieldtype': u'Currency',
+		'label': u'Special TDS Limit',
+		'oldfieldname': u'special_tds_limit',
+		'oldfieldtype': u'Currency'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/tds_payment/tds_payment.js b/erpnext/accounts/doctype/tds_payment/tds_payment.js
index e15fd13..ad45b42 100644
--- a/erpnext/accounts/doctype/tds_payment/tds_payment.js
+++ b/erpnext/accounts/doctype/tds_payment/tds_payment.js
@@ -44,7 +44,7 @@
 // Make Journal Voucher
 // --------------------
 
-cur_frm.cscript['Make Bank Voucher'] = function(doc, dt, dn) {  
+cur_frm.cscript.make_bank_voucher = function(doc, dt, dn) {  
   var call_back = function(r,rt) {
     cur_frm.cscript.make_jv(doc,dt,dn,r.message);
   }
diff --git a/erpnext/accounts/doctype/tds_payment/tds_payment.py b/erpnext/accounts/doctype/tds_payment/tds_payment.py
index cf97426..0885c3f 100644
--- a/erpnext/accounts/doctype/tds_payment/tds_payment.py
+++ b/erpnext/accounts/doctype/tds_payment/tds_payment.py
@@ -77,7 +77,7 @@
         msgprint("Please enter from date and to date")
       else:
         idx = 1
-        pv_det= sql("Select name,credit_to,grand_total,posting_date, ded_amount from `tabPayable Voucher` where tds_category='%s' And posting_date>= '%s' And posting_date <='%s'  and docstatus=1 and ded_amount > 0 Order By posting_date"%(self.doc.tds_category,self.doc.from_date,self.doc.to_date))
+        pv_det= sql("Select name,credit_to,grand_total,posting_date, ded_amount from `tabPurchase Invoice` where tds_category='%s' And posting_date>= '%s' And posting_date <='%s'  and docstatus=1 and ded_amount > 0 Order By posting_date"%(self.doc.tds_category,self.doc.from_date,self.doc.to_date))
         if pv_det:
           idx = self.make_tds_table(pv_det, idx)
         
diff --git a/erpnext/accounts/doctype/tds_payment/tds_payment.txt b/erpnext/accounts/doctype/tds_payment/tds_payment.txt
index 8d0edfb..506795e 100644
--- a/erpnext/accounts/doctype/tds_payment/tds_payment.txt
+++ b/erpnext/accounts/doctype/tds_payment/tds_payment.txt
@@ -3,49 +3,94 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:27',
+		'creation': '2012-03-27 14:35:48',
 		'docstatus': 0,
-		'modified': '2010-11-03 11:48:59',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:45:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'in_create': 0,
-		'module': 'Accounts',
+		'is_submittable': 1,
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 223
+		'version': 224
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'TDS Payment',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'TDS Payment',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'TDS Payment',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'TDS Payment',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, TDS Payment
 	{
 		'doctype': 'DocType',
-		'name': 'TDS Payment'
+		'name': u'TDS Payment'
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts User',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts Manager',
+		'submit': 1,
+		'write': 1
 	},
 
 	# DocPerm
@@ -53,158 +98,105 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Accounts User',
+		'role': u'Accounts User',
 		'submit': 0,
 		'write': 0
 	},
 
-	# DocPerm
+	# DocField
 	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'role': 'System Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 0,
-		'role': 'Accounts User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'Accounts Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 5,
-		'permlevel': 1,
-		'role': 'All'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 1,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'from_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'From Date',
-		'oldfieldname': 'from_date',
-		'oldfieldtype': 'Date',
+		'label': u'From Date',
+		'oldfieldname': u'from_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'idx': 3,
+		'doctype': u'DocField',
+		'fieldname': u'to_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'To Date',
-		'oldfieldname': 'to_date',
-		'oldfieldtype': 'Date',
+		'label': u'To Date',
+		'oldfieldname': u'to_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'tds_category',
-		'fieldtype': 'Link',
-		'idx': 4,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'tds_category',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'TDS Category',
-		'oldfieldname': 'tds_category',
-		'oldfieldtype': 'Link',
-		'options': 'TDS Category',
+		'label': u'TDS Category',
+		'oldfieldname': u'tds_category',
+		'oldfieldtype': u'Link',
+		'options': u'TDS Category',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 5,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'description': 'To manage multiple series please go to Setup > Series Setup',
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Naming Series',
+		'description': u'To manage multiple series please go to Setup > Series Setup',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Naming Series',
 		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
-		'options': 'TDSP',
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'TDSP',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 7,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -212,240 +204,231 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'idx': 8,
-		'label': 'Amended From',
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'description': 'The date at which current entry is corrected in the system.',
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'idx': 9,
-		'label': 'Amendment Date',
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 10,
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 11,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 12,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'registration_details',
-		'fieldtype': 'Small Text',
-		'idx': 13,
-		'label': 'Registration Details',
-		'oldfieldname': 'registration_details',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'registration_details',
+		'fieldtype': u'Small Text',
+		'label': u'Registration Details',
+		'oldfieldname': u'registration_details',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'remarks',
-		'fieldtype': 'Small Text',
-		'idx': 14,
-		'label': 'Remark',
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Small Text',
+		'label': u'Remark',
 		'no_copy': 1,
-		'oldfieldname': 'remarks',
-		'oldfieldtype': 'Small Text',
+		'oldfieldname': u'remarks',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 15,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 16,
-		'oldfieldtype': 'HTML',
-		'options': '<b>Please Update Cheque No., BSR Code, Challan ID no. after actual payment. Unless you do not get it in Form 16A.</b>',
+		'doctype': u'DocField',
+		'fieldname': u'html0',
+		'fieldtype': u'HTML',
+		'oldfieldtype': u'HTML',
+		'options': u'<b>Please Update Cheque No., BSR Code, Challan ID no. after actual payment. Unless you do not get it in Form 16A.</b>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'cheque_no',
-		'fieldtype': 'Data',
-		'idx': 17,
-		'label': 'Cheque / DD No.',
-		'oldfieldname': 'cheque_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'cheque_no',
+		'fieldtype': u'Data',
+		'label': u'Cheque / DD No.',
+		'oldfieldname': u'cheque_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'bsr_code',
-		'fieldtype': 'Data',
-		'idx': 18,
-		'label': 'BSR Code',
-		'oldfieldname': 'bsr_code',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'bsr_code',
+		'fieldtype': u'Data',
+		'label': u'BSR Code',
+		'oldfieldname': u'bsr_code',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'date_of_receipt',
-		'fieldtype': 'Date',
-		'idx': 19,
-		'label': 'Date of Receipt',
-		'oldfieldname': 'date_of_receipt',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'date_of_receipt',
+		'fieldtype': u'Date',
+		'label': u'Date of Receipt',
+		'oldfieldname': u'date_of_receipt',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'challan_id',
-		'fieldtype': 'Data',
-		'idx': 20,
-		'label': 'Challan ID',
-		'oldfieldname': 'challan_id',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'challan_id',
+		'fieldtype': u'Data',
+		'label': u'Challan ID',
+		'oldfieldname': u'challan_id',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 21,
-		'label': 'Update',
-		'oldfieldtype': 'Button',
-		'options': 'update_ack_details',
+		'doctype': u'DocField',
+		'fieldname': u'update',
+		'fieldtype': u'Button',
+		'label': u'Update',
+		'oldfieldtype': u'Button',
+		'options': u'update_ack_details',
 		'permlevel': 0,
 		'report_hide': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 22,
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'section_break1',
+		'fieldtype': u'Section Break',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 23,
-		'label': 'Get TDS List',
-		'oldfieldtype': 'Button',
-		'options': 'get_tds_list',
+		'doctype': u'DocField',
+		'fieldname': u'get_tds_list',
+		'fieldtype': u'Button',
+		'label': u'Get TDS List',
+		'oldfieldtype': u'Button',
+		'options': u'get_tds_list',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tds_payment_details',
-		'fieldtype': 'Table',
-		'idx': 24,
-		'label': 'TDS Payment Details',
-		'oldfieldname': 'tds_payment_details',
-		'oldfieldtype': 'Table',
-		'options': 'TDS Payment Detail',
+		'doctype': u'DocField',
+		'fieldname': u'tds_payment_details',
+		'fieldtype': u'Table',
+		'label': u'TDS Payment Details',
+		'oldfieldname': u'tds_payment_details',
+		'oldfieldtype': u'Table',
+		'options': u'TDS Payment Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 25,
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'section_break2',
+		'fieldtype': u'Section Break',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_tds',
-		'fieldtype': 'Currency',
-		'idx': 26,
-		'label': 'Total TDS',
-		'oldfieldname': 'total_tds',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'total_tds',
+		'fieldtype': u'Currency',
+		'label': u'Total TDS',
+		'oldfieldname': u'total_tds',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 27,
-		'label': 'Make Bank Voucher',
-		'oldfieldtype': 'Button',
+		'doctype': u'DocField',
+		'fieldname': u'make_bank_voucher',
+		'fieldtype': u'Button',
+		'label': u'Make Bank Voucher',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/tds_payment_detail/tds_payment_detail.txt b/erpnext/accounts/doctype/tds_payment_detail/tds_payment_detail.txt
index d971509..4443090 100644
--- a/erpnext/accounts/doctype/tds_payment_detail/tds_payment_detail.txt
+++ b/erpnext/accounts/doctype/tds_payment_detail/tds_payment_detail.txt
@@ -3,116 +3,109 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:27',
+		'creation': '2012-03-27 14:35:49',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 11
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'TDS Payment Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'TDS Payment Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, TDS Payment Detail
 	{
 		'doctype': 'DocType',
-		'name': 'TDS Payment Detail'
+		'name': u'TDS Payment Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_no',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Voucher No',
-		'oldfieldname': 'voucher_no',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'voucher_no',
+		'fieldtype': u'Data',
+		'label': u'Voucher No',
+		'oldfieldname': u'voucher_no',
+		'oldfieldtype': u'Data'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'party_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Party Name',
-		'oldfieldname': 'party_name',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'party_name',
+		'fieldtype': u'Data',
+		'label': u'Party Name',
+		'oldfieldname': u'party_name',
+		'oldfieldtype': u'Data'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amount_paid',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Amount paid / credited',
-		'oldfieldname': 'amount_paid',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'amount_paid',
+		'fieldtype': u'Currency',
+		'label': u'Amount paid / credited',
+		'oldfieldname': u'amount_paid',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'date_of_payment',
-		'fieldtype': 'Date',
-		'idx': 4,
-		'label': 'Date of payment / credit',
-		'oldfieldname': 'date_of_payment',
-		'oldfieldtype': 'Date'
+		'doctype': u'DocField',
+		'fieldname': u'date_of_payment',
+		'fieldtype': u'Date',
+		'label': u'Date of payment / credit',
+		'oldfieldname': u'date_of_payment',
+		'oldfieldtype': u'Date'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tds_amount',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'TDS',
-		'oldfieldname': 'tds_amount',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'tds_amount',
+		'fieldtype': u'Currency',
+		'label': u'TDS',
+		'oldfieldname': u'tds_amount',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cess_on_tds',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Cess on TDS',
-		'oldfieldname': 'cess_on_tds',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'cess_on_tds',
+		'fieldtype': u'Currency',
+		'label': u'Cess on TDS',
+		'oldfieldname': u'cess_on_tds',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_tax_amount',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Total Tax Amount',
-		'oldfieldname': 'total_tax_amount',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'total_tax_amount',
+		'fieldtype': u'Currency',
+		'label': u'Total Tax Amount',
+		'oldfieldname': u'total_tax_amount',
+		'oldfieldtype': u'Currency'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/tds_rate_chart/tds_rate_chart.txt b/erpnext/accounts/doctype/tds_rate_chart/tds_rate_chart.txt
index 23e7b72..52d475d 100644
--- a/erpnext/accounts/doctype/tds_rate_chart/tds_rate_chart.txt
+++ b/erpnext/accounts/doctype/tds_rate_chart/tds_rate_chart.txt
@@ -3,45 +3,45 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:27',
+		'creation': '2012-03-27 14:35:49',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'Prompt',
-		'colour': 'White:FFF',
+		'autoname': u'Prompt',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
 		'read_only': 0,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 11
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'TDS Rate Chart',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'TDS Rate Chart',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'TDS Rate Chart',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'TDS Rate Chart',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1
 	},
@@ -49,7 +49,7 @@
 	# DocType, TDS Rate Chart
 	{
 		'doctype': 'DocType',
-		'name': 'TDS Rate Chart'
+		'name': u'TDS Rate Chart'
 	},
 
 	# DocPerm
@@ -57,21 +57,8 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'Accounts User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Accounts Manager',
+		'doctype': u'DocPerm',
+		'role': u'Accounts Manager',
 		'submit': 0,
 		'write': 0
 	},
@@ -79,49 +66,56 @@
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'System Manager',
+		'doctype': u'DocPerm',
+		'role': u'System Manager',
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'role': u'Accounts User',
+		'submit': 0,
+		'write': 0
+	},
+
 	# DocField
 	{
-		'default': 'Accounts',
-		'doctype': 'DocField',
-		'fieldname': 'module',
-		'fieldtype': 'Link',
+		'default': u'Accounts',
+		'doctype': u'DocField',
+		'fieldname': u'module',
+		'fieldtype': u'Link',
 		'hidden': 1,
-		'idx': 1,
-		'label': 'Module',
-		'oldfieldname': 'module',
-		'oldfieldtype': 'Link',
-		'options': 'Module Def',
+		'label': u'Module',
+		'oldfieldname': u'module',
+		'oldfieldtype': u'Link',
+		'options': u'Module Def',
 		'print_hide': 1,
 		'report_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'applicable_from',
-		'fieldtype': 'Date',
-		'idx': 2,
-		'label': 'Applicable From',
-		'oldfieldname': 'applicable_from',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'applicable_from',
+		'fieldtype': u'Date',
+		'label': u'Applicable From',
+		'oldfieldname': u'applicable_from',
+		'oldfieldtype': u'Date',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rate_chart_detail',
-		'fieldtype': 'Table',
-		'idx': 3,
-		'label': 'Rate Chart Detail',
-		'oldfieldname': 'rate_chart_detail',
-		'oldfieldtype': 'Table',
-		'options': 'TDS Rate Detail'
+		'doctype': u'DocField',
+		'fieldname': u'rate_chart_detail',
+		'fieldtype': u'Table',
+		'label': u'Rate Chart Detail',
+		'oldfieldname': u'rate_chart_detail',
+		'oldfieldtype': u'Table',
+		'options': u'TDS Rate Detail'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/tds_rate_detail/tds_rate_detail.txt b/erpnext/accounts/doctype/tds_rate_detail/tds_rate_detail.txt
index b7e19b1..d343286 100644
--- a/erpnext/accounts/doctype/tds_rate_detail/tds_rate_detail.txt
+++ b/erpnext/accounts/doctype/tds_rate_detail/tds_rate_detail.txt
@@ -3,86 +3,82 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:27',
+		'creation': '2012-03-27 14:35:49',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 7
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'TDS Rate Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'TDS Rate Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, TDS Rate Detail
 	{
 		'doctype': 'DocType',
-		'name': 'TDS Rate Detail'
+		'name': u'TDS Rate Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'category',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Category',
-		'oldfieldname': 'category',
-		'oldfieldtype': 'Link',
-		'options': 'TDS Category',
-		'width': '200px'
+		'doctype': u'DocField',
+		'fieldname': u'category',
+		'fieldtype': u'Link',
+		'label': u'Category',
+		'oldfieldname': u'category',
+		'oldfieldtype': u'Link',
+		'options': u'TDS Category',
+		'width': u'200px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'slab_from',
-		'fieldtype': 'Currency',
-		'idx': 2,
-		'label': 'Slab From',
-		'oldfieldname': 'slab_from',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'slab_from',
+		'fieldtype': u'Currency',
+		'label': u'Slab From',
+		'oldfieldname': u'slab_from',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rate',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Rate',
-		'oldfieldname': 'rate',
-		'oldfieldtype': 'Currency',
-		'width': '50px'
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'rate',
+		'oldfieldtype': u'Currency',
+		'width': u'50px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rate_without_pan',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Rate without PAN',
-		'oldfieldname': 'rate_without_pan',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'rate_without_pan',
+		'fieldtype': u'Currency',
+		'label': u'Rate without PAN',
+		'oldfieldname': u'rate_without_pan',
+		'oldfieldtype': u'Currency'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.txt b/erpnext/accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.txt
index 769064d..4471ad59 100644
--- a/erpnext/accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.txt
+++ b/erpnext/accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:27',
+		'creation': '2012-03-27 14:35:49',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'nabin@webnotestech.com'
+		'modified': '2012-03-27 14:35:49',
+		'modified_by': u'Administrator',
+		'owner': u'nabin@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'TDSR/.####',
-		'colour': 'White:FFF',
+		'autoname': u'TDSR/.####',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'Accounts',
+		'module': u'Accounts',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 13
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'TDS Return Acknowledgement',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'TDS Return Acknowledgement',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'reqd': 1
 	},
@@ -36,11 +36,11 @@
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'TDS Return Acknowledgement',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'TDS Return Acknowledgement',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -49,80 +49,73 @@
 	# DocType, TDS Return Acknowledgement
 	{
 		'doctype': 'DocType',
-		'name': 'TDS Return Acknowledgement'
+		'name': u'TDS Return Acknowledgement'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'Accounts User'
+		'doctype': u'DocPerm',
+		'role': u'Accounts User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Accounts Manager'
+		'doctype': u'DocPerm',
+		'role': u'Accounts Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year'
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year'
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 0,
-		'doctype': 'DocField',
-		'fieldname': 'quarter',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'label': 'Quarter',
-		'oldfieldname': 'quarter',
-		'oldfieldtype': 'Select',
-		'options': '\nApr-Jun\nJul-Sept\nOct-Dec\nJan-Mar',
-		'trigger': 'Client'
+		'doctype': u'DocField',
+		'fieldname': u'quarter',
+		'fieldtype': u'Select',
+		'label': u'Quarter',
+		'oldfieldname': u'quarter',
+		'oldfieldtype': u'Select',
+		'options': u'\nApr-Jun\nJul-Sept\nOct-Dec\nJan-Mar',
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tds_category',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'TDS Category',
-		'oldfieldname': 'tds_category',
-		'oldfieldtype': 'Select',
-		'options': 'link:TDS Category'
+		'doctype': u'DocField',
+		'fieldname': u'tds_category',
+		'fieldtype': u'Select',
+		'label': u'TDS Category',
+		'oldfieldname': u'tds_category',
+		'oldfieldtype': u'Select',
+		'options': u'link:TDS Category'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'acknowledgement_no',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Acknowledgement No',
-		'oldfieldname': 'acknowledgement_no',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'acknowledgement_no',
+		'fieldtype': u'Data',
+		'label': u'Acknowledgement No',
+		'oldfieldname': u'acknowledgement_no',
+		'oldfieldtype': u'Data'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'date_of_receipt',
-		'fieldtype': 'Date',
-		'idx': 5,
-		'label': 'Date of Receipt',
-		'oldfieldname': 'date_of_receipt',
-		'oldfieldtype': 'Date'
+		'doctype': u'DocField',
+		'fieldname': u'date_of_receipt',
+		'fieldtype': u'Date',
+		'label': u'Date of Receipt',
+		'oldfieldname': u'date_of_receipt',
+		'oldfieldtype': u'Date'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/ir_payment_detail/__init__.py b/erpnext/accounts/doctype/trend_analyzer_control/__init__.py
old mode 100644
new mode 100755
similarity index 100%
copy from erpnext/accounts/doctype/ir_payment_detail/__init__.py
copy to erpnext/accounts/doctype/trend_analyzer_control/__init__.py
diff --git a/erpnext/accounts/doctype/trend_analyzer_control/trend_analyzer_control.py b/erpnext/accounts/doctype/trend_analyzer_control/trend_analyzer_control.py
new file mode 100755
index 0000000..25c4492
--- /dev/null
+++ b/erpnext/accounts/doctype/trend_analyzer_control/trend_analyzer_control.py
@@ -0,0 +1,123 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+class DocType:
+        def __init__(self, d, dl):
+                self.doc, self.doclist = d, dl
+
+
+        # Define Globals
+        # ---------------
+        def define_globals(self, trans, fiscal_year):
+                self.month_name = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
+
+                if trans == 'Purchase Receipt' or trans == 'Delivery Note' or trans == 'Purchase Invoice' or trans == 'Sales Invoice':
+                        self.trans_date = 'posting_date'
+                else:
+                        self.trans_date = 'transaction_date'
+                
+                ysd = sql("select year_start_date from `tabFiscal Year` where name = %s",fiscal_year)[0][0]
+                self.year_start_date = ysd.strftime('%Y-%m-%d')
+                self.start_month = cint(self.year_start_date.split('-')[1])
+
+
+        # Get Column Names and Query for Annual Trend
+        # ---------------------------------------------
+        def get_annual_trend_details(self, fiscal_year):
+                col_names = [fiscal_year+' (Qty)', fiscal_year+' (Amt)']
+                query_val = 'SUM(t2.qty) ,SUM(t2.amount),'
+                return col_names, query_val
+
+
+        # Get Column Names and Query for Half Yearly Trend
+        # --------------------------------------------------
+        def get_half_yearly_trend_details(self):
+                first_half_start = self.year_start_date
+                first_half_end = add_days(add_months(first_half_start,6),-1)
+                second_half_start = add_days(first_half_end,1)
+                second_half_end = add_days(add_months(second_half_start,6),-1)
+                
+                col_names = ['First Half (Qty)', 'First Half (Amt)', 'Second Half (Qty)', 'Second Half (Amt)']
+               
+                query_val = 'SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+first_half_start+'" AND "'+first_half_end+'" THEN t2.qty ELSE NULL END), SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+first_half_start+'" AND "'+first_half_end+'" THEN t2.amount ELSE NULL END), SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+second_half_start+'" AND "'+second_half_end+'" THEN t2.qty ELSE NULL END), SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+second_half_start+'" AND "'+second_half_end+'" THEN t2.amount ELSE NULL END),'
+
+                return col_names, query_val
+
+
+        # Get Column Names and Query for Quarterly Trend
+        # ------------------------------------------------
+        def get_quarterly_trend_details(self):
+                first_qsd, second_qsd, third_qsd, fourth_qsd = self.year_start_date, add_months(self.year_start_date,3), add_months(self.year_start_date,6), add_months(self.year_start_date,9)
+
+                first_qed, second_qed, third_qed, fourth_qed = add_days(add_months(first_qsd,3),-1), add_days(add_months(second_qsd,3),-1), add_days(add_months(third_qsd,3),-1), add_days(add_months(fourth_qsd,3),-1)
+
+                col_names = ['Q1 (Qty)','Q1 (Amt)','Q2 (Qty)','Q2 (Amt)','Q3 (Qty)','Q3 (Amt)','Q4 (Qty)','Q4 (Amt)']
+                query_val = ''
+                bet_dates = [[first_qsd,first_qed],[second_qsd,second_qed],[third_qsd,third_qed],[fourth_qsd,fourth_qed]]
+
+                for d in bet_dates:
+                        query_val += 'SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+d[0]+'" AND "'+d[1]+'" THEN t2.qty ELSE NULL END), SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+d[0]+'" AND "'+d[1]+'" THEN t2.amount ELSE NULL END),'
+                
+                return col_names, query_val
+
+
+        # Get Column Names and Query for Monthly Trend
+        # -----------------------------------------------
+        def get_monthly_trend_details(self):
+                col_names, query_val = [], ''
+                for i in range(self.start_month-1, len(self.month_name)):
+                        col_names.append(self.month_name[i]+' (Qty)')
+                        col_names.append(self.month_name[i]+' (Amt)')
+                        query_val += 'SUM(CASE WHEN MONTH(t1.'+self.trans_date+') = '+cstr(i+1)+' THEN t2.qty ELSE NULL END), SUM(CASE WHEN MONTH(t1.'+self.trans_date+') = '+cstr(i+1)+' THEN t2.amount ELSE NULL END),'
+
+                for i in range(0, self.start_month-1):
+                        col_names.append(self.month_name[i]+' (Qty)')
+                        col_names.append(self.month_name[i]+' (Amt)')
+                        query_val += 'SUM(CASE WHEN MONTH(t1.'+self.trans_date+') = '+cstr(i+1)+' THEN t2.qty ELSE NULL END), SUM(CASE WHEN MONTH(t1.'+self.trans_date+') = '+cstr(i+1)+' THEN t2.amount ELSE NULL END),'
+                
+                return col_names, query_val
+
+
+        # Get Single Year Trend's Query and Columns
+        # -------------------------------------------
+        def get_single_year_query_value(self, fiscal_year, period, trans, trans_det):
+                self.define_globals(trans, fiscal_year)
+                if period == 'Annual':
+                        return self.get_annual_trend_details(fiscal_year)
+                elif period == 'Half Yearly':
+                        return self.get_half_yearly_trend_details()
+                elif period == 'Quarterly':
+                        return self.get_quarterly_trend_details()
+                elif period == 'Monthly':
+                        return self.get_monthly_trend_details()
diff --git a/erpnext/accounts/doctype/trend_analyzer_control/trend_analyzer_control.txt b/erpnext/accounts/doctype/trend_analyzer_control/trend_analyzer_control.txt
new file mode 100755
index 0000000..e7dc9b4
--- /dev/null
+++ b/erpnext/accounts/doctype/trend_analyzer_control/trend_analyzer_control.txt
@@ -0,0 +1,32 @@
+# DocType, Trend Analyzer Control
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:49',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:49',
+		'modified_by': u'Administrator',
+		'owner': u'saumil@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'in_create': 1,
+		'issingle': 1,
+		'module': u'Accounts',
+		'name': '__common__',
+		'read_only': 1,
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'version': 11
+	},
+
+	# DocType, Trend Analyzer Control
+	{
+		'doctype': 'DocType',
+		'name': u'Trend Analyzer Control'
+	}
+]
diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.html b/erpnext/accounts/page/accounts_browser/accounts_browser.html
index 8614f2c..8cfde8a 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.html
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.html
@@ -1,4 +1,4 @@
 <div class="layout_wrapper">
 <div id="ab_header"></div>
-<div id="ab_body" style="margin: 16px"></div>
+<div id="ab_body" style="margin: 16px;"></div>
 </div>
\ No newline at end of file
diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js
index 60c168d..49cbcb3 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.js
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.js
@@ -46,7 +46,7 @@
   //================== table body======================================  
   var ac_main_grid = make_table($i('ab_body'),1,2,'100%',['60%','40%'],{border:"0px", padding:"4px",tableLayout: "fixed", borderCollapse: "collapse"});
   $y($td(ac_main_grid,0,0),{border: "1px solid #dddddd", padding: "8px"});
-  pscript.account_tree = $a($td(ac_main_grid,0,0),'div');
+  pscript.account_tree = $a($td(ac_main_grid,0,0),'div', '',{minHeight:'400px'});
   $y($td(ac_main_grid,0,1),{border: "1px solid #DDD"});
   pscript.la = $a($td(ac_main_grid,0,1),'div');
   pscript.acc_period_bal = $a($td(ac_main_grid,0,1),'div');
diff --git a/erpnext/accounts/page/accounts_home/accounts_home.html b/erpnext/accounts/page/accounts_home/accounts_home.html
index 8282ae8..fc08360 100644
--- a/erpnext/accounts/page/accounts_home/accounts_home.html
+++ b/erpnext/accounts/page/accounts_home/accounts_home.html
@@ -35,7 +35,7 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title="Cancel off untracked Payments (JV) against Invoices"
-							href="#!Form/Internal Reconciliation/Internal Reconciliation">Payment Reconciliation</a>
+							href="#!Form/Payment to Invoice Matching Tool/Payment to Invoice Matching Tool">Payment Reconciliation</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
@@ -45,7 +45,7 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title="Export multiple Account Ledgers (GL) to spreadsheet (csv)"
-							href="#!Form/Ledger Balance Export/Ledger Balance Export">Export Multiple Ledgers (GL)</a>
+							href="#!Form/Multi Ledger Report/Multi Ledger Report">Export Multiple Ledgers (GL)</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
@@ -55,7 +55,7 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title = "Helper for managing return of goods (sales or purchase)"
-							href="#!Form/Sales and Purchase Return Wizard/Sales and Purchase Return Wizard">Sales or Purchase Returns</a>
+							href="#!Form/Sales and Purchase Return Tool/Sales and Purchase Return Tool">Sales or Purchase Returns</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
@@ -78,12 +78,12 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title = "Tax and charges structure master on sales transactions"
-							href="#!List/Other Charges">Sales Other Charges</a>
+							href="#!List/Sales Taxes and Charges Master">Sales Taxes and Charges Master</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
 							title = "Tax and charges structure master on purchase transactions"
-							href="#!List/Purchase Other Charges">Purchase Other Charges</a>
+							href="#!List/Purchase Taxes and Charges Master">Purchase Taxes and Charges Master</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
diff --git a/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.js b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.js
index f4da7e8..1f19537 100644
--- a/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.js
+++ b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.js
@@ -22,7 +22,7 @@
   this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
   this.filter_fields_dict['GL Entry'+FILTER_SEP +'Account'].df.filter_hide = 0;
   
-  this.add_filter({fieldname:'aging_based_on', label:'Aging Based On', fieldtype:'Select', options:NEWLINE+'Transaction Date'+NEWLINE+'Aging Date'+NEWLINE+'Due Date',ignore : 1, parent:'Payable Voucher', report_default:'Aging Date'});  
+  this.add_filter({fieldname:'aging_based_on', label:'Aging Based On', fieldtype:'Select', options:NEWLINE+'Transaction Date'+NEWLINE+'Aging Date'+NEWLINE+'Due Date',ignore : 1, parent:'Purchase Invoice', report_default:'Aging Date'});  
   this.add_filter({fieldname:'range_1', label:'Range 1', fieldtype:'Data', ignore : 1, parent:'GL Entry', report_default:30});
   this.add_filter({fieldname:'range_2', label:'Range 2', fieldtype:'Data', ignore : 1, parent:'GL Entry', report_default:45});
   this.add_filter({fieldname:'range_3', label:'Range 3', fieldtype:'Data', ignore : 1, parent:'GL Entry', report_default:60});
diff --git a/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py
index cbb622f..2ace21c 100644
--- a/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py
+++ b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py
@@ -89,11 +89,11 @@
 
 # get due_date, bill_no, bill_date from PV
 pv_dict = {}
-for t in sql("select name, due_date, bill_no, bill_date from `tabPayable Voucher` group by name"):
+for t in sql("select name, due_date, bill_no, bill_date from `tabPurchase Invoice` group by name"):
 	pv_dict[t[0]] = [cstr(t[1]), t[2], cstr(t[3])]
 
 # pv outside this period
-pv_outside_period = [d[0] for d in sql("select distinct name from `tabPayable Voucher` where (posting_date < '%s' or posting_date > '%s') and docstatus = 1" % (from_date, to_date))]
+pv_outside_period = [d[0] for d in sql("select distinct name from `tabPurchase Invoice` where (posting_date < '%s' or posting_date > '%s') and docstatus = 1" % (from_date, to_date))]
 
 
 out = []
@@ -106,17 +106,17 @@
 	# supplier type
 	r.append(supp_type_dict.get(r[col_idx['Account']], ''))	
 	
-	if r[col_idx['Voucher Type']] == 'Payable Voucher':
+	if r[col_idx['Voucher Type']] == 'Purchase Invoice':
 		r += pv_dict.get(r[col_idx['Voucher No']], ['', '', ''])
 	else:
 		r += ['', '', '']
 	
-	# if entry against Payable Voucher
-	if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Payable Voucher':
+	# if entry against Purchase Invoice
+	if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Purchase Invoice':
 		cond = " and ifnull(against_voucher, '') = '%s'" % r[col_idx['Against Voucher']]
 
 	# if entry against JV & and not adjusted within period
-	elif r[col_idx['Against Voucher Type']] == 'Payable Voucher' and r[col_idx['Against Voucher']] in pv_outside_period:
+	elif r[col_idx['Against Voucher Type']] == 'Purchase Invoice' and r[col_idx['Against Voucher']] in pv_outside_period:
 		booking_amt = 0
 		cond = " and voucher_no = '%s' and ifnull(against_voucher, '') = '%s'" % (r[col_idx['Voucher No']], r[col_idx['Against Voucher']])
 	
@@ -132,7 +132,7 @@
 		total_outstanding_amt += flt(outstanding_amt)
 
 		# add to total booking amount
-		if outstanding_amt and r[col_idx['Voucher Type']] == 'Payable Voucher' and r[col_idx['Against Voucher']]:
+		if outstanding_amt and r[col_idx['Voucher Type']] == 'Purchase Invoice' and r[col_idx['Against Voucher']]:
 			total_booking_amt += flt(booking_amt)
 
 	r += [booking_amt, outstanding_amt]
diff --git a/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt
index 08c8bc3..8cc99b3 100644
--- a/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt
+++ b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt
@@ -3,30 +3,30 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-10-22 16:28:49',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2010-10-22 15:16:03',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'GL Entry\x01Posting Date,GL Entry\x01Account,GL Entry\x01Against Voucher,GL Entry\x01Voucher No',
-		'criteria_name': 'Accounts Payable',
-		'doc_type': 'GL Entry',
+		'columns': u'GL Entry\x01Posting Date,GL Entry\x01Account,GL Entry\x01Against Voucher,GL Entry\x01Voucher No',
+		'criteria_name': u'Accounts Payable',
+		'doc_type': u'GL Entry',
 		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Is Cancelled':'','GL Entry\x01Fiscal Year':'','GL Entry\x01Company':'','Payable Voucher\x01Aging Based On':'Posting Date','GL Entry\x01Range 1':'30','GL Entry\x01Range 2':'45','GL Entry\x01Range 3':'60','GL Entry\x01Range 4':'90'}",
-		'module': 'Accounts',
+		'filters': u"{'GL Entry\x01Is Cancelled':'','GL Entry\x01Fiscal Year':'','GL Entry\x01Company':'','Purchase Invoice\x01Aging Based On':'Posting Date','GL Entry\x01Range 1':'30','GL Entry\x01Range 2':'45','GL Entry\x01Range 3':'60','GL Entry\x01Range 4':'90'}",
+		'module': u'Accounts',
 		'name': '__common__',
-		'sort_by': '`tabGL Entry`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabGL Entry`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, accounts_payable
 	{
 		'doctype': 'Search Criteria',
-		'name': 'accounts_payable'
+		'name': u'accounts_payable'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.js b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.js
index efc2ec3..60df6c8 100644
--- a/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.js
+++ b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.js
@@ -22,7 +22,7 @@
   this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
   this.filter_fields_dict['GL Entry'+FILTER_SEP +'Account'].df.filter_hide = 0;
 
-  this.add_filter({fieldname:'aging_based_on', label:'Aging Based On', fieldtype:'Select', options:NEWLINE+'Transaction Date'+NEWLINE+'Aging Date'+NEWLINE+'Due Date',ignore : 1, parent:'Receivable Voucher', report_default:'Aging Date'});
+  this.add_filter({fieldname:'aging_based_on', label:'Aging Based On', fieldtype:'Select', options:NEWLINE+'Transaction Date'+NEWLINE+'Aging Date'+NEWLINE+'Due Date',ignore : 1, parent:'Sales Invoice', report_default:'Aging Date'});
   this.add_filter({fieldname:'range_1', label:'Range 1', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
   this.add_filter({fieldname:'range_2', label:'Range 2', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
   this.add_filter({fieldname:'range_3', label:'Range 3', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
diff --git a/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.py b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.py
index 5a5f4b4..6cd71fe 100644
--- a/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.py
@@ -84,10 +84,10 @@
   r.append(terr and terr[0][0] or '')
   
   outstanding_amt, opening_amt, cond, due_date = 0,0, '', ''
-  # if entry against Receivable Voucher
-  if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Receivable Voucher':
+  # if entry against Sales Invoice
+  if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Sales Invoice':
     # get due date
-    due_date = sql("select due_date from `tabReceivable Voucher` where name = '%s'" % r[col_idx['Against Voucher']])
+    due_date = sql("select due_date from `tabSales Invoice` where name = '%s'" % r[col_idx['Against Voucher']])
     due_date = due_date and cstr(due_date[0][0]) or ''
 
     # get booking amt
@@ -97,7 +97,7 @@
     cond =  "and against_voucher = '%s' and against_voucher is not null" % r[col_idx['Against Voucher']]
 
   # if entry against JV & and not adjusted within period
-  elif r[col_idx['Against Voucher Type']] == 'Receivable Voucher' and sql("select name from `tabReceivable Voucher` where name = '%s' and (posting_date < '%s' or posting_date > '%s') and docstatus = 1" % (r[col_idx['Against Voucher']], from_date, to_date)):
+  elif r[col_idx['Against Voucher Type']] == 'Sales Invoice' and sql("select name from `tabSales Invoice` where name = '%s' and (posting_date < '%s' or posting_date > '%s') and docstatus = 1" % (r[col_idx['Against Voucher']], from_date, to_date)):
     cond = " and voucher_no = '%s' and ifnull(against_voucher, '') = '%s'" % (r[col_idx['Voucher No']], r[col_idx['Against Voucher']])
   # if entry against JV and unadjusted
   elif not r[col_idx['Against Voucher']]:
@@ -108,7 +108,7 @@
     # add to total outstanding
     total_outstanding_amt += flt(outstanding_amt)
     # add to total booking amount
-    if outstanding_amt and r[col_idx['Voucher Type']] == 'Receivable Voucher' and r[col_idx['Against Voucher']]:
+    if outstanding_amt and r[col_idx['Voucher Type']] == 'Sales Invoice' and r[col_idx['Against Voucher']]:
       total_opening_amt += flt(opening_amt)
 
   r += [due_date, opening_amt, outstanding_amt]
diff --git a/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt
index 2474eb7..33a5318 100644
--- a/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt
+++ b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt
@@ -3,30 +3,30 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-10-19 10:32:39',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2010-10-19 10:29:38',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'GL Entry\x01Posting Date,GL Entry\x01Transaction Date,GL Entry\x01Account,GL Entry\x01Against Voucher,GL Entry\x01Voucher No',
-		'criteria_name': 'Accounts Receivable',
-		'doc_type': 'GL Entry',
+		'columns': u'GL Entry\x01Posting Date,GL Entry\x01Transaction Date,GL Entry\x01Account,GL Entry\x01Against Voucher,GL Entry\x01Voucher No',
+		'criteria_name': u'Accounts Receivable',
+		'doc_type': u'GL Entry',
 		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Is Cancelled':'No','GL Entry\x01Fiscal Year':'','GL Entry\x01Company':'','GL Entry\x01Range 1':'30','GL Entry\x01Range 2':'45','GL Entry\x01Range 3':'60','GL Entry\x01Range 4':'90'}",
-		'module': 'Accounts',
+		'filters': u"{'GL Entry\x01Is Cancelled':'No','GL Entry\x01Fiscal Year':'','GL Entry\x01Company':'','GL Entry\x01Range 1':'30','GL Entry\x01Range 2':'45','GL Entry\x01Range 3':'60','GL Entry\x01Range 4':'90'}",
+		'module': u'Accounts',
 		'name': '__common__',
-		'sort_by': '`tabGL Entry`.`name`',
-		'sort_order': 'ASC',
-		'standard': 'Yes'
+		'sort_by': u'`tabGL Entry`.`name`',
+		'sort_order': u'ASC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, accounts_receivable
 	{
 		'doctype': 'Search Criteria',
-		'name': 'accounts_receivable'
+		'name': u'accounts_receivable'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt b/erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt
index 5103fd7..c329d7e 100644
--- a/erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt
+++ b/erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt
@@ -3,34 +3,34 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2010-06-09 16:14:13',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Journal Voucher\x01ID,Journal Voucher Detail\x01Account,Journal Voucher Detail\x01Debit,Journal Voucher Detail\x01Credit,Journal Voucher\x01Clearance Date,Journal Voucher\x01Cheque No,Journal Voucher\x01Cheque Date,Journal Voucher\x01Voucher Date,Journal Voucher\x01Posting Date,Journal Voucher Detail\x01Against Payable,Journal Voucher Detail\x01Against Receivable',
-		'criteria_name': 'Bank Clearance report',
-		'description': 'Bank Clearance report',
-		'dis_filters': 'fiscal_year',
-		'doc_type': 'Journal Voucher Detail',
+		'columns': u'Journal Voucher\x01ID,Journal Voucher Detail\x01Account,Journal Voucher Detail\x01Debit,Journal Voucher Detail\x01Credit,Journal Voucher\x01Clearance Date,Journal Voucher\x01Cheque No,Journal Voucher\x01Cheque Date,Journal Voucher\x01Voucher Date,Journal Voucher\x01Posting Date,Journal Voucher Detail\x01Against Payable,Journal Voucher Detail\x01Against Receivable',
+		'criteria_name': u'Bank Clearance report',
+		'description': u'Bank Clearance report',
+		'dis_filters': u'fiscal_year',
+		'doc_type': u'Journal Voucher Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Fiscal Year':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':''}",
-		'module': 'Accounts',
+		'filters': u"{'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Fiscal Year':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Journal Voucher',
-		'sort_by': 'ID',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Journal Voucher',
+		'sort_by': u'ID',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, bank_clearance_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'bank_clearance_report'
+		'name': u'bank_clearance_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt b/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt
index 26566cc..1518e85 100644
--- a/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt
+++ b/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt
@@ -3,34 +3,34 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-11-01 10:56:14',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2010-10-29 16:36:00',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_cond': "(`tabJournal Voucher Detail`.credit >= 0 or `tabJournal Voucher Detail`.credit is null)\n(`tabJournal Voucher`.cheque_no is not null or `tabJournal Voucher`.cheque_no != '')\n(ifnull(`tabJournal Voucher`.clearance_date, '0000-00-00') >'%(clearance_date1)s' or `tabJournal Voucher`.clearance_date is null or `tabJournal Voucher`.clearance_date = '0000-00-00')\n(`tabJournal Voucher`.posting_date <= '%(clearance_date1)s')",
-		'columns': 'Journal Voucher\x01ID,Journal Voucher\x01Posting Date,Journal Voucher\x01Cheque No,Journal Voucher\x01Cheque Date,Journal Voucher\x01Clearance Date,Journal Voucher Detail\x01Account,Journal Voucher Detail\x01Debit,Journal Voucher Detail\x01Credit,Journal Voucher Detail\x01Against Account',
-		'criteria_name': 'Bank Reconciliation Statement',
-		'dis_filters': 'clearance_date\nfiscal_year',
-		'doc_type': 'Journal Voucher Detail',
+		'add_cond': u"(`tabJournal Voucher Detail`.credit >= 0 or `tabJournal Voucher Detail`.credit is null)\n(`tabJournal Voucher`.cheque_no is not null or `tabJournal Voucher`.cheque_no != '')\n(ifnull(`tabJournal Voucher`.clearance_date, '0000-00-00') >'%(clearance_date1)s' or `tabJournal Voucher`.clearance_date is null or `tabJournal Voucher`.clearance_date = '0000-00-00')\n(`tabJournal Voucher`.posting_date <= '%(clearance_date1)s')",
+		'columns': u'Journal Voucher\x01ID,Journal Voucher\x01Posting Date,Journal Voucher\x01Cheque No,Journal Voucher\x01Cheque Date,Journal Voucher\x01Clearance Date,Journal Voucher Detail\x01Account,Journal Voucher Detail\x01Debit,Journal Voucher Detail\x01Credit,Journal Voucher Detail\x01Against Account',
+		'criteria_name': u'Bank Reconciliation Statement',
+		'dis_filters': u'clearance_date\nfiscal_year',
+		'doc_type': u'Journal Voucher Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':''}",
-		'module': 'Accounts',
+		'filters': u"{'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Journal Voucher',
-		'sort_by': '`tabJournal Voucher`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Journal Voucher',
+		'sort_by': u'`tabJournal Voucher`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, bank_reconciliation_statement
 	{
 		'doctype': 'Search Criteria',
-		'name': 'bank_reconciliation_statement'
+		'name': u'bank_reconciliation_statement'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.txt b/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.txt
index 00467ea..f8df9db 100644
--- a/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.txt
+++ b/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2011-05-23 16:07:41',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': 'Budget Variance Report',
-		'doc_type': 'Budget Detail',
+		'criteria_name': u'Budget Variance Report',
+		'doc_type': u'Budget Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Budget Detail\x01Fiscal Year':''}",
-		'module': 'Accounts',
+		'filters': u"{'Budget Detail\x01Fiscal Year':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Cost Center',
-		'sort_by': '`tabCost Center`.`lft`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Cost Center',
+		'sort_by': u'`tabCost Center`.`lft`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, budget_variance_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'budget_variance_report'
+		'name': u'budget_variance_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.js b/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.js
index eb24630..272327b 100644
--- a/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.js
+++ b/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.js
@@ -16,8 +16,8 @@
 
 report.customize_filters = function() {
   this.hide_all_filters();
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Sales Partner'].df.filter_hide = 0;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Sales Partner'].df.in_first_page = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Sales Partner'].df.filter_hide = 0;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Sales Partner'].df.in_first_page = 1;
 
 }
 
diff --git a/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt b/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt
index 34f1f97..aba68a8 100644
--- a/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt
+++ b/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt
@@ -3,34 +3,34 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-26 11:52:28',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2010-08-26 11:49:50',
-		'modified_by': 'Administrator',
-		'owner': 'saumil@webnotestech.com'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'saumil@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': "SUM(`tabReceivable Voucher`.`total_commission`) AS 'Total Commission'\nSUM(`tabReceivable Voucher`.`net_total`) AS 'Net Total'\n((SUM(`tabReceivable Voucher`.`total_commission`) / SUM(`tabReceivable Voucher`.`net_total`)) * 100) AS 'Average Commission Rate'",
-		'add_cond': '`tabReceivable Voucher`.`net_total` > 0\n`tabReceivable Voucher`.`total_commission` > 0',
-		'columns': 'Receivable Voucher\x01Business Associate',
-		'criteria_name': 'Business Associate Commission Report',
-		'description': 'Track total commission given to your Business Associate',
-		'doc_type': 'Receivable Voucher',
+		'add_col': u"SUM(`tabSales Invoice`.`total_commission`) AS 'Total Commission'\nSUM(`tabSales Invoice`.`net_total`) AS 'Net Total'\n((SUM(`tabSales Invoice`.`total_commission`) / SUM(`tabSales Invoice`.`net_total`)) * 100) AS 'Average Commission Rate'",
+		'add_cond': u'`tabSales Invoice`.`net_total` > 0\n`tabSales Invoice`.`total_commission` > 0',
+		'columns': u'Sales Invoice\x01Business Associate',
+		'criteria_name': u'Business Associate Commission Report',
+		'description': u'Track total commission given to your Business Associate',
+		'doc_type': u'Sales Invoice',
 		'doctype': 'Search Criteria',
-		'filters': "{'Receivable Voucher\x01Submitted':1}",
-		'group_by': '`tabReceivable Voucher`.sales_partner',
-		'module': 'Accounts',
+		'filters': u"{'Sales Invoice\x01Submitted':1}",
+		'group_by': u'`tabSales Invoice`.sales_partner',
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, business_associate_commission_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'business_associate_commission_report'
+		'name': u'business_associate_commission_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt b/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt
index dc3d985..1d33298 100644
--- a/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt
+++ b/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-11-01 10:56:14',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2010-10-29 16:39:19',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Account\x01ID',
-		'criteria_name': 'Cash Flow Statement',
-		'dis_filters': 'fiscal_year\ntransaction_date',
-		'doc_type': 'Account',
+		'columns': u'Account\x01ID',
+		'criteria_name': u'Cash Flow Statement',
+		'dis_filters': u'fiscal_year\ntransaction_date',
+		'doc_type': u'Account',
 		'doctype': 'Search Criteria',
-		'filters': "{'Account\x01Group or Ledger':'Ledger','Account\x01Is PL Account':'','Account\x01Is Active':'','Account\x01Account Type':'','Account\x01Company':'','Account\x01Fiscal Year':'','Account\x01Show Group Balance':'','Account\x01Level':'2'}",
-		'module': 'Accounts',
+		'filters': u"{'Account\x01Group or Ledger':'Ledger','Account\x01Is PL Account':'','Account\x01Is Active':'','Account\x01Account Type':'','Account\x01Company':'','Account\x01Fiscal Year':'','Account\x01Show Group Balance':'','Account\x01Level':'2'}",
+		'module': u'Accounts',
 		'name': '__common__',
-		'sort_by': '`tabAccount`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabAccount`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, cash_flow_statement
 	{
 		'doctype': 'Search Criteria',
-		'name': 'cash_flow_statement'
+		'name': u'cash_flow_statement'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js
deleted file mode 100644
index e098cc3..0000000
--- a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();
-  this.add_filter({fieldname:'report', label:'Report Type', fieldtype:'Select', options:NEWLINE + 'CENVAT CREDIT ACCOUNT - INPUTS (R.G.23 A - PART II)' + NEWLINE + 'CAPITAL GOODS - INPUTS (R.G. 23 C - PART II)', ignore : 1, parent:'Journal Voucher Detail'})
-  this.add_filter({fieldname:'main_acc_head', label:'Main Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'add_acc_head', label:'Additional Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'cvd_acc_head', label:'CVD Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'edu_cess_acc_head', label:'Edu Cess Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'sh_edu_cess_acc_head', label:'S.H.Edu Cess Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-    
-
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Company'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
-  
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Company'].df['report_default']=sys_defaults.company;
-
-  //this.large_report = 1;
-}
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py
deleted file mode 100644
index cfdd45f..0000000
--- a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py
+++ /dev/null
@@ -1,154 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Add columns
-# -----------
-row_list = [['Date', 'Date', '150px', '']
-           ,['ARI/INVOICE/Other Approved document/Bill of entry No.', 'Date', '150px', '']
-           ,['Date', 'Date', '150px', '']
-           ,['Baisc Excise Duty', 'Currency', '150px', '']
-           ,['Additional Duty', 'Currency', '150px', '']
-           ,['Education Cess', 'Currency', '150px', '']
-           ,['S.H.Education Cess', 'Currency', '150px', '']
-           ,[' Basic Excise Duty', 'Currency', '150px', '']
-           ,[' Education Cess', 'Currency', '150px', '']
-           ,[' S.H.Education Cess', 'Currency', '150px', '']
-           ,['Basic Excise Duty ', 'Currency', '150px', '']
-           ,['Education Cess ', 'Currency', '150px', '']
-           ,['S.H.Education Cess ', 'Currency', '150px', '']
-           ,['Remarks', 'Data', '150px', '']
-]
-
-if not filter_values['report']:
-  msgprint("Please Select Report Type. ")
-  raise Exception
-
-if 'CAPITAL' not in filter_values['report']:
-  row_list.insert(3,['Range/ Divsion/ Custom House from where received', 'Data', '150px', ''])
-  row_list.insert(4,['Folio No. & Entry No. in Part I', 'Data', '150px', ''])
-  row_list.insert(7,['CVD', 'Currency', '150px', ''])
-  row_list.insert(10,['ARI/INVOICE/ Other Approved document/Bill of entry No.', 'Data', '100px', ''])
-  row_list.insert(11,['Date', 'Date', '150px', ''])
-elif 'CAPITAL' in filter_values['report']:
-  row_list.insert(7,[' Basic Excise Duty ', 'Currency', '150px', ''])
-  row_list.insert(8,[' Education Cess ', 'Currency', '150px', ''])
-  row_list.insert(9,[' S.H.Education Cess ', 'Currency', '150px', ''])
-  row_list.insert(10,['ARI/INVOICE/ Other Approved document/Bill of entry No.', 'Data', '100px', ''])
-  row_list.insert(11,['Date', 'Date', '150px', ''])
-
-for r in row_list:
-  colnames.append(r[0])
-  coltypes.append(r[1])
-  colwidths.append(r[2])
-  coloptions.append(r[3])
-  col_idx[r[0]] = len(colnames)-1
-
-
-# get as_on_date for opening
-as_on_date = ''
-if filter_values.get('posting_date'):
-  as_on_date = add_days(filter_values['posting_date'], -1)
-
-ysd, from_date_year = sql("select year_start_date, name from `tabFiscal Year` where %s between year_start_date and date_add(year_start_date,interval 1 year)",as_on_date)[0]
-
-
-# Get Opening Balance
-def get_opening_balance(acc, fy, as_on_date, ysd, get_opening_balance, get_obj):
-  glc = get_obj('GL Control')
-  acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % acc)
-  return glc.get_as_on_balance(acc, fy, as_on_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
-
-cum_sum_main_acc_head = cum_sum_add_acc_head = cum_sum_cvd_acc_head = cum_sum_edu_cess_acc_head = cum_sum_sh_edu_cess_acc_head = 0
-openg_main_acc_head = openg_add_acc_head = openg_cvd_acc_head = openg_edu_cess_acc_head = openg_sh_edu_cess_acc_head = 0
-
-# Get Opening of Basic Excise Duty
-if not filter_values['main_acc_head']: 
-  msgprint("Please Enter Main Account Head")
-  raise Exception
-cum_sum_main_acc_head = openg_main_acc_head = get_opening_balance(filter_values['main_acc_head'], from_date_year, as_on_date, ysd, get_opening_balance, get_obj)
-
-# Get Opening of add_acc_head
-if filter_values['add_acc_head'] : cum_sum_add_acc_head = openg_add_acc_head = get_opening_balance(filter_values['add_acc_head'], from_date_year, as_on_date, ysd, get_opening_balance, get_obj)
-
-# Get Opening of cvd_acc_head
-if filter_values['cvd_acc_head'] : cum_sum_cvd_acc_head = openg_cvd_acc_head = get_opening_balance(get_opening_balance, filter_values['cvd_acc_head'], from_date_year, as_on_date, ysd, get_opening_balance, get_obj)
-
-# Get Opening of edu_cess_acc_head
-if not filter_values['edu_cess_acc_head'] :
-  msgprint("Please Enter Edu Cess Account Head")
-  raise Exception
-cum_sum_edu_cess_acc_head = openg_edu_cess_acc_head = get_opening_balance(filter_values['edu_cess_acc_head'], from_date_year, as_on_date, ysd, get_opening_balance, get_obj)
-
-# Get Opening of sh_edu_cess_acc_head
-if not filter_values['sh_edu_cess_acc_head'] :
-  msgprint("Please Enter S.H.Edu Cess Account Head")
-  raise Exception
-cum_sum_sh_edu_cess_acc_head = openg_sh_edu_cess_acc_head = get_opening_balance(filter_values['sh_edu_cess_acc_head'], from_date_year, as_on_date, ysd, get_opening_balance, get_obj)
-
-
-for r in res:
-  remarks = r[col_idx['ARI/INVOICE/ Other Approved document/Bill of entry No.']]
-  r[col_idx['ARI/INVOICE/ Other Approved document/Bill of entry No.']] = ''
-  r.append('')
-  if 'CAPITAL' not in filter_values['report']:
-    r.append(0.00)
-    r.append(0.00)
-    r.append(0.00)
-    cum_sum_main_acc_head = flt(cum_sum_main_acc_head) + flt(r[col_idx['Baisc Excise Duty']])
-    cum_sum_add_acc_head = flt(cum_sum_add_acc_head) + flt(r[col_idx['Additional Duty']])
-    cum_sum_cvd_acc_head = flt(cum_sum_cvd_acc_head) + flt(r[col_idx['CVD']])
-    
-    r.append( cum_sum_main_acc_head + cum_sum_add_acc_head + cum_sum_cvd_acc_head)
-    cum_sum_edu_cess_acc_head = flt(cum_sum_edu_cess_acc_head) + flt(r[col_idx['Education Cess']])
-    r.append(cum_sum_edu_cess_acc_head)
-    cum_sum_sh_edu_cess_acc_head = flt(cum_sum_sh_edu_cess_acc_head) + flt(r[col_idx['S.H.Education Cess']])
-    r.append(cum_sum_sh_edu_cess_acc_head)
-  elif 'CAPITAL' in filter_values['report']:
-    # As there is no range and Folio No
-    r[col_idx['Baisc Excise Duty']] = r[col_idx['Education Cess']]
-    r[col_idx['Additional Duty']] = r[col_idx['S.H.Education Cess']]
-    r[col_idx['Education Cess']] = r[col_idx[' Education Cess ']]
-    r[col_idx['S.H.Education Cess']] = r[col_idx[' S.H.Education Cess ']]
-
-    cum_sum_main_acc_head = flt(cum_sum_main_acc_head) + flt(r[col_idx['Baisc Excise Duty']]) 
-    cum_sum_add_acc_head = flt(cum_sum_add_acc_head) + flt(r[col_idx['Additional Duty']]) 
-        
-    r[col_idx[' Basic Excise Duty ']]= flt(cum_sum_main_acc_head) + flt(cum_sum_add_acc_head)
-    cum_sum_edu_cess_acc_head = flt(cum_sum_edu_cess_acc_head) + flt(r[col_idx['Education Cess']])
-    r[col_idx[' Education Cess ']]= flt(cum_sum_edu_cess_acc_head)
-    cum_sum_sh_edu_cess_acc_head = flt(cum_sum_sh_edu_cess_acc_head) + flt(r[col_idx['S.H.Education Cess']])
-    r[col_idx[' S.H.Education Cess ']]= flt(cum_sum_sh_edu_cess_acc_head)
-    
-    r.append(0.00)
-    r.append(0.00)
-    r.append(0.00)
-    
-    r.append( cum_sum_main_acc_head + cum_sum_add_acc_head)
-    r.append(cum_sum_edu_cess_acc_head)
-    r.append(cum_sum_sh_edu_cess_acc_head)
-  r.append(remarks)
-
-
-out = []
-
-if 'CAPITAL' not in cstr(filter_values['report']):
-  out.append(['Opening Balance of Duty in Credit', '', '', '', '', '', '', '', '', '', '', '','','','', flt(openg_main_acc_head) + flt(openg_add_acc_head) + flt(openg_cvd_acc_head), flt(openg_edu_cess_acc_head), flt(openg_sh_edu_cess_acc_head),''])
-elif 'CAPITAL' in filter_values['report']:
-  out.append(['Opening Balance of Duty in Credit', '', '', '', '', '', '', '', '', '', '', '', '', '', '', flt(openg_main_acc_head) + flt(openg_add_acc_head) , flt(openg_edu_cess_acc_head), flt(openg_sh_edu_cess_acc_head)])
-out += res
-#if from_export == 0:
-#  msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please click on 'Export' to open in a spreadsheet")
-#  raise Exception
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql
deleted file mode 100644
index 6064fe4..0000000
--- a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql
+++ /dev/null
@@ -1,31 +0,0 @@
-SELECT t1.posting_date, t1.bill_no, t1.bill_date, t1.range, t1.name, SUM(CASE WHEN t2.account_head like '%(main_acc_head)s%' THEN t2.tax_amount ELSE 0.00 END),  SUM(CASE WHEN t2.account_head like '%(add_acc_head)s%' THEN t2.tax_amount ELSE 0.00 END),  SUM(CASE WHEN t2.account_head like '%(cvd_acc_head)s%' THEN t2.tax_amount ELSE 0.00 END),  SUM(CASE WHEN t2.account_head like '%(edu_cess_acc_head)s' THEN t2.tax_amount ELSE 0.00 END),  SUM(CASE WHEN t2.account_head like '%(sh_edu_cess_acc_head)s' THEN t2.tax_amount ELSE 0.00 END), t1.`remarks`
- FROM `tabPurchase Receipt` t1, `tabPurchase Tax Detail` t2
- WHERE t2.parent = t1.name
- AND t2.parent = 'Purchase Reciept'
- AND (t2.account_head LIKE '%(main_acc_head)s' and '%(main_acc_head)s%%' or '~~~~'
- OR t2.account_head LIKE '%(add_acc_head)s' and '%(add_acc_head)s%%' or '~~~~'
- OR t2.account_head LIKE '%(cvd_acc_head)s' and '%(cvd_acc_head)s%%' or '~~~~'
- OR t2.account_head LIKE '%(edu_cess_acc_head)s' and '%(edu_cess_acc_head)s%%' or '~~~~'
- OR t2.account_head LIKE '%(sh_edu_cess_acc_head)s%' and '%(sh_edu_cess_acc_head)s%%' or '~~~~')
- AND t1.`posting_date` >= '%(posting_date)s'
- AND t1.`posting_date` <= '%(posting_date1)s'
- AND t1.docstatus =1
- GROUP BY t1.`name`
-
-UNION
-
-SELECT t1.posting_date, t1.bill_no, t1.bill_date, '' AS 'Range', t1.name, SUM(CASE WHEN t2.account like '%(main_acc_head)s%' THEN t2.debit ELSE 0.00 END),  SUM(CASE WHEN t2.account like '%(add_acc_head)s%' THEN t2.debit ELSE 0.00 END),  SUM(CASE WHEN t2.account like '%(cvd_acc_head)s%' THEN t2.debit ELSE 0.00 END),  SUM(CASE WHEN t2.account like '%(edu_cess_acc_head)s' THEN t2.debit ELSE 0.00 END),  SUM(CASE WHEN t2.account like '%(sh_edu_cess_acc_head)s' THEN t2.debit ELSE 0.00 END), t1.`remark`
- FROM `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
- WHERE (t2.debit is not NULL OR t2.debit != '')
- AND t2.debit > 0
- AND t2.parent = t1.name
- AND (t2.account LIKE '%(main_acc_head)s' and '%(main_acc_head)s%%' or '~~~~'
- OR t2.account LIKE '%(add_acc_head)s' and '%(add_acc_head)s%%' or '~~~~'
- OR t2.account LIKE '%(cvd_acc_head)s' and '%(cvd_acc_head)s%%' or '~~~~'
- OR t2.account LIKE '%(edu_cess_acc_head)s' and '%(edu_cess_acc_head)s%%' or '~~~~'
- OR t2.account LIKE '%(sh_edu_cess_acc_head)s%' and '%(sh_edu_cess_acc_head)s%%' or '~~~~') AND t1.`posting_date` >= '%(posting_date)s'
- AND t1.`posting_date` <= '%(posting_date1)s'
- AND t1.docstatus =1
- GROUP BY t1.`name`
-
-ORDER BY `posting_date`,`name`
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt
deleted file mode 100644
index b80e239..0000000
--- a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, cenvat_credit_-_input_or_capital_goods
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-11-01 10:56:14',
-		'docstatus': 0,
-		'modified': '2010-10-29 16:42:14',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'criteria_name': 'Cenvat Credit - Input or Capital Goods',
-		'dis_filters': 'fiscal_year',
-		'doc_type': 'Journal Voucher Detail',
-		'doctype': 'Search Criteria',
-		'filters': "{'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Fiscal Year':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':'','Receivable Voucher\x01Aging Based On':'','Payable Voucher\x01Aging Based On':'Transaction Date','Journal Voucher Detail\x01Report Type':'CENVAT CREDIT ACCOUNT - INPUTS (R.G.23 A - PART II)'}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'page_len': 50,
-		'parent_doc_type': 'Journal Voucher',
-		'sort_by': 'ID',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, cenvat_credit_-_input_or_capital_goods
-	{
-		'doctype': 'Search Criteria',
-		'name': 'cenvat_credit_-_input_or_capital_goods'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/collection_report/collection_report.js b/erpnext/accounts/search_criteria/collection_report/collection_report.js
index 411c4aa..dfa58a6 100644
--- a/erpnext/accounts/search_criteria/collection_report/collection_report.js
+++ b/erpnext/accounts/search_criteria/collection_report/collection_report.js
@@ -28,7 +28,7 @@
   this.add_filter({fieldname:'range_3', label:'Range 3', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
   this.add_filter({fieldname:'range_4', label:'Range 4', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
 
-  this.add_filter({fieldname:'aging_based_on', label:'Aging Based On', fieldtype:'Select', options:NEWLINE+'Transaction Date'+NEWLINE+'Aging Date',ignore : 1, parent:'Receivable Voucher', 'report_default': 'Aging Date'});  
+  this.add_filter({fieldname:'aging_based_on', label:'Aging Based On', fieldtype:'Select', options:NEWLINE+'Transaction Date'+NEWLINE+'Aging Date',ignore : 1, parent:'Sales Invoice', 'report_default': 'Aging Date'});  
   this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
   this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
   this.filter_fields_dict['Journal Voucher Detail'+FILTER_SEP +'Account'].df.in_first_page = 1;
diff --git a/erpnext/accounts/search_criteria/collection_report/collection_report.py b/erpnext/accounts/search_criteria/collection_report/collection_report.py
index c0f6e61..f08fe5c 100644
--- a/erpnext/accounts/search_criteria/collection_report/collection_report.py
+++ b/erpnext/accounts/search_criteria/collection_report/collection_report.py
@@ -66,7 +66,7 @@
 
 for r in res:
   if r[col_idx['Against Receivable']]:
-    dt=sql("select date(modified), Aging_date from `tabReceivable Voucher` where name='%s'"%r[col_idx['Against Receivable']])
+    dt=sql("select date(modified), Aging_date from `tabSales Invoice` where name='%s'"%r[col_idx['Against Receivable']])
     r.append('')
     r.append(dt and cstr(dt[0][0]) or '')
     r.append(dt and cstr(dt[0][1]) or '')
diff --git a/erpnext/accounts/search_criteria/collection_report/collection_report.txt b/erpnext/accounts/search_criteria/collection_report/collection_report.txt
index 21c143f..dd78dfc 100644
--- a/erpnext/accounts/search_criteria/collection_report/collection_report.txt
+++ b/erpnext/accounts/search_criteria/collection_report/collection_report.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-10-05 12:51:20',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2010-10-01 11:29:51',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Journal Voucher\x01ID,Journal Voucher\x01Posting Date,Journal Voucher\x01Company,Journal Voucher\x01Cheque No,Journal Voucher\x01Cheque Date,Journal Voucher Detail\x01Account,Journal Voucher Detail\x01Credit,Journal Voucher Detail\x01Against Receivable,Journal Voucher Detail\x01Is Advance',
-		'criteria_name': 'Collection Report',
-		'doc_type': 'Journal Voucher Detail',
+		'columns': u'Journal Voucher\x01ID,Journal Voucher\x01Posting Date,Journal Voucher\x01Company,Journal Voucher\x01Cheque No,Journal Voucher\x01Cheque Date,Journal Voucher Detail\x01Account,Journal Voucher Detail\x01Credit,Journal Voucher Detail\x01Against Receivable,Journal Voucher Detail\x01Is Advance',
+		'criteria_name': u'Collection Report',
+		'doc_type': u'Journal Voucher Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Journal Voucher\x01Saved':1,'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':'','GL Entry\x01Range 1':'30','GL Entry\x01Range 2':'45','GL Entry\x01Range 3':'60','GL Entry\x01Range 4':'90'}",
-		'module': 'Accounts',
+		'filters': u"{'Journal Voucher\x01Saved':1,'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':'','GL Entry\x01Range 1':'30','GL Entry\x01Range 2':'45','GL Entry\x01Range 3':'60','GL Entry\x01Range 4':'90'}",
+		'module': u'Accounts',
 		'name': '__common__',
-		'parent_doc_type': 'Journal Voucher',
-		'sort_by': '`tabJournal Voucher`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Journal Voucher',
+		'sort_by': u'`tabJournal Voucher`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, collection_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'collection_report'
+		'name': u'collection_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt
index 72d173e..2aed507 100644
--- a/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt
+++ b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2010-06-10 13:19:39',
-		'modified_by': 'Administrator',
-		'owner': 'swarnalata@webnotestech.com'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'swarnalata@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': 'Cost Center wise Expense',
-		'dis_filters': 'fiscal_year',
-		'doc_type': 'GL Entry',
+		'criteria_name': u'Cost Center wise Expense',
+		'dis_filters': u'fiscal_year',
+		'doc_type': u'GL Entry',
 		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Fiscal Year':'','GL Entry\x01Company':''}",
-		'module': 'Accounts',
+		'filters': u"{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Fiscal Year':'','GL Entry\x01Company':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabGL Entry`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabGL Entry`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, cost_center_wise_expense
 	{
 		'doctype': 'Search Criteria',
-		'name': 'cost_center_wise_expense'
+		'name': u'cost_center_wise_expense'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.txt b/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.txt
index aa7751a..9a7565c 100644
--- a/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.txt
+++ b/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.txt
@@ -3,29 +3,29 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:28',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-11-22 17:05:46',
-		'modified_by': 'Administrator',
-		'owner': 'nabin@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'nabin@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': "Creditor's Ledger",
-		'doc_type': 'GL Entry',
+		'criteria_name': u"Creditor's Ledger",
+		'doc_type': u'GL Entry',
 		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
+		'filters': u"{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, creditors_ledger
 	{
 		'doctype': 'Search Criteria',
-		'name': 'creditors_ledger'
+		'name': u'creditors_ledger'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.txt b/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.txt
index 4ba71f0..0991097 100644
--- a/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.txt
+++ b/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.txt
@@ -3,29 +3,29 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:28',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-11-22 17:02:05',
-		'modified_by': 'Administrator',
-		'owner': 'nabin@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'nabin@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': "Debtor's Ledger",
-		'doc_type': 'GL Entry',
+		'criteria_name': u"Debtor's Ledger",
+		'doc_type': u'GL Entry',
 		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'No','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
+		'filters': u"{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'No','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, debtors_ledger
 	{
 		'doctype': 'Search Criteria',
-		'name': 'debtors_ledger'
+		'name': u'debtors_ledger'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/general_ledger/general_ledger.txt b/erpnext/accounts/search_criteria/general_ledger/general_ledger.txt
index 6401ff4..5cf15ea 100644
--- a/erpnext/accounts/search_criteria/general_ledger/general_ledger.txt
+++ b/erpnext/accounts/search_criteria/general_ledger/general_ledger.txt
@@ -3,30 +3,30 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:28',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-11-30 16:26:42',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': 'General Ledger',
-		'doc_type': 'GL Entry',
+		'criteria_name': u'General Ledger',
+		'doc_type': u'GL Entry',
 		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01From Posting Date\x01lower':'','GL Entry\x01To Posting Date\x01upper':'','GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'No','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':'','GL Entry\x01Company':''}",
-		'module': 'Accounts',
+		'filters': u"{'GL Entry\x01From Posting Date\x01lower':'','GL Entry\x01To Posting Date\x01upper':'','GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'No','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':'','GL Entry\x01Company':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabGL Entry`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabGL Entry`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, general_ledger
 	{
 		'doctype': 'Search Criteria',
-		'name': 'general_ledger'
+		'name': u'general_ledger'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/invoices_overdue/__init__.py b/erpnext/accounts/search_criteria/invoices_overdue/__init__.py
similarity index 100%
rename from erpnext/home/search_criteria/invoices_overdue/__init__.py
rename to erpnext/accounts/search_criteria/invoices_overdue/__init__.py
diff --git a/erpnext/accounts/search_criteria/invoices_overdue/invoices_overdue.txt b/erpnext/accounts/search_criteria/invoices_overdue/invoices_overdue.txt
new file mode 100644
index 0000000..a83d490
--- /dev/null
+++ b/erpnext/accounts/search_criteria/invoices_overdue/invoices_overdue.txt
@@ -0,0 +1,34 @@
+# Search Criteria, invoices-overdue
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-04-03 12:49:51',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'add_cond': u'`tabSales Invoice`.due_date<now()\n`tabSales Invoice`.outstanding_amount!=0\n`tabSales Invoice`.docstatus=1',
+		'columns': u'Sales Invoice\x01ID,Sales Invoice\x01Debit To,Sales Invoice\x01Voucher Date,Sales Invoice\x01Due Date,Sales Invoice\x01Outstanding Amount',
+		'criteria_name': u'Invoices-Overdue',
+		'doc_type': u'Sales Invoice',
+		'doctype': 'Search Criteria',
+		'filters': u"{'Sales Invoice\x01Saved':1,'Sales Invoice\x01Submitted':1,'Sales Invoice\x01Is Opening':'','Sales Invoice\x01Fiscal Year':''}",
+		'module': u'Accounts',
+		'name': '__common__',
+		'page_len': 50,
+		'sort_by': u'`tabSales Invoice`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
+	},
+
+	# Search Criteria, invoices-overdue
+	{
+		'doctype': 'Search Criteria',
+		'name': u'invoices-overdue'
+	}
+]
diff --git a/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js b/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js
index ecd5057..0270357 100644
--- a/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js
+++ b/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js
@@ -18,16 +18,16 @@
   this.hide_all_filters();
   filter_list = ['From Voucher Date', 'To Voucher Date', 'Credit To', 'Is Opening', 'From Posting Date', 'To Posting Date']
   for(var i=0;i<filter_list.length;i++)
-    this.filter_fields_dict['Payable Voucher'+FILTER_SEP +filter_list[i]].df.filter_hide = 0;
+    this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +filter_list[i]].df.filter_hide = 0;
 
-  this.filter_fields_dict['PV Detail'+FILTER_SEP +'Item'].df.filter_hide = 0;
+  this.filter_fields_dict['Purchase Invoice Item'+FILTER_SEP +'Item'].df.filter_hide = 0;
 
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['PV Detail'+FILTER_SEP +'Item'].df.in_first_page = 1;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
+  this.filter_fields_dict['Purchase Invoice Item'+FILTER_SEP +'Item'].df.in_first_page = 1;
 
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'Company'].df['report_default']=sys_defaults.company
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'Company'].df['report_default']=sys_defaults.company
 
 }
diff --git a/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt b/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt
index e6b1983..206985e 100644
--- a/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt
+++ b/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt
@@ -3,34 +3,34 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-10 16:53:49',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2011-06-20 13:25:29',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Payable Voucher\x01ID,Payable Voucher\x01Credit To,Payable Voucher\x01Company,PV Detail\x01Item,PV Detail\x01Item Name,PV Detail\x01Expense Head,PV Detail\x01Cost Center,PV Detail\x01Qty,PV Detail\x01Rate (Default Curr.),PV Detail\x01Amount (Default Curr.)',
-		'criteria_name': 'Itemwise Purchase Register',
-		'description': 'Itemwise Purchase Register',
-		'dis_filters': 'fiscal_year',
-		'doc_type': 'PV Detail',
+		'columns': u'Purchase Invoice\x01ID,Purchase Invoice\x01Credit To,Purchase Invoice\x01Company,Purchase Invoice Item\x01Item,Purchase Invoice Item\x01Item Name,Purchase Invoice Item\x01Expense Head,Purchase Invoice Item\x01Cost Center,Purchase Invoice Item\x01Qty,Purchase Invoice Item\x01Rate (Default Curr.),Purchase Invoice Item\x01Amount (Default Curr.)',
+		'criteria_name': u'Itemwise Purchase Register',
+		'description': u'Itemwise Purchase Register',
+		'dis_filters': u'fiscal_year',
+		'doc_type': u'Purchase Invoice Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Payable Voucher\x01Submitted':1,'Payable Voucher\x01Is Opening':'No','Payable Voucher\x01Company':'','Payable Voucher\x01Fiscal Year':''}",
-		'module': 'Accounts',
+		'filters': u"{'Purchase Invoice\x01Submitted':1,'Purchase Invoice\x01Is Opening':'No','Purchase Invoice\x01Company':'','Purchase Invoice\x01Fiscal Year':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Payable Voucher',
-		'sort_by': '`tabPayable Voucher`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Purchase Invoice',
+		'sort_by': u'`tabPurchase Invoice`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, itemwise_purchase_register
 	{
 		'doctype': 'Search Criteria',
-		'name': 'itemwise_purchase_register'
+		'name': u'itemwise_purchase_register'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js b/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js
index d243717..2fb1213 100755
--- a/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js
+++ b/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js
@@ -18,18 +18,18 @@
   this.hide_all_filters();
   filter_list = ['From Voucher Date', 'To Voucher Date', 'Debit To', 'From Posting Date', 'To Posting Date']
   for(var i=0;i<filter_list.length;i++)
-    this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +filter_list[i]].df.filter_hide = 0;
+    this.filter_fields_dict['Sales Invoice'+FILTER_SEP +filter_list[i]].df.filter_hide = 0;
 
-  this.filter_fields_dict['RV Detail'+FILTER_SEP +'Item'].df.filter_hide = 0;
-  this.filter_fields_dict['RV Detail'+FILTER_SEP +'Item Group'].df.filter_hide = 0;
-  this.filter_fields_dict['RV Detail'+FILTER_SEP +'Brand Name'].df.filter_hide = 0;
-  this.filter_fields_dict['RV Detail'+FILTER_SEP +'Cost Center'].df.filter_hide = 0;
+  this.filter_fields_dict['Sales Invoice Item'+FILTER_SEP +'Item'].df.filter_hide = 0;
+  this.filter_fields_dict['Sales Invoice Item'+FILTER_SEP +'Item Group'].df.filter_hide = 0;
+  this.filter_fields_dict['Sales Invoice Item'+FILTER_SEP +'Brand Name'].df.filter_hide = 0;
+  this.filter_fields_dict['Sales Invoice Item'+FILTER_SEP +'Cost Center'].df.filter_hide = 0;
 
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['RV Detail'+FILTER_SEP +'Item'].df.in_first_page = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
+  this.filter_fields_dict['Sales Invoice Item'+FILTER_SEP +'Item'].df.in_first_page = 1;
 
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Company'].df['report_default']=sys_defaults.company
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Company'].df['report_default']=sys_defaults.company
 }
diff --git a/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt b/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt
index 24882e6..5393e00 100644
--- a/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt
+++ b/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-01-19 17:33:33',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2011-06-20 16:30:41',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'RV Detail\x01Item,RV Detail\x01Item Name,RV Detail\x01Item Group,Receivable Voucher\x01ID,Receivable Voucher\x01Voucher Date,Receivable Voucher\x01Posting Date,Receivable Voucher\x01Debit To,RV Detail\x01Cost Center,Receivable Voucher\x01Territory,RV Detail\x01Income Account,RV Detail\x01Qty,RV Detail\x01Basic Rate*,RV Detail\x01Amount*',
-		'criteria_name': 'Itemwise Sales Register',
-		'doc_type': 'RV Detail',
+		'columns': u'Sales Invoice Item\x01Item,Sales Invoice Item\x01Item Name,Sales Invoice Item\x01Item Group,Sales Invoice\x01ID,Sales Invoice\x01Voucher Date,Sales Invoice\x01Posting Date,Sales Invoice\x01Debit To,Sales Invoice Item\x01Cost Center,Sales Invoice\x01Territory,Sales Invoice Item\x01Income Account,Sales Invoice Item\x01Qty,Sales Invoice Item\x01Basic Rate*,Sales Invoice Item\x01Amount*',
+		'criteria_name': u'Itemwise Sales Register',
+		'doc_type': u'Sales Invoice Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Receivable Voucher\x01Submitted':1,'Receivable Voucher\x01From Posting Date\x01lower':'','Receivable Voucher\x01To Posting Date\x01upper':'','Receivable Voucher\x01Is Opening':'','Receivable Voucher\x01Company':'','Receivable Voucher\x01Fiscal Year':''}",
-		'module': 'Accounts',
+		'filters': u"{'Sales Invoice\x01Submitted':1,'Sales Invoice\x01From Posting Date\x01lower':'','Sales Invoice\x01To Posting Date\x01upper':'','Sales Invoice\x01Is Opening':'','Sales Invoice\x01Company':'','Sales Invoice\x01Fiscal Year':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Receivable Voucher',
-		'sort_by': '`tabRV Detail`.`income_account`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Invoice',
+		'sort_by': u'`tabSales Invoice Item`.`income_account`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, itemwise_sales_register
 	{
 		'doctype': 'Search Criteria',
-		'name': 'itemwise_sales_register'
+		'name': u'itemwise_sales_register'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_agreement_list/__init__.py b/erpnext/accounts/search_criteria/lease_agreement_list/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_agreement_list/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.js b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.js
deleted file mode 100644
index d25139c..0000000
--- a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=sys_defaults.year_start_date;
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.py b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.py
deleted file mode 100644
index 68f0167..0000000
--- a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Agreement No.','Data','100px',''],
-		['Lessee Name','Data','300px',''],
-		['Amount','Currency','120px','']
-	]
-
-for d in data:
-	colnames.append(d[0])
-	coltypes.append(d[1])
-	colwidths.append(d[2])
-	coloptions.append(d[3])
-	col_idx[d[0]] = len(colnames)-1
-
diff --git a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.sql b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.sql
deleted file mode 100644
index 6097b2f..0000000
--- a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-select la.name, la.account, la.invoice_amount
-from `tabLease Agreement` la
-where start_date between '%(date)s' and '%(date1)s' order by la.name
diff --git a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt
deleted file mode 100644
index 5e84916..0000000
--- a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_agreement_list
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-27 16:17:04',
-		'docstatus': 0,
-		'modified': '2011-07-27 16:17:04',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Agreement List',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_agreement_list
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_agreement_list'
-	}
-]
diff --git a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js
deleted file mode 100644
index 7d8152b..0000000
--- a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=dateutil.obj_to_str(new Date());
-//	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df.filter_hide=1;
-
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py
deleted file mode 100644
index 692f6f8..0000000
--- a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Month','Data','100px',''],
-		['Year','Data','100px',''],
-		['Amount','Currency','120px','']
-	]
-
-for d in data:
-	colnames.append(d[0])
-	coltypes.append(d[1])
-	colwidths.append(d[2])
-	coloptions.append(d[3])
-	col_idx[d[0]] = len(colnames)-1
-
diff --git a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql
deleted file mode 100644
index 564a3fd..0000000
--- a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-select date_format(due_date,'%M') as mnt,year(due_date),sum(amount)
-
-from `tabLease Agreement` la,`tabLease Installment` lai
-
-where la.name=lai.parent and (lai.cheque_date is null or lai.cheque_date > '%(date)s')
-
-group by date_format(due_date,'%M-%Y')
-
-order by year(due_date),month(due_date)
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt
deleted file mode 100644
index 05a0f70..0000000
--- a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_monthly_future_installment_inflows
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-29 13:45:35',
-		'docstatus': 0,
-		'modified': '2011-08-29 13:45:35',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Monthly Future Installment Inflows',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_monthly_future_installment_inflows
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_monthly_future_installment_inflows'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_over_due_list/__init__.py b/erpnext/accounts/search_criteria/lease_over_due_list/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_over_due_list/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js
deleted file mode 100644
index 7d8152b..0000000
--- a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=dateutil.obj_to_str(new Date());
-//	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df.filter_hide=1;
-
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py
deleted file mode 100644
index debb3ca..0000000
--- a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Agreement No.','Data','100px',''],
-		['Lessee Name','Data','300px',''],
-		['Amount','Currency','120px',''],
-		['Age','Data','100px','']
-	]
-
-for d in data:
-	colnames.append(d[0])
-	coltypes.append(d[1])
-	colwidths.append(d[2])
-	coloptions.append(d[3])
-	col_idx[d[0]] = len(colnames)-1
-
diff --git a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql
deleted file mode 100644
index 1789f7e..0000000
--- a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-select la.name,la.account,lai.amount,cast('%(date)s' as date)-due_date as age
-
-from `tabLease Agreement` la,`tabLease Installment` lai
-
-where la.name=lai.parent and lai.due_date<cast('%(date)s' as date) and (lai.cheque_date is null or lai.cheque_date > cast('%(date)s' as date))
-
-order by cast('%(date)s' as date)-due_date desc
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt
deleted file mode 100644
index d145442..0000000
--- a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_over_due_list
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-29 13:45:35',
-		'docstatus': 0,
-		'modified': '2011-08-29 13:45:35',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Over Due List',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_over_due_list
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_over_due_list'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_overdue_age_wise/__init__.py b/erpnext/accounts/search_criteria/lease_overdue_age_wise/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_overdue_age_wise/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js
deleted file mode 100644
index 7d8152b..0000000
--- a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=dateutil.obj_to_str(new Date());
-//	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df.filter_hide=1;
-
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py
deleted file mode 100644
index 0723760..0000000
--- a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Lessee Name','Data','300px',''],
-		['Below 30 Days','Currency','120px',''],
-		['Below 90 Days','Currency','120px',''],
-		['Below 180 Days','Currency','120px',''],
-		['Below 360 Days','Currency','120px',''],
-		['Above 360 Days','Currency','120px',''],
-	]
-
-for d in data:
-	colnames.append(d[0])
-	coltypes.append(d[1])
-	colwidths.append(d[2])
-	coloptions.append(d[3])
-	col_idx[d[0]] = len(colnames)-1
-
diff --git a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql
deleted file mode 100644
index 2e6912e..0000000
--- a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-select account,sum(od_30)as od_30,sum(od_90)as od_90,sum(od_180)as od_180,sum(od_360)as od_360,sum(od_1yr)as od_1yr from
-(
-	select account,case when age<=30 then amount end as od_30,case when age between 31 and 90 then amount end as od_90,case when age between 91 and 180 then amount end as od_180,case when age between 181 and 360 then amount end as od_360,case when age>360 then amount end as od_1yr from
-	(
-		select la.account,lai.amount,cast('%(date)s' as date)-due_date as age
-		from `tabLease Agreement` la,`tabLease Installment` lai
-		where la.name=lai.parent and lai.due_date<'%(date)s' and (lai.cheque_date is null or lai.cheque_date > '%(date)s')
-	)a
-)b group by account order by account
diff --git a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt
deleted file mode 100644
index 1c734a8..0000000
--- a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_overdue_age_wise
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-29 13:45:35',
-		'docstatus': 0,
-		'modified': '2011-08-29 13:45:35',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Overdue Age Wise',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_overdue_age_wise
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_overdue_age_wise'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js
deleted file mode 100644
index d25139c..0000000
--- a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=sys_defaults.year_start_date;
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py
deleted file mode 100644
index 692f6f8..0000000
--- a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Month','Data','100px',''],
-		['Year','Data','100px',''],
-		['Amount','Currency','120px','']
-	]
-
-for d in data:
-	colnames.append(d[0])
-	coltypes.append(d[1])
-	colwidths.append(d[2])
-	coloptions.append(d[3])
-	col_idx[d[0]] = len(colnames)-1
-
diff --git a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql
deleted file mode 100644
index cdd48b8..0000000
--- a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-SELECT date_format(gl.posting_date,'%M'),year(gl.posting_date),sum(gl.credit) as amount
-FROM `tabGL Entry` gl, `tabAccount` a
-WHERE gl.account=a.name and a.master_type='Customer' and gl.credit>0 and gl.posting_date between '%(date)s' and '%(date1)s'
-GROUP BY month(gl.posting_date),year(gl.posting_date)
-ORDER BY year(gl.posting_date),month(gl.posting_date)
diff --git a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt
deleted file mode 100644
index e6da15c..0000000
--- a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_receipt_summary_month_wise
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-27 16:17:04',
-		'docstatus': 0,
-		'modified': '2011-07-27 16:17:04',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Receipt Summary Month Wise',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_receipt_summary_month_wise
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_receipt_summary_month_wise'
-	}
-]
diff --git a/erpnext/accounts/search_criteria/lease_receipts_client_wise/__init__.py b/erpnext/accounts/search_criteria/lease_receipts_client_wise/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_receipts_client_wise/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js
deleted file mode 100644
index d25139c..0000000
--- a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=sys_defaults.year_start_date;
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py
deleted file mode 100644
index 2d13808..0000000
--- a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Lessee Name','Data','300px',''],
-		['Amount','Currency','120px','']
-	]
-
-for d in data:
-	colnames.append(d[0])
-	coltypes.append(d[1])
-	colwidths.append(d[2])
-	coloptions.append(d[3])
-	col_idx[d[0]] = len(colnames)-1
-
diff --git a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql
deleted file mode 100644
index af49c81..0000000
--- a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-SELECT gl.account,sum(gl.credit) as amount
-FROM `tabGL Entry` gl, `tabAccount` a
-WHERE gl.account=a.name and a.master_type='Customer' and gl.posting_date between '%(date)s' and '%(date1)s' and ifnull(gl.is_cancelled, 'No') = 'No'
-GROUP BY gl.account
-ORDER BY posting_date
diff --git a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt
deleted file mode 100644
index 71c9b0e..0000000
--- a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-# Search Criteria, lease_receipts_client_wise
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-29 13:45:36',
-		'docstatus': 0,
-		'modified': '2011-08-29 13:45:36',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Receipts Client Wise',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'page_len': 50,
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_receipts_client_wise
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_receipts_client_wise'
-	}
-]
diff --git a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js
deleted file mode 100644
index 7d8152b..0000000
--- a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=dateutil.obj_to_str(new Date());
-//	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df.filter_hide=1;
-
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py
deleted file mode 100644
index 8c1842a..0000000
--- a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Year','Data','100px',''],
-		['Amount','Currency','120px','']
-	]
-
-for d in data:
-	colnames.append(d[0])
-	coltypes.append(d[1])
-	colwidths.append(d[2])
-	coloptions.append(d[3])
-	col_idx[d[0]] = len(colnames)-1
-
diff --git a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql
deleted file mode 100644
index ec6c816..0000000
--- a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-select year(date_sub(due_date,interval 6 MONTH)) as yr,sum(amount)
-
-from `tabLease Agreement` la,`tabLease Installment` lai
-
-where la.name=lai.parent and (lai.cheque_date is null or lai.cheque_date > '%(date)s')
-
-group by year(date_sub(due_date,interval 6 MONTH))
-
-order by yr
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt
deleted file mode 100644
index 0969796..0000000
--- a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_yearly_future_installment_inflows
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-29 13:45:36',
-		'docstatus': 0,
-		'modified': '2011-08-29 13:45:36',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Yearly Future Installment Inflows',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_yearly_future_installment_inflows
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_yearly_future_installment_inflows'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/__init__.py b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js
deleted file mode 100644
index 2fc1c9c..0000000
--- a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  flds = ['ID','Owner','Cost Center','From Posting Date', 'To Posting Date', 'Against Voucher','Voucher Type','Voucher No','Is Cancelled','Is Opening','Remarks', 'From Aging Date', 'To Aging Date', 'Company']
-  for(i=0;i<flds.length;i++){
-    this.filter_fields_dict['GL Entry'+FILTER_SEP +flds[i]].df.filter_hide = 1;
-  }
-  this.filter_fields_dict['GL Entry'+FILTER_SEP +'Fiscal Year'].df['report_default']=sys_defaults.fiscal_year;
-  this.filter_fields_dict['GL Entry'+FILTER_SEP +'Fiscal Year'].df.in_first_page = 1;
-}
-
-this.mytabs.items['Select Columns'].hide();
-this.mytabs.items['More Filters'].hide();
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py
deleted file mode 100644
index d723f70..0000000
--- a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-if not filter_values['account']:
-  msgprint("Please Enter filter value for Account")
-  raise Exception
-
-colwidths[col_idx['Fiscal Month']] = '120px'
-colwidths[col_idx['Debit']] = '120px'
-colwidths[col_idx['Credit']] = '120px'
-
-
-month_lst={'1':'Jan','2':'Feb','3':'Mar','4':'Apr','5':'May','6':'Jun','7':'Jul','8':'Aug','9':'Sept','10':'Oct','11':'Nov','12':'Dec'}
-for r in res:
-  mnt = '%s'%r[col_idx['Fiscal Month']]
-  r[col_idx['Fiscal Month']]=month_lst[mnt]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt
deleted file mode 100644
index fa527bb..0000000
--- a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-# Search Criteria, monthly_ledger_summary_report
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-06-09 16:30:43',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_col': "month(`tabGL Entry`.posting_date) AS 'Fiscal Month'\nsum(`tabGL Entry`.debit) AS 'Debit'\nsum(`tabGL Entry`.credit) AS 'Credit'",
-		'add_cond': '(`tabGL Entry`.debit > 0 or `tabGL Entry`.credit > 0)',
-		'criteria_name': 'Monthly Ledger Summary Report',
-		'dis_filters': 'company',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':''}",
-		'group_by': 'month(`tabGL Entry`.posting_date)',
-		'module': 'Accounts',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`Fiscal Month`',
-		'sort_order': 'ASC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, monthly_ledger_summary_report
-	{
-		'doctype': 'Search Criteria',
-		'name': 'monthly_ledger_summary_report'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/analysis/search_criteria/monthly_transaction_summary/__init__.py b/erpnext/accounts/search_criteria/monthly_transaction_summary/__init__.py
similarity index 100%
rename from erpnext/analysis/search_criteria/monthly_transaction_summary/__init__.py
rename to erpnext/accounts/search_criteria/monthly_transaction_summary/__init__.py
diff --git a/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.js b/erpnext/accounts/search_criteria/monthly_transaction_summary/monthly_transaction_summary.js
similarity index 100%
rename from erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.js
rename to erpnext/accounts/search_criteria/monthly_transaction_summary/monthly_transaction_summary.js
diff --git a/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.py b/erpnext/accounts/search_criteria/monthly_transaction_summary/monthly_transaction_summary.py
similarity index 100%
rename from erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.py
rename to erpnext/accounts/search_criteria/monthly_transaction_summary/monthly_transaction_summary.py
diff --git a/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.sql b/erpnext/accounts/search_criteria/monthly_transaction_summary/monthly_transaction_summary.sql
similarity index 100%
rename from erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.sql
rename to erpnext/accounts/search_criteria/monthly_transaction_summary/monthly_transaction_summary.sql
diff --git a/erpnext/accounts/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt b/erpnext/accounts/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt
new file mode 100644
index 0000000..9290041
--- /dev/null
+++ b/erpnext/accounts/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt
@@ -0,0 +1,32 @@
+# Search Criteria, monthly_transaction_summary
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-04-03 12:49:51',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'columns': u'Profile\x01ID',
+		'criteria_name': u'Monthly Transaction Summary',
+		'doc_type': u'Profile',
+		'doctype': 'Search Criteria',
+		'filters': u"{'DocType\x01Period':'Monthly'}",
+		'module': u'Accounts',
+		'name': '__common__',
+		'sort_by': u'`tabProfile`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
+	},
+
+	# Search Criteria, monthly_transaction_summary
+	{
+		'doctype': 'Search Criteria',
+		'name': u'monthly_transaction_summary'
+	}
+]
diff --git a/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt b/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt
index 4a10aae..d1ef6d1 100644
--- a/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt
+++ b/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-06-11 17:00:54',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'jai@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Payment Receipt Report',
-		'doc_type': 'GL Entry',
+		'columns': u'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
+		'criteria_name': u'Payment Receipt Report',
+		'doc_type': u'GL Entry',
 		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
+		'filters': u"{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabGL Entry`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabGL Entry`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, payment_receipt_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'payment_receipt_report'
+		'name': u'payment_receipt_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/payment_report/__init__.py b/erpnext/accounts/search_criteria/payment_report/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/payment_report/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/payment_report/payment_report.js b/erpnext/accounts/search_criteria/payment_report/payment_report.js
deleted file mode 100644
index 6571b69..0000000
--- a/erpnext/accounts/search_criteria/payment_report/payment_report.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();
-
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Voucher Type'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Is Opening'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Company'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher Detail'+FILTER_SEP +'Account'].df.filter_hide = 0;
-
-  this.add_filter({fieldname:'range_1', label:'Range 1', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
-  this.add_filter({fieldname:'range_2', label:'Range 2', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
-  this.add_filter({fieldname:'range_3', label:'Range 3', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
-  this.add_filter({fieldname:'range_4', label:'Range 4', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
-
-  this.add_filter({fieldname:'aging_based_on', label:'Aging Based On', fieldtype:'Select', options:NEWLINE+'Transaction Date'+NEWLINE+'Aging Date',ignore : 1, parent:'Payable Voucher', 'report_default':'Aging Date'});  
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Journal Voucher Detail'+FILTER_SEP +'Account'].df.in_first_page = 1;
-
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Company'].df['report_default']=sys_defaults.company;
-
-}
-this.mytabs.items['Select Columns'].hide()
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/payment_report/payment_report.py b/erpnext/accounts/search_criteria/payment_report/payment_report.py
deleted file mode 100644
index cc025ba..0000000
--- a/erpnext/accounts/search_criteria/payment_report/payment_report.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-#check mendatory
-if not filter_values.get('posting_date') or not filter_values.get('posting_date1'):
-  msgprint("Please select From Posting Date and To Posting Date in 'Set Filters' section")
-  raise Exception
-else:
-  from_date = filter_values.get('posting_date')
-  to_date = filter_values.get('posting_date1')
-
-if not filter_values['range_1'] or not filter_values['range_2'] or not filter_values['range_3'] or not filter_values['range_4']:
-  msgprint("Please select aging ranges in no of days in 'Set Filters' section")
-  raise Exception
-  
-# ageing based on
-aging_based_on = 'Aging Date'
-if filter_values.has_key('aging_based_on') and filter_values['aging_based_on']:
-  aging_based_on = filter_values['aging_based_on'].split(NEWLINE)[-1]
-
-
-# Add columns
-# -----------
-row_list = [['ID','Data','150px',''],
-            ['Account','Data','150px',''],
-            ['Credit','Data','150px',''],
-            ['Debit','Data','150px',''],
-            ['Against Payable','Data','150px',''],
-            ['Is Advance','Data','150px',''],
-            ['Transaction Date','Date','150px',''],
-            ['Aging Date','Date','150px',''],
-            ['Cheque No','Data','100px',''],
-            ['Cheque Date','Date','150px',''],        
-            ['Supplier Type','Data','150px',''],
-            ['Remark','Data','250px',''],
-            ['Advance','Data','250px',''],
-            ['PV Transaction Date','Date','150px',''],
-            ['PV Aging Date','Date','150px',''],
-            ['Age (Days)','Data','100px',''],
-            ['0-'+cstr(filter_values['range_1']),'Currency','100px',''],
-            [cstr(cint(filter_values['range_1']) + 1)+ '-' +cstr(filter_values['range_2']),'Currency','100px',''],
-            [cstr(cint(filter_values['range_2']) + 1)+ '-' +cstr(filter_values['range_3']),'Currency','100px',''],
-            [cstr(cint(filter_values['range_3']) + 1)+ '-' +cstr(filter_values['range_4']),'Currency','100px',''],
-            [cstr(filter_values['range_4']) + '-Above','Currency','100px','']]  
-
-for r in row_list:
-  colnames.append(r[0])
-  coltypes.append(r[1])
-  colwidths.append(r[2])
-  coloptions.append(r[3])
-  col_idx[r[0]] = len(colnames)-1
-  
-
-for r in res:
-  if r[col_idx['Against Payable']]:
-    dt=sql("select date(modified), aging_date from `tabPayable Voucher` where name='%s'"%r[col_idx['Against Payable']])
-    r.append('')
-    r.append(dt and cstr(dt[0][0]) or '')
-    r.append(dt and cstr(dt[0][1]) or '')
-  else:
-    r.append(r[col_idx['Debit']])
-    r.append('')
-    r.append('')
-
-  # Aging Credit Amount
-  val_l1 = val_l2 = val_l3 = val_l4 = val_l5_above = diff = 0
-
-  if r[col_idx['Against Payable']]:
-    amt = flt(r[col_idx['Debit']]) or (-1)*flt(r[col_idx['Credit']])
-
-    if aging_based_on == 'Transaction Date' and r[col_idx['PV Transaction Date']]:
-      diff = (getdate(r[col_idx['Transaction Date']]) - getdate(r[col_idx['PV Transaction Date']])).days
-    elif aging_based_on == 'Aging Date' and r[col_idx['PV Aging Date']]:
-      diff = (getdate(r[col_idx['Aging Date']]) - getdate(r[col_idx['PV Aging Date']])).days
-    
-    if diff < cint(filter_values['range_1']):
-      val_l1 = amt
-    if diff >= cint(filter_values['range_1']) and diff < cint(filter_values['range_2']):
-      val_l2 = amt
-    if diff >= cint(filter_values['range_2']) and diff < cint(filter_values['range_3']):
-      val_l3 = amt
-    if diff >= cint(filter_values['range_3']) and diff < cint(filter_values['range_4']):
-      val_l4 = amt
-    if diff >= cint(filter_values['range_4']):
-      val_l5_above = amt
-
-  r.append(diff)
-  r.append(val_l1)
-  r.append(val_l2)
-  r.append(val_l3)
-  r.append(val_l4)
-  r.append(val_l5_above)
diff --git a/erpnext/accounts/search_criteria/payment_report/payment_report.sql b/erpnext/accounts/search_criteria/payment_report/payment_report.sql
deleted file mode 100644
index dec4f4e..0000000
--- a/erpnext/accounts/search_criteria/payment_report/payment_report.sql
+++ /dev/null
@@ -1,12 +0,0 @@
-SELECT `tabJournal Voucher`.`name`,`tabJournal Voucher Detail`.`account`,`tabJournal Voucher Detail`.`credit`,`tabJournal Voucher Detail`.`debit`,`tabJournal Voucher Detail`.`against_voucher`,`tabJournal Voucher Detail`.`is_advance`,`tabJournal Voucher`.`voucher_date`,`tabJournal Voucher`.`aging_date`,`tabJournal Voucher`.`cheque_no`,`tabJournal Voucher`.`cheque_date`,`tabSupplier`.`supplier_type`,`tabJournal Voucher`.`remark`
- FROM `tabJournal Voucher Detail`,`tabJournal Voucher`,`tabAccount`,`tabSupplier`
- WHERE `tabJournal Voucher`.docstatus=1
- AND `tabJournal Voucher`.`posting_date`>='%(posting_date)s'
- AND `tabJournal Voucher`.`posting_date`<='%(posting_date1)s'
- AND `tabJournal Voucher`.`company` LIKE '%(company)s%%'
- AND `tabJournal Voucher Detail`.`account` LIKE '%(account)s%%'
- AND `tabAccount`.`master_type` = 'Supplier'
- AND `tabAccount`.`account_name` = `tabSupplier`.`name`
- AND `tabJournal Voucher Detail`.`account` = `tabAccount`.`name`
- AND `tabJournal Voucher Detail`.`parent` = `tabJournal Voucher`.`name`
- ORDER BY `tabJournal Voucher`.`name`
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/payment_report/payment_report.txt b/erpnext/accounts/search_criteria/payment_report/payment_report.txt
deleted file mode 100644
index 1059e8b..0000000
--- a/erpnext/accounts/search_criteria/payment_report/payment_report.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, payment_report
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-06-10 09:48:52',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Journal Voucher\x01ID,Journal Voucher\x01Posting Date,Journal Voucher\x01Company,Journal Voucher\x01Cheque No,Journal Voucher\x01Cheque Date,Journal Voucher Detail\x01Account,Journal Voucher Detail\x01Debit,Journal Voucher Detail\x01Against Payable,Journal Voucher Detail\x01Is Advance',
-		'criteria_name': 'Payment Report',
-		'doc_type': 'Journal Voucher Detail',
-		'doctype': 'Search Criteria',
-		'filters': "{'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':'','GL Entry\x01Range 1':'30','GL Entry\x01Range 2':'45','GL Entry\x01Range 3':'60','GL Entry\x01Range 4':'90','Receivable Voucher\x01Aging Based On':'','Payable Voucher\x01Aging Based On':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'parent_doc_type': 'Journal Voucher',
-		'sort_by': '`tabJournal Voucher`.`aging_date`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, payment_report
-	{
-		'doctype': 'Search Criteria',
-		'name': 'payment_report'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/progressive_total_excise_duty/__init__.py b/erpnext/accounts/search_criteria/progressive_total_excise_duty/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/progressive_total_excise_duty/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.js b/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.js
deleted file mode 100644
index f96e933..0000000
--- a/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();
-  
-  this.add_filter({fieldname:'main_acc_head', label:'Main Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'edu_cess_acc_head', label:'Edu Cess Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'sh_edu_cess_acc_head', label:'S.H.Edu Cess Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  
-  // un-hide fields 
-  //this.add_filter({fieldname:'company', label:'Company', fieldtype:'Link', options:'Company', ignore : 1, parent:'Journal Voucher Detail'});
-  //this.add_filter({fieldname:'fiscal_year', label:'Fiscal Year', fieldtype:'Link', options:'Fiscal Year', ignore : 1, parent:'Journal Voucher Detail'});
-  //this.add_filter({fieldname:'posting_date', label:'Posting Date', fieldtype:'Date', ignore : 1, parent:'Journal Voucher Detail'});
-  
-  
-
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Company'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Fiscal Year'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
-  
-  // set defaults
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
-
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-
-  //this.large_report = 1;
-}
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.py b/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.py
deleted file mode 100644
index 3cac167..0000000
--- a/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.py
+++ /dev/null
@@ -1,86 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Add columns
-# -----------
-row_list = [['Date', 'Date', '150px', '']
-           ,['INVOICE', 'Date', '150px', '']
-           ,['Baisc Excise Duty', 'Currency', '150px', '']
-           ,['Education Cess', 'Currency', '150px', '']
-           ,['S.H.Education Cess', 'Currency', '150px', '']
-           ,['Remarks', 'Data', '150px', '']
-]
-
-for r in row_list:
-  colnames.append(r[0])
-  coltypes.append(r[1])
-  colwidths.append(r[2])
-  coloptions.append(r[3])
-  col_idx[r[0]] = len(colnames)-1
-
-# Get Object Of GL Control
-#import webnotes
-#import webnotes.model.code
-#from webnotes.model.code import get_obj
-#glc = webnotes.model.code.get_obj('GL Control')
-
-# Get Year Start Date
-ysd = sql("select year_start_date from `tabFiscal Year` where name='%s'" % filter_values['fiscal_year'])
-ysd = ysd and ysd[0][0] or ''
-
-# get as_on_date for opening
-as_on_date = ''
-if filter_values.get('posting_date'):
-  as_on_date = add_days(filter_values['posting_date'], -1)
-
-# Get Opening Balance
-def get_opening_balance(acc, fy, as_on_date, ysd, get_opening_balance):
-  #import webnotes
-  #import webnotes.model.code
-  #from webnotes.model.code import get_obj
-  #glc = webnotes.model.code.get_obj('GL Control')
-  glc = get_obj('GL Control')
-  acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % acc)
-  return glc.get_as_on_balance(acc, fy, as_on_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
-
-cum_sum_main_acc_head = cum_sum_add_acc_head = cum_sum_cvd_acc_head = cum_sum_edu_cess_acc_head = cum_sum_sh_edu_cess_acc_head = 0
-openg_main_acc_head = openg_add_acc_head = openg_cvd_acc_head = openg_edu_cess_acc_head = openg_sh_edu_cess_acc_head = 0
-
-# Get Opening of Basic Excise Duty
-if not filter_values['main_acc_head']: 
-  msgprint("Please Enter Main Account Head")
-  raise Exception
-cum_sum_main_acc_head = openg_main_acc_head = get_opening_balance(filter_values['main_acc_head'], filter_values['fiscal_year'], as_on_date, ysd, get_opening_balance)
-
-# Get Opening of edu_cess_acc_head
-if not filter_values['edu_cess_acc_head'] :
-  msgprint("Please Enter Edu Cess Account Head")
-  raise Exception
-cum_sum_edu_cess_acc_head = openg_edu_cess_acc_head = get_opening_balance(filter_values['edu_cess_acc_head'], filter_values['fiscal_year'], as_on_date, ysd, get_opening_balance)
-
-# Get Opening of sh_edu_cess_acc_head
-if not filter_values['sh_edu_cess_acc_head'] :
-  msgprint("Please Enter S.H.Edu Cess Account Head")
-  raise Exception
-cum_sum_sh_edu_cess_acc_head = openg_sh_edu_cess_acc_head = get_opening_balance(filter_values['sh_edu_cess_acc_head'], filter_values['fiscal_year'], as_on_date, ysd, get_opening_balance)
-
-out = []
-
-out.append(['Opening Balance of Duty in Credit', '', flt(openg_main_acc_head) + flt(openg_add_acc_head) , flt(openg_edu_cess_acc_head), flt(openg_sh_edu_cess_acc_head),''])
-out += res
-#if from_export == 0:
-#  msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please click on 'Export' to open in a spreadsheet")
-#  raise Exception
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.sql b/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.sql
deleted file mode 100644
index e43917a..0000000
--- a/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.sql
+++ /dev/null
@@ -1,28 +0,0 @@
-SELECT t1.posting_date, t1.name, SUM(CASE WHEN t2.account_head like '%(main_acc_head)s%' THEN t2.tax_amount ELSE 0.00 END), SUM(CASE WHEN t2.account_head like '%(edu_cess_acc_head)s' THEN t2.tax_amount ELSE 0.00 END),  SUM(CASE WHEN t2.account_head like '%(sh_edu_cess_acc_head)s' THEN t2.tax_amount ELSE 0.00 END), '' AS remarks
- FROM `tabDelivery Note` t1, `tabRV Tax Detail` t2
- WHERE t2.parent = t1.name
- AND t2.parenttype = 'Delivery Note'
- AND (t2.account_head LIKE '%(main_acc_head)s%%'
- OR t2.account_head LIKE '%(edu_cess_acc_head)s%%'
- OR t2.account_head LIKE '%(sh_edu_cess_acc_head)s%%')
- AND t1.`posting_date` >= '%(posting_date)s'
- AND t1.`posting_date` <= '%(posting_date1)s'
- AND t1.docstatus =1
- GROUP BY t1.`name`
-
-UNION
-
-SELECT t1.posting_date, t1.name, SUM(CASE WHEN t2.account like '%(main_acc_head)s' THEN t2.credit ELSE 0.00 END), SUM(CASE WHEN t2.account like '%(edu_cess_acc_head)s' THEN t2.credit ELSE 0.00 END),  SUM(CASE WHEN t2.account like '%(sh_edu_cess_acc_head)s' THEN t2.credit ELSE 0.00 END), t1.`remark`
- FROM `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
- WHERE (t2.credit is not NULL OR t2.credit != '')
- AND t2.credit > 0
- AND t2.parent = t1.name
- AND (t2.account LIKE '%(main_acc_head)s%'
- OR t2.account LIKE '%(edu_cess_acc_head)s%'
- OR t2.account LIKE '%(sh_edu_cess_acc_head)s%') 
- AND t1.`posting_date` >= '%(posting_date)s'
- AND t1.`posting_date` <= '%(posting_date1)s'
- AND t1.docstatus =1
- GROUP BY t2.`parent`
-
-ORDER BY `posting_date`,`name`
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt b/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt
deleted file mode 100644
index 0748ba2..0000000
--- a/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, progressive_total_excise_duty
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-11-01 10:56:14',
-		'docstatus': 0,
-		'modified': '2010-10-29 16:44:43',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Journal Voucher\x01ID,Journal Voucher\x01Owner,Journal Voucher\x01Voucher Type,Journal Voucher\x01Voucher Date,Journal Voucher\x01Posting Date,Journal Voucher\x01Is Opening,Journal Voucher\x01Fiscal Year,Journal Voucher\x01Company,Journal Voucher\x01Cheque No,Journal Voucher\x01Clearance Date,Journal Voucher\x01TDS Applicable,Journal Voucher\x01TDS Category,Journal Voucher Detail\x01Account,Journal Voucher Detail\x01Cost Center,Journal Voucher Detail\x01Against Payable,Journal Voucher Detail\x01Against Receivable',
-		'criteria_name': 'Progressive Total Excise Duty',
-		'doc_type': 'Journal Voucher Detail',
-		'doctype': 'Search Criteria',
-		'filters': "{'Journal Voucher\x01Saved':1,'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Fiscal Year':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'page_len': 50,
-		'parent_doc_type': 'Journal Voucher',
-		'sort_by': 'ID',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, progressive_total_excise_duty
-	{
-		'doctype': 'Search Criteria',
-		'name': 'progressive_total_excise_duty'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/purchase_register/purchase_register.py b/erpnext/accounts/search_criteria/purchase_register/purchase_register.py
index eb61af4..0601a62 100644
--- a/erpnext/accounts/search_criteria/purchase_register/purchase_register.py
+++ b/erpnext/accounts/search_criteria/purchase_register/purchase_register.py
@@ -16,8 +16,8 @@
 
 # add expense head columns
 expense_acc = [c[0] for c in sql("""select distinct expense_head 
-									from `tabPV Detail` 
-									where parenttype='Payable Voucher' 
+									from `tabPurchase Invoice Item` 
+									where parenttype='Purchase Invoice' 
 									and docstatus=1 
 									order by expense_head asc""")]
 									
@@ -31,8 +31,8 @@
 
 # Add tax head columns
 tax_acc = [c[0] for c in sql("""select distinct account_head 
-							    from `tabPurchase Tax Detail` 
-							    where parenttype = 'Payable Voucher' 
+							    from `tabPurchase Taxes and Charges` 
+							    where parenttype = 'Purchase Invoice' 
 							    and add_deduct_tax = 'Add' 
 							    and category in ('For Total', 'For Both')
 							    and docstatus=1
@@ -56,8 +56,8 @@
 for r in res:
 	#Get amounts for expense heads
 	exp_head_amount = sql("""select expense_head, sum(amount) 
-							 from `tabPV Detail` 
-							 where parent = %s and parenttype='Payable Voucher'
+							 from `tabPurchase Invoice Item` 
+							 where parent = %s and parenttype='Purchase Invoice'
 							 group by expense_head""", (r[col_idx['ID']],))
   
 	#convert the result to dictionary for easy retrieval  
@@ -84,9 +84,9 @@
 
 	#Get tax for account heads
 	acc_head_tax = sql("""select account_head, tax_amount 
-						  from `tabPurchase Tax Detail` 
+						  from `tabPurchase Taxes and Charges` 
 						  where parent = '%s' 
-						  and parenttype = 'Payable Voucher' 
+						  and parenttype = 'Purchase Invoice' 
 						  and add_deduct_tax = 'Add' 
 						  and category in ('For Total', 'For Both')""" %(r[col_idx['ID']],))
 
diff --git a/erpnext/accounts/search_criteria/purchase_register/purchase_register.txt b/erpnext/accounts/search_criteria/purchase_register/purchase_register.txt
index 4ae2751..cbc5c41 100644
--- a/erpnext/accounts/search_criteria/purchase_register/purchase_register.txt
+++ b/erpnext/accounts/search_criteria/purchase_register/purchase_register.txt
@@ -3,29 +3,29 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-15 08:39:24',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2011-06-06 14:37:00',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_cond': "`tabPayable Voucher`.is_opening != 'Yes'\n`tabPayable Voucher`.name not like 'OP/%'",
-		'columns': 'Payable Voucher\x01ID,Payable Voucher\x01Voucher Date,Payable Voucher\x01Posting Date,Payable Voucher\x01Credit To,Payable Voucher\x01Expense Head',
-		'criteria_name': 'Purchase Register',
-		'doc_type': 'Payable Voucher',
+		'add_cond': u"`tabPurchase Invoice`.is_opening != 'Yes'\n`tabPurchase Invoice`.name not like 'OP/%'",
+		'columns': u'Purchase Invoice\x01ID,Purchase Invoice\x01Voucher Date,Purchase Invoice\x01Posting Date,Purchase Invoice\x01Credit To,Purchase Invoice\x01Expense Head',
+		'criteria_name': u'Purchase Register',
+		'doc_type': u'Purchase Invoice',
 		'doctype': 'Search Criteria',
-		'filters': "{'Payable Voucher\x01Submitted':1}",
-		'module': 'Accounts',
+		'filters': u"{'Purchase Invoice\x01Submitted':1}",
+		'module': u'Accounts',
 		'name': '__common__',
-		'standard': 'Yes'
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, purchase_register
 	{
 		'doctype': 'Search Criteria',
-		'name': 'purchase_register'
+		'name': u'purchase_register'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/sales_register/sales_register.js b/erpnext/accounts/search_criteria/sales_register/sales_register.js
index 669d76d..5a09713 100644
--- a/erpnext/accounts/search_criteria/sales_register/sales_register.js
+++ b/erpnext/accounts/search_criteria/sales_register/sales_register.js
@@ -16,17 +16,17 @@
 
 report.customize_filters = function() {
  
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Company'].df['report_default'] = sys_defaults.company;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'ID'].df.filter_hide = 1;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Owner'].df.filter_hide = 1;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Saved'].df.filter_hide = 1;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Submitted'].df.filter_hide = 1;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Cancelled'].df.filter_hide = 1;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Grand Total >='].df.filter_hide = 1;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Grand Total <='].df.filter_hide = 1;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Fiscal Year'].df.filter_hide = 1;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Sales Partner'].df.filter_hide = 1;
-  this.filter_fields_dict['Receivable Voucher'+FILTER_SEP +'Is Opening'].df.filter_hide = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Company'].df['report_default'] = sys_defaults.company;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'ID'].df.filter_hide = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Owner'].df.filter_hide = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Saved'].df.filter_hide = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Submitted'].df.filter_hide = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Cancelled'].df.filter_hide = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Grand Total >='].df.filter_hide = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Grand Total <='].df.filter_hide = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Fiscal Year'].df.filter_hide = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Sales Partner'].df.filter_hide = 1;
+  this.filter_fields_dict['Sales Invoice'+FILTER_SEP +'Is Opening'].df.filter_hide = 1;
 }
diff --git a/erpnext/accounts/search_criteria/sales_register/sales_register.py b/erpnext/accounts/search_criteria/sales_register/sales_register.py
index 8bb6903..9fdfb00 100644
--- a/erpnext/accounts/search_criteria/sales_register/sales_register.py
+++ b/erpnext/accounts/search_criteria/sales_register/sales_register.py
@@ -17,14 +17,14 @@
 # add additional columns
 
 cl = [c[0] for c in sql("""select distinct account_head 
-						   from `tabRV Tax Detail` 
-						   where parenttype='Receivable Voucher' 
+						   from `tabSales Taxes and Charges` 
+						   where parenttype='Sales Invoice' 
 						   and docstatus=1 
 						   order by account_head asc""")]
 
 income_acc = [c[0] for c in sql("""select distinct income_account 
-								   from `tabRV Detail` 
-								   where parenttype='Receivable Voucher' 
+								   from `tabSales Invoice Item` 
+								   where parenttype='Sales Invoice' 
 								   and docstatus=1 
 								   order by income_account asc""")]
 
@@ -53,9 +53,9 @@
 
 	#Get amounts for income account
 	income_acc_list = sql("""select income_account, sum(amount) 
-						     from `tabRV Detail` 
+						     from `tabSales Invoice Item` 
 						     where parent = %s 
-						     and parenttype='Receivable Voucher'
+						     and parenttype='Sales Invoice'
 						     group by income_account""", (r[col_idx['ID']],))
 
 	#convert the result to dictionary for easy retrieval  
@@ -78,9 +78,9 @@
 
 	#Get tax for account heads
 	acc_head_tax = sql("""select account_head, tax_amount 
-						  from `tabRV Tax Detail` 
+						  from `tabSales Taxes and Charges` 
 						  where parent = '%s' 
-						  and parenttype = 'Receivable Voucher'""" %(r[col_idx['ID']],))
+						  and parenttype = 'Sales Invoice'""" %(r[col_idx['ID']],))
 
 	#Convert the result to dictionary for easy retrieval
 	acc_head_tax_dict = {}
diff --git a/erpnext/accounts/search_criteria/sales_register/sales_register.txt b/erpnext/accounts/search_criteria/sales_register/sales_register.txt
index c780fbd..e68cd57 100644
--- a/erpnext/accounts/search_criteria/sales_register/sales_register.txt
+++ b/erpnext/accounts/search_criteria/sales_register/sales_register.txt
@@ -3,35 +3,35 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-15 08:39:24',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-08-10 10:48:01',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': "`tabAccount`.`parent_account` AS 'Parent Account'\n`tabCustomer`.`territory` AS 'Territory'\n`tabCustomer`.`customer_details` AS 'Customer Details'",
-		'add_cond': "ifnull(`tabReceivable Voucher`.`is_opening`, 'No') = 'No'\n`tabAccount`.name =`tabReceivable Voucher`.debit_to\n`tabCustomer`.`name` = `tabAccount`.`master_name`",
-		'add_tab': '`tabAccount`\n`tabCustomer`',
-		'columns': 'Receivable Voucher\x01ID,Receivable Voucher\x01Posting Date,Receivable Voucher\x01Debit To',
-		'criteria_name': 'Sales Register',
-		'dis_filters': 'fiscal_year',
-		'doc_type': 'Receivable Voucher',
+		'add_col': u"`tabAccount`.`parent_account` AS 'Parent Account'\n`tabCustomer`.`territory` AS 'Territory'\n`tabCustomer`.`customer_details` AS 'Customer Details'",
+		'add_cond': u"ifnull(`tabSales Invoice`.`is_opening`, 'No') = 'No'\n`tabAccount`.name =`tabSales Invoice`.debit_to\n`tabCustomer`.`name` = `tabAccount`.`master_name`",
+		'add_tab': u'`tabAccount`\n`tabCustomer`',
+		'columns': u'Sales Invoice\x01ID,Sales Invoice\x01Posting Date,Sales Invoice\x01Debit To',
+		'criteria_name': u'Sales Register',
+		'dis_filters': u'fiscal_year',
+		'doc_type': u'Sales Invoice',
 		'doctype': 'Search Criteria',
-		'filters': "{'Receivable Voucher\x01Submitted':1,'Receivable Voucher\x01Is Opening':''}",
-		'module': 'Accounts',
+		'filters': u"{'Sales Invoice\x01Submitted':1,'Sales Invoice\x01Is Opening':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`Parent Account`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`Parent Account`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, sales_register
 	{
 		'doctype': 'Search Criteria',
-		'name': 'sales_register'
+		'name': u'sales_register'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/__init__.py b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.js b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.js
deleted file mode 100644
index 7c4c331..0000000
--- a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();
-  this.add_filter({fieldname:'main_acc_head', label:'Main Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'edu_cess_acc_head', label:'Edu Cess Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'sh_edu_cess_acc_head', label:'S.H.Edu Cess Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  
-  // un-hide fields 
-  //this.add_filter({fieldname:'company', label:'Company', fieldtype:'Link', options:'Company', ignore : 1, parent:'Journal Voucher Detail'});
-  //this.add_filter({fieldname:'fiscal_year', label:'Fiscal Year', fieldtype:'Link', options:'Fiscal Year', ignore : 1, parent:'Journal Voucher Detail'});
-  //this.add_filter({fieldname:'posting_date', label:'Posting Date', fieldtype:'Date', ignore : 1, parent:'Journal Voucher Detail'});
-  
-  
-
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Company'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Fiscal Year'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
-  
-  // set defaults
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
-
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-
-  //this.large_report = 1;
-}
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.py b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.py
deleted file mode 100644
index 78b992c..0000000
--- a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.py
+++ /dev/null
@@ -1,135 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Add columns
-# -----------
-row_list = [['Date', 'Date', '150px', '']
-           ,['ARI/INVOICE/Other Approved document/Bill of entry No.', 'Date', '150px', '']
-           ,['Date', 'Date', '150px', '']
-           ,['Service Tax', 'Currency', '150px', '']
-           ,['Education Cess', 'Currency', '150px', '']
-           ,['S.H.Education Cess', 'Currency', '150px', '']
-           ,[' Service Tax ', 'Currency', '150px', '']
-           ,[' Education Cess ', 'Currency', '150px', '']
-           ,[' S.H.Education Cess ', 'Currency', '150px', '']
-           ,['ARI/INVOICE/ Other Approved document/Bill of entry No.', 'Data', '100px', '']
-           ,['Date', 'Date', '150px', '']
-           ,[' Service Tax', 'Currency', '150px', '']
-           ,[' Education Cess', 'Currency', '150px', '']
-           ,[' S.H.Education Cess', 'Currency', '150px', '']
-           ,['Service Tax ', 'Currency', '150px', '']
-           ,['Education Cess ', 'Currency', '150px', '']
-           ,['S.H.Education Cess ', 'Currency', '150px', '']
-           ,['Remarks', 'Data', '150px', '']
-]
-
- 
-for r in row_list:
-  colnames.append(r[0])
-  coltypes.append(r[1])
-  colwidths.append(r[2])
-  coloptions.append(r[3])
-  col_idx[r[0]] = len(colnames)-1
-
-# Get Object Of GL Control
-#import webnotes
-#import webnotes.model.code
-#from webnotes.model.code import get_obj
-#glc = webnotes.model.code.get_obj('GL Control')
-
-# Get Year Start Date
-ysd = sql("select year_start_date from `tabFiscal Year` where name='%s'" % filter_values['fiscal_year'])
-ysd = ysd and ysd[0][0] or ''
-
-# get as_on_date for opening
-as_on_date = ''
-if filter_values.get('posting_date'):
-  as_on_date = add_days(filter_values['posting_date'], -1)
-
-# Get Opening Balance
-def get_opening_balance(acc, fy, as_on_date, ysd, get_opening_balance):
-  #import webnotes
-  #import webnotes.model.code
-  #from webnotes.model.code import get_obj
-  #glc = webnotes.model.code.get_obj('GL Control')
-  glc = get_obj('GL Control')
-  acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % acc)
-  return glc.get_as_on_balance(acc, fy, as_on_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
-
-cum_sum_main_acc_head = cum_sum_edu_cess_acc_head = cum_sum_sh_edu_cess_acc_head = 0
-openg_main_acc_head = openg_edu_cess_acc_head = openg_sh_edu_cess_acc_head = 0
-
-# Get Opening of Basic Excise Duty
-if not filter_values['main_acc_head']: 
-  msgprint("Please Enter Main Account Head")
-  raise Exception
-cum_sum_main_acc_head = openg_main_acc_head = get_opening_balance(filter_values['main_acc_head'], filter_values['fiscal_year'], as_on_date, ysd, get_opening_balance)
-
-# Get Opening of edu_cess_acc_head
-if not filter_values['edu_cess_acc_head'] :
-  msgprint("Please Enter Edu Cess Account Head")
-  raise Exception
-cum_sum_edu_cess_acc_head = openg_edu_cess_acc_head = get_opening_balance(filter_values['edu_cess_acc_head'], filter_values['fiscal_year'], as_on_date, ysd, get_opening_balance)
-
-# Get Opening of sh_edu_cess_acc_head
-if not filter_values['sh_edu_cess_acc_head'] :
-  msgprint("Please Enter S.H.Edu Cess Account Head")
-  raise Exception
-cum_sum_sh_edu_cess_acc_head = openg_sh_edu_cess_acc_head = get_opening_balance(filter_values['sh_edu_cess_acc_head'], filter_values['fiscal_year'], as_on_date, ysd, get_opening_balance)
-
-msgprint("Column No "+ cstr(len(col_idx)))
-msgprint(openg_sh_edu_cess_acc_head)
-msgprint(openg_main_acc_head)
-for r in res:
-  msgprint(r)
-  r[col_idx['Service Tax']] = flt(r[col_idx['Education Cess']])
-  r[col_idx['Education Cess']] = flt(r[col_idx['S.H.Education Cess']])
-  r[col_idx['S.H.Education Cess']] = flt(r[col_idx[' Service Tax ']])
-  
-  remarks = r[col_idx[' Education Cess ']]
- 
-  cum_sum_main_acc_head = flt(cum_sum_main_acc_head) + flt(r[col_idx['Service Tax']])
-  r[col_idx[' Service Tax ']] = cum_sum_main_acc_head
-
-  cum_sum_edu_cess_acc_head = flt(cum_sum_edu_cess_acc_head) + flt(r[col_idx['Education Cess']])
-  r[col_idx[' Education Cess ']] = cum_sum_edu_cess_acc_head
-
-  cum_sum_sh_edu_cess_acc_head = flt(cum_sum_sh_edu_cess_acc_head) + flt(r[col_idx['S.H.Education Cess']])
-  r.append(cum_sum_sh_edu_cess_acc_head)
-
-  r.append('') 
-  r.append('')
-
-  r.append(0) 
-  r.append(0)
-  r.append(0) 
-
-  r.append(cum_sum_main_acc_head)
-  r.append(cum_sum_edu_cess_acc_head) 
-  r.append(cum_sum_sh_edu_cess_acc_head)
-  
-  r.append(remarks)
- 
-#msgprint(len(res))
-#msgprint(query)
-out = []
-
-msgprint(len(['Opening Balance of Duty in Credit', '', '', '', '', '', '', '', '', '', '', '', '', '',  flt(openg_main_acc_head) , flt(openg_edu_cess_acc_head), flt(openg_sh_edu_cess_acc_head)]))
-out.append(['Opening Balance of Duty in Credit', '', '', '', '', '', '', '', '', '', '', '', '', '', flt(openg_main_acc_head) , flt(openg_edu_cess_acc_head), flt(openg_sh_edu_cess_acc_head)])
-out += res
-#if from_export == 0:
-#  msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please click on 'Export' to open in a spreadsheet")
-#  raise Exception
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.sql b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.sql
deleted file mode 100644
index 0ecbcbb..0000000
--- a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.sql
+++ /dev/null
@@ -1,13 +0,0 @@
-SELECT t1.posting_date, t1.bill_no, t1.bill_date, t1.name, SUM(CASE WHEN t2.account like '%(main_acc_head)s%' THEN t2.debit ELSE 0.00 END), SUM(CASE WHEN t2.account like '%(edu_cess_acc_head)s' THEN t2.debit ELSE 0.00 END),  SUM(CASE WHEN t2.account like '%(sh_edu_cess_acc_head)s' THEN t2.debit ELSE 0.00 END), t1.`remark`
- FROM `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
- WHERE (t2.debit is not NULL OR t2.debit != '')
- AND t2.debit > 0
- AND t2.parent = t1.name
- AND (t2.account LIKE '%(main_acc_head)s%%'
- OR t2.account LIKE '%(edu_cess_acc_head)s%%'
- OR t2.account LIKE '%(sh_edu_cess_acc_head)s%%') 
- AND t1.`posting_date` >= '%(posting_date)s'
- AND t1.`posting_date` <= '%(posting_date1)s'
- AND t1.docstatus =1
- GROUP BY t2.`parent`
- ORDER BY t1.`posting_date`,t1.`name`
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt
deleted file mode 100644
index f4b9fed..0000000
--- a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, service_tax_credit_account_-_inputs
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-11-01 10:56:14',
-		'docstatus': 0,
-		'modified': '2010-10-29 16:42:59',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Journal Voucher\x01ID,Journal Voucher\x01Owner,Journal Voucher\x01Voucher Type,Journal Voucher\x01Voucher Date,Journal Voucher\x01Posting Date,Journal Voucher\x01Is Opening,Journal Voucher\x01Fiscal Year,Journal Voucher\x01Company,Journal Voucher\x01Cheque No,Journal Voucher\x01Clearance Date,Journal Voucher\x01TDS Applicable,Journal Voucher\x01TDS Category,Journal Voucher Detail\x01Account,Journal Voucher Detail\x01Cost Center,Journal Voucher Detail\x01Against Payable,Journal Voucher Detail\x01Against Receivable',
-		'criteria_name': 'Service Tax Credit Account - Inputs',
-		'doc_type': 'Journal Voucher Detail',
-		'doctype': 'Search Criteria',
-		'filters': "{'Journal Voucher\x01Saved':1,'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Fiscal Year':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'page_len': 50,
-		'parent_doc_type': 'Journal Voucher',
-		'sort_by': 'ID',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, service_tax_credit_account_-_inputs
-	{
-		'doctype': 'Search Criteria',
-		'name': 'service_tax_credit_account_-_inputs'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/tds_return/tds_return.txt b/erpnext/accounts/search_criteria/tds_return/tds_return.txt
index 5c200e5..743488d 100644
--- a/erpnext/accounts/search_criteria/tds_return/tds_return.txt
+++ b/erpnext/accounts/search_criteria/tds_return/tds_return.txt
@@ -3,29 +3,29 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-06-30 14:38:18',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': 'TDS Return',
-		'dis_filters': 'fiscal_year',
-		'doc_type': 'TDS Payment Detail',
+		'criteria_name': u'TDS Return',
+		'dis_filters': u'fiscal_year',
+		'doc_type': u'TDS Payment Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'TDS Payment\x01Submitted':1}",
-		'module': 'Accounts',
+		'filters': u"{'TDS Payment\x01Submitted':1}",
+		'module': u'Accounts',
 		'name': '__common__',
-		'parent_doc_type': 'TDS Payment',
-		'standard': 'Yes'
+		'parent_doc_type': u'TDS Payment',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, tds_return
 	{
 		'doctype': 'Search Criteria',
-		'name': 'tds_return'
+		'name': u'tds_return'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/__init__.py b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js
deleted file mode 100644
index 72fd4b5..0000000
--- a/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();
-
-  this.add_filter({fieldname:'transaction_date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'Account'});
-
-  this.filter_fields_dict['Account'+FILTER_SEP +'Company'].df.filter_hide = 0;
-  this.filter_fields_dict['Account'+FILTER_SEP +'From Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Account'+FILTER_SEP +'To Date'].df.filter_hide = 0;
-
-  this.filter_fields_dict['Account'+FILTER_SEP +'From Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Account'+FILTER_SEP +'To Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Account'+FILTER_SEP +'Company'].df.in_first_page = 1;
-
-  this.filter_fields_dict['Account'+FILTER_SEP +'From Date'].df['report_default']=sys_defaults.year_start_date;
-  this.filter_fields_dict['Account'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-  this.filter_fields_dict['Account'+FILTER_SEP+'Company'].df['report_default']=sys_defaults.company;
-
-  this.dt.set_no_limit(1);
-
-  report.aftertableprint = function(t) {
-    $yt(t,'*',1,{whiteSpace:'pre'});
-  }
-}
-
-this.mytabs.items['Select Columns'].hide();
-this.mytabs.items['More Filters'].hide();
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py
deleted file mode 100644
index c3f819f..0000000
--- a/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py
+++ /dev/null
@@ -1,60 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# columns
-colnames[0] = 'Account'
-col_idx['Account'] = 0
-coltypes[0] = 'Link'
-coloptions[0] =  'Account'
-colwidths[0] = '200px'
-
-cl = [['Debit', 'Data', '100px'],['Credit', 'Data', '100px']]
-for c in cl:
-  colnames.append(c[0])
-  coltypes.append(c[1])
-  colwidths.append(c[2])
-  coloptions.append('')
-  col_idx[c[0]] = len(colnames)-1
-  
-
-# transaction date
-if not filter_values.get('transaction_date') or not filter_values.get('transaction_date1'):
-  msgprint("Please enter From Date and To Date")
-  raise Exception
-else:
-  from_date = add_days(filter_values['transaction_date'], -1)
-  to_date = filter_values['transaction_date1']
-
-# if output is more than 300 lines then it will ask to export
-if len(res) > 300  and from_export == 0:
-  msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please click on 'Export' to open in a spreadsheet")
-  raise Exception
-
-total_debit, total_credit = 0,0
-
-for r in res:
-  amount = sql("select sum(debit), sum(credit) from `tabGL Entry` WHERE posting_date >= '%s' AND posting_date <= '%s' and ifnull(is_opening,'No') = 'No' AND account = '%s' AND ifnull(is_cancelled, 'No') = 'No'" % (from_date,to_date, r[col_idx['Account']].strip()))
-  total_debit = flt(total_debit) + flt(amount[0][0])
-  total_credit = flt(total_credit) + flt(amount[0][1])
-
-  r.append(flt(amount[0][0]))
-  r.append(flt(amount[0][1]))
-
-t_row = ['' for i in range(len(colnames))]
-t_row[col_idx['Account']] = 'Total'
-t_row[col_idx['Debit']] = total_debit
-t_row[col_idx['Credit']] = total_credit
-res.append(t_row)
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt
deleted file mode 100644
index aa3e2ea..0000000
--- a/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-# Search Criteria, total_amout_collection_for_a_period_-_customerwise
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-06-09 18:09:34',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': '(master_type = "Customer" or parent_account like "Sundry Debtors%" or parent_account like "Accounts Receivable%")',
-		'columns': 'Account\x01ID',
-		'criteria_name': 'Total amout collection for a period - Customerwise',
-		'dis_filters': 'transaction_date',
-		'disabled': 0,
-		'doc_type': 'Account',
-		'doctype': 'Search Criteria',
-		'filters': "{'Account\x01Saved':1,'Account\x01Group or Ledger':'','Account\x01Is PL Account':'','Account\x01Account Type':'','Account\x01From Date\x01lower':'2010-04-01','Account\x01To Date\x01upper':'2010-06-09'}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabAccount`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, total_amout_collection_for_a_period_-_customerwise
-	{
-		'doctype': 'Search Criteria',
-		'name': 'total_amout_collection_for_a_period_-_customerwise'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/analysis/search_criteria/trend_analyzer/__init__.py b/erpnext/accounts/search_criteria/trend_analyzer/__init__.py
similarity index 100%
rename from erpnext/analysis/search_criteria/trend_analyzer/__init__.py
rename to erpnext/accounts/search_criteria/trend_analyzer/__init__.py
diff --git a/erpnext/accounts/search_criteria/trend_analyzer/trend_analyzer.js b/erpnext/accounts/search_criteria/trend_analyzer/trend_analyzer.js
new file mode 100644
index 0000000..dd3e750
--- /dev/null
+++ b/erpnext/accounts/search_criteria/trend_analyzer/trend_analyzer.js
@@ -0,0 +1,148 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+report.customize_filters = function() {
+  this.hide_all_filters();
+
+  this.add_filter({fieldname:'transaction', label:'Transaction', fieldtype:'Select', options:'Quotation'+NEWLINE+'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Sales Invoice'+NEWLINE+'Purchase Order'+NEWLINE+'Purchase Receipt'+NEWLINE+'Purchase Invoice',report_default:'Delivery Note',ignore : 1,parent:'Profile',in_first_page : 1,single_select : 1});
+
+  this.add_filter({fieldname:'period', label:'Period', fieldtype:'Select', options:'Monthly'+NEWLINE+'Quarterly'+NEWLINE+'Half Yearly'+NEWLINE+'Annual',report_default:'Quarterly',ignore : 1, parent:'Profile',in_first_page:1,single_select:1});
+
+  this.add_filter({fieldname:'based_on', label:'Based On', fieldtype:'Select', options:'Item'+NEWLINE+'Item Group'+NEWLINE+'Customer'+NEWLINE+'Customer Group'+NEWLINE+'Territory'+NEWLINE+'Supplier'+NEWLINE+'Supplier Type'+NEWLINE+'Project', ignore : 1, parent:'Profile', report_default:'Item', in_first_page : 1,single_select:1});
+
+  this.add_filter({fieldname:'group_by', label:'Group By', fieldtype:'Select', options:NEWLINE+'Item'+NEWLINE+'Customer'+NEWLINE+'Supplier', ignore : 1, parent:'Profile',single_select:1});
+
+  this.add_filter({fieldname:'order_type', label:'Order Type', fieldtype:'Select', options:NEWLINE+'Sales'+NEWLINE+'Maintenance',ignore : 1, parent:'Profile',single_select:1});
+
+  this.add_filter({fieldname:'company', label:'Company', fieldtype:'Link', options:'Company', report_default:sys_defaults.company, ignore : 1, parent:'Profile'});
+
+  this.add_filter({fieldname:'fiscal_year', label:'Fiscal Year', fieldtype:'Link', options:'Fiscal Year', report_default:sys_defaults.fiscal_year, ignore : 1, parent:'Profile', in_first_page:1});
+
+
+  // Add Filters
+  this.add_filter({fieldname:'item', label:'Item', fieldtype:'Link', options:'Item', ignore : 1, parent:'Profile'});
+  this.add_filter({fieldname:'item_group', label:'Item Group', fieldtype:'Link', options:'Item Group', ignore : 1, parent:'Profile'});
+  this.add_filter({fieldname:'customer', label:'Customer', fieldtype:'Link', options:'Customer', ignore : 1, parent:'Profile'});
+  this.add_filter({fieldname:'customer_group', label:'Customer Group', fieldtype:'Link', options:'Customer Group', ignore : 1, parent:'Profile'});
+  this.add_filter({fieldname:'territory', label:'Territory', fieldtype:'Link', options:'Territory', ignore : 1, parent:'Profile'});
+  this.add_filter({fieldname:'supplier', label:'Supplier', fieldtype:'Link', options:'Supplier', ignore : 1, parent:'Profile'});
+  this.add_filter({fieldname:'supplier_type', label:'Supplier Type', fieldtype:'Link', options:'Supplier Type', ignore : 1, parent:'Profile'});
+  this.add_filter({fieldname:'project', label:'Project', fieldtype:'Link', options:'Project', ignore : 1, parent:'Profile'});
+}
+
+
+this.mytabs.tabs['Select Columns'].hide();
+
+report.aftertableprint = function(t) {
+   $yt(t,'*',1,{whiteSpace:'pre'});
+}
+
+var validate_values = function(trans,based_on,order_type) {
+  if(!fiscal_year){
+    msgprint("Please select Fiscal Year");
+    return 0;
+  }
+  if((in_list(['Quotation','Sales Order','Delivery Note','Sales Invoice'],trans) && in_list(['Supplier','Supplier Type'],based_on)) || (in_list(['Purchase Order','Purchase Receipt','Purchase Invoice'],trans) && in_list(['Customer','Customer Group','Territory'],based_on))){
+    msgprint("Sorry! You cannot fetch "+trans+" trend based on "+based_on);
+    return 0;
+  }
+  if(in_list(['Purchase Order','Purchase Receipt','Purchase Invoice'],trans) && order_type){
+    msgprint("Please deselect Order Type for "+trans);
+    return 0;
+  }
+  return 1;
+}
+
+
+report.get_query = function() {
+  trans = this.get_filter('Profile', 'Transaction').get_value();
+  order_type = this.get_filter('Profile', 'Order Type').get_value();
+  based_on = this.get_filter('Profile', 'Based On').get_value();
+  company = this.get_filter('Profile', 'Company').get_value();
+  fiscal_year = this.get_filter('Profile', 'Fiscal Year').get_value();
+
+  if(validate_values(trans,based_on,order_type)){
+    col = '';
+    add_cond = '';
+    add_col = '';
+    add_tables = '';
+    sp_cond = '';
+    if(trans == 'Sales Invoice') trans = 'Sales Invoice';
+    else if(trans == 'Purchase Invoice') trans = 'Purchase Invoice';
+
+    trans_det = trans+' Detail'
+
+    if(trans == 'Sales Invoice') trans_det = 'Sales Invoice Item';
+    else if(trans == 'Purchase Invoice') trans_det = 'Purchase Invoice Item';
+    else if(trans == 'Purchase Order') trans_det = 'Purchase Order Item';
+
+    if(order_type != '') add_code += ' AND t1.order_type = '+order_type;
+
+    switch(based_on){
+      case 'Item'           :     item = this.get_filter('Profile', 'Item').get_value();
+                                  col = 'DISTINCT t2.item_code, t3.item_name';
+                                  add_tables = ',tabItem t3';
+                                  add_cond += ' AND t2.item_code = t3.name';
+                                  if(item) add_cond += ' AND t2.item_code = "'+item+'"';
+                                  break;
+      case 'Customer'       :     cust = this.get_filter('Profile', 'Customer').get_value();
+                                  col = 'DISTINCT t1.customer, t3.territory';
+                                  add_tables = ',tabCustomer t3';
+                                  add_cond += ' AND t1.customer = t3.name';
+                                  if(cust) add_cond += ' AND t1.customer = "'+cust+'"';
+                                  break;
+      case 'Supplier'      :      supp = this.get_filter('Profile', 'Supplier').get_value();
+                                  col = 'DISTINCT t1.supplier, t3.supplier_type';
+                                  add_tables = ',tabSupplier t3';
+                                  add_cond += ' AND t1.supplier = t3.name';
+                                  if(supp) add_cond += ' AND t1.supplier = "'+supp+'"';
+                                  break;
+      case 'Supplier Type'  :     supp_type = this.get_filter('Profile', 'Supplier Type').get_value();
+                                  col = 'DISTINCT t3.supplier_type';
+                                  add_tables = ',tabSupplier t3';
+                                  add_cond += ' AND t1.supplier = t3.name';
+                                  if(supp_type) add_cond += ' AND t1.supplier_type = "'+supp_type+'"';
+                                  break;
+      case 'Project'        :     pro = this.get_filter('Profile', 'Project').get_value();
+      							  if (inList(['Purchase Order', 'Purchase Receipt', 'Purchase Invoice'], trans)) {
+									  col = 'DISTINCT t2.project_name';
+    	                              if(pro) add_cond += ' AND t2.project_name = "'+pro+'"';
+    	                          } else {
+	    	                          col = 'DISTINCT t1.project_name';
+    	                              if(pro) add_cond += ' AND t1.project_name = "'+pro+'"';
+    	                          }
+                                  break;
+      case 'Item Group'     :     ig = this.get_filter('Profile', 'Item Group').get_value();
+                                  if(ig) sp_cond += ' AND parent.name = "'+ig+'"';
+                                  break;
+      case 'Customer Group' :     cg = this.get_filter('Profile', 'Customer Group').get_value();
+                                  if(cg) sp_cond += ' AND parent.name = "'+cg+'"';
+                                  break;
+      case 'Territory'      :     ter = this.get_filter('Profile', 'Territory').get_value();
+                                  if(ter) sp_cond += ' AND parent.name = "'+ter+'"';
+                                  break;
+
+    }
+
+    
+    if(based_on == 'Item' || based_on == 'Customer' || based_on == 'Supplier' || based_on == 'Supplier Type' || based_on == 'Project')
+      var q ='SELECT '+col+' FROM `tab'+trans+'` t1, `tab'+trans_det+'` t2 '+add_tables+' WHERE t1.fiscal_year = "'+fiscal_year+'" and t1.company = "'+company+'" and t2.parent = t1.name '+add_cond;
+    else
+      var q = 'SELECT CONCAT(REPEAT("     ", COUNT(parent.name) - 1), node.name) AS "Name" FROM `tab'+based_on+'` node,`tab'+based_on+'` parent WHERE node.lft BETWEEN parent.lft and parent.rgt and node.docstatus !=2 '+sp_cond+' GROUP BY node.name ORDER BY node.lft';
+   
+    return q;
+  }
+}
diff --git a/erpnext/accounts/search_criteria/trend_analyzer/trend_analyzer.py b/erpnext/accounts/search_criteria/trend_analyzer/trend_analyzer.py
new file mode 100644
index 0000000..278cfd6
--- /dev/null
+++ b/erpnext/accounts/search_criteria/trend_analyzer/trend_analyzer.py
@@ -0,0 +1,182 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# ********************************************* INITIALIZATION *******************************************
+out = []
+
+# Filter Values
+# =============================================
+based_on = filter_values.get('based_on')
+group_by = filter_values.get('group_by')
+trans = filter_values.get('transaction')
+period = filter_values.get('period')
+order_type = filter_values.get('order_type')
+company = filter_values.get('company')
+fiscal_year = filter_values.get('fiscal_year')
+item = filter_values.get('item')
+item_group = filter_values.get('item_group')
+customer = filter_values.get('customer')
+customer_group = filter_values.get('customer_group')
+territory = filter_values.get('territory')
+supplier = filter_values.get('supplier')
+supplier_type = filter_values.get('supplier_type')
+project = filter_values.get('project')
+
+
+# ********************************************* SET DEFAULTS **************************************************
+# Details Table
+# --------------
+if trans == 'Sales Invoice': trans = 'Sales Invoice'
+elif trans == 'Purchase Invoice': trans = 'Purchase Invoice'
+
+trans_det = trans+' Detail'
+
+if trans == 'Sales Invoice': trans_det = 'Sales Invoice Item'
+elif trans == 'Purchase Invoice': trans_det = 'Purchase Invoice Item'
+elif trans == 'Purchase Order': trans_det = 'Purchase Order Item'
+
+col_names, query_val = get_obj('Trend Analyzer Control').get_single_year_query_value(fiscal_year, period, trans, trans_det)
+query_val += 'SUM(t2.qty), SUM(t2.amount)'
+
+col_names.append('Total (Qty)')
+col_names.append('Total (Amt)')
+
+
+# ********************************************* VALIDATIONS ***************************************************
+if (based_on in ['Customer','Customer Group','Territory'] and group_by == 'Supplier') or (based_on in ['Supplier','Supplier Type'] and group_by == 'Customer'):
+	msgprint("Sorry! You cannot group Trend Analyzer based on %s by %s" % (based_on,group_by))
+	raise Exception
+
+if based_on == group_by:
+	msgprint("Based On and Group By value cannot be same for Trend Analyzer")
+	raise Exception
+
+
+# ********************************************** ADD COLUMNS **********************************************
+cols = [[based_on, 'Data', '300px', '']]
+cr = 1
+if based_on == 'Item':
+	cols.append(['Item Name','Data','200px',''])
+	cr = 2
+elif based_on == 'Customer':
+	cols.append(['Territory','Link','150px','Territory'])
+	cr = 2
+elif based_on == 'Supplier':
+	cols.append(['Supplier Type','Link','150px','Supplier Type'])
+	cr = 2
+if group_by:
+	cr += 1
+
+if group_by:
+	cols.append([group_by,'Data','150px',''])
+
+for c in col_names:
+	cols.append([c,'Currency','150px',''])
+
+for c in cols:
+	colnames.append(c[0])
+	coltypes.append(c[1])
+	colwidths.append(c[2])
+	coloptions.append(c[3])
+	col_idx[c[0]] = len(colnames)-1
+
+
+# ******************************************* ADDITIONAL CONDITION ************************************************
+add_cond = ' t2.parent = t1.name AND t1.company = "%s" AND t1.fiscal_year = "%s" and t1.docstatus = 1' % (company, fiscal_year)
+add_tab = ' `tab'+trans+'` t1, `tab'+trans_det+'` t2'
+if order_type: add_cond += ' AND t1.order_type = "%s"' % order_type
+
+
+# Item
+if item or based_on == 'Item':
+	add_cond += ' AND t2.item_code = "%s"' % (based_on != 'Item' and item or '%(value)s')
+
+# Item Group
+if item_group or based_on == 'Item Group':
+	add_tab += ' ,`tabItem` t3, `tabItem Group` t4 '
+	add_cond += ' AND t3.name = t2.item_code AND t3.item_group = t4.name and (t4.name = "%s" or t4.name IN (SELECT t5.name FROM `tabItem Group` t5,`tabItem Group` t6 WHERE t5.lft BETWEEN t6.lft and t6.rgt and t5.docstatus !=2 and t6.name = "%s"))' % (based_on != 'Item Group' and item_group or '%(value)s', based_on != 'Item Group' and item_group or '%(value)s')
+
+# Customer
+if customer or based_on == 'Customer':
+	add_cond += ' AND t1.customer = "%s"' % (based_on != 'Customer' and customer or '%(value)s')
+
+# Customer Group
+if customer_group or based_on == 'Customer Group':
+	add_tab += ' ,`tabCustomer` t7, `tabCustomer Group` t8 '
+	add_cond += ' AND t7.name = t1.customer AND t7.customer_group = t8.name and (t8.name = "%s" or t8.name IN (SELECT t9.name FROM `tabCustomer Group` t9,`tabCustomer Group` t10 WHERE t9.lft BETWEEN t10.lft and t10.rgt and t9.docstatus !=2 and ifnull(t9.is_group,"No") = "No" and t10.name = "%s"))' % (based_on != 'Customer Group'	and customer_group or '%(value)s', based_on != 'Customer Group'	and customer_group or '%(value)s')
+	
+# Territory
+if territory or based_on == 'Territory':
+	add_tab += ' ,`tabTerritory` t11 '
+	add_cond += ' AND t1.territory = t11.name and (t11.name = "%s" or t11.name IN (SELECT t12.name FROM `tabTerritory` t12,`tabTerritory` t13 WHERE t12.lft BETWEEN t13.lft and t13.rgt and t12.docstatus !=2 and ifnull(t12.is_group,"No") = "No" and t13.name = "%s"))' % (based_on != 'Territory' and territory or '%(value)s', based_on != 'Territory' and territory or '%(value)s')
+
+# Supplier
+if supplier or based_on == 'Supplier':
+	add_cond += ' AND t1.supplier = "%s"' % (based_on != 'Supplier' and supplier or '%(value)s')
+	
+# Supplier Type
+if supplier_type or based_on == 'Supplier Type':
+	add_tab += ' ,`tabSupplier` t14, `tabSupplier Type` t15 '
+	add_cond += ' AND t14.name = t1.supplier AND t14.supplier_type = t15.name and t15.name = "%s"' % (based_on != 'Supplier Type' and supplier_type or '%(value)s')
+
+# Project
+if project or based_on == 'Project':
+	if trans in ['Purchase Order', 'Purchase Receipt', 'Purchase Invoice']:
+		add_cond += ' AND t2.project_name = "%s"' % (based_on != 'Project' and project or '%(value)s')
+	else:
+		add_cond += ' AND t1.project_name = "%s"' % (based_on != 'Project' and project or '%(value)s')
+	
+# Column to be seleted for group by condition
+# ==============================================
+sel_col = ''
+if group_by == 'Item':
+	sel_col = 't2.item_code'
+elif group_by == 'Customer':
+	sel_col = 't1.customer'
+elif group_by == 'Supplier':
+	sel_col = 't1.supplier'
+	
+	
+# ********************************************** Result Set ************************************************
+for r in res:
+	main_det = sql("SELECT %s FROM %s WHERE %s" % (query_val, add_tab, add_cond % {'value':cstr(r[col_idx[based_on]]).strip()}))
+	if group_by:
+		for col in range(cr,cr+1): # this would make all first row blank. just for look
+			r.append('')
+	if main_det[0][len(colnames) - cr - 1]:
+		for d in range(len(colnames) - cr):
+			r.append(flt(main_det[0][d]))
+		out.append(r)
+		
+		if group_by:
+			flag = 1
+			# check for root nodes
+			if based_on in ['Item Group','Customer Group','Territory']:
+				is_grp = sql("select is_group from `tab%s` where name = '%s'" % (based_on, cstr(r[col_idx[based_on]]).strip()))
+				is_grp = is_grp and cstr(is_grp[0][0]) or ''
+				if is_grp != 'No':
+					flag = 0
+
+			if flag == 1:	
+				det = [x[0] for x in sql("SELECT DISTINCT %s FROM %s where %s" % (sel_col, add_tab, add_cond % {'value':cstr(r[col_idx[based_on]]).strip()}))]
+
+				for des in range(len(det)):
+					t_row = ['' for i in range(len(colnames))]
+					t_row[col_idx[group_by]] = cstr(det[des])
+					gr_det = sql("SELECT %s FROM %s WHERE %s = '%s' and %s" % (query_val, add_tab, sel_col, cstr(det[des]), add_cond % {'value':cstr(r[col_idx[based_on]]).strip()}))
+					for d in range(len(col_names)):
+						t_row[col_idx[col_names[d]]] = flt(gr_det[0][d])
+					out.append(t_row)
diff --git a/erpnext/accounts/search_criteria/trend_analyzer/trend_analyzer.txt b/erpnext/accounts/search_criteria/trend_analyzer/trend_analyzer.txt
new file mode 100644
index 0000000..93a60e0
--- /dev/null
+++ b/erpnext/accounts/search_criteria/trend_analyzer/trend_analyzer.txt
@@ -0,0 +1,33 @@
+# Search Criteria, trend_analyzer
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-04-03 12:49:53',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'saumil@webnotestech.com'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'columns': u'Profile\x01ID,Profile\x01Owner',
+		'criteria_name': u'Trend Analyzer',
+		'doc_type': u'Profile',
+		'doctype': 'Search Criteria',
+		'filters': u'{}',
+		'module': u'Accounts',
+		'name': '__common__',
+		'page_len': 50,
+		'sort_by': u'`tabProfile`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
+	},
+
+	# Search Criteria, trend_analyzer
+	{
+		'doctype': 'Search Criteria',
+		'name': u'trend_analyzer'
+	}
+]
diff --git a/erpnext/accounts/search_criteria/trial_balance/trial_balance.txt b/erpnext/accounts/search_criteria/trial_balance/trial_balance.txt
index 16bac7c..63e7b49 100644
--- a/erpnext/accounts/search_criteria/trial_balance/trial_balance.txt
+++ b/erpnext/accounts/search_criteria/trial_balance/trial_balance.txt
@@ -3,33 +3,33 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:28',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2011-06-22 12:29:43',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Account\x01ID',
-		'criteria_name': 'Trial Balance',
-		'description': 'Trial Balance',
-		'dis_filters': 'transaction_date',
-		'doc_type': 'Account',
+		'columns': u'Account\x01ID',
+		'criteria_name': u'Trial Balance',
+		'description': u'Trial Balance',
+		'dis_filters': u'transaction_date',
+		'doc_type': u'Account',
 		'doctype': 'Search Criteria',
-		'filters': "{'Account\x01Group or Ledger':'Ledger','Account\x01Is PL Account':'','Account\x01Account Type':'','Account\x01Show Group Balance':''}",
-		'module': 'Accounts',
+		'filters': u"{'Account\x01Group or Ledger':'Ledger','Account\x01Is PL Account':'','Account\x01Account Type':'','Account\x01Show Group Balance':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabAccount`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabAccount`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, trial_balance
 	{
 		'doctype': 'Search Criteria',
-		'name': 'trial_balance'
+		'name': u'trial_balance'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js
index 41ead1c..9489630 100644
--- a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js
+++ b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js
@@ -18,13 +18,13 @@
   this.hide_all_filters();
 
   //Add filter
-  this.add_filter({fieldname:'based_on', label:'Based On', fieldtype:'Select', options:'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Sales Invoice', report_default:'Sales Invoice', ignore : 1,parent:'RV Tax Detail', single_select :1, in_first_page:1});
+  this.add_filter({fieldname:'based_on', label:'Based On', fieldtype:'Select', options:'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Sales Invoice', report_default:'Sales Invoice', ignore : 1,parent:'Sales Taxes and Charges', single_select :1, in_first_page:1});
   
-  this.add_filter({fieldname:'posting_date', label:'Date', fieldtype:'Date', options:'', ignore : 1,parent:'RV Tax Detail', in_first_page:1});
+  this.add_filter({fieldname:'posting_date', label:'Date', fieldtype:'Date', options:'', ignore : 1,parent:'Sales Taxes and Charges', in_first_page:1});
   
-  this.add_filter({fieldname:'voucher_id', label:'Voucher Id', fieldtype:'Data', options:'', ignore : 1,parent:'RV Tax Detail', in_first_page:1});
+  this.add_filter({fieldname:'voucher_id', label:'Voucher Id', fieldtype:'Data', options:'', ignore : 1,parent:'Sales Taxes and Charges', in_first_page:1});
   
-  this.add_filter({fieldname:'tax_account', label:'Tax Account', fieldtype:'Link', options:'Account', ignore : 1,parent:'RV Tax Detail', in_first_page:1});
+  this.add_filter({fieldname:'tax_account', label:'Tax Account', fieldtype:'Link', options:'Account', ignore : 1,parent:'Sales Taxes and Charges', in_first_page:1});
 }
 
 
@@ -36,15 +36,15 @@
 // Get query
 //--------------------------------------
 report.get_query = function() {
-  based_on = this.get_filter('RV Tax Detail', 'Based On').get_value();
-  from_date = this.get_filter('RV Tax Detail', 'From Date').get_value();
-  to_date = this.get_filter('RV Tax Detail', 'To Date').get_value();
-  vid = this.get_filter('RV Tax Detail', 'Voucher Id').get_value();
-  acc = this.get_filter('RV Tax Detail', 'Tax Account').get_value();
+  based_on = this.get_filter('Sales Taxes and Charges', 'Based On').get_value();
+  from_date = this.get_filter('Sales Taxes and Charges', 'From Date').get_value();
+  to_date = this.get_filter('Sales Taxes and Charges', 'To Date').get_value();
+  vid = this.get_filter('Sales Taxes and Charges', 'Voucher Id').get_value();
+  acc = this.get_filter('Sales Taxes and Charges', 'Tax Account').get_value();
 
   date_fld = 'transaction_date';
   if(based_on == 'Sales Invoice') {
-  	based_on = 'Receivable Voucher';
+  	based_on = 'Sales Invoice';
   	date_fld = 'voucher_date';
   }
 
@@ -55,7 +55,7 @@
   if (acc) sp_cond += repl(' AND t2.account_head = "%(acc)s"', {acc:acc});
 
   return repl('SELECT t1.`name`, t1.`%(dt)s`, t1.`customer_name`, t1.net_total, t2.account_head, t2.description, t2.rate, t2.tax_amount \
-  	FROM `tab%(parent)s` t1, `tabRV Tax Detail` t2 \
+  	FROM `tab%(parent)s` t1, `tabSales Taxes and Charges` t2 \
   	WHERE t1.docstatus=1 AND t2.`parenttype` = "%(parent)s" \
   	AND t2.`parent` = t1.`name`  \
   	%(cond)s ORDER BY t1.`name` DESC, t1.%(dt)s DESC', {parent:based_on, cond:sp_cond, dt:date_fld});
diff --git a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py
index 4dbfb52..43dd954 100644
--- a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py
+++ b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py
@@ -15,7 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 if filter_values.get('based_on') == 'Sales Invoice':
-  based_on_dt = 'Receivable Voucher'
+  based_on_dt = 'Sales Invoice'
 else:
   based_on_dt = filter_values.get('based_on')
 
diff --git a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt
index c152c79..ac1cd4c 100644
--- a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt
+++ b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-09-06 15:36:58',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2011-09-06 15:50:28',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'RV Tax Detail\x01Type,RV Tax Detail\x01Account Head,RV Tax Detail\x01Cost Center,RV Tax Detail\x01Description,RV Tax Detail\x01Rate,RV Tax Detail\x01Amount*,RV Tax Detail\x01Total*',
-		'criteria_name': 'Voucher wise tax details',
-		'doc_type': 'RV Tax Detail',
+		'columns': u'Sales Taxes and Charges\x01Type,Sales Taxes and Charges\x01Account Head,Sales Taxes and Charges\x01Cost Center,Sales Taxes and Charges\x01Description,Sales Taxes and Charges\x01Rate,Sales Taxes and Charges\x01Amount*,Sales Taxes and Charges\x01Total*',
+		'criteria_name': u'Voucher wise tax details',
+		'doc_type': u'Sales Taxes and Charges',
 		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Fiscal Year':''}",
-		'module': 'Accounts',
+		'filters': u"{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Fiscal Year':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Delivery Note',
-		'sort_by': '`tabRV Tax Detail`.`parent`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Delivery Note',
+		'sort_by': u'`tabSales Taxes and Charges`.`parent`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, voucher_wise_tax_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'voucher_wise_tax_details'
+		'name': u'voucher_wise_tax_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/analysis/search_criteria/yearly_transaction_summary/__init__.py b/erpnext/accounts/search_criteria/yearly_transaction_summary/__init__.py
similarity index 100%
rename from erpnext/analysis/search_criteria/yearly_transaction_summary/__init__.py
rename to erpnext/accounts/search_criteria/yearly_transaction_summary/__init__.py
diff --git a/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.js b/erpnext/accounts/search_criteria/yearly_transaction_summary/yearly_transaction_summary.js
similarity index 100%
rename from erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.js
rename to erpnext/accounts/search_criteria/yearly_transaction_summary/yearly_transaction_summary.js
diff --git a/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.py b/erpnext/accounts/search_criteria/yearly_transaction_summary/yearly_transaction_summary.py
similarity index 100%
rename from erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.py
rename to erpnext/accounts/search_criteria/yearly_transaction_summary/yearly_transaction_summary.py
diff --git a/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.sql b/erpnext/accounts/search_criteria/yearly_transaction_summary/yearly_transaction_summary.sql
similarity index 100%
rename from erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.sql
rename to erpnext/accounts/search_criteria/yearly_transaction_summary/yearly_transaction_summary.sql
diff --git a/erpnext/accounts/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt b/erpnext/accounts/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt
new file mode 100644
index 0000000..122d1d1
--- /dev/null
+++ b/erpnext/accounts/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt
@@ -0,0 +1,32 @@
+# Search Criteria, yearly_transaction_summary
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-04-03 12:49:53',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'columns': u'Profile\x01ID',
+		'criteria_name': u'Yearly Transaction Summary',
+		'doc_type': u'Profile',
+		'doctype': 'Search Criteria',
+		'filters': u"{'DocType\x01Fiscal Year':'2009-2010','DocType\x01Company':'Alpha Company','DocType\x01Period':'Monthly'}",
+		'module': u'Accounts',
+		'name': '__common__',
+		'sort_by': u'`tabProfile`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
+	},
+
+	# Search Criteria, yearly_transaction_summary
+	{
+		'doctype': 'Search Criteria',
+		'name': u'yearly_transaction_summary'
+	}
+]
diff --git a/erpnext/analysis/Module Def/Analysis/Analysis.txt b/erpnext/analysis/Module Def/Analysis/Analysis.txt
deleted file mode 100644
index 97bbb43..0000000
--- a/erpnext/analysis/Module Def/Analysis/Analysis.txt
+++ /dev/null
@@ -1,253 +0,0 @@
-[
-	{
-		'_last_update': '1300959286',
-		'creation': '2010-11-30 17:31:05',
-		'disabled': 'No',
-		'docstatus': 0,
-		'doctype': u'Module Def',
-		'doctype_list': None,
-		'file_list': None,
-		'idx': None,
-		'is_hidden': 'No',
-		'last_updated_date': '2010-12-02 09:25:40',
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'module_desc': None,
-		'module_icon': 'chart.png',
-		'module_label': 'Analysis',
-		'module_name': 'Analysis',
-		'module_page': None,
-		'module_seq': 10,
-		'name': 'Analysis',
-		'owner': 'Administrator',
-		'parent': None,
-		'parentfield': None,
-		'parenttype': None,
-		'trash_reason': None,
-		'widget_code': None
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 12:00:50',
-		'description': None,
-		'display_name': None,
-		'doc_name': 'Reports',
-		'doc_type': 'Separator',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 1,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': '000003012',
-		'owner': 'Administrator',
-		'parent': 'Analysis',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 12:00:50',
-		'description': None,
-		'display_name': 'Yearly Transaction Summary',
-		'doc_name': 'Profile',
-		'doc_type': 'Reports',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 2,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': '000003014',
-		'owner': 'Administrator',
-		'parent': 'Analysis',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 17:31:05',
-		'description': 'A quick glance at your work in progress and pipeline',
-		'display_name': 'Work in Progress Monitor',
-		'doc_name': 'WIP Monitor',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'magnifier.gif',
-		'idx': 3,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': 'MDI00063',
-		'owner': 'Administrator',
-		'parent': 'Analysis',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 12:00:50',
-		'description': 'Analyze trend of sales, purchase and stock over any period',
-		'display_name': 'Monthly Trend Analyzer',
-		'doc_name': 'Profile',
-		'doc_type': 'Reports',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'chart_bar.gif',
-		'idx': 4,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': '000003013',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Analysis',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 12:00:50',
-		'description': None,
-		'display_name': None,
-		'doc_name': 'Reports',
-		'doc_type': 'Separator',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 1,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': '000003012',
-		'owner': 'Administrator',
-		'parent': 'Analysis',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 12:00:50',
-		'description': None,
-		'display_name': 'Yearly Transaction Summary',
-		'doc_name': 'Profile',
-		'doc_type': 'Reports',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 2,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': '000003014',
-		'owner': 'Administrator',
-		'parent': 'Analysis',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 17:31:05',
-		'description': 'A quick glance at your work in progress and pipeline',
-		'display_name': 'Work in Progress Monitor',
-		'doc_name': 'WIP Monitor',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'magnifier.gif',
-		'idx': 3,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': 'MDI00063',
-		'owner': 'Administrator',
-		'parent': 'Analysis',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 12:00:50',
-		'description': 'Analyze trend of sales, purchase and stock over any period',
-		'display_name': 'Monthly Trend Analyzer',
-		'doc_name': 'Profile',
-		'doc_type': 'Reports',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'chart_bar.gif',
-		'idx': 4,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': '000003013',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Analysis',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'creation': '2010-11-30 17:31:05',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 1,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': 'MDR00004',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Analysis',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Sales Manager'
-	},
-	{
-		'creation': '2010-11-30 17:31:05',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 2,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': 'MDR00005',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Analysis',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Purchase Manager'
-	},
-	{
-		'creation': '2010-11-30 17:31:05',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 3,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': 'MDR00006',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Analysis',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Material Manager'
-	},
-	{
-		'creation': '2010-11-30 17:31:05',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 4,
-		'modified': '2011-03-24 15:28:54',
-		'modified_by': 'Administrator',
-		'name': 'MDR00007',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Analysis',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Accounts Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/analysis/__init__.py b/erpnext/analysis/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/analysis/__init__.py
+++ /dev/null
diff --git a/erpnext/analysis/doctype/__init__.py b/erpnext/analysis/doctype/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/analysis/doctype/__init__.py
+++ /dev/null
diff --git a/erpnext/analysis/doctype/mis_control/mis_control.py b/erpnext/analysis/doctype/mis_control/mis_control.py
deleted file mode 100644
index b2c85f8..0000000
--- a/erpnext/analysis/doctype/mis_control/mis_control.py
+++ /dev/null
@@ -1,418 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self, doc, doclist):
-    self.doc = doc
-    self.doclist = doclist
-    self.account_list = []
-    self.ac_details = {} # key: account id, values: debit_or_credit, lft, rgt
-    
-    self.roles = webnotes.user.get_roles()
-
-    self.period_list = []
-    self.period_start_date = {}
-    self.period_end_date = {}
-
-    self.fs_list = []
-    self.root_bal = []
-    self.flag = 0
-
-  # Get defaults on load of MIS, MIS - Comparison Report and Financial statements
-  # ----------------------------------------------------
-  def get_comp(self):
-    ret = {}
-    type = []
-    comp = []
-    # ------ get period -----------
-    ret['period'] = ['Annual','Half Yearly','Quarterly','Monthly']
-    
-    # ---- get companies ---------
-    res = sql("select name from `tabCompany`")
-    for r in res:
-      comp.append(r[0])
-    #comp.append(r[0] for r in res)
-    ret['company'] = comp
-
-    #--- to get fiscal year and start_date of that fiscal year -----
-    res = sql("select name, year_start_date from `tabFiscal Year`")
-    ret['fiscal_year'] = [r[0] for r in res]
-    ret['start_dates'] = {}
-    for r in res:
-      ret['start_dates'][r[0]] = str(r[1])
-      
-    #--- from month and to month (for MIS - Comparison Report) -------
-    month_list = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
-    fiscal_start_month = sql("select MONTH(year_start_date) from `tabFiscal Year` where name = %s",(get_defaults()['fiscal_year']))
-    fiscal_start_month = fiscal_start_month and fiscal_start_month[0][0] or 1
-    mon = ['']
-    for i in range(fiscal_start_month,13): mon.append(month_list[i-1])
-    for i in range(0,fiscal_start_month-1): mon.append(month_list[i])
-    ret['month'] = mon
-
-    # ------------------------ get MIS Type on basis of roles of session user ------------------------------------------
-    if has_common(self.roles, ['Sales Manager']):
-      type.append('Sales')
-    if has_common(self.roles, ['Purchase Manager']):
-      type.append('Purchase')
-    ret['type'] = type
-    return ret
-    
-  # Gets Transactions type and Group By options based on module
-  #------------------------------------------------------------------
-  def get_trans_group(self,module):
-    ret = {}
-    st,group = [],[]
-    if module == 'Sales':
-      st = ['Quotation','Sales Order','Delivery Note','Receivable Voucher']
-      group = ['Item','Item Group','Customer','Customer Group','Cost Center']
-    elif module == 'Purchase':
-      st = ['Purchase Order','Purchase Receipt','Payable Voucher']
-      group = ['Item','Item Group','Supplier','Supplier Type']
-    
-    ret['stmt_type'] = st
-    ret['group_by'] = group
-    
-    return ret
-
-  # Get Days based on month (for MIS Comparison Report)
-  # --------------------------------------------------------
-  def get_days(self,month):
-    days = []
-    ret = {}
-    if month == 'Jan' or month == 'Mar' or month == 'May' or month == 'Jul' or month == 'Aug' or month == 'Oct' or month == 'Dec':
-      for i in range(1,32):
-        days.append(i)
-    elif month == 'Apr' or month == 'Jun' or month == 'Sep' or month == 'Nov':
-      for i in range(1,31):
-        days.append(i)
-    elif month == 'Feb':
-      for i in range(1,29):
-        days.append(i)
-    ret['days'] = days
-    return ret
-	
-  # Get from date and to date based on fiscal year (for in summary - comparison report)
-  # -----------------------------------------------------------------------------------------------------
-  def dates(self,fiscal_year,from_date,to_date):
-    import datetime
-    ret = ''
-    start_date = cstr(sql("select year_start_date from `tabFiscal Year` where name = %s",fiscal_year)[0][0])
-    st_mon = cint(from_date.split('-')[1])
-    ed_mon = cint(to_date.split('-')[1])
-    st_day = cint(from_date.split('-')[2])
-    ed_day = cint(to_date.split('-')[2])
-    fiscal_start_month = cint(start_date.split('-')[1])
-    next_fiscal_year = cint(start_date.split('-')[0]) + 1
-    current_year = ''
-    next_year = ''
-    
-    #CASE - 1 : Jan - Mar (Valid)
-    if st_mon < fiscal_start_month and ed_mon < fiscal_start_month:
-      current_year = cint(start_date.split('-')[0]) + 1
-      next_year  = cint(start_date.split('-')[0]) + 1
-    
-    # Case - 2 : Apr - Dec (Valid)
-    elif st_mon >= fiscal_start_month and ed_mon <= 12 and ed_mon >= fiscal_start_month:
-      current_year = cint(start_date.split('-')[0])
-      next_year  = cint(start_date.split('-')[0])
-
-    # Case 3 : Jan - May (Invalid)
-    elif st_mon < fiscal_start_month and ed_mon >= fiscal_start_month:
-      current_year = cint(start_date.split('-')[0]) + 1
-      next_year  = cint(start_date.split('-')[0]) + 2
-	
-    # check whether from date is within fiscal year
-    if datetime.date(current_year, st_mon, st_day) >= datetime.date(cint(start_date.split('-')[0]), cint(start_date.split('-')[1]), cint(start_date.split('-')[2])) and datetime.date(cint(current_year), cint(st_mon), cint(st_day)) < datetime.date((cint(start_date.split('-')[0])+1), cint(start_date.split('-')[1]), cint(start_date.split('-')[2])):
-      begin_date = cstr(current_year)+"-"+cstr(st_mon)+"-"+cstr(st_day)
-    else:
-      msgprint("Please enter appropriate from date.")
-      raise Exception
-    # check whether to date is within fiscal year
-    if datetime.date(next_year, ed_mon, ed_day) >= datetime.date(cint(start_date.split('-')[0]), cint(start_date.split('-')[1]), cint(start_date.split('-')[2])) and datetime.date(cint(next_year), cint(ed_mon), cint(ed_day)) < datetime.date(cint(start_date.split('-')[0])+1, cint(start_date.split('-')[1]), cint(start_date.split('-')[2])):
-      end_date = cstr(next_year)+"-"+cstr(ed_mon)+"-"+cstr(ed_day)
-    else:
-      msgprint("Please enter appropriate to date.")
-      raise Exception
-    ret = begin_date+'~~~'+end_date
-    return ret
-
-  # Get MIS Totals
-  # ---------------
-  def get_totals(self, args):
-    args = eval(args)
-    #msgprint(args)
-    totals = sql("SELECT %s FROM %s WHERE %s %s %s %s" %(cstr(args['query_val']), cstr(args['tables']), cstr(args['company']), cstr(args['cond']), cstr(args['add_cond']), cstr(args['fil_cond'])), as_dict = 1)[0]
-    #msgprint(totals)
-    tot_keys = totals.keys()
-    # return in flt because JSON doesn't accept Decimal
-    for d in tot_keys:
-      totals[d] = flt(totals[d])
-    return totals
-
-  # Get Statement
-  # -------------
-  
-  def get_statement(self, arg): 
-    self.return_data = []    
-
-    # define periods
-    arg = eval(arg)
-    pl = ''
-    
-    self.define_periods(arg['year'], arg['period'])    # declares 1.period_list i.e. (['Jan','Feb','Mar'...] or ['Q1','Q2'...] or ['FY2009-2010']) based on period
-                                                       #          2.period_start_date dict {'Jan':'01-01-2009'...}
-                                                       #          3.period_start_date dict {'Jan':'31-01-2009'...}
-    self.return_data.append([4,'']+self.period_list)
-
-        
-    if arg['statement'] == 'Balance Sheet': pl = 'No'
-    if arg['statement'] == 'Profit & Loss': pl = 'Yes'
-    
-    self.get_children('',0,pl,arg['company'], arg['year'])
-        
-    #self.balance_pl_statement(acct, arg['statement'])
-    #msgprint(self.return_data)
-    return self.return_data
-    
-  # Get Children
-  # ------------
-  def get_children(self, parent_account, level, pl, company, fy):
-    cl = sql("select distinct account_name, name, debit_or_credit, lft, rgt from `tabAccount` where ifnull(parent_account, '') = %s and ifnull(is_pl_account, 'No')=%s and company=%s and docstatus != 2 order by name asc", (parent_account, pl, company))
-    level0_diff = [0 for p in self.period_list]
-    if pl=='Yes' and level==0: # switch for income & expenses
-      cl = [c for c in cl]
-      cl.reverse()
-    if cl:
-      for c in cl:
-        self.ac_details[c[1]] = [c[2], c[3], c[4]]
-        bal_list = self.get_period_balance(c[1], level, pl, company, fy)
-        if level==0: # top level - put balances as totals
-          self.return_data.append([level, c[0]] + ['' for b in bal_list])
-          totals = bal_list
-          for i in range(len(totals)): # make totals
-            if c[2]=='Credit':
-              level0_diff[i] += flt(totals[i])
-            else:
-              level0_diff[i] -= flt(totals[i])
-        else:
-          self.return_data.append([level, c[0]]+bal_list)
-          
-        if level < 2:
-          self.get_children(c[1], level+1, pl, company, fy)
-          
-        # make totals - for top level
-        # ---------------------------
-        if level==0:
-          # add rows for profit / loss in B/S
-          if pl=='No':
-            if c[2]=='Credit':
-              self.return_data.append([1, 'Total Liabilities'] + totals)
-              level0_diff = [-i for i in level0_diff] # convert to debit
-              self.return_data.append([5, 'Profit/Loss (Provisional)'] + level0_diff)
-              for i in range(len(totals)): # make totals
-                level0_diff[i] = flt(totals[i]) + level0_diff[i]
-              self.return_data.append([4, 'Total '+c[0]] + level0_diff)
-            else:
-              self.return_data.append([4, 'Total '+c[0]] + totals)
-
-          # add rows for profit / loss in P/L
-          else:
-            if c[2]=='Debit':
-              self.return_data.append([1, 'Total Expenses (before Profit)'] + totals)
-              self.return_data.append([5, 'Profit/Loss (Provisional)'] + level0_diff)
-              for i in range(len(totals)): # make totals
-                level0_diff[i] = flt(totals[i]) + level0_diff[i]
-              self.return_data.append([4, 'Total '+c[0]] + level0_diff)
-            else:
-              self.return_data.append([4, 'Total '+c[0]] + totals)
-  
-  # Define Periods
-  # --------------
-  
-  def define_periods(self, year, period):
-    
-    # get year start date    
-    ysd = sql("select year_start_date from `tabFiscal Year` where name=%s", year)
-    ysd = ysd and ysd[0][0] or ''
-
-    self.ysd = ysd
-
-    # year
-    if period == 'Annual':
-      pn = 'FY'+year
-      self.period_list.append(pn)
-      self.period_start_date[pn] = ysd
-      self.period_end_date[pn] = get_last_day(get_first_day(ysd,0,11))
-
-    # quarter
-    if period == 'Quarterly':
-      for i in range(4):
-        pn = 'Q'+str(i+1)
-        self.period_list.append(pn)
-      
-        self.period_start_date[pn] = get_first_day(ysd,0,i*3)
-        self.period_end_date[pn] = get_last_day(get_first_day(ysd,0,((i+1)*3)-1))  
-
-    # month
-    if period == 'Monthly':
-      mlist = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
-      for i in range(12):
-        fd = get_first_day(ysd,0,i)
-        pn = mlist[fd.month-1]
-        self.period_list.append(pn)
-      
-        self.period_start_date[pn] = fd
-        self.period_end_date[pn] = get_last_day(fd)
-      
-  # Get Balance For A Period
-  # ------------------------
-  
-  def get_period_balance(self, acc, level, pl, company, fy):
-    debit_or_credit, lft, rgt = self.ac_details[acc]
-    ret = []
-    for p in self.period_list:
-      sd, ed = self.period_start_date[p].strftime('%Y-%m-%d'), self.period_end_date[p].strftime('%Y-%m-%d')
-      cond = "and t1.voucher_type != 'Period Closing Voucher'"
-      if pl=='No':
-        sd = self.ysd.strftime('%Y-%m-%d')
-        cond = ""
-
-      bal = sql("select SUM(t1.debit), SUM(t1.credit) from `tabGL Entry` t1, `tabAccount` t2 WHERE t1.posting_date >= '%s' AND t1.posting_date <= '%s' AND t1.company = '%s' AND t1.account = t2.name AND t2.lft >= %s AND t2.rgt <= %s and ifnull(t1.is_opening,'No') = 'No' and ifnull(t1.is_cancelled, 'No') = 'No' %s" % (sd,ed,company,lft,rgt, cond))
-      
-      
-      bal = bal and (flt(bal[0][0]) - flt(bal[0][1])) or 0
-      if debit_or_credit == 'Credit' and bal:
-        bal = -bal
-      if pl=='No':
-        op = sql("select opening from `tabAccount Balance` where account=%s and period=%s", (acc, fy))
-        op = op and op[0][0] or 0
-        bal += flt(op)
-      
-      ret.append(bal)
-    return ret
-    
-  # Get Dashboard Amounts
-  # ---------------------
-  
-  def get_balance(self, acc, sd, ed, company, fy):
-    a = sql("select account_name, name, debit_or_credit, lft, rgt, is_pl_account from `tabAccount` where account_name=%s and company=%s", (acc, company), as_dict=1)
-    if a:
-      a = a[0]
-      bal = sql("select SUM(IFNULL(t1.debit,0)), SUM(IFNULL(t1.credit,0)) from `tabGL Entry` t1, `tabAccount` t2 WHERE t1.posting_date >= %s AND t1.posting_date <= %s AND t1.account = t2.name AND t2.lft >= %s AND t2.rgt <= %s and ifnull(is_opening, 'No') = 'No' and ifnull(t1.is_cancelled, 'No') = 'No'", (sd,ed,a['lft'],a['rgt']))
-      if a['debit_or_credit']=='Debit':
-        bal = flt(flt(bal[0][0]) - flt(bal[0][1]))
-      else:
-        bal = flt(flt(bal[0][1]) - flt(bal[0][0]))
-
-      if a['is_pl_account']=='No':
-        op = sql("select opening from `tabAccount Balance` where account=%s and period=%s", (acc, fy))
-        op = op and op[0][0] or 0
-        bal += flt(op)
-
-      return flt(bal)
-
-    else:
-      msgprint("Did not find %s for %s" % (acc, company))
-      return 0
-
-  def get_cur_balance(self, acc, company):
-    bal = sql("select IFNULL(t1.balance,0) from `tabAccount Balance` t1, `tabAccount` t2 where t1.account = %s and t1.period=%s and t1.account = t2.name and t2.company=%s", (acc, self.fiscal_year, company))
-    return bal and flt(bal[0][0]) or 0
-  
-  def get_top_5_cust(self, company):
-    rec_grp = sql("select receivables_group from tabCompany where name=%s", company)
-    if rec_grp:
-      pa_lft_rgt = sql("select lft, rgt from tabAccount where name=%s and company=%s", (rec_grp[0][0], company))[0]
-      return sql("select t1.account_name, SUM(t2.debit) from tabAccount t1, `tabGL Entry` t2 where t1.lft > %s and t1.rgt < %s and t2.account = t1.name  and ifnull(t2.is_cancelled, 'No') = 'No' GROUP BY t1.name ORDER BY SUM(t2.debit) desc limit 5", (pa_lft_rgt[0], pa_lft_rgt[1]))
-    else:
-      return []
-
-  def get_top_5_exp(self, company):
-    a = sql("select distinct account_name, name, debit_or_credit, lft, rgt from `tabAccount` where account_name=%s and company=%s", ('Expenses', company), as_dict=1)[0]
-    return sql("select t1.account_name, SUM(t2.debit) from tabAccount t1, `tabGL Entry` t2 where t1.lft>%s and t1.rgt<%s and t1.group_or_ledger = 'Ledger' and t2.account = t1.name  and ifnull(t2.is_cancelled, 'No') = 'No' and t2.voucher_type != 'Period Closing Voucher' GROUP BY t1.name ORDER BY SUM(t2.debit) desc limit 5", (a['lft'],a['rgt']))
-  
-  def bl(self, acc, company):
-    dt = getdate(nowdate())
-
-    r = []
-    # cur
-    r.append(self.get_cur_balance(acc, company))
-    # this month
-    r.append(self.get_balance(acc, get_first_day(dt), get_last_day(dt), company, self.fiscal_year))
-    # last month
-    r.append(self.get_balance(acc, get_first_day(dt,0,-1), get_last_day(get_first_day(dt,0,-1)), company, self.fiscal_year))
-    return r
-
-  def bl_bs(self, acc, company, sd):
-    dt = getdate(nowdate())
-    r = []
-    # cur
-    r.append(self.get_cur_balance(acc, company))
-    # last month
-    r.append(self.get_balance(acc, sd, get_last_day(get_first_day(dt,0,-1)), company, self.fiscal_year))
-    # opening
-    r.append(self.get_balance(acc, sd, sd, company, self.fiscal_year))
-    return r
-
-  def get_dashboard_values(self, arg=''):
-    d = get_defaults()
-    self.fiscal_year = d['fiscal_year']
-    if arg:
-      company = arg
-    else:
-      company = d['company']
-
-    r = {}
-    r['Income'] = self.bl('Income', company)
-    r['Expenses'] = self.bl('Expenses', company)
-
-    r['Profit'] = []
-    for i in range(3):
-      r['Profit'].append(r['Income'][i] - r['Expenses'][i])
-    
-    r['Current Assets'] = self.bl_bs('Current Assets', company, getdate(d['year_start_date']))
-    r['Current Liabilities'] = self.bl_bs('Current Liabilities', company, getdate(d['year_start_date']))
-    
-    r['Working Capital'] = []
-    for i in range(3):
-      r['Working Capital'].append(r['Current Assets'][i] - r['Current Liabilities'][i])
-
-    r['Bank Accounts'] = self.bl_bs('Bank Accounts', company, getdate(d['year_start_date']))
-    
-    r['Top Customers'] = convert_to_lists(self.get_top_5_cust(company))
-    r['Top Expenses'] = convert_to_lists(self.get_top_5_exp(company))
-    
-    return r
diff --git a/erpnext/analysis/doctype/mis_control/mis_control.txt b/erpnext/analysis/doctype/mis_control/mis_control.txt
deleted file mode 100644
index 3149cde..0000000
--- a/erpnext/analysis/doctype/mis_control/mis_control.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-# DocType, MIS Control
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:10',
-		'docstatus': 0,
-		'modified': '2011-01-03 17:32:31',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'module': 'Analysis',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 120
-	},
-
-	# DocType, MIS Control
-	{
-		'doctype': 'DocType',
-		'name': 'MIS Control'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/analysis/doctype/ta_control/__init__.py b/erpnext/analysis/doctype/ta_control/__init__.py
deleted file mode 100755
index e69de29..0000000
--- a/erpnext/analysis/doctype/ta_control/__init__.py
+++ /dev/null
diff --git a/erpnext/analysis/doctype/ta_control/ta_control.py b/erpnext/analysis/doctype/ta_control/ta_control.py
deleted file mode 100755
index f06394c..0000000
--- a/erpnext/analysis/doctype/ta_control/ta_control.py
+++ /dev/null
@@ -1,123 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-class DocType:
-        def __init__(self, d, dl):
-                self.doc, self.doclist = d, dl
-
-
-        # Define Globals
-        # ---------------
-        def define_globals(self, trans, fiscal_year):
-                self.month_name = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
-
-                if trans == 'Purchase Receipt' or trans == 'Delivery Note' or trans == 'Payable Voucher' or trans == 'Receivable Voucher':
-                        self.trans_date = 'posting_date'
-                else:
-                        self.trans_date = 'transaction_date'
-                
-                ysd = sql("select year_start_date from `tabFiscal Year` where name = %s",fiscal_year)[0][0]
-                self.year_start_date = ysd.strftime('%Y-%m-%d')
-                self.start_month = cint(self.year_start_date.split('-')[1])
-
-
-        # Get Column Names and Query for Annual Trend
-        # ---------------------------------------------
-        def get_annual_trend_details(self, fiscal_year):
-                col_names = [fiscal_year+' (Qty)', fiscal_year+' (Amt)']
-                query_val = 'SUM(t2.qty) ,SUM(t2.amount),'
-                return col_names, query_val
-
-
-        # Get Column Names and Query for Half Yearly Trend
-        # --------------------------------------------------
-        def get_half_yearly_trend_details(self):
-                first_half_start = self.year_start_date
-                first_half_end = add_days(add_months(first_half_start,6),-1)
-                second_half_start = add_days(first_half_end,1)
-                second_half_end = add_days(add_months(second_half_start,6),-1)
-                
-                col_names = ['First Half (Qty)', 'First Half (Amt)', 'Second Half (Qty)', 'Second Half (Amt)']
-               
-                query_val = 'SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+first_half_start+'" AND "'+first_half_end+'" THEN t2.qty ELSE NULL END), SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+first_half_start+'" AND "'+first_half_end+'" THEN t2.amount ELSE NULL END), SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+second_half_start+'" AND "'+second_half_end+'" THEN t2.qty ELSE NULL END), SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+second_half_start+'" AND "'+second_half_end+'" THEN t2.amount ELSE NULL END),'
-
-                return col_names, query_val
-
-
-        # Get Column Names and Query for Quarterly Trend
-        # ------------------------------------------------
-        def get_quarterly_trend_details(self):
-                first_qsd, second_qsd, third_qsd, fourth_qsd = self.year_start_date, add_months(self.year_start_date,3), add_months(self.year_start_date,6), add_months(self.year_start_date,9)
-
-                first_qed, second_qed, third_qed, fourth_qed = add_days(add_months(first_qsd,3),-1), add_days(add_months(second_qsd,3),-1), add_days(add_months(third_qsd,3),-1), add_days(add_months(fourth_qsd,3),-1)
-
-                col_names = ['Q1 (Qty)','Q1 (Amt)','Q2 (Qty)','Q2 (Amt)','Q3 (Qty)','Q3 (Amt)','Q4 (Qty)','Q4 (Amt)']
-                query_val = ''
-                bet_dates = [[first_qsd,first_qed],[second_qsd,second_qed],[third_qsd,third_qed],[fourth_qsd,fourth_qed]]
-
-                for d in bet_dates:
-                        query_val += 'SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+d[0]+'" AND "'+d[1]+'" THEN t2.qty ELSE NULL END), SUM(CASE WHEN t1.'+self.trans_date+' BETWEEN "'+d[0]+'" AND "'+d[1]+'" THEN t2.amount ELSE NULL END),'
-                
-                return col_names, query_val
-
-
-        # Get Column Names and Query for Monthly Trend
-        # -----------------------------------------------
-        def get_monthly_trend_details(self):
-                col_names, query_val = [], ''
-                for i in range(self.start_month-1, len(self.month_name)):
-                        col_names.append(self.month_name[i]+' (Qty)')
-                        col_names.append(self.month_name[i]+' (Amt)')
-                        query_val += 'SUM(CASE WHEN MONTH(t1.'+self.trans_date+') = '+cstr(i+1)+' THEN t2.qty ELSE NULL END), SUM(CASE WHEN MONTH(t1.'+self.trans_date+') = '+cstr(i+1)+' THEN t2.amount ELSE NULL END),'
-
-                for i in range(0, self.start_month-1):
-                        col_names.append(self.month_name[i]+' (Qty)')
-                        col_names.append(self.month_name[i]+' (Amt)')
-                        query_val += 'SUM(CASE WHEN MONTH(t1.'+self.trans_date+') = '+cstr(i+1)+' THEN t2.qty ELSE NULL END), SUM(CASE WHEN MONTH(t1.'+self.trans_date+') = '+cstr(i+1)+' THEN t2.amount ELSE NULL END),'
-                
-                return col_names, query_val
-
-
-        # Get Single Year Trend's Query and Columns
-        # -------------------------------------------
-        def get_single_year_query_value(self, fiscal_year, period, trans, trans_det):
-                self.define_globals(trans, fiscal_year)
-                if period == 'Annual':
-                        return self.get_annual_trend_details(fiscal_year)
-                elif period == 'Half Yearly':
-                        return self.get_half_yearly_trend_details()
-                elif period == 'Quarterly':
-                        return self.get_quarterly_trend_details()
-                elif period == 'Monthly':
-                        return self.get_monthly_trend_details()
diff --git a/erpnext/analysis/doctype/ta_control/ta_control.txt b/erpnext/analysis/doctype/ta_control/ta_control.txt
deleted file mode 100755
index d0b03d4..0000000
--- a/erpnext/analysis/doctype/ta_control/ta_control.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-# DocType, TA Control
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-11-09 09:35:22',
-		'docstatus': 0,
-		'modified': '2010-12-02 18:00:30',
-		'modified_by': 'Administrator',
-		'owner': 'saumil@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'in_create': 1,
-		'issingle': 1,
-		'module': 'Analysis',
-		'name': '__common__',
-		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 11
-	},
-
-	# DocType, TA Control
-	{
-		'doctype': 'DocType',
-		'name': 'TA Control'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/analysis/page/__init__.py b/erpnext/analysis/page/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/analysis/page/__init__.py
+++ /dev/null
diff --git a/erpnext/analysis/search_criteria/__init__.py b/erpnext/analysis/search_criteria/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/analysis/search_criteria/__init__.py
+++ /dev/null
diff --git a/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt b/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt
deleted file mode 100644
index 19a5866..0000000
--- a/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-# Search Criteria, monthly_transaction_summary
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-20 13:00:43',
-		'docstatus': 0,
-		'modified': '2010-09-17 16:02:25',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Profile\x01ID',
-		'criteria_name': 'Monthly Transaction Summary',
-		'doc_type': 'Profile',
-		'doctype': 'Search Criteria',
-		'filters': "{'DocType\x01Period':'Monthly'}",
-		'module': 'Analysis',
-		'name': '__common__',
-		'sort_by': '`tabProfile`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, monthly_transaction_summary
-	{
-		'doctype': 'Search Criteria',
-		'name': 'monthly_transaction_summary'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js
deleted file mode 100644
index a25215c..0000000
--- a/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js
+++ /dev/null
@@ -1,148 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();
-
-  this.add_filter({fieldname:'transaction', label:'Transaction', fieldtype:'Select', options:'Quotation'+NEWLINE+'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Sales Invoice'+NEWLINE+'Purchase Order'+NEWLINE+'Purchase Receipt'+NEWLINE+'Purchase Invoice',report_default:'Delivery Note',ignore : 1,parent:'Profile',in_first_page : 1,single_select : 1});
-
-  this.add_filter({fieldname:'period', label:'Period', fieldtype:'Select', options:'Monthly'+NEWLINE+'Quarterly'+NEWLINE+'Half Yearly'+NEWLINE+'Annual',report_default:'Quarterly',ignore : 1, parent:'Profile',in_first_page:1,single_select:1});
-
-  this.add_filter({fieldname:'based_on', label:'Based On', fieldtype:'Select', options:'Item'+NEWLINE+'Item Group'+NEWLINE+'Customer'+NEWLINE+'Customer Group'+NEWLINE+'Territory'+NEWLINE+'Supplier'+NEWLINE+'Supplier Type'+NEWLINE+'Project', ignore : 1, parent:'Profile', report_default:'Item', in_first_page : 1,single_select:1});
-
-  this.add_filter({fieldname:'group_by', label:'Group By', fieldtype:'Select', options:NEWLINE+'Item'+NEWLINE+'Customer'+NEWLINE+'Supplier', ignore : 1, parent:'Profile',single_select:1});
-
-  this.add_filter({fieldname:'order_type', label:'Order Type', fieldtype:'Select', options:NEWLINE+'Sales'+NEWLINE+'Maintenance',ignore : 1, parent:'Profile',single_select:1});
-
-  this.add_filter({fieldname:'company', label:'Company', fieldtype:'Link', options:'Company', report_default:sys_defaults.company, ignore : 1, parent:'Profile'});
-
-  this.add_filter({fieldname:'fiscal_year', label:'Fiscal Year', fieldtype:'Link', options:'Fiscal Year', report_default:sys_defaults.fiscal_year, ignore : 1, parent:'Profile', in_first_page:1});
-
-
-  // Add Filters
-  this.add_filter({fieldname:'item', label:'Item', fieldtype:'Link', options:'Item', ignore : 1, parent:'Profile'});
-  this.add_filter({fieldname:'item_group', label:'Item Group', fieldtype:'Link', options:'Item Group', ignore : 1, parent:'Profile'});
-  this.add_filter({fieldname:'customer', label:'Customer', fieldtype:'Link', options:'Customer', ignore : 1, parent:'Profile'});
-  this.add_filter({fieldname:'customer_group', label:'Customer Group', fieldtype:'Link', options:'Customer Group', ignore : 1, parent:'Profile'});
-  this.add_filter({fieldname:'territory', label:'Territory', fieldtype:'Link', options:'Territory', ignore : 1, parent:'Profile'});
-  this.add_filter({fieldname:'supplier', label:'Supplier', fieldtype:'Link', options:'Supplier', ignore : 1, parent:'Profile'});
-  this.add_filter({fieldname:'supplier_type', label:'Supplier Type', fieldtype:'Link', options:'Supplier Type', ignore : 1, parent:'Profile'});
-  this.add_filter({fieldname:'project', label:'Project', fieldtype:'Link', options:'Project', ignore : 1, parent:'Profile'});
-}
-
-
-this.mytabs.tabs['Select Columns'].hide();
-
-report.aftertableprint = function(t) {
-   $yt(t,'*',1,{whiteSpace:'pre'});
-}
-
-var validate_values = function(trans,based_on,order_type) {
-  if(!fiscal_year){
-    msgprint("Please select Fiscal Year");
-    return 0;
-  }
-  if((in_list(['Quotation','Sales Order','Delivery Note','Sales Invoice'],trans) && in_list(['Supplier','Supplier Type'],based_on)) || (in_list(['Purchase Order','Purchase Receipt','Purchase Invoice'],trans) && in_list(['Customer','Customer Group','Territory'],based_on))){
-    msgprint("Sorry! You cannot fetch "+trans+" trend based on "+based_on);
-    return 0;
-  }
-  if(in_list(['Purchase Order','Purchase Receipt','Purchase Invoice'],trans) && order_type){
-    msgprint("Please deselect Order Type for "+trans);
-    return 0;
-  }
-  return 1;
-}
-
-
-report.get_query = function() {
-  trans = this.get_filter('Profile', 'Transaction').get_value();
-  order_type = this.get_filter('Profile', 'Order Type').get_value();
-  based_on = this.get_filter('Profile', 'Based On').get_value();
-  company = this.get_filter('Profile', 'Company').get_value();
-  fiscal_year = this.get_filter('Profile', 'Fiscal Year').get_value();
-
-  if(validate_values(trans,based_on,order_type)){
-    col = '';
-    add_cond = '';
-    add_col = '';
-    add_tables = '';
-    sp_cond = '';
-    if(trans == 'Sales Invoice') trans = 'Receivable Voucher';
-    else if(trans == 'Purchase Invoice') trans = 'Payable Voucher';
-
-    trans_det = trans+' Detail'
-
-    if(trans == 'Receivable Voucher') trans_det = 'RV Detail';
-    else if(trans == 'Payable Voucher') trans_det = 'PV Detail';
-    else if(trans == 'Purchase Order') trans_det = 'PO Detail';
-
-    if(order_type != '') add_code += ' AND t1.order_type = '+order_type;
-
-    switch(based_on){
-      case 'Item'           :     item = this.get_filter('Profile', 'Item').get_value();
-                                  col = 'DISTINCT t2.item_code, t3.item_name';
-                                  add_tables = ',tabItem t3';
-                                  add_cond += ' AND t2.item_code = t3.name';
-                                  if(item) add_cond += ' AND t2.item_code = "'+item+'"';
-                                  break;
-      case 'Customer'       :     cust = this.get_filter('Profile', 'Customer').get_value();
-                                  col = 'DISTINCT t1.customer, t3.territory';
-                                  add_tables = ',tabCustomer t3';
-                                  add_cond += ' AND t1.customer = t3.name';
-                                  if(cust) add_cond += ' AND t1.customer = "'+cust+'"';
-                                  break;
-      case 'Supplier'      :      supp = this.get_filter('Profile', 'Supplier').get_value();
-                                  col = 'DISTINCT t1.supplier, t3.supplier_type';
-                                  add_tables = ',tabSupplier t3';
-                                  add_cond += ' AND t1.supplier = t3.name';
-                                  if(supp) add_cond += ' AND t1.supplier = "'+supp+'"';
-                                  break;
-      case 'Supplier Type'  :     supp_type = this.get_filter('Profile', 'Supplier Type').get_value();
-                                  col = 'DISTINCT t3.supplier_type';
-                                  add_tables = ',tabSupplier t3';
-                                  add_cond += ' AND t1.supplier = t3.name';
-                                  if(supp_type) add_cond += ' AND t1.supplier_type = "'+supp_type+'"';
-                                  break;
-      case 'Project'        :     pro = this.get_filter('Profile', 'Project').get_value();
-      							  if (inList(['Purchase Order', 'Purchase Receipt', 'Payable Voucher'], trans)) {
-									  col = 'DISTINCT t2.project_name';
-    	                              if(pro) add_cond += ' AND t2.project_name = "'+pro+'"';
-    	                          } else {
-	    	                          col = 'DISTINCT t1.project_name';
-    	                              if(pro) add_cond += ' AND t1.project_name = "'+pro+'"';
-    	                          }
-                                  break;
-      case 'Item Group'     :     ig = this.get_filter('Profile', 'Item Group').get_value();
-                                  if(ig) sp_cond += ' AND parent.name = "'+ig+'"';
-                                  break;
-      case 'Customer Group' :     cg = this.get_filter('Profile', 'Customer Group').get_value();
-                                  if(cg) sp_cond += ' AND parent.name = "'+cg+'"';
-                                  break;
-      case 'Territory'      :     ter = this.get_filter('Profile', 'Territory').get_value();
-                                  if(ter) sp_cond += ' AND parent.name = "'+ter+'"';
-                                  break;
-
-    }
-
-    
-    if(based_on == 'Item' || based_on == 'Customer' || based_on == 'Supplier' || based_on == 'Supplier Type' || based_on == 'Project')
-      var q ='SELECT '+col+' FROM `tab'+trans+'` t1, `tab'+trans_det+'` t2 '+add_tables+' WHERE t1.fiscal_year = "'+fiscal_year+'" and t1.company = "'+company+'" and t2.parent = t1.name '+add_cond;
-    else
-      var q = 'SELECT CONCAT(REPEAT("     ", COUNT(parent.name) - 1), node.name) AS "Name" FROM `tab'+based_on+'` node,`tab'+based_on+'` parent WHERE node.lft BETWEEN parent.lft and parent.rgt and node.docstatus !=2 '+sp_cond+' GROUP BY node.name ORDER BY node.lft';
-   
-    return q;
-  }
-}
diff --git a/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.py b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.py
deleted file mode 100644
index 2198204..0000000
--- a/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.py
+++ /dev/null
@@ -1,182 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# ********************************************* INITIALIZATION *******************************************
-out = []
-
-# Filter Values
-# =============================================
-based_on = filter_values.get('based_on')
-group_by = filter_values.get('group_by')
-trans = filter_values.get('transaction')
-period = filter_values.get('period')
-order_type = filter_values.get('order_type')
-company = filter_values.get('company')
-fiscal_year = filter_values.get('fiscal_year')
-item = filter_values.get('item')
-item_group = filter_values.get('item_group')
-customer = filter_values.get('customer')
-customer_group = filter_values.get('customer_group')
-territory = filter_values.get('territory')
-supplier = filter_values.get('supplier')
-supplier_type = filter_values.get('supplier_type')
-project = filter_values.get('project')
-
-
-# ********************************************* SET DEFAULTS **************************************************
-# Details Table
-# --------------
-if trans == 'Sales Invoice': trans = 'Receivable Voucher'
-elif trans == 'Purchase Invoice': trans = 'Payable Voucher'
-
-trans_det = trans+' Detail'
-
-if trans == 'Receivable Voucher': trans_det = 'RV Detail'
-elif trans == 'Payable Voucher': trans_det = 'PV Detail'
-elif trans == 'Purchase Order': trans_det = 'PO Detail'
-
-col_names, query_val = get_obj('TA Control').get_single_year_query_value(fiscal_year, period, trans, trans_det)
-query_val += 'SUM(t2.qty), SUM(t2.amount)'
-
-col_names.append('Total (Qty)')
-col_names.append('Total (Amt)')
-
-
-# ********************************************* VALIDATIONS ***************************************************
-if (based_on in ['Customer','Customer Group','Territory'] and group_by == 'Supplier') or (based_on in ['Supplier','Supplier Type'] and group_by == 'Customer'):
-	msgprint("Sorry! You cannot group Trend Analyzer based on %s by %s" % (based_on,group_by))
-	raise Exception
-
-if based_on == group_by:
-	msgprint("Based On and Group By value cannot be same for Trend Analyzer")
-	raise Exception
-
-
-# ********************************************** ADD COLUMNS **********************************************
-cols = [[based_on, 'Data', '300px', '']]
-cr = 1
-if based_on == 'Item':
-	cols.append(['Item Name','Data','200px',''])
-	cr = 2
-elif based_on == 'Customer':
-	cols.append(['Territory','Link','150px','Territory'])
-	cr = 2
-elif based_on == 'Supplier':
-	cols.append(['Supplier Type','Link','150px','Supplier Type'])
-	cr = 2
-if group_by:
-	cr += 1
-
-if group_by:
-	cols.append([group_by,'Data','150px',''])
-
-for c in col_names:
-	cols.append([c,'Currency','150px',''])
-
-for c in cols:
-	colnames.append(c[0])
-	coltypes.append(c[1])
-	colwidths.append(c[2])
-	coloptions.append(c[3])
-	col_idx[c[0]] = len(colnames)-1
-
-
-# ******************************************* ADDITIONAL CONDITION ************************************************
-add_cond = ' t2.parent = t1.name AND t1.company = "%s" AND t1.fiscal_year = "%s" and t1.docstatus = 1' % (company, fiscal_year)
-add_tab = ' `tab'+trans+'` t1, `tab'+trans_det+'` t2'
-if order_type: add_cond += ' AND t1.order_type = "%s"' % order_type
-
-
-# Item
-if item or based_on == 'Item':
-	add_cond += ' AND t2.item_code = "%s"' % (based_on != 'Item' and item or '%(value)s')
-
-# Item Group
-if item_group or based_on == 'Item Group':
-	add_tab += ' ,`tabItem` t3, `tabItem Group` t4 '
-	add_cond += ' AND t3.name = t2.item_code AND t3.item_group = t4.name and (t4.name = "%s" or t4.name IN (SELECT t5.name FROM `tabItem Group` t5,`tabItem Group` t6 WHERE t5.lft BETWEEN t6.lft and t6.rgt and t5.docstatus !=2 and t6.name = "%s"))' % (based_on != 'Item Group' and item_group or '%(value)s', based_on != 'Item Group' and item_group or '%(value)s')
-
-# Customer
-if customer or based_on == 'Customer':
-	add_cond += ' AND t1.customer = "%s"' % (based_on != 'Customer' and customer or '%(value)s')
-
-# Customer Group
-if customer_group or based_on == 'Customer Group':
-	add_tab += ' ,`tabCustomer` t7, `tabCustomer Group` t8 '
-	add_cond += ' AND t7.name = t1.customer AND t7.customer_group = t8.name and (t8.name = "%s" or t8.name IN (SELECT t9.name FROM `tabCustomer Group` t9,`tabCustomer Group` t10 WHERE t9.lft BETWEEN t10.lft and t10.rgt and t9.docstatus !=2 and ifnull(t9.is_group,"No") = "No" and t10.name = "%s"))' % (based_on != 'Customer Group'	and customer_group or '%(value)s', based_on != 'Customer Group'	and customer_group or '%(value)s')
-	
-# Territory
-if territory or based_on == 'Territory':
-	add_tab += ' ,`tabTerritory` t11 '
-	add_cond += ' AND t1.territory = t11.name and (t11.name = "%s" or t11.name IN (SELECT t12.name FROM `tabTerritory` t12,`tabTerritory` t13 WHERE t12.lft BETWEEN t13.lft and t13.rgt and t12.docstatus !=2 and ifnull(t12.is_group,"No") = "No" and t13.name = "%s"))' % (based_on != 'Territory' and territory or '%(value)s', based_on != 'Territory' and territory or '%(value)s')
-
-# Supplier
-if supplier or based_on == 'Supplier':
-	add_cond += ' AND t1.supplier = "%s"' % (based_on != 'Supplier' and supplier or '%(value)s')
-	
-# Supplier Type
-if supplier_type or based_on == 'Supplier Type':
-	add_tab += ' ,`tabSupplier` t14, `tabSupplier Type` t15 '
-	add_cond += ' AND t14.name = t1.supplier AND t14.supplier_type = t15.name and t15.name = "%s"' % (based_on != 'Supplier Type' and supplier_type or '%(value)s')
-
-# Project
-if project or based_on == 'Project':
-	if trans in ['Purchase Order', 'Purchase Receipt', 'Payable Voucher']:
-		add_cond += ' AND t2.project_name = "%s"' % (based_on != 'Project' and project or '%(value)s')
-	else:
-		add_cond += ' AND t1.project_name = "%s"' % (based_on != 'Project' and project or '%(value)s')
-	
-# Column to be seleted for group by condition
-# ==============================================
-sel_col = ''
-if group_by == 'Item':
-	sel_col = 't2.item_code'
-elif group_by == 'Customer':
-	sel_col = 't1.customer'
-elif group_by == 'Supplier':
-	sel_col = 't1.supplier'
-	
-	
-# ********************************************** Result Set ************************************************
-for r in res:
-	main_det = sql("SELECT %s FROM %s WHERE %s" % (query_val, add_tab, add_cond % {'value':cstr(r[col_idx[based_on]]).strip()}))
-	if group_by:
-		for col in range(cr,cr+1): # this would make all first row blank. just for look
-			r.append('')
-	if main_det[0][len(colnames) - cr - 1]:
-		for d in range(len(colnames) - cr):
-			r.append(flt(main_det[0][d]))
-		out.append(r)
-		
-		if group_by:
-			flag = 1
-			# check for root nodes
-			if based_on in ['Item Group','Customer Group','Territory']:
-				is_grp = sql("select is_group from `tab%s` where name = '%s'" % (based_on, cstr(r[col_idx[based_on]]).strip()))
-				is_grp = is_grp and cstr(is_grp[0][0]) or ''
-				if is_grp != 'No':
-					flag = 0
-
-			if flag == 1:	
-				det = [x[0] for x in sql("SELECT DISTINCT %s FROM %s where %s" % (sel_col, add_tab, add_cond % {'value':cstr(r[col_idx[based_on]]).strip()}))]
-
-				for des in range(len(det)):
-					t_row = ['' for i in range(len(colnames))]
-					t_row[col_idx[group_by]] = cstr(det[des])
-					gr_det = sql("SELECT %s FROM %s WHERE %s = '%s' and %s" % (query_val, add_tab, sel_col, cstr(det[des]), add_cond % {'value':cstr(r[col_idx[based_on]]).strip()}))
-					for d in range(len(col_names)):
-						t_row[col_idx[col_names[d]]] = flt(gr_det[0][d])
-					out.append(t_row)
diff --git a/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt
deleted file mode 100644
index a099c97..0000000
--- a/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, trend_analyzer
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-12-14 10:23:18',
-		'docstatus': 0,
-		'modified': '2010-11-10 11:06:06',
-		'modified_by': 'Administrator',
-		'owner': 'saumil@webnotestech.com'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Profile\x01ID,Profile\x01Owner',
-		'criteria_name': 'Trend Analyzer',
-		'doc_type': 'Profile',
-		'doctype': 'Search Criteria',
-		'filters': '{}',
-		'module': 'Analysis',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabProfile`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, trend_analyzer
-	{
-		'doctype': 'Search Criteria',
-		'name': 'trend_analyzer'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt b/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt
deleted file mode 100644
index 2f55a1f..0000000
--- a/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-# Search Criteria, yearly_transaction_summary
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-20 13:00:43',
-		'docstatus': 0,
-		'modified': '2010-09-17 16:03:04',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Profile\x01ID',
-		'criteria_name': 'Yearly Transaction Summary',
-		'doc_type': 'Profile',
-		'doctype': 'Search Criteria',
-		'filters': "{'DocType\x01Fiscal Year':'2009-2010','DocType\x01Company':'Alpha Company','DocType\x01Period':'Monthly'}",
-		'module': 'Analysis',
-		'name': '__common__',
-		'sort_by': '`tabProfile`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, yearly_transaction_summary
-	{
-		'doctype': 'Search Criteria',
-		'name': 'yearly_transaction_summary'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/DocType Label/Indent/Indent.txt b/erpnext/buying/DocType Label/Indent/Indent.txt
deleted file mode 100644
index 4ff4724..0000000
--- a/erpnext/buying/DocType Label/Indent/Indent.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# DocType Label, Indent
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-01-10 15:33:53',
-		'docstatus': 0,
-		'modified': '2012-01-10 15:33:53',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType Label
-	{
-		'doctype': 'DocType Label',
-		'dt': 'Indent',
-		'dt_label': 'Purchase Requisition',
-		'name': '__common__'
-	},
-
-	# DocType Label, Indent
-	{
-		'doctype': 'DocType Label',
-		'name': 'Indent'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt b/erpnext/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt
deleted file mode 100644
index fa9ab06..0000000
--- a/erpnext/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-# DocType Mapper, Indent-Purchase Order
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:34',
-		'docstatus': 0,
-		'modified': '2012-02-14 15:21:20',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'name': '__common__',
-		'parent': u'Indent-Purchase Order',
-		'parentfield': u'table_mapper_details',
-		'parenttype': u'DocType Mapper'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'map': u'Yes',
-		'name': '__common__',
-		'parent': u'Indent-Purchase Order',
-		'parentfield': u'field_mapper_details',
-		'parenttype': u'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': u'DocType Mapper',
-		'from_doctype': u'Indent',
-		'module': u'Buying',
-		'name': '__common__',
-		'ref_doc_submitted': 1,
-		'to_doctype': u'Purchase Order'
-	},
-
-	# DocType Mapper, Indent-Purchase Order
-	{
-		'doctype': u'DocType Mapper',
-		'name': u'Indent-Purchase Order'
-	},
-
-	# Field Mapper Detail
-	{
-		'checking_operator': u'=',
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'company',
-		'match_id': 0,
-		'to_field': u'company'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'parenttype',
-		'match_id': 1,
-		'to_field': u'prevdoc_doctype'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'parent',
-		'match_id': 1,
-		'to_field': u'prevdoc_docname'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'name',
-		'match_id': 1,
-		'to_field': u'prevdoc_detail_docname'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'uom',
-		'match_id': 1,
-		'to_field': u'stock_uom'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval:flt(1)',
-		'match_id': 1,
-		'to_field': u'conversion_factor'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval:flt(obj.qty) - flt(obj.ordered_qty)',
-		'match_id': 1,
-		'to_field': u'stock_qty'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'eval:flt(obj.qty) - flt(obj.ordered_qty)',
-		'match_id': 1,
-		'to_field': u'qty'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': u'Field Mapper Detail',
-		'from_field': u'schedule_date',
-		'match_id': 1,
-		'to_field': u'schedule_date'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_table': u'Indent',
-		'match_id': 0,
-		'reference_key': u'prevdoc_docname',
-		'to_table': u'Purchase Order',
-		'validation_logic': u'docstatus = 1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': u'Table Mapper Detail',
-		'from_field': u'indent_details',
-		'from_table': u'Indent Detail',
-		'match_id': 1,
-		'reference_doctype_key': u'prevdoc_doctype',
-		'to_field': u'po_details',
-		'to_table': u'PO Detail',
-		'validation_logic': u'qty > ifnull(ordered_qty,0) and docstatus =1'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/DocType Mapper/Purchase Request-Purchase Order/Purchase Request-Purchase Order.txt b/erpnext/buying/DocType Mapper/Purchase Request-Purchase Order/Purchase Request-Purchase Order.txt
new file mode 100644
index 0000000..befcb8c
--- /dev/null
+++ b/erpnext/buying/DocType Mapper/Purchase Request-Purchase Order/Purchase Request-Purchase Order.txt
@@ -0,0 +1,142 @@
+# DocType Mapper, Purchase Request-Purchase Order
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2010-08-08 17:09:34',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'name': '__common__',
+		'parent': u'Purchase Request-Purchase Order',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'map': u'Yes',
+		'name': '__common__',
+		'parent': u'Purchase Request-Purchase Order',
+		'parentfield': u'field_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': u'DocType Mapper',
+		'from_doctype': u'Purchase Request',
+		'module': u'Buying',
+		'name': '__common__',
+		'ref_doc_submitted': 1,
+		'to_doctype': u'Purchase Order'
+	},
+
+	# DocType Mapper, Purchase Request-Purchase Order
+	{
+		'doctype': u'DocType Mapper',
+		'name': u'Purchase Request-Purchase Order'
+	},
+
+	# Field Mapper Detail
+	{
+		'checking_operator': u'=',
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'company',
+		'match_id': 0,
+		'to_field': u'company'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parenttype',
+		'match_id': 1,
+		'to_field': u'prevdoc_doctype'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parent',
+		'match_id': 1,
+		'to_field': u'prevdoc_docname'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'name',
+		'match_id': 1,
+		'to_field': u'prevdoc_detail_docname'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'uom',
+		'match_id': 1,
+		'to_field': u'stock_uom'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval:flt(1)',
+		'match_id': 1,
+		'to_field': u'conversion_factor'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval:flt(obj.qty) - flt(obj.ordered_qty)',
+		'match_id': 1,
+		'to_field': u'stock_qty'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval:flt(obj.qty) - flt(obj.ordered_qty)',
+		'match_id': 1,
+		'to_field': u'qty'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'schedule_date',
+		'match_id': 1,
+		'to_field': u'schedule_date'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_table': u'Purchase Request',
+		'match_id': 0,
+		'reference_key': u'prevdoc_docname',
+		'to_table': u'Purchase Order',
+		'validation_logic': u'docstatus = 1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'indent_details',
+		'from_table': u'Purchase Request Item',
+		'match_id': 1,
+		'reference_doctype_key': u'prevdoc_doctype',
+		'to_field': u'po_details',
+		'to_table': u'Purchase Order Item',
+		'validation_logic': u'qty > ifnull(ordered_qty,0) and docstatus =1'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/buying/DocType Mapper/Sales Order-Indent/Sales Order-Indent.txt b/erpnext/buying/DocType Mapper/Sales Order-Indent/Sales Order-Indent.txt
deleted file mode 100755
index b4dafc9..0000000
--- a/erpnext/buying/DocType Mapper/Sales Order-Indent/Sales Order-Indent.txt
+++ /dev/null
@@ -1,116 +0,0 @@
-# DocType Mapper, Sales Order-Indent
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-05-20 10:07:55',
-		'docstatus': 0,
-		'modified': '2011-09-14 12:36:25',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'name': '__common__',
-		'parent': 'Sales Order-Indent',
-		'parentfield': 'table_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'name': '__common__',
-		'parent': 'Sales Order-Indent',
-		'parentfield': 'field_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': 'DocType Mapper',
-		'from_doctype': 'Sales Order',
-		'module': 'Buying',
-		'name': '__common__',
-		'ref_doc_submitted': 1,
-		'to_doctype': 'Indent'
-	},
-
-	# DocType Mapper, Sales Order-Indent
-	{
-		'doctype': 'DocType Mapper',
-		'name': 'Sales Order-Indent'
-	},
-
-	# Field Mapper Detail
-	{
-		'checking_operator': '>=',
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'transaction_date',
-		'map': 'No',
-		'match_id': 0,
-		'to_field': 'transaction_date'
-	},
-
-	# Field Mapper Detail
-	{
-		'checking_operator': '=',
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'company',
-		'map': 'Yes',
-		'match_id': 0,
-		'to_field': 'company'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parent',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'sales_order_no'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'stock_uom',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'uom'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'reserved_warehouse',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'warehouse'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'sales_order_details',
-		'from_table': 'Sales Order Detail',
-		'match_id': 1,
-		'reference_doctype_key': 'prevdoc_doctype',
-		'reference_key': 'prevdoc_detail_docname',
-		'to_field': 'indent_details',
-		'to_table': 'Indent Detail',
-		'validation_logic': 'docstatus=1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_table': 'Sales Order',
-		'match_id': 0,
-		'reference_key': 'prevdoc_docname',
-		'to_table': 'Indent',
-		'validation_logic': 'docstatus = 1'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/DocType Mapper/Sales Order-Purchase Request/Sales Order-Purchase Request.txt b/erpnext/buying/DocType Mapper/Sales Order-Purchase Request/Sales Order-Purchase Request.txt
new file mode 100755
index 0000000..6dc79e6
--- /dev/null
+++ b/erpnext/buying/DocType Mapper/Sales Order-Purchase Request/Sales Order-Purchase Request.txt
@@ -0,0 +1,116 @@
+# DocType Mapper, Sales Order-Purchase Request
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2011-05-20 10:07:55',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'name': '__common__',
+		'parent': u'Sales Order-Purchase Request',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'name': '__common__',
+		'parent': u'Sales Order-Purchase Request',
+		'parentfield': u'field_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': 'DocType Mapper',
+		'from_doctype': u'Sales Order',
+		'module': u'Buying',
+		'name': '__common__',
+		'ref_doc_submitted': 1,
+		'to_doctype': u'Purchase Request'
+	},
+
+	# DocType Mapper, Sales Order-Purchase Request
+	{
+		'doctype': 'DocType Mapper',
+		'name': u'Sales Order-Purchase Request'
+	},
+
+	# Field Mapper Detail
+	{
+		'checking_operator': u'>=',
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'transaction_date',
+		'map': u'No',
+		'match_id': 0,
+		'to_field': u'transaction_date'
+	},
+
+	# Field Mapper Detail
+	{
+		'checking_operator': u'=',
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'company',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'company'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parent',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'sales_order_no'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'stock_uom',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'uom'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'reserved_warehouse',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'warehouse'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'sales_order_details',
+		'from_table': u'Sales Order Item',
+		'match_id': 1,
+		'reference_doctype_key': u'prevdoc_doctype',
+		'reference_key': u'prevdoc_detail_docname',
+		'to_field': u'indent_details',
+		'to_table': u'Purchase Request Item',
+		'validation_logic': u'docstatus=1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_table': u'Sales Order',
+		'match_id': 0,
+		'reference_key': u'prevdoc_docname',
+		'to_table': u'Purchase Request',
+		'validation_logic': u'docstatus = 1'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/buying/Module Def/Buying/Buying.txt b/erpnext/buying/Module Def/Buying/Buying.txt
deleted file mode 100644
index 16cae81..0000000
--- a/erpnext/buying/Module Def/Buying/Buying.txt
+++ /dev/null
@@ -1,155 +0,0 @@
-# Module Def, Buying
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-01 17:40:38',
-		'docstatus': 0,
-		'modified': '2012-01-10 17:52:19',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'name': '__common__',
-		'parent': 'Buying',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def Item
-	{
-		'doctype': 'Module Def Item',
-		'name': '__common__',
-		'parent': 'Buying',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def
-	{
-		'disabled': 'No',
-		'doctype': u'Module Def',
-		'doctype_list': 'DocType Mapper, Purchase Receipt-Payable Voucher\nDocType Mapper, Purchase Order-Payable Voucher\nDocType Mapper, Purchase Order-Purchase Receipt\nDocType Mapper, Indent-Purchase Order\nPrint Format, Purchase Order Format\nPrint Format, Purchase Receipt Format\nDocType Label, Indent',
-		'file_list': 'scm.gif,FileData/00209',
-		'is_hidden': 'No',
-		'module_desc': '<p>All details about your Suppliers and past transactions</p>',
-		'module_icon': 'Buying.gif',
-		'module_label': 'Buying',
-		'module_name': 'Buying',
-		'module_seq': 4,
-		'name': '__common__'
-	},
-
-	# Module Def, Buying
-	{
-		'doctype': u'Module Def',
-		'name': 'Buying'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Your Supplier Database',
-		'display_name': 'Supplier',
-		'doc_name': 'Supplier',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'id\nsupplier_type\nsupplier_status\ncompany'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Buy requests from various people in your company',
-		'display_name': 'Indent',
-		'doc_name': 'Indent',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\ntransaction_date\nsales_order_no\nremark'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Orders you have placed to your suppliers',
-		'display_name': 'Purchase Order',
-		'doc_name': 'Purchase Order',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\nsupplier\ntransaction_date\ngrand_total'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Itemwise Receipt Details',
-		'doc_name': 'Purchase Receipt Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Purchase in Transit',
-		'doc_name': 'PV Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Pending PO Items To Receive',
-		'doc_name': 'PO Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Pending PO Items To Bill',
-		'doc_name': 'PO Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Itemwise Purchase Details',
-		'doc_name': 'PO Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Ledger details of your creditors',
-		'display_name': "Creditor's Ledger",
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'icon': 'accept.gif'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Purchase User'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Purchase Manager'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Administrator'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Purchase Master Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/Print Format/Purchase Order Classic/Purchase Order Classic.txt b/erpnext/buying/Print Format/Purchase Order Classic/Purchase Order Classic.txt
index 604d2d8..fd074e3 100644
--- a/erpnext/buying/Print Format/Purchase Order Classic/Purchase Order Classic.txt
+++ b/erpnext/buying/Print Format/Purchase Order Classic/Purchase Order Classic.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Purchase Order',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Georgia", serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Georgia", serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table thead {\n\t\tborder-bottom: 1px solid black;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px 0px;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Purchase Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'po_details\',\n\t\t\t\t\'PO Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'import_rate\', \'import_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t]\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Purchase Tax Detail\', doc.name, \'purchase_tax_details\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\trows +=\n\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + \'</td>\\n\' +\n\t\t\t\t\t\'</tr>\\n\';\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td><script>\'<h1>\' + (doc.select_print_heading || \'Purchase Order\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.supplier_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Purchase Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_import</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Georgia", serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Georgia", serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table thead {\n\t\tborder-bottom: 1px solid black;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px 0px;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Purchase Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'po_details\',\n\t\t\t\t\'Purchase Order Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'import_rate\', \'import_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t]\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Purchase Taxes and Charges\', doc.name, \'purchase_tax_details\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\trows +=\n\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + \'</td>\\n\' +\n\t\t\t\t\t\'</tr>\\n\';\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td><script>\'<h1>\' + (doc.select_print_heading || \'Purchase Order\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.supplier_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Purchase Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_import</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Buying',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/buying/Print Format/Purchase Order Modern/Purchase Order Modern.txt b/erpnext/buying/Print Format/Purchase Order Modern/Purchase Order Modern.txt
index f5cafe4..90a135e 100644
--- a/erpnext/buying/Print Format/Purchase Order Modern/Purchase Order Modern.txt
+++ b/erpnext/buying/Print Format/Purchase Order Modern/Purchase Order Modern.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Purchase Order',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Helvetica", "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Helvetica", "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t\tborder-style: none !important;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t\tborder-style: none !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h1 {\n\t\ttext-transform: uppercase;\n\t\tcolor: white;\n\t\tfont-size: 55px;\n\t\tfont-style: italic;\n\t}\n\n\ttable.header-table thead tr:nth-child(1) div {\n\t\theight: 24px;\n\t\tbackground-color: #696969;\n\t\tvertical-align: middle;\n\t\tpadding: 12px 0px 0px 0px;\n\t\twidth: 100%;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body table tr td {\n\t\tbackground-color: #DCDCDC !important;\n\t}\n\n\tdiv.page-body table tr:nth-child(1) td {\n\t\tbackground-color: #696969 !important;\n\t\tcolor: white !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table tfoot td {\n\t\tbackground-color: #696969;\n\t\theight: 10px;\n\t}\n\n\t.imp-details {\n\t\tbackground-color: #DCDCDC;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Purchase Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'po_details\',\n\t\t\t\t\'PO Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'import_rate\', \'import_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t]\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Purchase Tax Detail\', doc.name, \'purchase_tax_details\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\trows +=\n\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + \'</td>\\n\' +\n\t\t\t\t\t\'</tr>\\n\';\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><div><script>\'<h1>\' + (doc.select_print_heading || \'Purchase Order\') + \'</h1>\'</script></div></td></tr>\n\t\t\t<tr><td colspan=2><div style="height:15px"></div></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.supplier_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr class=\'imp-details\'>\n\t\t\t\t\t\t<td><b>Purchase Order No.</b></td>\n\t\t\t\t\t\t<td><script>cur_frm.docname</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Purchase Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\' class=\'imp-details\'>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_import</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\t<tr><td colspan=2><div></div></td><tr>\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Helvetica", "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Helvetica", "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t\tborder-style: none !important;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t\tborder-style: none !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h1 {\n\t\ttext-transform: uppercase;\n\t\tcolor: white;\n\t\tfont-size: 55px;\n\t\tfont-style: italic;\n\t}\n\n\ttable.header-table thead tr:nth-child(1) div {\n\t\theight: 24px;\n\t\tbackground-color: #696969;\n\t\tvertical-align: middle;\n\t\tpadding: 12px 0px 0px 0px;\n\t\twidth: 100%;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body table tr td {\n\t\tbackground-color: #DCDCDC !important;\n\t}\n\n\tdiv.page-body table tr:nth-child(1) td {\n\t\tbackground-color: #696969 !important;\n\t\tcolor: white !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table tfoot td {\n\t\tbackground-color: #696969;\n\t\theight: 10px;\n\t}\n\n\t.imp-details {\n\t\tbackground-color: #DCDCDC;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Purchase Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'po_details\',\n\t\t\t\t\'Purchase Order Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'import_rate\', \'import_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t]\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Purchase Taxes and Charges\', doc.name, \'purchase_tax_details\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\trows +=\n\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + \'</td>\\n\' +\n\t\t\t\t\t\'</tr>\\n\';\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><div><script>\'<h1>\' + (doc.select_print_heading || \'Purchase Order\') + \'</h1>\'</script></div></td></tr>\n\t\t\t<tr><td colspan=2><div style="height:15px"></div></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.supplier_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr class=\'imp-details\'>\n\t\t\t\t\t\t<td><b>Purchase Order No.</b></td>\n\t\t\t\t\t\t<td><script>cur_frm.docname</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Purchase Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\' class=\'imp-details\'>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_import</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\t<tr><td colspan=2><div></div></td><tr>\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Buying',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/buying/Print Format/Purchase Order Spartan/Purchase Order Spartan.txt b/erpnext/buying/Print Format/Purchase Order Spartan/Purchase Order Spartan.txt
index 70d6961..7b0510d 100644
--- a/erpnext/buying/Print Format/Purchase Order Spartan/Purchase Order Spartan.txt
+++ b/erpnext/buying/Print Format/Purchase Order Spartan/Purchase Order Spartan.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Purchase Order',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 0px;\n\t}\n\n\ttable {\n\t\twidth: 100% !important;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\n\ttable, td {\n\t\tborder-collapse: collapse !important;\n\t\tpadding: 0px;\n\t\tmargin: 0px !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px;\n\t}\n\n\ttable.header-table > thead,\n\ttable.header-table > tbody > tr > td,\n\ttable.footer-table > tbody > tr > td {\n\t\tborder: 1px solid black;\n\t\tpadding: 5px;\n\t}\n\n\ttable.footer-table > tbody,\n\ttable.header-table > thead {\n\t\tborder-bottom: 3px solid black;\n\t}\n\n\ttable.header-table > thead {\n\t\tborder-top: 3px solid black;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body td {\n\t\tbackground-color: white !important;\n\t\tborder: 1px solid black !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Purchase Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'po_details\',\n\t\t\t\t\'PO Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'import_rate\', \'import_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t]\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Purchase Tax Detail\', doc.name, \'purchase_tax_details\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\trows +=\n\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + \'</td>\\n\' +\n\t\t\t\t\t\'</tr>\\n\';\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><script>\'<h1>\' + (doc.select_print_heading || \'Purchase Order\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.supplier_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Purchase Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_import</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 0px;\n\t}\n\n\ttable {\n\t\twidth: 100% !important;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\n\ttable, td {\n\t\tborder-collapse: collapse !important;\n\t\tpadding: 0px;\n\t\tmargin: 0px !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px;\n\t}\n\n\ttable.header-table > thead,\n\ttable.header-table > tbody > tr > td,\n\ttable.footer-table > tbody > tr > td {\n\t\tborder: 1px solid black;\n\t\tpadding: 5px;\n\t}\n\n\ttable.footer-table > tbody,\n\ttable.header-table > thead {\n\t\tborder-bottom: 3px solid black;\n\t}\n\n\ttable.header-table > thead {\n\t\tborder-top: 3px solid black;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body td {\n\t\tbackground-color: white !important;\n\t\tborder: 1px solid black !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Purchase Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'po_details\',\n\t\t\t\t\'Purchase Order Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'import_rate\', \'import_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t]\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Purchase Taxes and Charges\', doc.name, \'purchase_tax_details\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\trows +=\n\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + \'</td>\\n\' +\n\t\t\t\t\t\'</tr>\\n\';\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><script>\'<h1>\' + (doc.select_print_heading || \'Purchase Order\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.supplier_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Purchase Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_import)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_import</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Buying',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/buying/Role/Purchase Manager/Purchase Manager.txt b/erpnext/buying/Role/Purchase Manager/Purchase Manager.txt
deleted file mode 100644
index b02d186..0000000
--- a/erpnext/buying/Role/Purchase Manager/Purchase Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Purchase Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-08 12:07:53',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Buying',
-		'name': '__common__',
-		'role_name': 'Purchase Manager'
-	},
-
-	# Role, Purchase Manager
-	{
-		'doctype': 'Role',
-		'name': 'Purchase Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/Role/Purchase Master Manager/Purchase Master Manager.txt b/erpnext/buying/Role/Purchase Master Manager/Purchase Master Manager.txt
deleted file mode 100644
index 41d9f23..0000000
--- a/erpnext/buying/Role/Purchase Master Manager/Purchase Master Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Purchase Master Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-08 13:50:20',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Buying',
-		'name': '__common__',
-		'role_name': 'Purchase Master Manager'
-	},
-
-	# Role, Purchase Master Manager
-	{
-		'doctype': 'Role',
-		'name': 'Purchase Master Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/Role/Purchase User/Purchase User.txt b/erpnext/buying/Role/Purchase User/Purchase User.txt
deleted file mode 100644
index 1495c84..0000000
--- a/erpnext/buying/Role/Purchase User/Purchase User.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Purchase User
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-08 12:08:01',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Buying',
-		'name': '__common__',
-		'role_name': 'Purchase User'
-	},
-
-	# Role, Purchase User
-	{
-		'doctype': 'Role',
-		'name': 'Purchase User'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/Role/Supplier/Supplier.txt b/erpnext/buying/Role/Supplier/Supplier.txt
deleted file mode 100644
index 97f4d09..0000000
--- a/erpnext/buying/Role/Supplier/Supplier.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Supplier
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2009-06-26 14:42:19',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Buying',
-		'name': '__common__',
-		'role_name': 'Supplier'
-	},
-
-	# Role, Supplier
-	{
-		'doctype': 'Role',
-		'name': 'Supplier'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/__init__.py b/erpnext/buying/__init__.py
index e69de29..8e18bc5 100644
--- a/erpnext/buying/__init__.py
+++ b/erpnext/buying/__init__.py
@@ -0,0 +1,6 @@
+install_docs = [
+	{"doctype":"Role", "name":"Purchase Manager"},
+	{"doctype":"Role", "name":"Purchase User"},
+	{"doctype":"Role", "name":"Purchase Master Manager"},
+	{"doctype":"Role", "name":"Supplier"}	
+]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/indent/indent.js b/erpnext/buying/doctype/indent/indent.js
deleted file mode 100644
index 570e06c..0000000
--- a/erpnext/buying/doctype/indent/indent.js
+++ /dev/null
@@ -1,140 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-cur_frm.cscript.tname = "Indent Detail";
-cur_frm.cscript.fname = "indent_details";
-
-$import(Purchase Common)
-$import(SMS Control)
-cur_frm.cscript.indent_doctype_label =	get_doctype_label('Indent');
-	
-//========================== On Load =================================================
-cur_frm.cscript.onload = function(doc, cdt, cdn) {
-	if (!doc.transaction_date) doc.transaction_date = dateutil.obj_to_str(new Date())
-	if (!doc.status) doc.status = 'Draft';
-
-	// defined in purchase_common.js
-	//cur_frm.cscript.update_item_details(doc, cdt, cdn);
-}
-
-cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) {
-	// second call
-	if(doc.__islocal){ 
-		cur_frm.cscript.get_item_defaults(doc);
-	}	
-}
-
-cur_frm.cscript.get_item_defaults = function(doc) {
-		var ch = getchildren( 'Indent Detail', doc.name, 'indent_details');
-		if (flt(ch.length) > 0){
-			$c_obj(make_doclist(doc.doctype, doc.name), 'get_item_defaults', '', function(r, rt) {refresh_field('indent_details'); });
-		}
-}
-
-
-//======================= Refresh =====================================
-cur_frm.cscript.refresh = function(doc, cdt, cdn) { 
-
-	// Unhide Fields in Next Steps
-	// ---------------------------------
-	
-	cur_frm.clear_custom_buttons();
-
-	if(doc.docstatus == 1 && doc.status != 'Stopped'){
-		var ch = getchildren('Indent Detail',doc.name,'indent_details');
-		var is_closed = 1;
-		for(var i in ch){
-			if(flt(ch[i].qty) > flt(ch[i].ordered_qty)) is_closed = 0;
-		}
-		if(!is_closed) {
-			cur_frm.add_custom_button('Make Purchase Order', cur_frm.cscript['Make Purchase Order'])
-			cur_frm.add_custom_button('Stop ' + cur_frm.cscript.indent_doctype_label, cur_frm.cscript['Stop Purchase Requisition'])
-		}
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
-	}
- 
-	if(doc.docstatus == 1 && doc.status == 'Stopped')
-		cur_frm.add_custom_button('Unstop ' + cur_frm.cscript.indent_doctype_label, cur_frm.cscript['Unstop Purchase Requisition'])
-		
-	if(doc.docstatus == 1)
-		unhide_field(['Repair Purchase Requisition']);
-	else
-		hide_field(['Repair Purchase Requisition']);
-}
-
-//======================= validation ===================================
-cur_frm.cscript.validate = function(doc,cdt,cdn){
-	is_item_table(doc,cdt,cdn);
-}
-//======================= transaction date =============================
-cur_frm.cscript.transaction_date = function(doc,cdt,cdn){
-	if(doc.__islocal){ 
-		cur_frm.cscript.get_default_schedule_date(doc);
-	}
-}
-
-//=================== Quantity ===================================================================
-cur_frm.cscript.qty = function(doc, cdt, cdn) {
-	var d = locals[cdt][cdn];
-	if (flt(d.qty) < flt(d.min_order_qty))
-		alert("Warning: " + cur_frm.cscript.indent_doctype_label + " Qty is less than Minimum Order Qty");
-}
-
-// On Button Click Functions
-// ------------------------------------------------------------------------------
-
-// Make Purchase Order
-cur_frm.cscript['Make Purchase Order'] = function() {
-	var doc = cur_frm.doc;
-	n = createLocal('Purchase Order');
-	$c('dt_map', args={
-		'docs':compress_doclist([locals['Purchase Order'][n]]),
-		'from_doctype':doc.doctype,
-		'to_doctype':'Purchase Order',
-		'from_docname':doc.name,
-		'from_to_list':"[['Indent','Purchase Order'],['Indent Detail','PO Detail']]"
-		}, function(r,rt) {
-			 loaddoc('Purchase Order', n);
-		}
-	);
-}
-
-// Stop INDENT
-// ==================================================================================================
-cur_frm.cscript['Stop Purchase Requisition'] = function() {
-	var doc = cur_frm.doc;
-	var check = confirm("Do you really want to STOP this " + cur_frm.cscript.indent_doctype_label + "?");
-
-	if (check) {
-		$c('runserverobj', args={'method':'update_status', 'arg': 'Stopped', 'docs': compress_doclist(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
-			cur_frm.refresh();
-		});
-	}
-}
-
-// Un Stop INDENT
-//====================================================================================================
-cur_frm.cscript['Unstop Purchase Requisition'] = function(){
-	var doc = cur_frm.doc
-	var check = confirm("Do you really want to UNSTOP this " + cur_frm.cscript.indent_doctype_label + "?");
-	
-	if (check) {
-		$c('runserverobj', args={'method':'update_status', 'arg': 'Submitted','docs': compress_doclist(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
-			cur_frm.refresh();
-			
-		});
-	}
-}
diff --git a/erpnext/buying/doctype/indent/indent.py b/erpnext/buying/doctype/indent/indent.py
deleted file mode 100644
index c601c91..0000000
--- a/erpnext/buying/doctype/indent/indent.py
+++ /dev/null
@@ -1,235 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-	def __init__(self, doc, doclist=[]):
-		self.doc = doc
-		self.doclist = doclist
-		self.defaults = get_defaults()
-		self.tname = 'Indent Detail'
-		self.fname = 'indent_details'
-
-	# Autoname
-	# ---------
-	def autoname(self):
-		self.doc.name = make_autoname(self.doc.naming_series+'.#####')
-
-
-	def get_default_schedule_date(self):
-		get_obj(dt = 'Purchase Common').get_default_schedule_date(self)
-
-	# Pull Sales Order Details
-	# -------------------------
-	def pull_so_details(self):
-		self.check_if_already_pulled()
-		if self.doc.sales_order_no:
-			get_obj('DocType Mapper', 'Sales Order-Indent', with_children=1).dt_map('Sales Order', 'Indent', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Indent'],['Sales Order Detail', 'Indent Detail']]")
-			self.get_item_defaults()
-		else:
-			msgprint("Please select Sales Order whose details need to pull")
-
-	def check_if_already_pulled(self):
-		pass#if self.[d.sales_order_no for d in getlist(self.doclist, 'indent_details')]
-
-
-	# Get item's other details
-	#- ------------------------
-	def get_item_defaults(self):
-		self.get_default_schedule_date()
-		for d in getlist(self.doclist, 'indent_details'):
-			det = sql("select min_order_qty from tabItem where name = '%s'" % d.item_code)
-			d.min_order_qty = det and flt(det[0][0]) or 0
-
-	# Validate so items
-	# ----------------------------
-	def validate_qty_against_so(self):
-		so_items = {} # Format --> {'SO/00001': {'Item/001': 120, 'Item/002': 24}}
-		for d in getlist(self.doclist, 'indent_details'):
-			if d.sales_order_no:
-				if not so_items.has_key(d.sales_order_no):
-					so_items[d.sales_order_no] = {d.item_code: flt(d.qty)}
-				else:
-					if not so_items[d.sales_order_no].has_key(d.item_code):
-						so_items[d.sales_order_no][d.item_code] = flt(d.qty)
-					else:
-						so_items[d.sales_order_no][d.item_code] += flt(d.qty)
-		
-		for so_no in so_items.keys():
-			for item in so_items[so_no].keys():
-				already_indented = sql("select sum(qty) from `tabIndent Detail` where item_code = '%s' and sales_order_no = '%s' and docstatus = 1 and parent != '%s'" % (item, so_no, self.doc.name))
-				already_indented = already_indented and flt(already_indented[0][0]) or 0
-				
-				actual_so_qty = sql("select sum(qty) from `tabSales Order Detail` where parent = '%s' and item_code = '%s' and docstatus = 1 group by parent" % (so_no, item))
-				actual_so_qty = actual_so_qty and flt(actual_so_qty[0][0]) or 0
-
-				if flt(so_items[so_no][item]) + already_indented > actual_so_qty:
-					msgprint("You can raise indent of maximum qty: %s for item: %s against sales order: %s\n Anyway, you can add more qty in new row for the same item." % (actual_so_qty - already_indented, item, so_no), raise_exception=1)
-				
-		
-	# Validate fiscal year
-	# ----------------------------
-	def validate_fiscal_year(self):
-		get_obj(dt = 'Purchase Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.transaction_date,'Indent Date')
-
-	# get item details
-	# ---------------------------------
-	def get_item_details(self, arg =''):
-		if arg:
-			return get_obj(dt='Purchase Common').get_item_details(self,arg)
-		else:
-			obj = get_obj('Purchase Common')
-			for doc in self.doclist:
-				if doc.fields.get('item_code'):
-					temp = {
-						'item_code': doc.fields.get('item_code'),
-						'warehouse': doc.fields.get('warehouse')
-					}
-					ret = obj.get_item_details(self, json.dumps(temp))
-					for r in ret:
-						if not doc.fields.get(r):
-							doc.fields[r] = ret[r]
-
-
-	# Get UOM Details
-	# ---------------------------------
-	def get_uom_details(self, arg = ''):
-		return get_obj(dt='Purchase Common').get_uom_details(arg)
-
-	# GET TERMS & CONDITIONS
-	#-----------------------------
-	def get_tc_details(self):
-		return get_obj('Purchase Common').get_tc_details(self)
-		
-	# Validate Schedule Date
-	#--------------------------------
-	def validate_schedule_date(self):
-		 #:::::::: validate schedule date v/s indent date ::::::::::::
-		for d in getlist(self.doclist, 'indent_details'):
-			if d.schedule_date < self.doc.transaction_date:
-				msgprint("Expected Schedule Date cannot be before Indent Date")
-				raise Exception
-				
-	# Validate
-	# ---------------------
-	def validate(self):
-		self.validate_schedule_date()
-		self.validate_fiscal_year()
-		
-		# set status as "Draft"
-		set(self.doc, 'status', 'Draft')
-
-		# Get Purchase Common Obj
-		pc_obj = get_obj(dt='Purchase Common')
-
-		# Validate Mandatory
-		pc_obj.validate_mandatory(self)
-
-		# Validate for items
-		pc_obj.validate_for_items(self)
-		
-		# Validate qty against SO
-		self.validate_qty_against_so()
-
-
-	# On Submit Functions
-	#----------------------------------------------------------------------------
-	
-	# Update Indented Qty in Bin
-	def update_bin(self, is_submit, is_stopped):
-		for d in getlist(self.doclist, 'indent_details'):
-			# Step 1:=> Check if is_stock_item == 'Yes'
-			if cstr(sql("select is_stock_item from `tabItem` where name = '%s'" % cstr(d.item_code))[0][0]) == 'Yes':
-				if not d.warehouse:
-					msgprint('Please Enter Warehouse for Item %s as it is stock item.' % cstr(d.item_code))
-					raise Exception
-				# Step 2:=> Set Qty 
-				qty =flt(d.qty)
-				if is_stopped:
-					qty = (d.qty > d.ordered_qty) and flt(flt(d.qty) - flt(d.ordered_qty)) or 0 
-				# Step 3 :=> Update Bin's Indent Qty by +- qty 
-				get_obj('Warehouse', d.warehouse).update_bin(0, 0, 0, (is_submit and 1 or -1) * flt(qty), 0, d.item_code, self.doc.transaction_date)		
-		
-	# On Submit			
-	#---------------------------------------------------------------------------
-	def on_submit(self):
-		# Step 1:=> Set Status
-		set(self.doc,'status','Submitted')
-
-		# Step 2:=> Update Bin
-		self.update_bin(is_submit = 1, is_stopped = 0)
-	
-	def check_modified_date(self):
-		mod_db = sql("select modified from `tabIndent` where name = '%s'" % self.doc.name)
-		date_diff = sql("select TIMEDIFF('%s', '%s')" % ( mod_db[0][0],cstr(self.doc.modified)))
-		
-		if date_diff and date_diff[0][0]:
-			msgprint(cstr(self.doc.doctype) +" => "+ cstr(self.doc.name) +" has been modified. Please Refresh. ")
-			raise Exception
-	
-	# On Stop / unstop
-	#------------------------------------------------------------------------------
-	def update_status(self, status):
-		self.check_modified_date()
-		# Step 1:=> Update Bin
-		self.update_bin(is_submit = (status == 'Submitted') and 1 or 0, is_stopped = 1)
-
-		# Step 2:=> Set status 
-		set(self.doc,'status',cstr(status))
-		
-		# Step 3:=> Acknowledge User
-		msgprint(self.doc.doctype + ": " + self.doc.name + " has been %s." % ((status == 'Submitted') and 'Unstopped' or cstr(status)) )
- 
-	# On Cancel
-	#-----------------------------------------------------------------------------
-	def on_cancel(self):
-		# Step 1:=> Get Purchase Common Obj
-		pc_obj = get_obj(dt='Purchase Common')
-		
-		# Step 2:=> Check for stopped status
-		pc_obj.check_for_stopped_status( self.doc.doctype, self.doc.name)
-		
-		# Step 3:=> Check if Purchase Order has been submitted against current Indent
-		pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Order', docname = self.doc.name, detail_doctype = 'PO Detail')
-		# Step 4:=> Update Bin
-		self.update_bin(is_submit = 0, is_stopped = (cstr(self.doc.status) == 'Stopped') and 1 or 0)
-		
-		# Step 5:=> Set Status
-		set(self.doc,'status','Cancelled')
-
-
-	# Repair Indent
-	# ===========================================
-	def repair_indent(self):
-		get_obj('Purchase Common', 'Purchase Common').repair_curr_doctype_details(self)
diff --git a/erpnext/buying/doctype/indent/indent.txt b/erpnext/buying/doctype/indent/indent.txt
deleted file mode 100644
index d73492b..0000000
--- a/erpnext/buying/doctype/indent/indent.txt
+++ /dev/null
@@ -1,535 +0,0 @@
-# DocType, Indent
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:04',
-		'docstatus': 0,
-		'modified': '2012-01-10 15:39:17',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1326190064',
-		'allow_print': 0,
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'module': 'Buying',
-		'name': '__common__',
-		'read_only_onload': 1,
-		'search_fields': 'status,transaction_date,sales_order_no',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'subject': '%(per_ordered)s% ordered',
-		'version': 197
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Indent',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Indent',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Indent
-	{
-		'doctype': 'DocType',
-		'name': 'Indent'
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Production Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Purchase Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Purchase Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Material Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Material User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Purchase User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Purchase User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'Enter items and their details which are falling short in your warehouse and for which you want your purchase department to raise a purchase order.',
-		'description': 'Enter items and their details for which you want your purchase department to raise a purchase order.',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Basic Info',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'print_hide': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'To manage multiple series please go to Setup > Manage Series',
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'label': 'Series',
-		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
-		'options': 'IDT',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
-		'in_filter': 1,
-		'label': 'Status',
-		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nDraft\nSubmitted\nStopped\nCancelled',
-		'permlevel': 1,
-		'reqd': 0,
-		'search_index': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'The date at which current entry is made in system.',
-		'doctype': 'DocField',
-		'fieldname': 'transaction_date',
-		'fieldtype': 'Date',
-		'in_filter': 1,
-		'label': 'Transaction Date',
-		'no_copy': 1,
-		'oldfieldname': 'transaction_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': 'Client',
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': '% of materials ordered against this Purchase Requisition',
-		'doctype': 'DocField',
-		'fieldname': 'per_ordered',
-		'fieldtype': 'Currency',
-		'label': '% Ordered',
-		'no_copy': 1,
-		'oldfieldname': 'per_ordered',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Items',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'One or multiple Sales Order no which generated this Purchase Requisition',
-		'doctype': 'DocField',
-		'fieldname': 'sales_order_no',
-		'fieldtype': 'Link',
-		'label': 'Sales Order No',
-		'no_copy': 1,
-		'oldfieldname': 'sales_order_no',
-		'oldfieldtype': 'Data',
-		'options': 'Sales Order',
-		'permlevel': 0,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Pull Sales Order Details',
-		'options': 'pull_so_details',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'indent_details',
-		'fieldtype': 'Table',
-		'label': 'Purchase Requisition Details',
-		'no_copy': 0,
-		'oldfieldname': 'indent_details',
-		'oldfieldtype': 'Table',
-		'options': 'Indent Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'Give additional details about the indent.',
-		'description': 'Filing in Additional Information about the Purchase Requisition will help you analyze your data better.',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'More Info',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Select the relevant company name if you have multiple companies',
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Name of the entity who has requested for the Purchase Requisition',
-		'doctype': 'DocField',
-		'fieldname': 'requested_by',
-		'fieldtype': 'Data',
-		'label': 'Requested By',
-		'no_copy': 1,
-		'oldfieldname': 'requested_by',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'remark',
-		'fieldtype': 'Small Text',
-		'label': 'Remarks',
-		'no_copy': 1,
-		'oldfieldname': 'remark',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0,
-		'print_hide': 0,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'After cancelling the Purchase Requisition, a dialog box will ask you reason for cancellation which will be reflected in this field',
-		'doctype': 'DocField',
-		'fieldname': 'cancel_reason',
-		'fieldtype': 'Data',
-		'label': 'Cancel Reason',
-		'no_copy': 1,
-		'oldfieldname': 'cancel_reason',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'label': 'Amended From',
-		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'description': 'The date at which current entry is corrected in the system.',
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'label': 'Amendment Date',
-		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'description': 'Add Terms and Conditions for the Purchase Requisition. You can also prepare a master Term Sheet and use the Template',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Terms',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'letter_head',
-		'fieldtype': 'Select',
-		'label': 'Letter Head',
-		'oldfieldname': 'letter_head',
-		'oldfieldtype': 'Select',
-		'options': 'link:Letter Head',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'tc_name',
-		'fieldtype': 'Link',
-		'label': 'Select Terms',
-		'oldfieldname': 'tc_name',
-		'oldfieldtype': 'Link',
-		'options': 'Term',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Get Terms',
-		'oldfieldtype': 'Button',
-		'options': 'get_tc_details',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'Terms HTML',
-		'oldfieldtype': 'HTML',
-		'options': 'You can add Terms and Notes that will be printed in the Transaction',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'terms',
-		'fieldtype': 'Text Editor',
-		'label': 'Terms Content',
-		'oldfieldname': 'terms',
-		'oldfieldtype': 'Text Editor',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Repair Purchase Requisition',
-		'oldfieldtype': 'Button',
-		'options': 'repair_indent',
-		'permlevel': 0,
-		'print_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/indent_detail/__init__.py b/erpnext/buying/doctype/indent_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/buying/doctype/indent_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/buying/doctype/indent_detail/indent_detail.txt b/erpnext/buying/doctype/indent_detail/indent_detail.txt
deleted file mode 100644
index 136237a..0000000
--- a/erpnext/buying/doctype/indent_detail/indent_detail.txt
+++ /dev/null
@@ -1,262 +0,0 @@
-# DocType, Indent Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:04',
-		'docstatus': 0,
-		'modified': '2011-10-12 13:02:13',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'IDTD/.#####',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Buying',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 34
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Indent Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Indent Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Indent Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'schedule_date',
-		'fieldtype': 'Date',
-		'label': 'Required Date',
-		'no_copy': 1,
-		'oldfieldname': 'schedule_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': 'Client',
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_name',
-		'fieldtype': 'Data',
-		'in_filter': 1,
-		'label': 'Item Name',
-		'oldfieldname': 'item_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse',
-		'fieldtype': 'Link',
-		'label': 'Warehouse',
-		'oldfieldname': 'warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 0,
-		'trigger': 'Client',
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'brand',
-		'fieldtype': 'Link',
-		'label': 'Brand',
-		'oldfieldname': 'brand',
-		'oldfieldtype': 'Link',
-		'options': 'Brand',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'item_group',
-		'fieldtype': 'Link',
-		'in_filter': 1,
-		'label': 'Item Group',
-		'no_copy': 0,
-		'oldfieldname': 'item_group',
-		'oldfieldtype': 'Link',
-		'options': 'Item Group',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': '0.00',
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'label': 'Quantity',
-		'no_copy': 0,
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client',
-		'width': '50px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'lead_time_date',
-		'fieldtype': 'Date',
-		'label': 'Lead Time Date',
-		'no_copy': 1,
-		'oldfieldname': 'lead_time_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'uom',
-		'fieldtype': 'Link',
-		'label': 'Stock UOM',
-		'no_copy': 0,
-		'oldfieldname': 'uom',
-		'oldfieldtype': 'Link',
-		'options': 'UOM',
-		'permlevel': 1,
-		'reqd': 1,
-		'width': '50px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'min_order_qty',
-		'fieldtype': 'Currency',
-		'label': 'Min Order Qty',
-		'no_copy': 1,
-		'oldfieldname': 'min_order_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0,
-		'width': '70px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'projected_qty',
-		'fieldtype': 'Currency',
-		'label': 'Projected Qty',
-		'no_copy': 1,
-		'oldfieldname': 'projected_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': '70px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'ordered_qty',
-		'fieldtype': 'Currency',
-		'label': 'Ordered Qty',
-		'no_copy': 1,
-		'oldfieldname': 'ordered_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_order_no',
-		'fieldtype': 'Link',
-		'label': 'Sales Order No',
-		'no_copy': 1,
-		'options': 'Sales Order',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'page_break',
-		'fieldtype': 'Check',
-		'label': 'Page Break',
-		'no_copy': 1,
-		'oldfieldname': 'page_break',
-		'oldfieldtype': 'Check',
-		'permlevel': 0,
-		'print_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/po_detail/__init__.py b/erpnext/buying/doctype/po_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/buying/doctype/po_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/buying/doctype/po_detail/po_detail.txt b/erpnext/buying/doctype/po_detail/po_detail.txt
deleted file mode 100755
index b625e4e..0000000
--- a/erpnext/buying/doctype/po_detail/po_detail.txt
+++ /dev/null
@@ -1,456 +0,0 @@
-# DocType, PO Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:12',
-		'docstatus': 0,
-		'modified': '2012-03-05 15:01:31',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': u'POD/.#####',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': u'Buying',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 65
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'PO Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, PO Detail
-	{
-		'doctype': 'DocType',
-		'name': u'PO Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'schedule_date',
-		'fieldtype': u'Date',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'Reqd By Date',
-		'no_copy': 1,
-		'oldfieldname': u'schedule_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item Code',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_name',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'Item Name',
-		'oldfieldname': u'item_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Small Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'qty',
-		'fieldtype': u'Currency',
-		'label': u'Quantity',
-		'oldfieldname': u'qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'60px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'import_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Ref Rate ',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'discount_rate',
-		'fieldtype': u'Currency',
-		'label': u'Discount %',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'import_rate',
-		'fieldtype': u'Currency',
-		'hidden': 0,
-		'label': u'Rate ',
-		'oldfieldname': u'import_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'import_amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount',
-		'oldfieldname': u'import_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Ref Rate *',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'purchase_rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate (Default Curr.) *',
-		'oldfieldname': u'purchase_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount  (Default Curr.)',
-		'oldfieldname': u'amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'warehouse',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'label': u'Warehouse',
-		'oldfieldname': u'warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'project_name',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Project Name',
-		'options': u'Project',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'uom',
-		'fieldtype': u'Link',
-		'label': u'UOM',
-		'oldfieldname': u'uom',
-		'oldfieldtype': u'Link',
-		'options': u'UOM',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'conversion_factor',
-		'fieldtype': u'Currency',
-		'hidden': 0,
-		'label': u'UOM Conversion Factor',
-		'oldfieldname': u'conversion_factor',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'stock_uom',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'label': u'Stock UOM',
-		'oldfieldname': u'stock_uom',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_doctype',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'label': u'Prevdoc DocType',
-		'no_copy': 0,
-		'oldfieldname': u'prevdoc_doctype',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_docname',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'Purchase Requisition No',
-		'no_copy': 0,
-		'oldfieldname': u'prevdoc_docname',
-		'oldfieldtype': u'Link',
-		'options': u'Indent',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1,
-		'width': u'120px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_date',
-		'fieldtype': u'Date',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Purchase Requisition Date',
-		'oldfieldname': u'prevdoc_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_detail_docname',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Purchase Requisition Detail No',
-		'no_copy': 0,
-		'oldfieldname': u'prevdoc_detail_docname',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'brand',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'label': u'Brand',
-		'oldfieldname': u'brand',
-		'oldfieldtype': u'Link',
-		'options': u'Brand',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_group',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Item Group',
-		'oldfieldname': u'item_group',
-		'oldfieldtype': u'Link',
-		'options': u'Item Group',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'stock_qty',
-		'fieldtype': u'Currency',
-		'hidden': 0,
-		'label': u'Stock Qty',
-		'no_copy': 1,
-		'oldfieldname': u'stock_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'received_qty',
-		'fieldtype': u'Currency',
-		'hidden': 0,
-		'label': u'Received Qty',
-		'no_copy': 1,
-		'oldfieldname': u'received_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'billed_qty',
-		'fieldtype': u'Currency',
-		'hidden': 0,
-		'label': u'Billed Quantity',
-		'no_copy': 1,
-		'oldfieldname': u'billed_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Tax detail table fetched from item master as a string and stored in this field.\nUsed for Purchase Other Charges',
-		'doctype': u'DocField',
-		'fieldname': u'item_tax_rate',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Item Tax Rate',
-		'oldfieldname': u'item_tax_rate',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldname': u'page_break',
-		'fieldtype': u'Check',
-		'hidden': 0,
-		'label': u'Page Break',
-		'no_copy': 1,
-		'oldfieldname': u'page_break',
-		'oldfieldtype': u'Check',
-		'permlevel': 0,
-		'print_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/po_raw_material_detail/__init__.py b/erpnext/buying/doctype/po_raw_material_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/buying/doctype/po_raw_material_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/buying/doctype/po_raw_material_detail/po_raw_material_detail.txt b/erpnext/buying/doctype/po_raw_material_detail/po_raw_material_detail.txt
deleted file mode 100644
index 64b97fb..0000000
--- a/erpnext/buying/doctype/po_raw_material_detail/po_raw_material_detail.txt
+++ /dev/null
@@ -1,153 +0,0 @@
-# DocType, PO Raw Material Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:12',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'sneha@webnotestech.com',
-		'owner': 'dhanalekshmi@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'hide_toolbar': 1,
-		'istable': 1,
-		'module': 'Buying',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'PO Raw Material Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, PO Raw Material Detail
-	{
-		'doctype': 'DocType',
-		'name': 'PO Raw Material Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reference_name',
-		'fieldtype': 'Data',
-		'hidden': 0,
-		'idx': 1,
-		'in_filter': 0,
-		'label': 'Reference Name',
-		'oldfieldname': 'reference_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'bom_detail_no',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'BOM Detail No',
-		'oldfieldname': 'bom_detail_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'main_item_code',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Item Code',
-		'oldfieldname': 'main_item_code',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rm_item_code',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Raw Material Item Code',
-		'oldfieldname': 'rm_item_code',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'required_qty',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Required Qty',
-		'oldfieldname': 'required_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rate',
-		'fieldtype': 'Currency',
-		'idx': 8,
-		'label': 'Rate',
-		'oldfieldname': 'rate',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amount',
-		'fieldtype': 'Currency',
-		'idx': 9,
-		'label': 'Amount',
-		'oldfieldname': 'amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'conversion_factor',
-		'fieldtype': 'Currency',
-		'hidden': 1,
-		'idx': 11,
-		'label': 'Conversion Factor',
-		'oldfieldname': 'conversion_factor',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'idx': 12,
-		'label': 'Stock Uom',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/pr_raw_material_detail/__init__.py b/erpnext/buying/doctype/pr_raw_material_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/buying/doctype/pr_raw_material_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/buying/doctype/pr_raw_material_detail/pr_raw_material_detail.txt b/erpnext/buying/doctype/pr_raw_material_detail/pr_raw_material_detail.txt
deleted file mode 100644
index fd28b85..0000000
--- a/erpnext/buying/doctype/pr_raw_material_detail/pr_raw_material_detail.txt
+++ /dev/null
@@ -1,191 +0,0 @@
-# DocType, PR Raw Material Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:13',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'sneha@webnotestech.com',
-		'owner': 'wasim@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'hide_toolbar': 0,
-		'istable': 1,
-		'module': 'Buying',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 17
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'PR Raw Material Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, PR Raw Material Detail
-	{
-		'doctype': 'DocType',
-		'name': 'PR Raw Material Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reference_name',
-		'fieldtype': 'Data',
-		'hidden': 0,
-		'idx': 1,
-		'in_filter': 0,
-		'label': 'Reference Name',
-		'oldfieldname': 'reference_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'bom_detail_no',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'BOM Detail No',
-		'oldfieldname': 'bom_detail_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'main_item_code',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Item Code',
-		'oldfieldname': 'main_item_code',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rm_item_code',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Raw Material Item Code',
-		'oldfieldname': 'rm_item_code',
-		'oldfieldtype': 'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'required_qty',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Required Qty',
-		'oldfieldname': 'required_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'consumed_qty',
-		'fieldtype': 'Currency',
-		'idx': 8,
-		'label': 'Consumed Qty',
-		'oldfieldname': 'consumed_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rate',
-		'fieldtype': 'Currency',
-		'idx': 10,
-		'label': 'Rate',
-		'oldfieldname': 'rate',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'conversion_factor',
-		'fieldtype': 'Currency',
-		'hidden': 1,
-		'idx': 11,
-		'label': 'Conversion Factor',
-		'oldfieldname': 'conversion_factor',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amount',
-		'fieldtype': 'Currency',
-		'idx': 11,
-		'label': 'Amount',
-		'oldfieldname': 'amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'idx': 12,
-		'label': 'Stock Uom',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'current_stock',
-		'fieldtype': 'Currency',
-		'idx': 12,
-		'label': 'Current Stock',
-		'oldfieldname': 'current_stock',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.js b/erpnext/buying/doctype/purchase_common/purchase_common.js
index 89094e9..9b402ad 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.js
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.js
@@ -71,15 +71,15 @@
 var set_dynamic_label_par = function(doc, cdt, cdn, base_curr) {
 	//parent flds
 	par_cols_base = {'net_total': 'Net Total', 'total_tax': 'Total Tax', 'grand_total':	'Grand Total', /*'rounded_total': 'Rounded Total',*/
-		'in_words': 'In Words', 'other_charges_added': 'Other Charges Added', 'other_charges_deducted': 'Other Charges Deducted'}
+		'in_words': 'In Words', 'other_charges_added': 'Taxes and Charges Added', 'other_charges_deducted': 'Taxes and Charges Deducted'}
 	par_cols_import = {'net_total_import': 'Net Total', 'grand_total_import': 'Grand Total', 'in_words_import':	'In Words', 
-		'other_charges_added_import': 'Other Charges Added', 'other_charges_deducted_import': 'Other Charges Deducted'};
+		'other_charges_added_import': 'Taxes and Charges Added', 'other_charges_deducted_import': 'Taxes and Charges Deducted'};
 
 	for (d in par_cols_base) cur_frm.fields_dict[d].label_area.innerHTML = par_cols_base[d]+' (' + base_curr + ')';
 	for (d in par_cols_import) cur_frm.fields_dict[d].label_area.innerHTML = par_cols_import[d]+' (' + doc.currency + ')';
 	cur_frm.fields_dict['conversion_rate'].label_area.innerHTML = "Conversion Rate (" + doc.currency +' -> '+ base_curr + ')';
 
-	if (doc.doctype == 'Payable Voucher') {
+	if (doc.doctype == 'Purchase Invoice') {
 		cur_frm.fields_dict['total_tds_on_voucher'].label_area.innerHTML = 'Total TDS On Voucher (' + base_curr + ')';
 		cur_frm.fields_dict['outstanding_amount'].label_area.innerHTML = 'Outstanding Amount (' + base_curr + ')';
 		cur_frm.fields_dict['tds_amount_on_advance'].label_area.innerHTML = 'TDS Amount On Advance (' + base_curr + ')';
@@ -103,12 +103,12 @@
 	for (f in item_cols_base) {
 		cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp(f, hide);
 	}
-	if (doc.doctype == 'Payable Voucher') {
+	if (doc.doctype == 'Purchase Invoice') {
 		$('[data-grid-fieldname="'+cur_frm.cscript.tname+'-rate"]').html('Rate ('+base_curr+')');
 		cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp('rate', hide);
 		// advance table flds
 		adv_cols = {'advance_amount': 'Advance Amount', 'allocated_amount': 'Allocated Amount', 'tds_amount': 'TDS Amount', 'tds_allocated': 'TDS Allocated'}
-		for (d in adv_cols) $('[data-grid-fieldname="Advance Allocation Detail-'+d+'"]').html(adv_cols[d]+' ('+base_curr+')');	
+		for (d in adv_cols) $('[data-grid-fieldname="Purchase Invoice Advance-'+d+'"]').html(adv_cols[d]+' ('+base_curr+')');	
 	}
 	else {
 		$('[data-grid-fieldname="'+cur_frm.cscript.tname+'-purchase_rate"]').html('Rate ('+base_curr+')');
@@ -117,7 +117,7 @@
 
 	//tax table flds
 	tax_cols = {'tax_amount': 'Amount', 'total': 'Aggregate Total'};
-	for (d in tax_cols) $('[data-grid-fieldname="Purchase Tax Detail-'+d+'"]').html(tax_cols[d]+' ('+base_curr+')');	
+	for (d in tax_cols) $('[data-grid-fieldname="Purchase Taxes and Charges-'+d+'"]').html(tax_cols[d]+' ('+base_curr+')');	
 }
 
 // Change label dynamically based on currency
@@ -282,19 +282,19 @@
 	cur_frm.cscript.calc_amount(doc, 1);
 
 	// calculate advances if pv
-	if(doc.doctype == 'Payable Voucher') calc_total_advance(doc, cdt, cdn);
+	if(doc.doctype == 'Purchase Invoice') calc_total_advance(doc, cdt, cdn);
 }
 
 // **************** RE-CALCULATE VALUES ***************************
 
-cur_frm.cscript['Re-Calculate Values'] = function(doc, cdt, cdn) {
-	cur_frm.cscript['Calculate Tax'](doc,cdt,cdn);
+cur_frm.cscript.recalculate_values = function(doc, cdt, cdn) {
+	cur_frm.cscript.calculate_tax(doc,cdt,cdn);
 }
 
-cur_frm.cscript['Calculate Tax'] = function(doc, cdt, cdn) {
+cur_frm.cscript.calculate_tax = function(doc, cdt, cdn) {
 	var other_fname	= cur_frm.cscript.other_fname;
 
-	var cl = getchildren('Purchase Tax Detail', doc.name, other_fname, doc.doctype);
+	var cl = getchildren('Purchase Taxes and Charges', doc.name, other_fname, doc.doctype);
 	for(var i = 0; i<cl.length; i++){
 		cl[i].total_tax_amount = 0;
 		cl[i].total_amount = 0;
@@ -336,7 +336,7 @@
 	
 	for(var i=0;i<cl.length;i++) 
 	{
-	var rate_fld = (doc.doctype != 'Payable Voucher') ? 'purchase_rate': 'rate';
+	var rate_fld = (doc.doctype != 'Purchase Invoice') ? 'purchase_rate': 'rate';
 		var tmp = {};
 	if(!cl[i].discount_rate) cl[i].discount_rate = 0;
 
@@ -397,16 +397,16 @@
 	refresh_field('net_total');
 	refresh_field('net_total_import');
 	
-	cur_frm.cscript.val_cal_charges(doc, cdt, cdn, tname, fname, other_fname);
+	cur_frm.cscript.val_cal_charges(doc, tname, fname, other_fname);
 }
 
 
 //======== Function was broken away from cur_frm.cscript.calc_amount as PV has fieldname 'rate' instead of 'purchase_rate'===========
-cur_frm.cscript.val_cal_charges = function(doc, cdt, cdn, tname, fname, other_fname){
+cur_frm.cscript.val_cal_charges = function(doc, tname, fname, other_fname){
 
 	doc = locals[doc.doctype][doc.name]
 	if(flt(doc.net_total) > 0) {
-		var cl = getchildren('Purchase Tax Detail', doc.name, other_fname,doc.doctype);
+		var cl = getchildren('Purchase Taxes and Charges', doc.name, other_fname,doc.doctype);
 		for(var i = 0; i<cl.length; i++){
 			cl[i].total_tax_amount = 0;
 			cl[i].total_amount = 0;
@@ -420,7 +420,7 @@
 		}
 		cur_frm.cscript.calc_other_charges(doc , tname , fname , other_fname); // calculate other charges
 	}
-	cur_frm.cscript.calc_doc_values(doc, cdt, cdn, tname, fname, other_fname); // calculates total amounts
+	cur_frm.cscript.calc_doc_values(doc, tname, fname, other_fname); // calculates total amounts
 
 	refresh_many(['net_total', 'grand_total', 'rounded_total', 'grand_total_import', 'rounded_total_import', 'in_words', 'in_words_import', 'purchase_tax_details', 'total_tax', 'other_charges_added', 'other_charges_deducted', 'net_total_import', 'other_charges_added_import', 'other_charges_deducted_import']);
 
@@ -434,9 +434,9 @@
 	// ------------------
 
 	
-	cur_frm.fields_dict['Tax Calculation'].disp_area.innerHTML = '<b style="padding: 8px 0px;">Calculation Details for Other Charges and Landed cost:</b>';
+	cur_frm.fields_dict['Tax Calculation'].disp_area.innerHTML = '<b style="padding: 8px 0px;">Calculation Details for Taxes, Charges and Landed Cost:</b>';
 	var cl = getchildren(tname, doc.name, fname);
-	var tax = getchildren('Purchase Tax Detail', doc.name, other_fname,doc.doctype);
+	var tax = getchildren('Purchase Taxes and Charges', doc.name, other_fname,doc.doctype);
 	// make display table
 	// ------------------
 	var otc = make_table(cur_frm.fields_dict['Tax Calculation'].disp_area, cl.length + 1, tax.length + 1, '90%',[],{border:'1px solid #AAA',padding:'2px'});
@@ -447,8 +447,8 @@
 	
 	for(var i=0;i<cl.length;i++) {
 		var item_tax = 0;
-		if(doc.doctype != 'Payable Voucher') net_total += flt(flt(cl[i].qty) * flt(cl[i].purchase_rate));
-		else if(doc.doctype == 'Payable Voucher') net_total += flt(flt(cl[i].qty) * flt(cl[i].rate));
+		if(doc.doctype != 'Purchase Invoice') net_total += flt(flt(cl[i].qty) * flt(cl[i].purchase_rate));
+		else if(doc.doctype == 'Purchase Invoice') net_total += flt(flt(cl[i].qty) * flt(cl[i].rate));
 
 		var prev_total = flt(cl[i].amount);
 		if(cl[i].item_tax_rate) {
@@ -463,7 +463,7 @@
 		//--------------------------
 		$td(otc,i+1,0).innerHTML = cl[i].item_code;
 		
-		var tax = getchildren('Purchase Tax Detail', doc.name, other_fname,doc.doctype);
+		var tax = getchildren('Purchase Taxes and Charges', doc.name, other_fname,doc.doctype);
 		var total = net_total;
 		for(var t=0;t<tax.length;t++){
  
@@ -491,12 +491,12 @@
 				var total_amount = flt(tax[t].tax_amount);
 				total_tax_amount = flt(tax[t].total_tax_amount) + flt(total_amount);
 				if(tax[t].category != "For Valuation"){
-					set_multiple('Purchase Tax Detail', tax[t].name, { 'item_wise_tax_detail':tax[t].item_wise_tax_detail, 'amount':total_amount, 'total':flt(total)+flt(tax[t].tax_amount)/*_tax_amount)*/}, other_fname);
+					set_multiple('Purchase Taxes and Charges', tax[t].name, { 'item_wise_tax_detail':tax[t].item_wise_tax_detail, 'amount':total_amount, 'total':flt(total)+flt(tax[t].tax_amount)/*_tax_amount)*/}, other_fname);
 					prev_total += flt(tax[t].total_amount);
 					total += flt(tax[t].tax_amount);	// for adding total to previous amount			 
 				}
 				else{
-					set_multiple('Purchase Tax Detail', tax[t].name, { 'item_wise_tax_detail':tax[t].item_wise_tax_detail, 'amount':total_amount, 'total':flt(total)/*_tax_amount)*/}, other_fname);
+					set_multiple('Purchase Taxes and Charges', tax[t].name, { 'item_wise_tax_detail':tax[t].item_wise_tax_detail, 'amount':total_amount, 'total':flt(total)/*_tax_amount)*/}, other_fname);
 					prev_total = prev_total;
 				}
 				//prev_total += flt(tax[t].total_amount);	 // for previous row total
@@ -519,12 +519,12 @@
 				var total_amount = flt(tax[t].tax_amount);
 				total_tax_amount = flt(tax[t].total_tax_amount) - flt(total_amount);
 				if(tax[t].category != "For Valuation"){
-					set_multiple('Purchase Tax Detail', tax[t].name, { 'item_wise_tax_detail':tax[t].item_wise_tax_detail, 'tax_amount':total_amount, 'total':flt(total)-flt(tax[t].tax_amount)/*_tax_amount)*/}, other_fname);
+					set_multiple('Purchase Taxes and Charges', tax[t].name, { 'item_wise_tax_detail':tax[t].item_wise_tax_detail, 'tax_amount':total_amount, 'total':flt(total)-flt(tax[t].tax_amount)/*_tax_amount)*/}, other_fname);
 					prev_total -= flt(tax[t].total_amount); 
 					total -= flt(tax[t].tax_amount);	// for adding total to previous amount			 
 				}
 				else{
-					set_multiple('Purchase Tax Detail', tax[t].name, { 'item_wise_tax_detail':tax[t].item_wise_tax_detail, 'tax_amount':total_amount, 'total':flt(total)/*_tax_amount)*/}, other_fname);
+					set_multiple('Purchase Taxes and Charges', tax[t].name, { 'item_wise_tax_detail':tax[t].item_wise_tax_detail, 'tax_amount':total_amount, 'total':flt(total)/*_tax_amount)*/}, other_fname);
 					prev_total = prev_total;
 				}
 				//prev_total += flt(tax[t].total_amount);	 // for previous row total
@@ -549,14 +549,15 @@
 
 
 // ******* Calculation of total amounts of document (item amount + other charges)****************
-cur_frm.cscript.calc_doc_values = function(doc, cdt, cdn, tname, fname, other_fname) {
+cur_frm.cscript.calc_doc_values = function(doc, tname, fname, other_fname) {
 	doc = locals[doc.doctype][doc.name];
-	var net_total = 0; var total_tax = 0; var other_charges_added = 0; var other_charges_deducted = 0;
+	var net_total = 0; var total_tax = 0; var other_charges_added = 0; 
+	var other_charges_deducted = 0;
 	var cl = getchildren(tname, doc.name, fname);
 	for(var i = 0; i<cl.length; i++){
 		net_total += flt(cl[i].amount);
 	}
-	var d = getchildren('Purchase Tax Detail', doc.name, other_fname,doc.doctype);
+	var d = getchildren('Purchase Taxes and Charges', doc.name, other_fname,doc.doctype);
 	for(var j = 0; j<d.length; j++){
 		if(d[j].category != 'For Valuation'){
 			
@@ -586,7 +587,7 @@
 	refresh_many(['net_total','total_taxes','grand_total']);
 
 
-	if(doc.doctype == 'Payable Voucher'){
+	if(doc.doctype == 'Purchase Invoice'){
 		calculate_outstanding(doc);
 	}
 }
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.py b/erpnext/buying/doctype/purchase_common/purchase_common.py
index 597eec4..bef418d 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.py
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.py
@@ -38,23 +38,22 @@
 		self.doc = doc
 		self.doclist = doclist
 
-		self.chk_tol_for_list = ['Indent - Purchase Order', 'Purchase Order - Purchase Receipt', 'Purchase Order - Payable Voucher']
+		self.chk_tol_for_list = ['Purchase Request - Purchase Order', 'Purchase Order - Purchase Receipt', 'Purchase Order - Purchase Invoice']
 
-		self.update_qty = {'Indent - Purchase Order'						: 'ordered_qty',
+		self.update_qty = {'Purchase Request - Purchase Order'						: 'ordered_qty',
 											 'Purchase Order - Purchase Receipt'	: 'received_qty',
-											 'Purchase Order - Payable Voucher'	 : 'billed_qty',
-											 'Purchase Receipt - Payable Voucher' : 'billed_qty'}
+											 'Purchase Order - Purchase Invoice'	 : 'billed_qty',
+											 'Purchase Receipt - Purchase Invoice' : 'billed_qty'}
 
-		self.update_percent_field = {'Indent - Purchase Order'						: 'per_ordered',
+		self.update_percent_field = {'Purchase Request - Purchase Order'						: 'per_ordered',
 									 'Purchase Order - Purchase Receipt'	: 'per_received',
-									 'Purchase Order - Payable Voucher'	 : 'per_billed',
-									 'Purchase Receipt - Payable Voucher' : 'per_billed'}
+									 'Purchase Order - Purchase Invoice'	 : 'per_billed',
+									 'Purchase Receipt - Purchase Invoice' : 'per_billed'}
 
 		# used in validation for items and update_prevdoc_detail
-		self.doctype_dict = {'Indent'						 : 'Indent Detail',
-							 'Supplier Quotation' : 'Supplier Quotation Detail',
-							 'Purchase Order'		 : 'PO Detail',
-							 'Purchase Receipt'	 : 'Purchase Receipt Detail'}
+		self.doctype_dict = {'Purchase Request'						 : 'Purchase Request Item',
+							 'Purchase Order'		 : 'Purchase Order Item',
+							 'Purchase Receipt'	 : 'Purchase Receipt Item'}
  
 		self.repair_percent_field = {
 												 'ordered_qty' : 'per_ordered',
@@ -62,15 +61,15 @@
 												 'billed_qty'	: 'per_billed'}
 
 		self.repair_fields = {
-									'Indent Detail'			 : ['ordered_qty'],
-									'PO Detail'				 : ['received_qty', 'billed_qty'],
-									'Purchase Receipt Detail': ['billed_qty']
+									'Purchase Request Item'			 : ['ordered_qty'],
+									'Purchase Order Item'				 : ['received_qty', 'billed_qty'],
+									'Purchase Receipt Item': ['billed_qty']
 							 }
 
 		self.next_dt_detail = {
-									'ordered_qty' : 'PO Detail',
-									'billed_qty'	: 'PV Detail',
-									'received_qty': 'Purchase Receipt Detail'
+									'ordered_qty' : 'Purchase Order Item',
+									'billed_qty'	: 'Purchase Invoice Item',
+									'received_qty': 'Purchase Receipt Item'
 								}
 
 		self.msg = []
@@ -81,7 +80,7 @@
 			item = sql("select lead_time_days from `tabItem` where name = '%s' and (ifnull(end_of_life,'')='' or end_of_life = '0000-00-00' or end_of_life >	now())" % cstr(d.item_code) , as_dict = 1)
 			ltd = item and cint(item[0]['lead_time_days']) or 0
 			if ltd and obj.doc.transaction_date:
-				if d.fields.has_key('lead_time_date') or obj.doc.doctype == 'Indent':
+				if d.fields.has_key('lead_time_date') or obj.doc.doctype == 'Purchase Request':
 					d.lead_time_date = cstr(add_days( obj.doc.transaction_date, cint(ltd)))
 				if not d.fields.has_key('prevdoc_docname') or (d.fields.has_key('prevdoc_docname') and not d.prevdoc_docname):
 					d.schedule_date =	cstr( add_days( obj.doc.transaction_date, cint(ltd)))
@@ -108,7 +107,7 @@
 	# Get TERMS AND CONDITIONS
 	# =======================================================================================
 	def get_tc_details(self,obj):
-		r = sql("select terms from `tabTerm` where name = %s", obj.doc.tc_name)
+		r = sql("select terms from `tabTerms and Conditions` where name = %s", obj.doc.tc_name)
 		if r: obj.doc.terms = r[0][0]
 
 	# Get Item Details
@@ -141,7 +140,7 @@
 		}
 		
 		# get min_order_qty from item
-		if obj.doc.doctype == 'Indent':
+		if obj.doc.doctype == 'Purchase Request':
 			ret['min_order_qty'] = item and flt(item[0]['min_order_qty']) or 0
 		
 		# get projected qty from bin
@@ -155,7 +154,7 @@
 			ret['lead_time_date'] = cstr(add_days(obj.doc.transaction_date, cint(item[0]['lead_time_days'])))
 		
 		#	get last purchase rate as per stock uom and default currency for following list of doctypes
-		if obj.doc.doctype in ['Supplier Quotation', 'Purchase Order', 'Purchase Receipt']:
+		if obj.doc.doctype in ['Purchase Order', 'Purchase Receipt']:
 			ret['purchase_ref_rate'] = item and flt(item[0]['last_purchase_rate']) or 0
 			ret['import_ref_rate'] = flt(item and flt(item[0]['last_purchase_rate']) or 0) / flt(obj.doc.fields.has_key('conversion_rate') and flt(obj.doc.conversion_rate) or 1)			
 			ret['purchase_rate'] = item and flt(item[0]['last_purchase_rate']) or 0
@@ -221,7 +220,7 @@
 			bin = sql("select projected_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
 			
 			f_lst ={'projected_qty': bin and flt(bin[0]['projected_qty']) or 0, 'ordered_qty': 0, 'received_qty' : 0, 'billed_qty': 0}
-			if d.doctype == 'Purchase Receipt Detail':
+			if d.doctype == 'Purchase Receipt Item':
 				f_lst.pop('received_qty')
 			for x in f_lst :
 				if d.fields.has_key(x):
@@ -262,7 +261,7 @@
 					raise Exception
 				
 				#	Check if UOM has been modified.
-				if not cstr(data[0]['uom']) == cstr(d.uom) and not cstr(d.prevdoc_doctype) == 'Indent':
+				if not cstr(data[0]['uom']) == cstr(d.uom) and not cstr(d.prevdoc_doctype) == 'Purchase Request':
 					msgprint("Please check UOM %s of Item %s which is not present in %s %s ." % (d.uom, d.item_code, d.prevdoc_doctype, d.prevdoc_docname))
 					raise Exception
 			
@@ -319,7 +318,7 @@
 					msgprint(cstr(prevdoc_doctype) + ": " + cstr(prevdoc_docname) + " does not belong to the Company: " + cstr(obj.doc.company))
 					raise Exception
 
-				if prevdoc_doctype in ['Supplier Quotation','Purchase Order', 'Purchase Receipt']:
+				if prevdoc_doctype in ['Purchase Order', 'Purchase Receipt']:
 					dt = sql("select supplier, currency from `tab%s` where name = '%s'" % (prevdoc_doctype, name))
 					supplier = dt and dt[0][0] or ''
 					currency = dt and dt[0][1] or ''
@@ -380,11 +379,11 @@
 	def get_qty(self,curr_doctype,ref_tab_fname,ref_tab_dn,ref_doc_tname, transaction, curr_parent_name):
 		# Get total Quantities of current doctype (eg. PR) except for qty of this transaction
 		#------------------------------
-		# please check as UOM changes from Indent - Purchase Order ,so doing following else uom should be same .
+		# please check as UOM changes from Purchase Request - Purchase Order ,so doing following else uom should be same .
 		# i.e. in PO uom is NOS then in PR uom should be NOS
-		# but if in Indent uom KG it can change in PO
+		# but if in Purchase Request uom KG it can change in PO
 		
-		get_qty = (transaction == 'Indent - Purchase Order') and 'qty * conversion_factor' or 'qty'
+		get_qty = (transaction == 'Purchase Request - Purchase Order') and 'qty * conversion_factor' or 'qty'
 		qty = sql("select sum(%s) from `tab%s` where %s = '%s' and docstatus = 1 and parent != '%s'"% ( get_qty, curr_doctype, ref_tab_fname, ref_tab_dn, curr_parent_name))
 		qty = qty and flt(qty[0][0]) or 0 
 		
@@ -404,10 +403,10 @@
 		qty, max_qty, max_qty_plus_tol = flt(curr_ref_qty.split('~~~')[0]), flt(curr_ref_qty.split('~~~')[1]), flt(curr_ref_qty.split('~~~')[1])
 
 		# Qty above Tolerance should be allowed only once.
-		# But there is special case for Transaction 'Indent-Purhcase Order' that there should be no restriction
-		# One can create any no. of PO against same Indent!!!
+		# But there is special case for Transaction 'Purchase Request-Purhcase Order' that there should be no restriction
+		# One can create any no. of PO against same Purchase Request!!!
 		if qty >= max_qty and is_submit and flt(curr_qty) > 0:
-			reason = (curr_parent_doctype == 'Purchase Order') and 'Ordered' or (curr_parent_doctype == 'Purchase Receipt') and 'Received' or (curr_parent_doctype == 'Payable Voucher') and 'Billed'
+			reason = (curr_parent_doctype == 'Purchase Order') and 'Ordered' or (curr_parent_doctype == 'Purchase Receipt') and 'Received' or (curr_parent_doctype == 'Purchase Invoice') and 'Billed'
 			msgprint("Error: Item Code : '%s' of '%s' is already %s." %(item_code,ref_dn,reason))
 			raise Exception
 		
@@ -415,7 +414,7 @@
 		tolerance = flt(get_value('Item',item_code,'tolerance') or 0)
 		
 		if not(tolerance):
-			tolerance = flt(get_value('Manage Account',None,'tolerance') or 0)
+			tolerance = flt(get_value('Global Defaults',None,'tolerance') or 0)
 
 		if is_submit:
 			qty = qty + flt(curr_qty)
@@ -426,7 +425,7 @@
 				max_qty_plus_tol = max_qty * (1 + (flt(tolerance)/ 100))
 
 				if max_qty_plus_tol < qty:
-					reason = (curr_parent_doctype == 'Purchase Order') and 'Ordered' or (curr_parent_doctype == 'Purchase Receipt') and 'Received' or (curr_parent_doctype == 'Payable Voucher') and 'Billed'
+					reason = (curr_parent_doctype == 'Purchase Order') and 'Ordered' or (curr_parent_doctype == 'Purchase Receipt') and 'Received' or (curr_parent_doctype == 'Purchase Invoice') and 'Billed'
 					msgprint("error:Already %s Qty for %s is %s and maximum allowed Qty is %s" % (cstr(reason), item_code, cstr(flt(qty) - flt(curr_qty)) , cstr(max_qty_plus_tol)))
 					raise Exception
 
@@ -452,12 +451,12 @@
 			
 			if d.fields.has_key('prevdoc_docname') and d.prevdoc_docname:
 				transaction = cstr(d.prevdoc_doctype) + ' - ' + cstr(obj.doc.doctype)
-				curr_qty = (transaction == 'Indent - Purchase Order') and flt(d.qty) * flt(d.conversion_factor) or flt(d.qty)
+				curr_qty = (transaction == 'Purchase Request - Purchase Order') and flt(d.qty) * flt(d.conversion_factor) or flt(d.qty)
 				self.update_ref_doctype_dict( flt(curr_qty), d.doctype, d.prevdoc_docname, d.prevdoc_doctype, 'prevdoc_detail_docname', d.prevdoc_detail_docname, transaction, d.item_code, is_submit, obj.doc.doctype, obj.doc.name)
 			
 			# for payable voucher
 			if d.fields.has_key('purchase_order') and d.purchase_order:
-				curr_qty = sql("select sum(qty) from `tabPV Detail` where po_detail = '%s' and parent = '%s'" % (cstr(d.po_detail), cstr(obj.doc.name)))
+				curr_qty = sql("select sum(qty) from `tabPurchase Invoice Item` where po_detail = '%s' and parent = '%s'" % (cstr(d.po_detail), cstr(obj.doc.name)))
 				curr_qty = curr_qty and flt(curr_qty[0][0]) or 0
 				self.update_ref_doctype_dict( curr_qty, d.doctype, d.purchase_order, 'Purchase Order', 'po_detail', d.po_detail, 'Purchase Order - ' + cstr(obj.doc.doctype), d.item_code, is_submit,	obj.doc.doctype, obj.doc.name)
 
@@ -488,9 +487,9 @@
 	def update_last_purchase_rate(self, obj, is_submit):
 		for d in getlist(obj.doclist,obj.fname):
 			# get last purchase rate from Purchase Order
-			po_lpr = sql ("select t2.purchase_rate/t2.conversion_factor as rate, t1.transaction_date as date from `tabPurchase Order` t1, `tabPO Detail` t2	where t1.name = t2.parent and t2.item_code = '%s' and t1.docstatus = 1 and t1.name != '%s' order by t1.transaction_date DESC limit 1"% (d.item_code, obj.doc.name), as_dict = 1 )
+			po_lpr = sql ("select t2.purchase_rate/t2.conversion_factor as rate, t1.transaction_date as date from `tabPurchase Order` t1, `tabPurchase Order Item` t2	where t1.name = t2.parent and t2.item_code = '%s' and t1.docstatus = 1 and t1.name != '%s' order by t1.transaction_date DESC limit 1"% (d.item_code, obj.doc.name), as_dict = 1 )
 			# get last purchase rate from purchase receipt
-			pr_lpr = sql ("select t2.purchase_rate/t2.conversion_factor as rate, t1.posting_date as date, t1.posting_time from `tabPurchase Receipt` t1, `tabPurchase Receipt Detail` t2	where t1.name = t2.parent and t2.item_code = '%s' and t1.docstatus = 1	and t1.name != '%s' order by t1.posting_date DESC, t1.posting_time DESC limit 1"% (d.item_code, obj.doc.name), as_dict = 1 )
+			pr_lpr = sql ("select t2.purchase_rate/t2.conversion_factor as rate, t1.posting_date as date, t1.posting_time from `tabPurchase Receipt` t1, `tabPurchase Receipt Item` t2	where t1.name = t2.parent and t2.item_code = '%s' and t1.docstatus = 1	and t1.name != '%s' order by t1.posting_date DESC, t1.posting_time DESC limit 1"% (d.item_code, obj.doc.name), as_dict = 1 )
 			# compare dates of Po & Pr
 			date_diff1	= sql("select DATEDIFF('%s', '%s')" % ( po_lpr and po_lpr[0]['date'] or '0000-00-00', pr_lpr and pr_lpr[0]['date'] or '0000-00-00'))
 
@@ -521,9 +520,9 @@
 	def get_purchase_tax_details(self,obj):
 		self.doc.clear_table(obj.doclist,'purchase_tax_details')
 		idx = 0
-		other_charge = sql("select category, add_deduct_tax, charge_type,row_id,description,account_head,rate,tax_amount from `tabPurchase Tax Detail` where parent = '%s' order by idx" %(obj.doc.purchase_other_charges), as_dict = 1)
+		other_charge = sql("select category, add_deduct_tax, charge_type,row_id,description,account_head,rate,tax_amount from `tabPurchase Taxes and Charges` where parent = '%s' order by idx" %(obj.doc.purchase_other_charges), as_dict = 1)
 		for other in other_charge:
-			d =	addchild(obj.doc, 'purchase_tax_details', 'Purchase Tax Detail', 1, obj.doclist)
+			d =	addchild(obj.doc, 'purchase_tax_details', 'Purchase Taxes and Charges', 1, obj.doclist)
 			d.category = other['category']
 			d.add_deduct_tax = other['add_deduct_tax']
 			d.charge_type = other['charge_type']
@@ -571,7 +570,7 @@
 #=================================================================================
 
 	def get_next_dt_detail_qty(self, next_dt_detail, name, curr_dt, f):
-		get_qty = (curr_dt == 'Indent') and 'qty * conversion_factor' or 'qty'
+		get_qty = (curr_dt == 'Purchase Request') and 'qty * conversion_factor' or 'qty'
 		qty = sql("select sum(%s) from `tab%s` where %s = '%s' and docstatus = 1"% (get_qty, next_dt_detail, (f == 'billed_qty') and (curr_dt == 'Purchase Order' and 'po_detail' or 'pr_detail') or 'prevdoc_detail_docname', name))
 		return qty and flt(qty[0][0]) or 0
 
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.txt b/erpnext/buying/doctype/purchase_common/purchase_common.txt
index 689e42e..dc1e1f1 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.txt
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.txt
@@ -3,22 +3,22 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:15',
+		'creation': '2012-03-27 14:35:51',
 		'docstatus': 0,
-		'modified': '2010-12-23 10:45:17',
-		'modified_by': 'sneha@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Buying',
+		'module': u'Buying',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 187
 	},
@@ -26,6 +26,6 @@
 	# DocType, Purchase Common
 	{
 		'doctype': 'DocType',
-		'name': 'Purchase Common'
+		'name': u'Purchase Common'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/purchase_order/listview.js b/erpnext/buying/doctype/purchase_order/listview.js
new file mode 100644
index 0000000..528fe60
--- /dev/null
+++ b/erpnext/buying/doctype/purchase_order/listview.js
@@ -0,0 +1,33 @@
+// render
+wn.doclistviews['Purchase Order'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			"`tabPurchase Order`.supplier_name", 
+			"ifnull(`tabPurchase Order`.per_received,0) as per_received",
+			"ifnull(`tabPurchase Order`.per_billed,0) as per_billed",
+			"`tabPurchase Order`.currency", 
+			"ifnull(`tabPurchase Order`.grand_total_import,0) as grand_total_import"
+		]);
+		this.stats = this.stats.concat(['status', 'company']);
+	},
+	
+	columns: [
+		{width: '5%', content:'avatar'},
+		{width: '3%', content:'docstatus'},
+		{width: '15%', content:'name'},
+		{width: '35%', content:'tags+supplier_name', css: {color:'#aaa'}},
+		{
+			width: '18%', 
+			content: function(parent, data) { 
+				$(parent).html(data.currency + ' ' + fmt_money(data.grand_total_import)) 
+			},
+			css: {'text-align':'right'}
+		},
+		{width: '8%', content: 'per_received', type:'bar-graph', label:'Delivered'},
+		{width: '8%', content: 'per_billed', type:'bar-graph', label:'Billed'},
+		{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+
+});
+
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index 7af1204..82abd6b 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -14,12 +14,14 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-cur_frm.cscript.tname = "PO Detail";
+cur_frm.cscript.tname = "Purchase Order Item";
 cur_frm.cscript.fname = "po_details";
 cur_frm.cscript.other_fname = "purchase_tax_details";
-$import(Purchase Common)
-$import(Purchase Other Charges)
-$import(SMS Control)
+
+wn.require('erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js');
+wn.require('erpnext/buying/doctype/purchase_common/purchase_common.js');
+wn.require('erpnext/utilities/doctype/sms_control/sms_control.js');
+wn.require('erpnext/setup/doctype/notification_control/notification_control.js');
 
 //========================== On Load =================================================
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
@@ -58,9 +60,9 @@
 	if (!cur_frm.cscript.is_onload) cur_frm.cscript.dynamic_label(doc, cdt, cdn);
 
 	if(doc.docstatus == 1 && doc.status != 'Stopped'){
-		var ch = getchildren('PO Detail',doc.name,'po_details');
+		var ch = getchildren('Purchase Order Item',doc.name,'po_details');
 		var allow_billing = 0; var allow_receipt = 0;
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 
 		for(var i in ch){
 			if(ch[i].qty > ch[i].received_qty) allow_receipt = 1; 
@@ -139,10 +141,10 @@
 	return 'SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
 }
 
-//==================== Indent No Get Query =======================================================
-//===== Only those Indents status != 'Completed' and docstatus = 1 i.e. submitted=================
+//==================== Purchase Request No Get Query =======================================================
+//===== Only those Purchase Requests status != 'Completed' and docstatus = 1 i.e. submitted=================
 cur_frm.fields_dict['indent_no'].get_query = function(doc) {
-	return 'SELECT DISTINCT `tabIndent`.`name` FROM `tabIndent` WHERE `tabIndent`.company = "' + doc.company + '" and `tabIndent`.`docstatus` = 1 and `tabIndent`.`status` != "Stopped" and ifnull(`tabIndent`.`per_ordered`,0) < 100 and `tabIndent`.%(key)s LIKE "%s" ORDER BY `tabIndent`.`name` DESC LIMIT 50';
+	return 'SELECT DISTINCT `tabPurchase Request`.`name` FROM `tabPurchase Request` WHERE `tabPurchase Request`.company = "' + doc.company + '" and `tabPurchase Request`.`docstatus` = 1 and `tabPurchase Request`.`status` != "Stopped" and ifnull(`tabPurchase Request`.`per_ordered`,0) < 100 and `tabPurchase Request`.%(key)s LIKE "%s" ORDER BY `tabPurchase Request`.`name` DESC LIMIT 50';
 }
 
 /*
@@ -157,7 +159,7 @@
 
 
 //========================= Get Last Purhase Rate =====================================
-cur_frm.cscript['Get Last Purchase Rate'] = function(doc, cdt, cdn){
+cur_frm.cscript.get_last_purchase_rate = function(doc, cdt, cdn){
 	$c_obj(make_doclist(doc.doctype, doc.name), 'get_last_purchase_rate', '', 
 			function(r, rt) { 
 				refresh_field(cur_frm.cscript.fname);
@@ -176,7 +178,7 @@
 		'from_doctype': cur_frm.doc.doctype,
 		'to_doctype':'Purchase Receipt',
 		'from_docname':cur_frm.doc.name,
-		'from_to_list':"[['Purchase Order','Purchase Receipt'],['PO Detail','Purchase Receipt Detail'],['Purchase Tax Detail','Purchase Tax Detail']]"
+		'from_to_list':"[['Purchase Order','Purchase Receipt'],['Purchase Order Item','Purchase Receipt Item'],['Purchase Taxes and Charges','Purchase Taxes and Charges']]"
 		}, function(r,rt) {
 			 loaddoc('Purchase Receipt', n);
 		}
@@ -185,15 +187,15 @@
 
 //========================== Make Purchase Invoice =====================================================
 cur_frm.cscript['Make Purchase Invoice'] = function() {
-	n = createLocal('Payable Voucher');
+	n = createLocal('Purchase Invoice');
 	$c('dt_map', args={
-		'docs':compress_doclist([locals['Payable Voucher'][n]]),
+		'docs':compress_doclist([locals['Purchase Invoice'][n]]),
 		'from_doctype':cur_frm.doc.doctype,
-		'to_doctype':'Payable Voucher',
+		'to_doctype':'Purchase Invoice',
 		'from_docname': cur_frm.doc.name,
-		'from_to_list':"[['Purchase Order','Payable Voucher'],['PO Detail','PV Detail'],['Purchase Tax Detail','Purchase Tax Detail']]"
+		'from_to_list':"[['Purchase Order','Purchase Invoice'],['Purchase Order Item','Purchase Invoice Item'],['Purchase Taxes and Charges','Purchase Taxes and Charges']]"
 		}, function(r,rt) {
-			 loaddoc('Payable Voucher', n);
+			 loaddoc('Purchase Invoice', n);
 		}
 	);
 }
@@ -243,7 +245,7 @@
 
 	out ='';
 	
-	var cl = getchildren('PO Detail',doc.name,'po_details');
+	var cl = getchildren('Purchase Order Item',doc.name,'po_details');
 
 	// outer table	
 	var out='<div><table class="noborder" style="width:100%"><tr><td style="width: 50%"></td><td>';
@@ -255,7 +257,7 @@
 	if(cl.length){
 		prevdoc_list = new Array();
 		for(var i=0;i<cl.length;i++){
-			if(cl[i].prevdoc_doctype == 'Indent' && cl[i].prevdoc_docname && prevdoc_list.indexOf(cl[i].prevdoc_docname) == -1) {
+			if(cl[i].prevdoc_doctype == 'Purchase Request' && cl[i].prevdoc_docname && prevdoc_list.indexOf(cl[i].prevdoc_docname) == -1) {
 				prevdoc_list.push(cl[i].prevdoc_docname);
 				if(prevdoc_list.length ==1)
 					out += make_row(cl[i].prevdoc_doctype, cl[i].prevdoc_docname, cl[i].prevdoc_date,0);
@@ -270,7 +272,6 @@
 	return out;
 }
 
-$import(Notification Control)
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	var args = {
 		type: 'Purchase Order',
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index 7945807..0f852f2 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -39,7 +39,7 @@
 		self.doc = doc
 		self.doclist = doclist
 		self.defaults = get_defaults()
-		self.tname = 'PO Detail'
+		self.tname = 'Purchase Order Item'
 		self.fname = 'po_details'
 
 	# Autoname
@@ -81,18 +81,16 @@
 	def get_bin_details(self, arg = ''):
 		return get_obj(dt='Purchase Common').get_bin_details(arg)
 
-	# Pull Indent
+	# Pull Purchase Request
 	def get_indent_details(self):
 		#self.validate_prev_docname() 
 		if self.doc.indent_no:
-			get_obj('DocType Mapper','Indent-Purchase Order').dt_map('Indent','Purchase Order',self.doc.indent_no, self.doc, self.doclist, "[['Indent','Purchase Order'],['Indent Detail', 'PO Detail']]")
+			get_obj('DocType Mapper','Purchase Request-Purchase Order').dt_map('Purchase Request','Purchase Order',self.doc.indent_no, self.doc, self.doclist, "[['Purchase Request','Purchase Order'],['Purchase Request Item', 'Purchase Order Item']]")
 			for d in getlist(self.doclist, 'po_details'):			
 				if d.item_code:
 					item = sql("select last_purchase_rate from tabItem where name = '%s'" %(d.item_code), as_dict=1)
 					d.purchase_rate = item and flt(item[0]['last_purchase_rate']) or 0
 					d.import_rate = flt(item and flt(item[0]['last_purchase_rate']) or 0) / flt(self.doc.fields.has_key('conversion_rate') and flt(self.doc.conversion_rate) or 1)
-		if self.doc.supplier_qtn:
-			get_obj('DocType Mapper','Supplier Quotation-Purchase Order').dt_map('Supplier Quotation','Purchase Order',self.doc.supplier_qtn, self.doc, self.doclist, "[['Supplier Quotation','Purchase Order'],['Supplier Quotation Detail', 'PO Detail']]")
 	
 	# GET TERMS & CONDITIONS
 	# =====================================================================================
@@ -115,12 +113,8 @@
 	# validation
 	#-------------------------------------------------------------------------------------------------------------
 	def validate_doc(self,pc_obj):
-		# Please Check Supplier Quotation - Purchase ORder Transaction , it has to be discussed
-		if self.doc.supp_quo_no:
-			pc_obj.validate_doc(obj = self, prevdoc_doctype = 'Supplier Quotation', prevdoc_docname = cstr(self.doc.supp_quo_no))
-		else:
-			# Validate values with reference document
-			pc_obj.validate_reference_value(obj = self)
+		# Validate values with reference document
+		pc_obj.validate_reference_value(obj = self)
 
 	# Check for Stopped status 
 	def check_for_stopped_status(self, pc_obj):
@@ -176,22 +170,22 @@
 				if is_stopped:
 					po_qty = flt(d.qty) > flt(d.received_qty) and flt( flt(flt(d.qty) - flt(d.received_qty)) * flt(d.conversion_factor))or 0 
 				
-				# No updates in Indent on Stop / Unstop
-				if cstr(d.prevdoc_doctype) == 'Indent' and not is_stopped:
+				# No updates in Purchase Request on Stop / Unstop
+				if cstr(d.prevdoc_doctype) == 'Purchase Request' and not is_stopped:
 					# get qty and pending_qty of prevdoc 
-					curr_ref_qty = pc_obj.get_qty( d.doctype, 'prevdoc_detail_docname', d.prevdoc_detail_docname, 'Indent Detail', 'Indent - Purchase Order', self.doc.name)
+					curr_ref_qty = pc_obj.get_qty( d.doctype, 'prevdoc_detail_docname', d.prevdoc_detail_docname, 'Purchase Request Item', 'Purchase Request - Purchase Order', self.doc.name)
 					max_qty, qty, curr_qty = flt(curr_ref_qty.split('~~~')[1]), flt(curr_ref_qty.split('~~~')[0]), 0
 					
 					if flt(qty) + flt(po_qty) > flt(max_qty):
 						curr_qty = flt(max_qty) - flt(qty)
-						# special case as there is no restriction for Indent - Purchase Order 
+						# special case as there is no restriction for Purchase Request - Purchase Order 
 						curr_qty = (curr_qty > 0) and curr_qty or 0
 					else:
 						curr_qty = flt(po_qty)
 					
 					ind_qty = -flt(curr_qty)
 
-				#==> Update Bin's Indent Qty by +- ind_qty and Ordered Qty by +- qty
+				#==> Update Bin's Purchase Request Qty by +- ind_qty and Ordered Qty by +- qty
 				get_obj('Warehouse', d.warehouse).update_bin(0, 0, (is_submit and 1 or -1) * flt(po_qty), (is_submit and 1 or -1) * flt(ind_qty), 0, d.item_code, self.doc.transaction_date)
 
 	def check_modified_date(self):
@@ -252,12 +246,12 @@
 		self.check_for_stopped_status(pc_obj)
 		
 		# 2.Check if Purchase Receipt has been submitted against current Purchase Order
-		pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Receipt', docname = self.doc.name, detail_doctype = 'Purchase Receipt Detail')
+		pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Receipt', docname = self.doc.name, detail_doctype = 'Purchase Receipt Item')
 
-		# 3.Check if Payable Voucher has been submitted against current Purchase Order
-		#pc_obj.check_docstatus(check = 'Next', doctype = 'Payable Voucher', docname = self.doc.name, detail_doctype = 'PV Detail')
+		# 3.Check if Purchase Invoice has been submitted against current Purchase Order
+		#pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Invoice', docname = self.doc.name, detail_doctype = 'Purchase Invoice Item')
 		
-		submitted = sql("select t1.name from `tabPayable Voucher` t1,`tabPV Detail` t2 where t1.name = t2.parent and t2.purchase_order = '%s' and t1.docstatus = 1" % self.doc.name)
+		submitted = sql("select t1.name from `tabPurchase Invoice` t1,`tabPurchase Invoice Item` t2 where t1.name = t2.parent and t2.purchase_order = '%s' and t1.docstatus = 1" % self.doc.name)
 		if submitted:
 			msgprint("Purchase Invoice : " + cstr(submitted[0][0]) + " has already been submitted !")
 			raise Exception
@@ -265,7 +259,7 @@
 		# 4.Set Status as Cancelled
 		set(self.doc,'status','Cancelled')
 
-		# 5.Update Indents Pending Qty and accordingly it's Status 
+		# 5.Update Purchase Requests Pending Qty and accordingly it's Status 
 		pc_obj.update_prevdoc_detail(self,is_submit = 0)
 		
 		# 6.Update Bin	
@@ -294,12 +288,12 @@
 					self.add_bom(d)
 				
 			self.delete_irrelevant_raw_material()
-			#---------------calculate amt in	PO Raw Material Detail-------------
+			#---------------calculate amt in	Purchase Order Item Supplied-------------
 			self.calculate_amount(d)
 			
 	def add_bom(self, d):
 		#----- fetching default bom from Bill of Materials instead of Item Master --
-		bom_det = sql("select t1.item, t2.item_code, t2.qty_consumed_per_unit, t2.moving_avg_rate, t2.value_as_per_mar, t2.stock_uom, t2.name, t2.parent from `tabBill Of Materials` t1, `tabBOM Material` t2 where t2.parent = t1.name and t1.item = '%s' and ifnull(t1.is_default,0) = 1 and t1.docstatus = 1" % d.item_code)
+		bom_det = sql("select t1.item, t2.item_code, t2.qty_consumed_per_unit, t2.moving_avg_rate, t2.value_as_per_mar, t2.stock_uom, t2.name, t2.parent from `tabBOM` t1, `tabBOM Item` t2 where t2.parent = t1.name and t1.item = '%s' and ifnull(t1.is_default,0) = 1 and t1.docstatus = 1" % d.item_code)
 		
 		if not bom_det:
 			msgprint("No default BOM exists for item: %s" % d.item_code)
@@ -308,9 +302,9 @@
 			#-------------- add child function--------------------
 			chgd_rqd_qty = []
 			for i in bom_det:
-				if i and not sql("select name from `tabPO Raw Material Detail` where reference_name = '%s' and bom_detail_no = '%s' and parent = '%s' " %(d.name, i[6], self.doc.name)):
+				if i and not sql("select name from `tabPurchase Order Item Supplied` where reference_name = '%s' and bom_detail_no = '%s' and parent = '%s' " %(d.name, i[6], self.doc.name)):
 
-					rm_child = addchild(self.doc, 'po_raw_material_details', 'PO Raw Material Detail', 1, self.doclist)
+					rm_child = addchild(self.doc, 'po_raw_material_details', 'Purchase Order Item Supplied', 1, self.doclist)
 
 					rm_child.reference_name = d.name
 					rm_child.bom_detail_no = i and i[6] or ''
@@ -340,7 +334,7 @@
 	#--------------------------------------------------------------	
 	def delete_irrelevant_raw_material(self):
 		for d in getlist(self.doclist,'po_raw_material_details'):
-			if not sql("select name from `tabPO Detail` where name = '%s' and parent = '%s'and item_code = '%s'" % (d.reference_name, self.doc.name, d.main_item_code)):
+			if not sql("select name from `tabPurchase Order Item` where name = '%s' and parent = '%s'and item_code = '%s'" % (d.reference_name, self.doc.name, d.main_item_code)):
 				d.parent = 'old_par:'+self.doc.name
 				d.save()
 		
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.txt b/erpnext/buying/doctype/purchase_order/purchase_order.txt
index 0239370..6c10db8 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.txt
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.txt
@@ -3,22 +3,13 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:15',
+		'creation': '2012-03-27 14:35:51',
 		'docstatus': 0,
-		'modified': '2012-03-02 12:23:50',
+		'modified': '2012-03-27 18:46:29',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
 
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Purchase Order',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
 	# These values are common for all DocType
 	{
 		'_last_update': u'1330339817',
@@ -26,6 +17,7 @@
 		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'document_type': u'Transaction',
+		'is_submittable': 1,
 		'is_transaction_doc': 1,
 		'module': u'Buying',
 		'name': '__common__',
@@ -35,15 +27,15 @@
 		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'subject': u'To %(supplier_name)s on %(transaction_date)s | %(per_received)s% delivered',
-		'version': 501
+		'version': 502
 	},
 
-	# These values are common for all DocFormat
+	# These values are common for all DocField
 	{
-		'doctype': u'DocFormat',
+		'doctype': u'DocField',
 		'name': '__common__',
 		'parent': u'Purchase Order',
-		'parentfield': u'formats',
+		'parentfield': u'fields',
 		'parenttype': u'DocType'
 	},
 
@@ -70,33 +62,32 @@
 		'create': 1,
 		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': u'Production Manager',
-		'submit': 0,
+		'role': u'Purchase User',
+		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
 		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
+		'role': u'All'
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
 		'doctype': u'DocPerm',
+		'match': u'supplier',
 		'permlevel': 0,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
+		'role': u'Supplier'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'All',
+		'write': 1
 	},
 
 	# DocPerm
@@ -125,24 +116,12 @@
 
 	# DocPerm
 	{
-		'amend': 1,
-		'cancel': 0,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Purchase User',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
 		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': u'All',
+		'role': u'Material User',
 		'submit': 0,
 		'write': 0
 	},
@@ -154,46 +133,17 @@
 		'create': 0,
 		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': u'Supplier',
+		'role': u'Material User',
 		'submit': 0,
 		'write': 0
 	},
 
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 2,
-		'role': u'All',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Purchase Order Classic'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Purchase Order Modern'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Purchase Order Spartan'
-	},
-
 	# DocField
 	{
 		'colour': u'White:FFF',
 		'description': u'Enter rates and quantity of items you want to purchase and send the purchase order to your supplier.',
 		'doctype': u'DocField',
+		'fieldname': u'basic_info',
 		'fieldtype': u'Section Break',
 		'label': u'Basic Info',
 		'oldfieldtype': u'Section Break',
@@ -204,6 +154,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -319,6 +270,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break1',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -426,6 +378,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'items',
 		'fieldtype': u'Section Break',
 		'label': u'Items',
 		'oldfieldtype': u'Section Break',
@@ -435,6 +388,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break2',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -479,6 +433,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break3',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -496,7 +451,7 @@
 		'no_copy': 1,
 		'oldfieldname': u'indent_no',
 		'oldfieldtype': u'Link',
-		'options': u'Indent',
+		'options': u'Purchase Request',
 		'permlevel': 0,
 		'print_hide': 1
 	},
@@ -504,6 +459,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_items',
 		'fieldtype': u'Button',
 		'hidden': 0,
 		'label': u'Get Items',
@@ -515,6 +471,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'section_break0',
 		'fieldtype': u'Section Break',
 		'permlevel': 0
 	},
@@ -525,11 +482,11 @@
 		'doctype': u'DocField',
 		'fieldname': u'po_details',
 		'fieldtype': u'Table',
-		'label': u'PO Details',
+		'label': u'Purchase Order Items',
 		'no_copy': 0,
 		'oldfieldname': u'po_details',
 		'oldfieldtype': u'Table',
-		'options': u'PO Detail',
+		'options': u'Purchase Order Item',
 		'permlevel': 0
 	},
 
@@ -537,6 +494,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'get_last_purchase_rate',
 		'fieldtype': u'Button',
 		'label': u'Get Last Purchase Rate',
 		'oldfieldtype': u'Button',
@@ -562,6 +520,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'recalculate_values',
 		'fieldtype': u'Button',
 		'label': u'Re-Calculate Values',
 		'oldfieldtype': u'Button',
@@ -573,6 +532,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'taxes',
 		'fieldtype': u'Section Break',
 		'label': u'Taxes',
 		'oldfieldtype': u'Section Break',
@@ -582,15 +542,15 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'description': u'If you have created a standard template in Other Charges master, select one and click on the button below.',
+		'description': u'If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.',
 		'doctype': u'DocField',
 		'fieldname': u'purchase_other_charges',
 		'fieldtype': u'Link',
-		'label': u'Purchase Other Charges',
+		'label': u'Purchase Taxes and Charges',
 		'no_copy': 1,
 		'oldfieldname': u'purchase_other_charges',
 		'oldfieldtype': u'Link',
-		'options': u'Purchase Other Charges',
+		'options': u'Purchase Taxes and Charges Master',
 		'permlevel': 0,
 		'print_hide': 1
 	},
@@ -598,6 +558,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_tax_detail',
 		'fieldtype': u'Button',
 		'label': u'Get Tax Detail',
 		'oldfieldtype': u'Button',
@@ -611,17 +572,18 @@
 		'doctype': u'DocField',
 		'fieldname': u'purchase_tax_details',
 		'fieldtype': u'Table',
-		'label': u'Purchase Tax Details',
+		'label': u'Purchase Taxes and Charges',
 		'no_copy': 0,
 		'oldfieldname': u'purchase_tax_details',
 		'oldfieldtype': u'Table',
-		'options': u'Purchase Tax Detail',
+		'options': u'Purchase Taxes and Charges',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'calculate_tax',
 		'fieldtype': u'Button',
 		'label': u'Calculate Tax',
 		'oldfieldtype': u'Button',
@@ -633,6 +595,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'tax_calculation',
 		'fieldtype': u'HTML',
 		'label': u'Tax Calculation',
 		'no_copy': 1,
@@ -658,6 +621,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'totals',
 		'fieldtype': u'Section Break',
 		'label': u'Totals',
 		'oldfieldtype': u'Section Break',
@@ -708,7 +672,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_added',
 		'fieldtype': u'Currency',
-		'label': u'Other Charges Added',
+		'label': u'Taxes and Charges Added',
 		'no_copy': 0,
 		'oldfieldname': u'other_charges_added',
 		'oldfieldtype': u'Currency',
@@ -721,7 +685,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_deducted',
 		'fieldtype': u'Currency',
-		'label': u'Other Charges Deducted',
+		'label': u'Taxes and Charges Deducted',
 		'no_copy': 0,
 		'oldfieldname': u'other_charges_deducted',
 		'oldfieldtype': u'Currency',
@@ -732,6 +696,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break4',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -783,7 +748,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_added_import',
 		'fieldtype': u'Currency',
-		'label': u'Other Charges Added (Import)',
+		'label': u'Taxes and Charges Added (Import)',
 		'no_copy': 0,
 		'oldfieldname': u'other_charges_added_import',
 		'oldfieldtype': u'Currency',
@@ -797,7 +762,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_deducted_import',
 		'fieldtype': u'Currency',
-		'label': u'Other Charges Deducted (Import)',
+		'label': u'Taxes and Charges Deducted (Import)',
 		'no_copy': 0,
 		'oldfieldname': u'other_charges_deducted_import',
 		'oldfieldtype': u'Currency',
@@ -809,8 +774,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'terms_section_break',
 		'fieldtype': u'Section Break',
-		'label': u'Terms',
+		'label': u'Terms and Conditions',
 		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
@@ -834,10 +800,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'tc_name',
 		'fieldtype': u'Link',
-		'label': u'Select Terms',
+		'label': u'Select Terms and Conditions',
 		'oldfieldname': u'tc_name',
 		'oldfieldtype': u'Link',
-		'options': u'Term',
+		'options': u'Terms and Conditions',
 		'permlevel': 0,
 		'print_hide': 1
 	},
@@ -845,8 +811,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_terms',
 		'fieldtype': u'Button',
-		'label': u'Get Terms',
+		'label': u'Get Terms and Conditions',
 		'oldfieldtype': u'Button',
 		'options': u'get_tc_details',
 		'permlevel': 0
@@ -855,8 +822,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'terms_html',
 		'fieldtype': u'HTML',
-		'label': u'Terms HTML',
+		'label': u'Terms and Conditions HTML',
 		'oldfieldtype': u'HTML',
 		'options': u'You can add Terms and Notes that will be printed in the Transaction',
 		'permlevel': 0,
@@ -868,7 +836,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'terms',
 		'fieldtype': u'Text Editor',
-		'label': u'Terms1',
+		'label': u'Terms and Conditions1',
 		'oldfieldname': u'terms',
 		'oldfieldtype': u'Text Editor',
 		'permlevel': 0
@@ -877,6 +845,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'more_info',
 		'fieldtype': u'Section Break',
 		'label': u'More Info',
 		'oldfieldtype': u'Section Break',
@@ -994,6 +963,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break5',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -1049,6 +1019,7 @@
 		'colour': u'White:FFF',
 		'description': u'Required raw materials issued to the supplier for producing a sub - contracted item.',
 		'doctype': u'DocField',
+		'fieldname': u'raw_material_details',
 		'fieldtype': u'Section Break',
 		'label': u'Raw Material Details',
 		'oldfieldtype': u'Section Break',
@@ -1062,11 +1033,11 @@
 		'doctype': u'DocField',
 		'fieldname': u'po_raw_material_details',
 		'fieldtype': u'Table',
-		'label': u'PO Raw Material Details',
+		'label': u'Purchase Order Items Supplied',
 		'no_copy': 0,
 		'oldfieldname': u'po_raw_material_details',
 		'oldfieldtype': u'Table',
-		'options': u'PO Raw Material Detail',
+		'options': u'Purchase Order Item Supplied',
 		'permlevel': 1,
 		'print_hide': 1
 	},
@@ -1075,6 +1046,7 @@
 	{
 		'allow_on_submit': 1,
 		'doctype': u'DocField',
+		'fieldname': u'repair_purchase_order',
 		'fieldtype': u'Button',
 		'label': u'Repair Purchase Order',
 		'oldfieldtype': u'Button',
@@ -1082,4 +1054,4 @@
 		'permlevel': 0,
 		'print_hide': 1
 	}
-]
\ No newline at end of file
+]
diff --git a/erpnext/buying/doctype/purchase_other_charges/__init__.py b/erpnext/buying/doctype/purchase_order_item/__init__.py
similarity index 100%
rename from erpnext/buying/doctype/purchase_other_charges/__init__.py
rename to erpnext/buying/doctype/purchase_order_item/__init__.py
diff --git a/erpnext/buying/doctype/purchase_order_item/purchase_order_item.txt b/erpnext/buying/doctype/purchase_order_item/purchase_order_item.txt
new file mode 100755
index 0000000..499cdef
--- /dev/null
+++ b/erpnext/buying/doctype/purchase_order_item/purchase_order_item.txt
@@ -0,0 +1,456 @@
+# DocType, Purchase Order Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:50',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'POD/.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Buying',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 65
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Order Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Purchase Order Item
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Order Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'schedule_date',
+		'fieldtype': u'Date',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Reqd By Date',
+		'no_copy': 1,
+		'oldfieldname': u'schedule_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Quantity',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'60px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'import_ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Ref Rate ',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'discount_rate',
+		'fieldtype': u'Currency',
+		'label': u'Discount %',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'import_rate',
+		'fieldtype': u'Currency',
+		'hidden': 0,
+		'label': u'Rate ',
+		'oldfieldname': u'import_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'import_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'import_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'purchase_ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Ref Rate *',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate (Default Curr.) *',
+		'oldfieldname': u'purchase_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount  (Default Curr.)',
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'label': u'Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'project_name',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Project Name',
+		'options': u'Project',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'uom',
+		'fieldtype': u'Link',
+		'label': u'UOM',
+		'oldfieldname': u'uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'conversion_factor',
+		'fieldtype': u'Currency',
+		'hidden': 0,
+		'label': u'UOM Conversion Factor',
+		'oldfieldname': u'conversion_factor',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'label': u'Stock UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_doctype',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Prevdoc DocType',
+		'no_copy': 0,
+		'oldfieldname': u'prevdoc_doctype',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_docname',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Purchase Requisition No',
+		'no_copy': 0,
+		'oldfieldname': u'prevdoc_docname',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Request',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1,
+		'width': u'120px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_date',
+		'fieldtype': u'Date',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Purchase Requisition Date',
+		'oldfieldname': u'prevdoc_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_detail_docname',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Purchase Requisition Detail No',
+		'no_copy': 0,
+		'oldfieldname': u'prevdoc_detail_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Brand',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Link',
+		'options': u'Brand',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'stock_qty',
+		'fieldtype': u'Currency',
+		'hidden': 0,
+		'label': u'Stock Qty',
+		'no_copy': 1,
+		'oldfieldname': u'stock_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'received_qty',
+		'fieldtype': u'Currency',
+		'hidden': 0,
+		'label': u'Received Qty',
+		'no_copy': 1,
+		'oldfieldname': u'received_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'billed_qty',
+		'fieldtype': u'Currency',
+		'hidden': 0,
+		'label': u'Billed Quantity',
+		'no_copy': 1,
+		'oldfieldname': u'billed_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges',
+		'doctype': u'DocField',
+		'fieldname': u'item_tax_rate',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Item Tax Rate',
+		'oldfieldname': u'item_tax_rate',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'page_break',
+		'fieldtype': u'Check',
+		'hidden': 0,
+		'label': u'Page Break',
+		'no_copy': 1,
+		'oldfieldname': u'page_break',
+		'oldfieldtype': u'Check',
+		'permlevel': 0,
+		'print_hide': 1
+	}
+]
diff --git a/erpnext/buying/doctype/purchase_other_charges/__init__.py b/erpnext/buying/doctype/purchase_order_item_supplied/__init__.py
similarity index 100%
copy from erpnext/buying/doctype/purchase_other_charges/__init__.py
copy to erpnext/buying/doctype/purchase_order_item_supplied/__init__.py
diff --git a/erpnext/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt b/erpnext/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt
new file mode 100644
index 0000000..eb529c4
--- /dev/null
+++ b/erpnext/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt
@@ -0,0 +1,144 @@
+# DocType, Purchase Order Item Supplied
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:50',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:50',
+		'modified_by': u'Administrator',
+		'owner': u'dhanalekshmi@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'hide_toolbar': 1,
+		'istable': 1,
+		'module': u'Buying',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 1
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Order Item Supplied',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Purchase Order Item Supplied
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Order Item Supplied'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reference_name',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'in_filter': 0,
+		'label': u'Reference Name',
+		'oldfieldname': u'reference_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'bom_detail_no',
+		'fieldtype': u'Data',
+		'label': u'BOM Detail No',
+		'oldfieldname': u'bom_detail_no',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'main_item_code',
+		'fieldtype': u'Data',
+		'label': u'Item Code',
+		'oldfieldname': u'main_item_code',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rm_item_code',
+		'fieldtype': u'Data',
+		'label': u'Raw Material Item Code',
+		'oldfieldname': u'rm_item_code',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'required_qty',
+		'fieldtype': u'Currency',
+		'label': u'Required Qty',
+		'oldfieldname': u'required_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'conversion_factor',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Conversion Factor',
+		'oldfieldname': u'conversion_factor',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'Stock Uom',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.js b/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.js
deleted file mode 100644
index f0b4ae2..0000000
--- a/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.js
+++ /dev/null
@@ -1,175 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// 
-
-//--------- ONLOAD -------------
-cur_frm.cscript.onload = function(doc, cdt, cdn) {
-   
-}
-
-cur_frm.cscript.refresh = function(doc, cdt, cdn) {
-   
-}
-
-cur_frm.pformat.purchase_tax_details= function(doc){
- 
-  //function to make row of table
-  var make_row = function(title,val,bold){
-    var bstart = '<b>'; var bend = '</b>';
-    return '<tr><td style="width:50%;">'+(bold?bstart:'')+title+(bold?bend:'')+'</td>'
-     +'<td style="width:25%;text-align:right;">'+doc.currency+'</td>'
-     +'<td style="width:25%;text-align:right;">'+val+'</td>'
-     +'</tr>'
-  }
-
-  function convert_rate(val){
-    var new_val = flt(val)/flt(doc.conversion_rate);
-    return new_val;
-  }
-
-  var cl = getchildren('Purchase Tax Detail',doc.name,'purchase_tax_details');
-
-  // outer table  
-  var out='<div><table class="noborder" style="width:100%"><tr><td style="width: 60%"></td><td>';
-  
-  // main table
-  out +='<table class="noborder" style="width:100%">'+make_row('Net Total',fmt_money(convert_rate(doc.net_total)),1);
-
-  // add rows
-  if(cl.length){
-    for(var i=0;i<cl.length;i++){
-      out += make_row(cl[i].description,fmt_money(convert_rate(cl[i].tax_amount)),0);
-    }
-  }
-  
-  // grand total
-  out +=make_row('Grand Total',fmt_money(doc.grand_total_import),1)
-  if(doc.in_words_import){
-    out +='</table></td></tr>';
-    out += '<tr><td colspan = "2">';
-    out += '<table><tr><td style="width:25%;"><b>In Words</b></td>';
-    out+= '<td style="width:50%;">'+doc.in_words_import+'</td></tr>';
-  }
-  out +='</table></td></tr></table></div>';   
-  return out;
-}
-
-cur_frm.cscript.add_deduct_tax = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(!d.category && d.add_deduct_tax){
-    alert("Please select Category first");
-    d.add_deduct_tax = '';
-  }
-  else if(d.category != 'For Total' && d.add_deduct_tax == 'Deduct'){
-    alert("You cannot Deduct when category is for valuation or for both(i.e total and valuation)");
-    d.add_deduct_tax = '';
-  }
-
-}
-
-cur_frm.cscript.charge_type = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(!d.category && d.charge_type){
-    alert("Please select Category first");
-    d.charge_type = '';
-  }  
-  else if(d.idx == 1 && (d.charge_type == 'On Previous Row Amount' || d.charge_type == 'On Previous Row Total')){
-    alert("You cannot select Charge Type as 'On Previous Row Amount' or 'On Previous Row Total' for first row");
-    d.charge_type = '';
-  }
-  else if((d.category == 'For Valuation' || d.category == 'For Both') && (d.charge_type == 'On Previous Row Amount' || d.charge_type == 'On Previous Row Total')){
-    alert("You cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for valuation. You can select only 'For Total' option for previous row amount or previous row total")
-    d.charge_type = '';
-  }
-  validated = false;
-  refresh_field('charge_type',d.name,'purchase_tax_details');
-
-  cur_frm.cscript.row_id(doc, cdt, cdn);
-  cur_frm.cscript.rate(doc, cdt, cdn);
-  cur_frm.cscript.tax_amount(doc, cdt, cdn);
-}
-
-
-cur_frm.cscript.row_id = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(!d.charge_type && d.row_id){
-    alert("Please select Charge Type first");
-    d.row_id = '';
-  }
-  else if((d.charge_type == 'Actual' || d.charge_type == 'On Net Total') && d.row_id) {
-    alert("You can Enter Row only if your Charge Type is 'On Previous Row Amount' or ' Previous Row Total'");
-    d.row_id = '';
-  }
-  else if((d.charge_type == 'On Previous Row Amount' || d.charge_type == 'On Previous Row Total') && d.row_id){
-    if(d.row_id >= d.idx){
-      alert("You cannot Enter Row no. greater than or equal to current row no. for this Charge type");
-      d.row_id = '';
-    }
-  }
-  validated = false;
-  refresh_field('row_id',d.name,'purchase_tax_details');
-}
-
-/*---------------------- Get rate if account_head has account_type as TAX or CHARGEABLE-------------------------------------*/
-
-cur_frm.fields_dict['purchase_tax_details'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
-  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND (tabAccount.account_type = "Tax" OR tabAccount.account_type = "Chargeable" or (tabAccount.is_pl_account = "Yes" and tabAccount.debit_or_credit = "Debit")) AND tabAccount.company = "' + doc.company + '" AND  tabAccount.name LIKE "%s"'
-}
-
-
-cur_frm.fields_dict['purchase_tax_details'].grid.get_field("cost_center").get_query = function(doc) {
-	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
-}
-
-
-cur_frm.cscript.account_head = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(!d.charge_type && d.account_head){
-    alert("Please select Charge Type first");
-    validated = false;
-    d.account_head = '';
-  }
-  else if(d.account_head && d.charge_type) {
-    arg = "{'charge_type' : '" + d.charge_type +"', 'account_head' : '" + d.account_head + "'}";
-    get_server_fields('get_rate', arg, 'purchase_tax_details', doc, cdt, cdn, 1);
-  }
-  refresh_field('account_head',d.name,'purchase_tax_details');
-}
-
-cur_frm.cscript.rate = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(!d.charge_type && d.rate) {
-    alert("Please select Charge Type first");
-    d.rate = '';
-  }
-  validated = false;
-  refresh_field('rate',d.name,'purchase_tax_details');
-}
-
-cur_frm.cscript.tax_amount = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(!d.charge_type && d.tax_amount){
-    alert("Please select Charge Type first");
-    d.tax_amount = '';
-  }
-  else if(d.charge_type && d.tax_amount) {
-    alert("You cannot directly enter Amount and if your Charge Type is Actual enter your amount in Rate");
-    d.tax_amount = '';
-  }
-  validated = false;
-  refresh_field('tax_amount',d.name,'purchase_tax_details');
-}
diff --git a/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.txt b/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.txt
deleted file mode 100644
index 8be1359..0000000
--- a/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.txt
+++ /dev/null
@@ -1,130 +0,0 @@
-# DocType, Purchase Other Charges
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:15',
-		'docstatus': 0,
-		'modified': '2012-01-24 12:42:18',
-		'modified_by': 'Administrator',
-		'owner': 'wasim@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1325570646',
-		'allow_trash': 1,
-		'autoname': 'field:title',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Buying',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 18
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Purchase Other Charges',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Purchase Other Charges',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Purchase Other Charges
-	{
-		'doctype': 'DocType',
-		'name': 'Purchase Other Charges'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'All'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Purchase Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Purchase Master Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'title',
-		'fieldtype': 'Data',
-		'in_filter': 1,
-		'label': 'Title',
-		'oldfieldname': 'title',
-		'oldfieldtype': 'Data',
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'in_filter': 1,
-		'label': 'Company',
-		'options': 'Company',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_tax_details',
-		'fieldtype': 'Table',
-		'label': 'Purchase Tax Details',
-		'oldfieldname': 'purchase_tax_details',
-		'oldfieldtype': 'Table',
-		'options': 'Purchase Tax Detail'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/purchase_other_charges/__init__.py b/erpnext/buying/doctype/purchase_receipt_item_supplied/__init__.py
similarity index 100%
copy from erpnext/buying/doctype/purchase_other_charges/__init__.py
copy to erpnext/buying/doctype/purchase_receipt_item_supplied/__init__.py
diff --git a/erpnext/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt b/erpnext/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt
new file mode 100644
index 0000000..602bb25
--- /dev/null
+++ b/erpnext/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt
@@ -0,0 +1,179 @@
+# DocType, Purchase Receipt Item Supplied
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:50',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:50',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'hide_toolbar': 0,
+		'istable': 1,
+		'module': u'Buying',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 17
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Receipt Item Supplied',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Purchase Receipt Item Supplied
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Receipt Item Supplied'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reference_name',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'in_filter': 0,
+		'label': u'Reference Name',
+		'oldfieldname': u'reference_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'bom_detail_no',
+		'fieldtype': u'Data',
+		'label': u'BOM Detail No',
+		'oldfieldname': u'bom_detail_no',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'main_item_code',
+		'fieldtype': u'Data',
+		'label': u'Item Code',
+		'oldfieldname': u'main_item_code',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rm_item_code',
+		'fieldtype': u'Data',
+		'label': u'Raw Material Item Code',
+		'oldfieldname': u'rm_item_code',
+		'oldfieldtype': u'Data',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Data',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'required_qty',
+		'fieldtype': u'Currency',
+		'label': u'Required Qty',
+		'oldfieldname': u'required_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'consumed_qty',
+		'fieldtype': u'Currency',
+		'label': u'Consumed Qty',
+		'oldfieldname': u'consumed_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'conversion_factor',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Conversion Factor',
+		'oldfieldname': u'conversion_factor',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'Stock Uom',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'current_stock',
+		'fieldtype': u'Currency',
+		'label': u'Current Stock',
+		'oldfieldname': u'current_stock',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/purchase_other_charges/__init__.py b/erpnext/buying/doctype/purchase_request/__init__.py
similarity index 100%
copy from erpnext/buying/doctype/purchase_other_charges/__init__.py
copy to erpnext/buying/doctype/purchase_request/__init__.py
diff --git a/erpnext/buying/doctype/purchase_request/listview.js b/erpnext/buying/doctype/purchase_request/listview.js
new file mode 100644
index 0000000..5e35bf1
--- /dev/null
+++ b/erpnext/buying/doctype/purchase_request/listview.js
@@ -0,0 +1,33 @@
+// render
+wn.doclistviews['Purchase Request'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			"`tabPurchase Request`.status",
+			"IFNULL(`tabPurchase Request`.per_ordered, 0) as per_ordered",
+			"`tabPurchase Request`.remark",
+		]);
+		this.stats = this.stats.concat(['status', 'company']);
+	},
+
+	prepare_data: function(data) {
+		this._super(data);
+		if(['Stopped', 'Cancelled'].indexOf(data.status)!=-1) {
+			data.label_type = 'important';
+		} else if(data.status == 'Submitted') {
+			data.label_type = 'success';
+		}
+
+		data.status_html = repl('<span class="label label-%(label_type)s">%(status)s</span>', data);
+	},
+	
+	columns: [
+		{width: '5%', content:'avatar'},
+		{width: '3%', content:'docstatus'},
+		{width: '17%', content:'name'},
+		{width: '53%', content:'status_html+tags+remark', css: {'color': '#aaa'}},
+		{width: '10%', content: 'per_ordered', type:'bar-graph', label:'Ordered'},
+		{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+});
+
diff --git a/erpnext/buying/doctype/purchase_request/purchase_request.js b/erpnext/buying/doctype/purchase_request/purchase_request.js
new file mode 100644
index 0000000..1cb597a
--- /dev/null
+++ b/erpnext/buying/doctype/purchase_request/purchase_request.js
@@ -0,0 +1,140 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+cur_frm.cscript.tname = "Purchase Request Item";
+cur_frm.cscript.fname = "indent_details";
+
+wn.require('erpnext/buying/doctype/purchase_common/purchase_common.js');
+wn.require('erpnext/utilities/doctype/sms_control/sms_control.js');
+cur_frm.cscript.indent_doctype_label =	get_doctype_label('Purchase Request');
+	
+//========================== On Load =================================================
+cur_frm.cscript.onload = function(doc, cdt, cdn) {
+	if (!doc.transaction_date) doc.transaction_date = dateutil.obj_to_str(new Date())
+	if (!doc.status) doc.status = 'Draft';
+
+	// defined in purchase_common.js
+	//cur_frm.cscript.update_item_details(doc, cdt, cdn);
+}
+
+cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) {
+	// second call
+	if(doc.__islocal){ 
+		cur_frm.cscript.get_item_defaults(doc);
+	}	
+}
+
+cur_frm.cscript.get_item_defaults = function(doc) {
+		var ch = getchildren( 'Purchase Request Item', doc.name, 'indent_details');
+		if (flt(ch.length) > 0){
+			$c_obj(make_doclist(doc.doctype, doc.name), 'get_item_defaults', '', function(r, rt) {refresh_field('indent_details'); });
+		}
+}
+
+
+//======================= Refresh =====================================
+cur_frm.cscript.refresh = function(doc, cdt, cdn) { 
+
+	// Unhide Fields in Next Steps
+	// ---------------------------------
+	
+	cur_frm.clear_custom_buttons();
+
+	if(doc.docstatus == 1 && doc.status != 'Stopped'){
+		var ch = getchildren('Purchase Request Item',doc.name,'indent_details');
+		var is_closed = 1;
+		for(var i in ch){
+			if(flt(ch[i].qty) > flt(ch[i].ordered_qty)) is_closed = 0;
+		}
+		if(!is_closed) {
+			cur_frm.add_custom_button('Make Purchase Order', cur_frm.cscript['Make Purchase Order'])
+			cur_frm.add_custom_button('Stop ' + cur_frm.cscript.indent_doctype_label, cur_frm.cscript['Stop Purchase Requisition'])
+		}
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
+	}
+ 
+	if(doc.docstatus == 1 && doc.status == 'Stopped')
+		cur_frm.add_custom_button('Unstop ' + cur_frm.cscript.indent_doctype_label, cur_frm.cscript['Unstop Purchase Requisition'])
+		
+	if(doc.docstatus == 1)
+		unhide_field(['Repair Purchase Requisition']);
+	else
+		hide_field(['Repair Purchase Requisition']);
+}
+
+//======================= validation ===================================
+cur_frm.cscript.validate = function(doc,cdt,cdn){
+	is_item_table(doc,cdt,cdn);
+}
+//======================= transaction date =============================
+cur_frm.cscript.transaction_date = function(doc,cdt,cdn){
+	if(doc.__islocal){ 
+		cur_frm.cscript.get_default_schedule_date(doc);
+	}
+}
+
+//=================== Quantity ===================================================================
+cur_frm.cscript.qty = function(doc, cdt, cdn) {
+	var d = locals[cdt][cdn];
+	if (flt(d.qty) < flt(d.min_order_qty))
+		alert("Warning: " + cur_frm.cscript.indent_doctype_label + " Qty is less than Minimum Order Qty");
+}
+
+// On Button Click Functions
+// ------------------------------------------------------------------------------
+
+// Make Purchase Order
+cur_frm.cscript['Make Purchase Order'] = function() {
+	var doc = cur_frm.doc;
+	n = createLocal('Purchase Order');
+	$c('dt_map', args={
+		'docs':compress_doclist([locals['Purchase Order'][n]]),
+		'from_doctype':doc.doctype,
+		'to_doctype':'Purchase Order',
+		'from_docname':doc.name,
+		'from_to_list':"[['Purchase Request','Purchase Order'],['Purchase Request Item','Purchase Order Item']]"
+		}, function(r,rt) {
+			 loaddoc('Purchase Order', n);
+		}
+	);
+}
+
+// Stop INDENT
+// ==================================================================================================
+cur_frm.cscript['Stop Purchase Requisition'] = function() {
+	var doc = cur_frm.doc;
+	var check = confirm("Do you really want to STOP this " + cur_frm.cscript.indent_doctype_label + "?");
+
+	if (check) {
+		$c('runserverobj', args={'method':'update_status', 'arg': 'Stopped', 'docs': compress_doclist(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
+			cur_frm.refresh();
+		});
+	}
+}
+
+// Un Stop INDENT
+//====================================================================================================
+cur_frm.cscript['Unstop Purchase Requisition'] = function(){
+	var doc = cur_frm.doc
+	var check = confirm("Do you really want to UNSTOP this " + cur_frm.cscript.indent_doctype_label + "?");
+	
+	if (check) {
+		$c('runserverobj', args={'method':'update_status', 'arg': 'Submitted','docs': compress_doclist(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
+			cur_frm.refresh();
+			
+		});
+	}
+}
diff --git a/erpnext/buying/doctype/purchase_request/purchase_request.py b/erpnext/buying/doctype/purchase_request/purchase_request.py
new file mode 100644
index 0000000..510fb67
--- /dev/null
+++ b/erpnext/buying/doctype/purchase_request/purchase_request.py
@@ -0,0 +1,235 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+
+class DocType:
+	def __init__(self, doc, doclist=[]):
+		self.doc = doc
+		self.doclist = doclist
+		self.defaults = get_defaults()
+		self.tname = 'Purchase Request Item'
+		self.fname = 'indent_details'
+
+	# Autoname
+	# ---------
+	def autoname(self):
+		self.doc.name = make_autoname(self.doc.naming_series+'.#####')
+
+
+	def get_default_schedule_date(self):
+		get_obj(dt = 'Purchase Common').get_default_schedule_date(self)
+
+	# Pull Sales Order Items
+	# -------------------------
+	def pull_so_details(self):
+		self.check_if_already_pulled()
+		if self.doc.sales_order_no:
+			get_obj('DocType Mapper', 'Sales Order-Purchase Request', with_children=1).dt_map('Sales Order', 'Purchase Request', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Purchase Request'],['Sales Order Item', 'Purchase Request Item']]")
+			self.get_item_defaults()
+		else:
+			msgprint("Please select Sales Order whose details need to pull")
+
+	def check_if_already_pulled(self):
+		pass#if self.[d.sales_order_no for d in getlist(self.doclist, 'indent_details')]
+
+
+	# Get item's other details
+	#- ------------------------
+	def get_item_defaults(self):
+		self.get_default_schedule_date()
+		for d in getlist(self.doclist, 'indent_details'):
+			det = sql("select min_order_qty from tabItem where name = '%s'" % d.item_code)
+			d.min_order_qty = det and flt(det[0][0]) or 0
+
+	# Validate so items
+	# ----------------------------
+	def validate_qty_against_so(self):
+		so_items = {} # Format --> {'SO/00001': {'Item/001': 120, 'Item/002': 24}}
+		for d in getlist(self.doclist, 'indent_details'):
+			if d.sales_order_no:
+				if not so_items.has_key(d.sales_order_no):
+					so_items[d.sales_order_no] = {d.item_code: flt(d.qty)}
+				else:
+					if not so_items[d.sales_order_no].has_key(d.item_code):
+						so_items[d.sales_order_no][d.item_code] = flt(d.qty)
+					else:
+						so_items[d.sales_order_no][d.item_code] += flt(d.qty)
+		
+		for so_no in so_items.keys():
+			for item in so_items[so_no].keys():
+				already_indented = sql("select sum(qty) from `tabPurchase Request Item` where item_code = '%s' and sales_order_no = '%s' and docstatus = 1 and parent != '%s'" % (item, so_no, self.doc.name))
+				already_indented = already_indented and flt(already_indented[0][0]) or 0
+				
+				actual_so_qty = sql("select sum(qty) from `tabSales Order Item` where parent = '%s' and item_code = '%s' and docstatus = 1 group by parent" % (so_no, item))
+				actual_so_qty = actual_so_qty and flt(actual_so_qty[0][0]) or 0
+
+				if flt(so_items[so_no][item]) + already_indented > actual_so_qty:
+					msgprint("You can raise indent of maximum qty: %s for item: %s against sales order: %s\n Anyway, you can add more qty in new row for the same item." % (actual_so_qty - already_indented, item, so_no), raise_exception=1)
+				
+		
+	# Validate fiscal year
+	# ----------------------------
+	def validate_fiscal_year(self):
+		get_obj(dt = 'Purchase Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.transaction_date,'Purchase Request Date')
+
+	# get item details
+	# ---------------------------------
+	def get_item_details(self, arg =''):
+		if arg:
+			return get_obj(dt='Purchase Common').get_item_details(self,arg)
+		else:
+			obj = get_obj('Purchase Common')
+			for doc in self.doclist:
+				if doc.fields.get('item_code'):
+					temp = {
+						'item_code': doc.fields.get('item_code'),
+						'warehouse': doc.fields.get('warehouse')
+					}
+					ret = obj.get_item_details(self, json.dumps(temp))
+					for r in ret:
+						if not doc.fields.get(r):
+							doc.fields[r] = ret[r]
+
+
+	# Get UOM Details
+	# ---------------------------------
+	def get_uom_details(self, arg = ''):
+		return get_obj(dt='Purchase Common').get_uom_details(arg)
+
+	# GET TERMS & CONDITIONS
+	#-----------------------------
+	def get_tc_details(self):
+		return get_obj('Purchase Common').get_tc_details(self)
+		
+	# Validate Schedule Date
+	#--------------------------------
+	def validate_schedule_date(self):
+		 #:::::::: validate schedule date v/s indent date ::::::::::::
+		for d in getlist(self.doclist, 'indent_details'):
+			if d.schedule_date < self.doc.transaction_date:
+				msgprint("Expected Schedule Date cannot be before Purchase Request Date")
+				raise Exception
+				
+	# Validate
+	# ---------------------
+	def validate(self):
+		self.validate_schedule_date()
+		self.validate_fiscal_year()
+		
+		# set status as "Draft"
+		set(self.doc, 'status', 'Draft')
+
+		# Get Purchase Common Obj
+		pc_obj = get_obj(dt='Purchase Common')
+
+		# Validate Mandatory
+		pc_obj.validate_mandatory(self)
+
+		# Validate for items
+		pc_obj.validate_for_items(self)
+		
+		# Validate qty against SO
+		self.validate_qty_against_so()
+
+
+	# On Submit Functions
+	#----------------------------------------------------------------------------
+	
+	# Update Quantity Requested for Purchase in Bin
+	def update_bin(self, is_submit, is_stopped):
+		for d in getlist(self.doclist, 'indent_details'):
+			# Step 1:=> Check if is_stock_item == 'Yes'
+			if cstr(sql("select is_stock_item from `tabItem` where name = '%s'" % cstr(d.item_code))[0][0]) == 'Yes':
+				if not d.warehouse:
+					msgprint('Please Enter Warehouse for Item %s as it is stock item.' % cstr(d.item_code))
+					raise Exception
+				# Step 2:=> Set Qty 
+				qty =flt(d.qty)
+				if is_stopped:
+					qty = (d.qty > d.ordered_qty) and flt(flt(d.qty) - flt(d.ordered_qty)) or 0 
+				# Step 3 :=> Update Bin's Purchase Request Qty by +- qty 
+				get_obj('Warehouse', d.warehouse).update_bin(0, 0, 0, (is_submit and 1 or -1) * flt(qty), 0, d.item_code, self.doc.transaction_date)		
+		
+	# On Submit			
+	#---------------------------------------------------------------------------
+	def on_submit(self):
+		# Step 1:=> Set Status
+		set(self.doc,'status','Submitted')
+
+		# Step 2:=> Update Bin
+		self.update_bin(is_submit = 1, is_stopped = 0)
+	
+	def check_modified_date(self):
+		mod_db = sql("select modified from `tabPurchase Request` where name = '%s'" % self.doc.name)
+		date_diff = sql("select TIMEDIFF('%s', '%s')" % ( mod_db[0][0],cstr(self.doc.modified)))
+		
+		if date_diff and date_diff[0][0]:
+			msgprint(cstr(self.doc.doctype) +" => "+ cstr(self.doc.name) +" has been modified. Please Refresh. ")
+			raise Exception
+	
+	# On Stop / unstop
+	#------------------------------------------------------------------------------
+	def update_status(self, status):
+		self.check_modified_date()
+		# Step 1:=> Update Bin
+		self.update_bin(is_submit = (status == 'Submitted') and 1 or 0, is_stopped = 1)
+
+		# Step 2:=> Set status 
+		set(self.doc,'status',cstr(status))
+		
+		# Step 3:=> Acknowledge User
+		msgprint(self.doc.doctype + ": " + self.doc.name + " has been %s." % ((status == 'Submitted') and 'Unstopped' or cstr(status)) )
+ 
+	# On Cancel
+	#-----------------------------------------------------------------------------
+	def on_cancel(self):
+		# Step 1:=> Get Purchase Common Obj
+		pc_obj = get_obj(dt='Purchase Common')
+		
+		# Step 2:=> Check for stopped status
+		pc_obj.check_for_stopped_status( self.doc.doctype, self.doc.name)
+		
+		# Step 3:=> Check if Purchase Order has been submitted against current Purchase Request
+		pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Order', docname = self.doc.name, detail_doctype = 'Purchase Order Item')
+		# Step 4:=> Update Bin
+		self.update_bin(is_submit = 0, is_stopped = (cstr(self.doc.status) == 'Stopped') and 1 or 0)
+		
+		# Step 5:=> Set Status
+		set(self.doc,'status','Cancelled')
+
+
+	# Repair Purchase Request
+	# ===========================================
+	def repair_indent(self):
+		get_obj('Purchase Common', 'Purchase Common').repair_curr_doctype_details(self)
diff --git a/erpnext/buying/doctype/purchase_request/purchase_request.txt b/erpnext/buying/doctype/purchase_request/purchase_request.txt
new file mode 100644
index 0000000..34e7749
--- /dev/null
+++ b/erpnext/buying/doctype/purchase_request/purchase_request.txt
@@ -0,0 +1,531 @@
+# DocType, Purchase Request
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:49',
+		'docstatus': 0,
+		'modified': '2012-03-27 18:44:56',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1326190064',
+		'allow_print': 0,
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'is_submittable': 1,
+		'module': u'Buying',
+		'name': '__common__',
+		'read_only_onload': 1,
+		'search_fields': u'status,transaction_date,sales_order_no',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'subject': u'%(per_ordered)s% ordered',
+		'version': 198
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Request',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Purchase Request',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Purchase Request
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Request'
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase User',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase User'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'Enter items and their details which are falling short in your warehouse and for which you want your purchase department to raise a purchase order.',
+		'description': u'Enter items and their details for which you want your purchase department to raise a purchase order.',
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'To manage multiple series please go to Setup > Manage Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Series',
+		'no_copy': 1,
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'IDT',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Status',
+		'no_copy': 1,
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nDraft\nSubmitted\nStopped\nCancelled',
+		'permlevel': 1,
+		'reqd': 0,
+		'search_index': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'The date at which current entry is made in system.',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Transaction Date',
+		'no_copy': 1,
+		'oldfieldname': u'transaction_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'% of materials ordered against this Purchase Requisition',
+		'doctype': u'DocField',
+		'fieldname': u'per_ordered',
+		'fieldtype': u'Currency',
+		'label': u'% Ordered',
+		'no_copy': 1,
+		'oldfieldname': u'per_ordered',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'items',
+		'fieldtype': u'Section Break',
+		'label': u'Items',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'One or multiple Sales Order no which generated this Purchase Requisition',
+		'doctype': u'DocField',
+		'fieldname': u'sales_order_no',
+		'fieldtype': u'Link',
+		'label': u'Sales Order No',
+		'no_copy': 1,
+		'oldfieldname': u'sales_order_no',
+		'oldfieldtype': u'Data',
+		'options': u'Sales Order',
+		'permlevel': 0,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'pull_sales_order_details',
+		'fieldtype': u'Button',
+		'label': u'Pull Sales Order Items',
+		'options': u'pull_so_details',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'indent_details',
+		'fieldtype': u'Table',
+		'label': u'Purchase Requisition Details',
+		'no_copy': 0,
+		'oldfieldname': u'indent_details',
+		'oldfieldtype': u'Table',
+		'options': u'Purchase Request Item',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'Give additional details about the indent.',
+		'description': u'Filing in Additional Information about the Purchase Requisition will help you analyze your data better.',
+		'doctype': u'DocField',
+		'fieldname': u'more_info',
+		'fieldtype': u'Section Break',
+		'label': u'More Info',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Select the relevant company name if you have multiple companies',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Name of the entity who has requested for the Purchase Requisition',
+		'doctype': u'DocField',
+		'fieldname': u'requested_by',
+		'fieldtype': u'Data',
+		'label': u'Requested By',
+		'no_copy': 1,
+		'oldfieldname': u'requested_by',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'remark',
+		'fieldtype': u'Small Text',
+		'label': u'Remarks',
+		'no_copy': 1,
+		'oldfieldname': u'remark',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'print_hide': 0,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'After cancelling the Purchase Requisition, a dialog box will ask you reason for cancellation which will be reflected in this field',
+		'doctype': u'DocField',
+		'fieldname': u'cancel_reason',
+		'fieldtype': u'Data',
+		'label': u'Cancel Reason',
+		'no_copy': 1,
+		'oldfieldname': u'cancel_reason',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'description': u'Add Terms and Conditions for the Purchase Requisition. You can also prepare a Terms and Conditions Master and use the Template',
+		'doctype': u'DocField',
+		'fieldname': u'terms_section_break',
+		'fieldtype': u'Section Break',
+		'label': u'Terms and Conditions',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'letter_head',
+		'fieldtype': u'Select',
+		'label': u'Letter Head',
+		'oldfieldname': u'letter_head',
+		'oldfieldtype': u'Select',
+		'options': u'link:Letter Head',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'tc_name',
+		'fieldtype': u'Link',
+		'label': u'Select Terms and Conditions',
+		'oldfieldname': u'tc_name',
+		'oldfieldtype': u'Link',
+		'options': u'Terms and Conditions',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'get_terms',
+		'fieldtype': u'Button',
+		'label': u'Get Terms and Conditions',
+		'oldfieldtype': u'Button',
+		'options': u'get_tc_details',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'terms_html',
+		'fieldtype': u'HTML',
+		'label': u'Terms and Conditions HTML',
+		'oldfieldtype': u'HTML',
+		'options': u'You can add Terms and Notes that will be printed in the Transaction',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'terms',
+		'fieldtype': u'Text Editor',
+		'label': u'Terms and Conditions Content',
+		'oldfieldname': u'terms',
+		'oldfieldtype': u'Text Editor',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'repair_purchase_requisition',
+		'fieldtype': u'Button',
+		'label': u'Repair Purchase Requisition',
+		'oldfieldtype': u'Button',
+		'options': u'repair_indent',
+		'permlevel': 0,
+		'print_hide': 1
+	}
+]
diff --git a/erpnext/buying/doctype/purchase_other_charges/__init__.py b/erpnext/buying/doctype/purchase_request_item/__init__.py
similarity index 100%
copy from erpnext/buying/doctype/purchase_other_charges/__init__.py
copy to erpnext/buying/doctype/purchase_request_item/__init__.py
diff --git a/erpnext/buying/doctype/purchase_request_item/purchase_request_item.txt b/erpnext/buying/doctype/purchase_request_item/purchase_request_item.txt
new file mode 100644
index 0000000..76139dc
--- /dev/null
+++ b/erpnext/buying/doctype/purchase_request_item/purchase_request_item.txt
@@ -0,0 +1,262 @@
+# DocType, Purchase Request Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:49',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'IDTD/.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Buying',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 34
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Request Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Purchase Request Item
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Request Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'schedule_date',
+		'fieldtype': u'Date',
+		'label': u'Required Date',
+		'no_copy': 1,
+		'oldfieldname': u'schedule_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
+		'label': u'Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Link',
+		'label': u'Brand',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Link',
+		'options': u'Brand',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item Group',
+		'no_copy': 0,
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 0,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Quantity',
+		'no_copy': 0,
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'50px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'lead_time_date',
+		'fieldtype': u'Date',
+		'label': u'Lead Time Date',
+		'no_copy': 1,
+		'oldfieldname': u'lead_time_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'uom',
+		'fieldtype': u'Link',
+		'label': u'Stock UOM',
+		'no_copy': 0,
+		'oldfieldname': u'uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM',
+		'permlevel': 1,
+		'reqd': 1,
+		'width': u'50px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'min_order_qty',
+		'fieldtype': u'Currency',
+		'label': u'Min Order Qty',
+		'no_copy': 1,
+		'oldfieldname': u'min_order_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 0,
+		'width': u'70px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'projected_qty',
+		'fieldtype': u'Currency',
+		'label': u'Projected Qty',
+		'no_copy': 1,
+		'oldfieldname': u'projected_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'70px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'ordered_qty',
+		'fieldtype': u'Currency',
+		'label': u'Ordered Qty',
+		'no_copy': 1,
+		'oldfieldname': u'ordered_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sales_order_no',
+		'fieldtype': u'Link',
+		'label': u'Sales Order No',
+		'no_copy': 1,
+		'options': u'Sales Order',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'page_break',
+		'fieldtype': u'Check',
+		'label': u'Page Break',
+		'no_copy': 1,
+		'oldfieldname': u'page_break',
+		'oldfieldtype': u'Check',
+		'permlevel': 0,
+		'print_hide': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/qa_inspection_report/__init__.py b/erpnext/buying/doctype/qa_inspection_report/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/buying/doctype/qa_inspection_report/__init__.py
+++ /dev/null
diff --git a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js
deleted file mode 100644
index 6591a70..0000000
--- a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js
+++ /dev/null
@@ -1,60 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-cur_frm.cscript.item_code = function(doc, cdt, cdn) {
-	if (doc.item_code)
-		get_server_fields('get_purchase_receipt_item_details','','',doc,cdt,cdn,1);
-}
-
-cur_frm.cscript.inspection_type = function(doc, cdt, cdn) {
-	if(doc.inspection_type == 'Incoming'){
-		doc.delivery_note_no = '';
-		hide_field('delivery_note_no');		
-		unhide_field('purchase_receipt_no');
-	}
-	else if(doc.inspection_type == 'Outgoing'){
-		doc.purchase_receipt_no = '';
-		unhide_field('delivery_note_no');
-		hide_field('purchase_receipt_no');
-
-	}
-	else {
-		doc.purchase_receipt_no = '';
-		doc.delivery_note_no = '';		
-		hide_field('purchase_receipt_no');
-		hide_field('delivery_note_no');
-	}
-}
-
-cur_frm.cscript.refresh = cur_frm.cscript.inspection_type;
-
-// item code based on GRN/DN
-cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
-	if (doc.purchase_receipt_no)
-		return 'SELECT item_code, item_name, description FROM `tabPurchase Receipt Detail` WHERE parent = "'+ doc.purchase_receipt_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
-	else if (doc.delivery_note_no) 
-		return 'SELECT item_code, item_name, description FROM `tabDelivery Note Detail` WHERE parent = "'+ doc.delivery_note_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
-	else
-		return 'SELECT name, item_name, description FROM tabItem WHERE docstatus != 2 AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
-
-// Serial No based on item_code
-cur_frm.fields_dict['item_serial_no'].get_query = function(doc, cdt, cdn) {
-	if (doc.item_code)
-		return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND item_code = "' + doc.item_code +'" AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
-	else
-		return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
diff --git a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.py b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.py
deleted file mode 100644
index d95ab7a..0000000
--- a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.py
+++ /dev/null
@@ -1,63 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self, doc, doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-
-  # Autoname
-  # ---------
-  def autoname(self):
-    self.doc.name = make_autoname(self.doc.naming_series+'.#####')
-
-
-  def get_item_specification_details(self):
-    self.doc.clear_table(self.doclist, 'qa_specification_details')
-    specification = sql("select specification, value from `tabItem Specification Detail` where parent = '%s' order by idx" % (self.doc.item_code))
-    for d in specification:
-      child = addchild(self.doc, 'qa_specification_details', 'QA Specification Detail', 1, self.doclist)
-      child.specification = d[0]
-      child.value = d[1]
-      child.status = 'Accepted'
-
-  def on_submit(self):
-    if self.doc.purchase_receipt_no:
-      sql("update `tabPurchase Receipt Detail` set qa_no = '%s' where parent = '%s' and item_code = '%s'" % (self.doc.name, self.doc.purchase_receipt_no, self.doc.item_code))
-
-
-  def on_cancel(self):
-    if self.doc.purchase_receipt_no:
-      sql("update `tabPurchase Receipt Detail` set qa_no = '' where parent = '%s' and item_code = '%s'" % (self.doc.purchase_receipt_no, self.doc.item_code))
diff --git a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt
deleted file mode 100644
index de88e16..0000000
--- a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt
+++ /dev/null
@@ -1,340 +0,0 @@
-# DocType, QA Inspection Report
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:17',
-		'docstatus': 0,
-		'modified': '2011-10-06 10:22:41',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1317365120',
-		'autoname': 'QAI/.######',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'module': 'Buying',
-		'name': '__common__',
-		'print_outline': 'Yes',
-		'search_fields': 'item_code, report_date, purchase_receipt_no, delivery_note_no',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 38
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'QA Inspection Report',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'QA Inspection Report',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1,
-		'role': 'Quality Manager'
-	},
-
-	# DocType, QA Inspection Report
-	{
-		'doctype': 'DocType',
-		'name': 'QA Inspection Report'
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'QA Inspection',
-		'no_copy': 0,
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'label': 'Naming Series',
-		'no_copy': 1,
-		'options': '\nQAI/11-12/',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'inspection_type',
-		'fieldtype': 'Select',
-		'in_filter': 1,
-		'label': 'Inspection Type',
-		'oldfieldname': 'inspection_type',
-		'oldfieldtype': 'Select',
-		'options': '\nIncoming\nOutgoing\nIn Process',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'report_date',
-		'fieldtype': 'Date',
-		'in_filter': 1,
-		'label': 'Report Date',
-		'oldfieldname': 'report_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'sample_size',
-		'fieldtype': 'Currency',
-		'in_filter': 0,
-		'label': 'Sample Size',
-		'oldfieldname': 'sample_size',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'in_filter': 1,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0,
-		'search_index': 0,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_serial_no',
-		'fieldtype': 'Link',
-		'hidden': 0,
-		'label': 'Item Serial No',
-		'oldfieldname': 'item_serial_no',
-		'oldfieldtype': 'Link',
-		'options': 'Serial No',
-		'permlevel': 0,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'batch_no',
-		'fieldtype': 'Link',
-		'label': 'Batch No',
-		'oldfieldname': 'batch_no',
-		'oldfieldtype': 'Link',
-		'options': 'Batch',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'purchase_receipt_no',
-		'fieldtype': 'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': 'Purchase Receipt No',
-		'oldfieldname': 'purchase_receipt_no',
-		'oldfieldtype': 'Link',
-		'options': 'Purchase Receipt',
-		'permlevel': 0,
-		'search_index': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'delivery_note_no',
-		'fieldtype': 'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': 'Delivery Note No',
-		'oldfieldname': 'delivery_note_no',
-		'oldfieldtype': 'Link',
-		'options': 'Delivery Note',
-		'permlevel': 0,
-		'print_hide': 0,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'inspected_by',
-		'fieldtype': 'Data',
-		'label': 'Inspected By',
-		'oldfieldname': 'inspected_by',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'remarks',
-		'fieldtype': 'Text',
-		'label': 'Remarks',
-		'no_copy': 1,
-		'oldfieldname': 'remarks',
-		'oldfieldtype': 'Text',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'verified_by',
-		'fieldtype': 'Data',
-		'label': 'Verified By',
-		'oldfieldname': 'verified_by',
-		'oldfieldtype': 'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'label': 'Amended From',
-		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'label': 'Amendment Date',
-		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Specification Details',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Get Specification Details',
-		'options': 'get_item_specification_details',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qa_specification_details',
-		'fieldtype': 'Table',
-		'label': 'QA Specification Details',
-		'oldfieldname': 'qa_specification_details',
-		'oldfieldtype': 'Table',
-		'options': 'QA Specification Detail',
-		'permlevel': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/qa_specification_detail/__init__.py b/erpnext/buying/doctype/qa_specification_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/buying/doctype/qa_specification_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/buying/doctype/qa_specification_detail/qa_specification_detail.txt b/erpnext/buying/doctype/qa_specification_detail/qa_specification_detail.txt
deleted file mode 100644
index 07ccb03..0000000
--- a/erpnext/buying/doctype/qa_specification_detail/qa_specification_detail.txt
+++ /dev/null
@@ -1,188 +0,0 @@
-# DocType, QA Specification Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:17',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'QASD/.#####',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Buying',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 2
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'QA Specification Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, QA Specification Detail
-	{
-		'doctype': 'DocType',
-		'name': 'QA Specification Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'specification',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Parameter',
-		'oldfieldname': 'specification',
-		'oldfieldtype': 'Data',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'value',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Acceptance Criteria',
-		'oldfieldname': 'value',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reading_1',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Reading 1',
-		'oldfieldname': 'reading_1',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reading_2',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Reading 2',
-		'oldfieldname': 'reading_2',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reading_3',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Reading 3',
-		'oldfieldname': 'reading_3',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reading_4',
-		'fieldtype': 'Data',
-		'idx': 6,
-		'label': 'Reading 4',
-		'oldfieldname': 'reading_4',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reading_5',
-		'fieldtype': 'Data',
-		'idx': 7,
-		'label': 'Reading 5',
-		'oldfieldname': 'reading_5',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reading_6',
-		'fieldtype': 'Data',
-		'idx': 8,
-		'label': 'Reading 6',
-		'oldfieldname': 'reading_6',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reading_7',
-		'fieldtype': 'Data',
-		'idx': 9,
-		'label': 'Reading 7',
-		'oldfieldname': 'reading_7',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reading_8',
-		'fieldtype': 'Data',
-		'idx': 10,
-		'label': 'Reading 8',
-		'oldfieldname': 'reading_8',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reading_9',
-		'fieldtype': 'Data',
-		'idx': 11,
-		'label': 'Reading 9',
-		'oldfieldname': 'reading_9',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'reading_10',
-		'fieldtype': 'Data',
-		'idx': 12,
-		'label': 'Reading 10',
-		'oldfieldname': 'reading_10',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'default': 'Accepted',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
-		'idx': 13,
-		'label': 'Status',
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': 'Accepted\nRejected'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/indent/__init__.py b/erpnext/buying/doctype/quality_inspection/__init__.py
similarity index 100%
rename from erpnext/buying/doctype/indent/__init__.py
rename to erpnext/buying/doctype/quality_inspection/__init__.py
diff --git a/erpnext/buying/doctype/quality_inspection/quality_inspection.js b/erpnext/buying/doctype/quality_inspection/quality_inspection.js
new file mode 100644
index 0000000..2dbb285
--- /dev/null
+++ b/erpnext/buying/doctype/quality_inspection/quality_inspection.js
@@ -0,0 +1,60 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+cur_frm.cscript.item_code = function(doc, cdt, cdn) {
+	if (doc.item_code)
+		get_server_fields('get_purchase_receipt_item_details','','',doc,cdt,cdn,1);
+}
+
+cur_frm.cscript.inspection_type = function(doc, cdt, cdn) {
+	if(doc.inspection_type == 'Incoming'){
+		doc.delivery_note_no = '';
+		hide_field('delivery_note_no');		
+		unhide_field('purchase_receipt_no');
+	}
+	else if(doc.inspection_type == 'Outgoing'){
+		doc.purchase_receipt_no = '';
+		unhide_field('delivery_note_no');
+		hide_field('purchase_receipt_no');
+
+	}
+	else {
+		doc.purchase_receipt_no = '';
+		doc.delivery_note_no = '';		
+		hide_field('purchase_receipt_no');
+		hide_field('delivery_note_no');
+	}
+}
+
+cur_frm.cscript.refresh = cur_frm.cscript.inspection_type;
+
+// item code based on GRN/DN
+cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
+	if (doc.purchase_receipt_no)
+		return 'SELECT item_code, item_name, description FROM `tabPurchase Receipt Item` WHERE parent = "'+ doc.purchase_receipt_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
+	else if (doc.delivery_note_no) 
+		return 'SELECT item_code, item_name, description FROM `tabDelivery Note Item` WHERE parent = "'+ doc.delivery_note_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
+	else
+		return 'SELECT name, item_name, description FROM tabItem WHERE docstatus != 2 AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
+
+// Serial No based on item_code
+cur_frm.fields_dict['item_serial_no'].get_query = function(doc, cdt, cdn) {
+	if (doc.item_code)
+		return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND item_code = "' + doc.item_code +'" AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+	else
+		return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
diff --git a/erpnext/buying/doctype/quality_inspection/quality_inspection.py b/erpnext/buying/doctype/quality_inspection/quality_inspection.py
new file mode 100644
index 0000000..e0eee1c
--- /dev/null
+++ b/erpnext/buying/doctype/quality_inspection/quality_inspection.py
@@ -0,0 +1,63 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+
+class DocType:
+  def __init__(self, doc, doclist=[]):
+    self.doc = doc
+    self.doclist = doclist
+
+  # Autoname
+  # ---------
+  def autoname(self):
+    self.doc.name = make_autoname(self.doc.naming_series+'.#####')
+
+
+  def get_item_specification_details(self):
+    self.doc.clear_table(self.doclist, 'qa_specification_details')
+    specification = sql("select specification, value from `tabItem Quality Inspection Parameter` where parent = '%s' order by idx" % (self.doc.item_code))
+    for d in specification:
+      child = addchild(self.doc, 'qa_specification_details', 'Quality Inspection Reading', 1, self.doclist)
+      child.specification = d[0]
+      child.value = d[1]
+      child.status = 'Accepted'
+
+  def on_submit(self):
+    if self.doc.purchase_receipt_no:
+      sql("update `tabPurchase Receipt Item` set qa_no = '%s' where parent = '%s' and item_code = '%s'" % (self.doc.name, self.doc.purchase_receipt_no, self.doc.item_code))
+
+
+  def on_cancel(self):
+    if self.doc.purchase_receipt_no:
+      sql("update `tabPurchase Receipt Item` set qa_no = '' where parent = '%s' and item_code = '%s'" % (self.doc.purchase_receipt_no, self.doc.item_code))
diff --git a/erpnext/buying/doctype/quality_inspection/quality_inspection.txt b/erpnext/buying/doctype/quality_inspection/quality_inspection.txt
new file mode 100644
index 0000000..afbd737
--- /dev/null
+++ b/erpnext/buying/doctype/quality_inspection/quality_inspection.txt
@@ -0,0 +1,346 @@
+# DocType, Quality Inspection
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:51',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:45:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1317365120',
+		'autoname': u'QAI/.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'is_submittable': 1,
+		'module': u'Buying',
+		'name': '__common__',
+		'print_outline': u'Yes',
+		'search_fields': u'item_code, report_date, purchase_receipt_no, delivery_note_no',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 38
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Quality Inspection',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Quality Inspection',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1,
+		'role': u'Quality Manager'
+	},
+
+	# DocType, Quality Inspection
+	{
+		'doctype': 'DocType',
+		'name': u'Quality Inspection'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qa_inspection',
+		'fieldtype': u'Section Break',
+		'label': u'QA Inspection',
+		'no_copy': 0,
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Naming Series',
+		'no_copy': 1,
+		'options': u'\nQAI/11-12/',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'inspection_type',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Inspection Type',
+		'oldfieldname': u'inspection_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nIncoming\nOutgoing\nIn Process',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'report_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Report Date',
+		'oldfieldname': u'report_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sample_size',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Sample Size',
+		'oldfieldname': u'sample_size',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'in_filter': 1,
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'search_index': 0,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_serial_no',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'label': u'Item Serial No',
+		'oldfieldname': u'item_serial_no',
+		'oldfieldtype': u'Link',
+		'options': u'Serial No',
+		'permlevel': 0,
+		'print_hide': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'batch_no',
+		'fieldtype': u'Link',
+		'label': u'Batch No',
+		'oldfieldname': u'batch_no',
+		'oldfieldtype': u'Link',
+		'options': u'Batch',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_receipt_no',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Purchase Receipt No',
+		'oldfieldname': u'purchase_receipt_no',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Receipt',
+		'permlevel': 0,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_note_no',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Delivery Note No',
+		'oldfieldname': u'delivery_note_no',
+		'oldfieldtype': u'Link',
+		'options': u'Delivery Note',
+		'permlevel': 0,
+		'print_hide': 0,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'inspected_by',
+		'fieldtype': u'Data',
+		'label': u'Inspected By',
+		'oldfieldname': u'inspected_by',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Text',
+		'label': u'Remarks',
+		'no_copy': 1,
+		'oldfieldname': u'remarks',
+		'oldfieldtype': u'Text',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'verified_by',
+		'fieldtype': u'Data',
+		'label': u'Verified By',
+		'oldfieldname': u'verified_by',
+		'oldfieldtype': u'Data',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'specification_details',
+		'fieldtype': u'Section Break',
+		'label': u'Specification Details',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'get_specification_details',
+		'fieldtype': u'Button',
+		'label': u'Get Specification Details',
+		'options': u'get_item_specification_details',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qa_specification_details',
+		'fieldtype': u'Table',
+		'label': u'Quality Inspection Readings',
+		'oldfieldname': u'qa_specification_details',
+		'oldfieldtype': u'Table',
+		'options': u'Quality Inspection Reading',
+		'permlevel': 0
+	}
+]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/indent/__init__.py b/erpnext/buying/doctype/quality_inspection_reading/__init__.py
similarity index 100%
copy from erpnext/buying/doctype/indent/__init__.py
copy to erpnext/buying/doctype/quality_inspection_reading/__init__.py
diff --git a/erpnext/buying/doctype/quality_inspection_reading/quality_inspection_reading.txt b/erpnext/buying/doctype/quality_inspection_reading/quality_inspection_reading.txt
new file mode 100644
index 0000000..b356dd9
--- /dev/null
+++ b/erpnext/buying/doctype/quality_inspection_reading/quality_inspection_reading.txt
@@ -0,0 +1,175 @@
+# DocType, Quality Inspection Reading
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:52',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'QASD/.#####',
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Buying',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 2
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Quality Inspection Reading',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Quality Inspection Reading
+	{
+		'doctype': 'DocType',
+		'name': u'Quality Inspection Reading'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'specification',
+		'fieldtype': u'Data',
+		'label': u'Parameter',
+		'oldfieldname': u'specification',
+		'oldfieldtype': u'Data',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'value',
+		'fieldtype': u'Data',
+		'label': u'Acceptance Criteria',
+		'oldfieldname': u'value',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reading_1',
+		'fieldtype': u'Data',
+		'label': u'Reading 1',
+		'oldfieldname': u'reading_1',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reading_2',
+		'fieldtype': u'Data',
+		'label': u'Reading 2',
+		'oldfieldname': u'reading_2',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reading_3',
+		'fieldtype': u'Data',
+		'label': u'Reading 3',
+		'oldfieldname': u'reading_3',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reading_4',
+		'fieldtype': u'Data',
+		'label': u'Reading 4',
+		'oldfieldname': u'reading_4',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reading_5',
+		'fieldtype': u'Data',
+		'label': u'Reading 5',
+		'oldfieldname': u'reading_5',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reading_6',
+		'fieldtype': u'Data',
+		'label': u'Reading 6',
+		'oldfieldname': u'reading_6',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reading_7',
+		'fieldtype': u'Data',
+		'label': u'Reading 7',
+		'oldfieldname': u'reading_7',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reading_8',
+		'fieldtype': u'Data',
+		'label': u'Reading 8',
+		'oldfieldname': u'reading_8',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reading_9',
+		'fieldtype': u'Data',
+		'label': u'Reading 9',
+		'oldfieldname': u'reading_9',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reading_10',
+		'fieldtype': u'Data',
+		'label': u'Reading 10',
+		'oldfieldname': u'reading_10',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'default': u'Accepted',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
+		'label': u'Status',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'Accepted\nRejected'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/raw_materials_supplied/__init__.py b/erpnext/buying/doctype/raw_materials_supplied/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/buying/doctype/raw_materials_supplied/__init__.py
+++ /dev/null
diff --git a/erpnext/buying/doctype/raw_materials_supplied/raw_materials_supplied.txt b/erpnext/buying/doctype/raw_materials_supplied/raw_materials_supplied.txt
deleted file mode 100644
index 23dd235..0000000
--- a/erpnext/buying/doctype/raw_materials_supplied/raw_materials_supplied.txt
+++ /dev/null
@@ -1,148 +0,0 @@
-# DocType, Raw Materials Supplied
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:18',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'RMS/.######',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Buying',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'show_in_menu': 0,
-		'version': 8
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Raw Materials Supplied',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Raw Materials Supplied
-	{
-		'doctype': 'DocType',
-		'name': 'Raw Materials Supplied'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'po_item',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'PO Item',
-		'oldfieldname': 'po_item',
-		'oldfieldtype': 'Select',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'raw_material',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'label': 'Raw Material',
-		'oldfieldname': 'raw_material',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'source_warehouse',
-		'fieldtype': 'Select',
-		'idx': 5,
-		'label': 'Source Warehouse',
-		'oldfieldname': 'source_warehouse',
-		'oldfieldtype': 'Select',
-		'options': 'link:Warehouse',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'ma_valuation_rate',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Valuation  Rate (MA)',
-		'no_copy': 1,
-		'oldfieldname': 'ma_valuation_rate',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'fifo_valuation_rate',
-		'fieldtype': 'Currency',
-		'idx': 8,
-		'label': 'Valuation Rate (FIFO)',
-		'oldfieldname': 'fifo_valuation_rate',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'idx': 9,
-		'label': 'Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'idx': 12,
-		'label': 'Stock UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/supplier/listview.js b/erpnext/buying/doctype/supplier/listview.js
new file mode 100644
index 0000000..86e22d6
--- /dev/null
+++ b/erpnext/buying/doctype/supplier/listview.js
@@ -0,0 +1,23 @@
+// render
+wn.doclistviews['Supplier'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			"`tabSupplier`.supplier_type",
+		]);
+		this.stats = this.stats.concat([]);
+	},
+
+	prepare_data: function(data) {
+		this._super(data);
+	},
+	
+	columns: [
+		{width: '5%', content:'avatar'},
+		{width: '50%', content:'name'},
+		{width: '10%', content:'tags'},
+		{width: '23%', content:'supplier_type', css: {'color': '#aaa'}},
+		{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+});
+
diff --git a/erpnext/buying/doctype/supplier/supplier.js b/erpnext/buying/doctype/supplier/supplier.js
index 41889af..8291ed5 100644
--- a/erpnext/buying/doctype/supplier/supplier.js
+++ b/erpnext/buying/doctype/supplier/supplier.js
@@ -14,7 +14,7 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-$import(Contact Control)
+wn.require('erpnext/setup/doctype/contact_control/contact_control.js');
 
 cur_frm.cscript.onload = function(doc,dt,dn){
 
@@ -54,19 +54,10 @@
 
 cur_frm.cscript.make_address = function() {
 	if(!cur_frm.address_list) {
-		cur_frm.address_list = new wn.widgets.Listing({
+		cur_frm.address_list = new wn.ui.Listing({
 			parent: cur_frm.fields_dict['Address HTML'].wrapper,
 			page_length: 2,
 			new_doctype: "Address",
-			new_doc_onload: function(dn) {
-				ndoc = locals["Address"][dn];
-				ndoc.supplier = cur_frm.doc.name;
-				ndoc.supplier_name = cur_frm.doc.supplier_name;
-				ndoc.address_type = 'Office';								
-			},		
-			new_doc_onsave: function(dn) {				
-				cur_frm.address_list.run()
-			},	
 			get_query: function() {
 				return "select name, address_type, address_line1, address_line2, city, state, country, pincode, fax, email_id, phone, is_primary_address, is_shipping_address from tabAddress where supplier='"+cur_frm.docname+"' and docstatus != 2 order by is_primary_address desc"
 			},
@@ -96,18 +87,10 @@
 
 cur_frm.cscript.make_contact = function() {
 	if(!cur_frm.contact_list) {
-		cur_frm.contact_list = new wn.widgets.Listing({
+		cur_frm.contact_list = new wn.ui.Listing({
 			parent: cur_frm.fields_dict['Contact HTML'].wrapper,
 			page_length: 2,
 			new_doctype: "Contact",
-			new_doc_onload: function(dn) {
-				ndoc = locals["Contact"][dn];
-				ndoc.supplier = cur_frm.doc.name;
-				ndoc.supplier_name = cur_frm.doc.supplier_name;
-			},
-			new_doc_onsave: function(dn) {				
-				cur_frm.contact_list.run()
-			},
 			get_query: function() {
 				return "select name, first_name, last_name, email_id, phone, mobile_no, department, designation, is_primary_contact from tabContact where supplier='"+cur_frm.docname+"' and docstatus != 2 order by is_primary_contact desc"
 			},
@@ -128,6 +111,7 @@
 
 // make purchase order list
 cur_frm.cscript.make_po_list = function(parent, doc){
+	wn.require('lib/js/legacy/widgets/listing.js');
 	var lst = new Listing();
 	lst.colwidths = ['5%','25%','20%','25%','25%'];
 	lst.colnames = ['Sr.','Id','Status','PO Date','Grand Total'];
@@ -142,6 +126,7 @@
 
 // make purchase receipt list
 cur_frm.cscript.make_pr_list = function(parent,doc){
+	wn.require('lib/js/legacy/widgets/listing.js');
 	var lst = new Listing();
 	lst.colwidths = ['5%','20%','20%','20%','15%','20%'];
 	lst.colnames = ['Sr.','Id','Status','Receipt Date','% Billed','Grand Total'];
@@ -156,14 +141,15 @@
 
 // make purchase invoice list
 cur_frm.cscript.make_pi_list = function(parent,doc){
+	wn.require('lib/js/legacy/widgets/listing.js');
 	var lst = new Listing();
 	lst.colwidths = ['5%','20%','20%','20%','15%','20%'];
 	lst.colnames = ['Sr.','Id','Posting Date','Credit To','Bill Date','Grand Total'];
 	lst.coltypes = ['Data','Link','Data','Data','Currency','Currency'];
-	lst.coloptions = ['','Payable Voucher','','','',''];
+	lst.coloptions = ['','Purchase Invoice','','','',''];
 
-	var q = repl("select name, posting_date, credit_to, bill_date, grand_total from `tabPayable Voucher` where supplier='%(sup)s' order by posting_date desc", {'sup':doc.name});
-	var q_max = repl("select count(name) from `tabPayable Voucher` where supplier='%(sup)s'", {'sup':doc.name});
+	var q = repl("select name, posting_date, credit_to, bill_date, grand_total from `tabPurchase Invoice` where supplier='%(sup)s' order by posting_date desc", {'sup':doc.name});
+	var q_max = repl("select count(name) from `tabPurchase Invoice` where supplier='%(sup)s'", {'sup':doc.name});
 	
-	cur_frm.cscript.run_list(lst,parent,q,q_max,doc,'Purchase Invoice','Payable Voucher');	
+	cur_frm.cscript.run_list(lst,parent,q,q_max,doc,'Purchase Invoice','Purchase Invoice');	
 }
diff --git a/erpnext/buying/doctype/supplier/supplier.py b/erpnext/buying/doctype/supplier/supplier.py
index 4bc04bb..18d167a 100644
--- a/erpnext/buying/doctype/supplier/supplier.py
+++ b/erpnext/buying/doctype/supplier/supplier.py
@@ -171,7 +171,7 @@
 			('Supplier', 'name'),
 			('Address', 'supplier'),
 			('Contact', 'supplier'),
-			('Payable Voucher', 'supplier'),
+			('Purchase Invoice', 'supplier'),
 			('Purchase Order', 'supplier'),
 			('Purchase Receipt', 'supplier'),
 			('Serial No', 'supplier')]
diff --git a/erpnext/buying/doctype/supplier/supplier.txt b/erpnext/buying/doctype/supplier/supplier.txt
index 0834898..10d5591 100644
--- a/erpnext/buying/doctype/supplier/supplier.txt
+++ b/erpnext/buying/doctype/supplier/supplier.txt
@@ -3,88 +3,61 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:26',
+		'creation': '2012-03-27 14:35:52',
 		'docstatus': 0,
-		'modified': '2011-07-19 16:18:58',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1306471021',
+		'_last_update': u'1306471021',
 		'allow_trash': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Buying',
+		'document_type': u'Master',
+		'module': u'Buying',
 		'name': '__common__',
-		'search_fields': 'supplier_name,supplier_type',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'search_fields': u'supplier_name,supplier_type',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': ' ',
-		'tag_fields': 'supplier_type',
+		'subject': u' ',
+		'tag_fields': u'supplier_type',
 		'version': 87
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Supplier',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Supplier',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Supplier',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Supplier',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Supplier
 	{
 		'doctype': 'DocType',
-		'name': 'Supplier'
+		'name': u'Supplier'
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Purchase Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Purchase Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Purchase Master Manager'
+		'role': u'Purchase Master Manager'
 	},
 
 	# DocPerm
@@ -92,162 +65,181 @@
 		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Purchase Master Manager',
+		'role': u'Purchase Master Manager',
 		'submit': 0,
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase Manager',
+		'submit': 0,
+		'write': 0
+	},
+
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Basic Info',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'description': u'Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts',
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'supplier_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Supplier Name',
+		'doctype': u'DocField',
+		'fieldname': u'supplier_name',
+		'fieldtype': u'Data',
+		'label': u'Supplier Name',
 		'no_copy': 1,
-		'oldfieldname': 'supplier_name',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'supplier_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'supplier_type',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'Supplier Type',
-		'oldfieldname': 'supplier_type',
-		'oldfieldtype': 'Link',
-		'options': 'Supplier Type',
+		'doctype': u'DocField',
+		'fieldname': u'supplier_type',
+		'fieldtype': u'Link',
+		'label': u'Supplier Type',
+		'oldfieldname': u'supplier_type',
+		'oldfieldtype': u'Link',
+		'options': u'Supplier Type',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 4,
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'idx': 5,
-		'label': 'Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Series',
 		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
-		'options': '\nSUPP\nSUPP/10-11/',
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'\nSUPP\nSUPP/10-11/',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 6,
-		'label': 'Address & Contacts',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'address_contacts',
+		'fieldtype': u'Section Break',
+		'label': u'Address & Contacts',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 7,
-		'label': 'Address Desc',
-		'options': '<em>Addresses will appear only when you save the supplier</em>',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'address_desc',
+		'fieldtype': u'HTML',
+		'label': u'Address Desc',
+		'options': u'<em>Addresses will appear only when you save the supplier</em>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 8,
-		'label': 'Address HTML',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'address_html',
+		'fieldtype': u'HTML',
+		'label': u'Address HTML',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 9,
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 10,
-		'label': 'Contact Desc',
-		'options': '<em>Contact Details will appear only when you save the supplier</em>',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'contact_desc',
+		'fieldtype': u'HTML',
+		'label': u'Contact Desc',
+		'options': u'<em>Contact Details will appear only when you save the supplier</em>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 11,
-		'label': 'Contact HTML',
+		'doctype': u'DocField',
+		'fieldname': u'contact_html',
+		'fieldtype': u'HTML',
+		'label': u'Contact HTML',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 12,
-		'label': 'More Info',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'more_info',
+		'fieldtype': u'Section Break',
+		'label': u'More Info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Enter the company name under which Account Head will be created for this Supplier',
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 13,
+		'colour': u'White:FFF',
+		'description': u'Enter the company name under which Account Head will be created for this Supplier',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -255,82 +247,78 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Statutory info and other general information about your Supplier',
-		'doctype': 'DocField',
-		'fieldname': 'supplier_details',
-		'fieldtype': 'Text',
-		'idx': 14,
-		'label': 'Supplier Details',
-		'oldfieldname': 'supplier_details',
-		'oldfieldtype': 'Code',
+		'colour': u'White:FFF',
+		'description': u'Statutory info and other general information about your Supplier',
+		'doctype': u'DocField',
+		'fieldname': u'supplier_details',
+		'fieldtype': u'Text',
+		'label': u'Supplier Details',
+		'oldfieldname': u'supplier_details',
+		'oldfieldtype': u'Code',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 15,
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'credit_days',
-		'fieldtype': 'Int',
-		'idx': 16,
-		'label': 'Credit Days',
+		'doctype': u'DocField',
+		'fieldname': u'credit_days',
+		'fieldtype': u'Int',
+		'label': u'Credit Days',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'website',
-		'fieldtype': 'Data',
-		'idx': 17,
-		'label': 'Website',
-		'oldfieldname': 'website',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'website',
+		'fieldtype': u'Data',
+		'label': u'Website',
+		'oldfieldname': u'website',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 18,
-		'label': 'Transaction History',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_history',
+		'fieldtype': u'Section Break',
+		'label': u'Transaction History',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 19,
-		'label': 'History HTML',
-		'oldfieldtype': 'HTML',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'history_html',
+		'fieldtype': u'HTML',
+		'label': u'History HTML',
+		'oldfieldtype': u'HTML',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 20,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	}
-]
+]
\ No newline at end of file
diff --git a/erpnext/buying/page/buying_home/buying_home.html b/erpnext/buying/page/buying_home/buying_home.html
index 7f0e906..9e05045 100644
--- a/erpnext/buying/page/buying_home/buying_home.html
+++ b/erpnext/buying/page/buying_home/buying_home.html
@@ -4,7 +4,7 @@
 		<h1>Buying</h1>
 		<hr>
 		<div style="width: 48%; float: left;">
-			<h4><a href="#!List/Purchase Requisition">Purchase Requisition</a></h4>
+			<h4><a href="#!List/Purchase Request">Purchase Request</a></h4>
 			<p class="help">Request for purchase</p>
 			<h4><a href="#!List/Purchase Order">Purchase Order</a></h4>
 			<p class="help">Purchase Orders given to Suppliers</p>
@@ -28,7 +28,7 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title = "Tax and charges structure master"
-							href="#!List/Purchase Other Charges">Purchase Other Charges</a>
+							href="#!List/Purchase Taxes and Charges Master">Purchase Taxes and Charges Master</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
@@ -38,7 +38,7 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title = "Helper for managing return of goods (sales or purchase)"
-							href="#!Form/Sales and Purchase Return Wizard/Sales and Purchase Return Wizard">Purchase Returns</a>
+							href="#!Form/Sales and Purchase Return Tool/Sales and Purchase Return Tool">Purchase Returns</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
@@ -61,4 +61,4 @@
 		</div>
 	</div>
 	<div style="clear: both;"></div>
-</div>
\ No newline at end of file
+</div>
diff --git a/erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt b/erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt
index 1628060..2b41033 100644
--- a/erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt
+++ b/erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-03-31 12:39:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Purchase Order\x01ID,Purchase Order\x01PO Date,Purchase Order\x01Grand Total,PO Detail\x01Item Code,PO Detail\x01Item Name,PO Detail\x01Quantity,PO Detail\x01Stock UOM,PO Detail\x01Purchase Rate,PO Detail\x01Amount,PO Detail\x01Warehouse',
-		'criteria_name': 'Itemwise Purchase Details',
-		'doc_type': 'PO Detail',
+		'columns': u'Purchase Order\x01ID,Purchase Order\x01PO Date,Purchase Order\x01Grand Total,Purchase Order Item\x01Item Code,Purchase Order Item\x01Item Name,Purchase Order Item\x01Quantity,Purchase Order Item\x01Stock UOM,Purchase Order Item\x01Purchase Rate,Purchase Order Item\x01Amount,Purchase Order Item\x01Warehouse',
+		'criteria_name': u'Itemwise Purchase Details',
+		'doc_type': u'Purchase Order Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Purchase Order\x01Saved':1,'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'','Purchase Order\x01Company Name':''}",
-		'module': 'Buying',
+		'filters': u"{'Purchase Order\x01Saved':1,'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'','Purchase Order\x01Company Name':''}",
+		'module': u'Buying',
 		'name': '__common__',
-		'parent_doc_type': 'Purchase Order',
-		'sort_by': '`tabPurchase Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Purchase Order',
+		'sort_by': u'`tabPurchase Order`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, itemwise_purchase_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'itemwise_purchase_details'
+		'name': u'itemwise_purchase_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt b/erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt
index cacbb78..093544f 100644
--- a/erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt
+++ b/erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:19',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-10-22 14:36:11',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Purchase Receipt\x01ID,Purchase Receipt\x01Posting Date,Purchase Receipt Detail\x01Item Code,Purchase Receipt Detail\x01Item Name,Purchase Receipt Detail\x01Accepted Quantity,Purchase Receipt Detail\x01Rejected Quantity,Purchase Receipt Detail\x01Accepted Warehouse,Purchase Receipt Detail\x01Rejected Warehouse,Purchase Receipt Detail\x01Amount',
-		'criteria_name': 'Itemwise Receipt Details',
-		'doc_type': 'Purchase Receipt Detail',
+		'columns': u'Purchase Receipt\x01ID,Purchase Receipt\x01Posting Date,Purchase Receipt Item\x01Item Code,Purchase Receipt Item\x01Item Name,Purchase Receipt Item\x01Accepted Quantity,Purchase Receipt Item\x01Rejected Quantity,Purchase Receipt Item\x01Accepted Warehouse,Purchase Receipt Item\x01Rejected Warehouse,Purchase Receipt Item\x01Amount',
+		'criteria_name': u'Itemwise Receipt Details',
+		'doc_type': u'Purchase Receipt Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Purchase Receipt\x01Saved':1,'Purchase Receipt\x01Submitted':1,'Purchase Receipt\x01Status':'','Purchase Receipt\x01Fiscal Year':''}",
-		'module': 'Buying',
+		'filters': u"{'Purchase Receipt\x01Saved':1,'Purchase Receipt\x01Submitted':1,'Purchase Receipt\x01Status':'','Purchase Receipt\x01Fiscal Year':''}",
+		'module': u'Buying',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Purchase Receipt',
-		'sort_by': '`tabPurchase Receipt`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Purchase Receipt',
+		'sort_by': u'`tabPurchase Receipt`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, itemwise_receipt_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'itemwise_receipt_details'
+		'name': u'itemwise_receipt_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt b/erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt
index be0beb3..cbdcc5c 100644
--- a/erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt
+++ b/erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt
@@ -3,35 +3,35 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-03-30 11:03:20',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2011-03-29 14:26:49',
-		'modified_by': 'Administrator',
-		'owner': 'dhanalekshmi@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'dhanalekshmi@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': '(CASE WHEN (`tabPO Detail`.qty- ifnull(`tabPO Detail`.billed_qty, 0) > 0 ) THEN (`tabPO Detail`.qty-ifnull(`tabPO Detail`.billed_qty, 0) ) ELSE 0 END) AS "Pending To Bill"',
-		'add_cond': '(`tabPO Detail`.qty - ifnull(`tabPO Detail`.received_qty, 0) > 0 or `tabPO Detail`.qty - ifnull(`tabPO Detail`.billed_qty, 0) > 0)\n`tabPurchase Order`.status != "Stopped"',
-		'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01Supplier Name,Purchase Order\x01Status,Purchase Order\x01PO Date,Purchase Order\x01Fiscal Year,PO Detail\x01Indent No,PO Detail\x01Item Code,PO Detail\x01Item Name,PO Detail\x01Description,PO Detail\x01Quantity,PO Detail\x01UOM,PO Detail\x01Received Qty',
-		'criteria_name': 'Pending PO Items To Bill',
-		'description': 'Pending PO Items To Bill',
-		'doc_type': 'PO Detail',
+		'add_col': u'(CASE WHEN (`tabPurchase Order Item`.qty- ifnull(`tabPurchase Order Item`.billed_qty, 0) > 0 ) THEN (`tabPurchase Order Item`.qty-ifnull(`tabPurchase Order Item`.billed_qty, 0) ) ELSE 0 END) AS "Pending To Bill"',
+		'add_cond': u'(`tabPurchase Order Item`.qty - ifnull(`tabPurchase Order Item`.received_qty, 0) > 0 or `tabPurchase Order Item`.qty - ifnull(`tabPurchase Order Item`.billed_qty, 0) > 0)\n`tabPurchase Order`.status != "Stopped"',
+		'columns': u'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01Supplier Name,Purchase Order\x01Status,Purchase Order\x01PO Date,Purchase Order\x01Fiscal Year,Purchase Order Item\x01Purchase Request No,Purchase Order Item\x01Item Code,Purchase Order Item\x01Item Name,Purchase Order Item\x01Description,Purchase Order Item\x01Quantity,Purchase Order Item\x01UOM,Purchase Order Item\x01Received Qty',
+		'criteria_name': u'Pending PO Items To Bill',
+		'description': u'Pending PO Items To Bill',
+		'doc_type': u'Purchase Order Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Purchase Order\x01Saved':1,'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'','Purchase Order\x01Fiscal Year':''}",
-		'module': 'Buying',
+		'filters': u"{'Purchase Order\x01Saved':1,'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'','Purchase Order\x01Fiscal Year':''}",
+		'module': u'Buying',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Purchase Order',
-		'sort_by': '`tabPurchase Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Purchase Order',
+		'sort_by': u'`tabPurchase Order`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, pending_po_items_to_bill
 	{
 		'doctype': 'Search Criteria',
-		'name': 'pending_po_items_to_bill'
+		'name': u'pending_po_items_to_bill'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt b/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt
index b629547..185e155 100644
--- a/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt
+++ b/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt
@@ -3,21 +3,21 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-03-29 14:57:52',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-02-14 11:04:22',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'dhanalekshmi@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': u'`tabPO Detail`.qty - ifnull(`tabPO Detail`.received_qty, 0) AS "Pending Quantity To Receive"\n(`tabPO Detail`.qty - ifnull(`tabPO Detail`.received_qty, 0)) * `tabPO Detail`.purchase_rate AS "Pending Amount To Receive"',
-		'add_cond': u'`tabPO Detail`.qty - ifnull(`tabPO Detail`.received_qty, 0) > 0 \n`tabPurchase Order`.status != "Stopped"',
-		'columns': u'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01Supplier Name,Purchase Order\x01Status,Purchase Order\x01PO Date,Purchase Order\x01Fiscal Year,PO Detail\x01Indent No,PO Detail\x01Item Code,PO Detail\x01Item Name,PO Detail\x01Description,PO Detail\x01Quantity,PO Detail\x01UOM,PO Detail\x01Received Qty',
+		'add_col': u'`tabPurchase Order Item`.qty - ifnull(`tabPurchase Order Item`.received_qty, 0) AS "Pending Quantity To Receive"\n(`tabPurchase Order Item`.qty - ifnull(`tabPurchase Order Item`.received_qty, 0)) * `tabPurchase Order Item`.purchase_rate AS "Pending Amount To Receive"',
+		'add_cond': u'`tabPurchase Order Item`.qty - ifnull(`tabPurchase Order Item`.received_qty, 0) > 0 \n`tabPurchase Order`.status != "Stopped"',
+		'columns': u'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01Supplier Name,Purchase Order\x01Status,Purchase Order\x01PO Date,Purchase Order\x01Fiscal Year,Purchase Order Item\x01Purchase Request No,Purchase Order Item\x01Item Code,Purchase Order Item\x01Item Name,Purchase Order Item\x01Description,Purchase Order Item\x01Quantity,Purchase Order Item\x01UOM,Purchase Order Item\x01Received Qty',
 		'criteria_name': u'Pending PO Items To Receive',
 		'description': u'Pending PO Items To Receive',
-		'doc_type': u'PO Detail',
+		'doc_type': u'Purchase Order Item',
 		'doctype': 'Search Criteria',
 		'filters': u"{'Purchase Order\x01Saved':1,'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'','Purchase Order\x01Fiscal Year':''}",
 		'module': u'Buying',
diff --git a/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.js b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.js
index ab469cd..a08b921 100644
--- a/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.js
+++ b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.js
@@ -19,18 +19,18 @@
   this.hide_all_filters();
 
 
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'Company'].df.filter_hide = 0;
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'Credit To'].df.filter_hide = 0;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'Company'].df.filter_hide = 0;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'Credit To'].df.filter_hide = 0;
 
 
   this.add_filter({fieldname:'pr_posting_date', label:'PR Posting Date', fieldtype:'Date', ignore : 1, parent:'Purchase Receipt'});
 
 
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'Credit To'].df.in_first_page = 0;
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'Credit To'].df.in_first_page = 0;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
 
   
   this.filter_fields_dict['Purchase Receipt'+FILTER_SEP +'From PR Posting Date'].df.ignore = 1;
@@ -39,9 +39,9 @@
 
   this.filter_fields_dict['Purchase Receipt'+FILTER_SEP +'From PR Posting Date'].df['report_default'] = sys_defaults.year_start_date;
   this.filter_fields_dict['Purchase Receipt'+FILTER_SEP +'To PR Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-  this.filter_fields_dict['Payable Voucher'+FILTER_SEP +'Company'].df['report_default'] = sys_defaults.company;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
+  this.filter_fields_dict['Purchase Invoice'+FILTER_SEP +'Company'].df['report_default'] = sys_defaults.company;
 
 }
 
diff --git a/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt
index 028d9d5..9009ccf 100644
--- a/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt
+++ b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt
@@ -3,37 +3,37 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-08-30 13:04:44',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': "`tabPurchase Receipt`.`posting_date` AS 'PR Posting Date'",
-		'add_cond': "`tabPV Detail`.`purchase_receipt`  = `tabPurchase Receipt`.`name`\n`tabPurchase Receipt`.`posting_date` >= '%(pr_posting_date)s'\n`tabPurchase Receipt`.`posting_date` <= '%(pr_posting_date1)s'\n`tabPurchase Receipt`.`posting_date` > `tabPayable Voucher`.`posting_date`",
-		'add_tab': '`tabPurchase Receipt`',
-		'columns': 'Payable Voucher\x01ID,Payable Voucher\x01Voucher Date,Payable Voucher\x01Posting Date,Payable Voucher\x01Credit To,PV Detail\x01Rate,PV Detail\x01Qty,PV Detail\x01Amount,PV Detail\x01Pur Order,PV Detail\x01Pur Receipt',
-		'criteria_name': 'Purchase in Transit',
-		'description': 'List of PR whose posting date is after PV posting date',
-		'dis_filters': '`tabPurchase Receipt`.`pr_posting_date`',
-		'doc_type': 'PV Detail',
+		'add_col': u"`tabPurchase Receipt`.`posting_date` AS 'PR Posting Date'",
+		'add_cond': u"`tabPurchase Invoice Item`.`purchase_receipt`  = `tabPurchase Receipt`.`name`\n`tabPurchase Receipt`.`posting_date` >= '%(pr_posting_date)s'\n`tabPurchase Receipt`.`posting_date` <= '%(pr_posting_date1)s'\n`tabPurchase Receipt`.`posting_date` > `tabPurchase Invoice`.`posting_date`",
+		'add_tab': u'`tabPurchase Receipt`',
+		'columns': u'Purchase Invoice\x01ID,Purchase Invoice\x01Voucher Date,Purchase Invoice\x01Posting Date,Purchase Invoice\x01Credit To,Purchase Invoice Item\x01Rate,Purchase Invoice Item\x01Qty,Purchase Invoice Item\x01Amount,Purchase Invoice Item\x01Pur Order,Purchase Invoice Item\x01Pur Receipt',
+		'criteria_name': u'Purchase in Transit',
+		'description': u'List of PR whose posting date is after PV posting date',
+		'dis_filters': u'`tabPurchase Receipt`.`pr_posting_date`',
+		'doc_type': u'Purchase Invoice Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Payable Voucher\x01Submitted':1,'Payable Voucher\x01From Posting Date\x01lower':'2009-04-01','Payable Voucher\x01To Posting Date\x01upper':'2010-01-11','Payable Voucher\x01Is Opening':'','Payable Voucher\x01Fiscal Year':'','Payable Voucher\x01Company':'','Purchase Receipt\x01From PR Posting Date\x01lower':'2009-04-01','Purchase Receipt\x01To PR Posting Date\x01upper':'2010-01-11'}",
-		'module': 'Buying',
+		'filters': u"{'Purchase Invoice\x01Submitted':1,'Purchase Invoice\x01From Posting Date\x01lower':'2009-04-01','Purchase Invoice\x01To Posting Date\x01upper':'2010-01-11','Purchase Invoice\x01Is Opening':'','Purchase Invoice\x01Fiscal Year':'','Purchase Invoice\x01Company':'','Purchase Receipt\x01From PR Posting Date\x01lower':'2009-04-01','Purchase Receipt\x01To PR Posting Date\x01upper':'2010-01-11'}",
+		'module': u'Buying',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Payable Voucher',
-		'sort_by': '`tabPayable Voucher`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Purchase Invoice',
+		'sort_by': u'`tabPurchase Invoice`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, purchase_in_transit
 	{
 		'doctype': 'Search Criteria',
-		'name': 'purchase_in_transit'
+		'name': u'purchase_in_transit'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/home/Module Def/Home/Home.txt b/erpnext/home/Module Def/Home/Home.txt
deleted file mode 100644
index 7613ee8..0000000
--- a/erpnext/home/Module Def/Home/Home.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-[
-	{
-		'creation': '2011-06-09 16:14:42',
-		'disabled': 'No',
-		'docstatus': 0,
-		'doctype': 'Module Def',
-		'doctype_list': None,
-		'file_list': None,
-		'idx': None,
-		'is_hidden': 'No',
-		'last_updated_date': None,
-		'modified': '2011-06-09 16:57:36',
-		'modified_by': 'Administrator',
-		'module_desc': None,
-		'module_icon': None,
-		'module_label': 'Home',
-		'module_name': 'Home',
-		'module_page': 'Event Updates',
-		'module_seq': -1,
-		'name': 'Home',
-		'owner': 'Administrator',
-		'parent': None,
-		'parentfield': None,
-		'parenttype': None,
-		'trash_reason': None,
-		'widget_code': None
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/__init__.py b/erpnext/home/__init__.py
index 8118ea6..97106bd 100644
--- a/erpnext/home/__init__.py
+++ b/erpnext/home/__init__.py
@@ -36,11 +36,11 @@
 
 	# Accounts
 	'Journal Voucher':      ['[%(voucher_type)s] %(name)s', '#4169E1'],
-	'Payable Voucher':      ['To %(supplier_name)s for %(currency)s %(grand_total_import)s', '#4169E1'],
-	'Receivable Voucher':['To %(customer_name)s for %(currency)s %(grand_total_export)s', '#4169E1'],
+	'Purchase Invoice':      ['To %(supplier_name)s for %(currency)s %(grand_total_import)s', '#4169E1'],
+	'Sales Invoice':['To %(customer_name)s for %(currency)s %(grand_total_export)s', '#4169E1'],
 
 	# HR
-	'Expense Voucher':      ['[%(approval_status)s] %(name)s by %(employee_name)s', '#4169E1'],
+	'Expense Claim':      ['[%(approval_status)s] %(name)s by %(employee_name)s', '#4169E1'],
 	'Salary Slip':	  ['%(employee_name)s for %(month)s %(fiscal_year)s', '#4169E1'],
 	'Leave Transaction':['%(leave_type)s for %(employee)s', '#4169E1'],
 
diff --git a/erpnext/home/doctype/company_control/company_control.py b/erpnext/home/doctype/company_control/company_control.py
index 63f8b71..567f9f6 100644
--- a/erpnext/home/doctype/company_control/company_control.py
+++ b/erpnext/home/doctype/company_control/company_control.py
@@ -71,7 +71,10 @@
 			pr.save(1)
 		
 		# Update Membership Type at Gateway
-		if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')):
+		import webnotes.defs
+		from webnotes.utils import cint
+		if hasattr(webnotes.defs, 'sync_with_gateway') and \
+				cint(webnotes.defs.sync_with_gateway) or 0:		
 			if 'System Manager' in role_list : membership_type = 'Administrator'
 			else : membership_type = 'Member'
 
diff --git a/erpnext/home/doctype/company_control/company_control.txt b/erpnext/home/doctype/company_control/company_control.txt
index a83f4dd..90952d1 100644
--- a/erpnext/home/doctype/company_control/company_control.txt
+++ b/erpnext/home/doctype/company_control/company_control.txt
@@ -3,28 +3,28 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:55',
+		'creation': '2012-03-27 14:35:52',
 		'docstatus': 0,
-		'modified': '2011-01-13 12:14:36',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Home',
+		'module': u'Home',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 13
 	},
 
 	# DocType, Company Control
 	{
 		'doctype': 'DocType',
-		'name': 'Company Control'
+		'name': u'Company Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/home/doctype/feed/feed.txt b/erpnext/home/doctype/feed/feed.txt
index 62d6633..2c33fcf 100644
--- a/erpnext/home/doctype/feed/feed.txt
+++ b/erpnext/home/doctype/feed/feed.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-04-06 18:11:38',
+		'creation': '2012-03-27 14:35:52',
 		'docstatus': 0,
-		'modified': '2012-02-08 11:35:40',
+		'modified': '2012-03-27 14:35:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/doctype/home_control/home_control.py b/erpnext/home/doctype/home_control/home_control.py
index c88cf9e..142dcc2 100644
--- a/erpnext/home/doctype/home_control/home_control.py
+++ b/erpnext/home/doctype/home_control/home_control.py
@@ -141,8 +141,8 @@
 	# get dashboard counts
 	# --------------------
 	def get_wip_counts(self):
-		#dtl = ['Lead', 'Enquiries', 'Sales Order', 'Invoices', 'Indent', 'Purchase Order', 'Bills', 'Tasks', 'Delivery Note', 'Maintenance']
-		can_read_dt = ['Lead', 'Enquiry', 'Sales Order', 'Receivable Voucher', 'Indent', 'Purchase Order', 'Payable Voucher', 'Delivery Note', 'Task', 'Serial No']
+		#dtl = ['Lead', 'Enquiries', 'Sales Order', 'Invoices', 'Purchase Request', 'Purchase Order', 'Bills', 'Tasks', 'Delivery Note', 'Maintenance']
+		can_read_dt = ['Lead', 'Opportunity', 'Sales Order', 'Sales Invoice', 'Purchase Request', 'Purchase Order', 'Purchase Invoice', 'Delivery Note', 'Task', 'Serial No']
 		dt = {}
 		for d in can_read_dt:
 			args = {}
@@ -151,10 +151,10 @@
 			if d=='Lead':
 				args = {'To follow up':sql("select count(name) from tabLead where status!='Converted' and status!='Lead Lost' and status!='Not Interested'")}
 
-			# if Enquiry
-			elif d=='Enquiry':
-				args['Quotations to be sent'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabEnquiry`t2 where t1.enq_no!=t2.name and t2.docstatus=1")
-				args['To follow up'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabEnquiry`t2 where t1.enq_no=t2.name and t2.docstatus=1 and t1.docstatus=1")
+			# if Opportunity
+			elif d=='Opportunity':
+				args['Quotations to be sent'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabOpportunity`t2 where t1.enq_no!=t2.name and t2.docstatus=1")
+				args['To follow up'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabOpportunity`t2 where t1.enq_no=t2.name and t2.docstatus=1 and t1.docstatus=1")
 
 			# if Sales Order
 			elif d=='Sales Order':
@@ -163,16 +163,16 @@
 				args['Overdue'] = sql("select count(name) from `tabSales Order` where ifnull(per_delivered,0)<100 and delivery_date<now() and docstatus=1")
 				args['To be submitted'] = sql("select count(name) from `tabSales Order` where docstatus=0 and status='Draft'")      #Draft
 
-			# if Receivable Voucher
-			elif d=='Receivable Voucher':
-				args['To receive payment'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=1 and due_date>now() and outstanding_amount!=0")
-				args['Overdue'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=1 and due_date<now() and outstanding_amount!=0")  
-				args['To be submitted'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=0")       #Draft
+			# if Sales Invoice
+			elif d=='Sales Invoice':
+				args['To receive payment'] = sql("select count(name) from `tabSales Invoice` where docstatus=1 and due_date>now() and outstanding_amount!=0")
+				args['Overdue'] = sql("select count(name) from `tabSales Invoice` where docstatus=1 and due_date<now() and outstanding_amount!=0")  
+				args['To be submitted'] = sql("select count(name) from `tabSales Invoice` where docstatus=0")       #Draft
 
-			# if Indent 
-			elif d=='Indent':
-				args['Purchase Order to be made'] = sql("select count(name) from `tabIndent` where ifnull(per_ordered,0)<100 and docstatus=1")
-				args['To be submitted'] = sql("select count(name) from `tabIndent` where status='Draft'")      #Draft
+			# if Purchase Request 
+			elif d=='Purchase Request':
+				args['Purchase Order to be made'] = sql("select count(name) from `tabPurchase Request` where ifnull(per_ordered,0)<100 and docstatus=1")
+				args['To be submitted'] = sql("select count(name) from `tabPurchase Request` where status='Draft'")      #Draft
 
 			# if Purchase Order    
 			elif d=='Purchase Order':
@@ -180,10 +180,10 @@
 				args['To be billed'] = sql("select count(name) from `tabPurchase Order` where ifnull(per_billed,0)<100 and docstatus=1")
 				args['To be submitted'] = sql("select count(name) from `tabPurchase Order` where status='Draft'")        #Draft
 
-			# if Payable Voucher
-			elif d=='Payable Voucher':
-				args['To be paid'] = sql("select count(name) from `tabPayable Voucher` where docstatus=1 and outstanding_amount!=0")
-				args['To be submitted'] = sql("select count(name) from `tabPayable Voucher` where docstatus=0")       #Draft
+			# if Purchase Invoice
+			elif d=='Purchase Invoice':
+				args['To be paid'] = sql("select count(name) from `tabPurchase Invoice` where docstatus=1 and outstanding_amount!=0")
+				args['To be submitted'] = sql("select count(name) from `tabPurchase Invoice` where docstatus=0")       #Draft
 
 			# if Delivery Note
 			elif d=='Delivery Note':
@@ -192,7 +192,7 @@
 			
 			# if Tasks
 			elif d=='Task':
-				args = {'Open': sql("select count(name) from `tabTicket` where status='Open'")}
+				args = {'Open': sql("select count(name) from `tabTask` where status='Open'")}
 
 			# if Serial No
 			elif d=='Serial No':
@@ -208,13 +208,13 @@
 	# -------------------------------------------------------------------------------------------------------
 	
 	def get_todo_count(self):
-		count = sql("select count(distinct name) from `tabToDo Item` where owner=%s", session['user'])
+		count = sql("select count(distinct name) from `tabToDo` where owner=%s", session['user'])
 		count = count and count[0][0] or 0
 		return count
 		
 	def get_todo_list(self):
 		res = sql("""select name, description, `date`, 
-			priority, checked, reference_type, reference_name from `tabToDo Item` 
+			priority, checked, reference_type, reference_name from `tabToDo` 
 			where owner=%s order by field(priority,'High','Medium','Low') asc, date asc""", \
 				session['user'], as_dict=1)
 		return res
@@ -222,7 +222,7 @@
 	def add_todo_item(self,args):
 		args = json.loads(args)
 
-		d = Document('ToDo Item', args.get('name') or None)
+		d = Document('ToDo', args.get('name') or None)
 		d.description = args['description']
 		d.date = args['date']
 		d.priority = args['priority']
@@ -236,10 +236,10 @@
 		return d.name
 
 	def remove_todo_item(self,nm):
-		d = Document('ToDo Item', nm or None)
+		d = Document('ToDo', nm or None)
 		if d and d.name:
 			self.notify_assignment(d)
-		sql("delete from `tabToDo Item` where name = %s",nm)
+		sql("delete from `tabToDo` where name = %s",nm)
 
 	def notify_assignment(self, d):
 		doc_type = d.fields.get('reference_type')
@@ -260,7 +260,7 @@
 	# -------------------------------------------------------------------------------------------------------
 
 	def get_todo_reminder(self):
-		return convert_to_lists(sql("select name, description, date, priority,checked from `tabToDo Item` where owner=%s and date=%s and checked=1 order by priority, date", (session['user'], nowdate())))
+		return convert_to_lists(sql("select name, description, date, priority,checked from `tabToDo` where owner=%s and date=%s and checked=1 order by priority, date", (session['user'], nowdate())))
 		
 	# get user details
 	def get_users(self):
diff --git a/erpnext/home/doctype/home_control/home_control.txt b/erpnext/home/doctype/home_control/home_control.txt
index fff9743..1d9098e 100644
--- a/erpnext/home/doctype/home_control/home_control.txt
+++ b/erpnext/home/doctype/home_control/home_control.txt
@@ -3,22 +3,22 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2009-07-09 16:32:49',
+		'creation': '2012-03-27 14:35:53',
 		'docstatus': 0,
-		'modified': '2010-12-24 17:08:55',
-		'modified_by': 'nabin@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Home',
+		'module': u'Home',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 6
 	},
@@ -26,30 +26,31 @@
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Home Control',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Home Control',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'Guest',
 		'write': 1
 	},
 
 	# DocType, Home Control
 	{
 		'doctype': 'DocType',
-		'name': 'Home Control'
+		'name': u'Home Control'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm',
+		'role': u'Guest'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/home/doctype/widget_control/__init__.py b/erpnext/home/doctype/widget_control/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/doctype/widget_control/__init__.py
+++ /dev/null
diff --git a/erpnext/home/doctype/widget_control/widget_control.py b/erpnext/home/doctype/widget_control/widget_control.py
deleted file mode 100644
index 5c2762c..0000000
--- a/erpnext/home/doctype/widget_control/widget_control.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import webnotes
-
-from webnotes.utils import nowdate
-from webnotes.model.doc import Document
-from webnotes.model.code import get_obj
-from webnotes import session, form, msgprint 
-
-sql = webnotes.conn.sql
-
-try: import json
-except: import simplejson as json
-
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self,d,dl):
-    self.doc, self.doclist = d, dl
-      
-  def add_comment(self,args):
-    import time
-    args = eval(args)
-    if(args['comment']):
-      cmt = Document('Comment Widget Record')
-      for arg in args:
-        cmt.fields[arg] = args[arg]
-      cmt.comment_date = nowdate()
-      cmt.comment_time = time.strftime('%H:%M')
-      cmt.save(1)
-	      
-    else:
-      raise Exception
-        
-  def remove_comment(self, args):
-    args = json.loads(args)
-    sql("delete from `tabComment Widget Record` where name=%s",args['id'])
diff --git a/erpnext/home/doctype/widget_control/widget_control.txt b/erpnext/home/doctype/widget_control/widget_control.txt
deleted file mode 100644
index 1b6e606..0000000
--- a/erpnext/home/doctype/widget_control/widget_control.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-# DocType, Widget Control
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:30',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'istable': 0,
-		'module': 'Home',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 27
-	},
-
-	# DocType, Widget Control
-	{
-		'doctype': 'DocType',
-		'name': 'Widget Control'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/page/activity/activity.js b/erpnext/home/page/activity/activity.js
index 62604b7..83f018d 100644
--- a/erpnext/home/page/activity/activity.js
+++ b/erpnext/home/page/activity/activity.js
@@ -1,5 +1,5 @@
 wn.pages['activity'].onload = function(wrapper) {
-	var list = new wn.widgets.Listing({
+	var list = new wn.ui.Listing({
 		method: 'home.page.activity.activity.get_feed',
 		parent: $('#activity-list'),
 		render_row: function(row, data) {
diff --git a/erpnext/home/page/dashboard/dashboard.js b/erpnext/home/page/dashboard/dashboard.js
index 1d01ee9..072af25 100644
--- a/erpnext/home/page/dashboard/dashboard.js
+++ b/erpnext/home/page/dashboard/dashboard.js
@@ -16,12 +16,12 @@
 
 pscript.onload_dashboard = function() {
 	// load jqplot
-	wn.require('lib/css/jqplot.css');
-	wn.require('lib/js/legacy/jquery/jquery.jqplot.min.js');
-	wn.require('lib/js/legacy/jquery/jqplot-plugins/jqplot.barRenderer.js'); 
-	wn.require('lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.min.js');
-	wn.require('lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasTextRenderer.min.js');
-	wn.require('lib/js/legacy/jquery/jqplot-plugins/jqplot.categoryAxisRenderer.min.js');
+	wn.require('lib/css/lib/jqplot.css');
+	wn.require('lib/js/lib/jqplot/jquery.jqplot.min.js');
+	wn.require('lib/js/lib/jqplot/jqplot-plugins/jqplot.barRenderer.js'); 
+	wn.require('lib/js/lib/jqplot/jqplot-plugins/jqplot.canvasAxisTickRenderer.min.js');
+	wn.require('lib/js/lib/jqplot/jqplot-plugins/jqplot.canvasTextRenderer.min.js');
+	wn.require('lib/js/lib/jqplot/jqplot-plugins/jqplot.categoryAxisRenderer.min.js');
 
 
 	pscript.dashboard_settings = {
diff --git a/erpnext/home/page/desktop/desktop.css b/erpnext/home/page/desktop/desktop.css
index cc6126e..59e50eb 100644
--- a/erpnext/home/page/desktop/desktop.css
+++ b/erpnext/home/page/desktop/desktop.css
@@ -46,10 +46,10 @@
 	width: 56px;
 	height: 56px;
 	border: 4px solid white;
-	box-shadow: 0 0 10px 1px black;
-	-moz-box-shadow: 0 0 10px 1px black;
-	-webkit-box-shadow: 0 0 10px 1px black;
-	-o-box-shadow: 0 0 10px 1px black;
+	box-shadow: 0 0 4px 1px black;
+	-moz-box-shadow: 0 0 4px 1px black;
+	-webkit-box-shadow: 0 0 4px 1px black;
+	-o-box-shadow: 0 0 4px 1px black;
 	margin: auto;
 }
 
@@ -62,17 +62,16 @@
 
 .case-label {
 	color: white;
-	/*font-size: 12px;*/
 	padding-top: 10px;
 	text-align: center;
-	text-shadow: 1px 1px 5px #000, 3px 3px 5px #000;
+	text-shadow: 1px 1px 2px #000, 1px 1px 2px #000, 1px 1px 2px #000, 0px 0px 2px #000;
 }
 
 /* Hover and click effects */
 .case-border:hover, .circle:hover, .hover-effect {
-	box-shadow: 0 0 2px 0px black, 0 0 10px 1px white !important;
-	-moz-box-shadow: 0 0 2px 0px black, 0 0 10px 1px white !important;
-	-webkit-box-shadow: 0 0 2px 0px black, 0 0 10px 1px white !important;
+	box-shadow: 0 0 2px 0px black, 0 0 4px 1px white !important;
+	-moz-box-shadow: 0 0 2px 0px black, 0 0 4px 1px white !important;
+	-webkit-box-shadow: 0 0 2px 0px black, 0 0 4px 1px white !important;
 	-o-box-shadow: 0 0 2px 0px black, 0 0 10px 1px white !important;
 }
 
@@ -105,10 +104,10 @@
 	margin-top: -74px;
 	margin-right: 10px;
 	border: 2px solid white;
-	box-shadow: 0 0 10px 1px black;
-	-moz-box-shadow: 0 0 10px 1px black;
-	-webkit-box-shadow: 0 0 10px 1px black;
-	-o-box-shadow: 0 0 10px 1px black;
+	box-shadow: 0 0 4px 1px black;
+	-moz-box-shadow: 0 0 4px 1px black;
+	-webkit-box-shadow: 0 0 4px 1px black;
+	-o-box-shadow: 0 0 4px 1px black;
 }
 
 .circle-text {
diff --git a/erpnext/home/page/desktop/desktop.js b/erpnext/home/page/desktop/desktop.js
index 7852ab2..93acd08 100644
--- a/erpnext/home/page/desktop/desktop.js
+++ b/erpnext/home/page/desktop/desktop.js
@@ -79,7 +79,7 @@
 
 	for(var i in wn.boot.modules_list) {
 		var m = wn.boot.modules_list[i];
-		if(m!='Setup' && wn.boot.profile.allow_modules.indexOf(m)!=-1)
+		if(!in_list(['Setup', 'Dashboard'], m) && wn.boot.profile.allow_modules.indexOf(m)!=-1)
 			add_icon(m);
 	}
 
diff --git a/erpnext/home/page/event_updates/.DS_Store b/erpnext/home/page/event_updates/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
--- a/erpnext/home/page/event_updates/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/erpnext/home/page/event_updates/__init__.py b/erpnext/home/page/event_updates/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/page/event_updates/__init__.py
+++ /dev/null
diff --git a/erpnext/home/page/event_updates/event_updates.css b/erpnext/home/page/event_updates/event_updates.css
deleted file mode 100644
index a88fed4..0000000
--- a/erpnext/home/page/event_updates/event_updates.css
+++ /dev/null
@@ -1,62 +0,0 @@
-div.home-status {
-	margin: 7px;
-	padding: 5px;
-	color: #666;
-}
-
-span.home-status-link {
-	cursor: pointer;
-	text-decoration: underline;
-}
-
-span.home-status-unread {
-	padding: 2px 3px;
-	font-size: 11px;
-	color: #FFF;
-	background-color: RED;
-}
-
-div.setup-wizard {
-	display: none;
-	margin: 13px 0px;
-	background-color: #FED;
-	padding: 13px;
-}
-
-div.setup-wizard .header {
-	font-size: 12px;
-	font-weight: bold;
-	color: #322;
-	margin-bottom: 7px;
-}
-
-
-div.setup-wizard .percent-outer {
-	height: 17px;
-	background-color: #FFF;
-	border: 2px solid #322;
-}
-
-div.setup-wizard .percent-inner {
-	height: 17px;
-	background-color: GREEN;
-}
-
-div.setup-wizard .suggestion {
-	margin: 7px 0px;
-	color: #322;	
-}
-
-div.setup-wizard .prev-next {
-	height: 13px;
-}
-
-div.setup-wizard .prev-next span {
-	display: none;
-	float: right;
-	margin-left: 13px;
-	color: #877;
-	font-size: 11px;
-}
-
-
diff --git a/erpnext/home/page/event_updates/event_updates.html b/erpnext/home/page/event_updates/event_updates.html
deleted file mode 100644
index 41ae9a5..0000000
--- a/erpnext/home/page/event_updates/event_updates.html
+++ /dev/null
@@ -1 +0,0 @@
-<div id="updates_div"></div>
\ No newline at end of file
diff --git a/erpnext/home/page/event_updates/event_updates.js b/erpnext/home/page/event_updates/event_updates.js
deleted file mode 100644
index b2825f3..0000000
--- a/erpnext/home/page/event_updates/event_updates.js
+++ /dev/null
@@ -1,671 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-pscript['onload_Event Updates'] = function() {
-	if(user=='Guest') {
-		loadpage('Login Page');
-		return;
-	}
-			
-	pscript.home_make_body();
-	pscript.home_make_status();
-	pscript.home_set_banner();
-	pscript.home_make_widgets();
-}
-
-// ==================================
-
-pscript.home_make_body = function() {
-	var wrapper = wn.pages['Event Updates'];
-	
-	// body
-	$(wrapper).addClass('layout-wrapper').addClass('layout-wrapper-background')
-	
-	wrapper.body = $a(wrapper, 'div', 'layout-main-section');
-	wrapper.head = $a(wrapper.body, 'div');
-	wrapper.side_section =$a(wrapper, 'div', 'layout-side-section');
-	$a(wrapper, 'div', '', {clear:'both'});
-	
-	wrapper.banner_area = $a(wrapper.head, 'div');
-
-	wrapper.setup_wizard_area = $a(wrapper.body, 'div', 'setup-wizard');	
-}
-
-// ==================================
-
-pscript.home_set_banner = function(wrapper) {
-	var wrapper = wn.pages['Event Updates'];
-	var cp = wn.control_panel;
-
-	// banner
-	if(cp.client_name) {
-		var banner = $a(wrapper.banner_area, 'div', '', {paddingBottom:'4px'})
-		banner.innerHTML = cp.client_name;
-	}
-}
-
-// Widgets
-// ==================================
-
-pscript.home_make_widgets = function() {
-	var wrapper = wn.pages['Event Updates'];
-	var cell = wrapper.side_section;
-
-	// sidebar
-	sidebar = new wn.widgets.PageSidebar(cell, {
-		sections:[
-			{
-				title: 'Calendar',
-				display: function() { return !has_common(user_roles, ['Guest','Customer','Vendor'])},
-				render: function(wrapper) {
-					new HomeCalendar(new HomeWidget(wrapper, 'Calendar', 'Event'), wrapper);
-				}		
-			},
-			
-			{
-				title: 'To Do',
-				display: function() { return !has_common(user_roles, ['Guest','Customer','Vendor'])},
-				render: function(wrapper) {
-					new HomeToDo(new HomeWidget(wrapper, 'To Do', 'Item'));
-				}		
-			},
-
-			{
-				title: 'Online Users',
-				display: function() { return !has_common(user_roles, ['Guest','Customer','Vendor'])},
-				render: function(wrapper) {
-					pscript.online_users_obj = new OnlineUsers(wrapper);
-				}		
-			}
-		]
-	});
-		
-	new FeedList(wrapper.body);
-}
-
-OnlineUsers = function(wrapper) {
-	var me = this;
-	this.wrapper = wrapper;
-	
-	this.my_company_link = function() {
-		$a($a(wrapper, 'div', '', {marginBottom:'7px'}), 'span', 'link_type', 
-			{color:'#777', 'color:hover':'#FFF', fontSize:'11px'}, 
-			'See all users', function() {loadpage('My Company'); });
-	}
-	
-	this.render = function(online_users) {
-		me.my_company_link();
-		
-		if(online_users.length) {
-			var max = online_users.length; max = (max > 10 ? 10 : max)
-			me.wrapper.innerHTML = "";
-			for(var i=0; i<max; i++) {
-				new OneOnlineUser(me.wrapper, online_users[i]);
-			}
-		} else {
-			$a(wrapper, 'div', '', {'color':'#888'}, 'No user online!')
-		}
-	}
-}
-
-OneOnlineUser = function(wrapper, det) {
-	var name = cstr(det[1]) + ' ' + cstr(det[2]);
-	if(det[1]==user) name = 'You'
-	var div = $a(wrapper, 'div', '', {padding:'3px 0px'});
-	$a(div, 'div', '', {width:'7px', height:'7px', cssFloat:'left', margin:'5px', backgroundColor:'green'});
-	$a(div, 'div', '', {marginLeft:'3px'}, name);
-}
-
-HomeWidget = function(parent, heading, item) {
-	var me = this; this.item = item;
-	
-	this.wrapper = $a(parent, 'div');
-	
-	
-	// body
-	this.body = $a(this.wrapper,'div','',{paddingBottom:'16px'});
-	this.footer = $a(this.wrapper,'div');
-	
-	// add button
-	this.add_btn = $btn(this.footer,'+ Add ' + item,function(){me.add()},null,'cupid-blue');
-
-	// refresh
-	this.refresh_btn = $ln(this.footer,'Refresh',function() { me.refresh(); },{fontSize:'11px',marginLeft:'7px',color:'#888'});
-}
-
-HomeWidget.prototype.refresh = function() {
-	var me = this;
-	$di(this.working_img);
-		
-	var callback = function(r,rt) {
-		$dh(me.working_img);
-		me.body.innerHTML = '';
-
-		// prepare (for calendar?)
-		if(me.decorator.setup_body) me.decorator.setup_body();
-
-		for(var i=0;i<r.message.length;i++) {
-			new HomeWidgetItem(me, r.message[i]);
-		}
-		if(!r.message.length) {
-			$a(me.body,'div','',{color:'#777'}, me.no_items_message);
-		}
-	}
-	$c_obj('Home Control',this.get_list_method,'',callback);
-}
-
-HomeWidget.prototype.make_dialog = function() {
-	var me = this;
-	if(!this.dialog) {
-		this.dialog = new wn.widgets.Dialog();
-		this.dialog.make({
-			width: 480,
-			title: 'New ' + this.item, 
-			fields:this.dialog_fields
-		});
-		
-		this.dialog.fields_dict.save.input.onclick = function() {
-			this.set_working();
-			me.decorator.save(this);	
-		}
-	}
-}
-
-HomeWidget.prototype.add = function() {
-	this.make_dialog();
-	this.decorator.clear_dialog();
-	this.dialog.show();
-}
-
-// Item
-// --------
-
-HomeWidgetItem = function(widget, det) {
-	var me = this; this.det = det; this.widget = widget;
-	this.widget = widget; this.det = det;
-	
-	// parent
-	if(widget.decorator.get_item_parent) parent = widget.decorator.get_item_parent(det);
-	else parent = widget.body;
-	
-	if(!parent) return;
-	
-	// wrapper
-	this.wrapper = $a(parent, 'div');
-	this.tab = make_table(this.wrapper, 1, 3, '100%', ['90%', '5%', '5%'],{paddingRight:'4px'});
-
-	// buttons
-	this.edit_btn = $a($td(this.tab,0,1),'div','wn-icon ' + 'ic-doc_edit', {cursor:'pointer'});
-	this.edit_btn.onclick = function() { me.edit(); }
-
-	this.del_btn = $a($td(this.tab,0,2),'div','wn-icon ' + 'ic-trash', {cursor:'pointer'});
-	this.del_btn.onclick = function() { me.delete_item(); }
-
-	widget.decorator.render_item(this, det);
-}
-
-HomeWidgetItem.prototype.edit = function() {
-	this.widget.make_dialog();
-	this.widget.decorator.set_dialog_values(this.det);
-	this.widget.dialog.show();
-}
-
-HomeWidgetItem.prototype.delete_item = function() {
-	var me = this;
-	this.wrapper.innerHTML = '<span style="color:#888">Deleting...</span>';
-	var callback = function(r,rt) {
-		$(me.wrapper).slideUp();
-	}
-	$c_obj('Home Control',this.widget.delete_method, 
-		this.widget.get_item_id(this.det) ,callback);
-		
-}
-
-// Calendar
-// ===========================
-
-HomeCalendar = function(widget, wrapper) {
-	// calendar link
-	$ln(widget.footer,'Full Calendar',function() { loadpage('_calendar'); },{marginLeft:'7px', fontSize:'11px', color:'#888'})
-
-	this.widget = widget;
-
-	// methods
-	this.widget.get_list_method = 'get_events_list'
-	this.widget.delete_method = 'delete_event';
-	this.widget.no_items_message = 'You have no events in the next 7 days';
-	this.widget.get_item_id = function(det) { return det.name; }
-
-	this.widget.decorator = this;
-
-	var hl = [];
-	for(var i=0; i<24; i++) {
-		hl.push(((i+8) % 24) + ':00');
-	}
-
-	this.widget.dialog_fields = [
-		{fieldtype:'Date', fieldname:'event_date', label:'Event Date', reqd:1},
-		{fieldtype:'Time', fieldname:'event_hour', label:'Event Time', reqd:1},
-		{fieldtype:'Text', fieldname:'description', label:'Description', reqd:1},
-		{fieldtype:'Button', fieldname:'save', label:'Save'}
-	];
-
-	this.widget.refresh();
-}
-
-// create calendar grid
-// --------------------
-HomeCalendar.prototype.setup_body = function() {
-	var w = this.widget;
-	w.date_blocks = {};
-	for(var i=0; i<7; i++) {
-		var dt = dateutil.obj_to_str(dateutil.add_days(new Date(),i));
-		var div = $a(w.body, 'div', '', {padding:'4px 0px', borderBottom:'1px solid #AAA',display:'none'});
-		div.head = $a(div, 'div', '', {fontWeight:'bold', paddingBottom:'4px'});
-		div.head.innerHTML  = (i==0 ? 'Today' : (i==1 ? 'Tomorrow' : dateutil.str_to_user(dt)))
-		w.date_blocks[dt] = div;
-	}
-}
-
-HomeCalendar.prototype.get_item_parent = function(det) {
-	var d = this.widget.date_blocks[det.event_date]; $ds(d);
-	return d;
-}
-
-HomeCalendar.prototype.render_item = function(item, det) {	
-	var tab = make_table($td(item.tab, 0, 0), 1, 2, '100%', ['48px', null], {padding:'2px', lineHeight:'1.5em'});
-	$y(tab, {tableLayout:'fixed'});
-
-	$td(tab, 0, 0).innerHTML = '<span style="color:#888">' + det.event_hour + ':</span> ';
-	$a($td(tab, 0, 1), 'span', 'social', {}, replace_newlines(det.description));
-
-	if(det.ref_type && det.ref_name && det.ref_name != 'None') {
-		var span=$a($a($td(tab, 0, 1),'div'),'span','link_type');
-		span.innerHTML = det.ref_name; span.dt = det.ref_type;
-		span.onclick = function() { loaddoc(this.dt, this.innerHTML); }
-	}
-}
-
-HomeCalendar.prototype.clear_dialog = function() {
-	this.set_dialog_values({event_date:get_today(), event_hour:'8:00', description:''});
-}
-
-HomeCalendar.prototype.set_dialog_values = function(det) {
-	var d = this.widget.dialog;
-	d.set_values(det);
-	d.det = det;
-}
-
-HomeCalendar.prototype.save = function(btn) {
-	var d = this.widget.dialog;
-	var me = this;
-	var det = d.get_values();
-	
-	if(!det) {
-		btn.done_working();
-	 	return;
-	}
-	
-	det.name = d.det.name;
-	det.owner = user;
-	if(!det.event_type)
-		det.event_type = 'Private';
-	
-	var callback = function(r,rt) {
-		btn.done_working();
-		me.widget.dialog.hide();
-		me.widget.refresh();
-	}
-	$c_obj('Home Control','edit_event',JSON.stringify(det),callback);	
-}
-
-// Todo
-// ===========================
-
-HomeToDo = function(widget) {
-	this.widget = widget;
-
-	// methods
-	this.widget.get_list_method = 'get_todo_list';
-	this.widget.delete_method = 'remove_todo_item';
-	this.widget.no_items_message = 'Nothing to do?';
-	this.widget.get_item_id = function(det) { return det.name; }
-
-	this.widget.decorator = this;
-
-	this.widget.dialog_fields = [
-		{fieldtype:'Date', fieldname:'date', label:'Event Date', reqd:1},
-		{fieldtype:'Text', fieldname:'description', label:'Description', reqd:1},
-		{fieldtype:'Check', fieldname:'checked', label:'Completed'},
-		{fieldtype:'Select', fieldname:'priority', label:'Priority', reqd:1, 'options':['Medium','High','Low'].join('\n')},
-		{fieldtype:'Button', fieldname:'save', label:'Save'}
-	];
-
-	this.widget.refresh();	
-}
-
-HomeToDo.prototype.render_item = function(item, det) {
-	
-	// priority tag
-	var tab = make_table($td(item.tab, 0, 0), 1, 2, '100%', ['48px', null], {padding:'2px'});
-	$y(tab, {tableLayout:'fixed'});
-
-	var span = $a($td(tab, 0, 0), 'span', '', {padding:'2px',color:'#FFF',fontSize:'10px'
-		, backgroundColor:(det.priority=='Low' ? '#888' : 
-			(det.priority=='High' ? '#EDA857' : '#687FD3'))});
-		
-	$(span).css('-moz-border-radius','3px').css('-webkit-border-radius','3px');
-	span.innerHTML = det.priority;
-
-	// text
-	var span = $a($td(tab, 0, 1), 'div', 'social', {lineHeight:'1.5em'}, 
-		replace_newlines(det.description));
-	if(det.checked) $y(span,{textDecoration:'line-through'});
-	
-	// reference link
-	if(det.reference_name) {
-		$a($td(tab, 0, 1), 'div', 'social', '', 
-			repl('<a href="#!Form/%(reference_type)s/%(reference_name)s">%(reference_name)s</a>',
-				det))
-	}
-	
-	// if expired & open, then in red
-	if(!det.checked && dateutil.str_to_obj(det.date) < new Date()) {
-		$y(span,{color:'RED'}); 
-		$a($td(tab, 0, 1), 'div', '', {fontSize:'10px', color:'#666'},
-		 	dateutil.str_to_user(det.date) + ' (Overdue)');
-	} else {
-		$a($td(tab, 0, 1), 'div', '', {fontSize:'10px', color:'#666'}, 
-			dateutil.str_to_user(det.date));		
-	}
-}
-
-HomeToDo.prototype.clear_dialog = function() {
-	this.set_dialog_values(['','',get_today(),'Medium',0]);
-}
-
-HomeToDo.prototype.set_dialog_values = function(det) {
-	var d = this.widget.dialog;
-	d.set_values({
-		date: det.date,
-		priority: det.priority,
-		description: det.description,
-		checked: det.checked
-	});
-	d.det = det;
-}
-
-HomeToDo.prototype.save = function(btn) {
-	var d = this.widget.dialog;
-	var me = this;
-	
-	var det = d.get_values()
-	if(!det) {
-		btn.done_working();
-	 	return;	
-	}
-
-	det.name = d.det.name;
-	var callback = function(r,rt) {
-		btn.done_working();
-		me.widget.dialog.hide();
-		me.widget.refresh();
-	}
-	$c_obj('Home Control','add_todo_item',JSON.stringify(det),callback);	
-}
-
-// Feed
-// ==================================
-
-
-FeedList = function(parent) {
-	// settings
-	this.auto_feed_off = cint(sys_defaults.auto_feed_off);
-	
-	this.wrapper = $a(parent, 'div');
-	this.make_head();
-	this.make_list();
-	this.list.run();
-}
-
-FeedList.prototype.make_head = function() {
-	var me = this;
-	this.head = $a(this.wrapper, 'div', '', {marginBottom:'8px'});
-	
-	// head
-
-	$a(this.head,'h1','', {display:'inline'}, 'Home'); 
-
-	// refresh
-	$a(this.head,'span','link_type', 
-		{marginLeft:'7px', fontSize:'11px'}, 'refresh',
-		function() { me.run(); }
-	);
-	
-	if(has_common(user_roles, ['System Manager','Accounts Manager'])) {
-		$btn(this.head, 'Dashboard', function() {loadpage('dashboard'); }, {marginLeft:'7px'}, 'cupid-blue')
-		
-	}
-}
-
-FeedList.prototype.run = function() {
-	this.prev_date = null;
-	this.list.run();
-}
-
-FeedList.prototype.make_list = function() {
-	var me = this;
-	this.list_area = $a(this.wrapper,'div')
-	
-	this.list = new wn.widgets.Listing({
-		parent: this.list_area,
-		query: repl('select \
-			distinct t1.name, t1.feed_type, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \
-			if(ifnull(t1.full_name,"")="", t1.owner, t1.full_name) as full_name, \
-			t1.modified, t1.color \
-			from tabFeed t1, tabUserRole t3, tabDocPerm t4 \
-			where t1.doc_type = t4.parent \
-			and t3.parent = "%(user)s" \
-			and t4.role = t3.role \
-			and ifnull(t4.`read`,0) = 1 \
-			order by t1.modified desc', {user:user}),
-		no_result_message: 'Nothing to show yet. Your feed will be updated as you start your activities',
-		render_row: function(parent, data) {
-			me.render_feed(parent, data)
-		},
-		onrun: function() {
-			$(me.wrapper).fadeIn(); 
-			if(me.after_run) me.after_run();
-		},
-		hide_refresh: true
-	});
-}
-
-FeedList.prototype.render_feed = function(parent, data) {
-	new FeedItem(parent, data, this);
-}
-
-// Item
-// -------------------------------
-
-FeedItem = function(cell, det, feedlist) {
-	var me = this;
-	
-	this.det = det; this.feedlist = feedlist;
-	this.wrapper = $a(cell,'div','',{paddingBottom:'4px'});
-	this.head = $a(this.wrapper,'div');
-
-	this.tab = make_table(this.wrapper, 1, 2, '100%', [(100/7)+'%', (600/7)+'%']);
-	$y(this.tab,{tableLayout:'fixed'})
-
-	$y($td(this.tab,0,0),{textAlign:'right',paddingRight:'4px'});
-	
-	// text
-	this.text_area = $a($td(this.tab,0,1), 'div');
-	this.render_references(this.text_area, det);	
-	this.render_tag(det);
-	
-	// add day separator
-	this.add_day_sep(det);
-}
-
-// Day separator
-// -------------------------------------------------
-
-FeedItem.prototype.add_day_sep = function(det) {
-	var me = this;
-	var prev_date = det.modified.split(' ')[0];
-	
-	var make_div = function() {
-		var div = $a(me.head, 'div', '', 
-			{borderBottom:'1px solid #888', margin:'8px 0px', padding:'2px 0px', color:'#888', fontSize:'11px'});
-		div.innerHTML = comment_when(det.modified, 1);
-		
-		// today?
-		if(prev_date==get_today()) {
-			div.innerHTML = '';
-			span = $a(div, 'span', '', {padding:'2px', color:'#000', fontWeight:'bold'});
-			span.innerHTML = 'Today';
-		}
-	}
-	
-	if(this.feedlist.prev_date && this.feedlist.prev_date != prev_date) { make_div(); }
-	if(!this.feedlist.prev_date) { make_div(); }
-	this.feedlist.prev_date = prev_date;
-}
-
-// Tag
-// -------------------------------------------------
-
-FeedItem.prototype.render_tag = function(det) {
-	// type is the name
-	tag = $a($td(this.tab,0,0), 'div', '', 
-		{color:'#FFF', padding:'3px', textAlign:'right', fontSize:'11px', 
-			whiteSpace:'nowrap', overflow:'hidden', cursor:'pointer'});
-	$br(tag,'3px');
-	$y(tag, {backgroundColor:(det.color || '#273')});
-	
-	// tag label
-	tag.innerHTML = det.feed_type || get_doctype_label(det.doc_type);
-	
-	// not comment / label
-	if(!det.feed_type) {
-		tag.dt = det.doc_type;
-		tag.onclick = function() { loaddocbrowser(this.dt); }		
-	}
-}
-
-FeedItem.prototype.render_references = function(div, det) {
-	// name
-	div.tab = make_table(div, 1, 2, '100%', [null, '15%'])	
-	var dt = det.doc_type; var dn = det.doc_name
-	
-	// link
-	if(det.feed_type=='Login') {
-		// nothing - no link		
-	} else {
-		var allow = in_list(profile.can_read, dt);
-		var span = $a($td(div.tab,0,0), 'span', (allow ? 'link_type': ''), null, 
-			det.doc_name);
-		span.dt = dt; span.dn = dn;
-		if(allow) span.onclick = function() { loaddoc(this.dt, this.dn); }		
-	}
-	
-	// subject
-	if(det.subject) {
-		$a($td(div.tab,0,0), 'span', '', {marginLeft:'7px', color:'#444'}, det.subject);
-	}
-	
-	// by
-	$y($td(div.tab,0,1), {fontSize:'11px'}).innerHTML = 
-		(strip(det.full_name) ? det.full_name : det.modified_by);
-}
-
-pscript.home_make_status = function() {
-	var wrapper = wn.pages['Event Updates'];
-
-	// get values
-	$c_page('home', 'event_updates', 'get_status_details', user,
-		function(r,rt) { 
-			//page_body.wntoolbar.set_new_comments(r.message.unread_messages);
-										
-			// render online users
-			pscript.online_users_obj.render(r.message.online_users);
-			pscript.online_users = r.message.online_users;
-	
-			// complete registration
-			if(in_list(user_roles,'System Manager')) { 
-				wn.require("erpnext/home/page/event_updates/complete_registration.js");
-				pscript.complete_registration(r.message.registration_complete, r.message.profile); 
-			}
-			
-			// setup wizard
-			if(r.message.setup_status) {
-				new SetupWizard(r.message.setup_status)
-			}
-		}
-	);	
-}
-
-SetupWizard = function(status) { 
-	var me = this;
-	$.extend(this, {
-		make: function(status) {
-			me.status = status;
-			me.wrapper = wn.pages['Event Updates'].setup_wizard_area;
-			$ds(me.wrapper);
-			me.make_percent(status.percent);
-			me.make_suggestion(status.ret);
-		},
-		make_percent: function(percent) {
-			$a(me.wrapper, 'div', 'header', {}, 'Your setup is '+percent+'% complete');
-			var o = $a(me.wrapper, 'div', 'percent-outer');
-			$a(o, 'div', 'percent-inner', {width:percent + '%'});
-		},
-		make_suggestion: function(ret) {
-			me.suggest_area = $a(me.wrapper, 'div', 'suggestion');
-			if(me.status.ret.length>1) {
-				me.prev_next = $a(me.wrapper, 'div', 'prev-next');
-
-				// next
-				me.next = $a(me.prev_next, 'span', 'link_type', null, 'Next Suggestion',
-					function() { me.show_suggestion(me.cur_sugg+1) });
-
-				// prev
-				me.prev = $a(me.prev_next, 'span', 'link_type', null, 'Previous Suggestion',
-					function() { me.show_suggestion(me.cur_sugg-1) });
-
-			}
-			if(me.status.ret.length) {
-				me.show_suggestion(0);
-			} else {
-				me.suggest_area.innerHTML = 'Congratulations: '.bold() + 'You are now on your track... Good luck';
-			}
-		},
-		show_suggestion: function(idx) {
-			me.cur_sugg = idx;
-			me.suggest_area.innerHTML = 'What you can do next: '.bold() + me.status.ret[idx];
-
-			// show hide prev, next
-			if(me.status.ret.length>1) {
-				$dh(me.prev); $dh(me.next);
-				if(idx>0) $ds(me.prev);
-				if(idx<me.status.ret.length-1) $ds(me.next);			
-			}
-		}
-	})
-	this.make(status); 
-}
diff --git a/erpnext/home/page/event_updates/event_updates.py b/erpnext/home/page/event_updates/event_updates.py
deleted file mode 100644
index 32d6756..0000000
--- a/erpnext/home/page/event_updates/event_updates.py
+++ /dev/null
@@ -1,152 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import webnotes
-from webnotes.utils import cint
-
-@webnotes.whitelist()
-def get_online_users(arg=None):
-	# get users
-	return webnotes.conn.sql("""SELECT DISTINCT t1.user, t2.first_name, t2.last_name 
-		from tabSessions t1, tabProfile t2
-		where t1.user = t2.name
-		and t1.user not in ('Guest','Administrator')
-		and TIMESTAMPDIFF(HOUR,t1.lastupdate,NOW()) <= 1""", as_list=1) or []
-
-def get_unread_messages():
-	"returns unread (docstatus-0 messages for a user)"
-	return webnotes.conn.sql("""\
-		SELECT name, comment
-		FROM `tabComment Widget Record`
-		WHERE comment_doctype IN ('My Company', 'Message')
-		AND comment_docname = %s
-		AND ifnull(docstatus,0)=0
-		""", webnotes.user.name, as_list=1)
-
-def get_open_support_tickets():
-	"""
-		Returns a count of open support tickets
-	"""
-	from webnotes.utils import cint
-	open_support_tickets =  webnotes.conn.sql("""\
-		SELECT COUNT(*) FROM `tabSupport Ticket`
-		WHERE status = 'Open'""")
-	return open_support_tickets and cint(open_support_tickets[0][0]) or 0
-
-def get_things_todo():
-	"""
-		Returns a count of incomplete todos
-	"""
-	from webnotes.utils import cint
-	incomplete_todos = webnotes.conn.sql("""\
-		SELECT COUNT(*) FROM `tabToDo Item`
-		WHERE IFNULL(checked, 0) = 0
-		AND owner = %s""", webnotes.session.get('user'))
-	return incomplete_todos and cint(incomplete_todos[0][0]) or 0
-
-def get_todays_events():
-	"""
-		Returns a count of todays events in calendar
-	"""
-	from webnotes.utils import nowdate, cint
-	todays_events = webnotes.conn.sql("""\
-		SELECT COUNT(*) FROM `tabEvent`
-		WHERE owner = %s
-		AND event_type != 'Cancel'
-		AND event_date = %s""", (
-			webnotes.session.get('user'), nowdate()))
-	return todays_events and cint(todays_events[0][0]) or 0
-
-@webnotes.whitelist()
-def get_global_status_messages(arg=None):
-	return {
-		'unread_messages': get_unread_messages(),
-		'open_support_tickets': get_open_support_tickets(),
-		'things_todo': get_things_todo(),
-		'todays_events': get_todays_events(),
-	}
-
-@webnotes.whitelist()
-def get_status_details(arg=None):
-	"""get toolbar items"""
-	from webnotes.utils import cint, date_diff, nowdate, get_defaults
-		
-	online = get_online_users()
-			
-	# system messages			
-	ret = {
-		'user_count': len(online) or 0, 
-		#'unread_messages': get_unread_messages(),
-		#'open_support_tickets': get_open_support_tickets(),
-		'online_users': online or [],
-		'setup_status': get_setup_status(),
-		'registration_complete': cint(get_defaults('registration_complete')) and 'Yes' or 'No',
-		'profile': webnotes.conn.sql("""\
-			SELECT first_name, last_name FROM `tabProfile`
-			WHERE name=%s AND docstatus<2""", webnotes.user.name, as_dict=1)
-	}
-	return ret
-
-def get_setup_status(arg=None):
-	"""
-		Returns the setup status of the current account
-	"""
-	if cint(webnotes.conn.get_global('setup_done')):
-		return ''
-		
-	percent = 20
-	ret = []
-	
-	def is_header_set():
-		header = webnotes.conn.get_value('Control Panel', None, 'client_name') or ''
-
-		if header.startswith('<div style="padding:4px; font-size:20px;">'\
-			+(webnotes.conn.get_value('Control Panel', None, 'company_name') or '')):
-			return False
-			
-		elif 'Banner Comes Here' in header:
-			return False
-			
-		else:
-			return True
-	
-	if not is_header_set():
-		ret.append('<a href="#!Form/Personalize/Personalize">Upload your company banner</a>')
-	else:
-		percent += 20
-	
-	def check_type(doctype, ret, percent):	
-		if not webnotes.conn.sql("select count(*) from tab%s" % doctype)[0][0]:
-			ret.append('''
-				<a href="#!Form/%(dt)s/New">
-				Create a new %(dt)s
-				</a> or 
-				<a href="#!Import Data/%(dt)s">
-				Import from a spreadsheet</a>''' % {'dt':doctype})
-		else:
-			percent += 20
-		return ret, percent
-
-	ret, percent = check_type('Item', ret, percent)
-	ret, percent = check_type('Customer', ret, percent)
-	ret, percent = check_type('Supplier', ret, percent)
-	
-	if percent==100:
-		webnotes.conn.set_global('setup_done', '1')
-		return ''
-		
-	return {'ret': ret, 'percent': percent}
-		
diff --git a/erpnext/home/page/event_updates/event_updates.txt b/erpnext/home/page/event_updates/event_updates.txt
deleted file mode 100644
index 21d9350..0000000
--- a/erpnext/home/page/event_updates/event_updates.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-# Page, Event Updates
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-12-14 10:23:23',
-		'docstatus': 0,
-		'modified': '2010-12-27 10:58:56',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Page
-	{
-		'doctype': 'Page',
-		'module': 'Home',
-		'name': '__common__',
-		'page_name': 'Event Updates',
-		'standard': 'Yes'
-	},
-
-	# Page, Event Updates
-	{
-		'doctype': 'Page',
-		'name': 'Event Updates'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/page/event_updates/event_updates_static.html b/erpnext/home/page/event_updates/event_updates_static.html
deleted file mode 100644
index 682f1b2..0000000
--- a/erpnext/home/page/event_updates/event_updates_static.html
+++ /dev/null
@@ -1 +0,0 @@
-Event Updates
\ No newline at end of file
diff --git a/erpnext/home/page/my_company/__init__.py b/erpnext/home/page/my_company/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/page/my_company/__init__.py
+++ /dev/null
diff --git a/erpnext/home/page/my_company/my_company.css b/erpnext/home/page/my_company/my_company.css
deleted file mode 100644
index d2d9a66..0000000
--- a/erpnext/home/page/my_company/my_company.css
+++ /dev/null
@@ -1,82 +0,0 @@
-/* item */
-
-div.my-company-member-item-selected {
-	background-color: #BBC;
-}
-
-
-
-/* profile */
-.my-company-name-head {
-	font-size: 14px;
-	font-weight: bold;
-	margin-bottom: 7px;
-}
-
-.my-company-email {
-	margin-bottom: 7px;
-	color: #888;
-}
-
-.my-company-online-status {
-	font-weight: bold;
-	margin-left: 7px;
-}
-
-.my-company-status {
-	margin-bottom: 7px;	
-	color: #888;
-	font-style: italics;
-}
-
-.my-company-bio {
-	margin-bottom: 7px;	
-}
-
-.my-company-toolbar {
-	margin: 7px 0px;	
-}
-
-/* conversation */
-
-.my-company-input-wrapper {
-	color: #555;
-	padding: 13px;
-}
-
-.my-company-input-wrapper td {
-	vertical-align: bottom;
-}
-
-.my-company-input-wrapper textarea {
-	height: 3em;
-	font-size: 14px;
-	width: 100%;
-	margin: 7px 0px 3px 0px;
-}
-
-.my-company-input-wrapper button {
-	margin: 0px;
-}
-
-.my-company-conversation {
-	border-top: 1px solid #DDD;
-}
-.my-company-comment-wrapper {
-	padding: 7px;
-	border-bottom: 1px solid #DDD;
-}
-
-.my-company-timestamp {
-	color: #888;
-	font-size: 11px;
-	margin: 3px;
-}
-
-.my-company-conversation-head {
-	padding: 3px;
-	background-color: #DEDEDE;
-	color: #555;
-	font-size: 14px;
-	text-align: center;
-}
\ No newline at end of file
diff --git a/erpnext/home/page/my_company/my_company.html b/erpnext/home/page/my_company/my_company.html
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/page/my_company/my_company.html
+++ /dev/null
diff --git a/erpnext/home/page/my_company/my_company.js b/erpnext/home/page/my_company/my_company.js
deleted file mode 100644
index 8217cc7..0000000
--- a/erpnext/home/page/my_company/my_company.js
+++ /dev/null
@@ -1,760 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-pscript['onload_My Company'] = function() {
-	var wrapper = wn.pages['My Company'];
-	
-	// body
-	wrapper.className = 'layout_wrapper';
-	wrapper.head = new PageHeader(wrapper, 'People');
-	wrapper.body = $a(wrapper, 'div', '', {marginRight:'11px', marginTop:'11px'});
-	
-	wrapper.message = $a(wrapper.body, 'div');
-	wrapper.tab = make_table(wrapper.body, 1, 2, '100%', ['25%','75%']);
-	
-	$y(wrapper.tab, {tableLayout:'fixed'})
-	
-	pscript.myc_make_toolbar(wrapper);
-	pscript.myc_make_list(wrapper);
-	
-	if(pscript.is_erpnext_saas) {
-		pscript.myc_show_erpnext_message();
-	}
-}
-
-pscript.myc_make_toolbar = function(wrapper) {
-	if(has_common(user_roles, ['System Manager', 'Administrator'])) {
-		wrapper.head.add_button('Add User', pscript.myc_add_user)	
-	}
-}
-
-//
-// Only for erpnext product - show max users allowed
-//
-pscript.myc_show_erpnext_message = function() {
-	var callback = function(r, rt) {
-		if(r.exc) {msgprint(r.exc); return;}
-		$a(wrapper.message, 'div', 'help_box', '', 'You have ' + r.message.enabled 
-		+ ' users enabled out of ' + r.message.max_user 
-		+ '. Go to <a href="javascript:pscript.go_to_account_settings()">Account Settings</a> to increase the number of users');
-	}
-	$c_page('home', 'my_company', 'get_max_users', '', callback)
-}
-
-//
-// Add user dialog and server call
-//
-pscript.myc_add_user = function() {
-	var fields = [{
-			fieldtype: 'Data',
-			fieldname: 'user',
-			reqd: 1,
-			label: 'Email Id of the user to add'
-		},
-		{
-			fieldtype: 'Data',
-			fieldname: 'first_name',
-			reqd: 1,
-			label: 'First Name'
-		},
-		{
-			fieldtype: 'Data',
-			fieldname: 'last_name',
-			label: 'Last Name'
-		},
-		{
-			fieldtype: 'Data',
-			fieldname: 'password',
-			reqd: 1,
-			label: 'Password'
-		},
-		{
-			fieldtype: 'Button',
-			label: 'Add',
-			fieldname: 'add'
-		}];
-
-	fields.push();
-
-	var d = new wn.widgets.Dialog({
-		title: 'Add User',
-		width: 400,
-		fields: fields
-	});
-	d.make();
-	d.fields_dict.add.input.onclick = function() {
-		v = d.get_values();
-		if(v) {
-			d.fields_dict.add.input.set_working();
-			$c_page('home', 'my_company', 'add_user', v, function(r,rt) {
-				if(r.exc) { msgprint(r.exc); return; }
-				else {
-					d.hide();
-					pscript.myc_refresh();
-				}
-			})
-		}
-	}
-	d.show();
-}
-
-pscript.myc_refresh = function() {
-	wn.pages['My Company'].member_list.lst.run();	
-}
-
-pscript.myc_make_list= function(wrapper) {
-	wrapper.member_list = new MemberList(wrapper)
-}
-
-pscript.get_fullname=function(uid) {
-	if(uid=='Administrator') return uid;
-	return wn.pages['My Company'].member_list.member_items[uid].fullname;		
-}
-
-
-
-//=============================================
-
-MemberList = function(parent) {
-	var me = this;
-	this.profiles = {};
-	this.member_items = {};
-	this.role_objects = {};
-	this.cur_profile = null;
-	
-	this.list_wrapper = $a($td(parent.tab,0,0), 'div', '', {marginLeft:'11px'});
-	var cell = $td(parent.tab,0,1);
-	$y(cell, { border: '1px solid #aaa' });
-	cell.className = 'layout_wrapper';
-	this.profile_wrapper = $a(cell, 'div');
-	
-	this.no_user_selected = $a(this.profile_wrapper, 'div', 'help_box', null, 'Please select a user to view profile');
-	
-	this.make_search();
-	if(pscript.online_users) {
-		this.make_list();		
-	} else {
-		$c_page('home', 'event_updates', 'get_online_users', '', function(r,rt) {
-			pscript.online_users = r.message;
-			me.make_list();
-		})
-	}
-}
-
-// ----------------------
-
-MemberList.prototype.make_search = function() {
-	var me = this;
-	this.search_area = $a(this.list_wrapper, 'div', '', {textAlign:'center', padding:'8px'});
-	this.search_inp = $a(this.search_area, 'input', '', {fontSize:'14px', width:'80%'});
-	this.search_inp.set_empty = function() {
-		this.value = 'Search'; $fg(this,'#888');
-	}
-	this.search_inp.onfocus = function() {
-		$fg(this,'#000');
-		if(this.value=='Search')this.value = '';
-	}
-	this.search_inp.onchange = function() {
-		if(!this.value) this.set_empty();
-	}
-	this.search_inp.set_empty();
-}
-
-// ----------------------
-
-MemberList.prototype.make_list = function() {
-	var me = this;
-	this.lst_area = $a(this.list_wrapper, 'div');
-
-	this.lst = new wn.widgets.Listing({
-		parent: this.lst_area,
-		as_dict: 1,
-		get_query: function() {
-			var c1 = '';
-			if(me.search_inp.value && me.search_inp.value != 'Search') {
-				var c1 = repl(' AND (first_name LIKE "%(txt)s" OR last_name LIKE "%(txt)s" OR name LIKE "%(txt)s")', {txt:'%' + me.search_inp.value + '%'});
-			}
-
-			return repl("SELECT name, \
-				ifnull(concat_ws(' ', first_name, last_name),'') as full_name, \
-				gender, file_list, enabled \
-				FROM tabProfile \
-				WHERE docstatus != 2 \
-				AND name not in ('Guest','Administrator') %(cond)s \
-				ORDER BY name asc",{cond:c1});			
-		},
-		render_row: function(parent, data) {
-			me.member_items[data.name] = new MemberItem(parent, data, me);			
-		}
-	});	
-	this.lst.run();
-}
-
-
-/*
-Create / show profile
-*/
-MemberList.prototype.show_profile = function(uid, member_item) {
-	$dh(this.no_user_selected);
-
-	// if not exists, create
-	if(!this.profiles[uid]) {
-		if(!member_item) member_item = this.member_items[uid];
-		this.profiles[uid] = new MemberProfile(this.profile_wrapper, uid, member_item);		
-	}
-
-	// hide current
-	if(this.cur_profile)
-		this.cur_profile.hide();
-	
-	// show this
-	this.profiles[uid].show();
-	this.cur_profile = this.profiles[uid];
-}
-
-
-// Member Item
-// List item of all profiles
-// on the left hand sidebar of the page
-
-MemberItem = function(parent, det, mlist) {
-	var me = this;
-	this.det = det;
-	this.wrapper = $a(parent, 'div');
-	this.enabled = det.enabled;
-	
-	this.tab = make_table(this.wrapper, 1,2,'100%', ['20%', '70%'], {padding:'4px', overflow:'hidden'});
-	$y(this.tab, {tableLayout:'fixed', borderCollapse:'collapse'})
-	
-	this.is_online = function() {
-		for(var i=0;i<pscript.online_users.length;i++) {
-			if(det.name==pscript.online_users[i][0]) return true;
-		}
-	}
-	
-	this.refresh_name_link = function() {
-		// online / offline
-		$fg(this.name_link,'#00B'); 
-		if(!this.is_online())
-			$fg(this.name_link,'#444');
-		if(!this.enabled)
-			$fg(this.name_link,'#777'); 
-
-	}
-	
-	this.set_image = function() {
-		// image
-		this.img = $a($td(this.tab,0,0),'img','',{width:'41px'});
-		set_user_img(this.img, det.name, null, 
-			(det.file_list ? det.file_list.split(NEWLINE)[0].split(',')[1] : 
-				('no_img_' + (det.gender=='Female' ? 'f' : 'm'))));
-	}
-	
-	// set other details like email id, name etc
-	this.set_details = function() {
-		// name
-		this.fullname = det.full_name || det.name;
-		var div = $a($td(this.tab, 0, 1), 'div', '', {fontWeight: 'bold',padding:'2px 0px'});
-		this.name_link = $a(div,'span','link_type');
-		this.name_link.innerHTML = crop(this.fullname, 15);
-		this.name_link.onclick = function() {
-			mlist.show_profile(me.det.name, me);
-		}
-
-		// "you" tag
-		if(user==det.name) {
-			var span = $a(div,'span','',{padding:'2px' ,marginLeft:'3px'});
-			span.innerHTML = '(You)'
-		}
-
-		// email id
-		var div = $a($td(this.tab, 0, 1), 'div', '', {color: '#777', fontSize:'11px'});
-		div.innerHTML = det.name;
-
-		// working img
-		var div = $a($td(this.tab, 0, 1), 'div');
-		this.working_img = $a(div,'img','',{display:'none'}); 
-		this.working_img.src = 'lib/images/ui/button-load.gif';
-		
-		this.refresh_name_link();
-		
-	}
-	
-	this.select = function() {
-		$(this.wrapper).addClass('my-company-member-item-selected');
-	}
-
-	this.deselect = function() {
-		$(this.wrapper).removeClass('my-company-member-item-selected');		
-	}
-	
-	this.set_image();
-	this.set_details();
-	
-	// show initial
-	if(user==det.name) me.name_link.onclick();
-}
-
-
-//
-// Member Profile
-// shows profile with Photo and conversation
-//
-MemberProfile = function(parent, uid, member_item) {
-	this.parent = parent;
-	this.uid = uid;
-	this.member_item = member_item;
-	var me = this;
-
-	// make the UI 
-	this.make = function() {
-		this.wrapper = $a(this.parent, 'div', '', {display:'none'});
-		this.tab = make_table(this.wrapper, 3, 2,'100%',['120px',null],{padding:'3px'});
-		$y(this.tab, {tableLayout: 'fixed'});
-		
-		this.make_image_and_bio();
-		this.make_toolbar();
-		this.make_message_list();
-	}
-	
-	// create elements
-	this.make_image_and_bio = function() {
-		var rh = $td(this.tab, 0, 1);
-		
-		// image
-		this.img = $a($td(this.tab, 0, 0), 'img','',{width:'80px', marginLeft:'10px'});
-		set_user_img(this.img, this.uid);
-
-		// details
-		this.name_area = $a(rh, 'div' , 'my-company-name-head');
-		var div = $a(rh, 'div', 'my-company-email');
-		this.email_area = $a(div, 'span');
-		this.online_status_area = $a(div, 'span', 'my-company-online-status');
-		this.bio_area = $a(rh, 'div', 'my-company-bio');	
-		this.toolbar_area = $a(rh, 'div', 'my-company-toolbar');	
-		this.status_span = $a(this.toolbar_area, 'span', '', {marginRight:'7px'});
-		
-	}
-	
-	// the toolbar
-	this.make_toolbar = function() {
-		if(has_common(['Administrator','System Manager'],user_roles)) {
-			var roles_btn = $btn(this.toolbar_area, 'Set Roles', function() { me.show_roles() },{marginRight:'3px'});
-			var delete_btn = $btn(this.toolbar_area, 'Delete User', function() { me.delete_user(); },{marginRight:'3px'});
-			var ip_btn = $btn(this.toolbar_area, 'Securty Settings', function() { me.set_security(); },{marginRight:'3px'});
-		}
-	}
-	
-	// create the role object
-	this.show_roles = function() {
-		if(!this.role_object)
-			this.role_object = new RoleObj(this.uid);
-		this.role_object.dialog.show();
-	}
-	
-	// show securty settings
-	this.set_security = function() {
-		var sd = new wn.widgets.Dialog({
-			title: 'Set User Security',
-			width: 500,
-			fields: [
-				{
-					label:'IP Address', 
-					description: 'Restrict user login by IP address, partial ips (111.111.111), \
-					multiple addresses (separated by commas) allowed', 
-					fieldname:'restrict_ip', 
-					fieldtype:'Data'
-				},
-				
-				{
-					label:'Login After',
-					description: 'User can only login after this hour (0-24)',
-					fieldtype: 'Int',
-					fieldname: 'login_after'
-				},
-
-				{
-					label:'Login Before',
-					description: 'User can only login before this hour (0-24)',
-					fieldtype: 'Int',
-					fieldname: 'login_before'
-				},
-				
-				{
-					label:'New Password',
-					description: 'Update the current user password',
-					fieldtype: 'Data',
-					fieldname: 'new_password'
-				},
-
-				{
-					label:'Update',
-					fieldtype:'Button',
-					fieldname:'update'
-				}
-			]
-		});
-
-		me.sec_dialog = sd
-
-		sd.onshow = function() {
-			me.sec_dialog.set_values({
-				restrict_ip: me.profile.restrict_ip || '',
-				login_before: me.profile.login_before || '',
-				login_after: me.profile.login_after || '',
-				new_password: ''
-			});
-		};
-		sd.fields_dict.update.input.onclick = function() {
-			var btn = this;
-			this.set_working();
-			var args = me.sec_dialog.get_values();
-			args.user = me.profile.name;
-
-			if (args.new_password) {
-				var pass_d = new wn.widgets.Dialog({
-					title: 'Your Password',
-					width: 300,
-					fields: [
-						{
-							label: 'Please Enter <b style="color: black">Your Password</b>',
-							description: "Your password is required to update the concerned user's password",
-							fieldtype: 'Password',
-							fieldname: 'sys_admin_pwd',
-							reqd: 1		
-						},
-
-						{
-							label: 'Continue',
-							fieldtype: 'Button',
-							fieldname: 'continue'
-						}
-					]
-				});
-
-				pass_d.fields_dict.continue.input.onclick = function() {
-					btn.pwd_dialog.hide();					
-					args.sys_admin_pwd = btn.pwd_dialog.get_values().sys_admin_pwd;					
-					btn.set_working();					
-					me.update_security(args);
-					btn.done_working();
-				}
-
-				pass_d.show();
-				btn.pwd_dialog = pass_d;
-				btn.done_working();
-			} else {
-				btn.done_working();
-				me.update_security(args);
-			}			
-		};
-		sd.show();		
-	}
-
-	this.update_security = function(args) {
-		$c_page('home', 'my_company', 'update_security', JSON.stringify(args), function(r,rt) {
-			if(r.exc) {
-				msgprint(r.exc);				
-				return;
-			}
-			me.sec_dialog.hide();
-			$.extend(me.profile, me.sec_dialog.get_values());
-		});
-	}
-	
-	// delete user
-	// create a confirm dialog and call server method
-	this.delete_user = function() {
-		var cp = wn.control_panel;
-
-		var d = new Dialog(400,200,'Delete User');
-		d.make_body([
-			['HTML','','Do you really want to remove '+this.uid+' from system?'],['Button','Delete']
-		]);
-		d.onshow = function() {
-			this.clear_inputs();
-		}
-
-		d.widgets['Delete'].onclick = function() {
-			this.set_working();
-
-			var callback = function(r,rt) {
-				d.hide();
-				if(r.exc) {
-					msgprint(r.exc);
-					return;
-				}
-				pscript.myc_refresh()
-				msgprint("User Deleted Successfully");
-			}
-			$c_page('home', 'my_company', 'delete_user', {'user': me.uid}, callback);
-		}
-		d.show();
-	}
-
-	// set enabled
-	this.set_enable_button = function() {
-		var me = this;
-		var act = this.profile.enabled ? 'Disable' : 'Enable';
-
-		if(this.status_button) {
-			this.status_button.innerHTML = act;	
-		} else {	
-			// make the button
-			this.status_button = $btn(this.toolbar_area, act, function() {
-				var callback = function(r,rt) {
-					locals['Profile'][me.profile.name].enabled = cint(r.message);
-					me.status_button.done_working();
-					me.refresh_enable_disable();
-				}
-				this.set_working();
-				$c_page('home','my_company', this.innerHTML.toLowerCase()+'_profile',me.profile.name, callback);
-			}, null, null, 1);
-		}
-		if(this.uid==user) $dh(this.status_button); else $di(this.status_button);
-	}
-	
-	// render the details of the user from Profile
-	this.render = function() {
-		this.profile = locals['Profile'][uid];
-		scroll(0, 0);
-
-		// name
-		if(cstr(this.profile.first_name) || cstr(this.profile.last_name)) {
-			this.fullname = cstr(this.profile.first_name) + ' ' + cstr(this.profile.last_name);
-		} else {
-			this.fullname = this.profile.name;
-		}
-		this.name_area.innerHTML = this.fullname;
-		
-		// email
-		this.email_area.innerHTML = this.profile.name;
-
-		// online / offline
-		this.online_status_area.innerHTML = (this.member_item.is_online() ? '(Online)' : '(Offline)')
-		if(this.member_item.is_online()) {
-			$y(this.online_status_area, {color:'green'});
-		}
-
-		// refresh enable / disabled
-		this.refresh_enable_disable();
-
-		// designation
-		this.bio_area.innerHTML = this.profile.designation ? ('Designation: ' + cstr(this.profile.designation) + '<br>') : '';
-		this.bio_area.innerHTML += this.profile.bio ? this.profile.bio : 'No bio';
-		
-		new MemberConversation(this.wrapper, this.profile.name, this.fullname);
-	}
-	
-	// refresh enable / disable
-	this.refresh_enable_disable = function() {
-		this.profile = locals['Profile'][this.uid]
-
-		if(!this.profile.enabled) {
-			$fg(this.name_area,'#999');
-		} else {
-			$fg(this.name_area,'#000');
-		}
-
-		this.member_item.enabled = this.profile.enabled;
-		this.member_item.refresh_name_link();
-		
-		this.status_span.innerHTML = this.profile.enabled ? 'Enabled' : 'Disabled';
-
-		// set styles and buttons
-		if(has_common(['Administrator','System Manager'],user_roles)) {
-			this.set_enable_button();
-		}		
-	}
-	
-	// Load user profile (if not loaded)
-	this.load = function() {
-		if(locals['Profile'] && locals['Profile'][uid]) {
-			this.render();
-			return;
-		}
-		var callback = function(r,rt) {
-			$dh(me.member_item.working_img);
-			$ds(me.wrapper);
-			me.loading = 0;
-			me.render();
-		}
-		$ds(this.member_item.working_img);
-		$dh(this.wrapper);
-		this.loading = 1;
-		$c('webnotes.widgets.form.load.getdoc', {'name':this.uid, 'doctype':'Profile', 'user':user}, callback);	// onload		
-	}
-	
-	// show / hide
-	this.show = function() {
-		if(!this.loading)$ds(this.wrapper);
-
-		// select profile
-		this.member_item.select();
-	}
-	this.hide = function() {
-		$dh(this.wrapper);
-
-		// select profile
-		this.member_item.deselect();
-	}
-	
-	this.make_message_list = function() {
-		
-	}
-	
-	this.make();
-	this.load();
-}
-
-
-
-
-// Member conversation
-// Between the current user and the displayed profile
-// or if same, then the conversation with all other
-// profiles
-MemberConversation = function(parent, uid, fullname) {
-	var me = this;
-	this.wrapper = $a(parent, 'div', 'my-company-conversation');
-	this.fullname = fullname;
-	this.make = function() {
-		if(user!=uid) {
-			this.make_input();			
-		}
-		this.make_list();
-		
-		// set all messages
-		// as "read" (docstatus = 0)
-		if(user==uid) {
-			$c_page('home', 'my_company', 'set_read_all_messages', '', function(r,rt) { });	
-		}
-	}
-	
-	this.make_input = function() {
-		this.input_wrapper = $a(this.wrapper, 'div', 'my-company-input-wrapper');
-		var tab = make_table(this.input_wrapper, 1, 2, '100%', ['64%','36%'], {padding: '3px'})
-		this.input = $a($td(tab,0,0), 'textarea');
-
-		// button
-		var div = $a(this.input_wrapper, 'div');
-		this.post = $btn(div, 'Post'.bold(), function() { me.post_message(); }, {margin:'0px 13px 0px 3px'})
-		this.post.disabled = true;
-		
-		this.input.onkeyup = this.input.onchange = function() {
-			if(this.value) {
-				me.post.disabled = false;
-			} else {
-				me.post.disabled = true;
-			}
-		}
-
-		// notification check
-		this.notify_check = $a_input(div, 'checkbox', null);
-		$a(div, 'span', '', {marginLeft:'3px'}, 'Notify ' + fullname + ' by email')
-	}
-	
-	this.post_message = function() {
-		if(me.input.value==$(me.input).attr('default_text')) {
-			msgprint('Please write a message first!'); return;
-		}
-		this.post.set_working();
-		$c_page('home', 'my_company', 'post_comment', {
-			uid: uid,
-			comment: $(me.input).val(),
-			notify: me.notify_check.checked ? 1 : 0
-		}, function(r,rt) {
-			$(me.input).val("").blur();
-			me.post.done_working();
-			if(r.exc) { msgprint(r.exc); return; }
-			me.notify_check.checked = false;
-			me.refresh();
-		})
-	}
-	
-	this.make_list = function() {
-		this.lst_area = $a(this.wrapper, 'div', 'my-company-conversation', {padding:'7px 13px'});
-
-		if(user==uid) {
-			this.my_messages_box = $a(this.lst_area, 'div', 'my-company-conversation-head', {marginBottom:'7px'}, 'Messages by everyone to me<br>To send a message, click on the user on the left')
-		}
-		
-		this.lst = new wn.widgets.Listing({
-			parent: this.lst_area,
-			as_dict: 1,
-			no_result_message: (user==uid 
-				? 'No messages by anyone yet' 
-				: 'No messages yet. To start a conversation post a new message'),
-
-			get_query: function() {
-				if(uid==user) {
-					return repl("SELECT comment, owner, comment_docname, creation, docstatus " +
-					"FROM `tabComment Widget Record` "+
-					"WHERE comment_doctype='My Company' " +
-					"AND comment_docname='%(user)s' " +
-					"ORDER BY creation DESC ", {user:user});
-
-				} else {
-					return repl("SELECT comment, owner, comment_docname, creation, docstatus " +
-					"FROM `tabComment Widget Record` "+
-					"WHERE comment_doctype='My Company' " +
-					"AND ((owner='%(user)s' AND comment_docname='%(uid)s') " +
-					"OR (owner='%(uid)s' AND comment_docname='%(user)s')) " +
-					"ORDER BY creation DESC ", {uid:uid, user:user});
-
-				}
-			},
-			render_row: function(parent, data) {
-				new MemberCoversationComment(parent, data, me);
-			},
-			
-		})
-		this.refresh();
-	}
-	
-	this.refresh = function() {
-		me.lst.run()
-	}
-	
-	this.make();
-}
-
-MemberCoversationComment = function(cell, det, conv) {
-	var me = this;
-	this.det = det;
-	this.wrapper = $a(cell, 'div', 'my-company-comment-wrapper');
-	this.comment = $a(this.wrapper, 'div', 'my-company-comment');
-
-	this.user = $a(this.comment, 'span', 'link_type', {fontWeight:'bold'}, pscript.get_fullname(det.owner));
-	this.user.onclick = function() {
-		wn.pages['My Company'].member_list.show_profile(me.det.owner);
-	}
-
-	var st = (!det.docstatus ? {fontWeight: 'bold'} : null);
-	this.msg = $a(this.comment, 'span', 'social', st, ': ' + det.comment);
-
-	if(det.full_name==user) {
-		$y(this.wrapper, {backgroundColor: '#D9D9F3'});
-	}
-	this.timestamp = $a(this.wrapper, 'div', 'my-company-timestamp', '', comment_when(det.creation));
-}
-
-
-
-
-
-
-
diff --git a/erpnext/home/page/my_company/my_company.py b/erpnext/home/page/my_company/my_company.py
deleted file mode 100644
index d3a7bc7..0000000
--- a/erpnext/home/page/my_company/my_company.py
+++ /dev/null
@@ -1,209 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import webnotes
-
-from webnotes.utils import cint, load_json, cstr
-from webnotes.model.doc import Document
-
-try: import json
-except: import simplejson as json
-
-@webnotes.whitelist()
-def get_account_settings_url(arg=''):
-	import server_tools.gateway_utils
-	return server_tools.gateway_utils.get_account_settings_url()
-
-@webnotes.whitelist()
-def get_max_users(arg=''):
-	from server_tools.gateway_utils import get_max_users_gateway
-	return {
-		'max_users': get_max_users_gateway(),
-		'enabled': cint(webnotes.conn.sql("select count(*) from tabProfile where ifnull(enabled,0)=1 and name not in ('Administrator', 'Guest')")[0][0])
-	}
-
-@webnotes.whitelist()
-def enable_profile(arg=''):
-	webnotes.conn.sql("update tabProfile set enabled=1 where name=%s", arg)
-	return 1
-		
-@webnotes.whitelist()
-def disable_profile(arg=''):
-	if arg=='Administrator':
-		return 'Cannot disable Administrator'
-
-	webnotes.conn.sql("update tabProfile set enabled=0 where name=%s", arg)
-	webnotes.login_manager.logout(user=arg)
-	return 0
-
-@webnotes.whitelist()
-def delete_user(args):
-	args = json.loads(args)
-	webnotes.conn.sql("update tabProfile set enabled=0, docstatus=2 where name=%s", args['user'])
-	# erpnext-saas
-	if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')):
-		from server_tools.gateway_utils import remove_user_gateway
-		remove_user_gateway(args['user'])
-	
-	webnotes.login_manager.logout(user=args['user'])
-
-
-@webnotes.whitelist()
-def add_user(args):
-	args = json.loads(args)
-	# erpnext-saas
-	if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')):
-		from server_tools.gateway_utils import add_user_gateway
-		add_user_gateway(args)
-	
-	add_profile(args)
-	
-@webnotes.whitelist()
-def add_profile(args):
-	from webnotes.utils import validate_email_add, now
-	email = args['user']
-			
-	sql = webnotes.conn.sql
-	
-	if not email:
-		email = webnotes.form_dict.get('user')
-	if not validate_email_add(email):
-		raise Exception
-		return 'Invalid Email Id'
-	
-	if sql("select name from tabProfile where name = %s", email):
-		# exists, enable it
-		sql("update tabProfile set enabled = 1, docstatus=0 where name = %s", email)
-		webnotes.msgprint('Profile exists, enabled it with new password')
-	else:
-		# does not exist, create it!
-		pr = Document('Profile')
-		pr.name = email
-		pr.email = email
-		pr.first_name = args.get('first_name')
-		pr.last_name = args.get('last_name')
-		pr.enabled = 1
-		pr.user_type = 'System User'
-		pr.save(1)
-
-	if args.get('password'):
-		sql("""
-			UPDATE tabProfile 
-			SET password = PASSWORD(%s), modified = %s
-			WHERE name = %s""", (args.get('password'), now, email))
-
-	send_welcome_mail(email, args)
-
-@webnotes.whitelist()
-def send_welcome_mail(email, args):
-	"""send welcome mail to user with password and login url"""
-	pr = Document('Profile', email)
-	from webnotes.utils.email_lib import sendmail_md
-	args.update({
-		'company': webnotes.conn.get_default('company'),
-		'password': args.get('password'),
-		'account_url': webnotes.conn.get_default('account_url')
-	})
-	if not args.get('last_name'): args['last_name'] = ''
-	sendmail_md(pr.email, subject="Welcome to ERPNext", msg=welcome_txt % args, from_defs=1)
-
-#
-# post comment
-#
-@webnotes.whitelist()
-def post_comment(arg):
-	arg = load_json(arg)
-	
-	from webnotes.model.doc import Document
-	d = Document('Comment Widget Record')
-	d.comment_doctype = 'My Company'
-	d.comment_docname = arg['uid'] # to
-	d.owner = webnotes.user.name
-	d.comment = arg['comment']
-	d.save(1)
-	
-	if cint(arg.get('notify')):
-		fn = webnotes.conn.sql('select first_name, last_name from tabProfile where name=%s', webnotes.user.name)[0]
-		if fn[0] or f[1]:
-			fn = cstr(fn[0]) + (fn[0] and ' ' or '') + cstr(fn[1])
-		else:
-			fn = webnotes.user.name
-
-		message = '''A new comment has been posted on your page by %s:
-		
-		<b>Comment:</b> %s
-		
-		To answer, please login to your erpnext account!
-
-		<a href='https://signin.erpnext.com'>https://signin.erpnext.com</a>
-		''' % (fn, arg['comment'])
-		
-		from webnotes.model.code import get_obj
-		note = get_obj('Notification Control')
-		email_msg = note.prepare_message({
-			'type': 'New Comment',
-			'message': message
-		})
-
-		sender = webnotes.user.name!='Administrator' and webnotes.user.name or 'support+admin_post@erpnext.com'
-		
-		from webnotes.utils.email_lib import sendmail
-		sendmail([arg['uid']], sender, email_msg, fn + ' has posted a new comment')
-	
-#
-# update read messages
-#
-@webnotes.whitelist()
-def set_read_all_messages(arg=''):
-	webnotes.conn.sql("""UPDATE `tabComment Widget Record`
-	SET docstatus = 1
-	WHERE comment_doctype = 'My Company'
-	AND comment_docname = %s
-	""", webnotes.user.name)
-
-@webnotes.whitelist()
-def update_security(args=''):
-	import json
-	args = json.loads(args)
-	webnotes.conn.set_value('Profile', args['user'], 'restrict_ip', args.get('restrict_ip'))
-	webnotes.conn.set_value('Profile', args['user'], 'login_after', args.get('login_after'))
-	webnotes.conn.set_value('Profile', args['user'], 'login_before', args.get('login_before'))
-
-	if 'new_password' in args:
-		if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')):
-			import server_tools.gateway_utils
-			res = server_tools.gateway_utils.change_password('', args['new_password'], args['user'], args['sys_admin_pwd'])
-			if 'Traceback' not in res['message']:
-				webnotes.msgprint(res['message'])
-		webnotes.conn.sql("update tabProfile set password=password(%s) where name=%s", (args['new_password'], args['user']))
-	else: webnotes.msgprint('Settings Updated')
-
-welcome_txt = """
-## %(company)s
-
-Dear %(first_name)s %(last_name)s
-
-Welcome!
-
-A new account has been created for you, here are your details:
-
-login-id: %(user)s
-password: %(password)s
-
-To login to your new ERPNext account, please go to:
-
-%(account_url)s
-"""
diff --git a/erpnext/home/page/my_company/my_company.txt b/erpnext/home/page/my_company/my_company.txt
deleted file mode 100644
index 3183315..0000000
--- a/erpnext/home/page/my_company/my_company.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-# Page, My Company
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-12-14 10:23:19',
-		'docstatus': 0,
-		'modified': '2010-12-27 17:44:15',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Page
-	{
-		'doctype': 'Page',
-		'module': 'Home',
-		'name': '__common__',
-		'page_name': 'My Company',
-		'show_in_menu': 1,
-		'standard': 'Yes'
-	},
-
-	# These values are common for all Page Role
-	{
-		'doctype': 'Page Role',
-		'name': '__common__',
-		'parent': 'My Company',
-		'parentfield': 'roles',
-		'parenttype': 'Page'
-	},
-
-	# Page, My Company
-	{
-		'doctype': 'Page',
-		'name': 'My Company'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 1,
-		'role': 'Administrator'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 2,
-		'role': 'All'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/page/profile_settings/profile_settings.py b/erpnext/home/page/profile_settings/profile_settings.py
index fb633fd..9b9f890 100644
--- a/erpnext/home/page/profile_settings/profile_settings.py
+++ b/erpnext/home/page/profile_settings/profile_settings.py
@@ -27,8 +27,11 @@
 	
 	if not webnotes.conn.sql('select name from tabProfile where name=%s and password=password(%s)', (webnotes.session['user'], arg['old_password'])):
 		webnotes.msgprint('Old password is not correct', raise_exception=1)
-			
-	if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')):
+	
+	import webnotes.defs
+	from webnotes.utils import cint
+	if hasattr(webnotes.defs, 'sync_with_gateway') and \
+			cint(webnotes.defs.sync_with_gateway) or 0:	
 		import server_tools.gateway_utils
 		webnotes.msgprint(server_tools.gateway_utils.change_password(arg['old_password'], arg['new_password'])['message'])
 
diff --git a/erpnext/home/search_criteria/__init__.py b/erpnext/home/search_criteria/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/bills_to_be_paid/__init__.py b/erpnext/home/search_criteria/bills_to_be_paid/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/bills_to_be_paid/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt b/erpnext/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt
deleted file mode 100644
index d3acd84..0000000
--- a/erpnext/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, bills-to_be_paid
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:26:48',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': '`tabPayable Voucher`.outstanding_amount!=0\n`tabPayable Voucher`.docstatus=1',
-		'columns': 'Payable Voucher\x01ID,Payable Voucher\x01Voucher Date,Payable Voucher\x01Due Date,Payable Voucher\x01Credit To,Payable Voucher\x01Bill Date,Payable Voucher\x01Outstanding Amount',
-		'criteria_name': 'Bills-To be paid',
-		'doc_type': 'Payable Voucher',
-		'doctype': 'Search Criteria',
-		'filters': "{'Payable Voucher\x01Submitted':1,'Payable Voucher\x01Is Opening':'','Payable Voucher\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabPayable Voucher`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, bills-to_be_paid
-	{
-		'doctype': 'Search Criteria',
-		'name': 'bills-to_be_paid'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/bills_to_be_submitted/__init__.py b/erpnext/home/search_criteria/bills_to_be_submitted/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/bills_to_be_submitted/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt b/erpnext/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt
deleted file mode 100644
index 0849dbe..0000000
--- a/erpnext/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, bills-to_be_submitted
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-03 12:24:43',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Payable Voucher\x01ID,Payable Voucher\x01Voucher Date,Payable Voucher\x01Due Date,Payable Voucher\x01Credit To,Payable Voucher\x01Bill No,Payable Voucher\x01Bill Date,Payable Voucher\x01Outstanding Amount',
-		'criteria_name': 'Bills-To be submitted',
-		'doc_type': 'Payable Voucher',
-		'doctype': 'Search Criteria',
-		'filters': "{'Payable Voucher\x01Saved':1,'Payable Voucher\x01Is Opening':'','Payable Voucher\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabPayable Voucher`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, bills-to_be_submitted
-	{
-		'doctype': 'Search Criteria',
-		'name': 'bills-to_be_submitted'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/delivery_note_to_be_billed/__init__.py b/erpnext/home/search_criteria/delivery_note_to_be_billed/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/delivery_note_to_be_billed/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt b/erpnext/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt
deleted file mode 100644
index d96981c..0000000
--- a/erpnext/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, delivery_note-to_be_billed
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:24:34',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': 'ifnull(`tabDelivery Note`.per_billed, 0) < 100',
-		'columns': 'Delivery Note\x01ID,Delivery Note\x01Owner,Delivery Note\x01Customer Name,Delivery Note\x01% Billed,Delivery Note\x01Company',
-		'criteria_name': 'Delivery Note-To be billed',
-		'doc_type': 'Delivery Note',
-		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'Submitted','Delivery Note\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabDelivery Note`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, delivery_note-to_be_billed
-	{
-		'doctype': 'Search Criteria',
-		'name': 'delivery_note-to_be_billed'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/delivery_note_to_be_submitted/__init__.py b/erpnext/home/search_criteria/delivery_note_to_be_submitted/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/delivery_note_to_be_submitted/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt b/erpnext/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt
deleted file mode 100644
index 85fd748..0000000
--- a/erpnext/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, delivery_note-to_be_submitted
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:17:58',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Delivery Note\x01ID,Delivery Note\x01Owner,Delivery Note\x01Customer Name,Delivery Note\x01Posting Date,Delivery Note\x01Company',
-		'criteria_name': 'Delivery Note-To be submitted',
-		'doc_type': 'Delivery Note',
-		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Saved':1,'Delivery Note\x01Status':'Draft','Delivery Note\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabDelivery Note`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, delivery_note-to_be_submitted
-	{
-		'doctype': 'Search Criteria',
-		'name': 'delivery_note-to_be_submitted'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py b/erpnext/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt b/erpnext/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt
deleted file mode 100644
index 4e62558..0000000
--- a/erpnext/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-# Search Criteria, enquiry-quotations_to_be_sent
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-07-16 13:29:58',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': '`tabQuotation`.enq_no!=`tabEnquiry`.name\n',
-		'add_tab': 'tabQuotation',
-		'columns': 'Enquiry\x01ID,Enquiry\x01Owner',
-		'criteria_name': 'Enquiry-Quotations to be sent',
-		'doc_type': 'Enquiry',
-		'doctype': 'Search Criteria',
-		'filters': '{}',
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabEnquiry`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, enquiry-quotations_to_be_sent
-	{
-		'doctype': 'Search Criteria',
-		'name': 'enquiry-quotations_to_be_sent'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/enquiry_to_follow_up/__init__.py b/erpnext/home/search_criteria/enquiry_to_follow_up/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/enquiry_to_follow_up/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js b/erpnext/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js
deleted file mode 100644
index 16c3ec7..0000000
--- a/erpnext/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-
-  this.filter_fields_dict['Enquiry'+FILTER_SEP +'Company'].df['report_default'] = sys_defaults.company;
-  this.filter_fields_dict['Enquiry'+FILTER_SEP +'Fiscal Year'].df['report_default'] = sys_defaults.fiscal_year;
-}
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt b/erpnext/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt
deleted file mode 100644
index 504e7f2..0000000
--- a/erpnext/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, enquiry-to_follow_up
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-01 15:48:09',
-		'docstatus': 0,
-		'modified': '2010-08-30 12:08:00',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "`tabEnquiry`.name=`tabQuotation`.enq_no\n`tabEnquiry`.docstatus=1\n`tabQuotation`.status='Submitted'",
-		'columns': 'Enquiry\x01ID,Enquiry\x01Owner,Enquiry\x01Company,Enquiry\x01Fiscal Year',
-		'criteria_name': 'Enquiry-To follow up',
-		'doc_type': 'Enquiry',
-		'doctype': 'Search Criteria',
-		'filters': "{'Enquiry\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabEnquiry`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, enquiry-to_follow_up
-	{
-		'doctype': 'Search Criteria',
-		'name': 'enquiry-to_follow_up'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/indent_purchase_order_to_be_made/__init__.py b/erpnext/home/search_criteria/indent_purchase_order_to_be_made/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/indent_purchase_order_to_be_made/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt b/erpnext/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt
deleted file mode 100644
index be45e27..0000000
--- a/erpnext/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, indent-purchase_order_to_be_made
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:37:18',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "`tabIndent`.status='Submitted'\nifnull(`tabIndent`.per_ordered,0)<100",
-		'columns': 'Indent\x01ID,Indent\x01Indent Date,Indent\x01Requested By,Indent\x01Owner,Indent\x01% Ordered',
-		'criteria_name': 'Indent-Purchase Order to be made',
-		'doc_type': 'Indent',
-		'doctype': 'Search Criteria',
-		'filters': "{'Indent\x01Submitted':1,'Indent\x01Status':'Submitted','Indent\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabIndent`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, indent-purchase_order_to_be_made
-	{
-		'doctype': 'Search Criteria',
-		'name': 'indent-purchase_order_to_be_made'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/indent_to_be_submitted/__init__.py b/erpnext/home/search_criteria/indent_to_be_submitted/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/indent_to_be_submitted/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt b/erpnext/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt
deleted file mode 100644
index 7cacf7d..0000000
--- a/erpnext/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, indent-to_be_submitted
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:38:49',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "`tabIndent`.status='Draft'",
-		'columns': 'Indent\x01ID,Indent\x01Owner,Indent\x01Indent Date,Indent\x01Remarks',
-		'criteria_name': 'Indent-To be submitted',
-		'doc_type': 'Indent',
-		'doctype': 'Search Criteria',
-		'filters': "{'Indent\x01Saved':1,'Indent\x01Status':'Draft','Indent\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabIndent`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, indent-to_be_submitted
-	{
-		'doctype': 'Search Criteria',
-		'name': 'indent-to_be_submitted'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/invoices_overdue/invoices_overdue.txt b/erpnext/home/search_criteria/invoices_overdue/invoices_overdue.txt
deleted file mode 100644
index 74716c7..0000000
--- a/erpnext/home/search_criteria/invoices_overdue/invoices_overdue.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, invoices-overdue
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-04-30 17:08:52',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': '`tabReceivable Voucher`.due_date<now()\n`tabReceivable Voucher`.outstanding_amount!=0\n`tabReceivable Voucher`.docstatus=1',
-		'columns': 'Receivable Voucher\x01ID,Receivable Voucher\x01Debit To,Receivable Voucher\x01Voucher Date,Receivable Voucher\x01Due Date,Receivable Voucher\x01Outstanding Amount',
-		'criteria_name': 'Invoices-Overdue',
-		'doc_type': 'Receivable Voucher',
-		'doctype': 'Search Criteria',
-		'filters': "{'Receivable Voucher\x01Saved':1,'Receivable Voucher\x01Submitted':1,'Receivable Voucher\x01Is Opening':'','Receivable Voucher\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabReceivable Voucher`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, invoices-overdue
-	{
-		'doctype': 'Search Criteria',
-		'name': 'invoices-overdue'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/invoices_to_be_submitted/__init__.py b/erpnext/home/search_criteria/invoices_to_be_submitted/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/invoices_to_be_submitted/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt b/erpnext/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt
deleted file mode 100644
index dc4f5e5..0000000
--- a/erpnext/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, invoices-to_be_submitted
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-05-03 10:18:56',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Receivable Voucher\x01ID,Receivable Voucher\x01Debit To,Receivable Voucher\x01Voucher Date,Receivable Voucher\x01Due Date',
-		'criteria_name': 'Invoices-To be submitted',
-		'doc_type': 'Receivable Voucher',
-		'doctype': 'Search Criteria',
-		'filters': "{'Receivable Voucher\x01Saved':1,'Receivable Voucher\x01Is Opening':'','Receivable Voucher\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabReceivable Voucher`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, invoices-to_be_submitted
-	{
-		'doctype': 'Search Criteria',
-		'name': 'invoices-to_be_submitted'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/invoices_to_receive_payment/__init__.py b/erpnext/home/search_criteria/invoices_to_receive_payment/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/invoices_to_receive_payment/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt b/erpnext/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt
deleted file mode 100644
index a1ce7ef..0000000
--- a/erpnext/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, invoices-to_receive_payment
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-04-30 16:54:26',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': '`tabReceivable Voucher`.due_date>now() \n`tabReceivable Voucher`.outstanding_amount!=0\n`tabReceivable Voucher`.docstatus=1',
-		'columns': 'Receivable Voucher\x01ID,Receivable Voucher\x01Owner,Receivable Voucher\x01Debit To,Receivable Voucher\x01Voucher Date,Receivable Voucher\x01Due Date,Receivable Voucher\x01Outstanding Amount',
-		'criteria_name': 'Invoices-To receive payment',
-		'doc_type': 'Receivable Voucher',
-		'doctype': 'Search Criteria',
-		'filters': "{'Receivable Voucher\x01Submitted':1,'Receivable Voucher\x01Is Opening':'','Receivable Voucher\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabReceivable Voucher`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, invoices-to_receive_payment
-	{
-		'doctype': 'Search Criteria',
-		'name': 'invoices-to_receive_payment'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt b/erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
deleted file mode 100644
index 0754bf7..0000000
--- a/erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, lead-to_follow_up
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-01 15:48:09',
-		'docstatus': 0,
-		'modified': '2010-08-30 12:01:19',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "`tabLead`.status!='Converted' \n`tabLead`.status!='Lead Lost' \n`tabLead`.status!='Not Interested'",
-		'columns': 'Lead\x01ID,Lead\x01Status,Lead\x01Lead Name,Lead\x01Lead Date,Lead\x01Lead Owner,Lead\x01Next Contact Date',
-		'criteria_name': 'Lead-To follow up',
-		'doc_type': 'Lead',
-		'doctype': 'Search Criteria',
-		'filters': "{'Lead\x01Status':'','Lead\x01Source':'','Lead\x01Expected Month':'','Lead\x01Industry':'','Lead\x01Market Segment':'','Lead\x01Rating':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabLead`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lead-to_follow_up
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lead-to_follow_up'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/purchase_order_to_be_billed/__init__.py b/erpnext/home/search_criteria/purchase_order_to_be_billed/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/purchase_order_to_be_billed/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt b/erpnext/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt
deleted file mode 100644
index 5ed4d3f..0000000
--- a/erpnext/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, purchase_order-to_be_billed
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:31:42',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "ifnull(`tabPurchase Order`.per_billed,0)<100\n`tabPurchase Order`.status='Submitted'",
-		'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01PO Date,Purchase Order\x01Company,Purchase Order\x01Grand Total',
-		'criteria_name': 'Purchase Order-To be billed',
-		'doc_type': 'Purchase Order',
-		'doctype': 'Search Criteria',
-		'filters': "{'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'Submitted','Purchase Order\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabPurchase Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, purchase_order-to_be_billed
-	{
-		'doctype': 'Search Criteria',
-		'name': 'purchase_order-to_be_billed'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/purchase_order_to_be_submitted/__init__.py b/erpnext/home/search_criteria/purchase_order_to_be_submitted/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/purchase_order_to_be_submitted/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt b/erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt
deleted file mode 100644
index 11422b8..0000000
--- a/erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, purchase_order-to_be_submitted
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-03 11:19:23',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01PO Date,Purchase Order\x01Company,Purchase Order\x01Grand Total',
-		'criteria_name': 'Purchase Order-To be submitted',
-		'doc_type': 'Purchase Order',
-		'doctype': 'Search Criteria',
-		'filters': "{'Purchase Order\x01Saved':1,'Purchase Order\x01Submitted':0,'Purchase Order\x01Status':'Draft','Purchase Order\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabPurchase Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, purchase_order-to_be_submitted
-	{
-		'doctype': 'Search Criteria',
-		'name': 'purchase_order-to_be_submitted'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/purchase_order_to_receive_items/__init__.py b/erpnext/home/search_criteria/purchase_order_to_receive_items/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/purchase_order_to_receive_items/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt b/erpnext/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt
deleted file mode 100644
index ab747c7..0000000
--- a/erpnext/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, purchase_order-to_receive_items
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:34:22',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "ifnull(`tabPurchase Order`.per_received,0)<100\n`tabPurchase Order`.status='Submitted'",
-		'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01PO Date,Purchase Order\x01Company,Purchase Order\x01% Received,Purchase Order\x01Grand Total',
-		'criteria_name': 'Purchase Order-To receive items',
-		'doc_type': 'Purchase Order',
-		'doctype': 'Search Criteria',
-		'filters': "{'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'Submitted','Purchase Order\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabPurchase Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, purchase_order-to_receive_items
-	{
-		'doctype': 'Search Criteria',
-		'name': 'purchase_order-to_receive_items'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/sales_order_overdue/__init__.py b/erpnext/home/search_criteria/sales_order_overdue/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/sales_order_overdue/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/sales_order_overdue/sales_order_overdue.txt b/erpnext/home/search_criteria/sales_order_overdue/sales_order_overdue.txt
deleted file mode 100644
index 416ee67..0000000
--- a/erpnext/home/search_criteria/sales_order_overdue/sales_order_overdue.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, sales_order-overdue
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-26 11:52:28',
-		'docstatus': 0,
-		'modified': '2010-08-26 11:52:09',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': '`tabSales Order`.delivery_date<now()\nifnull(`tabSales Order`.per_delivered,0)<100',
-		'columns': 'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Sales Order Date,Sales Order\x01Expected Delivery Date,Sales Order\x01Quotation No,Sales Order\x01Company,Sales Order\x01%  Delivered',
-		'criteria_name': 'Sales Order-Overdue',
-		'doc_type': 'Sales Order',
-		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Submitted':1,'Sales Order\x01Status':'Submitted','Sales Order\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, sales_order-overdue
-	{
-		'doctype': 'Search Criteria',
-		'name': 'sales_order-overdue'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/sales_order_to_be_billed/__init__.py b/erpnext/home/search_criteria/sales_order_to_be_billed/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/sales_order_to_be_billed/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt b/erpnext/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt
deleted file mode 100644
index 3de9f17..0000000
--- a/erpnext/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, sales_order-to_be_billed
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:45:37',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "ifnull(`tabSales Order`.per_billed,0)<100\n`tabSales Order`.status='Submitted'",
-		'columns': 'Sales Order\x01ID,Sales Order\x01Status,Sales Order\x01Quotation No,Sales Order\x01Sales Order Date,Sales Order\x01Expected Delivery Date,Sales Order\x01% Billed,Sales Order\x01Customer',
-		'criteria_name': 'Sales Order-To be billed',
-		'doc_type': 'Sales Order',
-		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Submitted':1,'Sales Order\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, sales_order-to_be_billed
-	{
-		'doctype': 'Search Criteria',
-		'name': 'sales_order-to_be_billed'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/sales_order_to_be_delivered/__init__.py b/erpnext/home/search_criteria/sales_order_to_be_delivered/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/sales_order_to_be_delivered/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt b/erpnext/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt
deleted file mode 100644
index 1018f46..0000000
--- a/erpnext/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, sales_order-to_be_delivered
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:53:29',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "ifnull(`tabSales Order`.per_delivered,0)<100\n`tabSales Order`.status = 'Submitted'\n`tabSales Order`. delivery_date > now()",
-		'columns': 'Sales Order\x01ID,Sales Order\x01Owner,Sales Order\x01Status,Sales Order\x01Customer,Sales Order\x01Sales Order Date,Sales Order\x01Expected Delivery Date,Sales Order\x01Quotation No',
-		'criteria_name': 'Sales Order-To be delivered',
-		'doc_type': 'Sales Order',
-		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 100,
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, sales_order-to_be_delivered
-	{
-		'doctype': 'Search Criteria',
-		'name': 'sales_order-to_be_delivered'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/sales_order_to_be_submitted/__init__.py b/erpnext/home/search_criteria/sales_order_to_be_submitted/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/sales_order_to_be_submitted/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt b/erpnext/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt
deleted file mode 100644
index 9cc5106..0000000
--- a/erpnext/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, sales_order-to_be_submitted
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:47:45',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "`tabSales Order`.status='Draft'",
-		'columns': 'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Sales Order Date,Sales Order\x01Quotation No',
-		'criteria_name': 'Sales Order-To be submitted',
-		'doc_type': 'Sales Order',
-		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 100,
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, sales_order-to_be_submitted
-	{
-		'doctype': 'Search Criteria',
-		'name': 'sales_order-to_be_submitted'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt b/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
deleted file mode 100644
index e2ed6d1..0000000
--- a/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, serial_no-amc_expiring_this_month
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-07-29 15:01:33',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': '`tab Serial No`.month(amc_expiry_date)=month(now()) \n`tab Serial No`.year(amc_expiry_date)=year(now())',
-		'columns': 'Serial No\x01ID,Serial No\x01Status,Serial No\x01AMC Expiry Date,Serial No\x01Customer Name',
-		'criteria_name': 'Serial No-AMC expiring this month',
-		'doc_type': 'Serial No',
-		'doctype': 'Search Criteria',
-		'filters': "{'Serial No\x01Saved':1,'Serial No\x01Submitted':1,'Serial No\x01Status':'','Serial No\x01Warranty Status':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabSerial No`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, serial_no-amc_expiring_this_month
-	{
-		'doctype': 'Search Criteria',
-		'name': 'serial_no-amc_expiring_this_month'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt b/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
deleted file mode 100644
index 406d8dd..0000000
--- a/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, serial_no-warranty_expiring_this_month
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-07-23 09:57:51',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "`tab Serial No`.docstatus!=2\n`tab Serial No`.maintenance_status='Under Warranty'\n`tab Serial No`.status!='Scrapped'\n`tab Serial No`.status!='Not in Use'\n`tab Serial No`.month(ifnull(warranty_expiry_date,0)) = month(now()) \n`tab Serial No`.yearmonth(ifnull(warranty_expiry_date,0)) = year(now())",
-		'columns': 'Serial No\x01ID,Serial No\x01Status,Serial No\x01Warranty Expiry Date,Serial No\x01Customer Name',
-		'criteria_name': 'Serial No-Warranty expiring this month',
-		'doc_type': 'Serial No',
-		'doctype': 'Search Criteria',
-		'filters': "{'Serial No\x01Saved':1,'Serial No\x01Submitted':1,'Serial No\x01Status':'Issued','Serial No\x01Maintenance Status':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabSerial No`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, serial_no-warranty_expiring_this_month
-	{
-		'doctype': 'Search Criteria',
-		'name': 'serial_no-warranty_expiring_this_month'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/task_open/__init__.py b/erpnext/home/search_criteria/task_open/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/task_open/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/task_open/task_open.txt b/erpnext/home/search_criteria/task_open/task_open.txt
deleted file mode 100644
index 4d1998c..0000000
--- a/erpnext/home/search_criteria/task_open/task_open.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, task-open
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-07-16 13:03:49',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': "`tabTicket`.status='Open'",
-		'columns': 'Ticket\x01ID,Ticket\x01Subject,Ticket\x01Priority,Ticket\x01Raised By,Ticket\x01Allocated To',
-		'criteria_name': 'Task-Open',
-		'doc_type': 'Ticket',
-		'doctype': 'Search Criteria',
-		'filters': "{'Ticket\x01Priority':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabTicket`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, task-open
-	{
-		'doctype': 'Search Criteria',
-		'name': 'task-open'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/DocType Mapper/Appraisal Template-Appraisal/Appraisal Template-Appraisal.txt b/erpnext/hr/DocType Mapper/Appraisal Template-Appraisal/Appraisal Template-Appraisal.txt
new file mode 100644
index 0000000..ec2bd06
--- /dev/null
+++ b/erpnext/hr/DocType Mapper/Appraisal Template-Appraisal/Appraisal Template-Appraisal.txt
@@ -0,0 +1,47 @@
+# DocType Mapper, Appraisal Template-Appraisal
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2010-09-01 15:47:59',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'kra_sheet',
+		'from_table': u'Appraisal Template Goal',
+		'match_id': 0,
+		'name': '__common__',
+		'parent': u'Appraisal Template-Appraisal',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper',
+		'to_field': u'appraisal_details',
+		'to_table': u'Appraisal Goal',
+		'validation_logic': u'name is not Null'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': 'DocType Mapper',
+		'from_doctype': u'Appraisal Template',
+		'module': u'HR',
+		'name': '__common__',
+		'to_doctype': u'Appraisal'
+	},
+
+	# DocType Mapper, Appraisal Template-Appraisal
+	{
+		'doctype': 'DocType Mapper',
+		'name': u'Appraisal Template-Appraisal'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt b/erpnext/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt
deleted file mode 100644
index aed4002..0000000
--- a/erpnext/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-# DocType Mapper, KRA Template-Appraisal
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-01 15:47:59',
-		'docstatus': 0,
-		'modified': '2011-09-15 15:04:42',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'kra_sheet',
-		'from_table': 'KRA Sheet',
-		'match_id': 0,
-		'name': '__common__',
-		'parent': 'KRA Template-Appraisal',
-		'parentfield': 'table_mapper_details',
-		'parenttype': 'DocType Mapper',
-		'to_field': 'appraisal_details',
-		'to_table': 'Appraisal Detail',
-		'validation_logic': 'name is not Null'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': 'DocType Mapper',
-		'from_doctype': 'KRA Template',
-		'module': 'HR',
-		'name': '__common__',
-		'to_doctype': 'Appraisal'
-	},
-
-	# DocType Mapper, KRA Template-Appraisal
-	{
-		'doctype': 'DocType Mapper',
-		'name': 'KRA Template-Appraisal'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt b/erpnext/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt
index 0a365d1..855c649 100644
--- a/erpnext/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt
+++ b/erpnext/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt
@@ -113,19 +113,19 @@
 	{
 		'doctype': 'Table Mapper Detail',
 		'from_field': 'earning_details',
-		'from_table': 'Earning Detail',
+		'from_table': 'Salary Structure Earning',
 		'match_id': 1,
 		'to_field': 'earning_details',
-		'to_table': 'SS Earning Detail'
+		'to_table': 'Salary Slip Earning'
 	},
 
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
 		'from_field': 'deduction_details',
-		'from_table': 'Deduction Detail',
+		'from_table': 'Salary Structure Deduction',
 		'match_id': 2,
 		'to_field': 'deduction_details',
-		'to_table': 'SS Deduction Detail'
+		'to_table': 'Salary Slip Deduction'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/Expense Type/Calls/Calls.txt b/erpnext/hr/Expense Type/Calls/Calls.txt
index 2cd19e1..5cf53d6 100644
--- a/erpnext/hr/Expense Type/Calls/Calls.txt
+++ b/erpnext/hr/Expense Type/Calls/Calls.txt
@@ -1 +1 @@
-[{'modified_by': 'harshada@webnotestech.com', 'name': 'Calls', 'parent': None, 'description': None, 'creation': '2010-08-23 18:26:38', 'modified': '2010-08-23 18:26:38', 'module': 'Payroll', 'doctype': 'Expense Type', 'idx': None, 'parenttype': None, 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'expense_type': 'Calls', 'parentfield': None}]
\ No newline at end of file
+[{'modified_by': 'harshada@webnotestech.com', 'name': 'Calls', 'parent': None, 'description': None, 'creation': '2010-08-23 18:26:38', 'modified': '2010-08-23 18:26:38', 'module': 'Payroll', 'doctype': 'Expense Claim Type', 'idx': None, 'parenttype': None, 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'expense_type': 'Calls', 'parentfield': None}]
\ No newline at end of file
diff --git a/erpnext/hr/Expense Type/Food/Food.txt b/erpnext/hr/Expense Type/Food/Food.txt
index d0266ad..c09f21f 100644
--- a/erpnext/hr/Expense Type/Food/Food.txt
+++ b/erpnext/hr/Expense Type/Food/Food.txt
@@ -1 +1 @@
-[{'modified_by': 'harshada@webnotestech.com', 'name': 'Food', 'parent': None, 'description': None, 'creation': '2010-08-23 18:26:30', 'modified': '2010-08-23 18:26:30', 'module': 'Payroll', 'doctype': 'Expense Type', 'idx': None, 'parenttype': None, 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'expense_type': 'Food', 'parentfield': None}]
\ No newline at end of file
+[{'modified_by': 'harshada@webnotestech.com', 'name': 'Food', 'parent': None, 'description': None, 'creation': '2010-08-23 18:26:30', 'modified': '2010-08-23 18:26:30', 'module': 'Payroll', 'doctype': 'Expense Claim Type', 'idx': None, 'parenttype': None, 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'expense_type': 'Food', 'parentfield': None}]
\ No newline at end of file
diff --git a/erpnext/hr/Expense Type/Medical/Medical.txt b/erpnext/hr/Expense Type/Medical/Medical.txt
index 4e84862..754af61 100644
--- a/erpnext/hr/Expense Type/Medical/Medical.txt
+++ b/erpnext/hr/Expense Type/Medical/Medical.txt
@@ -1 +1 @@
-[{'modified_by': 'harshada@webnotestech.com', 'name': 'Medical', 'parent': None, 'description': None, 'creation': '2010-08-23 18:26:49', 'modified': '2010-08-23 18:26:49', 'module': 'Payroll', 'doctype': 'Expense Type', 'idx': None, 'parenttype': None, 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'expense_type': 'Medical', 'parentfield': None}]
\ No newline at end of file
+[{'modified_by': 'harshada@webnotestech.com', 'name': 'Medical', 'parent': None, 'description': None, 'creation': '2010-08-23 18:26:49', 'modified': '2010-08-23 18:26:49', 'module': 'Payroll', 'doctype': 'Expense Claim Type', 'idx': None, 'parenttype': None, 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'expense_type': 'Medical', 'parentfield': None}]
\ No newline at end of file
diff --git a/erpnext/hr/Expense Type/Others/Others.txt b/erpnext/hr/Expense Type/Others/Others.txt
index 13a6af3..509d652 100644
--- a/erpnext/hr/Expense Type/Others/Others.txt
+++ b/erpnext/hr/Expense Type/Others/Others.txt
@@ -1 +1 @@
-[{'modified_by': 'harshada@webnotestech.com', 'name': 'Others', 'parent': None, 'description': None, 'creation': '2010-09-20 12:16:45', 'modified': '2010-09-20 12:16:45', 'module': 'Payroll', 'doctype': 'Expense Type', 'idx': None, 'parenttype': None, 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'expense_type': 'Others', 'parentfield': None}]
\ No newline at end of file
+[{'modified_by': 'harshada@webnotestech.com', 'name': 'Others', 'parent': None, 'description': None, 'creation': '2010-09-20 12:16:45', 'modified': '2010-09-20 12:16:45', 'module': 'Payroll', 'doctype': 'Expense Claim Type', 'idx': None, 'parenttype': None, 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'expense_type': 'Others', 'parentfield': None}]
\ No newline at end of file
diff --git a/erpnext/hr/Expense Type/Travel/Travel.txt b/erpnext/hr/Expense Type/Travel/Travel.txt
index 966c2ea..c21e4b6 100644
--- a/erpnext/hr/Expense Type/Travel/Travel.txt
+++ b/erpnext/hr/Expense Type/Travel/Travel.txt
@@ -1 +1 @@
-[{'modified_by': 'harshada@webnotestech.com', 'name': 'Travel', 'parent': None, 'description': None, 'creation': '2010-09-20 12:16:45', 'modified': '2010-09-20 12:16:45', 'module': 'Payroll', 'doctype': 'Expense Type', 'idx': None, 'parenttype': None, 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'expense_type': 'Travel', 'parentfield': None}]
\ No newline at end of file
+[{'modified_by': 'harshada@webnotestech.com', 'name': 'Travel', 'parent': None, 'description': None, 'creation': '2010-09-20 12:16:45', 'modified': '2010-09-20 12:16:45', 'module': 'Payroll', 'doctype': 'Expense Claim Type', 'idx': None, 'parenttype': None, 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'expense_type': 'Travel', 'parentfield': None}]
\ No newline at end of file
diff --git a/erpnext/hr/Module Def/HR/HR.txt b/erpnext/hr/Module Def/HR/HR.txt
deleted file mode 100644
index 212d689..0000000
--- a/erpnext/hr/Module Def/HR/HR.txt
+++ /dev/null
@@ -1,318 +0,0 @@
-# Module Def, HR
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-01 17:41:43',
-		'docstatus': 0,
-		'modified': '2011-08-25 13:54:43',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'name': '__common__',
-		'parent': 'HR',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def Item
-	{
-		'doctype': 'Module Def Item',
-		'name': '__common__',
-		'parent': 'HR',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def
-	{
-		'disabled': 'No',
-		'doctype': u'Module Def',
-		'is_hidden': 'No',
-		'module_desc': 'Human Resource Management - Employee Database, Salaries etc.',
-		'module_icon': 'HR.gif',
-		'module_label': 'HR',
-		'module_name': 'HR',
-		'module_seq': 9,
-		'name': '__common__'
-	},
-
-	# Module Def, HR
-	{
-		'doctype': u'Module Def',
-		'name': 'HR'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Your Employee Database',
-		'display_name': 'Employee',
-		'doc_name': 'Employee',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'employee_name\nemployment_type\nstatus\nbranch\ndesignation\ndepartment\ngrade\nreports_to',
-		'idx': 1
-	},
-
-	# Module Def Item
-	{
-		'description': 'Employees Daily Attendance Tracking Form',
-		'display_name': 'Attendance',
-		'doc_name': 'Attendance',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'employee\nemployee_name\nstatus\natt_date\nfiscal_year\ncompany',
-		'idx': 2
-	},
-
-	# Module Def Item
-	{
-		'description': 'Upload Attendance data',
-		'display_name': 'Attendance Control Panel',
-		'doc_name': 'Attendance Control Panel',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item',
-		'idx': 3
-	},
-
-	# Module Def Item
-	{
-		'description': 'Leave allocation for selected employees at a time',
-		'display_name': 'Leave Control Panel',
-		'doc_name': 'Leave Control Panel',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item',
-		'idx': 4
-	},
-
-	# Module Def Item
-	{
-		'description': 'Allocate leave for fiscal year',
-		'display_name': 'Leave Allocation',
-		'doc_name': 'Leave Allocation',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'employee\nleave_type\nfiscal_year\ntotal_leaves_allocated\nposting_date',
-		'idx': 5
-	},
-
-	# Module Def Item
-	{
-		'description': 'Apply Leave',
-		'display_name': 'Leave Application',
-		'doc_name': 'Leave Application',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'employee\nleave_type\nfiscal_year\nfrom_date\nto_date\ntotal_leave_days',
-		'idx': 6
-	},
-
-	# Module Def Item
-	{
-		'description': 'Submit Employees Expenses',
-		'display_name': 'Expense Voucher',
-		'doc_name': 'Expense Voucher',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\nemployee\nemployee_name\nposting_date\ntotal_claimed_amount\ntotal_sanctioned_amount\nexp_approver',
-		'idx': 7
-	},
-
-	# Module Def Item
-	{
-		'description': 'Assign Responsibilities to employee and evaluate',
-		'display_name': 'Appraisal',
-		'doc_name': 'Appraisal',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\nemployee\nemployee_name\nstart_date\nend_date\ntotal_score\nkra_approver',
-		'idx': 8
-	},
-
-	# Module Def Item
-	{
-		'description': 'Generate Salary Structure heads for an employee',
-		'display_name': 'Salary Structure',
-		'doc_name': 'Salary Structure',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'employee\nis_active\nfiscal_year\nfrom_date\nctc\ntotal_earning\ntotal_deduction\ntotal',
-		'idx': 9
-	},
-
-	# Module Def Item
-	{
-		'description': 'Generate Salary Slip for an employee',
-		'display_name': 'Salary Slip',
-		'doc_name': 'Salary Slip',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'month\nyear\nemployee\nemployee_name\npayment_days\narrear_amount\nencashment_amount\ngross_pay\ntotal_deduction\nnet_pay',
-		'idx': 10
-	},
-
-	# Module Def Item
-	{
-		'description': 'Generate Salary Slip for multiple employee at a time based on selected criteria',
-		'display_name': 'Salary Manager',
-		'doc_name': 'Salary Manager',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item',
-		'idx': 11
-	},
-
-	# Module Def Item
-	{
-		'description': 'Job Applications received for various positions',
-		'display_name': 'Job Application',
-		'doc_name': 'Job Application',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'applicant_name\nemail\nposition',
-		'idx': 12
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Employee Information',
-		'doc_name': 'Employee',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 13
-	},
-
-	# Module Def Item
-	{
-		'display_name': "Employee's Birthday",
-		'doc_name': 'Employee',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 14
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'New or left employees for a month',
-		'doc_name': 'Employee',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 15
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Monthly Attendance Details',
-		'doc_name': 'Attendance',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 16
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Leave Application Details',
-		'doc_name': 'Leave Application',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 17
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Leave Allocation Details',
-		'doc_name': 'Leave Allocation',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 18
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Employee Leave Balance Report',
-		'doc_name': 'Employee',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 19
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Salary Structure Details',
-		'doc_name': 'Salary Structure',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 20
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Salary Register',
-		'doc_name': 'Salary Slip',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 21
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Salary Slips',
-		'doc_name': 'Salary Slip',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 22
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Pending Appraisals',
-		'doc_name': 'Appraisal',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 23
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Employee Appraisals',
-		'doc_name': 'Appraisal',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 24
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Pending Expense Vouchers',
-		'doc_name': 'Expense Voucher',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 25
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Expense Vouchers',
-		'doc_name': 'Expense Voucher',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 26
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'idx': 1,
-		'role': 'HR Manager'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'idx': 2,
-		'role': 'HR User'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/Role/Employee/Employee.txt b/erpnext/hr/Role/Employee/Employee.txt
deleted file mode 100644
index 4b73c1a..0000000
--- a/erpnext/hr/Role/Employee/Employee.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-[
-	{
-		'creation': '2011-02-12 15:07:26',
-		'docstatus': 0,
-		'doctype': 'Role',
-		'idx': None,
-		'modified': '2011-02-14 14:05:55',
-		'modified_by': 'Administrator',
-		'module': 'Roles',
-		'name': 'Employee',
-		'owner': 'Administrator',
-		'parent': None,
-		'parentfield': None,
-		'parenttype': None,
-		'role_name': 'Employee'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/Role/HR Manager/HR Manager.txt b/erpnext/hr/Role/HR Manager/HR Manager.txt
deleted file mode 100644
index d07db86..0000000
--- a/erpnext/hr/Role/HR Manager/HR Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, HR Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-01 10:19:09',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'HR',
-		'name': '__common__',
-		'role_name': 'HR Manager'
-	},
-
-	# Role, HR Manager
-	{
-		'doctype': 'Role',
-		'name': 'HR Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/Role/HR User/HR User.txt b/erpnext/hr/Role/HR User/HR User.txt
deleted file mode 100644
index b0c5b76..0000000
--- a/erpnext/hr/Role/HR User/HR User.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, HR User
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-01 10:18:55',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'HR',
-		'name': '__common__',
-		'role_name': 'HR User'
-	},
-
-	# Role, HR User
-	{
-		'doctype': 'Role',
-		'name': 'HR User'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/__init__.py b/erpnext/hr/__init__.py
index e69de29..ab2d197 100644
--- a/erpnext/hr/__init__.py
+++ b/erpnext/hr/__init__.py
@@ -0,0 +1,5 @@
+install_docs = [
+	{"doctype":"Role", "name":"Employee"},
+	{"doctype":"Role", "name":"HR Manager"},
+	{"doctype":"Role", "name":"HR User"},
+]
diff --git a/erpnext/hr/doctype/absent_days_detail/absent_days_detail.txt b/erpnext/hr/doctype/absent_days_detail/absent_days_detail.txt
deleted file mode 100644
index 2e6f58a..0000000
--- a/erpnext/hr/doctype/absent_days_detail/absent_days_detail.txt
+++ /dev/null
@@ -1,137 +0,0 @@
-# DocType, Absent Days Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Absent Days Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Absent Days Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'write': 1
-	},
-
-	# DocType, Absent Days Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Absent Days Detail'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'leave_type',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Leave Type',
-		'oldfieldname': 'leave_type',
-		'oldfieldtype': 'Select',
-		'options': 'link:Leave Type'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'no_of_leave_days',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'No of leave days',
-		'oldfieldname': 'no_of_leave_days',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'idx': 3,
-		'label': 'From Date',
-		'oldfieldname': 'from_date',
-		'oldfieldtype': 'Date'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'idx': 4,
-		'label': 'To Date',
-		'oldfieldname': 'to_date',
-		'oldfieldtype': 'Date'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'previous_balance',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Previous Balance',
-		'oldfieldname': 'previous_balance',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'current_balance',
-		'fieldtype': 'Data',
-		'idx': 6,
-		'label': 'Current Balance',
-		'oldfieldname': 'current_balance',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'max_allowed',
-		'fieldtype': 'Data',
-		'idx': 7,
-		'label': 'Max. Allowed',
-		'oldfieldname': 'max_allowed',
-		'oldfieldtype': 'Data'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/appraisal/appraisal.js b/erpnext/hr/doctype/appraisal/appraisal.js
index 0483c38..de9db7f 100644
--- a/erpnext/hr/doctype/appraisal/appraisal.js
+++ b/erpnext/hr/doctype/appraisal/appraisal.js
@@ -39,9 +39,9 @@
 
 
 cur_frm.cscript.refresh_appraisal_details = function(doc, cdt, cdn){
-	var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype);
+	var val = getchildren('Appraisal Goal', doc.name, 'appraisal_details', doc.doctype);
 	for(var i = 0; i<val.length; i++){
-		set_multiple('Appraisal Detail', val[i].name, {'target_achieved':'', 'score':'', 'scored_earned':''}, 'appraisal_details');
+		set_multiple('Appraisal Goal', val[i].name, {'target_achieved':'', 'score':'', 'scored_earned':''}, 'appraisal_details');
 	}
 	doc.total_score = '';
 	refresh_field('appraisal_details');
@@ -60,9 +60,9 @@
 	}
 }
 
-cur_frm.cscript['Calculate Total Score'] = function(doc,cdt,cdn){
+cur_frm.cscript.calculate_total_score = function(doc,cdt,cdn){
 	//get_server_fields('calculate_total','','',doc,cdt,cdn,1);
-	var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype);
+	var val = getchildren('Appraisal Goal', doc.name, 'appraisal_details', doc.doctype);
 	var total =0;
 	for(var i = 0; i<val.length; i++){
 		total = flt(total)+flt(val[i].score_earned)
@@ -71,7 +71,7 @@
 	refresh_field('total_score')
 }
 
-/*cur_frm.cscript['Declare Completed'] = function(doc,cdt,cdn){
+/*cur_frm.cscript.declare_completed = function(doc,cdt,cdn){
 	$c_obj(make_doclist(doc.doctype, doc.name),'declare_completed','', function(r,rt){
 		if(r.message){
 			refresh_field('Status');
@@ -80,7 +80,7 @@
 	});
 }*/
 
-cur_frm.cscript['Declare Completed'] = function(doc,cdt,cdn){
+cur_frm.cscript.declare_completed = function(doc,cdt,cdn){
 	var declare_completed_dialog;
 	
 	set_declare_completed_dialog = function() {
@@ -161,7 +161,7 @@
 }
 
 cur_frm.cscript.calculate_total = function(doc,cdt,cdn){
-	var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype);
+	var val = getchildren('Appraisal Goal', doc.name, 'appraisal_details', doc.doctype);
 	var total =0;
 	for(var i = 0; i<val.length; i++){
 		total = flt(total)+flt(val[i].score_earned);
diff --git a/erpnext/hr/doctype/appraisal/appraisal.py b/erpnext/hr/doctype/appraisal/appraisal.py
index 67bd1e6..a730657 100644
--- a/erpnext/hr/doctype/appraisal/appraisal.py
+++ b/erpnext/hr/doctype/appraisal/appraisal.py
@@ -46,10 +46,10 @@
 	
 	def fetch_kra(self):
 		if not self.doc.kra_template:
-			msgprint("Please select KRA Template to be be fetched")
+			msgprint("Please select Appraisal Template to be be fetched")
 			raise Exception
 		self.doc.clear_table(self.doclist,'appraisal_details')
-		get_obj('DocType Mapper', 'KRA Template-Appraisal').dt_map('KRA Template', 'Appraisal', self.doc.kra_template, self.doc, self.doclist, "[['KRA Template','Appraisal'],['KRA Sheet', 'Appraisal Detail']]")
+		get_obj('DocType Mapper', 'Appraisal Template-Appraisal').dt_map('Appraisal Template', 'Appraisal', self.doc.kra_template, self.doc, self.doclist, "[['Appraisal Template','Appraisal'],['Appraisal Template Goal', 'Appraisal Goal']]")
 	
 	def validate_dates(self):
 		if getdate(self.doc.start_date) > getdate(self.doc.end_date):
diff --git a/erpnext/hr/doctype/appraisal/appraisal.txt b/erpnext/hr/doctype/appraisal/appraisal.txt
index b10c434..bfba9fc 100644
--- a/erpnext/hr/doctype/appraisal/appraisal.txt
+++ b/erpnext/hr/doctype/appraisal/appraisal.txt
@@ -3,52 +3,53 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:05',
+		'creation': '2012-03-27 14:35:53',
 		'docstatus': 0,
-		'modified': '2011-09-22 10:59:43',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-03-27 14:45:46',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1316075905',
-		'autoname': 'APRSL.#####',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'_last_update': u'1316075905',
+		'autoname': u'APRSL.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'HR',
+		'is_submittable': 1,
+		'module': u'HR',
 		'name': '__common__',
-		'search_fields': 'status, employee, employee_name',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'status, employee, employee_name',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 161
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Appraisal',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Appraisal',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Appraisal',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Appraisal',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Appraisal
 	{
 		'doctype': 'DocType',
-		'name': 'Appraisal'
+		'name': u'Appraisal'
 	},
 
 	# DocPerm
@@ -56,47 +57,9 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'System Manager'
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'System Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'System Manager'
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'HR Manager',
+		'role': u'System Manager',
 		'submit': 1,
 		'write': 1
 	},
@@ -106,49 +69,75 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR User',
+		'role': u'System Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'HR Manager'
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'HR Manager',
+		'submit': 1,
+		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'HR User',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'All',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR User'
+		'role': u'All'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Employee Details',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'employee_details',
+		'fieldtype': u'Section Break',
+		'label': u'Employee Details',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Draft',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'default': u'Draft',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Status',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nDraft\nSubmitted\nCompleted\nCancelled',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nDraft\nSubmitted\nCompleted\nCancelled',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 1
@@ -156,234 +145,240 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'employee',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'employee',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Employee',
-		'oldfieldname': 'employee',
-		'oldfieldtype': 'Link',
-		'options': 'Employee',
+		'label': u'Employee',
+		'oldfieldname': u'employee',
+		'oldfieldtype': u'Link',
+		'options': u'Employee',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_name',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'employee_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Employee Name',
-		'oldfieldname': 'employee_name',
-		'oldfieldtype': 'Data',
+		'label': u'Employee Name',
+		'oldfieldname': u'employee_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'link:Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'link:Company',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'start_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'start_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Start Date',
-		'oldfieldname': 'start_date',
-		'oldfieldtype': 'Date',
+		'label': u'Start Date',
+		'oldfieldname': u'start_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'end_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'end_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'End Date',
-		'oldfieldname': 'end_date',
-		'oldfieldtype': 'Date',
+		'label': u'End Date',
+		'oldfieldname': u'end_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'kra_approver',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'kra_approver',
+		'fieldtype': u'Select',
 		'in_filter': 0,
-		'label': 'Approver',
-		'oldfieldname': 'kra_approver',
-		'oldfieldtype': 'Select',
+		'label': u'Approver',
+		'oldfieldname': u'kra_approver',
+		'oldfieldtype': u'Select',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'label': 'Amended From',
+		'label': u'Amended From',
 		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'print_hide': 1,
 		'report_hide': 1,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
 		'hidden': 1,
-		'label': 'Amendment Date',
+		'label': u'Amendment Date',
 		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'print_hide': 1,
 		'report_hide': 1,
-		'width': '160px'
+		'width': u'160px'
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Declare Completed',
-		'oldfieldtype': 'Button',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'declare_completed',
+		'fieldtype': u'Button',
+		'label': u'Declare Completed',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Select template from which you want to fetch KRA',
-		'doctype': 'DocField',
-		'fieldname': 'kra_template',
-		'fieldtype': 'Link',
-		'label': 'KRA Template',
-		'oldfieldname': 'kra_template',
-		'oldfieldtype': 'Link',
-		'options': 'KRA Template',
+		'colour': u'White:FFF',
+		'description': u'Select template from which you want to fetch KRA',
+		'doctype': u'DocField',
+		'fieldname': u'kra_template',
+		'fieldtype': u'Link',
+		'label': u'Appraisal Template',
+		'oldfieldname': u'kra_template',
+		'oldfieldtype': u'Link',
+		'options': u'Appraisal Template',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Fetch Template',
-		'oldfieldtype': 'Button',
-		'options': 'fetch_kra',
+		'doctype': u'DocField',
+		'fieldname': u'fetch_template',
+		'fieldtype': u'Button',
+		'label': u'Fetch Template',
+		'oldfieldtype': u'Button',
+		'options': u'fetch_kra',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'update',
+		'fieldtype': u'Button',
 		'hidden': 1,
-		'label': 'Update',
-		'oldfieldtype': 'Button',
+		'label': u'Update',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'appraisal_details',
-		'fieldtype': 'Table',
-		'label': 'Appraisal Details',
-		'oldfieldname': 'appraisal_details',
-		'oldfieldtype': 'Table',
-		'options': 'Appraisal Detail',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'appraisal_details',
+		'fieldtype': u'Table',
+		'label': u'Appraisal Goals',
+		'oldfieldname': u'appraisal_details',
+		'oldfieldtype': u'Table',
+		'options': u'Appraisal Goal',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Calculate Total Score',
-		'oldfieldtype': 'Button',
-		'options': 'calculate_total',
+		'doctype': u'DocField',
+		'fieldname': u'calculate_total_score',
+		'fieldtype': u'Button',
+		'label': u'Calculate Total Score',
+		'oldfieldtype': u'Button',
+		'options': u'calculate_total',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_score',
-		'fieldtype': 'Currency',
-		'label': 'Total Score (Out of 5)',
+		'doctype': u'DocField',
+		'fieldname': u'total_score',
+		'fieldtype': u'Currency',
+		'label': u'Total Score (Out of 5)',
 		'no_copy': 1,
-		'oldfieldname': 'total_score',
-		'oldfieldtype': 'Currency',
+		'oldfieldname': u'total_score',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	}
-]
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt b/erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt
deleted file mode 100644
index 06edc81..0000000
--- a/erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt
+++ /dev/null
@@ -1,109 +0,0 @@
-# DocType, Appraisal Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-01 15:48:05',
-		'docstatus': 0,
-		'modified': '2011-09-22 10:45:37',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'APRSLD.#####',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 15
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Appraisal Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Appraisal Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Appraisal Detail'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Key Responsibility Area',
-		'doctype': 'DocField',
-		'fieldname': 'kra',
-		'fieldtype': 'Small Text',
-		'label': 'KRA',
-		'oldfieldname': 'kra',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'per_weightage',
-		'fieldtype': 'Currency',
-		'label': 'Weightage (%)',
-		'oldfieldname': 'per_weightage',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'target_achieved',
-		'fieldtype': 'Small Text',
-		'label': 'Target Achieved',
-		'no_copy': 1,
-		'oldfieldname': 'target_achieved',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'score',
-		'fieldtype': 'Currency',
-		'label': 'Score (0-5)',
-		'no_copy': 1,
-		'oldfieldname': 'score',
-		'oldfieldtype': 'Select',
-		'options': '\n0\n1\n2\n3\n4\n5',
-		'permlevel': 0,
-		'trigger': 'Client',
-		'width': '60px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'score_earned',
-		'fieldtype': 'Currency',
-		'label': 'Score Earned',
-		'no_copy': 1,
-		'oldfieldname': 'score_earned',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	}
-]
diff --git a/erpnext/hr/doctype/appraisal_detail/__init__.py b/erpnext/hr/doctype/appraisal_goal/__init__.py
similarity index 100%
rename from erpnext/hr/doctype/appraisal_detail/__init__.py
rename to erpnext/hr/doctype/appraisal_goal/__init__.py
diff --git a/erpnext/hr/doctype/appraisal_goal/appraisal_goal.txt b/erpnext/hr/doctype/appraisal_goal/appraisal_goal.txt
new file mode 100644
index 0000000..fab4e84
--- /dev/null
+++ b/erpnext/hr/doctype/appraisal_goal/appraisal_goal.txt
@@ -0,0 +1,109 @@
+# DocType, Appraisal Goal
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:53',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:53',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'APRSLD.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'version': 15
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Appraisal Goal',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Appraisal Goal
+	{
+		'doctype': 'DocType',
+		'name': u'Appraisal Goal'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Key Responsibility Area',
+		'doctype': u'DocField',
+		'fieldname': u'kra',
+		'fieldtype': u'Small Text',
+		'label': u'KRA',
+		'oldfieldname': u'kra',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'per_weightage',
+		'fieldtype': u'Currency',
+		'label': u'Weightage (%)',
+		'oldfieldname': u'per_weightage',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'target_achieved',
+		'fieldtype': u'Small Text',
+		'label': u'Target Achieved',
+		'no_copy': 1,
+		'oldfieldname': u'target_achieved',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'score',
+		'fieldtype': u'Currency',
+		'label': u'Score (0-5)',
+		'no_copy': 1,
+		'oldfieldname': u'score',
+		'oldfieldtype': u'Select',
+		'options': u'\n0\n1\n2\n3\n4\n5',
+		'permlevel': 0,
+		'trigger': u'Client',
+		'width': u'60px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'score_earned',
+		'fieldtype': u'Currency',
+		'label': u'Score Earned',
+		'no_copy': 1,
+		'oldfieldname': u'score_earned',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/appraisal_detail/__init__.py b/erpnext/hr/doctype/appraisal_template/__init__.py
similarity index 100%
copy from erpnext/hr/doctype/appraisal_detail/__init__.py
copy to erpnext/hr/doctype/appraisal_template/__init__.py
diff --git a/erpnext/hr/doctype/kra_template/kra_template.js b/erpnext/hr/doctype/appraisal_template/appraisal_template.js
similarity index 100%
rename from erpnext/hr/doctype/kra_template/kra_template.js
rename to erpnext/hr/doctype/appraisal_template/appraisal_template.js
diff --git a/erpnext/hr/doctype/appraisal_template/appraisal_template.txt b/erpnext/hr/doctype/appraisal_template/appraisal_template.txt
new file mode 100644
index 0000000..62a0d5b
--- /dev/null
+++ b/erpnext/hr/doctype/appraisal_template/appraisal_template.txt
@@ -0,0 +1,111 @@
+# DocType, Appraisal Template
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:58',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:58',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'field:kra_title',
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'document_type': u'Master',
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'version': 3
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Appraisal Template',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# These values are common for all DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Appraisal Template',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'write': 1
+	},
+
+	# DocType, Appraisal Template
+	{
+		'doctype': 'DocType',
+		'name': u'Appraisal Template'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'HR User'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'kra_title',
+		'fieldtype': u'Data',
+		'label': u'KRA Title',
+		'oldfieldname': u'kra_title',
+		'oldfieldtype': u'Data',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'kra_sheet',
+		'fieldtype': u'Table',
+		'label': u'Appraisal Template Goal',
+		'oldfieldname': u'kra_sheet',
+		'oldfieldtype': u'Table',
+		'options': u'Appraisal Template Goal'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/appraisal_detail/__init__.py b/erpnext/hr/doctype/appraisal_template_goal/__init__.py
similarity index 100%
copy from erpnext/hr/doctype/appraisal_detail/__init__.py
copy to erpnext/hr/doctype/appraisal_template_goal/__init__.py
diff --git a/erpnext/hr/doctype/appraisal_template_goal/appraisal_template_goal.txt b/erpnext/hr/doctype/appraisal_template_goal/appraisal_template_goal.txt
new file mode 100644
index 0000000..c3e95e5
--- /dev/null
+++ b/erpnext/hr/doctype/appraisal_template_goal/appraisal_template_goal.txt
@@ -0,0 +1,66 @@
+# DocType, Appraisal Template Goal
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:58',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:58',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'KSHEET.#####',
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'version': 6
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Appraisal Template Goal',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocType, Appraisal Template Goal
+	{
+		'doctype': 'DocType',
+		'name': u'Appraisal Template Goal'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Key Performance Area',
+		'doctype': u'DocField',
+		'fieldname': u'kra',
+		'fieldtype': u'Small Text',
+		'label': u'KRA',
+		'oldfieldname': u'kra',
+		'oldfieldtype': u'Small Text',
+		'width': u'200px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'per_weightage',
+		'fieldtype': u'Currency',
+		'label': u'Weightage (%)',
+		'oldfieldname': u'per_weightage',
+		'oldfieldtype': u'Currency',
+		'width': u'100px'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/attendance/attendance.txt b/erpnext/hr/doctype/attendance/attendance.txt
index 9c795bb..04df67d 100644
--- a/erpnext/hr/doctype/attendance/attendance.txt
+++ b/erpnext/hr/doctype/attendance/attendance.txt
@@ -3,48 +3,49 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-23 10:26:03',
+		'creation': '2012-03-27 14:35:53',
 		'docstatus': 0,
-		'modified': '2011-12-19 14:11:15',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-03-27 14:45:46',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1317365120',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'_last_update': u'1317365120',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'is_submittable': 1,
+		'module': u'HR',
 		'name': '__common__',
-		'search_fields': 'employee, employee_name, att_date, status',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'employee, employee_name, att_date, status',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 75
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Attendance',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
+		'parent': u'Attendance',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
+		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Attendance',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Attendance',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'submit': 1,
@@ -54,151 +55,187 @@
 	# DocType, Attendance
 	{
 		'doctype': 'DocType',
-		'name': 'Attendance'
+		'name': u'Attendance'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'HR User'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
-		'doctype': 'DocPerm',
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Attendance Details',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple'
+		'doctype': u'DocField',
+		'fieldname': u'attendance_details',
+		'fieldtype': u'Section Break',
+		'label': u'Attendance Details',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
+		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'label': 'Naming Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Naming Series',
 		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
-		'options': 'ATT',
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'ATT',
+		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'employee',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'employee',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Employee',
-		'oldfieldname': 'employee',
-		'oldfieldtype': 'Link',
-		'options': 'Employee',
+		'label': u'Employee',
+		'oldfieldname': u'employee',
+		'oldfieldtype': u'Link',
+		'options': u'Employee',
+		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_name',
-		'fieldtype': 'Data',
-		'label': 'Employee Name',
-		'oldfieldname': 'employee_name',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'employee_name',
+		'fieldtype': u'Data',
+		'label': u'Employee Name',
+		'oldfieldname': u'employee_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Status',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nPresent\nAbsent\nHalf Day',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nPresent\nAbsent\nHalf Day',
+		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'leave_type',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'leave_type',
+		'fieldtype': u'Link',
 		'hidden': 1,
-		'label': 'Leave Type',
-		'oldfieldname': 'leave_type',
-		'oldfieldtype': 'Link',
-		'options': 'Leave Type',
+		'label': u'Leave Type',
+		'oldfieldname': u'leave_type',
+		'oldfieldtype': u'Link',
+		'options': u'Leave Type',
+		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'att_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'att_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Attendance Date',
-		'oldfieldname': 'att_date',
-		'oldfieldtype': 'Date',
+		'label': u'Attendance Date',
+		'oldfieldname': u'att_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
+		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'link:Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'link:Company',
+		'permlevel': 0,
 		'reqd': 1
+	},
+
+	# DocField
+	{
+		'depends_on': u'eval:doc.amended_from',
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Link',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'options': u'Sales Invoice',
+		'permlevel': 1,
+		'print_hide': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.js b/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.js
index 6c141cc..4c17982 100644
--- a/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.js
+++ b/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.js
@@ -26,7 +26,7 @@
 }
 
 //download attendance template - csv file
-cur_frm.cscript['Get Template'] = function(doc,cdt,cdn){
+cur_frm.cscript.get_template = function(doc,cdt,cdn){
 
   if(doc.att_to_date && !doc.att_fr_date)
     alert("Please enter 'Attendance To Date'");
@@ -37,7 +37,7 @@
 }
 
 //---------------------------------------------------------
-cur_frm.cscript['Import'] = function(doc,cdt,cdn){
+cur_frm.cscript.import = function(doc,cdt,cdn){
   if(!doc.file_list){
     alert("Please upload attendance data CSV file");
   }
diff --git a/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.txt b/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.txt
index af30e04..78904db 100644
--- a/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.txt
+++ b/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.txt
@@ -3,227 +3,217 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-10-19 11:19:24',
+		'creation': '2012-03-27 14:35:53',
 		'docstatus': 0,
-		'modified': '2011-01-04 13:33:33',
-		'modified_by': 'rahul@webnotestech.com',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-03-27 14:35:53',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1294312182',
+		'_last_update': u'1294312182',
 		'allow_attach': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
 		'max_attachments': 1,
-		'module': 'HR',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 122
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Attendance Control Panel',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Attendance Control Panel',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Attendance Control Panel',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Attendance Control Panel',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Attendance Control Panel
 	{
 		'doctype': 'DocType',
-		'name': 'Attendance Control Panel'
+		'name': u'Attendance Control Panel'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR User',
+		'role': u'HR User',
 		'write': 1
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR Manager',
+		'role': u'HR Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR User'
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR Manager'
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': "Get the template of the Attendance for which you want to import in CSV (Comma seperated values) format.\nFill data in the template. Save the template in CSV format.\nAll attendance dates inbetween 'Attendance From Date' and 'Attendance To Date' will come in the template with employees list.",
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Download Template',
+		'colour': u'White:FFF',
+		'description': u"Get the template of the Attendance for which you want to import in CSV (Comma seperated values) format.\nFill data in the template. Save the template in CSV format.\nAll attendance dates inbetween 'Attendance From Date' and 'Attendance To Date' will come in the template with employees list.",
+		'doctype': u'DocField',
+		'fieldname': u'download_template',
+		'fieldtype': u'Section Break',
+		'label': u'Download Template',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Selected Attendance date will comes in the attendance template.',
-		'doctype': 'DocField',
-		'fieldname': 'att_fr_date',
-		'fieldtype': 'Date',
-		'idx': 2,
-		'label': 'Attendance From Date',
-		'oldfieldname': 'attenadnce_date',
-		'oldfieldtype': 'Date',
+		'colour': u'White:FFF',
+		'description': u'Selected Attendance date will comes in the attendance template.',
+		'doctype': u'DocField',
+		'fieldname': u'att_fr_date',
+		'fieldtype': u'Date',
+		'label': u'Attendance From Date',
+		'oldfieldname': u'attenadnce_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 3,
-		'label': 'Get Template',
-		'oldfieldtype': 'Button',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'get_template',
+		'fieldtype': u'Button',
+		'label': u'Get Template',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 4,
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'All attendance dates inbetween selected Attendance From Date and Attendance To Date will come in the template with employees list.',
-		'doctype': 'DocField',
-		'fieldname': 'att_to_date',
-		'fieldtype': 'Date',
-		'idx': 5,
-		'label': 'Attendance To Date',
+		'colour': u'White:FFF',
+		'description': u'All attendance dates inbetween selected Attendance From Date and Attendance To Date will come in the template with employees list.',
+		'doctype': u'DocField',
+		'fieldname': u'att_to_date',
+		'fieldtype': u'Date',
+		'label': u'Attendance To Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'To import attendance data, click on "Add" button, select the saved CSV file and click on "Upload".\nSelect the date format as attendance date format in CSV file.\nClick on "Import".',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 6,
-		'label': 'Upload Attendance Data',
+		'colour': u'White:FFF',
+		'description': u'To import attendance data, click on "Add" button, select the saved CSV file and click on "Upload".\nSelect the date format as attendance date format in CSV file.\nClick on "Import".',
+		'doctype': u'DocField',
+		'fieldname': u'upload_attendance_data',
+		'fieldtype': u'Section Break',
+		'label': u'Upload Attendance Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'import_date_format',
-		'fieldtype': 'Select',
-		'idx': 7,
-		'label': 'Import Date Format ',
-		'options': 'yyyy-mm-dd\nmm/dd/yyyy\nmm/dd/yy\ndd-mm-yyyy\ndd/mm/yyyy',
+		'doctype': u'DocField',
+		'fieldname': u'import_date_format',
+		'fieldtype': u'Select',
+		'label': u'Import Date Format ',
+		'options': u'yyyy-mm-dd\nmm/dd/yyyy\nmm/dd/yy\ndd-mm-yyyy\ndd/mm/yyyy',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'overwrite',
-		'fieldtype': 'Check',
-		'idx': 8,
-		'label': 'Overwrite',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'overwrite',
+		'fieldtype': u'Check',
+		'label': u'Overwrite',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 9,
-		'label': 'Import',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'import',
+		'fieldtype': u'Button',
+		'label': u'Import',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 10,
-		'label': 'File List',
+		'label': u'File List',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 11,
-		'label': 'Import Log',
+		'doctype': u'DocField',
+		'fieldname': u'import_log',
+		'fieldtype': u'Section Break',
+		'label': u'Import Log',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 12,
-		'label': 'Import Log1',
+		'doctype': u'DocField',
+		'fieldname': u'import_log1',
+		'fieldtype': u'HTML',
+		'label': u'Import Log1',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/branch/branch.txt b/erpnext/hr/doctype/branch/branch.txt
index f402474..2bf7c21 100644
--- a/erpnext/hr/doctype/branch/branch.txt
+++ b/erpnext/hr/doctype/branch/branch.txt
@@ -3,101 +3,94 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:53',
+		'creation': '2012-03-27 14:35:54',
 		'docstatus': 0,
-		'modified': '2011-05-30 15:24:02',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:branch',
-		'colour': 'White:FFF',
+		'autoname': u'field:branch',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 11
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Branch',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Branch',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Branch',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Branch',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'submit': 0,
 		'write': 1
 	},
 
 	# DocType, Branch
 	{
 		'doctype': 'DocType',
-		'name': 'Branch'
+		'name': u'Branch'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'HR User'
+		'doctype': u'DocPerm',
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'branch',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Branch',
-		'oldfieldname': 'branch',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'branch',
+		'fieldtype': u'Data',
+		'label': u'Branch',
+		'oldfieldname': u'branch',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	}
diff --git a/erpnext/hr/doctype/chapter_vi_a_detail/chapter_vi_a_detail.txt b/erpnext/hr/doctype/chapter_vi_a_detail/chapter_vi_a_detail.txt
index 60ce4b3..31c0ee0 100644
--- a/erpnext/hr/doctype/chapter_vi_a_detail/chapter_vi_a_detail.txt
+++ b/erpnext/hr/doctype/chapter_vi_a_detail/chapter_vi_a_detail.txt
@@ -3,143 +3,135 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:54',
+		'creation': '2012-03-27 14:35:54',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'HR',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 9
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Chapter VI A Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Chapter VI A Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Chapter VI A Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Chapter VI A Detail',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, Chapter VI A Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Chapter VI A Detail'
+		'name': u'Chapter VI A Detail'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'particulars3',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Particulars',
-		'oldfieldname': 'particulars3',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'particulars3',
+		'fieldtype': u'Small Text',
+		'label': u'Particulars',
+		'oldfieldname': u'particulars3',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1,
 		'reqd': 1,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'under_section3',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Under Section',
-		'oldfieldname': 'under_section3',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'under_section3',
+		'fieldtype': u'Data',
+		'label': u'Under Section',
+		'oldfieldname': u'under_section3',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'max_limit3',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Max. Limit',
-		'oldfieldname': 'max_limit3',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'max_limit3',
+		'fieldtype': u'Currency',
+		'label': u'Max. Limit',
+		'oldfieldname': u'max_limit3',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'actual_amount3',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Actual Amount',
-		'oldfieldname': 'actual_amount3',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'actual_amount3',
+		'fieldtype': u'Currency',
+		'label': u'Actual Amount',
+		'oldfieldname': u'actual_amount3',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'eligible_amount3',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Eligible Amount',
-		'oldfieldname': 'eligible_amount3',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'eligible_amount3',
+		'fieldtype': u'Currency',
+		'label': u'Eligible Amount',
+		'oldfieldname': u'eligible_amount3',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'modified_amount3',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Modified Amount',
-		'oldfieldname': 'modified_amount3',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'modified_amount3',
+		'fieldtype': u'Currency',
+		'label': u'Modified Amount',
+		'oldfieldname': u'modified_amount3',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/declaration_detail/declaration_detail.txt b/erpnext/hr/doctype/declaration_detail/declaration_detail.txt
index 3c06cfd..49f5fe3 100644
--- a/erpnext/hr/doctype/declaration_detail/declaration_detail.txt
+++ b/erpnext/hr/doctype/declaration_detail/declaration_detail.txt
@@ -3,142 +3,134 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:57',
+		'creation': '2012-03-27 14:35:54',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'HR',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 7
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Declaration Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Declaration Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Declaration Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Declaration Detail',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, Declaration Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Declaration Detail'
+		'name': u'Declaration Detail'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'particulars1',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Particulars',
-		'oldfieldname': 'particulars1',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'particulars1',
+		'fieldtype': u'Small Text',
+		'label': u'Particulars',
+		'oldfieldname': u'particulars1',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1,
 		'reqd': 1,
-		'width': '200px'
+		'width': u'200px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'under_section1',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Under Section',
-		'oldfieldname': 'under_section1',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'under_section1',
+		'fieldtype': u'Data',
+		'label': u'Under Section',
+		'oldfieldname': u'under_section1',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'max_limit1',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Max. Limit',
-		'oldfieldname': 'max_limit1',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'max_limit1',
+		'fieldtype': u'Currency',
+		'label': u'Max. Limit',
+		'oldfieldname': u'max_limit1',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'actual_amount1',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Actual Amount',
-		'oldfieldname': 'actual_amount1',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'actual_amount1',
+		'fieldtype': u'Currency',
+		'label': u'Actual Amount',
+		'oldfieldname': u'actual_amount1',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'eligible_amount1',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Eligible Amount',
-		'oldfieldname': 'eligible_amount1',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'eligible_amount1',
+		'fieldtype': u'Currency',
+		'label': u'Eligible Amount',
+		'oldfieldname': u'eligible_amount1',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'modified_amount1',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Modified Amount',
-		'oldfieldname': 'modified_amount1',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'modified_amount1',
+		'fieldtype': u'Currency',
+		'label': u'Modified Amount',
+		'oldfieldname': u'modified_amount1',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/deduction_detail/__init__.py b/erpnext/hr/doctype/deduction_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/deduction_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/deduction_detail/deduction_detail.txt b/erpnext/hr/doctype/deduction_detail/deduction_detail.txt
deleted file mode 100644
index ee24d79..0000000
--- a/erpnext/hr/doctype/deduction_detail/deduction_detail.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-# DocType, Deduction Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:57',
-		'docstatus': 0,
-		'modified': '2010-11-02 20:44:58',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 14
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Deduction Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Deduction Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Deduction Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'd_type',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Type',
-		'oldfieldname': 'd_type',
-		'oldfieldtype': 'Select',
-		'options': 'Deduction Type',
-		'reqd': 1,
-		'width': '200px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'd_modified_amt',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Amount',
-		'oldfieldname': 'd_modified_amt',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'depend_on_lwp',
-		'fieldtype': 'Check',
-		'idx': 4,
-		'label': 'Depend on LWP',
-		'oldfieldname': 'depend_on_lwp',
-		'oldfieldtype': 'Check'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/deduction_type/deduction_type.txt b/erpnext/hr/doctype/deduction_type/deduction_type.txt
index c54836f..4d3bbdd 100644
--- a/erpnext/hr/doctype/deduction_type/deduction_type.txt
+++ b/erpnext/hr/doctype/deduction_type/deduction_type.txt
@@ -3,46 +3,46 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:57',
+		'creation': '2012-03-27 14:35:54',
 		'docstatus': 0,
-		'modified': '2010-10-12 17:19:47',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:deduction_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:deduction_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 10
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Deduction Type',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Deduction Type',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Deduction Type',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Deduction Type',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -51,65 +51,59 @@
 	# DocType, Deduction Type
 	{
 		'doctype': 'DocType',
-		'name': 'Deduction Type'
+		'name': u'Deduction Type'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'HR User'
+		'doctype': u'DocPerm',
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'deduction_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Name',
-		'oldfieldname': 'deduction_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'deduction_name',
+		'fieldtype': u'Data',
+		'label': u'Name',
+		'oldfieldname': u'deduction_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0,
-		'width': '300px'
+		'width': u'300px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/department/department.txt b/erpnext/hr/doctype/department/department.txt
index aae0127..8d56347 100644
--- a/erpnext/hr/doctype/department/department.txt
+++ b/erpnext/hr/doctype/department/department.txt
@@ -3,46 +3,46 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:58',
+		'creation': '2012-03-27 14:35:54',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:department_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:department_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 7
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Department',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Department',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Department',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Department',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -51,51 +51,46 @@
 	# DocType, Department
 	{
 		'doctype': 'DocType',
-		'name': 'Department'
+		'name': u'Department'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'HR User'
+		'doctype': u'DocPerm',
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'department_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Department',
-		'oldfieldname': 'department_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'department_name',
+		'fieldtype': u'Data',
+		'label': u'Department',
+		'oldfieldname': u'department_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	}
diff --git a/erpnext/hr/doctype/designation/designation.txt b/erpnext/hr/doctype/designation/designation.txt
index 8a8f4d3..0d9ca32 100644
--- a/erpnext/hr/doctype/designation/designation.txt
+++ b/erpnext/hr/doctype/designation/designation.txt
@@ -3,46 +3,46 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:58',
+		'creation': '2012-03-27 14:35:54',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:designation_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:designation_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 7
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Designation',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Designation',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Designation',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Designation',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -51,51 +51,46 @@
 	# DocType, Designation
 	{
 		'doctype': 'DocType',
-		'name': 'Designation'
+		'name': u'Designation'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'HR User'
+		'doctype': u'DocPerm',
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'designation_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Designation',
-		'oldfieldname': 'designation_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'designation_name',
+		'fieldtype': u'Data',
+		'label': u'Designation',
+		'oldfieldname': u'designation_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	}
diff --git a/erpnext/hr/doctype/earn_deduction_detail/__init__.py b/erpnext/hr/doctype/earn_deduction_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/earn_deduction_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/earn_deduction_detail/earn_deduction_detail.txt b/erpnext/hr/doctype/earn_deduction_detail/earn_deduction_detail.txt
deleted file mode 100644
index 8b05961..0000000
--- a/erpnext/hr/doctype/earn_deduction_detail/earn_deduction_detail.txt
+++ /dev/null
@@ -1,116 +0,0 @@
-# DocType, Earn Deduction Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:59',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 4
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Earn Deduction Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Earn Deduction Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'All',
-		'write': 1
-	},
-
-	# DocType, Earn Deduction Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Earn Deduction Detail'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'earn_deduction_name',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Earn/Deduction Name',
-		'oldfieldname': 'earn_deduction_name',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'mode',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'label': 'Mode',
-		'oldfieldname': 'mode',
-		'oldfieldtype': 'Select',
-		'options': '\n%\nRs'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'per',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Per.(%)',
-		'oldfieldname': 'per',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amount',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Amount',
-		'oldfieldname': 'amount',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'type',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Type',
-		'oldfieldname': 'type',
-		'oldfieldtype': 'Data'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/earning_detail/__init__.py b/erpnext/hr/doctype/earning_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/earning_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/earning_detail/earning_detail.txt b/erpnext/hr/doctype/earning_detail/earning_detail.txt
deleted file mode 100644
index 399c6cb..0000000
--- a/erpnext/hr/doctype/earning_detail/earning_detail.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-# DocType, Earning Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:59',
-		'docstatus': 0,
-		'modified': '2011-02-09 13:02:55',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'hide_heading': 0,
-		'hide_toolbar': 0,
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 26
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Earning Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Earning Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Earning Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'e_type',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Type',
-		'oldfieldname': 'e_type',
-		'oldfieldtype': 'Data',
-		'options': 'Earning Type',
-		'reqd': 1,
-		'width': '200px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'modified_value',
-		'fieldtype': 'Currency',
-		'idx': 2,
-		'label': 'Amount',
-		'oldfieldname': 'modified_value',
-		'oldfieldtype': 'Currency',
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'depend_on_lwp',
-		'fieldtype': 'Check',
-		'idx': 3,
-		'label': 'Depend on LWP',
-		'oldfieldname': 'depend_on_lwp',
-		'oldfieldtype': 'Check'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/earning_type/earning_type.txt b/erpnext/hr/doctype/earning_type/earning_type.txt
index 203f8b5..f5588f1 100644
--- a/erpnext/hr/doctype/earning_type/earning_type.txt
+++ b/erpnext/hr/doctype/earning_type/earning_type.txt
@@ -3,46 +3,46 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:59',
+		'creation': '2012-03-27 14:35:54',
 		'docstatus': 0,
-		'modified': '2010-10-12 17:15:46',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:earning_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:earning_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 13
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Earning Type',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Earning Type',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Earning Type',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Earning Type',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -51,97 +51,89 @@
 	# DocType, Earning Type
 	{
 		'doctype': 'DocType',
-		'name': 'Earning Type'
+		'name': u'Earning Type'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'HR User'
+		'doctype': u'DocPerm',
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'earning_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Name',
-		'oldfieldname': 'earning_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'earning_name',
+		'fieldtype': u'Data',
+		'label': u'Name',
+		'oldfieldname': u'earning_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0,
 		'reqd': 0,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'taxable',
-		'fieldtype': 'Select',
-		'idx': 4,
-		'label': 'Taxable',
-		'oldfieldname': 'taxable',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'taxable',
+		'fieldtype': u'Select',
+		'label': u'Taxable',
+		'oldfieldname': u'taxable',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.taxable=='No'",
-		'doctype': 'DocField',
-		'fieldname': 'exemption_limit',
-		'fieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.taxable=='No'",
+		'doctype': u'DocField',
+		'fieldname': u'exemption_limit',
+		'fieldtype': u'Currency',
 		'hidden': 1,
-		'idx': 5,
-		'label': 'Exemption Limit',
-		'oldfieldname': 'exemption_limit',
-		'oldfieldtype': 'Currency',
+		'label': u'Exemption Limit',
+		'oldfieldname': u'exemption_limit',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/educational_qualifications/__init__.py b/erpnext/hr/doctype/educational_qualifications/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/educational_qualifications/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/educational_qualifications/educational_qualifications.txt b/erpnext/hr/doctype/educational_qualifications/educational_qualifications.txt
deleted file mode 100644
index d57139b..0000000
--- a/erpnext/hr/doctype/educational_qualifications/educational_qualifications.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-# DocType, Educational Qualifications
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:59',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 11
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Educational Qualifications',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Educational Qualifications
-	{
-		'doctype': 'DocType',
-		'name': 'Educational Qualifications'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'school_univ',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'School/University',
-		'oldfieldname': 'school_univ',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qualification',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Qualification (Degree/Diploma)',
-		'oldfieldname': 'qualification',
-		'oldfieldtype': 'Data',
-		'reqd': 0,
-		'search_index': 1,
-		'width': '170px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'level',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'Level',
-		'oldfieldname': 'level',
-		'oldfieldtype': 'Select',
-		'options': '\nGraduate\nPost Graduate\nUnder Graduate',
-		'reqd': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'year_of_passing',
-		'fieldtype': 'Int',
-		'idx': 4,
-		'label': 'Year of Passing',
-		'oldfieldname': 'year_of_passing',
-		'oldfieldtype': 'Int',
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'class_percent',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Class / Percentage',
-		'oldfieldname': 'class_percent',
-		'oldfieldtype': 'Data',
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'maj_opt_sub',
-		'fieldtype': 'Data',
-		'idx': 6,
-		'label': 'Major / Optional Subject',
-		'oldfieldname': 'maj_opt_sub',
-		'oldfieldtype': 'Data',
-		'reqd': 0,
-		'width': '170px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/educational_qualifications_detail/__init__.py b/erpnext/hr/doctype/educational_qualifications_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/educational_qualifications_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/educational_qualifications_detail/educational_qualifications_detail.txt b/erpnext/hr/doctype/educational_qualifications_detail/educational_qualifications_detail.txt
deleted file mode 100644
index 38067e0..0000000
--- a/erpnext/hr/doctype/educational_qualifications_detail/educational_qualifications_detail.txt
+++ /dev/null
@@ -1,109 +0,0 @@
-# DocType, Educational Qualifications Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:59',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Educational Qualifications Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Educational Qualifications Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Educational Qualifications Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'school_univ',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'School/University',
-		'oldfieldname': 'school_univ',
-		'oldfieldtype': 'Small Text'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qualification',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Qualification',
-		'oldfieldname': 'qualification',
-		'oldfieldtype': 'Data',
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'level',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'Level',
-		'oldfieldname': 'level',
-		'oldfieldtype': 'Select',
-		'options': 'Graduate\nPost Graduate\nUnder Graduate'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'year_of_passing',
-		'fieldtype': 'Int',
-		'idx': 4,
-		'label': 'Year of Passing',
-		'oldfieldname': 'year_of_passing',
-		'oldfieldtype': 'Int'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'class_per',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Class / Percentage',
-		'oldfieldname': 'class_per',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'maj_opt_subj',
-		'fieldtype': 'Text',
-		'idx': 6,
-		'label': 'Major/Optional Subjects',
-		'oldfieldname': 'maj_opt_subj',
-		'oldfieldtype': 'Text'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employee/employee.py b/erpnext/hr/doctype/employee/employee.py
index 2cf46a6..06833bf 100644
--- a/erpnext/hr/doctype/employee/employee.py
+++ b/erpnext/hr/doctype/employee/employee.py
@@ -39,7 +39,7 @@
   # Autoname
   #========================================================================================================
   def autoname(self):
-    ret = sql("select value from `tabSingles` where doctype = 'Manage Account' and field = 'emp_created_by'")
+    ret = sql("select value from `tabSingles` where doctype = 'Global Defaults' and field = 'emp_created_by'")
     if not ret:
       msgprint("To Save Employee, please go to Setup -->Global Defaults. Click on HR and select 'Employee Records to be created by'.")
       raise Exception 
@@ -113,7 +113,7 @@
   # Validate name
   #========================================================================================================
   def validate_name(self):  
-    ret = sql("select value from `tabSingles` where doctype = 'Manage Account' and field = 'emp_created_by'")
+    ret = sql("select value from `tabSingles` where doctype = 'Global Defaults' and field = 'emp_created_by'")
 
     if not ret:
       msgprint("To Save Employee, please go to Setup -->Global Defaults. Click on HR and select 'Employee Records to be created by'.")
diff --git a/erpnext/hr/doctype/employee/employee.txt b/erpnext/hr/doctype/employee/employee.txt
index 98caa2c..d9e2c1f 100644
--- a/erpnext/hr/doctype/employee/employee.txt
+++ b/erpnext/hr/doctype/employee/employee.txt
@@ -3,224 +3,260 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:59',
+		'creation': '2012-03-27 14:35:55',
 		'docstatus': 0,
-		'modified': '2011-08-11 17:27:12',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:55',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1308918132',
+		'_last_update': u'1308918132',
 		'allow_attach': 1,
 		'allow_trash': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'module': u'HR',
 		'name': '__common__',
-		'search_fields': 'employee_name',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'search_fields': u'employee_name',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': '%(employee_name)s',
-		'tag_fields': 'status',
+		'subject': u'%(employee_name)s',
+		'tag_fields': u'status',
 		'version': 444
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Employee',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Employee',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'amend': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Employee',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1,
-		'submit': 0
+		'parent': u'Employee',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
 	},
 
 	# DocType, Employee
 	{
 		'doctype': 'DocType',
-		'name': 'Employee'
+		'name': u'Employee'
 	},
 
 	# DocPerm
 	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 0,
-		'role': 'Employee',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All',
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'HR User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'HR Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'HR User'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'HR Manager'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'match': u'owner',
+		'permlevel': 0,
+		'submit': 0,
 		'write': 0
 	},
 
 	# DocPerm
 	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'match': u'owner',
 		'permlevel': 0,
-		'role': 'HR User',
-		'write': 1
+		'submit': 0,
+		'write': 0
 	},
 
 	# DocPerm
 	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'match': u'owner',
 		'permlevel': 0,
-		'role': 'HR Manager',
-		'write': 1
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'match': u'owner',
+		'permlevel': 0,
+		'submit': 0,
+		'write': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Basic Information',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'basic_information',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Information',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'description': 'To manage multiple series please go to Setup > Manage Series',
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'Naming Series',
+		'description': u'To manage multiple series please go to Setup > Manage Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Naming Series',
 		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
-		'options': 'EMP/',
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'EMP/',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'salutation',
-		'fieldtype': 'Select',
-		'idx': 4,
-		'label': 'Salutation',
-		'oldfieldname': 'salutation',
-		'oldfieldtype': 'Select',
-		'options': '\nMr\nMs',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'salutation',
+		'fieldtype': u'Select',
+		'label': u'Salutation',
+		'oldfieldname': u'salutation',
+		'oldfieldtype': u'Select',
+		'options': u'\nMr\nMs',
 		'permlevel': 0,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'employee_name',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Employee Name',
-		'oldfieldname': 'employee_name',
-		'oldfieldtype': 'Data',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'employee_name',
+		'fieldtype': u'Data',
+		'label': u'Employee Name',
+		'oldfieldname': u'employee_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_number',
-		'fieldtype': 'Data',
-		'idx': 6,
+		'doctype': u'DocField',
+		'fieldname': u'employee_number',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Employee Number',
-		'oldfieldname': 'employee_number',
-		'oldfieldtype': 'Data',
+		'label': u'Employee Number',
+		'oldfieldname': u'employee_number',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'date_of_joining',
-		'fieldtype': 'Date',
-		'idx': 7,
-		'label': 'Date of Joining',
-		'oldfieldname': 'date_of_joining',
-		'oldfieldtype': 'Date',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'date_of_joining',
+		'fieldtype': u'Date',
+		'label': u'Date of Joining',
+		'oldfieldname': u'date_of_joining',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'date_of_birth',
-		'fieldtype': 'Date',
-		'idx': 8,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'date_of_birth',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Date of Birth',
-		'oldfieldname': 'date_of_birth',
-		'oldfieldtype': 'Date',
+		'label': u'Date of Birth',
+		'oldfieldname': u'date_of_birth',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'gender',
-		'fieldtype': 'Select',
-		'idx': 9,
+		'doctype': u'DocField',
+		'fieldname': u'gender',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Gender',
-		'oldfieldname': 'gender',
-		'oldfieldtype': 'Select',
-		'options': '\nMale\nFemale',
+		'label': u'Gender',
+		'oldfieldname': u'gender',
+		'oldfieldtype': u'Select',
+		'options': u'\nMale\nFemale',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -228,13 +264,12 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 10,
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Company',
-		'options': 'link:Company',
+		'label': u'Company',
+		'options': u'link:Company',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1
@@ -242,26 +277,25 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 11,
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Active',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
-		'idx': 12,
+		'colour': u'White:FFF',
+		'default': u'Active',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Status',
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nActive\nLeft',
+		'label': u'Status',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nActive\nLeft',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -269,149 +303,140 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employment_type',
-		'fieldtype': 'Link',
-		'idx': 13,
+		'doctype': u'DocField',
+		'fieldname': u'employment_type',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Employment Type',
-		'oldfieldname': 'employment_type',
-		'oldfieldtype': 'Link',
-		'options': 'Employment Type',
+		'label': u'Employment Type',
+		'oldfieldname': u'employment_type',
+		'oldfieldtype': u'Link',
+		'options': u'Employment Type',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'scheduled_confirmation_date',
-		'fieldtype': 'Date',
-		'idx': 14,
+		'doctype': u'DocField',
+		'fieldname': u'scheduled_confirmation_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Scheduled Confirmation Date',
-		'oldfieldname': 'scheduled_confirmation_date',
-		'oldfieldtype': 'Date',
+		'label': u'Scheduled Confirmation Date',
+		'oldfieldname': u'scheduled_confirmation_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'final_confirmation_date',
-		'fieldtype': 'Date',
-		'idx': 15,
-		'label': 'Final Confirmation Date',
-		'oldfieldname': 'final_confirmation_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'final_confirmation_date',
+		'fieldtype': u'Date',
+		'label': u'Final Confirmation Date',
+		'oldfieldname': u'final_confirmation_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contract_end_date',
-		'fieldtype': 'Date',
-		'idx': 16,
+		'doctype': u'DocField',
+		'fieldname': u'contract_end_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Contract End Date',
-		'oldfieldname': 'contract_end_date',
-		'oldfieldtype': 'Date',
+		'label': u'Contract End Date',
+		'oldfieldname': u'contract_end_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'date_of_retirement',
-		'fieldtype': 'Date',
-		'idx': 17,
-		'label': 'Date Of Retirement',
-		'oldfieldname': 'date_of_retirement',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'date_of_retirement',
+		'fieldtype': u'Date',
+		'label': u'Date Of Retirement',
+		'oldfieldname': u'date_of_retirement',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Applicable Holiday List',
-		'doctype': 'DocField',
-		'fieldname': 'holiday_list',
-		'fieldtype': 'Link',
-		'idx': 18,
-		'label': 'Holiday List',
-		'oldfieldname': 'holiday_list',
-		'oldfieldtype': 'Link',
-		'options': 'Holiday List',
+		'colour': u'White:FFF',
+		'description': u'Applicable Holiday List',
+		'doctype': u'DocField',
+		'fieldname': u'holiday_list',
+		'fieldtype': u'Link',
+		'label': u'Holiday List',
+		'oldfieldname': u'holiday_list',
+		'oldfieldtype': u'Link',
+		'options': u'Holiday List',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 19,
-		'label': 'Job Profile',
+		'doctype': u'DocField',
+		'fieldname': u'job_profile',
+		'fieldtype': u'Section Break',
+		'label': u'Job Profile',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 20,
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'branch',
-		'fieldtype': 'Link',
-		'idx': 21,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'branch',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Branch',
-		'oldfieldname': 'branch',
-		'oldfieldtype': 'Link',
-		'options': 'Branch',
+		'label': u'Branch',
+		'oldfieldname': u'branch',
+		'oldfieldtype': u'Link',
+		'options': u'Branch',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Link',
-		'idx': 22,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'department',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Department',
-		'oldfieldname': 'department',
-		'oldfieldtype': 'Link',
-		'options': 'Department',
+		'label': u'Department',
+		'oldfieldname': u'department',
+		'oldfieldtype': u'Link',
+		'options': u'Department',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Link',
-		'idx': 23,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Designation',
-		'oldfieldname': 'designation',
-		'oldfieldtype': 'Link',
-		'options': 'Designation',
+		'label': u'Designation',
+		'oldfieldname': u'designation',
+		'oldfieldtype': u'Link',
+		'options': u'Designation',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -419,666 +444,624 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'grade',
-		'fieldtype': 'Link',
-		'idx': 24,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'grade',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Grade',
-		'oldfieldname': 'grade',
-		'oldfieldtype': 'Link',
-		'options': 'Grade',
+		'label': u'Grade',
+		'oldfieldname': u'grade',
+		'oldfieldtype': u'Link',
+		'options': u'Grade',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'reports_to',
-		'fieldtype': 'Link',
-		'idx': 25,
-		'label': 'Reports to',
-		'oldfieldname': 'reports_to',
-		'oldfieldtype': 'Link',
-		'options': 'Employee',
+		'doctype': u'DocField',
+		'fieldname': u'reports_to',
+		'fieldtype': u'Link',
+		'label': u'Reports to',
+		'oldfieldname': u'reports_to',
+		'oldfieldtype': u'Link',
+		'options': u'Employee',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'description': 'Provide email id registered in company',
-		'doctype': 'DocField',
-		'fieldname': 'company_email',
-		'fieldtype': 'Data',
-		'idx': 26,
+		'description': u'Provide email id registered in company',
+		'doctype': u'DocField',
+		'fieldname': u'company_email',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Email (By company)',
-		'oldfieldname': 'company_email',
-		'oldfieldtype': 'Data',
+		'label': u'Email (By company)',
+		'oldfieldname': u'company_email',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 27,
-		'label': 'Salary Information',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'salary_information',
+		'fieldtype': u'Column Break',
+		'label': u'Salary Information',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'salary_mode',
-		'fieldtype': 'Select',
-		'idx': 28,
-		'label': 'Salary Mode',
-		'oldfieldname': 'salary_mode',
-		'oldfieldtype': 'Select',
-		'options': '\nBank\nCash\nCheque',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'salary_mode',
+		'fieldtype': u'Select',
+		'label': u'Salary Mode',
+		'oldfieldname': u'salary_mode',
+		'oldfieldtype': u'Select',
+		'options': u'\nBank\nCash\nCheque',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.salary_mode == 'Bank'",
-		'doctype': 'DocField',
-		'fieldname': 'bank_name',
-		'fieldtype': 'Data',
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.salary_mode == 'Bank'",
+		'doctype': u'DocField',
+		'fieldname': u'bank_name',
+		'fieldtype': u'Data',
 		'hidden': 0,
-		'idx': 29,
 		'in_filter': 1,
-		'label': 'Bank Name',
-		'oldfieldname': 'bank_name',
-		'oldfieldtype': 'Link',
-		'options': 'Suggest',
+		'label': u'Bank Name',
+		'oldfieldname': u'bank_name',
+		'oldfieldtype': u'Link',
+		'options': u'Suggest',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.salary_mode == 'Bank'",
-		'doctype': 'DocField',
-		'fieldname': 'bank_ac_no',
-		'fieldtype': 'Data',
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.salary_mode == 'Bank'",
+		'doctype': u'DocField',
+		'fieldname': u'bank_ac_no',
+		'fieldtype': u'Data',
 		'hidden': 0,
-		'idx': 30,
-		'label': 'Bank A/C No.',
-		'oldfieldname': 'bank_ac_no',
-		'oldfieldtype': 'Data',
+		'label': u'Bank A/C No.',
+		'oldfieldname': u'bank_ac_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'esic_card_no',
-		'fieldtype': 'Data',
-		'idx': 31,
-		'label': 'ESIC CARD No',
-		'oldfieldname': 'esic_card_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'esic_card_no',
+		'fieldtype': u'Data',
+		'label': u'ESIC CARD No',
+		'oldfieldname': u'esic_card_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'pf_number',
-		'fieldtype': 'Data',
-		'idx': 32,
-		'label': 'PF Number',
-		'oldfieldname': 'pf_number',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'pf_number',
+		'fieldtype': u'Data',
+		'label': u'PF Number',
+		'oldfieldname': u'pf_number',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'gratuity_lic_id',
-		'fieldtype': 'Data',
-		'idx': 33,
-		'label': 'Gratuity LIC ID',
-		'oldfieldname': 'gratuity_lic_id',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'gratuity_lic_id',
+		'fieldtype': u'Data',
+		'label': u'Gratuity LIC ID',
+		'oldfieldname': u'gratuity_lic_id',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 34,
-		'label': 'Contact Details',
+		'doctype': u'DocField',
+		'fieldname': u'contact_details',
+		'fieldtype': u'Section Break',
+		'label': u'Contact Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 35,
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cell_number',
-		'fieldtype': 'Data',
-		'idx': 36,
-		'label': 'Cell Number',
+		'doctype': u'DocField',
+		'fieldname': u'cell_number',
+		'fieldtype': u'Data',
+		'label': u'Cell Number',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'personal_email',
-		'fieldtype': 'Data',
-		'idx': 37,
-		'label': 'Personal Email',
+		'doctype': u'DocField',
+		'fieldname': u'personal_email',
+		'fieldtype': u'Data',
+		'label': u'Personal Email',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'notice_number_of_days',
-		'fieldtype': 'Int',
-		'idx': 38,
-		'label': 'Notice - Number of Days',
-		'oldfieldname': 'notice_number_of_days',
-		'oldfieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'notice_number_of_days',
+		'fieldtype': u'Int',
+		'label': u'Notice - Number of Days',
+		'oldfieldname': u'notice_number_of_days',
+		'oldfieldtype': u'Int',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 39,
-		'label': 'Emergency Contact Details',
-		'options': '<b>Emergency Contact Details</b>',
+		'doctype': u'DocField',
+		'fieldname': u'emergency_contact_details',
+		'fieldtype': u'HTML',
+		'label': u'Emergency Contact Details',
+		'options': u'<b>Emergency Contact Details</b>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'person_to_be_contacted',
-		'fieldtype': 'Data',
-		'idx': 40,
-		'label': 'Person To Be Contacted',
+		'doctype': u'DocField',
+		'fieldname': u'person_to_be_contacted',
+		'fieldtype': u'Data',
+		'label': u'Person To Be Contacted',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'relation',
-		'fieldtype': 'Data',
-		'idx': 41,
-		'label': 'Relation',
+		'doctype': u'DocField',
+		'fieldname': u'relation',
+		'fieldtype': u'Data',
+		'label': u'Relation',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'emergency_phone_number',
-		'fieldtype': 'Data',
-		'idx': 42,
-		'label': 'Emergency Phone Number',
+		'doctype': u'DocField',
+		'fieldname': u'emergency_phone_number',
+		'fieldtype': u'Data',
+		'label': u'Emergency Phone Number',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 43,
+		'doctype': u'DocField',
+		'fieldname': u'column_break4',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'permanent_accommodation_type',
-		'fieldtype': 'Select',
-		'idx': 44,
-		'label': 'Permanent Accommodation Type',
-		'options': '\nRented\nOwned',
+		'doctype': u'DocField',
+		'fieldname': u'permanent_accommodation_type',
+		'fieldtype': u'Select',
+		'label': u'Permanent Accommodation Type',
+		'options': u'\nRented\nOwned',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'permanent_address',
-		'fieldtype': 'Small Text',
-		'idx': 45,
-		'label': 'Permanent Address',
+		'doctype': u'DocField',
+		'fieldname': u'permanent_address',
+		'fieldtype': u'Small Text',
+		'label': u'Permanent Address',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'current_accommodation_type',
-		'fieldtype': 'Select',
-		'idx': 46,
-		'label': 'Current Accommodation Type',
-		'options': '\nRented\nOwned',
+		'doctype': u'DocField',
+		'fieldname': u'current_accommodation_type',
+		'fieldtype': u'Select',
+		'label': u'Current Accommodation Type',
+		'options': u'\nRented\nOwned',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'current_address',
-		'fieldtype': 'Small Text',
-		'idx': 47,
-		'label': 'Current Address',
+		'doctype': u'DocField',
+		'fieldname': u'current_address',
+		'fieldtype': u'Small Text',
+		'label': u'Current Address',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 48,
-		'label': 'Personal Details',
+		'doctype': u'DocField',
+		'fieldname': u'personal_details',
+		'fieldtype': u'Section Break',
+		'label': u'Personal Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 49,
+		'doctype': u'DocField',
+		'fieldname': u'column_break5',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'pan_number',
-		'fieldtype': 'Data',
-		'idx': 50,
-		'label': 'PAN Number',
+		'doctype': u'DocField',
+		'fieldname': u'pan_number',
+		'fieldtype': u'Data',
+		'label': u'PAN Number',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'passport_number',
-		'fieldtype': 'Data',
-		'idx': 51,
-		'label': 'Passport Number',
+		'doctype': u'DocField',
+		'fieldname': u'passport_number',
+		'fieldtype': u'Data',
+		'label': u'Passport Number',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'employee_profile',
+		'fieldtype': u'Button',
 		'hidden': 1,
-		'idx': 52,
-		'label': 'Employee Profile',
-		'oldfieldtype': 'Button',
+		'label': u'Employee Profile',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'date_of_issue',
-		'fieldtype': 'Date',
-		'idx': 53,
-		'label': 'Date of Issue',
+		'doctype': u'DocField',
+		'fieldname': u'date_of_issue',
+		'fieldtype': u'Date',
+		'label': u'Date of Issue',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'valid_upto',
-		'fieldtype': 'Date',
-		'idx': 54,
-		'label': 'Valid Upto',
+		'doctype': u'DocField',
+		'fieldname': u'valid_upto',
+		'fieldtype': u'Date',
+		'label': u'Valid Upto',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'salary_structure',
+		'fieldtype': u'Button',
 		'hidden': 1,
-		'idx': 55,
-		'label': 'Salary Structure',
-		'oldfieldtype': 'Button',
+		'label': u'Salary Structure',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'place_of_issue',
-		'fieldtype': 'Data',
-		'idx': 56,
-		'label': 'Place of Issue',
+		'doctype': u'DocField',
+		'fieldname': u'place_of_issue',
+		'fieldtype': u'Data',
+		'label': u'Place of Issue',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'marital_status',
-		'fieldtype': 'Select',
-		'idx': 57,
-		'label': 'Marital Status',
-		'options': '\nSingle\nMarried\nDivorced\nWidowed',
+		'doctype': u'DocField',
+		'fieldname': u'marital_status',
+		'fieldtype': u'Select',
+		'label': u'Marital Status',
+		'options': u'\nSingle\nMarried\nDivorced\nWidowed',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'blood_group',
-		'fieldtype': 'Select',
-		'idx': 58,
-		'label': 'Blood Group',
-		'options': '\nA+\nA-\nB+\nB-\nAB+\nAB-\nO+\nO-',
+		'doctype': u'DocField',
+		'fieldname': u'blood_group',
+		'fieldtype': u'Select',
+		'label': u'Blood Group',
+		'options': u'\nA+\nA-\nB+\nB-\nAB+\nAB-\nO+\nO-',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 59,
+		'doctype': u'DocField',
+		'fieldname': u'column_break6',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Here you can maintain family details like name and occupation of parent, spouse and children',
-		'doctype': 'DocField',
-		'fieldname': 'family_background',
-		'fieldtype': 'Small Text',
-		'idx': 60,
-		'label': 'Family Background',
+		'colour': u'White:FFF',
+		'description': u'Here you can maintain family details like name and occupation of parent, spouse and children',
+		'doctype': u'DocField',
+		'fieldname': u'family_background',
+		'fieldtype': u'Small Text',
+		'label': u'Family Background',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Here you can maintain height, weight, allergies, medical concerns etc',
-		'doctype': 'DocField',
-		'fieldname': 'health_details',
-		'fieldtype': 'Small Text',
-		'idx': 61,
-		'label': 'Health Details',
+		'colour': u'White:FFF',
+		'description': u'Here you can maintain height, weight, allergies, medical concerns etc',
+		'doctype': u'DocField',
+		'fieldname': u'health_details',
+		'fieldtype': u'Small Text',
+		'label': u'Health Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 62,
-		'label': 'Educational Qualification',
+		'doctype': u'DocField',
+		'fieldname': u'educational_qualification',
+		'fieldtype': u'Section Break',
+		'label': u'Educational Qualification',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'educational_qualification_details',
-		'fieldtype': 'Table',
-		'idx': 63,
-		'label': 'Educational Qualification Details',
-		'options': 'Educational Qualifications Detail',
+		'doctype': u'DocField',
+		'fieldname': u'educational_qualification_details',
+		'fieldtype': u'Table',
+		'label': u'Educational Qualification Details',
+		'options': u'Employee Education',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 64,
-		'label': 'Career History',
+		'doctype': u'DocField',
+		'fieldname': u'career_history',
+		'fieldtype': u'Section Break',
+		'label': u'Career History',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 65,
-		'label': 'Previous Work Experience',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'previous_work_experience',
+		'fieldtype': u'Section Break',
+		'label': u'Previous Work Experience',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'previous_experience_details',
-		'fieldtype': 'Table',
-		'idx': 66,
-		'label': 'Previous Experience Details',
-		'options': 'Previous Experience Detail',
+		'doctype': u'DocField',
+		'fieldname': u'previous_experience_details',
+		'fieldtype': u'Table',
+		'label': u'Employee External Work History',
+		'options': u'Employee External Work History',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 67,
-		'label': 'History In Company',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'history_in_company',
+		'fieldtype': u'Section Break',
+		'label': u'History In Company',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'experience_in_company_details',
-		'fieldtype': 'Table',
-		'idx': 68,
-		'label': 'Experience In Company Details',
-		'options': 'Experience In Company Detail',
+		'doctype': u'DocField',
+		'fieldname': u'experience_in_company_details',
+		'fieldtype': u'Table',
+		'label': u'Employee Internal Work Historys',
+		'options': u'Employee Internal Work History',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 69,
-		'label': 'Exit',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'exit',
+		'fieldtype': u'Section Break',
+		'label': u'Exit',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 70,
+		'doctype': u'DocField',
+		'fieldname': u'column_break7',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'resignation_letter_date',
-		'fieldtype': 'Date',
-		'idx': 71,
-		'label': 'Resignation Letter Date',
-		'oldfieldname': 'resignation_letter_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'resignation_letter_date',
+		'fieldtype': u'Date',
+		'label': u'Resignation Letter Date',
+		'oldfieldname': u'resignation_letter_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'relieving_date',
-		'fieldtype': 'Date',
-		'idx': 72,
+		'doctype': u'DocField',
+		'fieldname': u'relieving_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Relieving Date',
-		'oldfieldname': 'relieving_date',
-		'oldfieldtype': 'Date',
+		'label': u'Relieving Date',
+		'oldfieldname': u'relieving_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'reason_for_leaving',
-		'fieldtype': 'Data',
-		'idx': 73,
-		'label': 'Reason for Leaving',
-		'oldfieldname': 'reason_for_leaving',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'reason_for_leaving',
+		'fieldtype': u'Data',
+		'label': u'Reason for Leaving',
+		'oldfieldname': u'reason_for_leaving',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'leave_encashed',
-		'fieldtype': 'Select',
-		'idx': 74,
-		'label': 'Leave Encashed?',
-		'oldfieldname': 'leave_encashed',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'doctype': u'DocField',
+		'fieldname': u'leave_encashed',
+		'fieldtype': u'Select',
+		'label': u'Leave Encashed?',
+		'oldfieldname': u'leave_encashed',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'encashment_date',
-		'fieldtype': 'Date',
-		'idx': 75,
-		'label': 'Encashment Date',
-		'oldfieldname': 'encashment_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'encashment_date',
+		'fieldtype': u'Date',
+		'label': u'Encashment Date',
+		'oldfieldname': u'encashment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 76,
-		'label': 'Exit Interview Details',
-		'oldfieldname': 'col_brk6',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'exit_interview_details',
+		'fieldtype': u'Column Break',
+		'label': u'Exit Interview Details',
+		'oldfieldname': u'col_brk6',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'held_on',
-		'fieldtype': 'Date',
-		'idx': 77,
-		'label': 'Held On',
-		'oldfieldname': 'held_on',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'held_on',
+		'fieldtype': u'Date',
+		'label': u'Held On',
+		'oldfieldname': u'held_on',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'reason_for_resignation',
-		'fieldtype': 'Select',
-		'idx': 78,
-		'label': 'Reason for Resignation',
-		'oldfieldname': 'reason_for_resignation',
-		'oldfieldtype': 'Select',
-		'options': '\nBetter Prospects\nHealth Concerns',
+		'doctype': u'DocField',
+		'fieldname': u'reason_for_resignation',
+		'fieldtype': u'Select',
+		'label': u'Reason for Resignation',
+		'oldfieldname': u'reason_for_resignation',
+		'oldfieldtype': u'Select',
+		'options': u'\nBetter Prospects\nHealth Concerns',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'new_workplace',
-		'fieldtype': 'Data',
-		'idx': 79,
-		'label': 'New Workplace',
-		'oldfieldname': 'new_workplace',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'new_workplace',
+		'fieldtype': u'Data',
+		'label': u'New Workplace',
+		'oldfieldname': u'new_workplace',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'feedback',
-		'fieldtype': 'Small Text',
-		'idx': 80,
-		'label': 'Feedback',
-		'oldfieldname': 'feedback',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'feedback',
+		'fieldtype': u'Small Text',
+		'label': u'Feedback',
+		'oldfieldname': u'feedback',
+		'oldfieldtype': u'Text',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 81,
-		'label': 'File List',
+		'label': u'File List',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 82,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	}
-]
\ No newline at end of file
+]
diff --git a/erpnext/hr/doctype/employee_profile/__init__.py b/erpnext/hr/doctype/employee_education/__init__.py
similarity index 100%
copy from erpnext/hr/doctype/employee_profile/__init__.py
copy to erpnext/hr/doctype/employee_education/__init__.py
diff --git a/erpnext/hr/doctype/employee_education/employee_education.txt b/erpnext/hr/doctype/employee_education/employee_education.txt
new file mode 100644
index 0000000..b920fd6
--- /dev/null
+++ b/erpnext/hr/doctype/employee_education/employee_education.txt
@@ -0,0 +1,103 @@
+# DocType, Employee Education
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:54',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 5
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Employee Education',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Employee Education
+	{
+		'doctype': 'DocType',
+		'name': u'Employee Education'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'school_univ',
+		'fieldtype': u'Small Text',
+		'label': u'School/University',
+		'oldfieldname': u'school_univ',
+		'oldfieldtype': u'Small Text'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qualification',
+		'fieldtype': u'Data',
+		'label': u'Qualification',
+		'oldfieldname': u'qualification',
+		'oldfieldtype': u'Data',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'level',
+		'fieldtype': u'Select',
+		'label': u'Level',
+		'oldfieldname': u'level',
+		'oldfieldtype': u'Select',
+		'options': u'Graduate\nPost Graduate\nUnder Graduate'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'year_of_passing',
+		'fieldtype': u'Int',
+		'label': u'Year of Passing',
+		'oldfieldname': u'year_of_passing',
+		'oldfieldtype': u'Int'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'class_per',
+		'fieldtype': u'Data',
+		'label': u'Class / Percentage',
+		'oldfieldname': u'class_per',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'maj_opt_subj',
+		'fieldtype': u'Text',
+		'label': u'Major/Optional Subjects',
+		'oldfieldname': u'maj_opt_subj',
+		'oldfieldtype': u'Text'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employee_profile/__init__.py b/erpnext/hr/doctype/employee_external_work_history/__init__.py
similarity index 100%
copy from erpnext/hr/doctype/employee_profile/__init__.py
copy to erpnext/hr/doctype/employee_external_work_history/__init__.py
diff --git a/erpnext/hr/doctype/employee_external_work_history/employee_external_work_history.txt b/erpnext/hr/doctype/employee_external_work_history/employee_external_work_history.txt
new file mode 100644
index 0000000..167675a
--- /dev/null
+++ b/erpnext/hr/doctype/employee_external_work_history/employee_external_work_history.txt
@@ -0,0 +1,120 @@
+# DocType, Employee External Work History
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:59',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:59',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 3
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Employee External Work History',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# These values are common for all DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Employee External Work History',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'role': u'All',
+		'write': 1
+	},
+
+	# DocType, Employee External Work History
+	{
+		'doctype': 'DocType',
+		'name': u'Employee External Work History'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'company_name',
+		'fieldtype': u'Data',
+		'label': u'Company',
+		'oldfieldname': u'company_name',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Data',
+		'label': u'Designation',
+		'oldfieldname': u'designation',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'salary',
+		'fieldtype': u'Currency',
+		'label': u'Salary',
+		'oldfieldname': u'salary',
+		'oldfieldtype': u'Currency'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'address',
+		'fieldtype': u'Small Text',
+		'label': u'Address',
+		'oldfieldname': u'address',
+		'oldfieldtype': u'Small Text'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact',
+		'fieldtype': u'Data',
+		'label': u'Contact',
+		'oldfieldname': u'contact',
+		'oldfieldtype': u'Data'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total_experience',
+		'fieldtype': u'Data',
+		'label': u'Total Experience',
+		'oldfieldname': u'total_experience',
+		'oldfieldtype': u'Data'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employee_profile/__init__.py b/erpnext/hr/doctype/employee_internal_work_history/__init__.py
similarity index 100%
copy from erpnext/hr/doctype/employee_profile/__init__.py
copy to erpnext/hr/doctype/employee_internal_work_history/__init__.py
diff --git a/erpnext/hr/doctype/employee_internal_work_history/employee_internal_work_history.txt b/erpnext/hr/doctype/employee_internal_work_history/employee_internal_work_history.txt
new file mode 100644
index 0000000..3dcc1ff
--- /dev/null
+++ b/erpnext/hr/doctype/employee_internal_work_history/employee_internal_work_history.txt
@@ -0,0 +1,104 @@
+# DocType, Employee Internal Work History
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:57',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:57',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'show_in_menu': 0,
+		'version': 6
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Employee Internal Work History',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Employee Internal Work History
+	{
+		'doctype': 'DocType',
+		'name': u'Employee Internal Work History'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'branch',
+		'fieldtype': u'Select',
+		'label': u'Branch',
+		'oldfieldname': u'branch',
+		'oldfieldtype': u'Select',
+		'options': u'link:Branch'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'department',
+		'fieldtype': u'Select',
+		'label': u'Department',
+		'oldfieldname': u'department',
+		'oldfieldtype': u'Select',
+		'options': u'link:Department'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Select',
+		'label': u'Designation',
+		'oldfieldname': u'designation',
+		'oldfieldtype': u'Select',
+		'options': u'link:Designation'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'grade',
+		'fieldtype': u'Select',
+		'label': u'Grade',
+		'oldfieldname': u'grade',
+		'oldfieldtype': u'Select',
+		'options': u'link:Grade'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'from_date',
+		'fieldtype': u'Date',
+		'label': u'From Date',
+		'oldfieldname': u'from_date',
+		'oldfieldtype': u'Date'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'to_date',
+		'fieldtype': u'Date',
+		'label': u'To Date',
+		'oldfieldname': u'to_date',
+		'oldfieldtype': u'Date'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employee_profile/employee_profile.js b/erpnext/hr/doctype/employee_profile/employee_profile.js
deleted file mode 100644
index ac2a2f4..0000000
--- a/erpnext/hr/doctype/employee_profile/employee_profile.js
+++ /dev/null
@@ -1,60 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-cur_frm.cscript.onload = function(doc, cdt, cdn){
-  $c('runserverobj', args={'method':'cal_tot_exp','docs':compress_doclist (make_doclist (doc.doctype,doc.name))},
-function(r, rt) { refresh_many(['year','months']); });
-}
-
-//===========================================================
-
-cur_frm.cscript.employee = function(doc, cdt, cdn){
-  $c('runserverobj', args={'method':'get_doj','docs':compress_doclist (make_doclist (doc.doctype,doc.name))},
-function(r, rt) { refresh_many(['employee_name','date_of_joining']); });
-}
-
-//===========================================================
-
-cur_frm.cscript.country1 = function(doc, cdt, cdn) {
-  var mydoc=doc;
-  $c('runserverobj', args={'method':'check_state','arg':doc.country1, 'docs':compress_doclist([doc])},
-    function(r,rt){
-
-      if(r.message) {
-        var doc = locals[mydoc.doctype][mydoc.name];
-        doc.state1 = '';
-        get_field(doc.doctype, 'state1' , doc.name).options = r.message;
-        refresh_field('state1');
-      }
-    }  
-  );
-}
-
-//===========================================================
-cur_frm.cscript.country2 = function(doc, cdt, cdn) {
-  var mydoc=doc;
-  $c('runserverobj', args={'method':'check_state', 'arg':doc.country2,'docs':compress_doclist([doc])},
-    function(r,rt){
-
-      if(r.message) {
-        var doc = locals[mydoc.doctype][mydoc.name];
-        doc.state2 = '';
-        get_field(doc.doctype, 'state2' , doc.name).options = r.message;
-        refresh_field('state2');
-      }
-    }  
-  );
-}
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employee_profile/employee_profile.py b/erpnext/hr/doctype/employee_profile/employee_profile.py
deleted file mode 100644
index 5cc7dd6..0000000
--- a/erpnext/hr/doctype/employee_profile/employee_profile.py
+++ /dev/null
@@ -1,89 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  #init function
-  def __init__(self,doc,doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-
-
-  #=============================================================
-  def autoname(self):
-    self.doc.name = make_autoname('EMP-'+self.doc.employee)
-
-  #=============================================================
-  def validate(self):
-    if self.doc.personal_email:
-      if not validate_email_add(self.doc.personal_email):
-        msgprint("Please enter valid Personal Email")
-        raise Exception
-    ret = sql("select name from `tabEmployee Profile` where employee = '%s' and name !='%s'"%(self.doc.employee,self.doc.name))
-    if ret:
-      msgprint("Employee Profile is already created for Employee : '%s'"%self.doc.employee)
-      raise Exception
-
-  #=============================================================
-  def get_doj(self):
-    ret_doj = sql("select employee_name,date_of_joining from `tabEmployee` where name = '%s'"%self.doc.employee)
-    if ret_doj:
-      set(self.doc, 'employee_name', cstr(ret_doj[0][0]))
-      set(self.doc,'date_of_joining', ret_doj[0][1].strftime('%Y-%m-%d'))
-
-  #=============================================================
-  #calculate total experience in company - total year and month
-  def cal_tot_exp(self):
-    if not self.doc.date_of_joining:
-      self.get_doj()
-    
-      import datetime
-      today  = nowdate()
-    
-      diff = (getdate(today) - getdate(self.doc.date_of_joining)).days
-      diff1 = cint(diff)/365
-      a = cint(diff)%365
-      diff2 = cint(a)/30
-      if(cint(diff1)<0):
-        set(self.doc,'year', 0)
-      else:
-        set(self.doc,'year', cint(diff1))
-      if(cint(diff1)<0):
-        set(self.doc,'months', 0)
-      else:
-        set(self.doc,'months', cint(diff2)) 
-
-  #=============================================================
-  def check_state(self,country):
-    return "\n" + "\n".join([i[0] for i in sql("select state_name from `tabState` where `tabState`.country='%s' " %country)])
diff --git a/erpnext/hr/doctype/employee_profile/employee_profile.txt b/erpnext/hr/doctype/employee_profile/employee_profile.txt
deleted file mode 100644
index 2417846..0000000
--- a/erpnext/hr/doctype/employee_profile/employee_profile.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Tray', 'is_transaction_doc': None, 'creation': '2010-04-01 14:14:43', 'search_fields': None, 'module': 'Payroll', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': None, 'allow_rename': None, 'smallicon': None, 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 134, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': None, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': 1, 'allow_print': None, 'autoname': '', 'client_script_core': None, 'client_string': None, 'use_template': None, 'modified_by': 'harshada@webnotestech.com', 'document_type': None, 'name': 'Employee Profile', 'idx': None, 'hide_toolbar': None, 'colour': 'Light Blue:DEF', 'client_script': None, 'modified': '2010-09-20 14:06:57', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}, {'cancel': 1, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM00728', 'parent': 'Employee Profile', 'read': 1, 'create': 1, 'creation': '2010-04-01 14:14:43', 'modified': '2010-05-26 12:27:30', 'submit': None, 'doctype': 'DocPerm', 'write': 1, 'idx': 1, 'parenttype': 'DocType', 'role': 'Administrator', 'owner': 'Administrator', 'docstatus': 0, 'permlevel': 0, 'match': None, 'parentfield': 'permissions'}, {'cancel': None, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM00729', 'parent': 'Employee Profile', 'read': 1, 'create': None, 'creation': '2010-04-01 14:14:43', 'modified': '2010-05-26 12:27:30', 'submit': None, 'doctype': 'DocPerm', 'write': None, 'idx': 2, 'parenttype': 'DocType', 'role': 'Administrator', 'owner': 'Administrator', 'docstatus': 0, 'permlevel': 1, 'match': None, 'parentfield': 'permissions'}, {'cancel': 1, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM00809', 'parent': 'Employee Profile', 'read': 1, 'create': 1, 'creation': '2010-04-19 09:57:38', 'modified': '2010-05-26 12:27:30', 'submit': None, 'doctype': 'DocPerm', 'write': 1, 'idx': 3, 'parenttype': 'DocType', 'role': 'HR Manager', 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'permlevel': 0, 'match': None, 'parentfield': 'permissions'}, {'cancel': None, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM00810', 'parent': 'Employee Profile', 'read': 1, 'create': None, 'creation': '2010-04-19 09:57:38', 'modified': '2010-05-26 12:27:30', 'submit': None, 'doctype': 'DocPerm', 'write': None, 'idx': 4, 'parenttype': 'DocType', 'role': 'HR Manager', 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'permlevel': 1, 'match': None, 'parentfield': 'permissions'}, {'cancel': 1, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM00811', 'parent': 'Employee Profile', 'read': 1, 'create': 1, 'creation': '2010-04-19 09:57:38', 'modified': '2010-05-26 12:27:30', 'submit': None, 'doctype': 'DocPerm', 'write': 1, 'idx': 5, 'parenttype': 'DocType', 'role': 'HR User', 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'permlevel': 0, 'match': None, 'parentfield': 'permissions'}, {'cancel': None, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM00812', 'parent': 'Employee Profile', 'read': 1, 'create': None, 'creation': '2010-04-19 09:57:38', 'modified': '2010-05-26 12:27:30', 'submit': None, 'doctype': 'DocPerm', 'write': None, 'idx': 6, 'parenttype': 'DocType', 'role': 'HR User', 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'permlevel': 1, 'match': None, 'parentfield': 'permissions'}, {'no_copy': None, 'oldfieldtype': 'Small Text', 'creation': '2010-04-20 14:06:44', 'doctype': 'DocField', 'oldfieldname': 'trash_reason', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Trash Reason', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 1, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04843', 'idx': 1, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'trash_reason', 'fieldtype': 'Small Text', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Contact', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04302', 'idx': 2, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Column Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': '', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Personal Contact Details', 'width': '50%', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04303', 'idx': 3, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': '', 'fieldtype': 'Column Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Link', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'employee', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Employee', 'width': None, 'trigger': 'Client', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04304', 'idx': 4, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'employee', 'fieldtype': 'Link', 'options': 'Employee', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-05-25 09:59:10', 'doctype': 'DocField', 'oldfieldname': 'employee_name', 'owner': 'harshada@webnotestech.com', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Employee Name', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 1, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL05037', 'idx': 5, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'employee_name', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Date', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'date_of_joining', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Date of Joining', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 1, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04305', 'idx': 6, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'date_of_joining', 'fieldtype': 'Date', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'cell_number', 'owner': 'Administrator', 'reqd': 0, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Cell Number', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04306', 'idx': 7, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'cell_number', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'personal_email', 'owner': 'Administrator', 'reqd': 0, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Personal Email', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04307', 'idx': 8, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'personal_email', 'fieldtype': 'Data', 'options': '', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Column Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Emergency Contact Details', 'width': '50%', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04308', 'idx': 9, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Column Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'person_to_be_contacted', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Person to be contacted', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04309', 'idx': 10, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'person_to_be_contacted', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'relation', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Relation', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04310', 'idx': 11, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'relation', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'emergency_phone_number', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Emergency Phone Number', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04311', 'idx': 12, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'emergency_phone_number', 'fieldtype': 'Data', 'options': 'Phone', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Address', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04312', 'idx': 13, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': 'Simple', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Column Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Permanent Address', 'width': '50%', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04313', 'idx': 14, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Column Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'permanent_accommodation_type', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Permanent Accommodation Type', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04314', 'idx': 15, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'permanent_accommodation_type', 'fieldtype': 'Select', 'options': '\nRented\nOwned', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'permanent_address_line_1', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Permanent Address Line 1', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04315', 'idx': 16, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'permanent_address_line_1', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'permanent_address_line_2', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Permanent Address Line 2', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04316', 'idx': 17, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'permanent_address_line_2', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Link', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'city1', 'owner': 'Administrator', 'reqd': 0, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'City / Town(P)', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04317', 'idx': 18, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'city1', 'fieldtype': 'Link', 'options': 'City', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'country1', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Country(P)', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04319', 'idx': 19, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'country1', 'fieldtype': 'Select', 'options': 'link:Country', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'state1', 'owner': 'Administrator', 'reqd': 0, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'State(P)', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04318', 'idx': 20, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'state1', 'fieldtype': 'Select', 'options': 'link:State', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'phn_no1', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Phone No(P)', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04320', 'idx': 21, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'phn_no1', 'fieldtype': 'Data', 'options': 'Phone', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'pin_code1', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Pin Code (P)', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04321', 'idx': 22, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'pin_code1', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Column Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': '', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Current Address', 'width': '50%', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04322', 'idx': 23, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': '', 'fieldtype': 'Column Break', 'options': '', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'present_accommodation_type', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Current Accommodation Type', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04323', 'idx': 24, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'present_accommodation_type', 'fieldtype': 'Select', 'options': '\nRented\nOwned', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'present_address_line_1', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Current Address Line 1', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04324', 'idx': 25, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'present_address_line_1', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'present_address_line_2', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Current Address Line 2', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04325', 'idx': 26, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'present_address_line_2', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Link', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'city2', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'City / Town(C)', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04326', 'idx': 27, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'city2', 'fieldtype': 'Link', 'options': 'City', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'country2', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Country(C)', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04328', 'idx': 28, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'country2', 'fieldtype': 'Select', 'options': 'link:Country', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'state2', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'State(C)', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04327', 'idx': 29, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'state2', 'fieldtype': 'Select', 'options': 'link:State', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'phn_no2', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Phone No(C)', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04329', 'idx': 30, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'phn_no2', 'fieldtype': 'Data', 'options': 'Phone', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'pin_code2', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Pin Code (C)', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04330', 'idx': 31, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'pin_code2', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Family ', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04331', 'idx': 32, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'fathers_name', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Father Name', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04332', 'idx': 33, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'fathers_name', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'fathers_occupation', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Father Occupation', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04333', 'idx': 34, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'fathers_occupation', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'mothers_name', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Mother Name', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04334', 'idx': 35, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'mothers_name', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'mothers_occupation', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Mother Occupation', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04335', 'idx': 36, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'mothers_occupation', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'marital_status', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Marital Status', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04336', 'idx': 37, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'marital_status', 'fieldtype': 'Select', 'options': '\nSingle\nMarried\nDivorced\nWidowed', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'spouses_name', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Spouse Name', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04337', 'idx': 38, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'spouses_name', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'spouses_occupation', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Spouse Occupation', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04338', 'idx': 39, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'spouses_occupation', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Health', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04339', 'idx': 40, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'height_cms', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Height(cms)', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04340', 'idx': 41, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'height_cms', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'blood_group', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Blood Group', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04341', 'idx': 42, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'blood_group', 'fieldtype': 'Select', 'options': '\nA+\nA-\nB+\nB-\nAB+\nAB-\nO+\nO-', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'weight_kgs', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Weight(kgs)', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04342', 'idx': 43, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'weight_kgs', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'allergies', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Allergies', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04343', 'idx': 44, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'allergies', 'fieldtype': 'Select', 'options': '\nDiabetes\nBP\nHeart Ailments\nEpilepsy\nOthers', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'other_medical_concerns', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Other Medical Concerns', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04344', 'idx': 45, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'other_medical_concerns', 'fieldtype': 'Data', 'options': '', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'physical_handicap', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Physical Handicap(if any)', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04345', 'idx': 46, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'physical_handicap', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Qualification', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04346', 'idx': 47, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Table', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'educational_qualification_details', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Educational Qualification Details', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04347', 'idx': 48, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'educational_qualification_details', 'fieldtype': 'Table', 'options': 'Educational Qualifications Detail', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Training / Seminar', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04348', 'idx': 49, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Prior to join current company', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04349', 'idx': 50, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': 'Simple', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Table', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': 'prior_training', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Prior to join current company1', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04350', 'idx': 51, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'prior_training', 'fieldtype': 'Table', 'options': 'Professional Training Details', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'In current company', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04351', 'idx': 52, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': 'Simple', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Table', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': 'in_company', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'In current company1', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04352', 'idx': 53, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'in_company', 'fieldtype': 'Table', 'options': 'Professional Training Details', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Career History', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04353', 'idx': 54, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'HTML', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Total Prior Experience', 'width': '40%', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04354', 'idx': 55, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'HTML', 'options': '<b>Total Prior Experience</b>', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Column Break', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': '', 'width': '30%', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04355', 'idx': 56, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Column Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Int', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': 'year', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Year', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04356', 'idx': 57, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'year', 'fieldtype': 'Int', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Column Break', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': '', 'width': '30%', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04357', 'idx': 58, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Column Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Int', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': 'months', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Months', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04358', 'idx': 59, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'months', 'fieldtype': 'Int', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Previous Work Experience', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04359', 'idx': 60, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': 'Simple', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Table', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': 'previous_experience_details', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Previous Experience Details', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04360', 'idx': 61, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'previous_experience_details', 'fieldtype': 'Table', 'options': 'Previous Experience Detail', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'History In Company', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04361', 'idx': 62, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': 'Simple', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Table', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': 'experience_in_company_details', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Experience In Company Details', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04362', 'idx': 63, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'experience_in_company_details', 'fieldtype': 'Table', 'options': 'Experience In Company Detail', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Other Info', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04363', 'idx': 64, 'default': None, 'colour': 'Light Blue:DEF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': 'pan_number', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'PAN Number', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04364', 'idx': 65, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'pan_number', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': '', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04365', 'idx': 66, 'default': None, 'colour': 'White:FFF', 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': 'Simple', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'HTML', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Passport Info', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04366', 'idx': 67, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'HTML', 'options': '<b>Passport Info</b>', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': 'passport_number', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Passport Number', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04367', 'idx': 68, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'passport_number', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': 'date_of_issue', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Date of Issue', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04368', 'idx': 69, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'date_of_issue', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': 'valid_upto', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Valid upto', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04369', 'idx': 70, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'valid_upto', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:44', 'doctype': 'DocField', 'oldfieldname': 'place_of_issue', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Place Of Issue', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Employee Profile', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04370', 'idx': 71, 'default': None, 'colour': None, 'modified': '2010-05-26 12:27:30', 'parenttype': 'DocType', 'fieldname': 'place_of_issue', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employee_profile/__init__.py b/erpnext/hr/doctype/employee_training/__init__.py
similarity index 100%
rename from erpnext/hr/doctype/employee_profile/__init__.py
rename to erpnext/hr/doctype/employee_training/__init__.py
diff --git a/erpnext/hr/doctype/employee_training/employee_training.txt b/erpnext/hr/doctype/employee_training/employee_training.txt
new file mode 100644
index 0000000..c751836
--- /dev/null
+++ b/erpnext/hr/doctype/employee_training/employee_training.txt
@@ -0,0 +1,95 @@
+# DocType, Employee Training
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:59',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:59',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 5
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Employee Training',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Employee Training
+	{
+		'doctype': 'DocType',
+		'name': u'Employee Training'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'institute',
+		'fieldtype': u'Small Text',
+		'label': u'Institute / Conducted By',
+		'oldfieldname': u'institute',
+		'oldfieldtype': u'Small Text',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'nature_of_training',
+		'fieldtype': u'Small Text',
+		'label': u'Program / Seminar Title',
+		'oldfieldname': u'nature_of_training',
+		'oldfieldtype': u'Small Text',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'duration',
+		'fieldtype': u'Data',
+		'label': u'Duration',
+		'oldfieldname': u'duration',
+		'oldfieldtype': u'Data',
+		'reqd': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'loc',
+		'fieldtype': u'Data',
+		'label': u'Location',
+		'oldfieldname': u'loc',
+		'oldfieldtype': u'Data',
+		'reqd': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'certificate',
+		'fieldtype': u'Small Text',
+		'label': u'Certificate',
+		'oldfieldname': u'certificate',
+		'oldfieldtype': u'Small Text'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employment_type/employment_type.txt b/erpnext/hr/doctype/employment_type/employment_type.txt
index 67d54d1..5768382 100644
--- a/erpnext/hr/doctype/employment_type/employment_type.txt
+++ b/erpnext/hr/doctype/employment_type/employment_type.txt
@@ -3,46 +3,46 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:00',
+		'creation': '2012-03-27 14:35:55',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:55',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:employee_type_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:employee_type_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 16
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Employment Type',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Employment Type',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Employment Type',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Employment Type',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -51,52 +51,47 @@
 	# DocType, Employment Type
 	{
 		'doctype': 'DocType',
-		'name': 'Employment Type'
+		'name': u'Employment Type'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'HR User'
+		'doctype': u'DocPerm',
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_type_name',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Employment Type',
-		'oldfieldname': 'employee_type_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'employee_type_name',
+		'fieldtype': u'Data',
+		'label': u'Employment Type',
+		'oldfieldname': u'employee_type_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 2,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/expense_type/__init__.py b/erpnext/hr/doctype/expense_claim/__init__.py
similarity index 100%
rename from erpnext/hr/doctype/expense_type/__init__.py
rename to erpnext/hr/doctype/expense_claim/__init__.py
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.js b/erpnext/hr/doctype/expense_claim/expense_claim.js
new file mode 100644
index 0000000..de83647
--- /dev/null
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.js
@@ -0,0 +1,253 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+cur_frm.add_fetch('employee', 'company', 'company');
+
+cur_frm.cscript.onload = function(doc,cdt,cdn){
+  // 
+  if(!doc.approval_status) set_multiple(cdt,cdn,{approval_status:'Draft'});
+  if(doc.employee) cur_frm.cscript.employee(doc,cdt,cdn);
+  
+  if (doc.__islocal) {
+    if(doc.amended_from) set_multiple(cdt,cdn,{approval_status:'Draft'});
+    var val = getchildren('Expense Claim Detail', doc.name, 'expense_voucher_details', doc.doctype);
+    for(var i = 0; i<val.length; i++){
+      val[i].sanctioned_amount ='';
+    }
+    //doc.total_claimed_amount = '';
+    doc.total_sanctioned_amount = '';
+    refresh_many(['sanctioned_amount', 'total_sanctioned_amount']);
+  }
+}
+
+cur_frm.cscript.refresh = function(doc,cdt,cdn){
+  if((user == doc.exp_approver && doc.approval_status == 'Submitted') || doc.docstatus == 0) unhide_field('Calculate Total Amount');
+  else hide_field('Calculate Total Amount');
+  
+  if(user == doc.exp_approver && doc.approval_status == 'Submitted')  unhide_field(['Update Voucher', 'Approve', 'Reject']);
+
+  else hide_field(['Update Voucher', 'Approve', 'Reject']);
+
+  
+  if(user == doc.exp_approver && doc.approval_status == 'Submitted') set_field_permlevel('remark', 0);
+  else set_field_permlevel('remark', 1);
+}
+
+cur_frm.cscript.employee = function(doc,cdt,cdn){
+  if(doc.employee){
+    $c_obj(make_doclist(doc.doctype, doc.name),'set_approver','', function(r,rt){
+      if(r.message){
+        doc.employee_name = r.message['emp_nm'];
+        get_field(doc.doctype, 'exp_approver' , doc.name).options = r.message['app_lst'];        
+        refresh_many(['exp_approver','employee_name']);
+      }    
+    });
+  }
+}
+
+cur_frm.cscript.calculate_total = function(doc,cdt,cdn){
+  if(doc.approval_status == 'Draft'){
+    var val = getchildren('Expense Claim Detail', doc.name, 'expense_voucher_details', doc.doctype);
+    var total_claim =0;
+    for(var i = 0; i<val.length; i++){
+      total_claim = flt(total_claim)+flt(val[i].claim_amount);
+    }
+    doc.total_claimed_amount = flt(total_claim);
+    refresh_field('total_claimed_amount');
+    
+    $c_obj(make_doclist(doc.doctype, doc.name),'validate_approver','', function(r,rt){
+      if(r.message){
+        if(r.message['valid_approver'] == 'No'){
+          doc.exp_approver ='';
+        }
+        get_field(doc.doctype, 'exp_approver' , doc.name).options = '';
+        get_field(doc.doctype, 'exp_approver' , doc.name).options = r.message['app_lst'];
+        refresh_field('exp_approver');
+      }
+    });
+  }
+  else if(doc.approval_status == 'Submitted'){
+    var val = getchildren('Expense Claim Detail', doc.name, 'expense_voucher_details', doc.doctype);
+    var total_sanctioned = 0;
+    for(var i = 0; i<val.length; i++){
+      total_sanctioned = flt(total_sanctioned)+flt(val[i].sanctioned_amount);
+    }
+    doc.total_sanctioned_amount = flt(total_sanctioned);
+    refresh_field('total_sanctioned_amount');
+  }
+}
+
+cur_frm.cscript.calculate_total_amount = function(doc,cdt,cdn){
+  cur_frm.cscript.calculate_total(doc,cdt,cdn);
+}
+cur_frm.cscript.claim_amount = function(doc,cdt,cdn){
+  cur_frm.cscript.calculate_total(doc,cdt,cdn);
+}
+cur_frm.cscript.sanctioned_amount = function(doc,cdt,cdn){
+  cur_frm.cscript.calculate_total(doc,cdt,cdn);
+}
+
+wn.require('erpnext/setup/doctype/notification_control/notification_control.js');
+
+cur_frm.cscript.approve = function(doc,cdt,cdn){
+
+  if(user == doc.exp_approver){
+    var approve_voucher_dialog;
+    
+    set_approve_voucher_dialog = function() {
+      approve_voucher_dialog = new Dialog(400, 200, 'Approve Voucher');
+      approve_voucher_dialog.make_body([
+        ['HTML', 'Message', '<div class = "comment">You wont be able to do any changes after approving this expense voucher. Are you sure, you want to approve it ?</div>'],
+        ['HTML', 'Response', '<div class = "comment" id="approve_voucher_dialog_response"></div>'],
+        ['HTML', 'Approve Voucher', '<div></div>']
+      ]);
+      
+      var approve_voucher_btn1 = $a($i(approve_voucher_dialog.widgets['Approve Voucher']), 'button', 'button');
+      approve_voucher_btn1.innerHTML = 'Yes';
+      approve_voucher_btn1.onclick = function(){ approve_voucher_dialog.add(); }
+      
+      var approve_voucher_btn2 = $a($i(approve_voucher_dialog.widgets['Approve Voucher']), 'button', 'button');
+      approve_voucher_btn2.innerHTML = 'No';
+      $y(approve_voucher_btn2,{marginLeft:'4px'});
+      approve_voucher_btn2.onclick = function(){ approve_voucher_dialog.hide();}
+      
+      approve_voucher_dialog.onshow = function() {
+        $i('approve_voucher_dialog_response').innerHTML = '';
+      }
+      
+      approve_voucher_dialog.add = function() {
+        // sending...
+        $i('approve_voucher_dialog_response').innerHTML = 'Processing...';
+        
+        $c_obj(make_doclist(this.doc.doctype, this.doc.name),'approve_voucher','', function(r,rt){
+          if(r.message == 'Approved'){
+            $i('approve_voucher_dialog_response').innerHTML = 'Approved';
+            refresh_field('approval_status');
+            hide_field(['Update Voucher', 'Approve', 'Reject', 'Calculate Total Amount']);
+            approve_voucher_dialog.hide();
+			var args = {
+				type: 'Expense Claim Approved',
+				doctype: 'Expense Claim',
+				contact_name: doc.employee_name,
+				send_to: doc.email_id
+			}
+			cur_frm.cscript.notify(doc, args);
+          }
+          else if(r.message == 'Incomplete'){
+            $i('approve_voucher_dialog_response').innerHTML = 'Incomplete Voucher';
+          }
+          else if(r.message == 'No Amount'){
+            $i('approve_voucher_dialog_response').innerHTML = 'Calculate total amount';
+          }
+        });
+      }
+    }  
+    
+    if(!approve_voucher_dialog){
+      set_approve_voucher_dialog();
+    }  
+    approve_voucher_dialog.doc = doc;
+    approve_voucher_dialog.cdt = cdt;
+    approve_voucher_dialog.cdn = cdn;
+    approve_voucher_dialog.show();
+    refresh_field('expense_voucher_details');
+    doc.__unsaved = 0;
+    cur_frm.refresh_header();
+  }else{
+    msgprint("Expense Claim can be approved by Approver only");
+  }
+}
+
+cur_frm.cscript.reject = function(doc,cdt,cdn){
+  if(user == doc.exp_approver){
+    var reject_voucher_dialog;
+    
+    set_reject_voucher_dialog = function() {
+      reject_voucher_dialog = new Dialog(400, 200, 'Reject Voucher');
+      reject_voucher_dialog.make_body([
+        ['HTML', 'Message', '<div class = "comment">You wont be able to do any changes after rejecting this expense voucher. Are you sure, you want to reject it ?</div>'],
+        ['HTML', 'Response', '<div class = "comment" id="reject_voucher_dialog_response"></div>'],
+        ['HTML', 'Reject Voucher', '<div></div>']
+      ]);
+      
+      var reject_voucher_btn1 = $a($i(reject_voucher_dialog.widgets['Reject Voucher']), 'button', 'button');
+      reject_voucher_btn1.innerHTML = 'Yes';
+      reject_voucher_btn1.onclick = function(){ reject_voucher_dialog.add(); }
+      
+      var reject_voucher_btn2 = $a($i(reject_voucher_dialog.widgets['Reject Voucher']), 'button', 'button');
+      reject_voucher_btn2.innerHTML = 'No';
+      $y(reject_voucher_btn2,{marginLeft:'4px'});
+      reject_voucher_btn2.onclick = function(){ reject_voucher_dialog.hide();}
+      
+      reject_voucher_dialog.onshow = function() {
+        $i('reject_voucher_dialog_response').innerHTML = '';
+      }
+      
+      reject_voucher_dialog.add = function() {
+        // sending...
+        $i('reject_voucher_dialog_response').innerHTML = 'Processing...';
+        
+        $c_obj(make_doclist(this.doc.doctype, this.doc.name),'reject_voucher','', function(r,rt){
+          if(r.message == 'Rejected'){
+            $i('reject_voucher_dialog_response').innerHTML = 'Rejected';
+            refresh_field('approval_status');
+            hide_field(['Update Voucher', 'Approve', 'Reject', 'Calculate Total Amount']);
+            reject_voucher_dialog.hide();
+			var args = {
+				type: 'Expense Claim Rejected',
+				doctype: 'Expense Claim',
+				contact_name: doc.employee_name,
+				send_to: doc.email_id
+			}
+			cur_frm.cscript.notify(doc, args);
+          }
+        });
+      }
+    }  
+    
+    if(!reject_voucher_dialog){
+      set_reject_voucher_dialog();
+    }  
+    reject_voucher_dialog.doc = doc;
+    reject_voucher_dialog.cdt = cdt;
+    reject_voucher_dialog.cdn = cdn;
+    reject_voucher_dialog.show();
+    refresh_field('expense_voucher_details');
+    doc.__unsaved = 0;
+    cur_frm.refresh_header();
+  }else{
+    msgprint("Expense Claim can be rejected by Approver only");
+  }
+}
+
+//update follow up
+//=================================================================================
+cur_frm.cscript.update_voucher = function(doc){
+
+  $c_obj(make_doclist(doc.doctype, doc.name),'update_voucher','',function(r, rt){
+    refresh_field('expense_voucher_details');
+    doc.__unsaved = 0;
+    cur_frm.refresh_header();
+  });
+}
+
+cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
+	var args = {
+		type: 'Expense Claim',
+		doctype: 'Expense Claim'
+	}
+	cur_frm.cscript.notify(doc, args);
+}
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.py b/erpnext/hr/doctype/expense_claim/expense_claim.py
new file mode 100644
index 0000000..cd8b115
--- /dev/null
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.py
@@ -0,0 +1,159 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+
+class DocType:
+  def __init__(self, doc, doclist=[]):
+    self.doc = doc
+    self.doclist = doclist
+
+  def get_employee_name(self):
+    emp_dtl = sql("select employee_name,company_email from `tabEmployee` where name=%s", self.doc.employee)
+    emp_nm = emp_dtl and emp_dtl[0][0] or ''
+    self.doc.employee_name = emp_nm
+    self.doc.email_id = emp_dtl and emp_dtl[0][1] or ''
+
+    return cstr(emp_nm)  
+  
+  def get_approver_lst(self):
+    approver_lst =[]
+    approver_lst1 = get_obj('Authorization Control').get_approver_name(self.doc.doctype,0,self)
+    if approver_lst1:
+      approver_lst=approver_lst1
+    else:
+      approver_lst = [x[0] for x in sql("select distinct name from `tabProfile` where enabled=1 and name!='Administrator' and name!='Guest' and docstatus!=2")]
+    return approver_lst
+
+  def set_approver(self):
+    ret={}
+    approver_lst =[]
+    emp_nm = self.get_employee_name()
+    approver_lst = self.get_approver_lst()    
+    ret = {'app_lst':"\n" + "\n".join(approver_lst), 'emp_nm':cstr(emp_nm)}
+    return ret
+
+  def update_voucher(self):
+    sql("delete from `tabExpense Claim Detail` where parent = '%s'"%self.doc.name)
+    for d in getlist(self.doclist, 'expense_voucher_details'):
+      if not d.expense_type or not d.claim_amount:
+        msgprint("Please remove the extra blank row added")
+        raise Exception
+      d.save(1)
+    if self.doc.total_sanctioned_amount:
+      set(self.doc,'total_sanctioned_amount',self.doc.total_sanctioned_amount)
+    if self.doc.remark:
+      set(self.doc, 'remark', self.doc.remark)
+  
+  def approve_voucher(self):
+    for d in getlist(self.doclist, 'expense_voucher_details'):
+      if not d.sanctioned_amount:
+        msgprint("Please add 'Sanctioned Amount' for all expenses")
+        return cstr('Incomplete')
+    
+    if not self.doc.total_sanctioned_amount:
+      msgprint("Please calculate total sanctioned amount using button 'Calculate Total Amount'")
+      return cstr('No Amount')
+    self.update_voucher()
+    
+    set(self.doc, 'approval_status', 'Approved')    
+    # on approval notification
+    #get_obj('Notification Control').notify_contact('Expense Claim Approved', self.doc.doctype, self.doc.name, self.doc.email_id, self.doc.employee_name)
+
+    return cstr('Approved')
+  
+  def reject_voucher(self):
+    
+    if self.doc.remark:
+      set(self.doc, 'remark', self.doc.remark)   
+    set(self.doc, 'approval_status', 'Rejected')    
+
+    # on approval notification
+    #get_obj('Notification Control').notify_contact('Expense Claim Rejected', self.doc.doctype, self.doc.name, self.doc.email_id, self.doc.employee_name)
+
+    return cstr('Rejected')
+  
+  def validate_curr_exp(self):
+    for d in getlist(self.doclist, 'expense_voucher_details'):
+      if flt(d.sanctioned_amount) > 0:
+        if self.doc.approval_status == 'Draft':
+          msgprint("Sanctioned amount can be added by Approver person only for submitted Expense Claim")
+          raise Exception
+        elif self.doc.approval_status == 'Submitted' and session['user'] != self.doc.exp_approver:
+          msgprint("Sanctioned amount can be added only by expense voucher Approver")
+          raise Exception
+  
+  def validate_fiscal_year(self):
+    fy=sql("select year_start_date from `tabFiscal Year` where name='%s'"%self.doc.fiscal_year)
+    ysd=fy and fy[0][0] or ""
+    yed=add_days(str(ysd),365)
+    if str(self.doc.posting_date) < str(ysd) or str(self.doc.posting_date) > str(yed):
+      msgprint("Posting Date is not within the Fiscal Year selected")
+      raise Exception
+    
+  def validate(self):
+    self.validate_curr_exp()
+    self.validate_fiscal_year()
+  
+  def on_update(self):
+    set(self.doc, 'approval_status', 'Draft')
+  
+  def validate_exp_details(self):
+    if not getlist(self.doclist, 'expense_voucher_details'):
+      msgprint("Please add expense voucher details")
+      raise Exception
+    
+    if not self.doc.total_claimed_amount:
+      msgprint("Please calculate Total Claimed Amount")
+      raise Exception
+    
+    if not self.doc.exp_approver:
+      msgprint("Please select Expense Claim approver")
+      raise Exception
+  
+  def validate_approver(self):
+    app_lst = self.get_approver_lst()
+    if self.doc.exp_approver and self.doc.exp_approver not in app_lst:
+      msgprint("Approver "+self.doc.exp_approver+" is not authorized to approve this expense voucher. Please select another approver")
+      valid_app = 'No'
+    else:
+      valid_app = 'Yes'
+    ret = {'app_lst':("\n" + "\n".join(app_lst)), 'valid_approver':valid_app}
+    return ret
+  
+  def on_submit(self):
+    self.validate_exp_details()
+    set(self.doc, 'approval_status', 'Submitted')
+  
+  def on_cancel(self):
+    set(self.doc, 'approval_status', 'Cancelled')
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.txt b/erpnext/hr/doctype/expense_claim/expense_claim.txt
new file mode 100644
index 0000000..34ed31c
--- /dev/null
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.txt
@@ -0,0 +1,390 @@
+# DocType, Expense Claim
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:56',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:45:48',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1308808105',
+		'autoname': u'EXP.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'is_submittable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'search_fields': u'approval_status,employee,employee_name',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'subject': u'From %(employee_name)s for %(total_claimed_amount)s (claimed)',
+		'tag_fields': u'approval_status',
+		'version': 135
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Expense Claim',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Expense Claim',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Expense Claim
+	{
+		'doctype': 'DocType',
+		'name': u'Expense Claim'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'match': u'owner',
+		'permlevel': 0,
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'HR Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'HR User',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'details',
+		'fieldtype': u'Section Break',
+		'label': u'Details',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'Draft',
+		'doctype': u'DocField',
+		'fieldname': u'approval_status',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Approval Status',
+		'no_copy': 1,
+		'oldfieldname': u'approval_status',
+		'oldfieldtype': u'Select',
+		'options': u'\nDraft\nSubmitted\nApproved \nRejected\nCancelled',
+		'permlevel': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'employee',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'From Employee',
+		'oldfieldname': u'employee',
+		'oldfieldtype': u'Link',
+		'options': u'Employee',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'employee_name',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Employee Name',
+		'oldfieldname': u'employee_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'search_index': 0,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'link:Company',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Posting Date',
+		'oldfieldname': u'posting_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'exp_approver',
+		'fieldtype': u'Select',
+		'label': u'Approver',
+		'oldfieldname': u'exp_approver',
+		'oldfieldtype': u'Select',
+		'permlevel': 0,
+		'width': u'160px'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'remark',
+		'fieldtype': u'Small Text',
+		'label': u'Remark',
+		'no_copy': 1,
+		'oldfieldname': u'remark',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1,
+		'width': u'160px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1,
+		'width': u'160px'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'approve',
+		'fieldtype': u'Button',
+		'hidden': 1,
+		'label': u'Approve',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'reject',
+		'fieldtype': u'Button',
+		'hidden': 1,
+		'label': u'Reject',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'expense_details',
+		'fieldtype': u'Section Break',
+		'label': u'Expense Details',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'calculate_total_amount',
+		'fieldtype': u'Button',
+		'label': u'Calculate Total Amount',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'total_claimed_amount',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Total Claimed Amount',
+		'no_copy': 1,
+		'oldfieldname': u'total_claimed_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'reqd': 0,
+		'width': u'160px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'total_sanctioned_amount',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Total Sanctioned Amount',
+		'no_copy': 1,
+		'oldfieldname': u'total_sanctioned_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'width': u'160px'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'update_voucher',
+		'fieldtype': u'Button',
+		'hidden': 1,
+		'label': u'Update Voucher',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'expense_voucher_details',
+		'fieldtype': u'Table',
+		'label': u'Expense Claim Details',
+		'oldfieldname': u'expense_voucher_details',
+		'oldfieldtype': u'Table',
+		'options': u'Expense Claim Detail',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'email_id',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Employees Email Id',
+		'oldfieldname': u'email_id',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/expense_voucher_detail/__init__.py b/erpnext/hr/doctype/expense_claim_detail/__init__.py
similarity index 100%
rename from erpnext/hr/doctype/expense_voucher_detail/__init__.py
rename to erpnext/hr/doctype/expense_claim_detail/__init__.py
diff --git a/erpnext/hr/doctype/expense_claim_detail/expense_claim_detail.txt b/erpnext/hr/doctype/expense_claim_detail/expense_claim_detail.txt
new file mode 100644
index 0000000..a11ce5c
--- /dev/null
+++ b/erpnext/hr/doctype/expense_claim_detail/expense_claim_detail.txt
@@ -0,0 +1,103 @@
+# DocType, Expense Claim Detail
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:56',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:56',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'version': 5
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Expense Claim Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Expense Claim Detail
+	{
+		'doctype': 'DocType',
+		'name': u'Expense Claim Detail'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'expense_date',
+		'fieldtype': u'Date',
+		'label': u'Expense Date',
+		'oldfieldname': u'expense_date',
+		'oldfieldtype': u'Date',
+		'reqd': 0,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'expense_type',
+		'fieldtype': u'Link',
+		'label': u'Expense Claim Type',
+		'oldfieldname': u'expense_type',
+		'oldfieldtype': u'Link',
+		'options': u'Expense Claim Type',
+		'reqd': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'claim_amount',
+		'fieldtype': u'Currency',
+		'label': u'Claim Amount',
+		'oldfieldname': u'claim_amount',
+		'oldfieldtype': u'Currency',
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'sanctioned_amount',
+		'fieldtype': u'Currency',
+		'label': u'Sanctioned Amount',
+		'no_copy': 1,
+		'oldfieldname': u'sanctioned_amount',
+		'oldfieldtype': u'Currency',
+		'trigger': u'Client',
+		'width': u'150px'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/expense_type/__init__.py b/erpnext/hr/doctype/expense_claim_type/__init__.py
similarity index 100%
copy from erpnext/hr/doctype/expense_type/__init__.py
copy to erpnext/hr/doctype/expense_claim_type/__init__.py
diff --git a/erpnext/hr/doctype/expense_type/expense_type.js b/erpnext/hr/doctype/expense_claim_type/expense_claim_type.js
similarity index 100%
rename from erpnext/hr/doctype/expense_type/expense_type.js
rename to erpnext/hr/doctype/expense_claim_type/expense_claim_type.js
diff --git a/erpnext/hr/doctype/expense_claim_type/expense_claim_type.txt b/erpnext/hr/doctype/expense_claim_type/expense_claim_type.txt
new file mode 100644
index 0000000..a5c09c8
--- /dev/null
+++ b/erpnext/hr/doctype/expense_claim_type/expense_claim_type.txt
@@ -0,0 +1,96 @@
+# DocType, Expense Claim Type
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:55',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:55',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'field:expense_type',
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'document_type': u'Master',
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'version': 5
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Expense Claim Type',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# These values are common for all DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Expense Claim Type',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'write': 1
+	},
+
+	# DocType, Expense Claim Type
+	{
+		'doctype': 'DocType',
+		'name': u'Expense Claim Type'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'expense_type',
+		'fieldtype': u'Data',
+		'in_filter': 0,
+		'label': u'Expense Claim Type',
+		'oldfieldname': u'expense_type',
+		'oldfieldtype': u'Data',
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'width': u'300px'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/expense_type/expense_type.txt b/erpnext/hr/doctype/expense_type/expense_type.txt
deleted file mode 100644
index ddf1104..0000000
--- a/erpnext/hr/doctype/expense_type/expense_type.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-# DocType, Expense Type
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-03 16:45:08',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'field:expense_type',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Expense Type',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Expense Type',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'write': 1
-	},
-
-	# DocType, Expense Type
-	{
-		'doctype': 'DocType',
-		'name': 'Expense Type'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'HR Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'System Manager'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'expense_type',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'in_filter': 0,
-		'label': 'Expense Type',
-		'oldfieldname': 'expense_type',
-		'oldfieldtype': 'Data',
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 2,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
-		'width': '300px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/expense_voucher/__init__.py b/erpnext/hr/doctype/expense_voucher/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/expense_voucher/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/expense_voucher/expense_voucher.js b/erpnext/hr/doctype/expense_voucher/expense_voucher.js
deleted file mode 100644
index 2e03567..0000000
--- a/erpnext/hr/doctype/expense_voucher/expense_voucher.js
+++ /dev/null
@@ -1,254 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-cur_frm.add_fetch('employee', 'company', 'company');
-
-cur_frm.cscript.onload = function(doc,cdt,cdn){
-  // 
-  if(!doc.approval_status) set_multiple(cdt,cdn,{approval_status:'Draft'});
-  if(doc.employee) cur_frm.cscript.employee(doc,cdt,cdn);
-  
-  if (doc.__islocal) {
-    if(doc.amended_from) set_multiple(cdt,cdn,{approval_status:'Draft'});
-    var val = getchildren('Expense Voucher Detail', doc.name, 'expense_voucher_details', doc.doctype);
-    for(var i = 0; i<val.length; i++){
-      val[i].sanctioned_amount ='';
-    }
-    //doc.total_claimed_amount = '';
-    doc.total_sanctioned_amount = '';
-    refresh_many(['sanctioned_amount', 'total_sanctioned_amount']);
-  }
-}
-
-cur_frm.cscript.refresh = function(doc,cdt,cdn){
-  if((user == doc.exp_approver && doc.approval_status == 'Submitted') || doc.docstatus == 0) unhide_field('Calculate Total Amount');
-  else hide_field('Calculate Total Amount');
-  
-  if(user == doc.exp_approver && doc.approval_status == 'Submitted')  unhide_field(['Update Voucher', 'Approve', 'Reject']);
-
-  else hide_field(['Update Voucher', 'Approve', 'Reject']);
-
-  
-  if(user == doc.exp_approver && doc.approval_status == 'Submitted') set_field_permlevel('remark', 0);
-  else set_field_permlevel('remark', 1);
-}
-
-cur_frm.cscript.employee = function(doc,cdt,cdn){
-  if(doc.employee){
-    $c_obj(make_doclist(doc.doctype, doc.name),'set_approver','', function(r,rt){
-      if(r.message){
-        doc.employee_name = r.message['emp_nm'];
-        get_field(doc.doctype, 'exp_approver' , doc.name).options = r.message['app_lst'];        
-        refresh_many(['exp_approver','employee_name']);
-      }    
-    });
-  }
-}
-
-cur_frm.cscript.calculate_total = function(doc,cdt,cdn){
-  if(doc.approval_status == 'Draft'){
-    var val = getchildren('Expense Voucher Detail', doc.name, 'expense_voucher_details', doc.doctype);
-    var total_claim =0;
-    for(var i = 0; i<val.length; i++){
-      total_claim = flt(total_claim)+flt(val[i].claim_amount);
-    }
-    doc.total_claimed_amount = flt(total_claim);
-    refresh_field('total_claimed_amount');
-    
-    $c_obj(make_doclist(doc.doctype, doc.name),'validate_approver','', function(r,rt){
-      if(r.message){
-        if(r.message['valid_approver'] == 'No'){
-          doc.exp_approver ='';
-        }
-        get_field(doc.doctype, 'exp_approver' , doc.name).options = '';
-        get_field(doc.doctype, 'exp_approver' , doc.name).options = r.message['app_lst'];
-        refresh_field('exp_approver');
-      }
-    });
-  }
-  else if(doc.approval_status == 'Submitted'){
-    var val = getchildren('Expense Voucher Detail', doc.name, 'expense_voucher_details', doc.doctype);
-    var total_sanctioned = 0;
-    for(var i = 0; i<val.length; i++){
-      total_sanctioned = flt(total_sanctioned)+flt(val[i].sanctioned_amount);
-    }
-    doc.total_sanctioned_amount = flt(total_sanctioned);
-    refresh_field('total_sanctioned_amount');
-  }
-}
-
-cur_frm.cscript['Calculate Total Amount'] = function(doc,cdt,cdn){
-  cur_frm.cscript.calculate_total(doc,cdt,cdn);
-}
-cur_frm.cscript.claim_amount = function(doc,cdt,cdn){
-  cur_frm.cscript.calculate_total(doc,cdt,cdn);
-}
-cur_frm.cscript.sanctioned_amount = function(doc,cdt,cdn){
-  cur_frm.cscript.calculate_total(doc,cdt,cdn);
-}
-
-$import(Notification Control);
-
-cur_frm.cscript['Approve'] = function(doc,cdt,cdn){
-
-  if(user == doc.exp_approver){
-    var approve_voucher_dialog;
-    
-    set_approve_voucher_dialog = function() {
-      approve_voucher_dialog = new Dialog(400, 200, 'Approve Voucher');
-      approve_voucher_dialog.make_body([
-        ['HTML', 'Message', '<div class = "comment">You wont be able to do any changes after approving this expense voucher. Are you sure, you want to approve it ?</div>'],
-        ['HTML', 'Response', '<div class = "comment" id="approve_voucher_dialog_response"></div>'],
-        ['HTML', 'Approve Voucher', '<div></div>']
-      ]);
-      
-      var approve_voucher_btn1 = $a($i(approve_voucher_dialog.widgets['Approve Voucher']), 'button', 'button');
-      approve_voucher_btn1.innerHTML = 'Yes';
-      approve_voucher_btn1.onclick = function(){ approve_voucher_dialog.add(); }
-      
-      var approve_voucher_btn2 = $a($i(approve_voucher_dialog.widgets['Approve Voucher']), 'button', 'button');
-      approve_voucher_btn2.innerHTML = 'No';
-      $y(approve_voucher_btn2,{marginLeft:'4px'});
-      approve_voucher_btn2.onclick = function(){ approve_voucher_dialog.hide();}
-      
-      approve_voucher_dialog.onshow = function() {
-        $i('approve_voucher_dialog_response').innerHTML = '';
-      }
-      
-      approve_voucher_dialog.add = function() {
-        // sending...
-        $i('approve_voucher_dialog_response').innerHTML = 'Processing...';
-        
-        $c_obj(make_doclist(this.doc.doctype, this.doc.name),'approve_voucher','', function(r,rt){
-          if(r.message == 'Approved'){
-            $i('approve_voucher_dialog_response').innerHTML = 'Approved';
-            refresh_field('approval_status');
-            hide_field(['Update Voucher', 'Approve', 'Reject', 'Calculate Total Amount']);
-            approve_voucher_dialog.hide();
-			var args = {
-				type: 'Expense Voucher Approved',
-				doctype: 'Expense Voucher',
-				contact_name: doc.employee_name,
-				send_to: doc.email_id
-			}
-			cur_frm.cscript.notify(doc, args);
-          }
-          else if(r.message == 'Incomplete'){
-            $i('approve_voucher_dialog_response').innerHTML = 'Incomplete Voucher';
-          }
-          else if(r.message == 'No Amount'){
-            $i('approve_voucher_dialog_response').innerHTML = 'Calculate total amount';
-          }
-        });
-      }
-    }  
-    
-    if(!approve_voucher_dialog){
-      set_approve_voucher_dialog();
-    }  
-    approve_voucher_dialog.doc = doc;
-    approve_voucher_dialog.cdt = cdt;
-    approve_voucher_dialog.cdn = cdn;
-    approve_voucher_dialog.show();
-    refresh_field('expense_voucher_details');
-    doc.__unsaved = 0;
-    cur_frm.refresh_header();
-  }else{
-    msgprint("Expense Voucher can be approved by Approver only");
-  }
-}
-
-cur_frm.cscript['Reject'] = function(doc,cdt,cdn){
-  if(user == doc.exp_approver){
-    var reject_voucher_dialog;
-    
-    set_reject_voucher_dialog = function() {
-      reject_voucher_dialog = new Dialog(400, 200, 'Reject Voucher');
-      reject_voucher_dialog.make_body([
-        ['HTML', 'Message', '<div class = "comment">You wont be able to do any changes after rejecting this expense voucher. Are you sure, you want to reject it ?</div>'],
-        ['HTML', 'Response', '<div class = "comment" id="reject_voucher_dialog_response"></div>'],
-        ['HTML', 'Reject Voucher', '<div></div>']
-      ]);
-      
-      var reject_voucher_btn1 = $a($i(reject_voucher_dialog.widgets['Reject Voucher']), 'button', 'button');
-      reject_voucher_btn1.innerHTML = 'Yes';
-      reject_voucher_btn1.onclick = function(){ reject_voucher_dialog.add(); }
-      
-      var reject_voucher_btn2 = $a($i(reject_voucher_dialog.widgets['Reject Voucher']), 'button', 'button');
-      reject_voucher_btn2.innerHTML = 'No';
-      $y(reject_voucher_btn2,{marginLeft:'4px'});
-      reject_voucher_btn2.onclick = function(){ reject_voucher_dialog.hide();}
-      
-      reject_voucher_dialog.onshow = function() {
-        $i('reject_voucher_dialog_response').innerHTML = '';
-      }
-      
-      reject_voucher_dialog.add = function() {
-        // sending...
-        $i('reject_voucher_dialog_response').innerHTML = 'Processing...';
-        
-        $c_obj(make_doclist(this.doc.doctype, this.doc.name),'reject_voucher','', function(r,rt){
-          if(r.message == 'Rejected'){
-            $i('reject_voucher_dialog_response').innerHTML = 'Rejected';
-            refresh_field('approval_status');
-            hide_field(['Update Voucher', 'Approve', 'Reject', 'Calculate Total Amount']);
-            reject_voucher_dialog.hide();
-			var args = {
-				type: 'Expense Voucher Rejected',
-				doctype: 'Expense Voucher',
-				contact_name: doc.employee_name,
-				send_to: doc.email_id
-			}
-			cur_frm.cscript.notify(doc, args);
-          }
-        });
-      }
-    }  
-    
-    if(!reject_voucher_dialog){
-      set_reject_voucher_dialog();
-    }  
-    reject_voucher_dialog.doc = doc;
-    reject_voucher_dialog.cdt = cdt;
-    reject_voucher_dialog.cdn = cdn;
-    reject_voucher_dialog.show();
-    refresh_field('expense_voucher_details');
-    doc.__unsaved = 0;
-    cur_frm.refresh_header();
-  }else{
-    msgprint("Expense Voucher can be rejected by Approver only");
-  }
-}
-
-//update follow up
-//=================================================================================
-cur_frm.cscript['Update Voucher'] = function(doc){
-
-  $c_obj(make_doclist(doc.doctype, doc.name),'update_voucher','',function(r, rt){
-    refresh_field('expense_voucher_details');
-    doc.__unsaved = 0;
-    cur_frm.refresh_header();
-  });
-}
-
-$import(Notification Control)
-cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
-	var args = {
-		type: 'Expense Voucher',
-		doctype: 'Expense Voucher'
-	}
-	cur_frm.cscript.notify(doc, args);
-}
diff --git a/erpnext/hr/doctype/expense_voucher/expense_voucher.py b/erpnext/hr/doctype/expense_voucher/expense_voucher.py
deleted file mode 100644
index b349100..0000000
--- a/erpnext/hr/doctype/expense_voucher/expense_voucher.py
+++ /dev/null
@@ -1,159 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self, doc, doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-
-  def get_employee_name(self):
-    emp_dtl = sql("select employee_name,company_email from `tabEmployee` where name=%s", self.doc.employee)
-    emp_nm = emp_dtl and emp_dtl[0][0] or ''
-    self.doc.employee_name = emp_nm
-    self.doc.email_id = emp_dtl and emp_dtl[0][1] or ''
-
-    return cstr(emp_nm)  
-  
-  def get_approver_lst(self):
-    approver_lst =[]
-    approver_lst1 = get_obj('Authorization Control').get_approver_name(self.doc.doctype,0,self)
-    if approver_lst1:
-      approver_lst=approver_lst1
-    else:
-      approver_lst = [x[0] for x in sql("select distinct name from `tabProfile` where enabled=1 and name!='Administrator' and name!='Guest' and docstatus!=2")]
-    return approver_lst
-
-  def set_approver(self):
-    ret={}
-    approver_lst =[]
-    emp_nm = self.get_employee_name()
-    approver_lst = self.get_approver_lst()    
-    ret = {'app_lst':"\n" + "\n".join(approver_lst), 'emp_nm':cstr(emp_nm)}
-    return ret
-
-  def update_voucher(self):
-    sql("delete from `tabExpense Voucher Detail` where parent = '%s'"%self.doc.name)
-    for d in getlist(self.doclist, 'expense_voucher_details'):
-      if not d.expense_type or not d.claim_amount:
-        msgprint("Please remove the extra blank row added")
-        raise Exception
-      d.save(1)
-    if self.doc.total_sanctioned_amount:
-      set(self.doc,'total_sanctioned_amount',self.doc.total_sanctioned_amount)
-    if self.doc.remark:
-      set(self.doc, 'remark', self.doc.remark)
-  
-  def approve_voucher(self):
-    for d in getlist(self.doclist, 'expense_voucher_details'):
-      if not d.sanctioned_amount:
-        msgprint("Please add 'Sanctioned Amount' for all expenses")
-        return cstr('Incomplete')
-    
-    if not self.doc.total_sanctioned_amount:
-      msgprint("Please calculate total sanctioned amount using button 'Calculate Total Amount'")
-      return cstr('No Amount')
-    self.update_voucher()
-    
-    set(self.doc, 'approval_status', 'Approved')    
-    # on approval notification
-    #get_obj('Notification Control').notify_contact('Expense Voucher Approved', self.doc.doctype, self.doc.name, self.doc.email_id, self.doc.employee_name)
-
-    return cstr('Approved')
-  
-  def reject_voucher(self):
-    
-    if self.doc.remark:
-      set(self.doc, 'remark', self.doc.remark)   
-    set(self.doc, 'approval_status', 'Rejected')    
-
-    # on approval notification
-    #get_obj('Notification Control').notify_contact('Expense Voucher Rejected', self.doc.doctype, self.doc.name, self.doc.email_id, self.doc.employee_name)
-
-    return cstr('Rejected')
-  
-  def validate_curr_exp(self):
-    for d in getlist(self.doclist, 'expense_voucher_details'):
-      if flt(d.sanctioned_amount) > 0:
-        if self.doc.approval_status == 'Draft':
-          msgprint("Sanctioned amount can be added by Approver person only for submitted Expense Voucher")
-          raise Exception
-        elif self.doc.approval_status == 'Submitted' and session['user'] != self.doc.exp_approver:
-          msgprint("Sanctioned amount can be added only by expense voucher Approver")
-          raise Exception
-  
-  def validate_fiscal_year(self):
-    fy=sql("select year_start_date from `tabFiscal Year` where name='%s'"%self.doc.fiscal_year)
-    ysd=fy and fy[0][0] or ""
-    yed=add_days(str(ysd),365)
-    if str(self.doc.posting_date) < str(ysd) or str(self.doc.posting_date) > str(yed):
-      msgprint("Posting Date is not within the Fiscal Year selected")
-      raise Exception
-    
-  def validate(self):
-    self.validate_curr_exp()
-    self.validate_fiscal_year()
-  
-  def on_update(self):
-    set(self.doc, 'approval_status', 'Draft')
-  
-  def validate_exp_details(self):
-    if not getlist(self.doclist, 'expense_voucher_details'):
-      msgprint("Please add expense voucher details")
-      raise Exception
-    
-    if not self.doc.total_claimed_amount:
-      msgprint("Please calculate Total Claimed Amount")
-      raise Exception
-    
-    if not self.doc.exp_approver:
-      msgprint("Please select Expense Voucher approver")
-      raise Exception
-  
-  def validate_approver(self):
-    app_lst = self.get_approver_lst()
-    if self.doc.exp_approver and self.doc.exp_approver not in app_lst:
-      msgprint("Approver "+self.doc.exp_approver+" is not authorized to approve this expense voucher. Please select another approver")
-      valid_app = 'No'
-    else:
-      valid_app = 'Yes'
-    ret = {'app_lst':("\n" + "\n".join(app_lst)), 'valid_approver':valid_app}
-    return ret
-  
-  def on_submit(self):
-    self.validate_exp_details()
-    set(self.doc, 'approval_status', 'Submitted')
-  
-  def on_cancel(self):
-    set(self.doc, 'approval_status', 'Cancelled')
diff --git a/erpnext/hr/doctype/expense_voucher/expense_voucher.txt b/erpnext/hr/doctype/expense_voucher/expense_voucher.txt
deleted file mode 100644
index 596d4b5..0000000
--- a/erpnext/hr/doctype/expense_voucher/expense_voucher.txt
+++ /dev/null
@@ -1,439 +0,0 @@
-# DocType, Expense Voucher
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-03 16:45:08',
-		'docstatus': 0,
-		'modified': '2011-06-27 14:39:09',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1308808105',
-		'autoname': 'EXP.######',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'module': 'HR',
-		'name': '__common__',
-		'search_fields': 'approval_status,employee,employee_name',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'subject': 'From %(employee_name)s for %(total_claimed_amount)s (claimed)',
-		'tag_fields': 'approval_status',
-		'version': 134
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Expense Voucher',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Expense Voucher',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Expense Voucher
-	{
-		'doctype': 'DocType',
-		'name': 'Expense Voucher'
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'match': 'owner',
-		'permlevel': 0,
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'HR Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'HR User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'match': 'owner',
-		'permlevel': 0,
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'HR Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'HR User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'All'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Details',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'Draft',
-		'doctype': 'DocField',
-		'fieldname': 'approval_status',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'in_filter': 1,
-		'label': 'Approval Status',
-		'no_copy': 1,
-		'oldfieldname': 'approval_status',
-		'oldfieldtype': 'Select',
-		'options': '\nDraft\nSubmitted\nApproved \nRejected\nCancelled',
-		'permlevel': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'employee',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'in_filter': 1,
-		'label': 'From Employee',
-		'oldfieldname': 'employee',
-		'oldfieldtype': 'Link',
-		'options': 'Employee',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_name',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'in_filter': 1,
-		'label': 'Employee Name',
-		'oldfieldname': 'employee_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'search_index': 0,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 5,
-		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'link:Company',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 7,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
-		'idx': 8,
-		'in_filter': 1,
-		'label': 'Posting Date',
-		'oldfieldname': 'posting_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'exp_approver',
-		'fieldtype': 'Select',
-		'idx': 9,
-		'label': 'Approver',
-		'oldfieldname': 'exp_approver',
-		'oldfieldtype': 'Select',
-		'permlevel': 0,
-		'width': '160px'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'remark',
-		'fieldtype': 'Small Text',
-		'idx': 10,
-		'label': 'Remark',
-		'no_copy': 1,
-		'oldfieldname': 'remark',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'idx': 11,
-		'label': 'Amended From',
-		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1,
-		'width': '160px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'idx': 12,
-		'label': 'Amendment Date',
-		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1,
-		'width': '160px'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'hidden': 1,
-		'idx': 13,
-		'label': 'Approve',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'hidden': 1,
-		'idx': 14,
-		'label': 'Reject',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 15,
-		'label': 'Expense Details',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 16,
-		'label': 'Calculate Total Amount',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'total_claimed_amount',
-		'fieldtype': 'Currency',
-		'idx': 17,
-		'in_filter': 0,
-		'label': 'Total Claimed Amount',
-		'no_copy': 1,
-		'oldfieldname': 'total_claimed_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'reqd': 0,
-		'width': '160px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'total_sanctioned_amount',
-		'fieldtype': 'Currency',
-		'idx': 18,
-		'in_filter': 0,
-		'label': 'Total Sanctioned Amount',
-		'no_copy': 1,
-		'oldfieldname': 'total_sanctioned_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'width': '160px'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'hidden': 1,
-		'idx': 19,
-		'label': 'Update Voucher',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'expense_voucher_details',
-		'fieldtype': 'Table',
-		'idx': 20,
-		'label': 'Expense Voucher Details',
-		'oldfieldname': 'expense_voucher_details',
-		'oldfieldtype': 'Table',
-		'options': 'Expense Voucher Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'email_id',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 21,
-		'label': 'Employees Email Id',
-		'oldfieldname': 'email_id',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'print_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/expense_voucher_detail/expense_voucher_detail.txt b/erpnext/hr/doctype/expense_voucher_detail/expense_voucher_detail.txt
deleted file mode 100644
index d6cb015..0000000
--- a/erpnext/hr/doctype/expense_voucher_detail/expense_voucher_detail.txt
+++ /dev/null
@@ -1,108 +0,0 @@
-# DocType, Expense Voucher Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-03 16:45:08',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Expense Voucher Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Expense Voucher Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Expense Voucher Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'expense_date',
-		'fieldtype': 'Date',
-		'idx': 1,
-		'label': 'Expense Date',
-		'oldfieldname': 'expense_date',
-		'oldfieldtype': 'Date',
-		'reqd': 0,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'expense_type',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'label': 'Expense Type',
-		'oldfieldname': 'expense_type',
-		'oldfieldtype': 'Link',
-		'options': 'Expense Type',
-		'reqd': 1,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'claim_amount',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Claim Amount',
-		'oldfieldname': 'claim_amount',
-		'oldfieldtype': 'Currency',
-		'reqd': 1,
-		'trigger': 'Client',
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'sanctioned_amount',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Sanctioned Amount',
-		'no_copy': 1,
-		'oldfieldname': 'sanctioned_amount',
-		'oldfieldtype': 'Currency',
-		'trigger': 'Client',
-		'width': '150px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/experience_in_company_detail/__init__.py b/erpnext/hr/doctype/experience_in_company_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/experience_in_company_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/experience_in_company_detail/experience_in_company_detail.txt b/erpnext/hr/doctype/experience_in_company_detail/experience_in_company_detail.txt
deleted file mode 100644
index c1b826b..0000000
--- a/erpnext/hr/doctype/experience_in_company_detail/experience_in_company_detail.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-# DocType, Experience In Company Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:01',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 6
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Experience In Company Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Experience In Company Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Experience In Company Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'branch',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Branch',
-		'oldfieldname': 'branch',
-		'oldfieldtype': 'Select',
-		'options': 'link:Branch'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'label': 'Department',
-		'oldfieldname': 'department',
-		'oldfieldtype': 'Select',
-		'options': 'link:Department'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'Designation',
-		'oldfieldname': 'designation',
-		'oldfieldtype': 'Select',
-		'options': 'link:Designation'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'grade',
-		'fieldtype': 'Select',
-		'idx': 4,
-		'label': 'Grade',
-		'oldfieldname': 'grade',
-		'oldfieldtype': 'Select',
-		'options': 'link:Grade'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'idx': 5,
-		'label': 'From Date',
-		'oldfieldname': 'from_date',
-		'oldfieldtype': 'Date'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'idx': 6,
-		'label': 'To Date',
-		'oldfieldname': 'to_date',
-		'oldfieldtype': 'Date'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/grade/grade.txt b/erpnext/hr/doctype/grade/grade.txt
index afa74ad..2e14d9d 100644
--- a/erpnext/hr/doctype/grade/grade.txt
+++ b/erpnext/hr/doctype/grade/grade.txt
@@ -3,46 +3,46 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:03',
+		'creation': '2012-03-27 14:35:57',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:57',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:grade_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:grade_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 7
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Grade',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Grade',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Grade',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Grade',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -51,52 +51,47 @@
 	# DocType, Grade
 	{
 		'doctype': 'DocType',
-		'name': 'Grade'
+		'name': u'Grade'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'HR User',
+		'doctype': u'DocPerm',
+		'role': u'HR User',
 		'submit': 0
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'grade_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Grade',
-		'oldfieldname': 'grade_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'grade_name',
+		'fieldtype': u'Data',
+		'label': u'Grade',
+		'oldfieldname': u'grade_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	}
diff --git a/erpnext/hr/doctype/holiday_list_detail/__init__.py b/erpnext/hr/doctype/holiday/__init__.py
similarity index 100%
rename from erpnext/hr/doctype/holiday_list_detail/__init__.py
rename to erpnext/hr/doctype/holiday/__init__.py
diff --git a/erpnext/hr/doctype/holiday/holiday.txt b/erpnext/hr/doctype/holiday/holiday.txt
new file mode 100644
index 0000000..bfcc7b3
--- /dev/null
+++ b/erpnext/hr/doctype/holiday/holiday.txt
@@ -0,0 +1,61 @@
+# DocType, Holiday
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:57',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:57',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 2
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Holiday',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Holiday
+	{
+		'doctype': 'DocType',
+		'name': u'Holiday'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'holiday_date',
+		'fieldtype': u'Date',
+		'label': u'Date',
+		'oldfieldname': u'holiday_date',
+		'oldfieldtype': u'Date'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/holiday_list/holiday_list.py b/erpnext/hr/doctype/holiday_list/holiday_list.py
index 2f73159..dd31559 100644
--- a/erpnext/hr/doctype/holiday_list/holiday_list.py
+++ b/erpnext/hr/doctype/holiday_list/holiday_list.py
@@ -105,7 +105,7 @@
     yr_start_date, yr_end_date = self.get_fy_start_end_dates()
     date_list = self.get_weekly_off_date_list(yr_start_date, yr_end_date)
     for d in date_list:
-      ch = addchild(self.doc, 'holiday_list_details', 'Holiday List Detail', 1, self.doclist)
+      ch = addchild(self.doc, 'holiday_list_details', 'Holiday', 1, self.doclist)
       ch.description = self.doc.weekly_off
       ch.holiday_date = d
 
diff --git a/erpnext/hr/doctype/holiday_list/holiday_list.txt b/erpnext/hr/doctype/holiday_list/holiday_list.txt
index f9407e3..ce0e49f 100644
--- a/erpnext/hr/doctype/holiday_list/holiday_list.txt
+++ b/erpnext/hr/doctype/holiday_list/holiday_list.txt
@@ -3,129 +3,116 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:03',
+		'creation': '2012-03-27 14:35:57',
 		'docstatus': 0,
-		'modified': '2011-02-12 13:37:12',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:57',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 17
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Holiday List',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Holiday List',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Holiday List',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Holiday List',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'permlevel': 0,
 		'read': 1,
-		'role': 'HR Manager'
+		'role': u'HR Manager',
+		'write': 1
 	},
 
 	# DocType, Holiday List
 	{
 		'doctype': 'DocType',
-		'name': 'Holiday List'
+		'name': u'Holiday List'
 	},
 
 	# DocPerm
 	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 0,
-		'write': 1
+		'doctype': u'DocPerm'
 	},
 
-	# DocPerm
+	# DocField
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'holiday_list_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Holiday List Name',
-		'oldfieldname': 'holiday_list_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'holiday_list_name',
+		'fieldtype': u'Data',
+		'label': u'Holiday List Name',
+		'oldfieldname': u'holiday_list_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_default',
-		'fieldtype': 'Check',
-		'idx': 3,
-		'label': 'Default',
+		'doctype': u'DocField',
+		'fieldname': u'is_default',
+		'fieldtype': u'Check',
+		'label': u'Default',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 4,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Link',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Link',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'weekly_off',
-		'fieldtype': 'Select',
-		'idx': 5,
-		'label': 'Weekly Off',
+		'doctype': u'DocField',
+		'fieldname': u'weekly_off',
+		'fieldtype': u'Select',
+		'label': u'Weekly Off',
 		'no_copy': 1,
-		'options': '\nSunday\nMonday\nTuesday\nWednesday\nThursday\nFriday\nSaturday',
+		'options': u'\nSunday\nMonday\nTuesday\nWednesday\nThursday\nFriday\nSaturday',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -133,35 +120,34 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 6,
-		'label': 'Get Weekly Off Dates',
-		'options': 'get_weekly_off_dates',
+		'doctype': u'DocField',
+		'fieldname': u'get_weekly_off_dates',
+		'fieldtype': u'Button',
+		'label': u'Get Weekly Off Dates',
+		'options': u'get_weekly_off_dates',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'holiday_list_details',
-		'fieldtype': 'Table',
-		'idx': 7,
-		'label': 'Holiday List Details',
-		'oldfieldname': 'holiday_list_details',
-		'oldfieldtype': 'Table',
-		'options': 'Holiday List Detail',
+		'doctype': u'DocField',
+		'fieldname': u'holiday_list_details',
+		'fieldtype': u'Table',
+		'label': u'Holidays',
+		'oldfieldname': u'holiday_list_details',
+		'oldfieldtype': u'Table',
+		'options': u'Holiday',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 8,
-		'label': 'Clear Table',
-		'options': 'clear_table',
+		'doctype': u'DocField',
+		'fieldname': u'clear_table',
+		'fieldtype': u'Button',
+		'label': u'Clear Table',
+		'options': u'clear_table',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/holiday_list_detail/holiday_list_detail.txt b/erpnext/hr/doctype/holiday_list_detail/holiday_list_detail.txt
deleted file mode 100644
index 89f1b04..0000000
--- a/erpnext/hr/doctype/holiday_list_detail/holiday_list_detail.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-# DocType, Holiday List Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:03',
-		'docstatus': 0,
-		'modified': '2011-02-11 14:23:09',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 4
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Holiday List Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Holiday List Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Holiday List Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Description',
-		'oldfieldname': 'holiday_name',
-		'oldfieldtype': 'Data',
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'holiday_date',
-		'fieldtype': 'Date',
-		'idx': 2,
-		'label': 'Date',
-		'oldfieldname': 'holiday_date',
-		'oldfieldtype': 'Date',
-		'width': '100px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/invest_80_declaration_detail/invest_80_declaration_detail.txt b/erpnext/hr/doctype/invest_80_declaration_detail/invest_80_declaration_detail.txt
index 841b21e..ccccdb0 100644
--- a/erpnext/hr/doctype/invest_80_declaration_detail/invest_80_declaration_detail.txt
+++ b/erpnext/hr/doctype/invest_80_declaration_detail/invest_80_declaration_detail.txt
@@ -3,141 +3,133 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:05',
+		'creation': '2012-03-27 14:35:57',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:57',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'HR',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 10
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Invest 80 Declaration Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Invest 80 Declaration Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Invest 80 Declaration Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Invest 80 Declaration Detail',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, Invest 80 Declaration Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Invest 80 Declaration Detail'
+		'name': u'Invest 80 Declaration Detail'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'particulars4',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Particulars',
-		'oldfieldname': 'particulars4',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'particulars4',
+		'fieldtype': u'Small Text',
+		'label': u'Particulars',
+		'oldfieldname': u'particulars4',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1,
 		'reqd': 1,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'under_section4',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Under Section',
-		'oldfieldname': 'under_section4',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'under_section4',
+		'fieldtype': u'Data',
+		'label': u'Under Section',
+		'oldfieldname': u'under_section4',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'max_limit4',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Max. Limit',
-		'oldfieldname': 'max_limit4',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'max_limit4',
+		'fieldtype': u'Currency',
+		'label': u'Max. Limit',
+		'oldfieldname': u'max_limit4',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'actual_amount4',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Actual Amount',
-		'oldfieldname': 'actual_amount4',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'actual_amount4',
+		'fieldtype': u'Currency',
+		'label': u'Actual Amount',
+		'oldfieldname': u'actual_amount4',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'eligible_amount4',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Eligible Amount',
-		'oldfieldname': 'eligible_amount4',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'eligible_amount4',
+		'fieldtype': u'Currency',
+		'label': u'Eligible Amount',
+		'oldfieldname': u'eligible_amount4',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'modified_amount4',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Modified Amount',
-		'oldfieldname': 'modified_amount4',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'modified_amount4',
+		'fieldtype': u'Currency',
+		'label': u'Modified Amount',
+		'oldfieldname': u'modified_amount4',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/it_checklist/it_checklist.js b/erpnext/hr/doctype/it_checklist/it_checklist.js
index a97ae65..6299303 100644
--- a/erpnext/hr/doctype/it_checklist/it_checklist.js
+++ b/erpnext/hr/doctype/it_checklist/it_checklist.js
@@ -57,7 +57,7 @@
 //---------------------------------------------------------
 //On done button click check for all values filled or not, and accordingly add records in child tables
 
-cur_frm.cscript['Done']=function(doc,cdt,cdn){
+cur_frm.cscript.done=function(doc,cdt,cdn){
   var mydoc=doc;
 
   if(doc.employee && doc.fiscal_year && doc.metro && doc.sr_citizen && doc.part_sr_citizen && doc.basic && doc.gross_income){
diff --git a/erpnext/hr/doctype/it_checklist/it_checklist.py b/erpnext/hr/doctype/it_checklist/it_checklist.py
index 4ddfc0a..7b7ce5c 100644
--- a/erpnext/hr/doctype/it_checklist/it_checklist.py
+++ b/erpnext/hr/doctype/it_checklist/it_checklist.py
@@ -87,11 +87,11 @@
       if ret_name:
         for b in ret_name:
           #get earning amount of basic 
-          ret_basic = sql("select e_amount from `tabSS Earning Detail` where parent = '%s' and e_type = 'Basic'"%(b[0]))
+          ret_basic = sql("select e_amount from `tabSalary Slip Earning` where parent = '%s' and e_type = 'Basic'"%(b[0]))
           sum_basic += ret_basic[0][0] or 0  
           
           #get deduction amount of Provident Fund
-          ret_pf = sql("select d_amount from `tabSS Deduction Detail` where parent = '%s' and d_type = 'Provident Fund'"%(b[0]))
+          ret_pf = sql("select d_amount from `tabSalary Slip Deduction` where parent = '%s' and d_type = 'Provident Fund'"%(b[0]))
           
           sum_pf += ret_pf[0][0] or 0
                   
@@ -103,7 +103,7 @@
    
     self.doc.basic = self.doc.gross_income = 0
     #query return list of earning types and resp. modified amount
-    ret = convert_to_lists(sql("select e.e_type, e.modified_value from `tabEarning Detail` e , `tabSalary Structure` s where s.is_active = 'Yes' and s.employee='%s' and e.parent = s.name" %(self.doc.employee)))
+    ret = convert_to_lists(sql("select e.e_type, e.modified_value from `tabSalary Structure Earning` e , `tabSalary Structure` s where s.is_active = 'Yes' and s.employee='%s' and e.parent = s.name" %(self.doc.employee)))
     hra_count=1
     if ret:
       count = 0.0
@@ -132,7 +132,7 @@
     self.doc.pf = 0.0    
               
     #query returns amount 
-    ret_ded = sql("select d.d_modified_amt from `tabDeduction Detail` d , `tabSalary Structure` s where s.is_active = 'Yes' and s.employee='%s' and d.parent = s.name and d.d_type = 'Provident Fund'" %(self.doc.employee))
+    ret_ded = sql("select d.d_modified_amt from `tabSalary Structure Deduction` d , `tabSalary Structure` s where s.is_active = 'Yes' and s.employee='%s' and d.parent = s.name and d.d_type = 'Provident Fund'" %(self.doc.employee))
     
     if not ret_ded:
       msgprint("PF Amount in Salary Structure is zero")
@@ -257,7 +257,7 @@
     if (self.doc.ann_rent > 0):
     
       #query return sum of earning types amount where earning type = 'HRA'
-      ret_sal_slip = sql("select sum(e.e_amount) from `tabSS Earning Detail` e , `tabSalary Slip` s where s.fiscal_year = '%s' and s.docstatus = 1 and s.employee='%s' and e.parent = s.name and e.e_type = 'House Rent Allowance'" %(self.doc.fiscal_year,self.doc.employee))
+      ret_sal_slip = sql("select sum(e.e_amount) from `tabSalary Slip Earning` e , `tabSalary Slip` s where s.fiscal_year = '%s' and s.docstatus = 1 and s.employee='%s' and e.parent = s.name and e.e_type = 'House Rent Allowance'" %(self.doc.fiscal_year,self.doc.employee))
       if not ret_sal_slip:
         ret_sal_slip = 0.00
       else:
@@ -422,7 +422,7 @@
   def calc_tax_pm(self):
        
     ret_income_tax = 0
-    ret_income_tax = sql("select sum(d.d_amount) from `tabSS Deduction Detail` d , `tabSalary Slip` s where s.docstatus = 1 and s.fiscal_year = '%s' and s.employee='%s' and d.parent = s.name and d.d_type = 'Income Tax'" %(self.doc.fiscal_year,self.doc.employee))
+    ret_income_tax = sql("select sum(d.d_amount) from `tabSalary Slip Deduction` d , `tabSalary Slip` s where s.docstatus = 1 and s.fiscal_year = '%s' and s.employee='%s' and d.parent = s.name and d.d_type = 'Income Tax'" %(self.doc.fiscal_year,self.doc.employee))
     
     new_tot_income = cint(self.doc.tax_tot_income) + cint(self.doc.edu_cess) - (cint(ret_income_tax[0][0]) or 0)
     
diff --git a/erpnext/hr/doctype/it_checklist/it_checklist.txt b/erpnext/hr/doctype/it_checklist/it_checklist.txt
index b28e9df..1ccc09f 100644
--- a/erpnext/hr/doctype/it_checklist/it_checklist.txt
+++ b/erpnext/hr/doctype/it_checklist/it_checklist.txt
@@ -3,59 +3,58 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:05',
+		'creation': '2012-03-27 14:35:57',
 		'docstatus': 0,
-		'modified': '2010-12-30 14:53:02',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:57',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'HR',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 455
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'IT Checklist',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'IT Checklist',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'IT Checklist',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'IT Checklist',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, IT Checklist
 	{
 		'doctype': 'DocType',
-		'name': 'IT Checklist'
+		'name': u'IT Checklist'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 0,
 		'write': 1
 	},
@@ -64,10 +63,9 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR User',
+		'role': u'HR User',
 		'write': 1
 	},
 
@@ -75,148 +73,138 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR Manager',
+		'role': u'HR Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR User'
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR Manager'
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Data',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Data',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 3,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Yes',
-		'doctype': 'DocField',
-		'fieldname': 'is_cheklist_active',
-		'fieldtype': 'Select',
-		'idx': 4,
-		'label': 'Is IT Cheklist Active?',
-		'oldfieldname': 'is_cheklist_active',
-		'oldfieldtype': 'Select',
-		'options': 'Yes\nNo',
+		'colour': u'White:FFF',
+		'default': u'Yes',
+		'doctype': u'DocField',
+		'fieldname': u'is_cheklist_active',
+		'fieldtype': u'Select',
+		'label': u'Is IT Cheklist Active?',
+		'oldfieldname': u'is_cheklist_active',
+		'oldfieldtype': u'Select',
+		'options': u'Yes\nNo',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 5,
-		'label': 'Employee Information',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'employee_information',
+		'fieldtype': u'Section Break',
+		'label': u'Employee Information',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 6,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'employee',
-		'fieldtype': 'Link',
-		'idx': 7,
-		'label': 'Employee',
-		'oldfieldname': 'employee',
-		'oldfieldtype': 'Link',
-		'options': 'Employee',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'employee',
+		'fieldtype': u'Link',
+		'label': u'Employee',
+		'oldfieldname': u'employee',
+		'oldfieldtype': u'Link',
+		'options': u'Employee',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_name',
-		'fieldtype': 'Data',
-		'idx': 8,
-		'label': 'Employee Name',
-		'oldfieldname': 'employee_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'employee_name',
+		'fieldtype': u'Data',
+		'label': u'Employee Name',
+		'oldfieldname': u'employee_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'hra_count',
-		'fieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'hra_count',
+		'fieldtype': u'Currency',
 		'hidden': 1,
-		'idx': 9,
-		'label': 'HRA Count',
+		'label': u'HRA Count',
 		'no_copy': 0,
-		'oldfieldname': 'hra_count',
-		'oldfieldtype': 'Currency',
+		'oldfieldname': u'hra_count',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -224,414 +212,394 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'metro',
-		'fieldtype': 'Select',
-		'idx': 10,
-		'label': 'Is location a metro city?',
-		'oldfieldname': 'metro',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'doctype': u'DocField',
+		'fieldname': u'metro',
+		'fieldtype': u'Select',
+		'label': u'Is location a metro city?',
+		'oldfieldname': u'metro',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'sr_citizen',
-		'fieldtype': 'Select',
-		'idx': 11,
-		'label': 'Is senior citizen?',
-		'oldfieldname': 'sr_citizen',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'doctype': u'DocField',
+		'fieldname': u'sr_citizen',
+		'fieldtype': u'Select',
+		'label': u'Is senior citizen?',
+		'oldfieldname': u'sr_citizen',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'part_sr_citizen',
-		'fieldtype': 'Select',
-		'idx': 12,
-		'label': 'Parents are sr. citizen?',
-		'oldfieldname': 'part_sr_citizen',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'doctype': u'DocField',
+		'fieldname': u'part_sr_citizen',
+		'fieldtype': u'Select',
+		'label': u'Parents are sr. citizen?',
+		'oldfieldname': u'part_sr_citizen',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'basic',
-		'fieldtype': 'Currency',
-		'idx': 13,
-		'label': 'Annual Basic',
-		'oldfieldname': 'basic',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'basic',
+		'fieldtype': u'Currency',
+		'label': u'Annual Basic',
+		'oldfieldname': u'basic',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'sum of earning terms',
-		'doctype': 'DocField',
-		'fieldname': 'gross_income',
-		'fieldtype': 'Currency',
-		'idx': 14,
-		'label': 'Annual Gross Income',
-		'oldfieldname': 'gross_income',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'description': u'sum of earning terms',
+		'doctype': u'DocField',
+		'fieldname': u'gross_income',
+		'fieldtype': u'Currency',
+		'label': u'Annual Gross Income',
+		'oldfieldname': u'gross_income',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Please fill up all data then press "Done"',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 15,
-		'label': 'Done',
-		'oldfieldtype': 'Button',
+		'colour': u'White:FFF',
+		'description': u'Please fill up all data then press "Done"',
+		'doctype': u'DocField',
+		'fieldname': u'done',
+		'fieldtype': u'Button',
+		'label': u'Done',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 16,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'rent_acc',
-		'fieldtype': 'Select',
-		'idx': 17,
-		'label': 'Having rented accomodation?',
-		'oldfieldname': 'rent_acc',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'rent_acc',
+		'fieldtype': u'Select',
+		'label': u'Having rented accomodation?',
+		'oldfieldname': u'rent_acc',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'ann_rent',
-		'fieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'ann_rent',
+		'fieldtype': u'Currency',
 		'hidden': 1,
-		'idx': 18,
-		'label': 'Enter annual rent paid',
-		'oldfieldname': 'ann_rent',
-		'oldfieldtype': 'Currency',
+		'label': u'Enter annual rent paid',
+		'oldfieldname': u'ann_rent',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Disability % of the Handicapped Dependents',
-		'doctype': 'DocField',
-		'fieldname': 'per_dep_dis',
-		'fieldtype': 'Select',
-		'idx': 19,
-		'label': 'Dependents Disability %',
-		'oldfieldname': 'per_dep_dis',
-		'oldfieldtype': 'Select',
-		'options': '\nLess than 80% disability\nMore than 80% disability',
+		'colour': u'White:FFF',
+		'description': u'Disability % of the Handicapped Dependents',
+		'doctype': u'DocField',
+		'fieldname': u'per_dep_dis',
+		'fieldtype': u'Select',
+		'label': u'Dependents Disability %',
+		'oldfieldname': u'per_dep_dis',
+		'oldfieldtype': u'Select',
+		'options': u'\nLess than 80% disability\nMore than 80% disability',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'per_self_dis',
-		'fieldtype': 'Select',
-		'idx': 20,
-		'label': 'Self disability %',
-		'oldfieldname': 'per_self_dis',
-		'oldfieldtype': 'Select',
-		'options': '\nLess than 80% disability\nMore than 80% disability',
+		'doctype': u'DocField',
+		'fieldname': u'per_self_dis',
+		'fieldtype': u'Select',
+		'label': u'Self disability %',
+		'oldfieldname': u'per_self_dis',
+		'oldfieldtype': u'Select',
+		'options': u'\nLess than 80% disability\nMore than 80% disability',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'pf',
-		'fieldtype': 'Currency',
-		'idx': 21,
-		'label': 'Annual PF',
-		'oldfieldname': 'pf',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'pf',
+		'fieldtype': u'Currency',
+		'label': u'Annual PF',
+		'oldfieldname': u'pf',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 22,
-		'label': 'Exemptions',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'exemptions',
+		'fieldtype': u'Section Break',
+		'label': u'Exemptions',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 23,
-		'label': 'Exemptions1',
-		'oldfieldtype': 'HTML',
-		'options': '<b>Exemptions under section 10 & 17</b>',
+		'doctype': u'DocField',
+		'fieldname': u'exemptions1',
+		'fieldtype': u'HTML',
+		'label': u'Exemptions1',
+		'oldfieldtype': u'HTML',
+		'options': u'<b>Exemptions under section 10 & 17</b>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'exe_declaration_details',
-		'fieldtype': 'Table',
-		'idx': 24,
-		'label': 'Exemption Detail',
-		'oldfieldname': 'exe_declaration_details',
-		'oldfieldtype': 'Table',
-		'options': 'Declaration Detail',
+		'doctype': u'DocField',
+		'fieldname': u'exe_declaration_details',
+		'fieldtype': u'Table',
+		'label': u'Exemption Detail',
+		'oldfieldname': u'exe_declaration_details',
+		'oldfieldtype': u'Table',
+		'options': u'Declaration Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 25,
-		'label': 'Other Income',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'other_income',
+		'fieldtype': u'Section Break',
+		'label': u'Other Income',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'oth_inc_decl_details',
-		'fieldtype': 'Table',
-		'idx': 26,
-		'label': 'Other Income Details',
-		'oldfieldname': 'oth_inc_decl_details',
-		'oldfieldtype': 'Table',
-		'options': 'Other Income Detail',
+		'doctype': u'DocField',
+		'fieldname': u'oth_inc_decl_details',
+		'fieldtype': u'Table',
+		'label': u'Other Income Details',
+		'oldfieldname': u'oth_inc_decl_details',
+		'oldfieldtype': u'Table',
+		'options': u'Other Income Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 27,
-		'label': 'Chapter VI A',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'chapter_vi_a',
+		'fieldtype': u'Section Break',
+		'label': u'Chapter VI A',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 28,
-		'label': 'deduction chap via',
-		'oldfieldtype': 'HTML',
-		'options': '<b>Deduction under Chapter VI A</b>',
+		'doctype': u'DocField',
+		'fieldname': u'deduction_chap_via',
+		'fieldtype': u'HTML',
+		'label': u'deduction chap via',
+		'oldfieldtype': u'HTML',
+		'options': u'<b>Deduction under Chapter VI A</b>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'chap_via_decl_details',
-		'fieldtype': 'Table',
-		'idx': 29,
-		'label': 'Chap VI A Details',
-		'oldfieldname': 'chap_via_decl_details',
-		'oldfieldtype': 'Table',
-		'options': 'Chapter VI A Detail',
+		'doctype': u'DocField',
+		'fieldname': u'chap_via_decl_details',
+		'fieldtype': u'Table',
+		'label': u'Chap VI A Details',
+		'oldfieldname': u'chap_via_decl_details',
+		'oldfieldtype': u'Table',
+		'options': u'Chapter VI A Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 30,
-		'label': '80 C',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'80_c',
+		'fieldtype': u'Section Break',
+		'label': u'80 C',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 31,
-		'label': 'investment 80 C',
-		'oldfieldtype': 'HTML',
-		'options': '<b>Investment under Section 80 C & 80CCC qualifying for deduction upto RS. 1 Lac</b>',
+		'doctype': u'DocField',
+		'fieldname': u'investment_80_c',
+		'fieldtype': u'HTML',
+		'label': u'investment 80 C',
+		'oldfieldtype': u'HTML',
+		'options': u'<b>Investment under Section 80 C & 80CCC qualifying for deduction upto RS. 1 Lac</b>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'invest_80_decl_details',
-		'fieldtype': 'Table',
-		'idx': 32,
-		'label': 'Invest 80 Decl Details',
-		'oldfieldname': 'invest_80_decl_details',
-		'oldfieldtype': 'Table',
-		'options': 'Invest 80 Declaration Detail',
+		'doctype': u'DocField',
+		'fieldname': u'invest_80_decl_details',
+		'fieldtype': u'Table',
+		'label': u'Invest 80 Decl Details',
+		'oldfieldname': u'invest_80_decl_details',
+		'oldfieldtype': u'Table',
+		'options': u'Invest 80 Declaration Detail',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 33,
-		'label': 'Total Taxable Income',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'total_taxable_income',
+		'fieldtype': u'Section Break',
+		'label': u'Total Taxable Income',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 34,
-		'label': 'Calculate',
-		'oldfieldtype': 'Button',
-		'options': 'calculate_tax',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'calculate',
+		'fieldtype': u'Button',
+		'label': u'Calculate',
+		'oldfieldtype': u'Button',
+		'options': u'calculate_tax',
 		'permlevel': 0,
-		'trigger': 'Server'
+		'trigger': u'Server'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'net_tot_tax_income',
-		'fieldtype': 'Currency',
-		'idx': 35,
-		'label': 'Net Total Taxable Income',
-		'oldfieldname': 'net_tot_tax_income',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'net_tot_tax_income',
+		'fieldtype': u'Currency',
+		'label': u'Net Total Taxable Income',
+		'oldfieldname': u'net_tot_tax_income',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tax_tot_income',
-		'fieldtype': 'Currency',
-		'idx': 36,
-		'label': 'Tax on Total Income',
-		'oldfieldname': 'tax_tot_income',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'tax_tot_income',
+		'fieldtype': u'Currency',
+		'label': u'Tax on Total Income',
+		'oldfieldname': u'tax_tot_income',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'edu_cess',
-		'fieldtype': 'Currency',
-		'idx': 37,
-		'label': 'Education Cess',
-		'oldfieldname': 'edu_cess',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'edu_cess',
+		'fieldtype': u'Currency',
+		'label': u'Education Cess',
+		'oldfieldname': u'edu_cess',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'applicable_from',
-		'fieldtype': 'Select',
-		'idx': 38,
-		'label': 'Applicable from ',
-		'oldfieldname': 'applicable_from',
-		'oldfieldtype': 'Select',
-		'options': '\nJanuary\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'applicable_from',
+		'fieldtype': u'Select',
+		'label': u'Applicable from ',
+		'oldfieldname': u'applicable_from',
+		'oldfieldtype': u'Select',
+		'options': u'\nJanuary\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rem_months',
-		'fieldtype': 'Select',
-		'idx': 39,
-		'label': 'Remaining month in year',
-		'oldfieldname': 'rem_months',
-		'oldfieldtype': 'Select',
-		'options': '\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12',
+		'doctype': u'DocField',
+		'fieldname': u'rem_months',
+		'fieldtype': u'Select',
+		'label': u'Remaining month in year',
+		'oldfieldname': u'rem_months',
+		'oldfieldtype': u'Select',
+		'options': u'\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 40,
-		'label': 'Calculate Tax',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'calculate_tax',
+		'fieldtype': u'Section Break',
+		'label': u'Calculate Tax',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 41,
-		'label': 'Calculate Monthly Tax ',
-		'oldfieldtype': 'Button',
-		'options': 'calc_tax_pm',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'calculate_monthly_tax',
+		'fieldtype': u'Button',
+		'label': u'Calculate Monthly Tax ',
+		'oldfieldtype': u'Button',
+		'options': u'calc_tax_pm',
 		'permlevel': 0,
-		'trigger': 'Server'
+		'trigger': u'Server'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tax_per_month',
-		'fieldtype': 'Currency',
-		'idx': 42,
-		'label': 'Tax per Month',
-		'oldfieldname': 'tax_per_month',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'tax_per_month',
+		'fieldtype': u'Currency',
+		'label': u'Tax per Month',
+		'oldfieldname': u'tax_per_month',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/kra_sheet/__init__.py b/erpnext/hr/doctype/kra_sheet/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/kra_sheet/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/kra_sheet/kra_sheet.txt b/erpnext/hr/doctype/kra_sheet/kra_sheet.txt
deleted file mode 100644
index a1e466b..0000000
--- a/erpnext/hr/doctype/kra_sheet/kra_sheet.txt
+++ /dev/null
@@ -1,68 +0,0 @@
-# DocType, KRA Sheet
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-01 15:48:06',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'KSHEET.#####',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 6
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'KRA Sheet',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocType, KRA Sheet
-	{
-		'doctype': 'DocType',
-		'name': 'KRA Sheet'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Key Performance Area',
-		'doctype': 'DocField',
-		'fieldname': 'kra',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'KRA',
-		'oldfieldname': 'kra',
-		'oldfieldtype': 'Small Text',
-		'width': '200px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'per_weightage',
-		'fieldtype': 'Currency',
-		'idx': 2,
-		'label': 'Weightage (%)',
-		'oldfieldname': 'per_weightage',
-		'oldfieldtype': 'Currency',
-		'width': '100px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/kra_template/__init__.py b/erpnext/hr/doctype/kra_template/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/kra_template/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/kra_template/kra_template.txt b/erpnext/hr/doctype/kra_template/kra_template.txt
deleted file mode 100644
index 5518926..0000000
--- a/erpnext/hr/doctype/kra_template/kra_template.txt
+++ /dev/null
@@ -1,115 +0,0 @@
-# DocType, KRA Template
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-01 15:48:06',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'field:kra_title',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 3
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'KRA Template',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'KRA Template',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'write': 1
-	},
-
-	# DocType, KRA Template
-	{
-		'doctype': 'DocType',
-		'name': 'KRA Template'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'role': 'HR Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'role': 'HR User'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'role': 'System Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'kra_title',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'KRA Title',
-		'oldfieldname': 'kra_title',
-		'oldfieldtype': 'Data',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 2,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'kra_sheet',
-		'fieldtype': 'Table',
-		'idx': 3,
-		'label': 'KRA Sheet',
-		'oldfieldname': 'kra_sheet',
-		'oldfieldtype': 'Table',
-		'options': 'KRA Sheet'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/leave_allocation/leave_allocation.txt b/erpnext/hr/doctype/leave_allocation/leave_allocation.txt
index b147a7f..9045221 100644
--- a/erpnext/hr/doctype/leave_allocation/leave_allocation.txt
+++ b/erpnext/hr/doctype/leave_allocation/leave_allocation.txt
@@ -3,51 +3,53 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-02-10 17:24:59',
+		'creation': '2012-03-27 14:35:58',
 		'docstatus': 0,
-		'modified': '2011-02-17 13:47:13',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:45:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1299063937',
-		'autoname': 'LAL/.#####',
-		'colour': 'White:FFF',
+		'_last_update': u'1317365120',
+		'autoname': u'LAL/.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'HR',
+		'is_submittable': 1,
+		'module': u'HR',
 		'name': '__common__',
-		'search_fields': 'employee,employee_name,leave_type,total_leaves_allocated,fiscal_year',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'employee,employee_name,leave_type,total_leaves_allocated,fiscal_year',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 1565
+		'version': 1560
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Leave Allocation',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Leave Allocation',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Leave Allocation',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Leave Allocation',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Leave Allocation
 	{
 		'doctype': 'DocType',
-		'name': 'Leave Allocation'
+		'name': u'Leave Allocation'
 	},
 
 	# DocPerm
@@ -55,11 +57,10 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'match': 'owner',
+		'doctype': u'DocPerm',
+		'match': u'owner',
 		'permlevel': 0,
-		'role': 'HR User',
+		'role': u'HR User',
 		'submit': 1,
 		'write': 1
 	},
@@ -69,11 +70,10 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'match': 'owner',
+		'doctype': u'DocPerm',
+		'match': u'owner',
 		'permlevel': 0,
-		'role': 'HR User',
+		'role': u'HR User',
 		'submit': 0,
 		'write': 0
 	},
@@ -83,93 +83,86 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR Manager',
+		'role': u'HR Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR Manager'
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'column_break1',
-		'fieldtype': 'Column Break',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'employee',
-		'fieldtype': 'Link',
-		'idx': 2,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'employee',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Employee',
-		'oldfieldname': 'employee',
-		'oldfieldtype': 'Link',
-		'options': 'Employee',
+		'label': u'Employee',
+		'oldfieldname': u'employee',
+		'oldfieldtype': u'Link',
+		'options': u'Employee',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_name',
-		'fieldtype': 'Data',
-		'idx': 3,
+		'doctype': u'DocField',
+		'fieldname': u'employee_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Employee Name',
+		'label': u'Employee Name',
 		'permlevel': 1,
-		'search_index': 0
+		'search_index': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'leave_type',
-		'fieldtype': 'Select',
-		'idx': 4,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'leave_type',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Leave Type',
-		'oldfieldname': 'leave_type',
-		'oldfieldtype': 'Link',
-		'options': '\nCasual Leave\nCompensatory Off\nLeave Without Pay\nPaternity Leave\nPrivilege Leave\nSick Leave',
+		'label': u'Leave Type',
+		'oldfieldname': u'leave_type',
+		'oldfieldtype': u'Link',
+		'options': u'link:Leave Type',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Today',
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
+		'colour': u'White:FFF',
+		'default': u'Today',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
 		'hidden': 0,
-		'idx': 5,
-		'label': 'Posting Date',
+		'label': u'Posting Date',
 		'no_copy': 1,
-		'oldfieldname': 'date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 0
@@ -177,116 +170,109 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 6,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Data',
-		'options': '\n2010-2011\n2011-2012\n2012-2013',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Data',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
 		'hidden': 0,
-		'idx': 7,
-		'label': 'Description',
-		'oldfieldname': 'reason',
-		'oldfieldtype': 'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'column_break8',
-		'fieldtype': 'Column Break',
-		'idx': 8,
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'carry_forward',
-		'fieldtype': 'Check',
-		'idx': 9,
-		'label': 'Carry Forward',
+		'doctype': u'DocField',
+		'fieldname': u'carry_forward',
+		'fieldtype': u'Check',
+		'label': u'Carry Forward',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'carry_forwarded_leaves',
-		'fieldtype': 'Currency',
-		'idx': 10,
-		'label': 'Carry Forwarded Leaves',
+		'doctype': u'DocField',
+		'fieldname': u'carry_forwarded_leaves',
+		'fieldtype': u'Currency',
+		'label': u'Carry Forwarded Leaves',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'new_leaves_allocated',
-		'fieldtype': 'Currency',
-		'idx': 11,
-		'label': 'New Leaves Allocated',
+		'doctype': u'DocField',
+		'fieldname': u'new_leaves_allocated',
+		'fieldtype': u'Currency',
+		'label': u'New Leaves Allocated',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_leaves_allocated',
-		'fieldtype': 'Currency',
-		'idx': 12,
-		'label': 'Total Leaves Allocated',
+		'doctype': u'DocField',
+		'fieldname': u'total_leaves_allocated',
+		'fieldtype': u'Currency',
+		'label': u'Total Leaves Allocated',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
 		'hidden': 0,
-		'idx': 13,
-		'label': 'Amended From',
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'description': 'The date at which current entry is corrected in the system.',
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
 		'hidden': 0,
-		'idx': 14,
-		'label': 'Amendment Date',
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'print_hide': 1
 	}
diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py
index 66647c1..7ad637d 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -59,9 +59,9 @@
 		"""
 			get total holidays
 		"""
-		tot_hol = sql("select count(*) from `tabHoliday List Detail` h1, `tabHoliday List` h2, `tabEmployee` e1 where e1.name = '%s' and h1.parent = h2.name and e1.holiday_list = h2.name and h1.holiday_date between '%s' and '%s'"% (self.doc.employee, self.doc.from_date, self.doc.to_date))
+		tot_hol = sql("select count(*) from `tabHoliday` h1, `tabHoliday List` h2, `tabEmployee` e1 where e1.name = '%s' and h1.parent = h2.name and e1.holiday_list = h2.name and h1.holiday_date between '%s' and '%s'"% (self.doc.employee, self.doc.from_date, self.doc.to_date))
 		if not tot_hol:
-			tot_hol = sql("select count(*) from `tabHoliday List Detail` h1, `tabHoliday List` h2 where h1.parent = h2.name and h1.holiday_date between '%s' and '%s' and ifnull(h2.is_default,0) = 1 and h2.fiscal_year = %s"% (self.doc.from_date, self.doc.to_date, self.doc.fiscal_year))
+			tot_hol = sql("select count(*) from `tabHoliday` h1, `tabHoliday List` h2 where h1.parent = h2.name and h1.holiday_date between '%s' and '%s' and ifnull(h2.is_default,0) = 1 and h2.fiscal_year = %s"% (self.doc.from_date, self.doc.to_date, self.doc.fiscal_year))
 		return tot_hol and flt(tot_hol[0][0]) or 0
 
 	
diff --git a/erpnext/hr/doctype/leave_application/leave_application.txt b/erpnext/hr/doctype/leave_application/leave_application.txt
index 06b4170..b2ce2ab 100644
--- a/erpnext/hr/doctype/leave_application/leave_application.txt
+++ b/erpnext/hr/doctype/leave_application/leave_application.txt
@@ -3,53 +3,54 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-02-10 14:10:08',
+		'creation': '2012-03-27 14:35:58',
 		'docstatus': 0,
-		'modified': '2011-07-11 12:48:49',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:45:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1310019491',
-		'autoname': 'LAP/.#####',
-		'colour': 'White:FFF',
+		'_last_update': u'1310019491',
+		'autoname': u'LAP/.#####',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Transaction',
-		'module': 'HR',
+		'document_type': u'Transaction',
+		'is_submittable': 1,
+		'module': u'HR',
 		'name': '__common__',
-		'search_fields': 'employee,employee_name,leave_type,from_date,to_date,total_leave_days,fiscal_year',
-		'section_style': 'Simple',
+		'search_fields': u'employee,employee_name,leave_type,from_date,to_date,total_leave_days,fiscal_year',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
-		'subject': 'From %(employee_name)s, %(designation)s',
-		'tag_fields': 'leave_type',
+		'subject': u'From %(employee_name)s, %(designation)s',
+		'tag_fields': u'leave_type',
 		'version': 17
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Leave Application',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Leave Application',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Leave Application',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Leave Application',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Leave Application
 	{
 		'doctype': 'DocType',
-		'name': 'Leave Application'
+		'name': u'Leave Application'
 	},
 
 	# DocPerm
@@ -57,9 +58,8 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'match': 'owner',
+		'doctype': u'DocPerm',
+		'match': u'owner',
 		'permlevel': 0,
 		'submit': 1,
 		'write': 1
@@ -70,9 +70,8 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'match': 'owner',
+		'doctype': u'DocPerm',
+		'match': u'owner',
 		'permlevel': 0,
 		'submit': 0,
 		'write': 0
@@ -83,10 +82,9 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR User',
+		'role': u'HR User',
 		'submit': 1,
 		'write': 1
 	},
@@ -96,48 +94,54 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR Manager',
+		'role': u'HR Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR User'
+		'role': u'HR User',
+		'submit': 0,
+		'write': 0
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR Manager'
+		'role': u'HR Manager',
+		'submit': 0,
+		'write': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee',
-		'fieldtype': 'Link',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'employee',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Employee',
-		'options': 'Employee',
+		'label': u'Employee',
+		'options': u'Employee',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -145,25 +149,23 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_name',
-		'fieldtype': 'Data',
-		'idx': 3,
+		'doctype': u'DocField',
+		'fieldname': u'employee_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Employee Name',
+		'label': u'Employee Name',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'leave_type',
-		'fieldtype': 'Select',
-		'idx': 4,
+		'doctype': u'DocField',
+		'fieldname': u'leave_type',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Leave Type',
-		'options': 'link:Leave Type',
+		'label': u'Leave Type',
+		'options': u'link:Leave Type',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -171,23 +173,21 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'leave_balance',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Leave Balance',
+		'doctype': u'DocField',
+		'fieldname': u'leave_balance',
+		'fieldtype': u'Currency',
+		'label': u'Leave Balance',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Today',
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
-		'idx': 6,
-		'label': 'Posting Date',
+		'colour': u'White:FFF',
+		'default': u'Today',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
+		'label': u'Posting Date',
 		'no_copy': 1,
 		'permlevel': 1,
 		'reqd': 1
@@ -195,13 +195,12 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 7,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -209,100 +208,92 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 8,
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'half_day',
-		'fieldtype': 'Check',
-		'idx': 9,
-		'label': 'Half Day',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'half_day',
+		'fieldtype': u'Check',
+		'label': u'Half Day',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'idx': 10,
-		'label': 'From Date',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'from_date',
+		'fieldtype': u'Date',
+		'label': u'From Date',
 		'permlevel': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'idx': 11,
-		'label': 'To Date',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'to_date',
+		'fieldtype': u'Date',
+		'label': u'To Date',
 		'permlevel': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_leave_days',
-		'fieldtype': 'Currency',
-		'idx': 12,
-		'label': 'Total Leave Days',
+		'doctype': u'DocField',
+		'fieldname': u'total_leave_days',
+		'fieldtype': u'Currency',
+		'label': u'Total Leave Days',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 13,
-		'label': 'Description',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
 		'permlevel': 0,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'letter_head',
-		'fieldtype': 'Link',
-		'idx': 14,
-		'label': 'Letter Head',
-		'options': 'Letter Head',
+		'doctype': u'DocField',
+		'fieldname': u'letter_head',
+		'fieldtype': u'Link',
+		'label': u'Letter Head',
+		'options': u'Letter Head',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'idx': 15,
-		'label': 'Amended From',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'idx': 16,
-		'label': 'Amendment Date',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.txt b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.txt
index 29999de..9adc243 100644
--- a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.txt
+++ b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.txt
@@ -3,242 +3,227 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:08',
+		'creation': '2012-03-27 14:35:59',
 		'docstatus': 0,
-		'modified': '2011-02-12 15:42:00',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:59',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
+		'_last_update': u'1297751828',
 		'allow_copy': 1,
 		'allow_email': 1,
 		'allow_print': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'hide_heading': 0,
 		'hide_toolbar': 0,
 		'issingle': 1,
-		'module': 'HR',
+		'module': u'HR',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 161
+		'version': 162
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Leave Control Panel',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Leave Control Panel',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Leave Control Panel',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Leave Control Panel',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Leave Control Panel
 	{
 		'doctype': 'DocType',
-		'name': 'Leave Control Panel'
+		'name': u'Leave Control Panel'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR User',
+		'role': u'HR User',
 		'write': 1
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR Manager',
+		'role': u'HR Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR User'
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR Manager'
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'column_break1',
-		'fieldtype': 'Column Break',
-		'idx': 1,
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Leave blank if considered for all employee types',
-		'doctype': 'DocField',
-		'fieldname': 'employee_type',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'label': 'Employee Type',
-		'options': 'link:Employment Type'
+		'colour': u'White:FFF',
+		'description': u'Leave blank if considered for all employee types',
+		'doctype': u'DocField',
+		'fieldname': u'employee_type',
+		'fieldtype': u'Select',
+		'label': u'Employee Type',
+		'options': u'link:Employment Type'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Leave blank if considered for all branches',
-		'doctype': 'DocField',
-		'fieldname': 'branch',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'Branch',
-		'options': 'link:Branch'
+		'colour': u'White:FFF',
+		'description': u'Leave blank if considered for all branches',
+		'doctype': u'DocField',
+		'fieldname': u'branch',
+		'fieldtype': u'Select',
+		'label': u'Branch',
+		'options': u'link:Branch'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Leave blank if considered for all departments',
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Select',
-		'idx': 4,
-		'label': 'Department',
-		'options': 'link:Department'
+		'colour': u'White:FFF',
+		'description': u'Leave blank if considered for all departments',
+		'doctype': u'DocField',
+		'fieldname': u'department',
+		'fieldtype': u'Select',
+		'label': u'Department',
+		'options': u'link:Department'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Leave blank if considered for all designations',
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Select',
-		'idx': 5,
-		'label': 'Designation',
-		'options': 'link:Designation'
+		'colour': u'White:FFF',
+		'description': u'Leave blank if considered for all designations',
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Select',
+		'label': u'Designation',
+		'options': u'link:Designation'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Leave blank if considered for all grades',
-		'doctype': 'DocField',
-		'fieldname': 'grade',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Grade',
-		'options': 'link:Grade'
+		'colour': u'White:FFF',
+		'description': u'Leave blank if considered for all grades',
+		'doctype': u'DocField',
+		'fieldname': u'grade',
+		'fieldtype': u'Select',
+		'label': u'Grade',
+		'options': u'link:Grade'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'column_break7',
-		'fieldtype': 'Column Break',
-		'idx': 7,
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 8,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'options': u'link:Fiscal Year',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'leave_type',
-		'fieldtype': 'Select',
-		'idx': 9,
-		'label': 'Leave Type',
-		'options': 'link:Leave Type',
+		'doctype': u'DocField',
+		'fieldname': u'leave_type',
+		'fieldtype': u'Select',
+		'label': u'Leave Type',
+		'options': u'link:Leave Type',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': "Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year",
-		'doctype': 'DocField',
-		'fieldname': 'carry_forward',
-		'fieldtype': 'Check',
-		'idx': 10,
-		'label': 'Carry Forward'
+		'colour': u'White:FFF',
+		'description': u"Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year",
+		'doctype': u'DocField',
+		'fieldname': u'carry_forward',
+		'fieldtype': u'Check',
+		'label': u'Carry Forward'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'no_of_days',
-		'fieldtype': 'Currency',
-		'idx': 11,
-		'label': 'New Leaves Allocated (In Days)',
+		'doctype': u'DocField',
+		'fieldname': u'no_of_days',
+		'fieldtype': u'Currency',
+		'label': u'New Leaves Allocated (In Days)',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 12,
-		'label': 'Allocate',
-		'options': 'allocate_leave',
-		'trigger': 'Server'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'allocate',
+		'fieldtype': u'Button',
+		'label': u'Allocate',
+		'options': u'allocate_leave',
+		'trigger': u'Server'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/leave_type/leave_type.txt b/erpnext/hr/doctype/leave_type/leave_type.txt
index fb9aafd..a6a1f2d 100644
--- a/erpnext/hr/doctype/leave_type/leave_type.txt
+++ b/erpnext/hr/doctype/leave_type/leave_type.txt
@@ -3,46 +3,46 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:08',
+		'creation': '2012-03-27 14:35:59',
 		'docstatus': 0,
-		'modified': '2011-02-10 17:05:15',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:59',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:leave_type_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:leave_type_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'HR',
+		'document_type': u'Master',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 23
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Leave Type',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Leave Type',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Leave Type',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Leave Type',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -51,90 +51,82 @@
 	# DocType, Leave Type
 	{
 		'doctype': 'DocType',
-		'name': 'Leave Type'
+		'name': u'Leave Type'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'HR User'
+		'doctype': u'DocPerm',
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'leave_type_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Leave Type Name',
-		'oldfieldname': 'leave_type_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'leave_type_name',
+		'fieldtype': u'Data',
+		'label': u'Leave Type Name',
+		'oldfieldname': u'leave_type_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'max_days_allowed',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Max Days Leave Allowed',
-		'oldfieldname': 'max_days_allowed',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'max_days_allowed',
+		'fieldtype': u'Data',
+		'label': u'Max Days Leave Allowed',
+		'oldfieldname': u'max_days_allowed',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_carry_forward',
-		'fieldtype': 'Check',
-		'idx': 4,
-		'label': 'Is Carry Forward',
-		'oldfieldname': 'is_carry_forward',
-		'oldfieldtype': 'Check',
+		'doctype': u'DocField',
+		'fieldname': u'is_carry_forward',
+		'fieldtype': u'Check',
+		'label': u'Is Carry Forward',
+		'oldfieldname': u'is_carry_forward',
+		'oldfieldtype': u'Check',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_encash',
-		'fieldtype': 'Check',
+		'doctype': u'DocField',
+		'fieldname': u'is_encash',
+		'fieldtype': u'Check',
 		'hidden': 1,
-		'idx': 5,
-		'label': 'Is Encash',
-		'oldfieldname': 'is_encash',
-		'oldfieldtype': 'Check',
+		'label': u'Is Encash',
+		'oldfieldname': u'is_encash',
+		'oldfieldtype': u'Check',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -142,11 +134,10 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_lwp',
-		'fieldtype': 'Check',
-		'idx': 6,
-		'label': 'Is LWP',
+		'doctype': u'DocField',
+		'fieldname': u'is_lwp',
+		'fieldtype': u'Check',
+		'label': u'Is LWP',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/other_income_detail/other_income_detail.txt b/erpnext/hr/doctype/other_income_detail/other_income_detail.txt
index 232427d..93a9ea0 100644
--- a/erpnext/hr/doctype/other_income_detail/other_income_detail.txt
+++ b/erpnext/hr/doctype/other_income_detail/other_income_detail.txt
@@ -3,139 +3,131 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:11',
+		'creation': '2012-03-27 14:35:59',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:59',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'HR',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 6
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Other Income Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Other Income Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Other Income Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Other Income Detail',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, Other Income Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Other Income Detail'
+		'name': u'Other Income Detail'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'particulars2',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Particulars',
-		'oldfieldname': 'particulars2',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'particulars2',
+		'fieldtype': u'Small Text',
+		'label': u'Particulars',
+		'oldfieldname': u'particulars2',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1,
 		'reqd': 1,
-		'width': '200px'
+		'width': u'200px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'under_section2',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Under Section',
-		'oldfieldname': 'under_section2',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'under_section2',
+		'fieldtype': u'Data',
+		'label': u'Under Section',
+		'oldfieldname': u'under_section2',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'max_limit2',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Max. Limit',
-		'oldfieldname': 'max_limit2',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'max_limit2',
+		'fieldtype': u'Currency',
+		'label': u'Max. Limit',
+		'oldfieldname': u'max_limit2',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'actual_amount2',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Actual Amount',
-		'oldfieldname': 'actual_amount2',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'actual_amount2',
+		'fieldtype': u'Currency',
+		'label': u'Actual Amount',
+		'oldfieldname': u'actual_amount2',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'eligible_amount2',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Eligible Amount',
-		'oldfieldname': 'eligible_amount2',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'eligible_amount2',
+		'fieldtype': u'Currency',
+		'label': u'Eligible Amount',
+		'oldfieldname': u'eligible_amount2',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'modified_amount2',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Modified Amount',
-		'oldfieldname': 'modified_amount2',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'modified_amount2',
+		'fieldtype': u'Currency',
+		'label': u'Modified Amount',
+		'oldfieldname': u'modified_amount2',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/payroll_rule/__init__.py b/erpnext/hr/doctype/payroll_rule/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/payroll_rule/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/payroll_rule/payroll_rule.js b/erpnext/hr/doctype/payroll_rule/payroll_rule.js
deleted file mode 100644
index e021338..0000000
--- a/erpnext/hr/doctype/payroll_rule/payroll_rule.js
+++ /dev/null
@@ -1,111 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-//omload function to set values in select field
-cur_frm.cscript.onload = function(doc, cdt, cdn){
-  var mydoc = doc
-  doc.select_master = 'Salary Structure';
-  refresh_field('select_master');
-
-  var call_back_master2 = function(mydoc){
-    $c('runserverobj', args={'method':'get_masters', 'docs':compress_doclist (make_doclist (doc.doctype,doc.name))},
-    function(r, rt) {
-    var doc = locals[mydoc.doctype][mydoc.name];
-     get_field(doc.doctype, 'select_master2' , doc.name).options = r.message;
-     refresh_field('select_master2');
-   
-    }
-  );
-  }
-  $c('runserverobj', args={'method':'maindoc_field', 'arg':doc.select_master,'docs':compress_doclist (make_doclist (doc.doctype,doc.name))},
-    function(r, rt) {
-     var doc = locals[mydoc.doctype][mydoc.name];
-     get_field(doc.doctype, 'select_field' , doc.name).options = r.message;
-     refresh_field('select_field');
-     call_back_master2(mydoc);
-    }
-  );
-}
-
-//select_master2 onchanged event function: it will add values to select_field2 based on select_master2 field 
-cur_frm.cscript.select_master2 = function(doc, cdt, cdn){
-  var mydoc = doc
-  doc.select_field2 ='';
-  refresh_field('select_field2');
-  doc.select_value='';
-  refresh_field('select_value');
-  $c('runserverobj', args={'method':'maindoc_field', 'arg':doc.select_master2, 'docs':compress_doclist (make_doclist (doc.doctype,doc.name))},
-    function(r, rt) {
-     var doc = locals[mydoc.doctype][mydoc.name];
-     get_field(doc.doctype, 'select_field2' , doc.name).options = r.message;
-     refresh_field('select_field2');
-     get_field(doc.doctype, 'select_value' , doc.name).options = '';
-     refresh_field('select_value'); 
-        
-    }
-  );
-}
-
-//select_field2 onchanged event function: used to add records values of selected master & their field_name
-cur_frm.cscript.select_field2 = function(doc, cdt, cdn){
-  var mydoc = doc
-  doc.select_value='';
-  refresh_field('select_value');
-  $c('runserverobj', args={'method':'get_values','docs':compress_doclist (make_doclist (doc.doctype,doc.name))},
-    function(r, rt) {
-     var doc = locals[mydoc.doctype][mydoc.name];
-     get_field(doc.doctype, 'select_value' , doc.name).options = r.message;
-     refresh_field('select_value');
-     
-    }
-  );
-}
-
-//transaction onchanged event function: used to add transaction terms to transaction term field
-cur_frm.cscript.transaction = function(doc, cdt, cdn){
-  var mydoc = doc
-  doc.transaction_term='';
-  refresh_field('transaction_term');
-  if(doc.transaction){
-    $c('runserverobj', args={'method':'add_transaction_terms','docs':compress_doclist (make_doclist (doc.doctype,doc.name))},
-      function(r, rt) {
-       var doc = locals[mydoc.doctype][mydoc.name];
-       get_field(doc.doctype, 'transaction_term' , doc.name).options = r.message;
-       refresh_field('transaction_term');
-     }
-    );
-  }
-}
-
-
-//right operand of condition :hide or unhide 
-cur_frm.cscript.right_operand = function(doc, cdt, cdn){
-  doc.select_master2 = "";
-  doc.select_field2 = "";
-  doc.select_value = "";
-  if(doc.right_operand =='Automatic'){
-    unhide_field('select_master2');
-    unhide_field('select_field2');
-    unhide_field('select_value');
-  }
-  else {
-   hide_field('select_master2');
-   hide_field('select_field2');
-   hide_field('select_value');
-  
-  }
-}
-
diff --git a/erpnext/hr/doctype/payroll_rule/payroll_rule.py b/erpnext/hr/doctype/payroll_rule/payroll_rule.py
deleted file mode 100644
index 5d6e13f..0000000
--- a/erpnext/hr/doctype/payroll_rule/payroll_rule.py
+++ /dev/null
@@ -1,327 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self, doc, doclist=[]):
-    self.doc, self.doclist = doc, doclist  
-  
-  #----------------------------------------------------
-  # list of master whose module is payroll & isnot table
-  def get_masters(self):
-    master1 = sql("select name from `tabDocType` where module = 'Payroll' and (istable = 0 or istable is null)")
-    ret =''
-    if master1:
-      for i in master1:
-        ret += "\n" + i[0]
-    return ret
-    
-
-  #---------------------------------------------------- 
-  #list of all fields for which conditions can be set
-  def maindoc_field(self, select_form):
-    field_list=[]
-    
-    
-    field_info = sql("select label,fieldtype,options,fieldname from `tabDocField` where parent='%s' and fieldtype not in('Section Break','Column Break','Text','Small Text','Text Editor', 'Time', 'Check', 'Button','Code','HTML','Image','Blob','Password')"%select_form)
-    
-    for f in field_info:
-      sl=[]
-      for x in f:
-        sl.append(x)
-      field_list.append(sl)
-    ret = ''
-    
-    #=====================================================  
-    
-    for fi in field_list:
-      if fi[1] !='Select' or fi[1] !='Link' or fi[1] !='Table':
-        ret += "\n" + cstr(select_form) + ':' + fi[0]
-      elif fi[1] =='Select':
-        op = fi[2].split(':')
-        if op[0] != 'link':
-          ret += "\n" + cstr(select_form) + ':' +fi[0]
-        #========  
-        # linked doctype field list
-    
-    #=====================================================  
-    
-    for fi in field_list:    
-      if fi[1] == 'Link':
-        flist=sql("select label from tabDocField where parent='%s' and fieldtype in ('Data', 'Int', 'Select','Currency','Float','Link')"%fi[2])
-        for f in flist:
-          ret += "\n" + fi[0] + ':' +f[0]
-      elif fi[1] == 'Select':
-        op = fi[2].split(':')
-        if op[0] == 'link':
-          flist=sql("select label from tabDocField where parent='%s' and fieldtype in ('Data', 'Select', 'Int','Currency','Float','Link')"%op[1])
-          for f in flist:
-            ret += "\n" + fi[0] + ':' +f[0]
-
-    return ret
-
-
-  #----------------------------------------------------  
-  # function for finding fieldname,datatype of mentioned label
-  def field_info(self,label,parent):
-    field_name=sql("select fieldname from tabDocField where parent='%s' and label='%s'" %(parent,label))[0][0]
-    if field_name: 
-      datatype=sql("select fieldtype from `tabDocField` where fieldname='%s' and parent='%s'" %(field_name,parent))[0][0]
-      ret={'fieldnm':field_name,'datatype':datatype}
-    
-    return ret
-  
-  #----------------------------------------------------
-  def compare_string(self,first,second,op):
-
-    if op=='Equals':
-      if first.lower()==second.lower():
-        return 'true'
-      else:
-        return 'false'
-    elif op=='Not Equals':
-      if first.lower()!=second.lower():
-        return 'true'
-      else:
-        return 'false'
-    elif op=='Greater than':
-      if first.lower()>second.lower():
-        return 'true'
-      else:
-        return 'false'
-    elif op=='Greater than or Equals':
-      if first.lower()>=second.lower():
-        return 'true'
-      else:
-        return 'false'
-    elif op=='Less than':
-      if first.lower()<second.lower():
-        return 'true'
-      else:
-        return 'false'
-    elif op=='Less than or Equals':
-      if first.lower()<=second.lower():
-        return 'true'
-      else:
-        return 'false'
- 
-  
-  #----------------------------------------------------
-  #evalute operator
-  def eval_operator(self,op):
-    op_sign =''
-    if op=='Equals':
-      op_sign='=='
-    elif op=='Not Equals':
-      op_sign='!='
-    elif op=='Greater than':
-      op_sign='>'
-    elif op=='Greater than or Equals':
-      op_sign='>='
-    elif op=='Less than':
-      op_sign='<'
-    elif op=='Less than or Equals':
-      op_sign='<='
-    
-    return op_sign
-  
-  #----------------------------------------------------  
-  #evaluation condition
-  def eval_condition(self,field_dict,form_val,value,operator):
-    if field_dict['datatype']=='Data' or field_dict['datatype']=='Select' or field_dict['datatype'] =='Link':
-      
-      if self.compare_string(cstr(form_val),cstr(value),operator)=='false':
-        cond_hold='No'
-      else:
-        cond_hold='Yes'
-    else:
-      op_sign = self.eval_operator(operator)  
-      chk_cond=str(form_val) + str(op_sign) + str(value)
-      errprint(chk_cond)
-      if eval(chk_cond):
-        cond_hold='Yes'
-      else:
-        cond_hold='No'
-   
-    return cond_hold
-  
-  #----------------------------------------------------
-  # fetching the value from the form
-  def find_value(self,fld_nm,tab_nm,rec_nm,child=0):
-    if child == 0:
-      form_val=sql("select %s from `tab%s` where name='%s'"%(fld_nm,tab_nm,rec_nm))
-    
-    elif child == 1:
-      form_val=sql("select %s from `tab%s` where parent='%s'"%(fld_nm,tab_nm,rec_nm))
-    
-    return form_val and form_val[0][0]
-  
-  #----------------------------------------------------
-  # checking with main doctype  
-  def chk_from_main_dt(self,master,label1,value,operator,form_obj):
-    cond_hold = ''
-    field_dict = self.field_info(label1,master) #getting fieldname info
-    form_val=self.find_value(field_dict['fieldnm'],master,form_obj.doc.name) # find value
-   
-    if form_val :
-      cond_hold = self.eval_condition(field_dict,form_val,value,operator)
-    elif not form_val and field_dict['datatype'] =='Currency' or field_dict['datatype'] =='Float' or field_dict['datatype'] =='Int':
-      
-      form_val = 0.0
-      cond_hold = self.eval_condition(field_dict,form_val,value,operator)
-    return cond_hold
-
-  #----------------------------------------------------  
-  #checking with child doctype
-  def chk_from_child_dt(self,first_label,second_label,value,operator,form_obj):
-    cond_hold = ''
-    field_dict = self.field_info(second_label,first_label)
-    form_val=self.find_value(field_dict['fieldnm'],first_label,form_obj.doc.name,1) #fetching the value in current form from a table
-    if form_val or form_val==0:
-      cond_hold = self.eval_condition(field_dict,form_val,value,operator)
-    
-    return cond_hold
-
-  #----------------------------------------------------
-  # if checking is with any linked doctype means first_label field from the doctype for which rule is given and second_label field from the doctype with which first_label is linked  
-  
-  def chk_from_link_dt(self,master,first_label,second_label,form_obj,value,operator):
-    cond_hold=''
-    field_list=[]
-    field_dict_first = self.field_info(first_label,master)
-    field_info = sql("select label,fieldtype,options,fieldname from `tabDocField` where parent='%s' and fieldtype not in('Section Break','Column Break','Text','Small Text','Text Editor', 'Time', 'Check', 'Button','Code','HTML','Image','Blob','Password')"%master)
-    for f in field_info:
-      sl=[]
-      for x in f:
-        sl.append(x)
-      field_list.append(sl)
-    for x in field_list:
-      if x[3] == field_dict_first['fieldnm']:
-        linked_to = x[2]
-    
-    lt = linked_to.split(':')
-    
-    #=================================================
-    if lt[0] == 'link':
-      field_dict_second = self.field_info(second_label,lt[1])
-      link_val=sql("select %s from `tab%s` where name='%s'"%(field_dict_first['fieldnm'],master,form_obj.doc.name))
-      if link_val and link_val[0][0]:
-        form_val = self.find_value(field_dict_second['fieldnm'],lt[1],link_val[0][0])
-        if form_val :
-          cond_hold = self.eval_condition(field_dict_second,form_val,value,operator)
-      
-    else:
-      field_dict_second = self.field_info(second_label,lt[0])
-      link_val=sql("select %s from `tab%s` where name='%s'"%(field_dict_first['fieldnm'],master,form_obj.doc.name))
-      if link_val and link_val[0][0]:
-        form_val = self.find_value(field_dict_second['fieldnm'],lt[0],link_val[0][0])
-        if form_val :
-          cond_hold = self.eval_condition(field_dict_second,form_val,value,operator)
-    
-    return cond_hold
-
-  #----------------------------------------------------
-  def evalute_rule(self,form_obj):
-    
-    all_cond_hold='Yes'
-    for d in getlist(self.doclist,'condition_details'):
-      master = d.rule_master
-      label = d.rule_field.split(':')  #break up checking condition
-      
-      #findout the value with which condition will be checked
-      if d.value:
-        chk_with_value = d.value
-        
-      
-      # label[0] is doctype name for which rule is given, label[1] field name of that doctype
-      if label[0] == master:
-        cond_hold = self.chk_from_main_dt(master,label[1],chk_with_value,d.operator,form_obj) 
-        if cond_hold =='No':
-          all_cond_hold = 'No'
-          break
-        elif cond_hold =='Yes':
-          all_cond_hold ='Yes'
-          
-      #=====================================================   
-      # if checking is with any linked doctype means label[0] field from the doctype for which rule is given and label[1] field from the doctype with which label[0] is linked
-      else:
-        cond_hold=self.chk_from_link_dt(master,label[0],label[1],form_obj,chk_with_value,d.operator)
-        if cond_hold =='No':
-          if d.exception == 'Yes':
-              msgprint(d.message)
-              raise Exception
-          elif d.exception=='No' or d.exception=='':
-              msgprint(d.message)
-          all_cond_hold = 'No'
-          break
-        elif cond_hold =='Yes':
-          all_cond_hold ='Yes'
-   
-    return all_cond_hold
-  
-  #----------------------------------------------------
-  #list of values of label & fieldname of selected master    
-  def get_values(self):
-    op = self.doc.select_field2.split(':')
-    
-    if op[0] == self.doc.master2:
-      field_info = sql("select label,fieldname from `tabDocField` where parent= '%s' AND label = '%s'" %(self.doc.select_master2,op[1]))
-      
-    else:
-      field_info = sql("select label,fieldname from `tabDocField` where parent= '%s' AND label = '%s'" %(op[0],op[1]))
-      
-    comp = sql("SELECT DISTINCT %s FROM `tab%s`" %(field_info[0][1],op[0]))
-    
-    res = ''
-    for i in comp:
-      res +=  "\n" + str(i[0])
-    
-    return cstr(res)
-
-  #----------------------------------------------------  
-  #add_details function add records in condition detail table     
-  def add_details(self):
-    
-    if((self.doc.select_master)  and (self.doc.select_field)):
-      if((self.doc.right_operand=='Automatic') and (self.doc.select_value=='')):
-        msgprint("Please select value")
-      else:
-        ch = addchild(self.doc,'condition_details','Condition Detail',0, self.doclist)
-        ch.rule_master = self.doc.select_master
-        ch.rule_field = self.doc.select_field
-        ch.operator = 'Equals'
-        ch.value = self.doc.select_value
-        ch.save()
-    else:
-      msgprint("Please select form, select field")
\ No newline at end of file
diff --git a/erpnext/hr/doctype/payroll_rule/payroll_rule.txt b/erpnext/hr/doctype/payroll_rule/payroll_rule.txt
deleted file mode 100644
index 0f6b734..0000000
--- a/erpnext/hr/doctype/payroll_rule/payroll_rule.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Tray', 'is_transaction_doc': None, 'creation': '2010-04-01 14:14:46', 'search_fields': None, 'module': 'Payroll', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': None, 'allow_rename': None, 'smallicon': None, 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 167, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': None, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': 1, 'allow_print': None, 'autoname': 'field:rule_name', 'client_script_core': None, 'client_string': None, 'use_template': None, 'modified_by': 'harshada@webnotestech.com', 'document_type': '', 'name': 'Payroll Rule', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-10-11 18:22:26', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}, {'cancel': 1, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM00744', 'parent': 'Payroll Rule', 'read': 1, 'create': 1, 'creation': '2010-04-01 14:14:46', 'modified': '2010-10-11 18:22:26', 'submit': 0, 'doctype': 'DocPerm', 'write': 1, 'idx': 1, 'parenttype': 'DocType', 'role': 'Administrator', 'owner': 'Administrator', 'docstatus': 0, 'permlevel': 0, 'match': None, 'parentfield': 'permissions'}, {'cancel': 1, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM00815', 'parent': 'Payroll Rule', 'read': 1, 'create': 1, 'creation': '2010-04-19 09:58:46', 'modified': '2010-10-11 18:22:26', 'submit': None, 'doctype': 'DocPerm', 'write': 1, 'idx': 2, 'parenttype': 'DocType', 'role': 'HR Manager', 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'permlevel': 0, 'match': None, 'parentfield': 'permissions'}, {'cancel': 1, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM00816', 'parent': 'Payroll Rule', 'read': 1, 'create': 1, 'creation': '2010-04-19 09:58:46', 'modified': '2010-10-11 18:22:26', 'submit': None, 'doctype': 'DocPerm', 'write': 1, 'idx': 3, 'parenttype': 'DocType', 'role': 'HR User', 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'permlevel': 0, 'match': None, 'parentfield': 'permissions'}, {'cancel': None, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM01117', 'parent': 'Payroll Rule', 'read': 1, 'create': None, 'creation': '2010-08-12 16:33:07', 'modified': '2010-10-11 18:22:26', 'submit': None, 'doctype': 'DocPerm', 'write': None, 'idx': 4, 'parenttype': 'DocType', 'role': 'HR User', 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'permlevel': 1, 'match': None, 'parentfield': 'permissions'}, {'cancel': None, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM01118', 'parent': 'Payroll Rule', 'read': 1, 'create': None, 'creation': '2010-08-12 16:33:07', 'modified': '2010-10-11 18:22:26', 'submit': None, 'doctype': 'DocPerm', 'write': None, 'idx': 5, 'parenttype': 'DocType', 'role': 'Administrator', 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'permlevel': 1, 'match': None, 'parentfield': 'permissions'}, {'cancel': None, 'amend': None, 'execute': None, 'modified_by': 'harshada@webnotestech.com', 'name': 'PERM01119', 'parent': 'Payroll Rule', 'read': 1, 'create': None, 'creation': '2010-08-12 16:33:07', 'modified': '2010-10-11 18:22:26', 'submit': None, 'doctype': 'DocPerm', 'write': None, 'idx': 6, 'parenttype': 'DocType', 'role': 'HR Manager', 'owner': 'harshada@webnotestech.com', 'docstatus': 0, 'permlevel': 1, 'match': None, 'parentfield': 'permissions'}, {'no_copy': None, 'oldfieldtype': 'Small Text', 'creation': '2010-04-20 14:06:44', 'doctype': 'DocField', 'oldfieldname': 'trash_reason', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Trash Reason', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 1, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04856', 'idx': 1, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'trash_reason', 'fieldtype': 'Small Text', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-06 14:20:43', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Payroll Rule', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04635', 'idx': 2, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:46', 'doctype': 'DocField', 'oldfieldname': 'rule_name', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Rule Name', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04485', 'idx': 3, 'default': None, 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'rule_name', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Int', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'rule_priority', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Rule Priority', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': '', 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04487', 'idx': 4, 'default': None, 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'rule_priority', 'fieldtype': 'Int', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Operand', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04488', 'idx': 5, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': 'Simple', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Column Break', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Left Operand', 'width': '50%', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04489', 'idx': 6, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Column Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'select_master', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Select Form', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 1, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04490', 'idx': 7, 'default': 'Salary Structure', 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'select_master', 'fieldtype': 'Data', 'options': '', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'select_field', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Select Field', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04491', 'idx': 8, 'default': None, 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'select_field', 'fieldtype': 'Select', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'right_operand', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Select Right Operand', 'width': None, 'trigger': 'Client', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04492', 'idx': 9, 'default': '', 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'right_operand', 'fieldtype': 'Select', 'options': '\nManual\nAutomatic', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Button', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'add_condition', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Add', 'width': None, 'trigger': 'Server', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': 'first select left operand and/or right operand then press Add Button to add condition in Define Rule.', 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04493', 'idx': 10, 'default': '', 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'add_condition', 'fieldtype': 'Button', 'options': 'add_details', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Column Break', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'right_operand1', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Right Operand', 'width': '50%', 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': 0, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04494', 'idx': 11, 'default': None, 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'right_operand1', 'fieldtype': 'Column Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'select_master2', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Select Form', 'width': None, 'trigger': 'Client', 'depends_on': None, 'docstatus': 0, 'hidden': 1, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04495', 'idx': 12, 'default': None, 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'select_master2', 'fieldtype': 'Select', 'options': '', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'select_field2', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Select Field', 'width': None, 'trigger': 'Client', 'depends_on': None, 'docstatus': 0, 'hidden': 1, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04496', 'idx': 13, 'default': None, 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'select_field2', 'fieldtype': 'Select', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'select_value', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Select Value', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': 1, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04497', 'idx': 14, 'default': None, 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'select_value', 'fieldtype': 'Select', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Define Rule', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04498', 'idx': 15, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': 'Simple', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Table', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'condition_details', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Define Rule1', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04499', 'idx': 16, 'default': None, 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'condition_details', 'fieldtype': 'Table', 'options': 'Condition Detail', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Action Detail', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04500', 'idx': 17, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': 'Simple', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'HTML', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Action html', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04501', 'idx': 18, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'HTML', 'options': '<b>Specify actions to be taken  when conditions hold satisfied</b>', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Text', 'creation': '2010-04-01 14:14:47', 'doctype': 'DocField', 'oldfieldname': 'expression', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Expression', 'width': None, 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': 1, 'allow_on_submit': None, 'icon': None, 'name': 'FL04502', 'idx': 19, 'default': None, 'colour': 'White:FFF', 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': 'expression', 'fieldtype': 'Text', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Section Break', 'creation': '2010-04-05 17:10:06', 'doctype': 'DocField', 'oldfieldname': '', 'owner': 'harshada@webnotestech.com', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Help', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04631', 'idx': 20, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': '', 'fieldtype': 'Section Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'HTML', 'creation': '2010-04-05 17:00:57', 'doctype': 'DocField', 'oldfieldname': '', 'owner': 'harshada@webnotestech.com', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Help Rule Priority', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04630', 'idx': 21, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': '', 'fieldtype': 'HTML', 'options': '<pre><h4>Rule Priority Help:</h4>\nLower rule priority number executes first. \nSuppose there are 2 rules:\nFirst rule priority: <b>1</b> and second priority: <b>2</b> \nTheir actions are:\nFor rule priority <b>1</b>\nBasic = 900\nhra = basic*0.5\n \nFor rule priority <b>2</b>\nBasic = 1000\n\nThen <b>1</b> priority action executes first and then <b>2</b> priority.\nAccordingly output will be:\nBasic = 1000 and hra = 450\n</pre>', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'HTML', 'creation': '2010-04-05 17:31:28', 'doctype': 'DocField', 'oldfieldname': '', 'owner': 'harshada@webnotestech.com', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Right Operand select help', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04632', 'idx': 22, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': '', 'fieldtype': 'HTML', 'options': '<hr><br><pre><h4>Right Operand Select Help:</h4>\nIf you select Manual option then you have to write value in define rule\nIf you select Automatic option then right operand will open to select value</pre> <br>', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'HTML', 'creation': '2010-04-05 17:00:57', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'harshada@webnotestech.com', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'harshada@webnotestech.com', 'label': 'Expression Help ', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Payroll Rule', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL04629', 'idx': 23, 'default': None, 'colour': None, 'modified': '2010-10-11 18:22:26', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'HTML', 'options': '<hr><br><pre><h4>Expression Help:</h4>\nPlease write all letters in lower case and place underscore in between two words.<br>\n<b>Sample Expression:</b>\nbasic=10000\nhouse_rent_allowance = basic *0.5 \ndearness_allowance = basic*0.2\nprovident_fund = 0.12*basic\ncheck = basic + house_rent_allowance +dearness_allowance\nif check<=3000 and check>0: professional_tax = 0\nif check<=6000 and check>3000: professional_tax = 20\nif check<=9000 and check>6000: professional_tax = 80\nif check<=12000 and check>9000: professional_tax = 150\nelse: professional_tax = 200\nemployees_state_insurance = basic*0.28\n\n<b>Note: Place : (colon) after if condition and after else </b>\n\nif condition:\n  someaction\nelse:\n  otheraction</pre> \n  ', 'report_hide': None, 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/previous_experience_detail/__init__.py b/erpnext/hr/doctype/previous_experience_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/previous_experience_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/previous_experience_detail/previous_experience_detail.txt b/erpnext/hr/doctype/previous_experience_detail/previous_experience_detail.txt
deleted file mode 100644
index 4cce723..0000000
--- a/erpnext/hr/doctype/previous_experience_detail/previous_experience_detail.txt
+++ /dev/null
@@ -1,127 +0,0 @@
-# DocType, Previous Experience Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:13',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 3
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Previous Experience Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Previous Experience Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'All',
-		'write': 1
-	},
-
-	# DocType, Previous Experience Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Previous Experience Detail'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'company_name',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Company',
-		'oldfieldname': 'company_name',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Designation',
-		'oldfieldname': 'designation',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'salary',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Salary',
-		'oldfieldname': 'salary',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'address',
-		'fieldtype': 'Small Text',
-		'idx': 4,
-		'label': 'Address',
-		'oldfieldname': 'address',
-		'oldfieldtype': 'Small Text'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'contact',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Contact',
-		'oldfieldname': 'contact',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'total_experience',
-		'fieldtype': 'Data',
-		'idx': 6,
-		'label': 'Total Experience',
-		'oldfieldname': 'total_experience',
-		'oldfieldtype': 'Data'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/professional_training_details/__init__.py b/erpnext/hr/doctype/professional_training_details/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/professional_training_details/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/professional_training_details/professional_training_details.txt b/erpnext/hr/doctype/professional_training_details/professional_training_details.txt
deleted file mode 100644
index c94c6c5..0000000
--- a/erpnext/hr/doctype/professional_training_details/professional_training_details.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-# DocType, Professional Training Details
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:14',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Professional Training Details',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Professional Training Details
-	{
-		'doctype': 'DocType',
-		'name': 'Professional Training Details'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'institute',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Institute / Conducted By',
-		'oldfieldname': 'institute',
-		'oldfieldtype': 'Small Text',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'nature_of_training',
-		'fieldtype': 'Small Text',
-		'idx': 2,
-		'label': 'Program / Seminar Title',
-		'oldfieldname': 'nature_of_training',
-		'oldfieldtype': 'Small Text',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'duration',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Duration',
-		'oldfieldname': 'duration',
-		'oldfieldtype': 'Data',
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'loc',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Location',
-		'oldfieldname': 'loc',
-		'oldfieldtype': 'Data',
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'certificate',
-		'fieldtype': 'Small Text',
-		'idx': 5,
-		'label': 'Certificate',
-		'oldfieldname': 'certificate',
-		'oldfieldtype': 'Small Text'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/salary_manager/salary_manager.js b/erpnext/hr/doctype/salary_manager/salary_manager.js
index 91eac1a..d486110 100644
--- a/erpnext/hr/doctype/salary_manager/salary_manager.js
+++ b/erpnext/hr/doctype/salary_manager/salary_manager.js
@@ -23,7 +23,7 @@
 
 //Create salary slip
 //-----------------------
-cur_frm.cscript['Create Salary Slip'] = function(doc, cdt, cdn) {
+cur_frm.cscript.create_salary_slip = function(doc, cdt, cdn) {
 	var callback = function(r, rt){
 		if (r.message)
 			display_activity_log(r.message);
@@ -35,7 +35,7 @@
 
 //Submit salary slip
 //-----------------------
-cur_frm.cscript['Submit Salary Slip'] = function(doc, cdt, cdn) {
+cur_frm.cscript.submit_salary_slip = function(doc, cdt, cdn) {
 	var check = confirm("Do you really want to Submit all Salary Slip for month : " + doc.month+" and fiscal year : "+doc.fiscal_year);
 	if(check){
 		var callback = function(r, rt){
@@ -48,7 +48,7 @@
 
 // Make Bank Voucher
 //-----------------------
-cur_frm.cscript['Make Bank Voucher'] = function(doc,cdt,cdn){
+cur_frm.cscript.make_bank_voucher = function(doc,cdt,cdn){
   if(doc.month && doc.fiscal_year){
   	cur_frm.cscript.make_jv(doc, cdt, cdn);
   }
diff --git a/erpnext/hr/doctype/salary_manager/salary_manager.txt b/erpnext/hr/doctype/salary_manager/salary_manager.txt
index c1ca4c6..6eff0db 100644
--- a/erpnext/hr/doctype/salary_manager/salary_manager.txt
+++ b/erpnext/hr/doctype/salary_manager/salary_manager.txt
@@ -3,49 +3,49 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-08-11 16:40:04',
+		'creation': '2012-03-27 14:35:59',
 		'docstatus': 0,
-		'modified': '2011-11-07 10:47:32',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:35:59',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1314253977',
+		'_last_update': u'1314253977',
 		'allow_copy': 1,
 		'allow_email': 1,
 		'allow_print': 1,
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Other',
+		'document_type': u'Other',
 		'issingle': 1,
-		'module': 'HR',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 1,
 		'version': 30
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Salary Manager',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Salary Manager',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Salary Manager',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Salary Manager',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -54,201 +54,214 @@
 	# DocType, Salary Manager
 	{
 		'doctype': 'DocType',
-		'name': 'Salary Manager'
+		'name': u'Salary Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'HR User'
+		'doctype': u'DocPerm',
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'Document Description',
-		'options': '<div class="field_description">You can generate multiple salary slips based on the selected criteria, submit and mail those to the employee directly from here</div>'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'document_description',
+		'fieldtype': u'HTML',
+		'label': u'Document Description',
+		'options': u'<div class="field_description">You can generate multiple salary slips based on the selected criteria, submit and mail those to the employee directly from here</div>'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break'
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'label': 'Company',
-		'options': 'link:Company',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
+		'label': u'Company',
+		'options': u'link:Company',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'branch',
-		'fieldtype': 'Link',
-		'label': 'Branch',
-		'options': 'Branch'
+		'doctype': u'DocField',
+		'fieldname': u'branch',
+		'fieldtype': u'Link',
+		'label': u'Branch',
+		'options': u'Branch'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Link',
-		'label': 'Department',
-		'options': 'Department'
+		'doctype': u'DocField',
+		'fieldname': u'department',
+		'fieldtype': u'Link',
+		'label': u'Department',
+		'options': u'Department'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Link',
-		'label': 'Designation',
-		'options': 'Designation'
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Link',
+		'label': u'Designation',
+		'options': u'Designation'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'grade',
-		'fieldtype': 'Select',
-		'label': 'Grade',
-		'options': 'link:Grade'
+		'doctype': u'DocField',
+		'fieldname': u'grade',
+		'fieldtype': u'Select',
+		'label': u'Grade',
+		'options': u'link:Grade'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'label': 'Fiscal Year',
-		'options': 'link:Fiscal Year',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
+		'label': u'Fiscal Year',
+		'options': u'link:Fiscal Year',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'month',
-		'fieldtype': 'Select',
-		'label': 'Month',
-		'options': '\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'month',
+		'fieldtype': u'Select',
+		'label': u'Month',
+		'options': u'\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Check if you want to send salary slip in mail to each employee while submitting salary slip',
-		'doctype': 'DocField',
-		'fieldname': 'send_email',
-		'fieldtype': 'Check',
-		'label': 'Send Email'
+		'colour': u'White:FFF',
+		'description': u'Check if you want to send salary slip in mail to each employee while submitting salary slip',
+		'doctype': u'DocField',
+		'fieldname': u'send_email',
+		'fieldtype': u'Check',
+		'label': u'Send Email'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break'
+		'doctype': u'DocField',
+		'fieldname': u'section_break1',
+		'fieldtype': u'Section Break'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Creates salary slip for above mentioned criteria.',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Create Salary Slip',
-		'trigger': 'Client'
+		'colour': u'White:FFF',
+		'description': u'Creates salary slip for above mentioned criteria.',
+		'doctype': u'DocField',
+		'fieldname': u'create_salary_slip',
+		'fieldtype': u'Button',
+		'label': u'Create Salary Slip',
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '25%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'width': u'25%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Submit all salary slips for the above selected criteria',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Submit Salary Slip',
-		'trigger': 'Client'
+		'colour': u'White:FFF',
+		'description': u'Submit all salary slips for the above selected criteria',
+		'doctype': u'DocField',
+		'fieldname': u'submit_salary_slip',
+		'fieldtype': u'Button',
+		'label': u'Submit Salary Slip',
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '25%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break4',
+		'fieldtype': u'Column Break',
+		'width': u'25%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Create Bank Voucher for the total salary paid for the above selected criteria',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Make Bank Voucher',
-		'trigger': 'Client'
+		'colour': u'White:FFF',
+		'description': u'Create Bank Voucher for the total salary paid for the above selected criteria',
+		'doctype': u'DocField',
+		'fieldname': u'make_bank_voucher',
+		'fieldtype': u'Button',
+		'label': u'Make Bank Voucher',
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break'
+		'doctype': u'DocField',
+		'fieldname': u'section_break2',
+		'fieldtype': u'Section Break'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'Activity Log'
+		'doctype': u'DocField',
+		'fieldname': u'activity_log',
+		'fieldtype': u'HTML',
+		'label': u'Activity Log'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/salary_manager/test_salary_manager.py b/erpnext/hr/doctype/salary_manager/test_salary_manager.py
index 0282bfe..8cea105 100644
--- a/erpnext/hr/doctype/salary_manager/test_salary_manager.py
+++ b/erpnext/hr/doctype/salary_manager/test_salary_manager.py
@@ -30,15 +30,15 @@
 		ss1[0].employee = emp1.name
 		for s in ss1: s.save(1)
 		for s in ss1[1:]:
-			sql("update `tabEarning Detail` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
-			sql("update `tabDeduction Detail` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
+			sql("update `tabSalary Structure Earning` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
+			sql("update `tabSalary Structure Deduction` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
 			
 		
 		ss2[0].employee = emp2.name
 		for s in ss2: s.save(1)		
 		for s in ss2[1:]:
-			sql("update `tabEarning Detail` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
-			sql("update `tabDeduction Detail` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
+			sql("update `tabSalary Structure Earning` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
+			sql("update `tabSalary Structure Deduction` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
 			
 		sman.save()
 		self.sm = get_obj('Salary Manager')	
@@ -158,7 +158,7 @@
 	Document(fielddata={
 		'parenttype':'Salary Structure',
 		'parentfield':'earning_details',
-		'doctype':'Earning Detail',
+		'doctype':'Salary Structure Earning',
 		'e_type' : 'Basic',
 		'depend_on_lwp':1,
 		'modified_value':100
@@ -166,7 +166,7 @@
 	Document(fielddata={
 		'parenttype':'Salary Structure',
 		'parentfield':'earning_details',
-		'doctype':'Deduction Detail',
+		'doctype':'Salary Structure Deduction',
 		'd_type':'TDS',
 		'd_modified_amt':20
 	})
@@ -181,14 +181,14 @@
 	Document(fielddata={
 		'parenttype':'Salary Structure',
 		'parentfield':'deduction_details',
-		'doctype':'Earning Detail',
+		'doctype':'Salary Structure Earning',
 		'e_type' : 'Basic',
 		'modified_value':100
 	}),
 	Document(fielddata={
 		'parenttype':'Salary Structure',
 		'parentfield':'deduction_details',
-		'doctype':'Deduction Detail',
+		'doctype':'Salary Structure Deduction',
 		'd_type':'TDS',
 		'd_modified_amt':20
 	})
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.js b/erpnext/hr/doctype/salary_slip/salary_slip.js
index 0dc7ad9..5fe93a6 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.js
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.js
@@ -79,7 +79,7 @@
 // Calculate earning total
 // ------------------------------------------------------------------------
 var calculate_earning_total = function(doc, dt, dn) {
-	var tbl = getchildren('SS Earning Detail', doc.name, 'earning_details', doc.doctype);
+	var tbl = getchildren('Salary Slip Earning', doc.name, 'earning_details', doc.doctype);
 
 	var total_earn = 0;
 	for(var i = 0; i < tbl.length; i++){
@@ -96,7 +96,7 @@
 // Calculate deduction total
 // ------------------------------------------------------------------------
 var calculate_ded_total = function(doc, dt, dn) {
-	var tbl = getchildren('SS Deduction Detail', doc.name, 'deduction_details', doc.doctype);
+	var tbl = getchildren('Salary Slip Deduction', doc.name, 'deduction_details', doc.doctype);
 
 	var total_ded = 0;
 	for(var i = 0; i < tbl.length; i++){
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py
index e0313a4..0350404 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.py
@@ -73,7 +73,7 @@
 		self.doc.clear_table(self.doclist, 'earning_details')
 		self.doc.clear_table(self.doclist, 'deduction_details')
 
-		get_obj('DocType Mapper', 'Salary Structure-Salary Slip').dt_map('Salary Structure', 'Salary Slip', struct, self.doc, self.doclist, "[['Salary Structure', 'Salary Slip'],['Earning Detail', 'SS Earning Detail'],['Deduction Detail','SS Deduction Detail']]")
+		get_obj('DocType Mapper', 'Salary Structure-Salary Slip').dt_map('Salary Structure', 'Salary Slip', struct, self.doc, self.doclist, "[['Salary Structure', 'Salary Slip'],['Salary Structure Earning', 'Salary Slip Earning'],['Salary Structure Deduction','Salary Slip Deduction']]")
 
 		basic_info = sql("select bank_name, bank_ac_no, esic_card_no, pf_number from `tabEmployee` where name ='%s'" % self.doc.employee)
 		self.doc.bank_name = basic_info[0][0]
@@ -109,9 +109,9 @@
 	# Calculate LWP
 	#=======================================================
 	def calculate_lwp(self, m):
-		holidays = sql("select t1.holiday_date from `tabHoliday List Detail` t1, tabEmployee t2 where t1.parent = t2.holiday_list and t2.name = '%s' and t1.holiday_date between '%s' and '%s'" % (self.doc.employee, m[1], m[2]))
+		holidays = sql("select t1.holiday_date from `tabHoliday` t1, tabEmployee t2 where t1.parent = t2.holiday_list and t2.name = '%s' and t1.holiday_date between '%s' and '%s'" % (self.doc.employee, m[1], m[2]))
 		if not holidays:
-			holidays = sql("select t1.holiday_date from `tabHoliday List Detail` t1, `tabHoliday List` t2 where t1.parent = t2.name and ifnull(t2.is_default, 0) = 1 and t2.fiscal_year = '%s'" % self.doc.fiscal_year)
+			holidays = sql("select t1.holiday_date from `tabHoliday` t1, `tabHoliday List` t2 where t1.parent = t2.name and ifnull(t2.is_default, 0) = 1 and t2.fiscal_year = '%s'" % self.doc.fiscal_year)
 		holidays = [cstr(i[0]) for i in holidays]
 		lwp = 0
 		for d in range(m[3]):
@@ -192,8 +192,8 @@
 		if emailid_ret:
 			receiver = cstr(emailid_ret[0][0]) 
 			subj = 'Salary Slip - ' + cstr(self.doc.month) +'/'+cstr(self.doc.fiscal_year)
-			earn_ret=sql("select e_type,e_modified_amount from `tabSS Earning Detail` where parent = '%s'"%self.doc.name)
-			ded_ret=sql("select d_type,d_modified_amount from `tabSS Deduction Detail` where parent = '%s'"%self.doc.name)
+			earn_ret=sql("select e_type,e_modified_amount from `tabSalary Slip Earning` where parent = '%s'"%self.doc.name)
+			ded_ret=sql("select d_type,d_modified_amount from `tabSalary Slip Deduction` where parent = '%s'"%self.doc.name)
 		 
 			earn_table = ''
 			ded_table = ''
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.txt b/erpnext/hr/doctype/salary_slip/salary_slip.txt
index 423b6c0..398b2b3 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.txt
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.txt
@@ -3,74 +3,60 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:20',
+		'creation': '2012-03-27 14:36:00',
 		'docstatus': 0,
-		'modified': '2011-07-27 13:10:28',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:45:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1310019491',
-		'colour': 'White:FFF',
+		'_last_update': u'1310019491',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'HR',
+		'is_submittable': 1,
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': 'For %(employee_name)s, %(designation)s',
+		'subject': u'For %(employee_name)s, %(designation)s',
 		'version': 393
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Salary Slip',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Salary Slip',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Salary Slip',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Salary Slip',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Salary Slip
 	{
 		'doctype': 'DocType',
-		'name': 'Salary Slip'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'match': 'owner',
-		'permlevel': 0,
-		'role': 'Employee',
-		'submit': 0,
-		'write': 0
+		'name': u'Salary Slip'
 	},
 
 	# DocPerm
 	{
 		'amend': 0,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR User',
+		'role': u'HR User',
 		'submit': 1,
 		'write': 1
 	},
@@ -80,62 +66,58 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR Manager',
+		'role': u'HR Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR User'
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'HR Manager'
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Basic Info',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 2,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'employee',
-		'fieldtype': 'Link',
-		'idx': 3,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'employee',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Employee',
-		'oldfieldname': 'employee',
-		'oldfieldtype': 'Link',
-		'options': 'Employee',
+		'label': u'Employee',
+		'oldfieldname': u'employee',
+		'oldfieldtype': u'Link',
+		'options': u'Employee',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -143,29 +125,27 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_name',
-		'fieldtype': 'Data',
-		'idx': 4,
+		'doctype': u'DocField',
+		'fieldname': u'employee_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Employee Name',
-		'oldfieldname': 'employee_name',
-		'oldfieldtype': 'Data',
+		'label': u'Employee Name',
+		'oldfieldname': u'employee_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Link',
-		'idx': 5,
+		'doctype': u'DocField',
+		'fieldname': u'department',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Department',
-		'oldfieldname': 'department',
-		'oldfieldtype': 'Link',
-		'options': 'Department',
+		'label': u'Department',
+		'oldfieldname': u'department',
+		'oldfieldtype': u'Link',
+		'options': u'Department',
 		'permlevel': 1,
 		'reqd': 0,
 		'search_index': 0
@@ -173,106 +153,99 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Link',
-		'idx': 6,
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Designation',
-		'oldfieldname': 'designation',
-		'oldfieldtype': 'Link',
-		'options': 'Designation',
+		'label': u'Designation',
+		'oldfieldname': u'designation',
+		'oldfieldtype': u'Link',
+		'options': u'Designation',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'branch',
-		'fieldtype': 'Link',
-		'idx': 7,
+		'doctype': u'DocField',
+		'fieldname': u'branch',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Branch',
-		'oldfieldname': 'branch',
-		'oldfieldtype': 'Link',
-		'options': 'Branch',
+		'label': u'Branch',
+		'oldfieldname': u'branch',
+		'oldfieldtype': u'Link',
+		'options': u'Branch',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'grade',
-		'fieldtype': 'Link',
-		'idx': 8,
+		'doctype': u'DocField',
+		'fieldname': u'grade',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Grade',
-		'oldfieldname': 'grade',
-		'oldfieldtype': 'Link',
-		'options': 'Grade',
+		'label': u'Grade',
+		'oldfieldname': u'grade',
+		'oldfieldtype': u'Link',
+		'options': u'Grade',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'pf_no',
-		'fieldtype': 'Data',
-		'idx': 9,
-		'label': 'PF No.',
-		'oldfieldname': 'pf_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'pf_no',
+		'fieldtype': u'Data',
+		'label': u'PF No.',
+		'oldfieldname': u'pf_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'esic_no',
-		'fieldtype': 'Data',
-		'idx': 10,
-		'label': 'ESIC No.',
-		'oldfieldname': 'esic_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'esic_no',
+		'fieldtype': u'Data',
+		'label': u'ESIC No.',
+		'oldfieldname': u'esic_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'letter_head',
-		'fieldtype': 'Link',
-		'idx': 11,
-		'label': 'Letter Head',
-		'options': 'Letter Head',
+		'doctype': u'DocField',
+		'fieldname': u'letter_head',
+		'fieldtype': u'Link',
+		'label': u'Letter Head',
+		'options': u'Letter Head',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 12,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Link',
-		'idx': 13,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Data',
-		'options': 'Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Data',
+		'options': u'Fiscal Year',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -280,111 +253,103 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 14,
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Company',
-		'options': 'link:Company',
+		'label': u'Company',
+		'options': u'link:Company',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'month',
-		'fieldtype': 'Select',
-		'idx': 15,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'month',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Month',
-		'oldfieldname': 'month',
-		'oldfieldtype': 'Select',
-		'options': '\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12',
+		'label': u'Month',
+		'oldfieldname': u'month',
+		'oldfieldtype': u'Select',
+		'options': u'\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client',
-		'width': '37%'
+		'trigger': u'Client',
+		'width': u'37%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_days_in_month',
-		'fieldtype': 'Data',
-		'idx': 16,
-		'label': 'Total days in month',
-		'oldfieldname': 'total_days_in_month',
-		'oldfieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'total_days_in_month',
+		'fieldtype': u'Data',
+		'label': u'Total days in month',
+		'oldfieldname': u'total_days_in_month',
+		'oldfieldtype': u'Int',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'leave_without_pay',
-		'fieldtype': 'Currency',
-		'idx': 17,
-		'label': 'Leave Without Pay',
-		'oldfieldname': 'leave_without_pay',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'leave_without_pay',
+		'fieldtype': u'Currency',
+		'label': u'Leave Without Pay',
+		'oldfieldname': u'leave_without_pay',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'payment_days',
-		'fieldtype': 'Float',
-		'idx': 18,
-		'label': 'Payment days',
-		'oldfieldname': 'payment_days',
-		'oldfieldtype': 'Float',
+		'doctype': u'DocField',
+		'fieldname': u'payment_days',
+		'fieldtype': u'Float',
+		'label': u'Payment days',
+		'oldfieldname': u'payment_days',
+		'oldfieldtype': u'Float',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'bank_name',
-		'fieldtype': 'Data',
-		'idx': 19,
-		'label': 'Bank Name',
-		'oldfieldname': 'bank_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'bank_name',
+		'fieldtype': u'Data',
+		'label': u'Bank Name',
+		'oldfieldname': u'bank_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'bank_account_no',
-		'fieldtype': 'Data',
-		'idx': 20,
-		'label': 'Bank Account No.',
-		'oldfieldname': 'bank_account_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'bank_account_no',
+		'fieldtype': u'Data',
+		'label': u'Bank Account No.',
+		'oldfieldname': u'bank_account_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'email_check',
-		'fieldtype': 'Check',
-		'idx': 21,
-		'label': 'Email',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'email_check',
+		'fieldtype': u'Check',
+		'label': u'Email',
 		'no_copy': 1,
-		'oldfieldname': 'email_check',
-		'oldfieldtype': 'Check',
+		'oldfieldname': u'email_check',
+		'oldfieldtype': u'Check',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -392,15 +357,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
 		'hidden': 0,
-		'idx': 22,
-		'label': 'Amended From',
+		'label': u'Amended From',
 		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 0
@@ -408,15 +372,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
 		'hidden': 0,
-		'idx': 23,
-		'label': 'Amendment Date',
+		'label': u'Amendment Date',
 		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 0
@@ -424,179 +387,170 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 24,
-		'label': 'Earning & Deduction',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'earning_deduction',
+		'fieldtype': u'Section Break',
+		'label': u'Earning & Deduction',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 25,
-		'label': 'Earning',
-		'oldfieldtype': 'Column Break',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'earning',
+		'fieldtype': u'Column Break',
+		'label': u'Earning',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
 		'reqd': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'earning_details',
-		'fieldtype': 'Table',
-		'idx': 26,
-		'label': 'Earning Details',
-		'oldfieldname': 'earning_details',
-		'oldfieldtype': 'Table',
-		'options': 'SS Earning Detail',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'earning_details',
+		'fieldtype': u'Table',
+		'label': u'Salary Structure Earnings',
+		'oldfieldname': u'earning_details',
+		'oldfieldtype': u'Table',
+		'options': u'Salary Slip Earning',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 27,
-		'label': 'Deduction',
-		'oldfieldtype': 'Column Break',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'deduction',
+		'fieldtype': u'Column Break',
+		'label': u'Deduction',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'deduction_details',
-		'fieldtype': 'Table',
-		'idx': 28,
-		'label': 'Deduction Details',
-		'oldfieldname': 'deduction_details',
-		'oldfieldtype': 'Table',
-		'options': 'SS Deduction Detail',
+		'doctype': u'DocField',
+		'fieldname': u'deduction_details',
+		'fieldtype': u'Table',
+		'label': u'Deductions',
+		'oldfieldname': u'deduction_details',
+		'oldfieldtype': u'Table',
+		'options': u'Salary Slip Deduction',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 29,
-		'label': 'Totals',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'totals',
+		'fieldtype': u'Section Break',
+		'label': u'Totals',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 30,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'arrear_amount',
-		'fieldtype': 'Currency',
-		'idx': 31,
-		'label': 'Arrear Amount',
-		'oldfieldname': 'arrear_amount',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'arrear_amount',
+		'fieldtype': u'Currency',
+		'label': u'Arrear Amount',
+		'oldfieldname': u'arrear_amount',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'leave_encashment_amount',
-		'fieldtype': 'Currency',
-		'idx': 32,
-		'label': 'Leave Encashment Amount',
-		'oldfieldname': 'encashment_amount',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'leave_encashment_amount',
+		'fieldtype': u'Currency',
+		'label': u'Leave Encashment Amount',
+		'oldfieldname': u'encashment_amount',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'gross_pay',
-		'fieldtype': 'Currency',
-		'idx': 33,
-		'label': 'Gross Pay',
-		'oldfieldname': 'gross_pay',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'gross_pay',
+		'fieldtype': u'Currency',
+		'label': u'Gross Pay',
+		'oldfieldname': u'gross_pay',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_deduction',
-		'fieldtype': 'Currency',
-		'idx': 34,
-		'label': 'Total Deduction',
-		'oldfieldname': 'total_deduction',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'total_deduction',
+		'fieldtype': u'Currency',
+		'label': u'Total Deduction',
+		'oldfieldname': u'total_deduction',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 35,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Gross Pay + Arrear Amount +Encashment Amount - Total Deduction',
-		'doctype': 'DocField',
-		'fieldname': 'net_pay',
-		'fieldtype': 'Currency',
-		'idx': 36,
-		'label': 'Net Pay',
-		'oldfieldname': 'net_pay',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'description': u'Gross Pay + Arrear Amount +Encashment Amount - Total Deduction',
+		'doctype': u'DocField',
+		'fieldname': u'net_pay',
+		'fieldtype': u'Currency',
+		'label': u'Net Pay',
+		'oldfieldname': u'net_pay',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rounded_total',
-		'fieldtype': 'Currency',
-		'idx': 37,
-		'label': 'Rounded Total',
+		'doctype': u'DocField',
+		'fieldname': u'rounded_total',
+		'fieldtype': u'Currency',
+		'label': u'Rounded Total',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'description': 'Net Pay (in words) will be visible once you save the Salary Slip.',
-		'doctype': 'DocField',
-		'fieldname': 'total_in_words',
-		'fieldtype': 'Data',
-		'idx': 38,
-		'label': 'Total in words',
-		'oldfieldname': 'net_pay_in_words',
-		'oldfieldtype': 'Data',
+		'description': u'Net Pay (in words) will be visible once you save the Salary Slip.',
+		'doctype': u'DocField',
+		'fieldname': u'total_in_words',
+		'fieldtype': u'Data',
+		'label': u'Total in words',
+		'oldfieldname': u'net_pay_in_words',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	}
-]
\ No newline at end of file
+]
diff --git a/erpnext/hr/doctype/absent_days_detail/__init__.py b/erpnext/hr/doctype/salary_slip_deduction/__init__.py
similarity index 100%
rename from erpnext/hr/doctype/absent_days_detail/__init__.py
rename to erpnext/hr/doctype/salary_slip_deduction/__init__.py
diff --git a/erpnext/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt b/erpnext/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
new file mode 100644
index 0000000..e76a1ba
--- /dev/null
+++ b/erpnext/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
@@ -0,0 +1,104 @@
+# DocType, Salary Slip Deduction
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:00',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:00',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 9
+	},
+
+	# These values are common for all DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Salary Slip Deduction',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Salary Slip Deduction',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocType, Salary Slip Deduction
+	{
+		'doctype': 'DocType',
+		'name': u'Salary Slip Deduction'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'd_type',
+		'fieldtype': u'Link',
+		'label': u'Type',
+		'oldfieldname': u'd_type',
+		'oldfieldtype': u'Data',
+		'options': u'Deduction Type',
+		'permlevel': 0,
+		'width': u'200px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'd_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'd_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'd_modified_amount',
+		'fieldtype': u'Currency',
+		'label': u'Modified Amount',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'd_depends_on_lwp',
+		'fieldtype': u'Check',
+		'label': u'Depends on LWP',
+		'permlevel': 0,
+		'trigger': u'Client'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/ss_deduction_detail/__init__.py b/erpnext/hr/doctype/salary_slip_earning/__init__.py
similarity index 100%
rename from erpnext/hr/doctype/ss_deduction_detail/__init__.py
rename to erpnext/hr/doctype/salary_slip_earning/__init__.py
diff --git a/erpnext/hr/doctype/salary_slip_earning/salary_slip_earning.txt b/erpnext/hr/doctype/salary_slip_earning/salary_slip_earning.txt
new file mode 100644
index 0000000..d8c4c9b
--- /dev/null
+++ b/erpnext/hr/doctype/salary_slip_earning/salary_slip_earning.txt
@@ -0,0 +1,105 @@
+# DocType, Salary Slip Earning
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:00',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:00',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 7
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Salary Slip Earning',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Salary Slip Earning',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocType, Salary Slip Earning
+	{
+		'doctype': 'DocType',
+		'name': u'Salary Slip Earning'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'e_type',
+		'fieldtype': u'Link',
+		'label': u'Type',
+		'oldfieldname': u'e_type',
+		'oldfieldtype': u'Data',
+		'options': u'Earning Type',
+		'permlevel': 0,
+		'width': u'200px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'e_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'e_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'e_modified_amount',
+		'fieldtype': u'Currency',
+		'label': u'Modified Amount',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'e_depends_on_lwp',
+		'fieldtype': u'Check',
+		'label': u'Depends on LWP',
+		'permlevel': 0,
+		'trigger': u'Client'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/salary_structure/salary_structure.js b/erpnext/hr/doctype/salary_structure/salary_structure.js
index fe57910..eaba16b 100644
--- a/erpnext/hr/doctype/salary_structure/salary_structure.js
+++ b/erpnext/hr/doctype/salary_structure/salary_structure.js
@@ -19,8 +19,8 @@
 // On load
 //=======================================================================
 cur_frm.cscript.onload = function(doc, dt, dn){
-  e_tbl = getchildren('Earning Detail', doc.name, 'earning_details', doc.doctype);
-  d_tbl = getchildren('Deduction Detail', doc.name, 'deduction_details', doc.doctype);
+  e_tbl = getchildren('Salary Structure Earning', doc.name, 'earning_details', doc.doctype);
+  d_tbl = getchildren('Salary Structure Deduction', doc.name, 'deduction_details', doc.doctype);
   if (e_tbl.length == 0 && d_tbl.length == 0)
     $c_obj(make_doclist(doc.doctype,doc.name),'make_earn_ded_table','', function(r, rt) { refresh_many(['earning_details', 'deduction_details']);});
 }
@@ -60,7 +60,7 @@
       'from_doctype':'Salary Structure',
       'to_doctype':'Salary Slip',
       'from_docname':doc.name,
-      'from_to_list':"[['Salary Structure', 'Salary Slip'], ['Earning Detail', 'SS Earning Detail'], ['Deduction Detail', 'SS Deduction Detail']]"
+      'from_to_list':"[['Salary Structure', 'Salary Slip'], ['Salary Structure Earning', 'Salary Slip Earning'], ['Salary Structure Deduction', 'Salary Slip Deduction']]"
       }, 
       function(r,rt) {
         n.fiscal_year = sys_defaults.fiscal_year;
@@ -98,8 +98,8 @@
 // calculate totals
 //=======================================================================
 var calculate_totals = function(doc, cdt, cdn) {
-  var tbl1 = getchildren('Earning Detail', doc.name, 'earning_details', doc.doctype);
-  var tbl2 = getchildren('Deduction Detail', doc.name, 'deduction_details', doc.doctype);
+  var tbl1 = getchildren('Salary Structure Earning', doc.name, 'earning_details', doc.doctype);
+  var tbl2 = getchildren('Salary Structure Deduction', doc.name, 'deduction_details', doc.doctype);
   
   var total_earn = 0; var total_ded = 0;
   for(var i = 0; i < tbl1.length; i++){
diff --git a/erpnext/hr/doctype/salary_structure/salary_structure.py b/erpnext/hr/doctype/salary_structure/salary_structure.py
index 562a885..18d9291 100644
--- a/erpnext/hr/doctype/salary_structure/salary_structure.py
+++ b/erpnext/hr/doctype/salary_structure/salary_structure.py
@@ -88,10 +88,10 @@
   #---------------------------------------------------------   
   def make_earn_ded_table(self):           
     #Earning List
-    self.make_table('Earning Type','earning_details','Earning Detail')
+    self.make_table('Earning Type','earning_details','Salary Structure Earning')
     
     #Deduction List
-    self.make_table('Deduction Type','deduction_details', 'Deduction Detail')
+    self.make_table('Deduction Type','deduction_details', 'Salary Structure Deduction')
     
 
   # Check if another active ss exists
diff --git a/erpnext/hr/doctype/salary_structure/salary_structure.txt b/erpnext/hr/doctype/salary_structure/salary_structure.txt
index d9a9acd..e760f74 100644
--- a/erpnext/hr/doctype/salary_structure/salary_structure.txt
+++ b/erpnext/hr/doctype/salary_structure/salary_structure.txt
@@ -3,425 +3,442 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 16:50:05',
+		'creation': '2012-03-27 14:36:00',
 		'docstatus': 0,
-		'modified': '2011-08-11 16:56:38',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:00',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1311621379',
-		'colour': 'White:FFF',
+		'_last_update': u'1311621379',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'HR',
+		'module': u'HR',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': 'For %(employee_name)s',
+		'subject': u'For %(employee_name)s',
 		'version': 587
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Salary Structure',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Salary Structure',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'amend': 0,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Salary Structure',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Salary Structure',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Salary Structure
 	{
 		'doctype': 'DocType',
-		'name': 'Salary Structure'
+		'name': u'Salary Structure'
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
+		'match': u'owner',
 		'permlevel': 0,
-		'role': 'Employee',
 		'submit': 0,
 		'write': 0
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
+		'match': u'owner',
+		'permlevel': 0,
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'match': u'owner',
+		'permlevel': 0,
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'match': u'owner',
+		'permlevel': 0,
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All',
-		'submit': 0,
+		'role': u'All',
 		'write': 0
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 0,
-		'role': 'HR User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'HR Manager',
-		'submit': 1,
+		'role': u'HR User',
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'HR Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'HR Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'HR User'
+	},
+
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Basic Info',
-		'oldfieldname': 'basic_info',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldname': u'basic_info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'employee',
-		'fieldtype': 'Link',
-		'idx': 3,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'employee',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Employee',
-		'oldfieldname': 'employee',
-		'oldfieldtype': 'Link',
-		'options': 'Employee',
+		'label': u'Employee',
+		'oldfieldname': u'employee',
+		'oldfieldtype': u'Link',
+		'options': u'Employee',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_name',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Employee Name',
-		'oldfieldname': 'employee_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'employee_name',
+		'fieldtype': u'Data',
+		'label': u'Employee Name',
+		'oldfieldname': u'employee_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'branch',
-		'fieldtype': 'Select',
-		'idx': 5,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'branch',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Branch',
-		'oldfieldname': 'branch',
-		'oldfieldtype': 'Select',
-		'options': 'link:Branch',
+		'label': u'Branch',
+		'oldfieldname': u'branch',
+		'oldfieldtype': u'Select',
+		'options': u'link:Branch',
 		'permlevel': 1,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Select',
-		'idx': 6,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Designation',
-		'oldfieldname': 'designation',
-		'oldfieldtype': 'Select',
-		'options': 'link:Designation',
+		'label': u'Designation',
+		'oldfieldname': u'designation',
+		'oldfieldtype': u'Select',
+		'options': u'link:Designation',
 		'permlevel': 1,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Select',
-		'idx': 7,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'department',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Department',
-		'oldfieldname': 'department',
-		'oldfieldtype': 'Select',
-		'options': 'link:Department',
+		'label': u'Department',
+		'oldfieldname': u'department',
+		'oldfieldtype': u'Select',
+		'options': u'link:Department',
 		'permlevel': 1,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'grade',
-		'fieldtype': 'Select',
-		'idx': 8,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'grade',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Grade',
-		'oldfieldname': 'grade',
-		'oldfieldtype': 'Select',
-		'options': 'link:Grade',
+		'label': u'Grade',
+		'oldfieldname': u'grade',
+		'oldfieldtype': u'Select',
+		'options': u'link:Grade',
 		'permlevel': 1,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 9,
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Yes',
-		'doctype': 'DocField',
-		'fieldname': 'is_active',
-		'fieldtype': 'Select',
-		'idx': 10,
+		'colour': u'White:FFF',
+		'default': u'Yes',
+		'doctype': u'DocField',
+		'fieldname': u'is_active',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Is Active',
-		'oldfieldname': 'is_active',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'label': u'Is Active',
+		'oldfieldname': u'is_active',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'idx': 11,
-		'label': 'From Date',
-		'oldfieldname': 'from_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'from_date',
+		'fieldtype': u'Date',
+		'label': u'From Date',
+		'oldfieldname': u'from_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'idx': 12,
-		'label': 'To Date',
-		'oldfieldname': 'to_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'to_date',
+		'fieldtype': u'Date',
+		'label': u'To Date',
+		'oldfieldname': u'to_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Cost to Company',
-		'doctype': 'DocField',
-		'fieldname': 'ctc',
-		'fieldtype': 'Currency',
-		'idx': 13,
+		'colour': u'White:FFF',
+		'description': u'Cost to Company',
+		'doctype': u'DocField',
+		'fieldname': u'ctc',
+		'fieldtype': u'Currency',
 		'in_filter': 1,
-		'label': 'CTC',
-		'oldfieldname': 'ctc',
-		'oldfieldtype': 'Currency',
+		'label': u'CTC',
+		'oldfieldname': u'ctc',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 14,
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Company',
-		'options': 'link:Company',
+		'label': u'Company',
+		'options': u'link:Company',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'description': 'You can create more earning and deduction type from Setup --> HR',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 15,
-		'label': 'Earning & Deduction',
-		'oldfieldname': 'earning_deduction',
-		'oldfieldtype': 'Section Break',
+		'description': u'You can create more earning and deduction type from Setup --> HR',
+		'doctype': u'DocField',
+		'fieldname': u'earning_deduction',
+		'fieldtype': u'Section Break',
+		'label': u'Earning & Deduction',
+		'oldfieldname': u'earning_deduction',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'earning',
+		'fieldtype': u'Column Break',
 		'hidden': 0,
-		'idx': 16,
-		'label': 'Earning',
-		'oldfieldname': 'col_brk2',
-		'oldfieldtype': 'Column Break',
+		'label': u'Earning',
+		'oldfieldname': u'col_brk2',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'earning_details',
-		'fieldtype': 'Table',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'earning_details',
+		'fieldtype': u'Table',
 		'hidden': 0,
-		'idx': 17,
-		'label': 'Earning1',
-		'oldfieldname': 'earning_details',
-		'oldfieldtype': 'Table',
-		'options': 'Earning Detail',
+		'label': u'Earning1',
+		'oldfieldname': u'earning_details',
+		'oldfieldtype': u'Table',
+		'options': u'Salary Structure Earning',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'deduction',
+		'fieldtype': u'Column Break',
 		'hidden': 0,
-		'idx': 18,
-		'label': 'Deduction',
-		'oldfieldname': 'col_brk3',
-		'oldfieldtype': 'Column Break',
+		'label': u'Deduction',
+		'oldfieldname': u'col_brk3',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'deduction_details',
-		'fieldtype': 'Table',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'deduction_details',
+		'fieldtype': u'Table',
 		'hidden': 0,
-		'idx': 19,
-		'label': 'Deduction1',
-		'oldfieldname': 'deduction_details',
-		'oldfieldtype': 'Table',
-		'options': 'Deduction Detail',
+		'label': u'Deduction1',
+		'oldfieldname': u'deduction_details',
+		'oldfieldtype': u'Table',
+		'options': u'Salary Structure Deduction',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 20,
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 21,
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_earning',
-		'fieldtype': 'Currency',
-		'idx': 22,
-		'label': 'Total Earning',
-		'oldfieldname': 'total_earning',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'total_earning',
+		'fieldtype': u'Currency',
+		'label': u'Total Earning',
+		'oldfieldname': u'total_earning',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'total_deduction',
-		'fieldtype': 'Currency',
-		'idx': 23,
-		'label': 'Total Deduction',
-		'oldfieldname': 'total_deduction',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'total_deduction',
+		'fieldtype': u'Currency',
+		'label': u'Total Deduction',
+		'oldfieldname': u'total_deduction',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 24,
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'net_pay',
-		'fieldtype': 'Currency',
-		'idx': 25,
-		'label': 'Net Pay',
+		'doctype': u'DocField',
+		'fieldname': u'net_pay',
+		'fieldtype': u'Currency',
+		'label': u'Net Pay',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/ss_deduction_detail/__init__.py b/erpnext/hr/doctype/salary_structure_deduction/__init__.py
similarity index 100%
copy from erpnext/hr/doctype/ss_deduction_detail/__init__.py
copy to erpnext/hr/doctype/salary_structure_deduction/__init__.py
diff --git a/erpnext/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt b/erpnext/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt
new file mode 100644
index 0000000..1815ca3
--- /dev/null
+++ b/erpnext/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt
@@ -0,0 +1,74 @@
+# DocType, Salary Structure Deduction
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:54',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 14
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Salary Structure Deduction',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Salary Structure Deduction
+	{
+		'doctype': 'DocType',
+		'name': u'Salary Structure Deduction'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'd_type',
+		'fieldtype': u'Link',
+		'label': u'Type',
+		'oldfieldname': u'd_type',
+		'oldfieldtype': u'Select',
+		'options': u'Deduction Type',
+		'reqd': 1,
+		'width': u'200px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'd_modified_amt',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'd_modified_amt',
+		'oldfieldtype': u'Currency'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'depend_on_lwp',
+		'fieldtype': u'Check',
+		'label': u'Depend on LWP',
+		'oldfieldname': u'depend_on_lwp',
+		'oldfieldtype': u'Check'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/absent_days_detail/__init__.py b/erpnext/hr/doctype/salary_structure_earning/__init__.py
similarity index 100%
copy from erpnext/hr/doctype/absent_days_detail/__init__.py
copy to erpnext/hr/doctype/salary_structure_earning/__init__.py
diff --git a/erpnext/hr/doctype/salary_structure_earning/salary_structure_earning.txt b/erpnext/hr/doctype/salary_structure_earning/salary_structure_earning.txt
new file mode 100644
index 0000000..09ac7f5
--- /dev/null
+++ b/erpnext/hr/doctype/salary_structure_earning/salary_structure_earning.txt
@@ -0,0 +1,77 @@
+# DocType, Salary Structure Earning
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:35:54',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:35:54',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'hide_heading': 0,
+		'hide_toolbar': 0,
+		'istable': 1,
+		'module': u'HR',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 26
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Salary Structure Earning',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Salary Structure Earning
+	{
+		'doctype': 'DocType',
+		'name': u'Salary Structure Earning'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'e_type',
+		'fieldtype': u'Link',
+		'label': u'Type',
+		'oldfieldname': u'e_type',
+		'oldfieldtype': u'Data',
+		'options': u'Earning Type',
+		'reqd': 1,
+		'width': u'200px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'modified_value',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'modified_value',
+		'oldfieldtype': u'Currency',
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'depend_on_lwp',
+		'fieldtype': u'Check',
+		'label': u'Depend on LWP',
+		'oldfieldname': u'depend_on_lwp',
+		'oldfieldtype': u'Check'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/ss_deduction_detail/ss_deduction_detail.txt b/erpnext/hr/doctype/ss_deduction_detail/ss_deduction_detail.txt
deleted file mode 100644
index e760226..0000000
--- a/erpnext/hr/doctype/ss_deduction_detail/ss_deduction_detail.txt
+++ /dev/null
@@ -1,109 +0,0 @@
-# DocType, SS Deduction Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:24',
-		'docstatus': 0,
-		'modified': '2011-02-12 18:24:31',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 9
-	},
-
-	# These values are common for all DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'SS Deduction Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'SS Deduction Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocType, SS Deduction Detail
-	{
-		'doctype': 'DocType',
-		'name': 'SS Deduction Detail'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'd_type',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Type',
-		'oldfieldname': 'd_type',
-		'oldfieldtype': 'Data',
-		'options': 'Deduction Type',
-		'permlevel': 0,
-		'width': '200px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'd_amount',
-		'fieldtype': 'Currency',
-		'idx': 2,
-		'label': 'Amount',
-		'oldfieldname': 'd_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'd_modified_amount',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Modified Amount',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'd_depends_on_lwp',
-		'fieldtype': 'Check',
-		'idx': 4,
-		'label': 'Depends on LWP',
-		'permlevel': 0,
-		'trigger': 'Client'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/doctype/ss_earning_detail/__init__.py b/erpnext/hr/doctype/ss_earning_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/doctype/ss_earning_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/doctype/ss_earning_detail/ss_earning_detail.txt b/erpnext/hr/doctype/ss_earning_detail/ss_earning_detail.txt
deleted file mode 100644
index 10931d1..0000000
--- a/erpnext/hr/doctype/ss_earning_detail/ss_earning_detail.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-# DocType, SS Earning Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:24',
-		'docstatus': 0,
-		'modified': '2011-02-12 18:24:20',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 7
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'SS Earning Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'SS Earning Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocType, SS Earning Detail
-	{
-		'doctype': 'DocType',
-		'name': 'SS Earning Detail'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'e_type',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Type',
-		'oldfieldname': 'e_type',
-		'oldfieldtype': 'Data',
-		'options': 'Earning Type',
-		'permlevel': 0,
-		'width': '200px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'e_amount',
-		'fieldtype': 'Currency',
-		'idx': 2,
-		'label': 'Amount',
-		'oldfieldname': 'e_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'e_modified_amount',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Modified Amount',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'e_depends_on_lwp',
-		'fieldtype': 'Check',
-		'idx': 4,
-		'label': 'Depends on LWP',
-		'permlevel': 0,
-		'trigger': 'Client'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/page/hr_home/hr_home.html b/erpnext/hr/page/hr_home/hr_home.html
index 7d1f27f..0b98157 100644
--- a/erpnext/hr/page/hr_home/hr_home.html
+++ b/erpnext/hr/page/hr_home/hr_home.html
@@ -8,7 +8,7 @@
 			<p class="help">Attendance Mark</p>
 			<h4><a href="#!List/Leave Application">Leave Application</a></h4>
 			<p class="help">Applications for leave</p>
-			<h4><a href="#!List/Expense Voucher">Expense Voucher</a></h4>
+			<h4><a href="#!List/Expense Claim">Expense Claim</a></h4>
 			<p class="help">Claims for expenses</p>
 			<h4><a href="#!List/Salary Slip">Salary Slip</a></h4>
 			<p class="help">Monthly salary statement</p>	
@@ -93,7 +93,7 @@
 					<div class="section-item">
 						<a class="section-link"
 							title = "Template for employee performance appraisals"
-							href="#!List/KRA Template">Key Performance Area (KRA) Template</a>
+							href="#!List/Appraisal Template">Key Performance Area (KRA) Template</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link"
diff --git a/erpnext/hr/search_criteria/employee_appraisals/employee_appraisals.txt b/erpnext/hr/search_criteria/employee_appraisals/employee_appraisals.txt
index 31b5d45..c338770 100644
--- a/erpnext/hr/search_criteria/employee_appraisals/employee_appraisals.txt
+++ b/erpnext/hr/search_criteria/employee_appraisals/employee_appraisals.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-09-01 14:18:42',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Appraisal\x01ID,Appraisal\x01Status,Appraisal\x01Employee,Appraisal\x01Employee Name,Appraisal\x01Start Date,Appraisal\x01End Date,Appraisal\x01Approver,Appraisal\x01Total Score',
-		'criteria_name': 'Employee Appraisals',
-		'doc_type': 'Appraisal',
+		'columns': u'Appraisal\x01ID,Appraisal\x01Status,Appraisal\x01Employee,Appraisal\x01Employee Name,Appraisal\x01Start Date,Appraisal\x01End Date,Appraisal\x01Approver,Appraisal\x01Total Score',
+		'criteria_name': u'Employee Appraisals',
+		'doc_type': u'Appraisal',
 		'doctype': 'Search Criteria',
-		'filters': "{'Appraisal\x01Saved':1,'Appraisal\x01Submitted':1,'Appraisal\x01Status':'','Appraisal\x01Fiscal Year':''}",
-		'module': 'HR',
+		'filters': u"{'Appraisal\x01Saved':1,'Appraisal\x01Submitted':1,'Appraisal\x01Status':'','Appraisal\x01Fiscal Year':''}",
+		'module': u'HR',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabAppraisal`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabAppraisal`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, employee_appraisals
 	{
 		'doctype': 'Search Criteria',
-		'name': 'employee_appraisals'
+		'name': u'employee_appraisals'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/employee_details/__init__.py b/erpnext/hr/search_criteria/employee_details/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/search_criteria/employee_details/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/search_criteria/employee_details/employee_details.txt b/erpnext/hr/search_criteria/employee_details/employee_details.txt
deleted file mode 100644
index 08d785b..0000000
--- a/erpnext/hr/search_criteria/employee_details/employee_details.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-[
-	{
-		'add_col': None,
-		'add_cond': None,
-		'add_tab': None,
-		'columns': 'Employee\x01ID,Employee\x01Employee Name,Employee\x01Employee Code,Employee\x01Employee Number,Employee\x01Gender,Employee\x01Employment Type,Employee\x01Date of Joining,Employee\x01Scheduled Confirmation Date,Employee\x01Contract End Date,Employee\x01Status,Employee\x01Branch,Employee\x01Department,Employee\x01Designation,Employee\x01Grade,Employee\x01Company Email,Employee\x01Relieving Date',
-		'creation': '2010-12-14 10:33:09',
-		'criteria_name': 'Employee Details',
-		'custom_query': '',
-		'description': None,
-		'dis_filters': None,
-		'disabled': None,
-		'doc_type': 'Employee',
-		'docstatus': 0,
-		'doctype': 'Search Criteria',
-		'filters': "{'Employee\x01Gender':'','Employee\x01Month of Birth':'','Employee\x01Status':''}",
-		'graph_series': None,
-		'graph_values': None,
-		'group_by': None,
-		'idx': None,
-		'modified': '2010-04-01 14:27:15',
-		'modified_by': 'Administrator',
-		'module': 'Payroll',
-		'name': 'employee_details',
-		'owner': 'Administrator',
-		'page_len': 50,
-		'parent': None,
-		'parent_doc_type': None,
-		'parentfield': None,
-		'parenttype': None,
-		'report_script': '',
-		'server_script': None,
-		'sort_by': 'ID',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/employee_in_company_experience/__init__.py b/erpnext/hr/search_criteria/employee_in_company_experience/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/search_criteria/employee_in_company_experience/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/search_criteria/employee_in_company_experience/employee_in_company_experience.txt b/erpnext/hr/search_criteria/employee_in_company_experience/employee_in_company_experience.txt
deleted file mode 100644
index f3e1b48..0000000
--- a/erpnext/hr/search_criteria/employee_in_company_experience/employee_in_company_experience.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-[
-	{
-		'add_col': None,
-		'add_cond': None,
-		'add_tab': None,
-		'columns': 'Employee Profile\x01Employee,Experience In Company Detail\x01Branch,Experience In Company Detail\x01Department,Experience In Company Detail\x01Designation,Experience In Company Detail\x01Grade,Experience In Company Detail\x01From Date,Experience In Company Detail\x01To Date',
-		'creation': '2010-12-14 10:33:09',
-		'criteria_name': 'Employee In Company Experience',
-		'custom_query': '',
-		'description': None,
-		'dis_filters': None,
-		'disabled': 1,
-		'doc_type': 'Experience In Company Detail',
-		'docstatus': 0,
-		'doctype': 'Search Criteria',
-		'filters': '{}',
-		'graph_series': None,
-		'graph_values': None,
-		'group_by': None,
-		'idx': None,
-		'modified': '2010-04-01 14:27:15',
-		'modified_by': 'Administrator',
-		'module': 'Payroll',
-		'name': 'employee_in_company_experience',
-		'owner': 'Administrator',
-		'page_len': 50,
-		'parent': None,
-		'parent_doc_type': 'Employee Profile',
-		'parentfield': None,
-		'parenttype': None,
-		'report_script': '',
-		'server_script': '',
-		'sort_by': 'ID',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/employee_information/employee_information.txt b/erpnext/hr/search_criteria/employee_information/employee_information.txt
index edb68f8..84cb448 100644
--- a/erpnext/hr/search_criteria/employee_information/employee_information.txt
+++ b/erpnext/hr/search_criteria/employee_information/employee_information.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:25',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-10-26 12:03:08',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Employee\x01ID,Employee\x01Employee Name,Employee\x01Employee Number,Employee\x01Date of Joining,Employee\x01Gender,Employee\x01Date of Birth,Employee\x01Employment Type,Employee\x01Scheduled Confirmation Date,Employee\x01Contract End Date,Employee\x01Status,Employee\x01Branch,Employee\x01Department,Employee\x01Designation,Employee\x01Grade,Employee\x01Reports to,Employee\x01Email (By company),Employee\x01Bank Name,Employee\x01Relieving Date',
-		'criteria_name': 'Employee Information',
-		'doc_type': 'Employee',
+		'columns': u'Employee\x01ID,Employee\x01Employee Name,Employee\x01Employee Number,Employee\x01Date of Joining,Employee\x01Gender,Employee\x01Date of Birth,Employee\x01Employment Type,Employee\x01Scheduled Confirmation Date,Employee\x01Contract End Date,Employee\x01Status,Employee\x01Branch,Employee\x01Department,Employee\x01Designation,Employee\x01Grade,Employee\x01Reports to,Employee\x01Email (By company),Employee\x01Bank Name,Employee\x01Relieving Date',
+		'criteria_name': u'Employee Information',
+		'doc_type': u'Employee',
 		'doctype': 'Search Criteria',
-		'filters': "{'Employee\x01Saved':1,'Employee\x01Submitted':1,'Employee\x01Gender':'','Employee\x01Month of Birth':'','Employee\x01Status':''}",
-		'module': 'HR',
+		'filters': u"{'Employee\x01Saved':1,'Employee\x01Submitted':1,'Employee\x01Gender':'','Employee\x01Month of Birth':'','Employee\x01Status':''}",
+		'module': u'HR',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabEmployee`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabEmployee`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, employee_information
 	{
 		'doctype': 'Search Criteria',
-		'name': 'employee_information'
+		'name': u'employee_information'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/employees_birthday/employees_birthday.txt b/erpnext/hr/search_criteria/employees_birthday/employees_birthday.txt
index ecbce74..42cfff2 100644
--- a/erpnext/hr/search_criteria/employees_birthday/employees_birthday.txt
+++ b/erpnext/hr/search_criteria/employees_birthday/employees_birthday.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:33:12',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-08-04 13:15:28',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Employee\x01ID,Employee\x01Employee Name,Employee\x01Department,Employee\x01Gender,Employee\x01Date of Birth,Employee\x01Month of Birth',
-		'criteria_name': "Employee's Birthday",
-		'doc_type': 'Employee',
+		'columns': u'Employee\x01ID,Employee\x01Employee Name,Employee\x01Department,Employee\x01Gender,Employee\x01Date of Birth,Employee\x01Month of Birth',
+		'criteria_name': u"Employee's Birthday",
+		'doc_type': u'Employee',
 		'doctype': 'Search Criteria',
-		'filters': "{'Employee\x01Saved':1,'Employee\x01Gender':'','Employee\x01Month of Birth':'May','Employee\x01Status':''}",
-		'module': 'HR',
+		'filters': u"{'Employee\x01Saved':1,'Employee\x01Gender':'','Employee\x01Month of Birth':'May','Employee\x01Status':''}",
+		'module': u'HR',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabEmployee`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabEmployee`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, employees_birthday
 	{
 		'doctype': 'Search Criteria',
-		'name': 'employees_birthday'
+		'name': u'employees_birthday'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/employeewise_leave_transaction_details/__init__.py b/erpnext/hr/search_criteria/employeewise_leave_transaction_details/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/search_criteria/employeewise_leave_transaction_details/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt b/erpnext/hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt
deleted file mode 100644
index fb54227..0000000
--- a/erpnext/hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, employeewise_leave_transaction_details
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-08-04 08:56:43',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Leave Transaction\x01ID,Leave Transaction\x01Fiscal Year,Leave Transaction\x01Employee,Leave Transaction\x01Leave Type,Leave Transaction\x01Previous Balance,Leave Transaction\x01Leave Transaction Type,Leave Transaction\x01Allocation Type,Leave Transaction\x01Deduction Type,Leave Transaction\x01Half Day,Leave Transaction\x01From Date,Leave Transaction\x01To Date,Leave Transaction\x01Encashment Date,Leave Transaction\x01Total Leave Days,Leave Transaction\x01Status',
-		'criteria_name': 'Employeewise Leave Transaction Details',
-		'doc_type': 'Leave Transaction',
-		'doctype': 'Search Criteria',
-		'filters': "{'Leave Transaction\x01Saved':1,'Leave Transaction\x01Submitted':1}",
-		'module': 'HR',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabLeave Transaction`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, employeewise_leave_transaction_details
-	{
-		'doctype': 'Search Criteria',
-		'name': 'employeewise_leave_transaction_details'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/expense_vouchers/__init__.py b/erpnext/hr/search_criteria/expense_claims/__init__.py
similarity index 100%
rename from erpnext/hr/search_criteria/expense_vouchers/__init__.py
rename to erpnext/hr/search_criteria/expense_claims/__init__.py
diff --git a/erpnext/hr/search_criteria/expense_claims/expense_claims.txt b/erpnext/hr/search_criteria/expense_claims/expense_claims.txt
new file mode 100644
index 0000000..0032df5
--- /dev/null
+++ b/erpnext/hr/search_criteria/expense_claims/expense_claims.txt
@@ -0,0 +1,33 @@
+# Search Criteria, expense_claims
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-30 13:33:32',
+		'docstatus': 0,
+		'modified': '2012-03-30 13:33:32',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'columns': u'Expense Claim\x01ID,Expense Claim\x01Approval Status,Expense Claim\x01From Employee,Expense Claim\x01Employee Name,Expense Claim\x01Approver,Expense Claim\x01Posting Date,Expense Claim\x01Total Claimed Amount,Expense Claim\x01Total Sanctioned Amount',
+		'criteria_name': u'Expense Claims',
+		'doc_type': u'Expense Claim',
+		'doctype': 'Search Criteria',
+		'filters': u"{'Expense Claim\x01Saved':1,'Expense Claim\x01Submitted':1,'Expense Claim\x01Approval Status':'','Expense Claim\x01Fiscal Year':''}",
+		'module': u'HR',
+		'name': '__common__',
+		'page_len': 50,
+		'sort_by': u'`tabExpense Claim`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
+	},
+
+	# Search Criteria, expense_claims
+	{
+		'doctype': 'Search Criteria',
+		'name': u'expense_claims'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/expense_vouchers/expense_vouchers.txt b/erpnext/hr/search_criteria/expense_vouchers/expense_vouchers.txt
deleted file mode 100644
index eeca0e0..0000000
--- a/erpnext/hr/search_criteria/expense_vouchers/expense_vouchers.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, expense_vouchers
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-03 16:45:09',
-		'docstatus': 0,
-		'modified': '2010-09-02 11:05:37',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Expense Voucher\x01ID,Expense Voucher\x01Approval Status,Expense Voucher\x01From Employee,Expense Voucher\x01Employee Name,Expense Voucher\x01Approver,Expense Voucher\x01Posting Date,Expense Voucher\x01Total Claimed Amount,Expense Voucher\x01Total Sanctioned Amount',
-		'criteria_name': 'Expense Vouchers',
-		'doc_type': 'Expense Voucher',
-		'doctype': 'Search Criteria',
-		'filters': "{'Expense Voucher\x01Saved':1,'Expense Voucher\x01Submitted':1,'Expense Voucher\x01Approval Status':'','Expense Voucher\x01Fiscal Year':''}",
-		'module': 'HR',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabExpense Voucher`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, expense_vouchers
-	{
-		'doctype': 'Search Criteria',
-		'name': 'expense_vouchers'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt b/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt
index 23e4063..64a0eb2 100644
--- a/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt
+++ b/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:25',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-11-30 18:03:56',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Attendance\x01Employee',
-		'criteria_name': 'Monthly Attendance Details',
-		'doc_type': 'Attendance',
+		'columns': u'Attendance\x01Employee',
+		'criteria_name': u'Monthly Attendance Details',
+		'doc_type': u'Attendance',
 		'doctype': 'Search Criteria',
-		'filters': "{'Attendance\x01Status':'','Attendance\x01Fiscal Year':''}",
-		'module': 'HR',
+		'filters': u"{'Attendance\x01Status':'','Attendance\x01Fiscal Year':''}",
+		'module': u'HR',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabAttendance`.`employee`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabAttendance`.`employee`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, monthly_attendance_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'monthly_attendance_details'
+		'name': u'monthly_attendance_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.py b/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.py
new file mode 100644
index 0000000..998b927
--- /dev/null
+++ b/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.py
@@ -0,0 +1,98 @@
+colwidths[col_idx['Employee Name']]="120px" 
+colwidths[col_idx['Leave Without Pay']] = '120px'
+
+sum_net = total_earning = total_deduction = total_lwp = total_arr = 0
+total = ['Total Net Pay','','']
+
+
+earn_type_lst = sql("select name from `tabEarning Type`")
+
+ded_type_lst = sql("select name from `tabDeduction Type`")
+li=[]
+for lst in earn_type_lst:
+  
+  li.append(lst[0])
+  
+  
+
+li.append('Total Earning')
+for lst in ded_type_lst:
+  
+  li.append(lst[0])
+  
+
+li.append('Total Deduction')
+li.append('Net Pay')
+
+
+
+for d in li:
+  colnames.append(d)
+  colwidths.append("150px")
+  coltypes.append("Currency")
+  coloptions.append("")
+  col_idx[d] = len(colnames)-1
+  for r in res:
+    r.append("0")
+
+for r in res:
+  
+  total_lwp += r[col_idx['Leave Without Pay']]
+  total_arr += r[col_idx['Arrear Amount']]
+  
+  for d1 in li:
+    d2 = '%s'%d1
+    
+    earn_ret=convert_to_lists(sql("select e_type,e_amount from `tabSS Earning Detail` where parent = '%s'"%r[col_idx['ID']]))
+    ded_ret=convert_to_lists(sql("select d_type,d_amount from `tabSS Deduction Detail` where parent = '%s'"%r[col_idx['ID']]))
+    
+
+    for e in earn_ret:
+      e0 = '%s'%e[0]
+      r[col_idx[e0]]=flt(e[1]) or 0.00
+     
+    
+    for d in ded_ret:
+      d0 = '%s'%d[0]
+      r[col_idx[d0]]=flt(d[1]) or 0.00
+      
+        
+    tot_earn_ded_net_ret = sql("select gross_pay, total_deduction,net_pay from `tabSalary Slip` where name = '%s'"%r[col_idx['ID']])
+    if d2 == 'Total Earning':
+      r[col_idx[d2]] = flt(tot_earn_ded_net_ret[0][0]) or 0
+      total_earning += flt(tot_earn_ded_net_ret[0][0]) or 0
+    elif d2 == 'Total Deduction':
+      r[col_idx[d2]] = flt(tot_earn_ded_net_ret[0][1]) or 0
+      total_deduction += flt(tot_earn_ded_net_ret[0][1]) or 0
+    elif d2 == 'Net Pay':
+      r[col_idx[d2]] = flt(tot_earn_ded_net_ret[0][2]) or 0
+      sum_net += flt(tot_earn_ded_net_ret[0][2]) or 0
+ 
+ 
+total.append(total_lwp)
+total.append(total_arr)
+
+for lst in earn_type_lst:
+  
+  total_ear = 0
+  for r in res:
+   
+    lst0 = '%s'%lst[0]
+    total_ear += r[col_idx[lst0]]
+    
+  total.append(total_ear) 
+  
+total.append(total_earning)
+for lst in ded_type_lst:
+  total_ded = 0
+  for r in res:
+    lst0 = '%s'%lst[0]
+    total_ded += r[col_idx[lst0]]
+    
+  total.append(total_ded) 
+
+
+total.append(total_deduction)
+total.append(sum_net)
+
+res.append(total)
diff --git a/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt b/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt
index e480563..b24bfb1 100644
--- a/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt
+++ b/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:33:12',
+		'creation': '2012-03-30 14:50:44',
 		'docstatus': 0,
-		'modified': '2010-04-05 14:43:08',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-05 17:23:13',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Salary Slip\x01ID,Salary Slip\x01Employee,Salary Slip\x01Employee Name,Salary Slip\x01Leave Without Pay,Salary Slip\x01Arrear Amount',
-		'criteria_name': 'Monthly Salary Register',
-		'doc_type': 'Salary Slip',
+		'columns': u'Salary Slip\x01ID,Salary Slip\x01Employee,Salary Slip\x01Employee Name,Salary Slip\x01Leave Without Pay,Salary Slip\x01Arrear Amount',
+		'criteria_name': u'Monthly Salary Register',
+		'doc_type': u'Salary Slip',
 		'doctype': 'Search Criteria',
-		'filters': "{'Salary Slip\x01Month':'','Salary Slip\x01Year':''}",
-		'module': 'HR',
+		'filters': u'{"Salary Slip\\u0001Submitted":1,"Salary Slip\\u0001Company":[""],"Salary Slip\\u0001Month":[""]}',
+		'module': u'HR',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': 'ID',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabSalary Slip`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, monthly_salary_register
 	{
 		'doctype': 'Search Criteria',
-		'name': 'monthly_salary_register'
+		'name': u'monthly_salary_register'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt b/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt
index f58984c..eee5bfa 100644
--- a/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt
+++ b/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:25',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-12-01 09:54:34',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Employee\x01ID',
-		'criteria_name': 'New or left employees for a month',
-		'doc_type': 'Employee',
+		'columns': u'Employee\x01ID',
+		'criteria_name': u'New or left employees for a month',
+		'doc_type': u'Employee',
 		'doctype': 'Search Criteria',
-		'filters': "{'Employee\x01Saved':1,'Employee\x01Submitted':1,'Employee\x01Gender':'','Employee\x01Month of Birth':'','Employee\x01Status':''}",
-		'module': 'HR',
+		'filters': u"{'Employee\x01Saved':1,'Employee\x01Submitted':1,'Employee\x01Gender':'','Employee\x01Month of Birth':'','Employee\x01Status':''}",
+		'module': u'HR',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabEmployee`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabEmployee`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, new_or_left_employees_for_a_month
 	{
 		'doctype': 'Search Criteria',
-		'name': 'new_or_left_employees_for_a_month'
+		'name': u'new_or_left_employees_for_a_month'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/pending_appraisals/__init__.py b/erpnext/hr/search_criteria/pending_appraisals/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/search_criteria/pending_appraisals/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.js b/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.js
deleted file mode 100644
index 810fe16..0000000
--- a/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.js
+++ /dev/null
@@ -1,57 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();  
-  
-  this.add_filter({fieldname:'approver', label:'Approver', fieldtype:'Link', options:'Profile', ignore : 1, parent:'Appraisal'});  
-  this.filter_fields_dict['Appraisal'+FILTER_SEP +'Approver'].df.in_first_page = 1;
-  
-  this.filter_fields_dict['Appraisal'+FILTER_SEP +'Employee'].df.filter_hide = 0;
-  this.filter_fields_dict['Appraisal'+FILTER_SEP +'Employee Name'].df.filter_hide = 0;
-  this.filter_fields_dict['Appraisal'+FILTER_SEP +'Fiscal Year'].df.filter_hide = 0;  
-  this.filter_fields_dict['Appraisal'+FILTER_SEP +'From Start Date'].df.filter_hide = 0;
-  //this.filter_fields_dict['Appraisal'+FILTER_SEP +'To Start Date'].df.filter_hide = 0;
-  //this.filter_fields_dict['Appraisal'+FILTER_SEP +'From End Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Appraisal'+FILTER_SEP +'To End Date'].df.filter_hide = 0;
-}
-this.mytabs.items['Select Columns'].hide();
-
-report.get_query = function(){
-  //get filter values
-  emp = this.filter_fields_dict['Appraisal'+FILTER_SEP+'Employee'].get_value(); 
-  emp_nm = this.filter_fields_dict['Appraisal'+FILTER_SEP+'Employee Name'].get_value(); 
-  frm_start_date = this.filter_fields_dict['Appraisal'+FILTER_SEP+'From Start Date'].get_value(); 
-  //to_start_date = this.filter_fields_dict['Appraisal'+FILTER_SEP+'To Start Date'].get_value(); 
-  //frm_end_date = this.filter_fields_dict['Appraisal'+FILTER_SEP+'From End Date'].get_value(); 
-  to_end_date = this.filter_fields_dict['Appraisal'+FILTER_SEP+'To End Date'].get_value(); 
-  fiscal_year = this.filter_fields_dict['Appraisal'+FILTER_SEP+'Fiscal Year'].get_value();
-  approver = this.filter_fields_dict['Appraisal'+FILTER_SEP+'Approver'].get_value();
-  
-  var cond = '';
-  if(emp) cond += ' AND `tabAppraisal`.employee = "'+emp+'"';
-  if(emp_nm) cond += ' AND `tabAppraisal`.employee_name = "'+emp_nm+'"';
-  if(frm_start_date) cond += ' AND `tabAppraisal`.start_date >= "'+frm_start_date+'"';
-  //if(to_start_date) cond += ' AND `tabAppraisal`.start_date <= "'+to_start_date+'"';
-  //if(frm_end_date) cond += ' AND `tabAppraisal`.end_date >= "'+frm_end_date+'"';
-  if(to_end_date) cond += ' AND `tabAppraisal`.end_date <= "'+to_end_date+'"';
-  if(fiscal_year !='') cond += ' AND `tabAppraisal`.fiscal_year = "'+fiscal_year+'"';
-  if(approver) cond += ' AND `tabAppraisal`.kra_approver = "'+approver+'"';
-
-  //var q = 'SELECT DISTINCT `tabAppraisal`.name, `tabAppraisal`.status, `tabAppraisal`.employee, `tabAppraisal`.employee_name, `tabAppraisal`.start_date,`tabAppraisal`.end_date,`tabAppraisal`.kra_approver, `tabAppraisal`.total_score FROM `tabAppraisal` WHERE `tabAppraisal`.status= "Submitted" AND `tabAppraisal`.kra_approver = "'+ user+'"'+cond;  
-  var q = 'SELECT DISTINCT `tabAppraisal`.name, `tabAppraisal`.employee, `tabAppraisal`.employee_name, `tabAppraisal`.start_date,`tabAppraisal`.end_date,`tabAppraisal`.kra_approver, `tabAppraisal`.total_score FROM `tabAppraisal` WHERE `tabAppraisal`.status= "Submitted"'+cond;  
-  return q;
-}
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.txt b/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.txt
deleted file mode 100644
index 3010bc9..0000000
--- a/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, pending_appraisals
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-01 15:48:09',
-		'docstatus': 0,
-		'modified': '2010-09-01 14:19:02',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'criteria_name': 'Pending Appraisals',
-		'disabled': 0,
-		'doc_type': 'Appraisal',
-		'doctype': 'Search Criteria',
-		'filters': "{'Appraisal\x01Submitted':1,'Appraisal\x01Status':'Submitted','Appraisal\x01Fiscal Year':'','Appraisal\x01Approver':''}",
-		'module': 'HR',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabAppraisal`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, pending_appraisals
-	{
-		'doctype': 'Search Criteria',
-		'name': 'pending_appraisals'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/pending_expense_vouchers/__init__.py b/erpnext/hr/search_criteria/pending_expense_vouchers/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/hr/search_criteria/pending_expense_vouchers/__init__.py
+++ /dev/null
diff --git a/erpnext/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.js b/erpnext/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.js
deleted file mode 100644
index 388aa7b..0000000
--- a/erpnext/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();  
-  
-  this.add_filter({fieldname:'approver', label:'Approver', fieldtype:'Link', options:'Profile', ignore : 1, parent:'Expense Voucher'});  
-  this.filter_fields_dict['Expense Voucher'+FILTER_SEP +'Approver'].df.in_first_page = 1;
-  
-  this.filter_fields_dict['Expense Voucher'+FILTER_SEP +'From Employee'].df.filter_hide = 0;
-  this.filter_fields_dict['Expense Voucher'+FILTER_SEP +'Employee Name'].df.filter_hide = 0;
-  this.filter_fields_dict['Expense Voucher'+FILTER_SEP +'Fiscal Year'].df.filter_hide = 0;  
-  this.filter_fields_dict['Expense Voucher'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Expense Voucher'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Expense Voucher'+FILTER_SEP +'Company'].df.filter_hide = 0;
-}
-this.mytabs.items['Select Columns'].hide();
-
-report.get_query = function(){
-  //get filter values
-  emp = this.filter_fields_dict['Expense Voucher'+FILTER_SEP+'From Employee'].get_value(); 
-  emp_nm = this.filter_fields_dict['Expense Voucher'+FILTER_SEP+'Employee Name'].get_value(); 
-  frm_start_date = this.filter_fields_dict['Expense Voucher'+FILTER_SEP+'From Posting Date'].get_value(); 
-  to_end_date = this.filter_fields_dict['Expense Voucher'+FILTER_SEP+'To Posting Date'].get_value(); 
-  fiscal_year = this.filter_fields_dict['Expense Voucher'+FILTER_SEP+'Fiscal Year'].get_value();
-  approver = this.filter_fields_dict['Expense Voucher'+FILTER_SEP+'Approver'].get_value();
-  company = this.filter_fields_dict['Expense Voucher'+FILTER_SEP+'Company'].get_value();
-  
-  var cond = '';
-  if(emp) cond += ' AND `tabExpense Voucher`.employee = "'+emp+'"';
-  if(emp_nm) cond += ' AND `tabExpense Voucher`.employee_name = "'+emp_nm+'"';
-  if(frm_start_date) cond += ' AND `tabExpense Voucher`.posting_date >= "'+frm_start_date+'"';
-  if(to_end_date) cond += ' AND `tabExpense Voucher`.posting_date <= "'+to_end_date+'"';
-  if(fiscal_year !='') cond += ' AND `tabExpense Voucher`.fiscal_year = "'+fiscal_year+'"';
-  if(approver) cond += ' AND `tabExpense Voucher`.exp_approver = "'+approver+'"';
-  if(company) cond += ' AND `tabExpense Voucher`.company = "'+company+'"';
-
-  var q = 'SELECT DISTINCT `tabExpense Voucher`.name, `tabExpense Voucher`.employee, `tabExpense Voucher`.employee_name, `tabExpense Voucher`.posting_date,`tabExpense Voucher`.exp_approver, `tabExpense Voucher`.total_claimed_amount, `tabExpense Voucher`.total_sanctioned_amount FROM `tabExpense Voucher` WHERE `tabExpense Voucher`.approval_status= "Submitted"'+cond;  
-  return q;
-}
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.txt b/erpnext/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.txt
deleted file mode 100644
index 423b614..0000000
--- a/erpnext/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-# Search Criteria, pending_expense_vouchers
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-03 16:45:09',
-		'docstatus': 0,
-		'modified': '2010-09-02 11:04:41',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'criteria_name': 'Pending Expense Vouchers',
-		'doc_type': 'Expense Voucher',
-		'doctype': 'Search Criteria',
-		'filters': "{'Expense Voucher\x01Approval Status':'','Expense Voucher\x01Fiscal Year':''}",
-		'module': 'HR',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, pending_expense_vouchers
-	{
-		'doctype': 'Search Criteria',
-		'name': 'pending_expense_vouchers'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/salary_register/salary_register.py b/erpnext/hr/search_criteria/salary_register/salary_register.py
index c44954c..9b9d5d4 100644
--- a/erpnext/hr/search_criteria/salary_register/salary_register.py
+++ b/erpnext/hr/search_criteria/salary_register/salary_register.py
@@ -19,8 +19,8 @@
   if not sal_slips_ids == '': sal_slips_ids +=","
   sal_slips_ids+="'%s'"%r[col_idx['ID']]
 
-earn_heads =[i[0] for i in sql("select distinct e_type from `tabSS Earning Detail` where parent in (%s)"%sal_slips_ids)]
-ded_heads =[i[0] for i in sql("select distinct d_type from `tabSS Deduction Detail` where parent in (%s)"%sal_slips_ids)]
+earn_heads =[i[0] for i in sql("select distinct e_type from `tabSalary Slip Earning` where parent in (%s)"%sal_slips_ids)]
+ded_heads =[i[0] for i in sql("select distinct d_type from `tabSalary Slip Deduction` where parent in (%s)"%sal_slips_ids)]
 
 col=[]
 
@@ -57,9 +57,9 @@
 
   for i in range(6,len(colnames)):
     if colnames[i] not in ('Arrear Amount','Encashment Amount','Net Pay','Gross Pay','Total Deduction'):
-      amt = sql("select e_modified_amount from `tabSS Earning Detail` where e_type = '%s' and parent = '%s'"%(colnames[i],r[0]))
+      amt = sql("select e_modified_amount from `tabSalary Slip Earning` where e_type = '%s' and parent = '%s'"%(colnames[i],r[0]))
       if not amt:
-        amt = sql("select d_modified_amount from `tabSS Deduction Detail` where d_type = '%s' and parent = '%s'"%(colnames[i],r[0]))
+        amt = sql("select d_modified_amount from `tabSalary Slip Deduction` where d_type = '%s' and parent = '%s'"%(colnames[i],r[0]))
       amt = amt and amt[0][0] or 0
       r.append(flt(amt))
       
diff --git a/erpnext/hr/search_criteria/salary_register/salary_register.txt b/erpnext/hr/search_criteria/salary_register/salary_register.txt
index 6d9c4fa..700423b 100644
--- a/erpnext/hr/search_criteria/salary_register/salary_register.txt
+++ b/erpnext/hr/search_criteria/salary_register/salary_register.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-29 12:30:57',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-12-29 12:11:18',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Salary Slip\x01ID,Salary Slip\x01Employee,Salary Slip\x01Employee Name,Salary Slip\x01Year,Salary Slip\x01Month,Salary Slip\x01Total days in month,Salary Slip\x01Payment days',
-		'criteria_name': 'Salary Register',
-		'doc_type': 'Salary Slip',
+		'columns': u'Salary Slip\x01ID,Salary Slip\x01Employee,Salary Slip\x01Employee Name,Salary Slip\x01Year,Salary Slip\x01Month,Salary Slip\x01Total days in month,Salary Slip\x01Payment days',
+		'criteria_name': u'Salary Register',
+		'doc_type': u'Salary Slip',
 		'doctype': 'Search Criteria',
-		'filters': "{'Salary Slip\x01Submitted':1,'Salary Slip\x01Month':''}",
-		'module': 'HR',
+		'filters': u"{'Salary Slip\x01Submitted':1,'Salary Slip\x01Month':''}",
+		'module': u'HR',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabSalary Slip`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabSalary Slip`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, salary_register
 	{
 		'doctype': 'Search Criteria',
-		'name': 'salary_register'
+		'name': u'salary_register'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/salary_slips/salary_slips.txt b/erpnext/hr/search_criteria/salary_slips/salary_slips.txt
index 00e6d46..9951896 100644
--- a/erpnext/hr/search_criteria/salary_slips/salary_slips.txt
+++ b/erpnext/hr/search_criteria/salary_slips/salary_slips.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-08-04 13:07:29',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Salary Slip\x01ID,Salary Slip\x01Fiscal Year,Salary Slip\x01Month,Salary Slip\x01Employee,Salary Slip\x01Employee Name,Salary Slip\x01Department,Salary Slip\x01Designation,Salary Slip\x01Branch,Salary Slip\x01Grade,Salary Slip\x01PF No.,Salary Slip\x01ESIC No.,Salary Slip\x01Leave Without Pay,Salary Slip\x01Bank Name,Salary Slip\x01Bank Account No.,Salary Slip\x01Payment days,Salary Slip\x01Arrear Amount,Salary Slip\x01Encashment Amount,Salary Slip\x01Gross Pay,Salary Slip\x01Total Deduction,Salary Slip\x01Net Pay',
-		'criteria_name': 'Salary Slips',
-		'doc_type': 'Salary Slip',
+		'columns': u'Salary Slip\x01ID,Salary Slip\x01Fiscal Year,Salary Slip\x01Month,Salary Slip\x01Employee,Salary Slip\x01Employee Name,Salary Slip\x01Department,Salary Slip\x01Designation,Salary Slip\x01Branch,Salary Slip\x01Grade,Salary Slip\x01PF No.,Salary Slip\x01ESIC No.,Salary Slip\x01Leave Without Pay,Salary Slip\x01Bank Name,Salary Slip\x01Bank Account No.,Salary Slip\x01Payment days,Salary Slip\x01Arrear Amount,Salary Slip\x01Encashment Amount,Salary Slip\x01Gross Pay,Salary Slip\x01Total Deduction,Salary Slip\x01Net Pay',
+		'criteria_name': u'Salary Slips',
+		'doc_type': u'Salary Slip',
 		'doctype': 'Search Criteria',
-		'filters': "{'Salary Slip\x01Saved':1,'Salary Slip\x01Submitted':1}",
-		'module': 'HR',
+		'filters': u"{'Salary Slip\x01Saved':1,'Salary Slip\x01Submitted':1}",
+		'module': u'HR',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabSalary Slip`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabSalary Slip`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, salary_slips
 	{
 		'doctype': 'Search Criteria',
-		'name': 'salary_slips'
+		'name': u'salary_slips'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt b/erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt
index 1111a38..a0e3438 100644
--- a/erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt
+++ b/erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:25',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-08-04 09:19:01',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Salary Structure\x01ID,Salary Structure\x01Employee,Salary Structure\x01From Date,Salary Structure\x01To Date,Salary Structure\x01Fiscal Year,Salary Structure\x01Branch,Salary Structure\x01Designation,Salary Structure\x01Department,Salary Structure\x01Grade,Salary Structure\x01Is Active,Salary Structure\x01Total Earning,Salary Structure\x01Total Deduction,Salary Structure\x01CTC,Salary Structure\x01Total',
-		'criteria_name': 'Salary Structure Details',
-		'doc_type': 'Salary Structure',
+		'columns': u'Salary Structure\x01ID,Salary Structure\x01Employee,Salary Structure\x01From Date,Salary Structure\x01To Date,Salary Structure\x01Fiscal Year,Salary Structure\x01Branch,Salary Structure\x01Designation,Salary Structure\x01Department,Salary Structure\x01Grade,Salary Structure\x01Is Active,Salary Structure\x01Total Earning,Salary Structure\x01Total Deduction,Salary Structure\x01CTC,Salary Structure\x01Total',
+		'criteria_name': u'Salary Structure Details',
+		'doc_type': u'Salary Structure',
 		'doctype': 'Search Criteria',
-		'filters': "{'Salary Structure\x01Branch':'','Salary Structure\x01Designation':'','Salary Structure\x01Department':'','Salary Structure\x01Grade':'','Salary Structure\x01Is Active':''}",
-		'module': 'HR',
+		'filters': u"{'Salary Structure\x01Branch':'','Salary Structure\x01Designation':'','Salary Structure\x01Department':'','Salary Structure\x01Grade':'','Salary Structure\x01Is Active':''}",
+		'module': u'HR',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabSalary Structure`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabSalary Structure`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, salary_structure_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'salary_structure_details'
+		'name': u'salary_structure_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt b/erpnext/knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt
deleted file mode 100644
index 8aee002..0000000
--- a/erpnext/knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-[
-	{
-		'creation': '2010-08-08 17:35:42',
-		'disabled': 'Yes',
-		'docstatus': 0,
-		'doctype': u'Module Def',
-		'doctype_list': None,
-		'file_list': None,
-		'idx': None,
-		'is_hidden': None,
-		'last_updated_date': None,
-		'modified': '2011-05-02 12:40:40',
-		'modified_by': 'Administrator',
-		'module_desc': '<p>Maintain your knowledge base of Questions &amp; Answers</p>',
-		'module_icon': 'help.png',
-		'module_label': 'Knowledge Base',
-		'module_name': 'Knowledge Base',
-		'module_page': 'questions',
-		'module_seq': 13,
-		'name': 'Knowledge Base',
-		'owner': 'Administrator',
-		'parent': None,
-		'parentfield': None,
-		'parenttype': None,
-		'trash_reason': None,
-		'widget_code': None
-	},
-	{
-		'creation': '2010-08-08 17:35:42',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 1,
-		'modified': '2010-08-08 17:35:42',
-		'modified_by': 'Administrator',
-		'name': 'MDR00106',
-		'owner': 'Administrator',
-		'parent': 'Knowledge Base',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'All'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/knowledge_base/doctype/answer/answer.txt b/erpnext/knowledge_base/doctype/answer/answer.txt
index 904e498..6d664f2 100644
--- a/erpnext/knowledge_base/doctype/answer/answer.txt
+++ b/erpnext/knowledge_base/doctype/answer/answer.txt
@@ -3,107 +3,100 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-05-04 11:09:49',
+		'creation': '2012-03-27 14:36:01',
 		'docstatus': 0,
-		'modified': '2011-05-30 15:52:52',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:01',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_attach': 0,
 		'allow_trash': 1,
-		'autoname': '_ANS.#######',
-		'colour': 'White:FFF',
+		'autoname': u'_ANS.#######',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 1,
-		'module': 'Knowledge Base',
+		'module': u'Knowledge Base',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 3
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Answer',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Answer',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Answer',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Answer',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'All',
-		'submit': 0,
+		'role': u'All',
 		'write': 1
 	},
 
 	# DocType, Answer
 	{
 		'doctype': 'DocType',
-		'name': 'Answer'
+		'name': u'Answer'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'question',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Question',
-		'options': 'Question'
+		'doctype': u'DocField',
+		'fieldname': u'question',
+		'fieldtype': u'Link',
+		'label': u'Question',
+		'options': u'Question'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'answer',
-		'fieldtype': 'Text',
-		'idx': 2,
-		'label': 'Answer',
-		'oldfieldname': 'question',
-		'oldfieldtype': 'Text'
+		'doctype': u'DocField',
+		'fieldname': u'answer',
+		'fieldtype': u'Text',
+		'label': u'Answer',
+		'oldfieldname': u'question',
+		'oldfieldtype': u'Text'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'points',
-		'fieldtype': 'Int',
-		'idx': 3,
-		'label': 'Points'
+		'doctype': u'DocField',
+		'fieldname': u'points',
+		'fieldtype': u'Int',
+		'label': u'Points'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': '_users_voted',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'_users_voted',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 4,
-		'label': 'Users Voted',
+		'label': u'Users Voted',
 		'print_hide': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/knowledge_base/doctype/question/question.txt b/erpnext/knowledge_base/doctype/question/question.txt
index 187789c..01a86ee 100644
--- a/erpnext/knowledge_base/doctype/question/question.txt
+++ b/erpnext/knowledge_base/doctype/question/question.txt
@@ -3,37 +3,37 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:17',
+		'creation': '2012-03-27 14:36:01',
 		'docstatus': 0,
-		'modified': '2011-04-20 18:22:44',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:01',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_attach': 0,
 		'allow_trash': 1,
-		'autoname': 'QUES.#######',
-		'colour': 'White:FFF',
+		'autoname': u'QUES.#######',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 1,
-		'module': 'Knowledge Base',
+		'module': u'Knowledge Base',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 7
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Question',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Question',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
@@ -41,128 +41,118 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Question',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Question',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'All',
+		'role': u'All',
 		'write': 1
 	},
 
 	# DocType, Question
 	{
 		'doctype': 'DocType',
-		'name': 'Question'
+		'name': u'Question'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'question',
-		'fieldtype': 'Text',
-		'idx': 1,
-		'label': 'Question',
-		'oldfieldname': 'question',
-		'oldfieldtype': 'Text'
+		'doctype': u'DocField',
+		'fieldname': u'question',
+		'fieldtype': u'Text',
+		'label': u'Question',
+		'oldfieldname': u'question',
+		'oldfieldtype': u'Text'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'points',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'points',
+		'fieldtype': u'Int',
 		'hidden': 1,
-		'idx': 2,
-		'label': 'Points'
+		'label': u'Points'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'answer',
-		'fieldtype': 'Text Editor',
-		'idx': 3,
-		'label': 'Answer',
-		'oldfieldname': 'answer',
-		'oldfieldtype': 'Text Editor'
+		'doctype': u'DocField',
+		'fieldname': u'answer',
+		'fieldtype': u'Text Editor',
+		'label': u'Answer',
+		'oldfieldname': u'answer',
+		'oldfieldtype': u'Text Editor'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': '_user_tags',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'_user_tags',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'idx': 4,
-		'label': 'User Tags'
+		'label': u'User Tags'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tag_1',
-		'fieldtype': 'Link',
-		'idx': 5,
-		'label': 'Tag 1',
-		'oldfieldname': 'tag_1',
-		'oldfieldtype': 'Link',
-		'options': 'Question Tag',
+		'doctype': u'DocField',
+		'fieldname': u'tag_1',
+		'fieldtype': u'Link',
+		'label': u'Tag 1',
+		'oldfieldname': u'tag_1',
+		'oldfieldtype': u'Link',
+		'options': u'Question Tag',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': '_users_voted',
-		'fieldtype': 'Text',
-		'idx': 6,
-		'label': 'Users Voted'
+		'doctype': u'DocField',
+		'fieldname': u'_users_voted',
+		'fieldtype': u'Text',
+		'label': u'Users Voted'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tag_2',
-		'fieldtype': 'Link',
-		'idx': 7,
-		'label': 'Tag 2',
-		'oldfieldname': 'tag_2',
-		'oldfieldtype': 'Link',
-		'options': 'Question Tag',
+		'doctype': u'DocField',
+		'fieldname': u'tag_2',
+		'fieldtype': u'Link',
+		'label': u'Tag 2',
+		'oldfieldname': u'tag_2',
+		'oldfieldtype': u'Link',
+		'options': u'Question Tag',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tag_3',
-		'fieldtype': 'Link',
-		'idx': 8,
-		'label': 'Tag 3',
-		'oldfieldname': 'tag_3',
-		'oldfieldtype': 'Link',
-		'options': 'Question Tag',
+		'doctype': u'DocField',
+		'fieldname': u'tag_3',
+		'fieldtype': u'Link',
+		'label': u'Tag 3',
+		'oldfieldname': u'tag_3',
+		'oldfieldtype': u'Link',
+		'options': u'Question Tag',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 9,
-		'label': 'File List',
-		'oldfieldname': 'file_list',
-		'oldfieldtype': 'Text'
+		'label': u'File List',
+		'oldfieldname': u'file_list',
+		'oldfieldtype': u'Text'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/knowledge_base/doctype/question_control/question_control.txt b/erpnext/knowledge_base/doctype/question_control/question_control.txt
index 42b491b..b144336 100644
--- a/erpnext/knowledge_base/doctype/question_control/question_control.txt
+++ b/erpnext/knowledge_base/doctype/question_control/question_control.txt
@@ -3,28 +3,28 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:17',
+		'creation': '2012-03-27 14:36:02',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:02',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Knowledge Base',
+		'module': u'Knowledge Base',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 1
 	},
 
 	# DocType, Question Control
 	{
 		'doctype': 'DocType',
-		'name': 'Question Control'
+		'name': u'Question Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/knowledge_base/doctype/question_tag/__init__.py b/erpnext/knowledge_base/doctype/question_tag/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/knowledge_base/doctype/question_tag/__init__.py
+++ /dev/null
diff --git a/erpnext/knowledge_base/doctype/question_tag/question_tag.txt b/erpnext/knowledge_base/doctype/question_tag/question_tag.txt
deleted file mode 100644
index e6e3d35..0000000
--- a/erpnext/knowledge_base/doctype/question_tag/question_tag.txt
+++ /dev/null
@@ -1,71 +0,0 @@
-# DocType, Question Tag
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:17',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'field:tag_name',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'module': 'Knowledge Base',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'tag_name',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Tag Name',
-		'name': '__common__',
-		'oldfieldname': 'tag_name',
-		'oldfieldtype': 'Data',
-		'parent': 'Question Tag',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Question Tag',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'All',
-		'write': 1
-	},
-
-	# DocType, Question Tag
-	{
-		'doctype': 'DocType',
-		'name': 'Question Tag'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/knowledge_base/page/question_view/question_view.js b/erpnext/knowledge_base/page/question_view/question_view.js
index 5783471..879ee79 100644
--- a/erpnext/knowledge_base/page/question_view/question_view.js
+++ b/erpnext/knowledge_base/page/question_view/question_view.js
@@ -19,9 +19,9 @@
 }
 
 pscript['refresh_question-view'] = function() {
-	$('.add-answer-area').empty();
 	// href
 	var qid = window.location.hash.split('/')[1];
+	console.log(qid)
 	if(qid) {
 		pscript.question_view(qid);
 	}
@@ -131,7 +131,7 @@
 	
 	this.make_list = function() {
 	
-		this.list = new wn.widgets.Listing({
+		this.list = new wn.ui.Listing({
 			parent: me.parent,
 			as_dict: 1,
 			no_result_message: 'No answers yet, be the first one to answer!',
@@ -185,4 +185,4 @@
 }
 
 
-$import(knowledge_base/page/kb_common/kb_common.js);
\ No newline at end of file
+wn.require('erpnext/knowledge_base/page/kb_common/kb_common.js');
\ No newline at end of file
diff --git a/erpnext/knowledge_base/page/questions/questions.js b/erpnext/knowledge_base/page/questions/questions.js
index 7261cd8..6b0ca25 100644
--- a/erpnext/knowledge_base/page/questions/questions.js
+++ b/erpnext/knowledge_base/page/questions/questions.js
@@ -107,7 +107,7 @@
 		this.list_area = $a(w, 'div', '', {marginRight:'13px'})
 		this.no_result = $a(w, 'div','help_box',{display:'none'},'No questions asked yet! Be the first one to ask')
 
-		this.list = new wn.widgets.Listing({
+		this.list = new wn.ui.Listing({
 			parent: this.list_area,
 			no_results_message: 'No questions found. Ask a new question!',
 			as_dict: 1,
@@ -215,4 +215,4 @@
 	this.make()
 }
 
-$import(knowledge_base/page/kb_common/kb_common.js);
\ No newline at end of file
+wn.require('erpnext/knowledge_base/page/kb_common/kb_common.js');
\ No newline at end of file
diff --git a/erpnext/knowledge_base/page/questions/questions.py b/erpnext/knowledge_base/page/questions/questions.py
index 1b90fc7..52b80fe 100644
--- a/erpnext/knowledge_base/page/questions/questions.py
+++ b/erpnext/knowledge_base/page/questions/questions.py
@@ -17,6 +17,7 @@
 import webnotes
 
 from webnotes.utils import load_json, cint, cstr
+import json
 
 # add a new question
 @webnotes.whitelist()
@@ -30,14 +31,14 @@
 	d.save(1)
 	
 	if args['suggest']:
-		from home.page.my_company.my_company import post_comment
+		from utilities.page.messages import messages
 		for s in args['suggest']:
 			if s:
-				post_comment({
-					'uid': s,
-					'comment': 'Please help me and answer the question "%s" in the Knowledge Base' % d.question,
+				messages.post(json.dumps({
+					'contact': s,
+					'txt': 'Please help me and answer the question "%s" in the Knowledge Base' % d.question,
 					'notify': 1
-				})
+				}))
 	
 @webnotes.whitelist()
 def vote(arg):
@@ -60,4 +61,4 @@
 	"""
 	args = load_json(arg)
 	from webnotes.model import delete_doc
-	delete_doc(args['dt'], args['dn'])
\ No newline at end of file
+	delete_doc(args['dt'], args['dn'])
diff --git a/erpnext/knowledge_base/page/questions/questions.txt b/erpnext/knowledge_base/page/questions/questions.txt
index b45c7dd..1ca11ff 100644
--- a/erpnext/knowledge_base/page/questions/questions.txt
+++ b/erpnext/knowledge_base/page/questions/questions.txt
@@ -15,13 +15,13 @@
 		'doctype': 'Page',
 		'module': 'Knowledge Base',
 		'name': '__common__',
-		'page_name': 'questions',
+		'page_name': 'Questions',
 		'standard': 'Yes'
 	},
 
 	# Page, questions
 	{
 		'doctype': 'Page',
-		'name': 'questions'
+		'name': 'Questions'
 	}
-]
\ No newline at end of file
+]
diff --git a/erpnext/patches/before_jan_2012/Discount_purchase_cycle.py b/erpnext/patches/before_jan_2012/Discount_purchase_cycle.py
index 8fee8c5..4214576 100644
--- a/erpnext/patches/before_jan_2012/Discount_purchase_cycle.py
+++ b/erpnext/patches/before_jan_2012/Discount_purchase_cycle.py
@@ -16,13 +16,13 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 
 	reload_doc('accounts', 'doctype', 'pv_detail')
 	reload_doc('buying', 'doctype', 'po_detail')
 	reload_doc('stock', 'doctype', 'purchase_receipt_detail')
-	if webnotes.conn.sql("select name from `tabDocField` where parent = 'PO Detail' and fieldname = 'discount'"):
-		webnotes.conn.sql("update `tabPO Detail` set discount_rate=discount")
+	if webnotes.conn.sql("select name from `tabDocField` where parent = 'Purchase Order Item' and fieldname = 'discount'"):
+		webnotes.conn.sql("update `tabPurchase Order Item` set discount_rate=discount")
 
 	# Features setup
 	reload_doc('setup', 'doctype', 'features_setup')
diff --git a/erpnext/patches/before_jan_2012/accounts_default_form.py b/erpnext/patches/before_jan_2012/accounts_default_form.py
index 282ebf5..eb8f586 100644
--- a/erpnext/patches/before_jan_2012/accounts_default_form.py
+++ b/erpnext/patches/before_jan_2012/accounts_default_form.py
@@ -16,7 +16,7 @@
 
 def execute():
         import webnotes
-        from webnotes.modules.module_manager import reload_doc
+        from webnotes.modules import reload_doc
         reload_doc('setup', 'doctype', 'company')
         reload_doc('setup', 'doctype', 'manage_account')
  
diff --git a/erpnext/patches/before_jan_2012/auto_indent.py b/erpnext/patches/before_jan_2012/auto_indent.py
index 7373c39..a472d80 100644
--- a/erpnext/patches/before_jan_2012/auto_indent.py
+++ b/erpnext/patches/before_jan_2012/auto_indent.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('setup', 'doctype', 'manage_account')
 	reload_doc('stock', 'doctype', 'item')
 	webnotes.conn.sql("delete from `tabDocField` where fieldname='minimum_inventory_level' and parent='item'")
diff --git a/erpnext/patches/before_jan_2012/c_form_patch.py b/erpnext/patches/before_jan_2012/c_form_patch.py
index 8c00891..76e3646 100644
--- a/erpnext/patches/before_jan_2012/c_form_patch.py
+++ b/erpnext/patches/before_jan_2012/c_form_patch.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 
 	reload_doc('accounts', 'doctype', 'receivable_voucher')
 	reload_doc('accounts', 'doctype', 'c_form')
@@ -24,5 +24,5 @@
 	reload_doc('accounts', 'Module Def', 'Accounts')
 
 	sql = webnotes.conn.sql
-	sql("update `tabReceivable Voucher` set c_form_applicable = 'Yes' where c_form_applicable = 'Y'")
-	sql("update `tabReceivable Voucher` set c_form_applicable = 'No' where c_form_applicable = 'N'")
+	sql("update `tabSales Invoice` set c_form_applicable = 'Yes' where c_form_applicable = 'Y'")
+	sql("update `tabSales Invoice` set c_form_applicable = 'No' where c_form_applicable = 'N'")
diff --git a/erpnext/patches/before_jan_2012/delivery_billing_status_patch.py b/erpnext/patches/before_jan_2012/delivery_billing_status_patch.py
index 2213c20..424ef4a 100644
--- a/erpnext/patches/before_jan_2012/delivery_billing_status_patch.py
+++ b/erpnext/patches/before_jan_2012/delivery_billing_status_patch.py
@@ -23,15 +23,15 @@
 #--------------------------
 def update_delivered_billed_qty():
 	# update billed amt in item table in so and dn
-	sql("""	update `tabSales Order Detail` so
-		set billed_amt = (select sum(amount) from `tabRV Detail` where `so_detail`= so.name and docstatus=1 and parent not like 'old%%'),
-		delivered_qty = (select sum(qty) from `tabDelivery Note Detail` where `prevdoc_detail_docname`= so.name and docstatus=1 and parent not like 'old%%'), 
+	sql("""	update `tabSales Order Item` so
+		set billed_amt = (select sum(amount) from `tabSales Invoice Item` where `so_detail`= so.name and docstatus=1 and parent not like 'old%%'),
+		delivered_qty = (select sum(qty) from `tabDelivery Note Item` where `prevdoc_detail_docname`= so.name and docstatus=1 and parent not like 'old%%'), 
 		modified = now()
 		where docstatus = 1
 	""")
 
-	sql(""" update `tabDelivery Note Detail` dn
-		set billed_amt = (select sum(amount) from `tabRV Detail` where `dn_detail`= dn.name and docstatus=1 and parent not like 'old%%'), 
+	sql(""" update `tabDelivery Note Item` dn
+		set billed_amt = (select sum(amount) from `tabSales Invoice Item` where `dn_detail`= dn.name and docstatus=1 and parent not like 'old%%'), 
 		modified = now()
 		where docstatus = 1
 	""")
@@ -41,8 +41,8 @@
 def update_percent():
 	# calculate % billed based on item table
 	sql("""	update `tabSales Order` so
-		set per_delivered = (select sum(if(qty > ifnull(delivered_qty, 0), delivered_qty, qty))/sum(qty)*100 from `tabSales Order Detail` where parent=so.name), 
-		per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabSales Order Detail` where parent = so.name), 
+		set per_delivered = (select sum(if(qty > ifnull(delivered_qty, 0), delivered_qty, qty))/sum(qty)*100 from `tabSales Order Item` where parent=so.name), 
+		per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabSales Order Item` where parent = so.name), 
 		modified = now()
 		where docstatus = 1
 	""")
@@ -50,7 +50,7 @@
 	# update DN	
 	# ---------	
 	sql("""	update `tabDelivery Note` dn
-		set per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabDelivery Note Detail` where parent = dn.name), 
+		set per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabDelivery Note Item` where parent = dn.name), 
 		modified = now()
 		where docstatus=1
 	""")
diff --git a/erpnext/patches/before_jan_2012/deploy_email_digest.py b/erpnext/patches/before_jan_2012/deploy_email_digest.py
index 5adeb97..8474b64 100644
--- a/erpnext/patches/before_jan_2012/deploy_email_digest.py
+++ b/erpnext/patches/before_jan_2012/deploy_email_digest.py
@@ -21,7 +21,7 @@
 		* Reload email_digest doctype
 		* Create default email digest
 	"""
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	
 	# Minor fix in print_format doctype
 	#reload_doc('core', 'doctype', 'print_format')
diff --git a/erpnext/patches/before_jan_2012/employeewise_balance_leave_report.py b/erpnext/patches/before_jan_2012/employeewise_balance_leave_report.py
index bab119e..83f2143 100644
--- a/erpnext/patches/before_jan_2012/employeewise_balance_leave_report.py
+++ b/erpnext/patches/before_jan_2012/employeewise_balance_leave_report.py
@@ -22,7 +22,7 @@
 """
 def execute():
 	from webnotes.model.doc import Document
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('hr', 'search_criteria', 'employeewise_balance_leave_report')
 	d = Document('Search Criteria', 'employeewise_balance_leave_report')
 	d.criteria_name = 'Employee Leave Balance Report'
diff --git a/erpnext/patches/before_jan_2012/erpnext_structure_cleanup.py b/erpnext/patches/before_jan_2012/erpnext_structure_cleanup.py
index aab64a0..0e0e68f 100644
--- a/erpnext/patches/before_jan_2012/erpnext_structure_cleanup.py
+++ b/erpnext/patches/before_jan_2012/erpnext_structure_cleanup.py
@@ -19,7 +19,7 @@
 
 import webnotes
 from webnotes.model import delete_doc
-from webnotes.modules.module_manager import reload_doc
+from webnotes.modules import reload_doc
 from webnotes.modules.export_module import export_to_files
 sql = webnotes.conn.sql
 
@@ -85,7 +85,7 @@
 def delete_unwanted_mappers():
 	"deletes unwanted mappers"
 	
-	lst = ['Customer Issue-Maintenance Report', 'Enquiry-Service Quotation', 'Sales Order-Maintenance Report', 'Service Quotation-Service Order', 'Supplier Quotation-Purchase Order', 'Visit Schedule-Maintenance Report', 'RFQ-Supplier Quotation', 'Indent-RFQ']
+	lst = ['Customer Issue-Maintenance Report', 'Enquiry-Service Quotation', 'Sales Order-Maintenance Report', 'Service Quotation-Service Order', 'Supplier Quotation-Purchase Order', 'Visit Schedule-Maintenance Report', 'RFQ-Supplier Quotation', 'Purchase Request-RFQ']
 	for d in lst:
 		try:
 			delete_doc('DocType Mapper', d)
@@ -161,13 +161,13 @@
 	"Put mappers into corresponding module"
 		
 	mappers = {
-		'Accounts':		('Delivery Note-Receivable Voucher', 'Project-Receivable Voucher', 'Purchase Order-Payable Voucher', 'Purchase Receipt-Payable Voucher', 'Sales Order-Receivable Voucher'), 
-		'Selling': 		('Delivery Note-Installation Note', 'Enquiry-Quotation', 'Lead-Enquiry', 'Lead-Customer', 'Project-Sales Order', 'Quotation-Sales Order', ), 
-		'Buying':		('Indent-Purchase Order', 'Sales Order-Indent'), 
-		'Stock':		('Purchase Order-Purchase Receipt', 'Project-Delivery Note', 'Receivable Voucher-Delivery Note', 'Sales Order-Delivery Note'), 
+		'Accounts':		('Delivery Note-Sales Invoice', 'Project-Sales Invoice', 'Purchase Order-Purchase Invoice', 'Purchase Receipt-Purchase Invoice', 'Sales Order-Sales Invoice'), 
+		'Selling': 		('Delivery Note-Installation Note', 'Opportunity-Quotation', 'Lead-Opportunity', 'Lead-Customer', 'Project-Sales Order', 'Quotation-Sales Order', ), 
+		'Buying':		('Purchase Request-Purchase Order', 'Sales Order-Purchase Request'), 
+		'Stock':		('Purchase Order-Purchase Receipt', 'Project-Delivery Note', 'Sales Invoice-Delivery Note', 'Sales Order-Delivery Note'), 
 		'Support':		('Customer Issue-Maintenance Visit', 'Sales Order-Maintenance Schedule', 'Sales Order-Maintenance Visit'), 
 		'Production':	('Production Forecast-Production Plan', 'Production Forecast-Production Planning Tool', 'Sales Order-Production Plan'), 
-		'HR':			('KRA Template-Appraisal', 'Salary Structure-Salary Slip')
+		'HR':			('Appraisal Template-Appraisal', 'Salary Structure-Salary Slip')
 	}
 	
 	for mod in mappers.keys():
@@ -195,7 +195,7 @@
 #---------------------------------------
 def run_patches():
 	# update module
-	dt_module = {'LC PR Detail':'Stock', 'Landed Cost Detail':'Stock', 'Comment Widget Record': 'Core', 'Tag':'Core', 'Tag Detail': 'Core', 'POS Settings': 'Accounts', 'Menu Item': 'Setup', 'Menu Item Role': 'Setup'}
+	dt_module = {'Landed Cost Purchase Receipt':'Stock', 'Landed Cost Item':'Stock', 'Comment': 'Core', 'Tag':'Core', 'Tag Detail': 'Core', 'POS Settings': 'Accounts', 'Menu Item': 'Setup', 'Menu Item Role': 'Setup'}
 	for d in dt_module.keys():
 		sql("update `tabDocType` set module = '%s' where name = '%s'" % (dt_module[d], d))
 	delete_unwanted_mappers()
diff --git a/erpnext/patches/before_jan_2012/index_patch.py b/erpnext/patches/before_jan_2012/index_patch.py
index 7e1991c..fef48de 100644
--- a/erpnext/patches/before_jan_2012/index_patch.py
+++ b/erpnext/patches/before_jan_2012/index_patch.py
@@ -26,14 +26,14 @@
 	from webnotes.modules.export_module import export_to_files
 
 	dt_index_fields={
-						'Purchase Receipt Detail': ['prevdoc_docname', 'item_code', 'warehouse', 'prevdoc_detail_docname'], 
+						'Purchase Receipt Item': ['prevdoc_docname', 'item_code', 'warehouse', 'prevdoc_detail_docname'], 
 						'Period Closing Voucher': ['closing_account_head', 'fiscal_year'], 
 						'Lead': ['lead_name', 'status', 'transaction_date'], 
 						'Time Sheet Detail': ['app_name'], 
-						'Item Specification Detail': [], 
+						'Item Quality Inspection Parameter': [], 
 						'Budget Detail': ['fiscal_year', 'account'], 
 						'Grade': [], 
-						'RV Tax Detail': ['parenttype', 'account_head'], 
+						'Sales Taxes and Charges': ['parenttype', 'account_head'], 
 						'TDS Category Account': ['account_head'], 
 						'Role': [], 
 						'Leave Allocation': ['leave_type', 'employee', 'fiscal_year'], 
@@ -50,25 +50,25 @@
 						'DocFormat': ['format'], 
 						'DocType Mapper': ['from_doctype', 'to_doctype'], 
 						'Brand': [], 
-						'Order Lost Reason': [], 
+						'Quotation Lost Reason': [], 
 						'Journal Voucher': ['posting_date', 'voucher_type'], 
 						'TDS Return Acknowledgement': ['date_of_receipt', 'acknowledgement'], 
 						'BOM Report Detail': ['item_code'], 
-						'Quotation Detail': ['item_code'], 
+						'Quotation Item': ['item_code'], 
 						'Update Delivery Date Detail': ['sales_order_no'], 
-						'Advance Adjustment Detail': ['journal_voucher'], 
+						'Sales Invoice Advance': ['journal_voucher'], 
 						'Authorization Rule': ['approving_user', 'system_user', 'system_role', 'approving_role'], 
 						'DocPerm': ['permlevel', 'role'], 
 						'Stock Entry Detail': ['item_code', 't_warehouse', 's_warehouse'], 
 						'Stock Entry': ['posting_date', 'delivery_note_no', 'purchase_receipt_no', 'production_order'], 
 						'Price List': [], 
-						'KRA Sheet': [], 
+						'Appraisal Template Goal': [], 
 						'Production Order': ['status', 'project_name', 'production_item'], 
 						'Account': ['lft', 'rgt', 'parent_account'], 
 						'Earn Deduction Detail': [], 
-						'Indent': ['status', 'transaction_date'], 
+						'Purchase Request': ['status', 'transaction_date'], 
 						'Tag Detail': [], 
-						'SS Deduction Detail': ['d_type'], 
+						'Salary Slip Deduction': ['d_type'], 
 						'Batch': ['item'], 
 						'Deduction Type': [], 
 						'Project': ['project_name', 'customer'], 
@@ -77,33 +77,33 @@
 						'Property Setter': ['doc_type', 'doc_name', 'property'], 
 						'Appraisal': ['status', 'employee'], 
 						'Letter Head': [], 
-						'Follow up': ['follow_up_by'], 
+						'Communication Log': ['follow_up_by'], 
 						'Project Cost Breakup': [], 
 						'Table Mapper Detail': [], 
 						'Campaign': [], 
-						'Static Parameter Detail': [], 
+						'SMS Parameter': [], 
 						'Leave Type': [], 
 						'Account Balance': ['period', 'start_date', 'end_date', 'account'], 
 						'Absent Days Detail': [], 
 						'Tag': [], 
 						'Raw Materials Supplied': ['raw_material'], 
 						'Project Activity Update': [], 
-						'PR Raw Material Detail': [], 
+						'Purchase Receipt Item Supplied': [], 
 						'Bank Reconciliation Detail': ['voucher_id'], 
 						'Sales Order': ['quotation_no', 'project_name', 'customer', 'posting_date'], 
 						'Chapter VI A Detail': [], 
-						'Experience In Company Detail': [], 
+						'Employee Internal Work History': [], 
 						'Order Reconciliation Detail': ['sales_order_no'], 
 						'Attendance': ['employee', 'att_date'], 
-						'Previous Experience Detail': [], 
-						'Earning Detail': ['e_type'], 
-						'Sales Order Detail': ['item_code', 'prevdoc_docname', 'reserved_warehouse'], 
-						'KRA Template': [], 
+						'Employee External Work History': [], 
+						'Salary Structure Earning': ['e_type'], 
+						'Sales Order Item': ['item_code', 'prevdoc_docname', 'reserved_warehouse'], 
+						'Appraisal Template': [], 
 						'Budget Distribution': ['fiscal_year'], 
 						'Workstation': ['warehouse'], 
 						'Period': [], 
 						'Training Session Details': [], 
-						'Other Charges': [], 
+						'Sales Taxes and Charges Master': [], 
 						'State': [], 
 						'Bulk Rename Tool': [], 
 						'Landed Cost Master Detail': [], 
@@ -119,48 +119,47 @@
 						'Campaign Expense': [], 
 						'Time Sheet': ['employee_name', 'time_sheet_date'], 
 						'File Group': ['parent_group'], 
-						'Maintenance Visit Detail': ['item_code', 'service_person'], 
+						'Maintenance Visit Purpose': ['item_code', 'service_person'], 
 						'Support Ticket Response': [], 
-						'PV Detail': ['item_code', 'purchase_order', 'po_detail', 'purchase_receipt', 'pr_detail', 'expense_head', 'cost_center'], 
+						'Purchase Invoice Item': ['item_code', 'purchase_order', 'po_detail', 'purchase_receipt', 'pr_detail', 'expense_head', 'cost_center'], 
 						'Timesheet Detail': ['project_name', 'task_id', 'customer_name'], 
-						'Holiday List Detail': [], 
+						'Holiday': [], 
 						'Workflow Rule Detail': [], 
 						'Module Def': ['module_seq', 'module_page'], 
-						'Term': [], 
+						'Terms and Conditions': [], 
 						'PF Detail': ['item_code'], 
 						'POS Setting': ['user', 'territory'], 
-						'QA Specification Detail': [], 
+						'Quality Inspection Reading': [], 
 						'Support Ticket': ['customer', 'allocated_to', 'status'], 
 						'Project Activity': ['project'], 
 						'Customer Group': ['lft', 'rgt', 'parent_customer_group'], 
-						'Return Detail': ['item_code'], 
+						'Sales and Purchase Return Item': ['item_code'], 
 						'Series Detail': [], 
 						'Event Role': ['role'], 
 						'Contact': ['employee_id'], 
-						'BOM Material': ['item_code', 'bom_no'], 
+						'BOM Item': ['item_code', 'bom_no'], 
 						'Invest 80 Declaration Detail': [], 
-						'PO Raw Material Detail': [], 
+						'Purchase Order Item Supplied': [], 
 						'Industry Type': [], 
 						'Declaration Detail': [], 
 						'Holiday List': ['fiscal_year'], 
 						'Sales Person': ['lft', 'rgt', 'parent_sales_person'], 
-						'RV Detail': ['item_code', 'sales_order', 'so_detail', 'delivery_note', 'dn_detail', 'cost_center', 'income_account'], 
+						'Sales Invoice Item': ['item_code', 'sales_order', 'so_detail', 'delivery_note', 'dn_detail', 'cost_center', 'income_account'], 
 						'Module Def Item': [], 
 						'TDS Category': [], 
 						'DocTrigger': [], 
 						'Print Format': ['standard'], 
-						'Installed Item Details': ['prevdoc_docname', 'item_code'], 
+						'Installation Note Item': ['prevdoc_docname', 'item_code'], 
 						'Form 16A Tax Detail': [], 
 						'Event': ['event_date', 'event_type'], 
 						'Currency': [], 
-						'Service Quotation Detail': ['item_code'], 
 						'Warehouse Type': ['warehouse_type'], 
 						'Sales BOM': ['item_group'], 
 						'IT Checklist': ['employee'], 
-						'Purchase Other Charges': [], 
+						'Purchase Taxes and Charges Master': [], 
 						'Company': [], 
 						'Call Log': [], 
-						'Professional Training Details': [], 
+						'Employee Training': [], 
 						'Warehouse': ['warehouse_type'], 
 						'Competitor': [], 
 						'Mode of Payment': [], 
@@ -168,19 +167,19 @@
 						'Cost Center': ['lft', 'rgt', 'parent_cost_center'], 
 						'Timesheet': ['status', 'timesheet_date'], 
 						'Form 16A': ['party_no'], 
-						'Sales BOM Detail': ['item_code'], 
+						'Sales BOM Item': ['item_code'], 
 						'Answer': ['question'], 
 						'Supplier': [], 
 						'Installation Note': ['delivery_note_no', 'customer', 'inst_date'], 
-						'Expense Voucher': ['approval_status', 'employee'], 
+						'Expense Claim': ['approval_status', 'employee'], 
 						'Target Detail': ['from_date', 'to_date', 'fiscal_year'], 
 						'Page Role': ['role'], 
 						'Partner Target Detail': ['fiscal_year', 'item_group'], 
 						'Shipping Address': ['customer'], 
-						'Indent Detail': ['item_code', 'warehouse'], 
+						'Purchase Request Item': ['item_code', 'warehouse'], 
 						'TDS Payment Detail': [], 
 						'Market Segment': [], 
-						'Comment Widget Record': [], 
+						'Comment': [], 
 						'Service Order Detail': ['item_code', 'prevdoc_docname'], 
 						'TDS Payment': ['from_date', 'to_date', 'tds_category'], 
 						'Lead Email CC Detail': [], 
@@ -188,28 +187,28 @@
 						'Salary Slip': ['month', 'year', 'employee'], 
 						'Maintenance Schedule Detail': ['item_code', 'scheduled_date'], 
 						'Employment Type': [], 
-						'Advance Allocation Detail': ['journal_voucher'], 
+						'Purchase Invoice Advance': ['journal_voucher'], 
 						'Quotation': ['customer', 'transaction_date'], 
-						'Deduction Detail': ['d_type'], 
-						'Bill Of Materials': ['item', 'project_name'], 
+						'Salary Structure Deduction': ['d_type'], 
+						'BOM': ['item', 'project_name'], 
 						'Earning Type': [], 
 						'Designation': [], 
 						'BOM Replace Utility Detail': ['parent_bom'], 
 						'Question': [], 
 						'Stock Ledger Entry': ['item_code', 'warehouse', 'posting_date', 'posting_time'], 
-						'Educational Qualifications Detail': [], 
+						'Employee Education': [], 
 						'BOM Operation': [], 
 						'Item Group': ['lft', 'rgt', 'parent_item_group'], 
 						'Workflow Action Detail': [], 
 						'User Setting-Profile': [], 
 						'Customer Issue': ['item_code', 'customer', 'complaint_date'], 
 						'Feed': [], 
-						'Purchase Tax Detail': ['account_head'], 
+						'Purchase Taxes and Charges': ['account_head'], 
 						'GL Mapper Detail': [], 
 						'TDS Detail': [], 
 						'PRO Detail': ['item_code', 'source_warehouse'], 
 						'DocType Label': [], 
-						'Receivable Voucher': ['posting_date', 'debit_to', 'project_name'], 
+						'Sales Invoice': ['posting_date', 'debit_to', 'project_name'], 
 						'GL Entry': ['posting_date', 'account', 'voucher_no'], 
 						'Serial No': ['status', 'warehouse'], 
 						'Delivery Note': ['posting_date', 'project_name', 'customer'], 
@@ -221,23 +220,23 @@
 						'GL Mapper': [], 
 						'Announcement': [], 
 						'Call Log Details': [], 
-						'Enquiry': ['lead', 'customer', 'transaction_date'], 
-						'Flat BOM Detail': ['item_code'], 
-						'Landed Cost Detail': ['account_head'], 
+						'Opportunity': ['lead', 'customer', 'transaction_date'], 
+						'BOM Explosion Item': ['item_code'], 
+						'Landed Cost Item': ['account_head'], 
 						'Field Mapper Detail': ['from_field', 'to_field'], 
 						'File Data': [], 
 						'Question Tag': [], 
-						'QA Inspection Report': ['item_code', 'purchase_receipt_no', 'report_date'], 
-						'Appraisal Detail': [], 
+						'Quality Inspection': ['item_code', 'purchase_receipt_no', 'report_date'], 
+						'Appraisal Goal': [], 
 						'POS Settings': ['territory'], 
-						'Delivery Note Detail': ['item_code', 'prevdoc_docname', 'warehouse', 'prevdoc_detail_docname'], 
+						'Delivery Note Item': ['item_code', 'prevdoc_docname', 'warehouse', 'prevdoc_detail_docname'], 
 						'Profile': [], 
 						'Other Income Detail': [], 
 						'Product': ['item_code', 'stock_warehouse'], 
-						'PO Detail': ['prevdoc_docname', 'item_code', 'prevdoc_detail_docname', 'warehouse'], 
+						'Purchase Order Item': ['prevdoc_docname', 'item_code', 'prevdoc_detail_docname', 'warehouse'], 
 						'Module Def Role': ['role'], 
 						'Sales Team': ['sales_person'], 
-						'Enquiry Detail': ['item_code'], 
+						'Opportunity Item': ['item_code'], 
 						'DocType': [], 
 						'Compaint Note': ['nature_of_complaint', 'compliance_date'], 
 						'Maintenance Schedule': ['customer', 'sales_order_no'], 
@@ -246,39 +245,38 @@
 						'Purchase Receipt': ['posting_date', 'supplier', 'project_name'], 
 						'Complaint Detail': ['item_name'], 
 						'Address': ['customer', 'supplier'], 
-						'Ticket': ['request_date', 'allocated_to', 'category', 'customer', 'project'], 
+						'Task': ['request_date', 'allocated_to', 'category', 'customer', 'project'], 
 						'Territory Target Detail': ['month', 'fiscal_year'], 
-						'LC PR Detail': ['purchase_receipt_no'], 
+						'Landed Cost Purchase Receipt': ['purchase_receipt_no'], 
 						'Customer': ['customer_name', 'customer_group'], 
-						'PP SO Detail': [], 
-						'PP Detail': ['document_date', 'item_code', 'parent_item'], 
+						'Production Plan Sales Order': [], 
+						'Production Plan Item': ['document_date', 'item_code', 'parent_item'], 
 						'User Setting-Role Permission': [], 
 						'Custom Script': ['dt'], 
 						'Country': [], 
 						'DefaultValue': [], 
-						'Ledger Detail': [], 
-						'SS Earning Detail': ['e_type'], 
+						'Multi Ledger Report Detail': [], 
+						'Salary Slip Earning': ['e_type'], 
 						'SMS Log': [], 
-						'Expense Type': [], 
+						'Expense Claim Type': [], 
 						'Item': ['item_group'], 
 						'Fiscal Year': [], 
-						'ToDo Item': ['role'], 
-						'Payable Voucher': ['posting_date', 'credit_to', 'project_name', 'supplier'], 
+						'ToDo': ['role'], 
+						'Purchase Invoice': ['posting_date', 'credit_to', 'project_name', 'supplier'], 
 						'Journal Voucher Detail': ['account', 'against_voucher', 'against_invoice', 'against_jv'], 
 						'Online Contact': [], 
 						'Page': ['module'], 
 						'Leave Application': ['employee', 'leave_type', 'from_date', 'to_date'], 
-						'Expense Voucher Detail': ['expense_type'], 
+						'Expense Claim Detail': ['expense_type'], 
 						'Maintenance Visit': ['customer', 'sales_order_no', 'customer_issue_no'], 
-						'Ref Rate Detail': ['price_list_name', 'ref_currency'], 
-						'Receiver Detail': [], 
+						'Item Price': ['price_list_name', 'ref_currency'], 
+						'SMS Receiver': [], 
 						'Naming Series Options': ['doc_type'], 
 						'Activity Type': [], 
-						'PRO PP Detail': [], 
-						'Delivery Note Packing Detail': ['item_code', 'parent_item', 'warehouse'], 
+						'Delivery Note Packing Item': ['item_code', 'parent_item', 'warehouse'], 
 						'Workflow Rule': ['select_form'], 
 						'File': ['file_group'], 
-						'Item Maintenance Detail': ['item_code', 'start_date', 'end_date', 'prevdoc_docname'], 
+						'Maintenance Schedule Item': ['item_code', 'start_date', 'end_date', 'prevdoc_docname'], 
 						'Purchase Order': ['supplier', 'project_name', 'posting_date'], 
 						'Print Heading': [], 
 						'TDS Rate Detail': ['category']
diff --git a/erpnext/patches/before_jan_2012/install_print_formats.py b/erpnext/patches/before_jan_2012/install_print_formats.py
index 3a18aae..92bd60c 100644
--- a/erpnext/patches/before_jan_2012/install_print_formats.py
+++ b/erpnext/patches/before_jan_2012/install_print_formats.py
@@ -39,7 +39,7 @@
 pf_to_install = prepare_pf_dict([
 	{
 		'name' : 'Sales Invoice',
-		'doc_type' : 'Receivable Voucher',
+		'doc_type' : 'Sales Invoice',
 		'module' : 'Accounts'
 	},
 	{
@@ -68,7 +68,7 @@
 	"""
 		Install print formats
 	"""
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('core', 'doctype', 'print_format')
 	
 	#copy_doctype_to_pfs()
diff --git a/erpnext/patches/before_jan_2012/lcw_patch.py b/erpnext/patches/before_jan_2012/lcw_patch.py
index b274069..dbf2f6d 100644
--- a/erpnext/patches/before_jan_2012/lcw_patch.py
+++ b/erpnext/patches/before_jan_2012/lcw_patch.py
@@ -16,10 +16,10 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	
 	
 	reload_doc('stock', 'doctype', 'landed_cost_wizard')
 	reload_doc('stock', 'doctype', 'lc_pr_detail')
 	
-	webnotes.conn.sql("delete from `tabDocField` where parent ='LC PR Detail' and fieldname in ('purchase_receipt_no', 'include_in_landed_cost')")
+	webnotes.conn.sql("delete from `tabDocField` where parent ='Landed Cost Purchase Receipt' and fieldname in ('purchase_receipt_no', 'include_in_landed_cost')")
diff --git a/erpnext/patches/before_jan_2012/p1.py b/erpnext/patches/before_jan_2012/p1.py
index ef8ca4c..74d8470 100644
--- a/erpnext/patches/before_jan_2012/p1.py
+++ b/erpnext/patches/before_jan_2012/p1.py
@@ -16,5 +16,5 @@
 
 def execute():
 	import webnotes
-	if not webnotes.conn.sql("select name from tabDocFormat where parent = 'Receivable Voucher' and format != 'POS Invoice'"):
-		webnotes.conn.sql("update tabDocType set default_print_format = 'Standard' where name =  'Receivable Voucher'")
+	if not webnotes.conn.sql("select name from tabDocFormat where parent = 'Sales Invoice' and format != 'POS Invoice'"):
+		webnotes.conn.sql("update tabDocType set default_print_format = 'Standard' where name =  'Sales Invoice'")
diff --git a/erpnext/patches/before_jan_2012/packing_slip.py b/erpnext/patches/before_jan_2012/packing_slip.py
index 23c34d9d..7fe2d5d 100644
--- a/erpnext/patches/before_jan_2012/packing_slip.py
+++ b/erpnext/patches/before_jan_2012/packing_slip.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('stock', 'doctype', 'delivery_note_detail')
 	reload_doc('stock', 'Print Format', 'Delivery Note Packing List Wise')
 	
diff --git a/erpnext/patches/before_jan_2012/price_list_patch.py b/erpnext/patches/before_jan_2012/price_list_patch.py
index ce2ff4a..d5d673e 100644
--- a/erpnext/patches/before_jan_2012/price_list_patch.py
+++ b/erpnext/patches/before_jan_2012/price_list_patch.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 
 	reload_doc('accounts', 'doctype', 'receivable_voucher')
 	reload_doc('stock', 'doctype', 'delivery_note')
@@ -25,5 +25,5 @@
 	reload_doc('setup', 'doctype', 'manage_account')
 
 
-	for d in ['Receivable Voucher', 'Delivery Note', 'Sales Order', 'Quotation']:
+	for d in ['Sales Invoice', 'Delivery Note', 'Sales Order', 'Quotation']:
 		webnotes.conn.sql("update `tab%s` set price_list_currency = currency, plc_conversion_rate = conversion_rate" % d)
diff --git a/erpnext/patches/before_jan_2012/project_patch.py b/erpnext/patches/before_jan_2012/project_patch.py
index f4b0ea6..8090029 100644
--- a/erpnext/patches/before_jan_2012/project_patch.py
+++ b/erpnext/patches/before_jan_2012/project_patch.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	sql = webnotes.conn.sql
 	
 	# Reload item table
@@ -25,10 +25,10 @@
 	reload_doc('stock', 'doctype', 'purchase_receipt_detail')
 	
 	# copy project value from parent to child
-	sql("update `tabPO Detail` t1, `tabPurchase Order` t2 set t1.project_name = t2.project_name where t1.parent = t2.name and ifnull(t1.project_name, '') = ''")
-	sql("update `tabPV Detail` t1, `tabPayable Voucher` t2 set t1.project_name = t2.project_name where t1.parent = t2.name and ifnull(t1.project_name, '') = ''")
-	sql("update `tabPurchase Receipt Detail` t1, `tabPurchase Receipt` t2 set t1.project_name = t2.project_name where t1.parent = t2.name and ifnull(t1.project_name, '') = ''")
+	sql("update `tabPurchase Order Item` t1, `tabPurchase Order` t2 set t1.project_name = t2.project_name where t1.parent = t2.name and ifnull(t1.project_name, '') = ''")
+	sql("update `tabPurchase Invoice Item` t1, `tabPurchase Invoice` t2 set t1.project_name = t2.project_name where t1.parent = t2.name and ifnull(t1.project_name, '') = ''")
+	sql("update `tabPurchase Receipt Item` t1, `tabPurchase Receipt` t2 set t1.project_name = t2.project_name where t1.parent = t2.name and ifnull(t1.project_name, '') = ''")
 	
 	# delete project from parent
-	sql("delete from `tabDocField` where fieldname = 'project_name' and parent in ('Purchase Order', 'Purchase Receipt', 'Payable Voucher')")
+	sql("delete from `tabDocField` where fieldname = 'project_name' and parent in ('Purchase Order', 'Purchase Receipt', 'Purchase Invoice')")
 
diff --git a/erpnext/patches/before_jan_2012/reload_address.py b/erpnext/patches/before_jan_2012/reload_address.py
index 3ef80d8..ae68f6f 100644
--- a/erpnext/patches/before_jan_2012/reload_address.py
+++ b/erpnext/patches/before_jan_2012/reload_address.py
@@ -16,6 +16,6 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 
 	reload_doc('utilities', 'doctype', 'address')
diff --git a/erpnext/patches/before_jan_2012/reload_bom.py b/erpnext/patches/before_jan_2012/reload_bom.py
index f925bc6..cbacce1 100644
--- a/erpnext/patches/before_jan_2012/reload_bom.py
+++ b/erpnext/patches/before_jan_2012/reload_bom.py
@@ -16,6 +16,6 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 
 	reload_doc('production', 'doctype', 'bill_of_materials')
diff --git a/erpnext/patches/before_jan_2012/reload_doclayer.py b/erpnext/patches/before_jan_2012/reload_doclayer.py
index 4ab077e..6c694a0 100644
--- a/erpnext/patches/before_jan_2012/reload_doclayer.py
+++ b/erpnext/patches/before_jan_2012/reload_doclayer.py
@@ -15,17 +15,17 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 """
-	Reload DocLayer, DocLayerField and Print Format doctypes
+	Reload Customize Form, Customize Form Field and Print Format doctypes
 """
 def execute():
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('core', 'doctype', 'print_format')
 	reload_doc('core', 'doctype', 'doclayer')
 	reload_doc('core', 'doctype', 'doclayerfield')
 	reload_doc('accounts', 'doctype', 'gl_entry')
 	from webnotes.model.doc import Document
 	d = Document('DocType Label')
-	d.dt = "DocLayer"
+	d.dt = "Customize Form"
 	d.dt_label = "Customize Form View"
 	d.save(1)
 	from webnotes.session_cache import clear
diff --git a/erpnext/patches/before_jan_2012/reload_email_digest.py b/erpnext/patches/before_jan_2012/reload_email_digest.py
index 13a2614..15cbfc3 100644
--- a/erpnext/patches/before_jan_2012/reload_email_digest.py
+++ b/erpnext/patches/before_jan_2012/reload_email_digest.py
@@ -15,5 +15,5 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 def execute():
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('Setup', 'DocType', 'Email Digest')
diff --git a/erpnext/patches/before_jan_2012/reload_employeewise_balance_leave_report.py b/erpnext/patches/before_jan_2012/reload_employeewise_balance_leave_report.py
index b60d3d4..53183cb 100644
--- a/erpnext/patches/before_jan_2012/reload_employeewise_balance_leave_report.py
+++ b/erpnext/patches/before_jan_2012/reload_employeewise_balance_leave_report.py
@@ -16,5 +16,5 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('hr', 'search_criteria', 'employeewise_balance_leave_report')
diff --git a/erpnext/patches/before_jan_2012/reload_flat_bom.py b/erpnext/patches/before_jan_2012/reload_flat_bom.py
index a46ad5e..020bd7e 100644
--- a/erpnext/patches/before_jan_2012/reload_flat_bom.py
+++ b/erpnext/patches/before_jan_2012/reload_flat_bom.py
@@ -16,7 +16,7 @@
 
 def execute():
 	from webnotes.modules import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 
 	reload_doc('production', 'doctype', 'flat_bom_detail')
 	reload_doc('production', 'doctype', 'bom_material')
diff --git a/erpnext/patches/before_jan_2012/reload_gl_mapper.py b/erpnext/patches/before_jan_2012/reload_gl_mapper.py
index 27f2c58..c43ab67 100644
--- a/erpnext/patches/before_jan_2012/reload_gl_mapper.py
+++ b/erpnext/patches/before_jan_2012/reload_gl_mapper.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	
 	# reload jv gl mapper
 	reload_doc('accounts', 'GL Mapper', 'Journal Voucher')
diff --git a/erpnext/patches/before_jan_2012/reload_lc_wizard.py b/erpnext/patches/before_jan_2012/reload_lc_wizard.py
index 7645419..ac65177 100644
--- a/erpnext/patches/before_jan_2012/reload_lc_wizard.py
+++ b/erpnext/patches/before_jan_2012/reload_lc_wizard.py
@@ -16,10 +16,10 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	from webnotes.model import delete_doc
 
 	delete_doc('DocType', 'Landed Cost Wizard')
-	delete_doc('DocType', 'LC PR Detail')
+	delete_doc('DocType', 'Landed Cost Purchase Receipt')
 	reload_doc('stock', 'doctype', 'landed_cost_wizard')
 	reload_doc('stock', 'doctype', 'lc_pr_detail')
diff --git a/erpnext/patches/before_jan_2012/reload_print_format.py b/erpnext/patches/before_jan_2012/reload_print_format.py
index 37b83a6..cac8d6e 100644
--- a/erpnext/patches/before_jan_2012/reload_print_format.py
+++ b/erpnext/patches/before_jan_2012/reload_print_format.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	from webnotes.model.doc import addchild
 	from webnotes.model.code import get_obj
 	reload_doc('stock', 'Print Format', 'Delivery Note Packing List Wise')
@@ -26,8 +26,8 @@
 	reload_doc('accounts', 'Print Format', 'Form 16A Print Format')
 	reload_doc('accounts', 'Print Format', 'Cheque Printing Format')
 	
-	if not webnotes.conn.sql("select format from `tabDocFormat` where name = 'POS Invoice' and parent = 'Receivable Voucher'"):		
-		dt_obj = get_obj('DocType', 'Receivable Voucher', with_children = 1)
+	if not webnotes.conn.sql("select format from `tabDocFormat` where name = 'POS Invoice' and parent = 'Sales Invoice'"):		
+		dt_obj = get_obj('DocType', 'Sales Invoice', with_children = 1)
 		ch = addchild(dt_obj.doc, 'formats', 'DocFormat', 1)
 		ch.format = 'POS Invoice'
 		ch.save(1)
diff --git a/erpnext/patches/before_jan_2012/reload_project_task.py b/erpnext/patches/before_jan_2012/reload_project_task.py
index 14d39fd..b21135b 100644
--- a/erpnext/patches/before_jan_2012/reload_project_task.py
+++ b/erpnext/patches/before_jan_2012/reload_project_task.py
@@ -18,6 +18,6 @@
 	Reload Task Doctype of Project Module
 """
 def execute():
-	from webnotes.modules.module_manager import reload_doc
-	reload_doc('Projects', 'DocType', 'Ticket')
+	from webnotes.modules import reload_doc
+	reload_doc('Projects', 'DocType', 'Task')
 
diff --git a/erpnext/patches/before_jan_2012/reload_reco.py b/erpnext/patches/before_jan_2012/reload_reco.py
index 9335992..782fc7f 100644
--- a/erpnext/patches/before_jan_2012/reload_reco.py
+++ b/erpnext/patches/before_jan_2012/reload_reco.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	
 	reload_doc('stock', 'doctype', 'stock_reconciliation')
 	webnotes.conn.sql("delete from `tabDocField` where (label in ('Validate Data', 'Attachment HTML', 'Attachment') or fieldname in ('next_step', 'company', 'fiscal_year', 'amendment_date')) and parent = 'Stock Reconciliation'")
diff --git a/erpnext/patches/before_jan_2012/reload_rv.py b/erpnext/patches/before_jan_2012/reload_rv.py
index f41db49..4365563 100644
--- a/erpnext/patches/before_jan_2012/reload_rv.py
+++ b/erpnext/patches/before_jan_2012/reload_rv.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	from webnotes.model.code import get_obj
 
 	reload_doc('accounts', 'doctype', 'receivable_voucher')
diff --git a/erpnext/patches/before_jan_2012/reload_support_ticket.py b/erpnext/patches/before_jan_2012/reload_support_ticket.py
index 803754f..f889687 100644
--- a/erpnext/patches/before_jan_2012/reload_support_ticket.py
+++ b/erpnext/patches/before_jan_2012/reload_support_ticket.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('Support', 'DocType', 'Support Ticket')
 	from webnotes.model.code import get_obj
 	get_obj('DocType', 'Support Ticket').validate()
diff --git a/erpnext/patches/before_jan_2012/repost_stock.py b/erpnext/patches/before_jan_2012/repost_stock.py
index 2c62039..d8267ff 100644
--- a/erpnext/patches/before_jan_2012/repost_stock.py
+++ b/erpnext/patches/before_jan_2012/repost_stock.py
@@ -24,7 +24,7 @@
     sr = sql("""select name, item_code, purchase_document_no from `tabSerial No`
             where docstatus = 1 and purchase_document_type = 'Purchase Receipt'""")
     for d in sr:
-        val_rate = sql("""select valuation_rate from `tabPurchase Receipt Detail`
+        val_rate = sql("""select valuation_rate from `tabPurchase Receipt Item`
             where item_code = %s and parent = %s""", (d[1], d[2]))
         sql("""update `tabSerial No` set purchase_rate = %s where name = %s""",
            (val_rate and flt(val_rate[0][0]) or 0, d[0]))
diff --git a/erpnext/patches/before_jan_2012/sal_man_patch.py b/erpnext/patches/before_jan_2012/sal_man_patch.py
index b8f5301..626d2e3 100644
--- a/erpnext/patches/before_jan_2012/sal_man_patch.py
+++ b/erpnext/patches/before_jan_2012/sal_man_patch.py
@@ -17,7 +17,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	sql = webnotes.conn.sql
 
 	reload_doc('hr', 'doctype', 'salary_manager')
diff --git a/erpnext/patches/before_jan_2012/task_email_notification.py b/erpnext/patches/before_jan_2012/task_email_notification.py
index 8d1a078..9f7669a 100644
--- a/erpnext/patches/before_jan_2012/task_email_notification.py
+++ b/erpnext/patches/before_jan_2012/task_email_notification.py
@@ -16,5 +16,5 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('projects', 'doctype', 'ticket')
diff --git a/erpnext/patches/jan_mar_2012/allocated_to_profile.py b/erpnext/patches/jan_mar_2012/allocated_to_profile.py
index 32c7a2c..ef0ee97 100644
--- a/erpnext/patches/jan_mar_2012/allocated_to_profile.py
+++ b/erpnext/patches/jan_mar_2012/allocated_to_profile.py
@@ -32,5 +32,5 @@
 		AND label='Make Maintenance Visit'
 	""")
 
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('support', 'doctype', 'customer_issue')
diff --git a/erpnext/patches/jan_mar_2012/apps/todo_item.py b/erpnext/patches/jan_mar_2012/apps/todo_item.py
index 6eec6fd..f9a02bd 100644
--- a/erpnext/patches/jan_mar_2012/apps/todo_item.py
+++ b/erpnext/patches/jan_mar_2012/apps/todo_item.py
@@ -16,7 +16,7 @@
 
 def execute():
 	"""
-		* Reload ToDo Item
+		* Reload ToDo
 	"""
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('utilities', 'doctype', 'todo_item')
diff --git a/erpnext/patches/jan_mar_2012/customer_address_contact_patch.py b/erpnext/patches/jan_mar_2012/customer_address_contact_patch.py
index 4671143..32a2125 100644
--- a/erpnext/patches/jan_mar_2012/customer_address_contact_patch.py
+++ b/erpnext/patches/jan_mar_2012/customer_address_contact_patch.py
@@ -26,7 +26,7 @@
 	patch_primary_address()
 
 def reload_sc():
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('selling', 'search_criteria', 'customer_address_contact')
 	reload_doc('selling', 'Module Def', 'Selling')
 
diff --git a/erpnext/patches/jan_mar_2012/deploy_packing_slip.py b/erpnext/patches/jan_mar_2012/deploy_packing_slip.py
index 7a28ef8..d349dbc 100644
--- a/erpnext/patches/jan_mar_2012/deploy_packing_slip.py
+++ b/erpnext/patches/jan_mar_2012/deploy_packing_slip.py
@@ -15,7 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import webnotes
-from webnotes.modules.module_manager import reload_doc
+from webnotes.modules import reload_doc
 
 def execute():
 	delete_fields_dn_detail()
@@ -33,7 +33,7 @@
 			'print_packing_slip', 'shipping_mark', 'packed_by',
 			'packing_checked_by', 'Text', 'pack_size'
 		],
-		'Delivery Note Detail': [
+		'Delivery Note Item': [
 			'pack_no', 'pack_gross_wt', 'weight_uom', 
 			'pack_nett_wt', 'no_of_packs', 'pack_unit', 'pack_size', 
 			'packed_by', 'packing_checked_by'
diff --git a/erpnext/patches/jan_mar_2012/doclabel_in_doclayer.py b/erpnext/patches/jan_mar_2012/doclabel_in_doclayer.py
index a6f7a7c..9091e95 100644
--- a/erpnext/patches/jan_mar_2012/doclabel_in_doclayer.py
+++ b/erpnext/patches/jan_mar_2012/doclabel_in_doclayer.py
@@ -22,7 +22,7 @@
 	"""
 	webnotes.conn.sql("""
 		UPDATE `tabDocField` SET options=NULL
-		WHERE parent='DocLayer' AND fieldname='doc_type'
+		WHERE parent='Customize Form' AND fieldname='doc_type'
 	""")
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('core', 'doctype', 'doclayer')
diff --git a/erpnext/patches/jan_mar_2012/dt_map_fix.py b/erpnext/patches/jan_mar_2012/dt_map_fix.py
index f669009..37732df 100644
--- a/erpnext/patches/jan_mar_2012/dt_map_fix.py
+++ b/erpnext/patches/jan_mar_2012/dt_map_fix.py
@@ -1,6 +1,6 @@
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	webnotes.conn.sql("delete from `tabField Mapper Detail` where from_field = 'transaction_date' and parent in ('Sales Order-Delivery Note', 'Purchase Order-Purchase Receipt')")
 
 	reload_doc('stock', 'DocType Mapper', 'Sales Order-Delivery Note')
diff --git a/erpnext/patches/jan_mar_2012/email_settings_reload.py b/erpnext/patches/jan_mar_2012/email_settings_reload.py
index ec6f05d..85c683e 100644
--- a/erpnext/patches/jan_mar_2012/email_settings_reload.py
+++ b/erpnext/patches/jan_mar_2012/email_settings_reload.py
@@ -25,5 +25,5 @@
 		WHERE parent = 'Email Settings' AND fieldname = 'mail_port'
 	""")
 
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('setup', 'doctype', 'email_settings')
diff --git a/erpnext/patches/jan_mar_2012/jan_production_patches.py b/erpnext/patches/jan_mar_2012/jan_production_patches.py
index d57fb9e..65dd5a8 100644
--- a/erpnext/patches/jan_mar_2012/jan_production_patches.py
+++ b/erpnext/patches/jan_mar_2012/jan_production_patches.py
@@ -20,7 +20,7 @@
 		Patch includes:
 		* Reload of Stock Entry Detail
 	"""
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 
 	reload_doc('stock', 'doctype', 'stock_entry_detail')
 	reload_doc('stock', 'doctype', 'item_supplier')
@@ -28,13 +28,13 @@
 
 	webnotes.conn.sql("""
 		UPDATE tabDocField SET fieldtype='Float'
-		WHERE parent='Bill Of Materials'
+		WHERE parent='BOM'
 		AND fieldname IN ('operating_cost', 'raw_material_cost', 'total_cost')
 	""")
 
 	webnotes.conn.sql("""
 		UPDATE tabDocField SET fieldtype='Float'
-		WHERE parent='BOM Material'
+		WHERE parent='BOM Item'
 		AND fieldname IN ('qty', 'rate', 'amount', 'qty_consumed_per_unit')
 	""")
 	
diff --git a/erpnext/patches/jan_mar_2012/label_cleanup.py b/erpnext/patches/jan_mar_2012/label_cleanup.py
index b40f36f..642140b 100644
--- a/erpnext/patches/jan_mar_2012/label_cleanup.py
+++ b/erpnext/patches/jan_mar_2012/label_cleanup.py
@@ -1,29 +1,19 @@
 def execute():
 	import webnotes
 	from webnotes.model import delete_doc
-	from webnotes.modules.module_manager import reload_doc
-
-	dt = {
-		'selling':	['quotation', 'sales_order', 'quotation_detail', 'sales_order_detail'], 
-		'stock':	['delivery_note', 'delivery_note_detail', 'purchase_receipt', 'purchase_receipt_detail'],
-		'accounts': ['receivable_voucher', 'payable_voucher', 'rv_detail', 'pv_detail', 'rv_tax_detail', 'purchase_tax_detail'],
-		'buying':	['purchase_order', 'po_detail']
-	}
-	for m in dt:
-		for d in dt[m]:
-			reload_doc(m, 'doctype', d)
+	from webnotes.modules import reload_doc
 
 
 	webnotes.conn.sql("""delete from `tabDocField` 
 		where label in ('Note1', 'OT Notes', 'Note', 'Note HTML', 'Rates HTML') 
-		and parent in ('Quotation', 'Sales Order', 'Delivery Note', 'Receivable Voucher', 'Purchase Order')""")
+		and parent in ('Quotation', 'Sales Order', 'Delivery Note', 'Sales Invoice', 'Purchase Order')""")
 
 
 	del_flds = {
-		'Sales Order Detail':	"'delivery_date', 'confirmation_date'", 
+		'Sales Order Item':	"'delivery_date', 'confirmation_date'", 
 		'Delivery Note':		"'supplier', 'supplier_address', 'purchase_receipt_no', 'purchase_order_no', 'transaction_date'",
-		'Receivable Voucher':	"'voucher_date'",
-		'Payable Voucher':		"'voucher_date'",
+		'Sales Invoice':	"'voucher_date'",
+		'Purchase Invoice':		"'voucher_date'",
 		'Purchase Receipt':		"'transaction_date'"
 	} 
 
diff --git a/erpnext/patches/jan_mar_2012/map_conversion_rate.py b/erpnext/patches/jan_mar_2012/map_conversion_rate.py
index 0b947b3..dcb212d 100644
--- a/erpnext/patches/jan_mar_2012/map_conversion_rate.py
+++ b/erpnext/patches/jan_mar_2012/map_conversion_rate.py
@@ -33,10 +33,10 @@
 			}]
 		},
 		{
-			'parent': 'Purchase Order-Payable Voucher',
+			'parent': 'Purchase Order-Purchase Invoice',
 			'map': [{
 				'from_table': 'Purchase Order',
-				'to_table': 'Payable Voucher',
+				'to_table': 'Purchase Invoice',
 				'fields': [['conversion_rate', 'conversion_rate', 'Yes']]
 			}]
 		},
diff --git a/erpnext/patches/jan_mar_2012/mapper_fix.py b/erpnext/patches/jan_mar_2012/mapper_fix.py
index c651c5e..a9b1a9b 100644
--- a/erpnext/patches/jan_mar_2012/mapper_fix.py
+++ b/erpnext/patches/jan_mar_2012/mapper_fix.py
@@ -1,3 +1,3 @@
 def execute():
 	import webnotes
-	webnotes.conn.sql("delete from `tabTable Mapper Detail` where to_table = 'RV Detail' and parent = 'Delivery Note-Receivable Voucher' and validation_logic = 'amount > ifnull(billed_amt, 0) and docstatus = 1'")
+	webnotes.conn.sql("delete from `tabTable Mapper Detail` where to_table = 'Sales Invoice Item' and parent = 'Delivery Note-Sales Invoice' and validation_logic = 'amount > ifnull(billed_amt, 0) and docstatus = 1'")
diff --git a/erpnext/patches/jan_mar_2012/pending_patches.py b/erpnext/patches/jan_mar_2012/pending_patches.py
index 351200f..c21030a 100644
--- a/erpnext/patches/jan_mar_2012/pending_patches.py
+++ b/erpnext/patches/jan_mar_2012/pending_patches.py
@@ -17,11 +17,10 @@
 def execute():
 	import webnotes
 	from webnotes.model.code import get_obj
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	sql = webnotes.conn.sql
 
 	reload_doc('hr', 'doctype', 'appraisal')
-	reload_doc('hr', 'doctype', 'appraisal_detail')
 
 	sql("update `tabDocField` set `hidden` = 0 where fieldname = 'group_or_ledger' and parent = 'Cost Center'")
 	sql("update tabDocPerm set amend = 0 where parent = 'Salary Structure'")
@@ -31,21 +30,14 @@
 		sql("delete from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1")
 	if sql("select count(name) from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1:
 		sql("delete from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1")
-	
-	reload_doc('accounts', 'doctype', 'internal_reconciliation')
-	reload_doc('accounts', 'doctype', 'ir_payment_detail')
-	reload_doc('accounts', 'Module Def', 'Accounts')
+			
 		
-
-		
-	if sql("select count(name) from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button'")[0][0] > 1:
-		sql("delete from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button' limit 1")
+	if sql("select count(name) from `tabDocField` where label = 'Get Specification Details' and parent = 'Quality Inspection' and fieldtype = 'Button'")[0][0] > 1:
+		sql("delete from `tabDocField` where label = 'Get Specification Details' and parent = 'Quality Inspection' and fieldtype = 'Button' limit 1")
 	
 	reload_doc('stock', 'DocType Mapper', 'Purchase Order-Purchase Receipt')
 		
 	reload_doc('accounts', 'doctype', 'cost_center')
-	reload_doc('stock', 'Module Def', 'Stock')
-	sql("delete from `tabModule Def Item` where display_name = 'Serial No' and parent = 'Support'")
 	sql("update `tabDocType` set subject = 'Item Code: %(item_code)s, Warehouse: %(warehouse)s' where name = 'Serial No'")
 
 	# Patch for adding packing related columns (packed by, checked by, shipping mark etc)
diff --git a/erpnext/patches/jan_mar_2012/print_hide_totals.py b/erpnext/patches/jan_mar_2012/print_hide_totals.py
index 4299cb4..bf16a77 100644
--- a/erpnext/patches/jan_mar_2012/print_hide_totals.py
+++ b/erpnext/patches/jan_mar_2012/print_hide_totals.py
@@ -23,7 +23,7 @@
 		Uncheck print_hide for fields:
 			net_total, grand_total_export and rounded_total_export
 		For DocType(s):
-			* Receivable Voucher
+			* Sales Invoice
 			* Sales Order
 			* Delivery Note
 			* Quotation
@@ -32,5 +32,5 @@
 		UPDATE tabDocField
 		SET print_hide = 0
 		WHERE fieldname IN ('net_total', 'grand_total_export', 'rounded_total_export')
-		AND parent IN ('Receivable Voucher', 'Sales Order', 'Delivery Note', 'Quotation')
+		AND parent IN ('Sales Invoice', 'Sales Order', 'Delivery Note', 'Quotation')
 	""")
diff --git a/erpnext/patches/jan_mar_2012/production_cleanup.py b/erpnext/patches/jan_mar_2012/production_cleanup.py
index d0a5879..e724ab8 100644
--- a/erpnext/patches/jan_mar_2012/production_cleanup.py
+++ b/erpnext/patches/jan_mar_2012/production_cleanup.py
@@ -16,16 +16,16 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	from webnotes.model import delete_doc
 	sql = webnotes.conn.sql
 	
 	# Production Planning Tool
 	#---------------------------------------------------------------
-	#delete_doc('DocType', 'PP Detail')
-	#delete_doc('DocType', 'PP SO Detail')
+	#delete_doc('DocType', 'Production Plan Item')
+	#delete_doc('DocType', 'Production Plan Sales Order')
 	#delete_doc('DocType', 'Production Planning Tool')
-	sql("delete from `tabDocField` where parent in ('Production Planning Tool', 'PP Detail', 'PP SO Detail')")
+	sql("delete from `tabDocField` where parent in ('Production Planning Tool', 'Production Plan Item', 'Production Plan Sales Order')")
 	
 	reload_doc('production', 'doctype', 'production_planning_tool')
 	reload_doc('production', 'doctype', 'pp_detail')
@@ -42,7 +42,7 @@
 	""")
 
 
-	# Bill Of Materials
+	# BOM
 	#---------------------------------------------------------------
 	reload_doc('production', 'doctype', 'bill_of_materials')
 	reload_doc('production', 'doctype', 'bom_material')
@@ -50,17 +50,17 @@
 	reload_doc('production', 'doctype', 'flat_bom_detail')
 
 	#copy values
-	sql("""update `tabBill Of Materials` set rm_cost_as_per = 'Valuation Rate', 
+	sql("""update `tabBOM` set rm_cost_as_per = 'Valuation Rate', 
 		raw_material_cost = dir_mat_as_per_mar,	total_cost = cost_as_per_mar, costing_date = cost_as_on""")
 
-	sql("update `tabBOM Material` set rate = moving_avg_rate, amount = amount_as_per_mar")
+	sql("update `tabBOM Item` set rate = moving_avg_rate, amount = amount_as_per_mar")
 
-	sql("update `tabFlat BOM Detail` set rate = moving_avg_rate, amount = amount_as_per_mar")
+	sql("update `tabBOM Explosion Item` set rate = moving_avg_rate, amount = amount_as_per_mar")
 
 
 
 	# delete depricated flds from bom
-	sql("""	delete from `tabDocField` where parent = 'Bill Of Materials' 
+	sql("""	delete from `tabDocField` where parent = 'BOM' 
 		and (
 			label in ('TreeView1', 'Set as Default BOM', 'Activate BOM', 'Inactivate BOM') 
 			or fieldname in ('cost_as_per_mar', 'cost_as_per_lpr', 'cost_as_per_sr', 'cost_as_on',
@@ -72,14 +72,14 @@
 	sql("delete from `tabDocField` where parent = 'BOM Operation' and fieldname in ('details', 'workstation_capacity')")
 
 	# delete depricated flds from bom material
-	sql("""delete from `tabDocField` where parent = 'BOM Material' 
+	sql("""delete from `tabDocField` where parent = 'BOM Item' 
 		and fieldname in ('dir_mat_as_per_mar', 'dir_mat_as_per_sr', 'dir_mat_as_per_lpr', 'operating_cost', 'value_as_per_mar', 
 			'value_as_per_sr', 'value_as_per_lpr', 'moving_avg_rate', 'standard_rate', 'last_purchase_rate', 'amount_as_per_sr', 
 			'amount_as_per_lpr', 'amount_as_per_mar')	
 	""")
 
 	# delete depricated flds from flat bom
-	sql("""delete from tabDocField where parent = 'Flat BOM Detail' 
+	sql("""delete from tabDocField where parent = 'BOM Explosion Item' 
 		and fieldname in ('moving_avg_rate', 'standard_rate', 'last_purchase_rate', 'amount_as_per_mar', 
 			'amount_as_per_sr', 'amount_as_per_lpr', 'flat_bom_no', 'bom_mat_no', 'is_pro_applicable')
 	""")
diff --git a/erpnext/patches/jan_mar_2012/reload_doctype.py b/erpnext/patches/jan_mar_2012/reload_doctype.py
index 51241b8..957864b 100644
--- a/erpnext/patches/jan_mar_2012/reload_doctype.py
+++ b/erpnext/patches/jan_mar_2012/reload_doctype.py
@@ -16,5 +16,5 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('core', 'doctype', 'doctype')
diff --git a/erpnext/patches/jan_mar_2012/reload_item.py b/erpnext/patches/jan_mar_2012/reload_item.py
index c45b818..e42b50b 100644
--- a/erpnext/patches/jan_mar_2012/reload_item.py
+++ b/erpnext/patches/jan_mar_2012/reload_item.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('stock', 'doctype', 'item')
 
 	webnotes.conn.sql("update `tabItem` set re_order_qty = min_order_qty")
diff --git a/erpnext/patches/jan_mar_2012/reload_mapper.py b/erpnext/patches/jan_mar_2012/reload_mapper.py
index a6e3102..987d4a7 100644
--- a/erpnext/patches/jan_mar_2012/reload_mapper.py
+++ b/erpnext/patches/jan_mar_2012/reload_mapper.py
@@ -1,9 +1,9 @@
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 
 	reload_doc('stock', 'DocType Mapper', 'Sales Order-Delivery Note')
-	reload_doc('accounts', 'DocType Mapper', 'Sales Order-Receivable Voucher')
-	reload_doc('accounts', 'DocType Mapper', 'Delivery Note-Receivable Voucher')
+	reload_doc('accounts', 'DocType Mapper', 'Sales Order-Sales Invoice')
+	reload_doc('accounts', 'DocType Mapper', 'Delivery Note-Sales Invoice')
 
 	webnotes.conn.sql("delete from `tabField Mapper Detail` where parent = 'Sales Order-Delivery Note' and from_field = 'basic_rate' and to_field = 'basic_rate'")
diff --git a/erpnext/patches/jan_mar_2012/reload_po_pr_mapper.py b/erpnext/patches/jan_mar_2012/reload_po_pr_mapper.py
index 4ed252b..5866429 100644
--- a/erpnext/patches/jan_mar_2012/reload_po_pr_mapper.py
+++ b/erpnext/patches/jan_mar_2012/reload_po_pr_mapper.py
@@ -16,5 +16,5 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('stock', 'DocType Mapper', 'Purchase Order-Purchase Receipt')
diff --git a/erpnext/patches/jan_mar_2012/reload_quote.py b/erpnext/patches/jan_mar_2012/reload_quote.py
index 5715bb4..8df293f 100644
--- a/erpnext/patches/jan_mar_2012/reload_quote.py
+++ b/erpnext/patches/jan_mar_2012/reload_quote.py
@@ -1,4 +1,4 @@
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('selling', 'doctype', 'quotation')
diff --git a/erpnext/patches/jan_mar_2012/reload_table.py b/erpnext/patches/jan_mar_2012/reload_table.py
index 481b46f..5358320 100644
--- a/erpnext/patches/jan_mar_2012/reload_table.py
+++ b/erpnext/patches/jan_mar_2012/reload_table.py
@@ -1,11 +1,3 @@
 def execute():
-	import webnotes
-	from webnotes.modules.module_manager import reload_doc
-	reload_doc('selling', 'doctype', 'quotation_detail')
-	reload_doc('selling', 'doctype', 'sales_order_detail')
-	reload_doc('stock', 'doctype', 'delivery_note_detail')
-	reload_doc('stock', 'doctype', 'purchase_receipt_detail')
-	reload_doc('buying', 'doctype', 'po_detail')
-	reload_doc('accounts', 'doctype', 'rv_detail')
-	reload_doc('accounts', 'doctype', 'pv_detail')
+	pass
 
diff --git a/erpnext/patches/jan_mar_2012/remove_get_tds_button.py b/erpnext/patches/jan_mar_2012/remove_get_tds_button.py
index fe804c0..8549e0d 100644
--- a/erpnext/patches/jan_mar_2012/remove_get_tds_button.py
+++ b/erpnext/patches/jan_mar_2012/remove_get_tds_button.py
@@ -26,5 +26,5 @@
 		AND fieldtype='Button'
 	""")
 
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('accounts', 'doctype', 'journal_voucher')
diff --git a/erpnext/patches/jan_mar_2012/remove_series_defval.py b/erpnext/patches/jan_mar_2012/remove_series_defval.py
index 123cc41..45eed57 100644
--- a/erpnext/patches/jan_mar_2012/remove_series_defval.py
+++ b/erpnext/patches/jan_mar_2012/remove_series_defval.py
@@ -1,3 +1,3 @@
 def execute():
 	import webnotes
-	webnotes.conn.sql("update `tabDocField` set `default`='' where parent = 'Receivable Voucher' and fieldname = 'naming_series' and `default` = 'INV'")
+	webnotes.conn.sql("update `tabDocField` set `default`='' where parent = 'Sales Invoice' and fieldname = 'naming_series' and `default` = 'INV'")
diff --git a/erpnext/patches/jan_mar_2012/rename_doctype_indent.py b/erpnext/patches/jan_mar_2012/rename_doctype_indent.py
deleted file mode 100644
index 01aeebf..0000000
--- a/erpnext/patches/jan_mar_2012/rename_doctype_indent.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import webnotes
-def execute():
-	"""
-		* Create DocType Label
-		* Reload Related DocTypes
-	"""
-	create_doctype_label()
-	reload_related_doctype()
-
-
-def create_doctype_label():
-	"""
-		Creates a DocType Label Record for Indent
-	"""
-	res = webnotes.conn.sql("""\
-		SELECT name FROM `tabDocType Label`
-		WHERE name='Indent'
-	""")
-	if not(res and res[0] and res[0][0]):
-		from webnotes.model.doc import Document
-		doclabel = Document('DocType Label')
-		doclabel.dt = 'Indent'
-		doclabel.dt_label = 'Purchase Requisition'
-		doclabel.save(1)
-
-
-def reload_related_doctype():
-	"""
-		Reload:
-		* indent
-		* purchase_order
-		* po_detail
-	"""
-	from webnotes.modules.module_manager import reload_doc
-	reload_doc('buying', 'doctype', 'indent')
-	reload_doc('buying', 'doctype', 'purchase_order')
-	reload_doc('buying', 'doctype', 'po_detail')
diff --git a/erpnext/patches/jan_mar_2012/rename_dt.py b/erpnext/patches/jan_mar_2012/rename_dt.py
new file mode 100644
index 0000000..e591a87
--- /dev/null
+++ b/erpnext/patches/jan_mar_2012/rename_dt.py
@@ -0,0 +1,421 @@
+import webnotes
+from webnotes.model import rename, delete_doc
+from webnotes.model.code import get_obj
+from wnf import replace_code
+from termcolor import colored
+from webnotes.modules import reload_doc
+from webnotes.utils import make_esc
+import os
+
+def execute1():
+	#rendt = get_dt_to_be_renamed()
+	#rename_dt_files(rendt)
+	#update_local_file_system()
+	replace_labels_with_fieldnames()
+
+def execute():
+
+	#---------------------------------------------------
+	# doctype renaming
+	rendt = get_dt_to_be_renamed()
+	# Rename dt	in db
+	rename_in_db(rendt, 'DocType', 1)
+	# Upadte dt in records
+	update_dt_in_records(rendt)
+
+	#---------------------------------------------------
+	# Dt Mapper renaming
+	ren_mapper = get_mapper_to_be_renamed()
+	# Rename mapper in db
+	rename_in_db(ren_mapper, 'DocType Mapper', 0)
+
+	#---------------------------------------------------
+	# GL Mapper renaming
+	gl_mapper = {'Receivable Voucher': 'Sales Invoice', 'Payable Voucher': 'Purchase Invoice'}
+	rename_in_db(gl_mapper, 'GL Mapper', 0)
+
+
+	#---------------------------------------------------
+	# remove dt label
+	webnotes.conn.sql("""delete from `tabDocType Label` where name in ('Ticket', 'Receivable Voucher', 
+		'QA Inspection Report', 'Payable Voucher', 'Manage Account', 'Indent', 'DocLayer')""")
+
+	#---------------------------------------------------
+	# Reload mapper from file
+	for d in ren_mapper:
+		mod = '_'.join(webnotes.conn.sql("select module from `tabDocType Mapper` where name = %s", 
+			ren_mapper[d])[0][0].lower().split())
+		reload_doc(mod, 'DocType Mapper', ren_mapper[d])
+
+	delete_search_criteria()
+
+	# reload custom search criteria
+	#for d in  webnotes.conn.sql("""select name, module from
+	#		`tabSearch Criteria` where ifnull(standard, 'No') = 'Yes' and ifnull(disabled, 0) = 0"""):
+	#
+	for path, folders, files in os.walk(webnotes.defs.modules_path):
+		if not path.endswith('search_criteria'): continue
+		module = path.split(os.sep)[-2]
+		for sc in folders:
+			try:
+				reload_doc(module, 'search_criteria', sc)
+				print module, sc
+			except Exception, e:
+				print "did not reload: " + str(d)
+	
+	webnotes.conn.sql("""DELETE FROM `tabPrint Format`
+			WHERE name IN ('Delivery Note Format', 'Purchase Order Format',
+			'Quotation Format', 'Receivable Voucher Format', 'Sales Order',
+			'SalesInvoiceModern_test', 'SalesInvoiceStdNew',
+			'Service Order Format', 'Service Quotation Format')""")
+
+	# reload custom print format
+	for d in webnotes.conn.sql("""select name, module from `tabPrint Format`
+			where ifnull(standard, 'No') = 'Yes'"""):
+		try:
+			reload_doc(d[1], 'Print Format', d[0])
+		except Exception, e:
+			print "did not reload: " + str(d)
+
+	#  Reload GL Mapper
+	for d in webnotes.conn.sql("select name from `tabGL Mapper`"):
+		reload_doc('accounts', 'GL Mapper', d[0])
+		
+	#gl entry, stock ledger entry, 
+
+
+
+	# T0-do-list
+	# gl mapper name
+
+def delete_search_criteria():
+	webnotes.conn.sql("""DELETE FROM `tabSearch Criteria`
+			WHERE name IN ('', 'bills-to_be_paid',
+			'bills-to_be_submitted', 'cenvat_credit_-_input_or_capital_goods',
+			'appraisal_custom', 'custom_test', 'custom_test1', 'delivery_note-to_be_billed',
+			'delivery_note-to_be_submitted', 'delivery_notes',
+			'employee_leave_balance_report', 'flat_bom_report',
+			'general_ledger1', 'lead_interested',
+			'payables_-_as_on_outstanding', 'periodical_budget_report',
+			'projectwise_delivered_qty_and_costs_as_per_purchase_cost',
+			'projectwise_pending_qty_and_costs_as_per_purchase_cost', 'sales',
+			'sales_order1', 'sales_order_pending_items',
+			'territory_wise_sales_-_target_vs_actual_', 'test_report',
+			'lease_agreement_list', 'lease_monthly_future_installment_inflows',
+			'lease_over_due_list', 'lease_overdue_age_wise',
+			'lease_receipt_summary_month_wise', 'lease_receipts_client_wise',
+			'lease_yearly_future_installment_inflows',
+			'monthly_ledger_summary_report', 'payables_-_as_on_outstanding',
+			'payment_report', 'progressive_total_excise_duty',
+			'service_tax_credit_account_-_inputs',
+			'total_amout_collection_for_a_period_-_customerwise',
+			'invoices-to_be_submitted', 'invoices-to_receive_payment',
+			'opportunity-quotations_to_be_sent', 'purchase_order-to_be_billed',
+			'purchase_order-to_be_submitted',
+			'purchase_order-to_receive_items',
+			'purchase_request-purchase_order_to_be_made',
+			'purchase_request-to_be_submitted',
+			'sales-order_to_be_submitted', 'sales_order-overdue',
+			'sales_order-to_be_billed', 'sales_order-to_be_delivered',
+			'sales_order-to_be_submitted', 'task-open', 'appraisal_custom',
+			'employee_details', 'employee_in_company_experience',
+			'employee_leave_balance_report', 'employeewise_leave_transaction_details',
+			'pending_appraisals', 'pending_expense_claims', 'delivery_plan', 'flat_bom_report',
+			'dispatch_report', 'projectwise_delivered_qty_and_costs_as_per_purchase_cost', 
+			'projectwise_pending_qty_and_costs_as_per_purchase_cost', 'custom_test', 'custom_test1',
+			'delivery_notes', 'delivery_note_disabled', 'lead', 'lead_interested', 'lead_report',
+			'periodic_sales_summary', 'monthly_despatched_trend', 'sales', 'sales_order',
+			'sales_order1', 'sales_agentwise_commission', 'test_report', 
+			'territory_wise_sales_-_target_vs_actual_')""")
+
+	webnotes.conn.sql("""
+		DELETE FROM `tabSearch Criteria`
+		WHERE name IN ('monthly_transaction_summary', 'trend_analyzer',
+		'yearly_transaction_summary', 'invoices-overdue', 'lead-to_follow_up',
+		'opportunity-to_follow_up', 'serial_no-amc_expiring_this_month',
+		'serial_no-warranty_expiring_this_month')
+		AND IFNULL(standard, 'No') = 'Yes'
+		""")
+
+def rename_in_db(ren_data, data_type, is_doctype):
+	for d in ren_data:
+		print colored('Renaming... ' + d + ' --> '+ ren_data[d], 'yellow')
+		#rename
+		try:
+			rename(data_type, d, ren_data[d], is_doctype)
+		except Exception, e:
+			print e
+			pass
+
+
+def update_dt_in_records(rendt):
+	for d in rendt:
+		# Feed, property setter, search criteria, gl mapper, form 16A, naming series options, doclayer - dodtype is not mentioed in options
+		dt_list = webnotes.conn.sql("select t1.parent, t1.fieldname from tabDocField t1, tabDocType t2 where t1.parent = t2.name and t1.fieldname in ('dt', 'doctype', 'doc_type', 'dt_type') and ifnull(t1.options, '') = '' and ifnull(t2.issingle, 0) = 0 and t1.parent in ('Custom Field', 'Custom Script')")
+		for dt in dt_list:
+			webnotes.conn.sql("update `tab%s` set %s = replace(%s, '%s', '%s') where %s = '%s'" % (dt[0], dt[1], dt[1], d, rendt[d], dt[1], d))
+
+		# gl mapper, gl entry
+		webnotes.conn.sql("update `tabGL Mapper Detail` set against_voucher_type = replace(against_voucher_type, '%s', '%s') where against_voucher_type like '%%%s%%'" % (d, rendt[d], d))
+		webnotes.conn.sql("update `tabGL Entry` set against_voucher_type = replace(against_voucher_type, '%s', '%s') where against_voucher_type = '%s'" % (d, rendt[d], d))
+		webnotes.conn.sql("update `tabGL Entry` set voucher_type = replace(voucher_type, '%s', '%s') where voucher_type = '%s'" % (d, rendt[d], d))
+
+		# Stock ledger entry
+		webnotes.conn.sql("update `tabStock Ledger Entry` set voucher_type = replace(voucher_type, '%s', '%s') where voucher_type = '%s'" % (d, rendt[d], d))
+
+		# Custom fld: options
+		webnotes.conn.sql("update `tabCustom Field` set options = replace(options, %s, %s) where fieldtype in ('Link', 'Select')", (d, rendt[d]))
+		
+		#Property Setter: value (if property=options)
+		webnotes.conn.sql("update `tabProperty Setter` set value = replace(value, %s, %s) where property = 'Options'", (d, rendt[d]))
+
+		# custom script: script
+		webnotes.conn.sql("update `tabCustom Script` set script = replace(script, %s, %s)", (d, rendt[d]))
+
+		# print format: html
+		webnotes.conn.sql("update `tabPrint Format` set html = replace(html, %s, %s) where ifnull(standard, 'Yes') = 'No'", (d, rendt[d]))
+
+		# custom report: doc_type, filters, columns, parent_doc_type, add_cond, add_col, add_tab,
+		#					dis_filters, group_by, sort_by, report_script, server_script, custom_query
+		webnotes.conn.sql("""
+			update
+				`tabSearch Criteria` 
+			set 
+				doc_type		= replace(doc_type, %s, %s), 
+				filters			= replace(filters, %s, %s), 
+				columns			= replace(columns, %s, %s), 
+				parent_doc_type = replace(parent_doc_type, %s, %s), 
+				add_cond		= replace(add_cond, %s, %s), 
+				add_col			= replace(add_col, %s, %s), 
+				add_tab			= replace(add_tab, %s, %s), 
+				dis_filters		= replace(dis_filters, %s, %s), 
+				group_by		= replace(group_by, %s, %s), 
+				sort_by			= replace(sort_by, %s, %s), 
+				report_script	= replace(report_script, %s, %s), 
+				server_script	= replace(server_script, %s, %s), 
+				custom_query	= replace(custom_query, %s, %s)
+			where 
+				ifnull(standard, 'Yes') = 'No'
+		""", (d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], 
+				d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], ))
+
+
+
+
+def get_dt_to_be_renamed():
+	rendt = {
+		'Receivable Voucher'		:	'Sales Invoice',
+		'RV Detail'					:	'Sales Invoice Item',
+		'RV Tax Detail'				:	'Sales Taxes and Charges',
+		'Payable Voucher'			:	'Purchase Invoice',
+		'PV Detail'					:	'Purchase Invoice Item',
+		'Purchase Tax Detail'		:	'Purchase Taxes and Charges',
+		'Indent'					:	'Purchase Request',
+		'Indent Detail'				:	'Purchase Request Item',
+		'QA Inspection Report'		:	'Quality Inspection',
+		'Ticket'					:	'Task',
+		'Manage Account'			:	'Global Defaults',
+		'ToDo Item'					:	'ToDo',
+		'Term'						:	'Terms and Conditions',
+		'Static Parameter Detail'	:	'SMS Parameter',
+		'SS Earning Detail'			:	'Salary Slip Earning',
+		'SS Deduction Detail'		:	'Salary Slip Deduction',
+		'Sales Order Detail'		:	'Sales Order Item',
+		'Sales BOM Detail'			:	'Sales BOM Item',
+		'Return Detail'				:	'Sales and Purchase Return Item',
+		'Ref Rate Detail'			:	'Item Price',
+		'Receiver Detail'			:	'SMS Receiver',
+		'Quotation Detail'			:	'Quotation Item',
+		'QA Specification Detail'	:	'Quality Inspection Reading',
+		'Purchase Receipt Detail'	:	'Purchase Receipt Item',
+		'Purchase Other Charges'	:	'Purchase Taxes and Charges Master',
+		'PR Raw Material Detail'	:	'Purchase Receipt Item Supplied',
+		'PP SO Detail'				:	'Production Plan Sales Order',
+		'PP Detail'					:	'Production Plan Item',
+		'PO Raw Material Detail'	:	'Purchase Order Item Supplied',
+		'PO Detail'					:	'Purchase Order Item', 
+		'Packing Slip Detail'		:	'Packing Slip Item',
+		'Other Charges'				:	'Sales Taxes and Charges Master',
+		'Order Lost Reason'			:	'Quotation Lost Reason',
+		'Manage Account'			:	'Global Defaults',
+		'Maintenance Visit Detail'	:	'Maintenance Visit Purpose',
+		'Ledger Balance Export'		:	'Multi Ledger Report',
+		'LC PR Detail'				:	'Landed Cost Purchase Receipt',
+		'Landed Cost Detail'		:	'Landed Cost Item',
+		'KRA Template'				:	'Appraisal Template',
+		'KRA Sheet'					:	'Appraisal Template Goal',
+		'Item Specification Detail' :	'Item Quality Inspection Parameter',
+		'Item Maintenance Detail'	:	'Maintenance Schedule Item',
+		'IR Payment Detail'			:	'Payment to Invoice Matching Tool Detail',
+		'Internal Reconciliation'	:	'Payment to Invoice Matching Tool',
+		'Installed Item Details'	:	'Installation Note Item',
+		'Holiday List Detail'		:	'Holiday',
+		'Follow up'					:	'Communication Log',
+		'Flat BOM Detail'			:	'BOM Explosion Item',
+		'Expense Voucher Detail'	:	'Expense Claim Detail',
+		'Expense Voucher'			:	'Expense Claim',
+		'Expense Type'				:	'Expense Claim Type',
+		'Enquiry Detail'			:	'Opportunity Item',
+		'Enquiry'					:	'Opportunity',
+		'Earning Detail'			:	'Salary Structure Earning',
+		'DocLayerField'				:	'Customize Form Field',
+		'DocLayer'					:	'Customize Form',
+		'Delivery Note Detail'		:	'Delivery Note Item',
+		'Deduction Detail'			:	'Salary Structure Deduction',
+		'Comment Widget Record'		:	'Comment',
+		'BOM Material'				:	'BOM Item',
+		'Bill Of Materials'			:	'BOM',
+		'Appraisal Detail'			:	'Appraisal Goal',
+		'Advance Allocation Detail' :	'Purchase Invoice Advance',
+		'Advance Adjustment Detail' :	'Sales Invoice Advance',
+		'Ledger Detail'				:	'Multi Ledger Report Detail',
+		'TA Control'				:	'Trend Analyzer Control',
+		'Sales and Purchase Return Wizard'	: 'Sales and Purchase Return Tool',
+		'Educational Qualifications Detail' : 'Employee Education',
+		'Delivery Note Packing Detail'		: 'Delivery Note Packing Item',
+		'Experience In Company Detail'		: 'Employee Internal Work History',
+		'Professional Training Details'		: 'Employee Training',
+		'Previous Experience Detail'		: 'Employee External Work History',
+	}
+	return rendt
+
+
+def get_mapper_to_be_renamed():
+	ren_map = {
+		'Sales Order-Receivable Voucher'	:	'Sales Order-Sales Invoice',
+		'Sales Order-Indent'				: 	'Sales Order-Purchase Request',
+		'Receivable Voucher-Delivery Note' 	: 	'Sales Invoice-Delivery Note',
+		'Purchase Receipt-Payable Voucher'	: 	'Purchase Receipt-Purchase Invoice',
+		'Purchase Order-Payable Voucher'	: 	'Purchase Order-Purchase Invoice',
+		'Project-Receivable Voucher' 		: 	'Project-Sales Invoice',
+		'Lead-Enquiry'						: 	'Lead-Opportunity',
+		'KRA Template-Appraisal'			: 	'Appraisal Template-Appraisal',
+		'Indent-Purchase Order'				: 	'Purchase Request-Purchase Order',
+		'Enquiry-Quotation'					: 	'Opportunity-Quotation',
+		'Delivery Note-Receivable Voucher'	: 	'Delivery Note-Sales Invoice'
+	}
+	return ren_map
+
+
+
+
+#--------------------------------------------------------------------------------------------------------
+
+
+def update_local_file_system():
+	""" RUN ONLY IN LOCAL"""
+	
+	# doctype renaming
+	rendt = get_dt_to_be_renamed()
+
+	# replace dt in js/py file
+	update_file_content(rendt)
+	# git mv
+	rename_dt_files(rendt)
+
+
+	# Mapper renaming
+	ren_mapper = get_mapper_to_be_renamed()
+
+	rename_mapper_files(ren_mapper)
+
+	os.system('git mv erpnext/accounts/GL\ Mapper/Payable\ Voucher erpnext/accounts/GL\ Mapper/Purchase\ Invoice')
+	os.system('git mv erpnext/accounts/GL\ Mapper/Purchase\ Invoice/Payable\ Voucher.txt erpnext/accounts/GL\ Mapper/Purchase\ Invoice/Purchase\ Invoice.txt')
+	os.system('git mv erpnext/accounts/GL\ Mapper/Receivable\ Voucher erpnext/accounts/GL\ Mapper/Sales\ Invoice')
+	os.system('git mv erpnext/accounts/GL\ Mapper/Sales\ Invoice/Receivable\ Voucher.txt erpnext/accounts/GL\ Mapper/Sales\ Invoice/Sales\ Invoice.txt')
+	
+	# git rm production dt mapper
+	os.system('git rm -r erpnext/production/DocType\ Mapper/')
+
+
+
+def update_file_content(rendt):
+	for d in rendt:
+		print colored('Renaming... ' + d + ' --> '+ rendt[d], 'yellow')
+		for extn in ['js', 'py', 'txt', 'html']:
+			res = replace_code('/var/www/erpnext/', d, rendt[d], extn)
+			if res == 'skip':
+				break
+		
+		
+def rename_dt_files(rendt):
+	for d in rendt:
+		mod = webnotes.conn.sql("select module from tabDocType where name = %s", rendt[d])[0][0]
+		if mod == 'Core':
+			os.chdir('/var/www/erpnext/lib/')
+			path = 'py/core/doctype/'
+		else:
+			os.chdir('/var/www/erpnext/')
+			path = 'erpnext/' + '_'.join(mod.lower().split()) + '/doctype/'
+		old = '_'.join(d.lower().split())
+		new = '_'.join(rendt[d].lower().split())
+
+		print 'git mv ' + path + old + ' ' + path + new
+		# rename old dir
+		os.system('git mv ' + path + old + ' ' + path + new)
+
+		# rename all files in that dir
+		for extn in ['js', 'py', 'txt', 'html']:
+			if os.path.exists(path + new + '/'+ old + '.' +extn):
+				os.system('git mv ' + path + new + '/'+ old + '.' +extn + ' ' + path + new + '/' + new + '.' +extn)
+				print 'git mv ' + path + new + '/'+ old + '.' +extn + ' ' + path + new + '/' + new + '.' +extn
+
+
+def rename_mapper_files(ren_mapper):
+	for d in ren_mapper:
+		# module
+		mod = '_'.join(webnotes.conn.sql("select module from `tabDocType Mapper` where name = %s", ren_mapper[d])[0][0].lower().split())
+		path = 'erpnext/' + mod + '/DocType Mapper/'
+
+		# rename old dir
+		esc = make_esc('$ ')
+		os.system('git mv ' + esc(path + d) + ' ' + esc(path + ren_mapper[d]))
+		print 'git mv ' + esc(path + d) + ' ' + esc(path + ren_mapper[d])
+		os.system('git mv ' + esc(path + ren_mapper[d] + '/'+ d + '.txt')
+				+ ' ' + esc(path + ren_mapper[d] + '/' + ren_mapper[d] + '.txt'))
+		print 'git mv ' + esc(path + ren_mapper[d] + '/'+ d + '.txt') + ' ' + esc(path + ren_mapper[d] + '/' + ren_mapper[d] + '.txt')
+		
+
+def replace_labels_with_fieldnames():
+	"""
+		This is used for replacing instances like cur_frm.cscript['LABEL'] with
+		cur_frm.cscript.FIELDNAME in js files
+	"""
+	doctype = {}
+	doctype.update(prepare_dict_of_label_fieldname('/var/www/erpnext/erpnext/'))
+	doctype.update(prepare_dict_of_label_fieldname('/var/www/erpnext/lib/py'))
+	#print doctype
+	
+	for doc in doctype:
+		label_fieldname = doctype[doc]
+		for d in label_fieldname:
+			#label = "cur_frm.cscript['%s']" % d
+			#fieldname = "cur_frm.cscript.%s" % label_fieldname[d]
+			label = d
+			fieldname = label_fieldname[d]
+			print colored('Changing... ' + doc + ': ' + label + ' --> '+ fieldname, 'yellow')
+			#res = replace_code('/var/www/erpnext/', label, fieldname, 'js')
+			res = replace_code('/var/www/erpnext/', label, fieldname, 'js',
+					'hide_field\(.*%s' % label)
+			if res == 'skip':
+				break
+
+def prepare_dict_of_label_fieldname(module_path):
+	from webnotes.model.utils import peval_doclist
+	from webnotes.model.sync import get_file_path
+	doctype = {}
+	for path, folders, files in os.walk(module_path):
+		if path == module_path:
+			modules_list = folders
+		for f in files:
+			if f.endswith(".txt"):
+				rel_path = os.path.relpath(path, webnotes.defs.modules_path)
+				path_tuple = rel_path.split(os.sep)
+				if (len(path_tuple)==3 and path_tuple[0] in modules_list and
+						path_tuple[1] == 'doctype'):
+					file_name = f[:-4]
+					with open(get_file_path(path_tuple[0], file_name), 'r') as fn:
+						doclist = peval_doclist(fn.read())
+						doctype[file_name] = dict(([d.get('label'),d.get('fieldname')] \
+								for d in doclist if d.get('doctype')=='DocField'))
+	return doctype
diff --git a/erpnext/patches/jan_mar_2012/serial_no_add_opt.py b/erpnext/patches/jan_mar_2012/serial_no_add_opt.py
index 947c28d..ec45c27 100644
--- a/erpnext/patches/jan_mar_2012/serial_no_add_opt.py
+++ b/erpnext/patches/jan_mar_2012/serial_no_add_opt.py
@@ -30,5 +30,5 @@
 			webnotes.conn.commit()
 			webnotes.conn.begin()
 
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('stock', 'doctype', 'serial_no')
diff --git a/erpnext/patches/jan_mar_2012/stable_branch_shift_09_01_12.py b/erpnext/patches/jan_mar_2012/stable_branch_shift_09_01_12.py
index e4078aa..99366be 100644
--- a/erpnext/patches/jan_mar_2012/stable_branch_shift_09_01_12.py
+++ b/erpnext/patches/jan_mar_2012/stable_branch_shift_09_01_12.py
@@ -15,14 +15,14 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import webnotes
-from webnotes.modules.module_manager import reload_doc
+from webnotes.modules import reload_doc
 	
 def execute():
 	"""
-		* Reload RV Tax Detail
+		* Reload Sales Taxes and Charges
 		* Reload Support Ticket
 		* Run Install Print Format Patch
-		* Reload DocLayer
+		* Reload Customize Form
 	"""
 	reload_doc('accounts', 'doctype', 'rv_tax_detail')
 	reload_doc('support', 'doctype', 'support_ticket')
diff --git a/erpnext/patches/jan_mar_2012/stock_entry_others_patch.py b/erpnext/patches/jan_mar_2012/stock_entry_others_patch.py
index 3a94419..7562fca 100644
--- a/erpnext/patches/jan_mar_2012/stock_entry_others_patch.py
+++ b/erpnext/patches/jan_mar_2012/stock_entry_others_patch.py
@@ -1,6 +1,6 @@
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('stock', 'doctype', 'stock_entry')
 
 	webnotes.conn.sql("update `tabDocField` set options = concat(options, '\nOthers') where fieldname = 'purpose' and parent = 'Stock Entry'")
diff --git a/erpnext/patches/jan_mar_2012/sync_ref_db.py b/erpnext/patches/jan_mar_2012/sync_ref_db.py
new file mode 100644
index 0000000..2997d9c
--- /dev/null
+++ b/erpnext/patches/jan_mar_2012/sync_ref_db.py
@@ -0,0 +1,49 @@
+import webnotes
+sql = webnotes.conn.sql
+from webnotes.model import delete_doc
+
+def execute():
+	del_rec = {
+		'DocType'	:	['Update Series', 'File', 'File Browser Control', 'File Group',
+			'Tag Detail', 'DocType Property Setter', 'Company Group', 'Widget Control', 
+			'Update Delivery Date Detail', 'Update Delivery	Date',
+			'Tag Detail', 'Supplier rating', 'Stylesheet', 'Question Tag',
+			'PRO PP Detail', 'PRO Detail', 'PPW Detail', 'PF Detail',
+			'Personalize', 'Patch Util', 'Page Template', 'Module Def Role',
+			'Module Def Item', 'File Group', 'File Browser Control', 'File',
+			'Educational Qualifications', 'Earn Deduction Detail',
+			'DocType Property Setter', 'Contact Detail', 'BOM Report Detail', 
+			'BOM Replace Utility Detail', 'BOM Replace Utility', 
+			'Absent Days Detail', 'Activity Dashboard Control', 'Raw Materials Supplied',
+			'Setup Wizard Control', 'Company Group', 'Lease Agreement', 'Lease Installment',
+			'Terms and Conditions', 'Time Sheet', 'Time Sheet Detail', 'Naming Series Options'],
+		'Page'		:	['File Browser'],
+		'DocType Mapper': ['Production Forecast-Production Planning Tool', 'Production Forecast-Production Plan', 'Sales Order-Production Plan']
+	}
+
+	for d in del_rec:
+		for r in del_rec[d]:
+			if d=='DocType':
+				sql("delete from tabFeed where doc_type=%s", r)
+			delete_doc(d, r)
+
+	sql("delete from tabDocField where label='Repair Purchase Request' and parent = 'Purchase Request'")
+
+	drop_tables()
+
+
+def drop_tables():
+	webnotes.conn.commit()
+	from webnotes.model.db_schema import remove_all_foreign_keys
+	remove_all_foreign_keys()
+	count = 0
+	tab_list = sql("SHOW TABLES")
+	for tab in tab_list:
+		if tab[0].startswith('_') or tab[0] in ('tabSingles', 'tabSessions', 'tabSeries'): continue
+		res = sql("SELECT COUNT(*) FROM `tabDocType` WHERE name = %s", tab[0][3:])
+		if not res[0][0]:
+			count += 1
+			print tab[0]
+			sql("DROP TABLE `%s`" % tab[0])
+	print count
+	webnotes.conn.begin()
diff --git a/erpnext/patches/jan_mar_2012/update_se_fld_options.py b/erpnext/patches/jan_mar_2012/update_se_fld_options.py
index fab0b19..0428fc9 100644
--- a/erpnext/patches/jan_mar_2012/update_se_fld_options.py
+++ b/erpnext/patches/jan_mar_2012/update_se_fld_options.py
@@ -1,6 +1,6 @@
 def execute():
 	import webnotes
-	webnotes.conn.sql("update `tabDocField` set options = 'Bill Of Materials' where fieldname = 'bom_no' and parent = 'Stock Entry'")
+	webnotes.conn.sql("update `tabDocField` set options = 'BOM' where fieldname = 'bom_no' and parent = 'Stock Entry'")
 
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('stock', 'doctype', 'stock_entry')
diff --git a/erpnext/patches/jan_mar_2012/website/domain_list.py b/erpnext/patches/jan_mar_2012/website/domain_list.py
index 25f50e2..26824a4 100644
--- a/erpnext/patches/jan_mar_2012/website/domain_list.py
+++ b/erpnext/patches/jan_mar_2012/website/domain_list.py
@@ -16,7 +16,7 @@
 
 def execute():
 	import webnotes
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('website', 'doctype', 'website_settings')
 
 	res = webnotes.conn.sql("""\
diff --git a/erpnext/patches/jan_mar_2012/website/getfile_rename.py b/erpnext/patches/jan_mar_2012/website/getfile_rename.py
index 769ac37..d6d4c57 100644
--- a/erpnext/patches/jan_mar_2012/website/getfile_rename.py
+++ b/erpnext/patches/jan_mar_2012/website/getfile_rename.py
@@ -19,10 +19,10 @@
 def execute():
 	"""rename from getfle"""
 	l = [
-		('Quotation Detail', 'description'),
-		('Sales Order Detail', 'description'),
-		('Delivery Note Detail', 'description'),
-		('RV Detail', 'description'),
+		('Quotation Item', 'description'),
+		('Sales Order Item', 'description'),
+		('Delivery Note Item', 'description'),
+		('Sales Invoice Item', 'description'),
 		('Item', 'description_html'),
 		('Letter Head', 'content')
 	]
diff --git a/erpnext/patches/mar_2012/add_fieldnames.py b/erpnext/patches/mar_2012/add_fieldnames.py
new file mode 100644
index 0000000..3f96380
--- /dev/null
+++ b/erpnext/patches/mar_2012/add_fieldnames.py
@@ -0,0 +1,42 @@
+# do not run this patch
+def execute():
+	import webnotes
+	import webnotes.modules
+	forbidden = ['%', "'", '"', '#', '*', '?', '`', '(', ')', '<', '>', '-',
+	'\\', '/', '.', '&', '!', '@', '$', '^', '+']
+	doctype_list = webnotes.conn.sql("SELECT name, module FROM `tabDocType`")
+	for doctype, module in doctype_list:
+		docfield_list = webnotes.conn.sql("""\
+				SELECT name, label, fieldtype FROM `tabDocField`
+				WHERE parent = %s AND IFNULL(fieldname, '') = ''""", doctype)
+		field_type_count = {}
+		count = 0
+		for name, label, fieldtype in docfield_list:
+			fieldname = None
+			if label:
+				temp_label = label
+				if len(temp_label)==1:
+					temp_label = fieldtype + temp_label
+				
+				fieldname = temp_label.lower().replace(' ', '_')
+				if "<" in fieldname:
+					count = field_type_count.setdefault(fieldtype, 0)
+					fieldname = fieldtype.lower().replace(' ', '_') + str(count)
+					field_type_count[fieldtype] = count + 1
+			elif fieldtype:
+				count = field_type_count.setdefault(fieldtype, 0)
+				fieldname = fieldtype.lower().replace(' ', '_') + str(count)
+				field_type_count[fieldtype] = count + 1
+
+			if fieldname:
+				for f in forbidden: fieldname = fieldname.replace(f, '')
+				fieldname = fieldname.replace('__', '_')
+				if fieldname.endswith('_'):
+					fieldname = fieldname[:-1]
+				if fieldname.startswith('_'):
+					fieldname = fieldname[1:]
+				#print fieldname
+				webnotes.conn.sql("""\
+						UPDATE `tabDocField` SET fieldname = %s
+						WHERE name = %s""", (fieldname, name))
+		webnotes.modules.export_doc('DocType', doctype)
diff --git a/erpnext/patches/mar_2012/clean_property_setter.py b/erpnext/patches/mar_2012/clean_property_setter.py
new file mode 100644
index 0000000..12e0a9e
--- /dev/null
+++ b/erpnext/patches/mar_2012/clean_property_setter.py
@@ -0,0 +1,52 @@
+import webnotes
+
+def execute():
+	"""
+		* Remove unnecessary doctype properties
+		* Remove docfield property setters if fieldname doesn't exist
+		* Remove prev_field properties if value fieldname doesn't exist
+	"""
+	clean_doctype_properties()
+	clean_docfield_properties()
+
+def clean_doctype_properties():
+	desc = webnotes.conn.sql("DESC `tabDocType`", as_dict=1)
+	property_list = '", "'.join([d.get('Field') for d in desc])
+	webnotes.conn.sql("""\
+		DELETE FROM `tabProperty Setter`
+		WHERE doctype_or_field = 'DocType'
+		AND property NOT IN ("%s")""" % property_list)
+	
+def clean_docfield_properties():
+	delete_list_1 = webnotes.conn.sql("""\
+		SELECT name FROM `tabProperty Setter` ps
+		WHERE doctype_or_field = 'DocField'
+		AND NOT EXISTS (
+			SELECT fieldname FROM `tabDocField` df
+			WHERE df.parent = ps.doc_type
+			AND df.fieldname = ps.field_name
+		) AND NOT EXISTS (
+			SELECT fieldname FROM `tabCustom Field` cf
+			WHERE cf.dt = ps.doc_type
+			AND cf.fieldname = ps.field_name
+		)""")
+	
+	delete_list_2 = webnotes.conn.sql("""\
+		SELECT name FROM `tabProperty Setter` ps
+		WHERE doctype_or_field = 'DocField'
+		AND property = 'previous_field'
+		AND NOT EXISTS (
+			SELECT fieldname FROM `tabDocField` df
+			WHERE df.parent = ps.doc_type
+			AND df.fieldname = ps.value
+		) AND NOT EXISTS (
+			SELECT fieldname FROM `tabCustom Field` cf
+			WHERE cf.dt = ps.doc_type
+			AND cf.fieldname = ps.value
+		)""")
+
+	delete_list = [d[0] for d in delete_list_1] + [d[0] for d in delete_list_2]
+
+	webnotes.conn.sql("""\
+		DELETE FROM `tabProperty Setter`
+		WHERE NAME IN ("%s")""" % '", "'.join(delete_list))
diff --git a/erpnext/patches/mar_2012/cleanup_control_panel.py b/erpnext/patches/mar_2012/cleanup_control_panel.py
new file mode 100644
index 0000000..f26db15
--- /dev/null
+++ b/erpnext/patches/mar_2012/cleanup_control_panel.py
@@ -0,0 +1,7 @@
+import webnotes
+def execute():
+	webnotes.conn.sql("""\
+		DELETE FROM `tabSingles`
+		WHERE doctype = 'Control Panel'
+		AND field IN ("sync_with_gateway", "mail_password", "auto_email_id",
+		"mail_port", "outgoing_mail_server", "mail_login", "use_ssl")""")
diff --git a/erpnext/patches/mar_2012/delete_docformat.py b/erpnext/patches/mar_2012/delete_docformat.py
new file mode 100644
index 0000000..77a6c82
--- /dev/null
+++ b/erpnext/patches/mar_2012/delete_docformat.py
@@ -0,0 +1,8 @@
+def execute():
+	import webnotes
+	webnotes.conn.sql("DELETE FROM `tabDocField` WHERE options='DocFormat'")
+	webnotes.conn.sql("DELETE FROM `tabDocField` WHERE parent='DocFormat'")
+	webnotes.conn.sql("DELETE FROM `tabDocType` WHERE name='DocFormat'")
+	webnotes.conn.commit()
+	webnotes.conn.sql("DROP TABLE `tabDocFormat`")
+	webnotes.conn.begin()
diff --git a/erpnext/patches/mar_2012/doctype_get_refactor.py b/erpnext/patches/mar_2012/doctype_get_refactor.py
new file mode 100644
index 0000000..d172f0b
--- /dev/null
+++ b/erpnext/patches/mar_2012/doctype_get_refactor.py
@@ -0,0 +1,164 @@
+import webnotes
+def execute():
+	"""
+		* Custom Field changes
+		* Add file_list to required tables
+		* Change floats/currency to decimal(18, 6)
+		* Remove DocFormat from DocType's fields
+		* Remove 'no_column' from DocField
+		* Drop table DocFormat
+	"""
+	change_property_setter_fieldnames()
+	handle_custom_fields()
+	#create_file_list()
+
+	# do at last - needs commit due to DDL statements
+	change_to_decimal()
+
+def change_property_setter_fieldnames():
+	import webnotes.model.sync
+	webnotes.model.sync.sync('core', 'property_setter')
+	
+	docfield_list = webnotes.conn.sql("""\
+		SELECT name, fieldname FROM `tabDocField`""", as_list=1)
+	custom_field_list = webnotes.conn.sql("""\
+		SELECT name, fieldname FROM `tabCustom Field`""", as_list=1)
+	field_list = docfield_list + custom_field_list
+	property_setter_list = webnotes.conn.sql("""\
+		SELECT name, doc_name, value, property
+		FROM `tabProperty Setter`
+		WHERE doctype_or_field='DocField'""")
+	field_dict = dict(field_list)
+	for name, doc_name, value, prop in property_setter_list:
+		if doc_name in field_dict:
+			webnotes.conn.sql("""\
+				UPDATE `tabProperty Setter`
+				SET field_name = %s
+				WHERE name = %s""", (field_dict.get(doc_name), name))
+		if value in field_dict and prop=='previous_field':
+			webnotes.conn.sql("""\
+				UPDATE `tabProperty Setter`
+				SET value = %s
+				WHERE name = %s""", (field_dict.get(value), name))
+
+
+def handle_custom_fields():
+	"""
+		* Assign idx to custom fields
+		* Create property setter entry of previous field
+		* Remove custom fields from tabDocField
+	"""
+	cf = get_cf()
+	assign_idx(cf)
+	create_prev_field_prop_setter(cf)
+	remove_custom_from_docfield(cf)
+
+def get_cf():
+	return webnotes.conn.sql("""\
+		SELECT * FROM `tabCustom Field`
+		WHERE docstatus < 2""", as_dict=1)
+
+def assign_idx(cf):
+	from webnotes.model.doctype import get
+	from webnotes.utils import cint
+	for f in cf:
+		if f.get('idx'): continue
+		temp_doclist = get(f.get('dt'), form=0)
+		max_idx = max(d.idx for d in temp_doclist if d.doctype=='DocField')
+		if not max_idx: continue
+		webnotes.conn.sql("""\
+			UPDATE `tabCustom Field` SET idx=%s
+			WHERE name=%s""", (cint(max_idx)+1, f.get('name')))
+
+def create_prev_field_prop_setter(cf):
+	from webnotes.model.doc import Document
+	from core.doctype.custom_field.custom_field import get_fields_label
+	for f in cf:
+		idx_label_list, field_list = get_fields_label(f.get('dt'), 0)
+		temp_insert_after = (f.get('insert_after') or '').split(" - ")
+		if len(temp_insert_after)<=1: continue
+		similar_idx_label = [il for il in idx_label_list \
+			if temp_insert_after[0] in il]
+		if not similar_idx_label: continue
+		label_index = idx_label_list.index(similar_idx_label[0])
+		if label_index==-1: return
+
+		webnotes.conn.sql("""\
+			UPDATE `tabCustom Field`
+			SET insert_after = %s
+			WHERE name = %s""", (similar_idx_label[0], f.get('name')))
+
+		prev_field = field_list[label_index]
+		webnotes.conn.sql("""\
+			DELETE FROM `tabProperty Setter`
+			WHERE doc_type = %s
+			AND field_name = %s
+			AND property = 'previous_field'""", (f.get('dt'), f.get('fieldname')))
+
+		ps = Document('Property Setter', fielddata = {
+			'doctype_or_field': 'DocField',
+			'doc_type': f.get('dt'),
+			'field_name': f.get('fieldname'),
+			'property': 'previous_field',
+			'value': prev_field,
+			'property_type': 'Data',
+			'select_doctype': f.get('dt')
+		})
+		ps.save(1)
+
+def remove_custom_from_docfield(cf):
+	for f in cf:
+		webnotes.conn.sql("""\
+			DELETE FROM `tabDocField`
+			WHERE parent=%s AND fieldname=%s""", (f.get('dt'),
+			f.get('fieldname')))
+
+def create_file_list():
+	should_exist = ['Website Settings', 'Web Page', 'Timesheet', 'Task',
+		'Support Ticket', 'Supplier', 'Style Settings', 'Stock Reconciliation',
+		'Stock Entry', 'Serial No', 'Sales Order', 'Sales Invoice',
+		'Quotation', 'Question', 'Purchase Receipt', 'Purchase Order',
+		'Project', 'Profile', 'Production Order', 'Product', 'Print Format',
+		'Price List', 'Purchase Invoice', 'Page', 'Module Def',
+		'Maintenance Visit', 'Maintenance Schedule', 'Letter Head',
+		'Leave Application', 'Lead', 'Journal Voucher', 'Item', 'Purchase Request',
+		'Expense Claim', 'Opportunity', 'Employee', 'Delivery Note',
+		'Customer Issue', 'Customer', 'Contact Us Settings', 'Company',
+		'Bulk Rename Tool', 'Blog', 'BOM', 'About Us Settings']
+
+	from webnotes.model.code import get_obj
+
+	for dt in should_exist:
+		obj = get_obj('DocType', dt, with_children=1)
+		obj.doc.allow_attach = 1
+		obj.doc.save()
+		obj.make_file_list()
+		from webnotes.model.db_schema import updatedb
+		updatedb(obj.doc.name)
+		from webnotes.utils.cache import CacheItem
+		CacheItem(obj.doc.name).clear()
+
+def change_to_decimal():
+	webnotes.conn.commit()
+	tables = webnotes.conn.sql("SHOW TABLES")
+	alter_tables_list = []
+	for tab in tables:
+		if not tab: continue
+		desc = webnotes.conn.sql("DESC `%s`" % tab[0], as_dict=1)
+		flist = []
+		for d in desc:
+			if d.get('Type')=='decimal(14,2)':
+				flist.append(d.get('Field'))
+		if flist:
+			#print tab[0], flist
+			statements = ("MODIFY `%s` decimal(18,6)" % f for f in flist)
+			statements = ", \n".join(statements)
+			alter_tables_list.append("ALTER TABLE `%s` \n%s\n" % (tab[0],
+				statements))
+	
+	#print "\n\n".join(alter_tables_list)
+	for at in alter_tables_list:
+		webnotes.conn.sql(at)
+
+	webnotes.conn.begin()
+
diff --git a/erpnext/patches/mar_2012/is_submittable_patch.py b/erpnext/patches/mar_2012/is_submittable_patch.py
new file mode 100644
index 0000000..d49160c
--- /dev/null
+++ b/erpnext/patches/mar_2012/is_submittable_patch.py
@@ -0,0 +1,23 @@
+# dont run this patch
+def execute():
+	import webnotes
+	import webnotes.model.doctype
+	from webnotes.utils import cint
+	from webnotes.model.doc import Document
+	from webnotes.model.code import get_obj
+	doctype_list = webnotes.conn.sql("SELECT name FROM `tabDocType`")
+	for dt in doctype_list:
+		doclist = webnotes.model.doctype.get(dt[0], form=0)
+		is_submittable = 0
+		for d in doclist:
+			if d.doctype == 'DocPerm' and d.fields.get('permlevel') == 0 \
+				and cint(d.fields.get('submit')) == 1:
+					is_submittable = 1
+					break
+		if is_submittable:
+			dt_doc = Document('DocType', doclist[0].name)
+			dt_doc.is_submittable = 1
+			dt_doc.save()
+			obj = get_obj(doc=dt_doc)
+			obj.make_amendable()
+			obj.on_update()
diff --git a/erpnext/patches/mar_2012/pos_invoice_fix.py b/erpnext/patches/mar_2012/pos_invoice_fix.py
index 77ebcb4..9848eb8 100644
--- a/erpnext/patches/mar_2012/pos_invoice_fix.py
+++ b/erpnext/patches/mar_2012/pos_invoice_fix.py
@@ -1,5 +1,3 @@
 def execute():
-	import webnotes
-	webnotes.conn.sql("DELETE FROM `tabDocFormat` WHERE format='POS Invoice'")
-	from webnotes.modules.module_manager import reload_doc
+	from webnotes.modules import reload_doc
 	reload_doc('accounts', 'Print Format', 'POS Invoice')
diff --git a/erpnext/patches/mar_2012/so_rv_mapper_fix.py b/erpnext/patches/mar_2012/so_rv_mapper_fix.py
index 8844773..5d60b3c 100644
--- a/erpnext/patches/mar_2012/so_rv_mapper_fix.py
+++ b/erpnext/patches/mar_2012/so_rv_mapper_fix.py
@@ -1,10 +1,10 @@
 def execute():
 	import webnotes
 	count = webnotes.conn.sql("""SELECT COUNT(*) FROM `tabTable Mapper Detail`
-		WHERE parent='Sales Order-Receivable Voucher'
-		AND from_table='Sales Order Detail'""")
+		WHERE parent='Sales Order-Sales Invoice'
+		AND from_table='Sales Order Item'""")
 	if count and count[0][0]==2:
 		webnotes.conn.sql("""DELETE FROM `tabTable Mapper Detail`
-			WHERE parent='Sales Order-Receivable Voucher'
-			AND from_table='Sales Order Detail'
+			WHERE parent='Sales Order-Sales Invoice'
+			AND from_table='Sales Order Item'
 			AND validation_logic='docstatus = 1'""")
diff --git a/erpnext/patches/mar_2012/usertags.py b/erpnext/patches/mar_2012/usertags.py
new file mode 100644
index 0000000..eff2543
--- /dev/null
+++ b/erpnext/patches/mar_2012/usertags.py
@@ -0,0 +1,17 @@
+def execute():
+	import webnotes
+	doctype_list = webnotes.conn.sql("""SELECT name FROM `tabDocType`
+		WHERE docstatus<2 AND IFNULL(issingle, 0)=0
+		AND IFNULL(istable, 0)=0""")
+	webnotes.conn.commit()
+	for d in doctype_list:
+		add_col = True
+		desc = webnotes.conn.sql("DESC `tab%s`" % d[0], as_dict=1)
+		for td in desc:
+			if td.get('Field')=='_user_tags':
+				add_col = False		
+
+		if add_col:
+			webnotes.conn.sql("alter table `tab%s` add column `_user_tags` varchar(180)" % d[0])
+	webnotes.conn.begin()		
+
diff --git a/erpnext/patches/old_patches/__init__.py b/erpnext/patches/old_patches/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/patches/old_patches/__init__.py
+++ /dev/null
diff --git a/erpnext/patches/old_patches/customer_address.py b/erpnext/patches/old_patches/customer_address.py
deleted file mode 100644
index 44568ce..0000000
--- a/erpnext/patches/old_patches/customer_address.py
+++ /dev/null
@@ -1,704 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import webnotes
-
-from webnotes.model.doc import Document
-from webnotes.utils import load_json, cint, cstr
-from webnotes import msgprint, errprint
-
-def make_address():
-	from webnotes.modules.module_manager import reload_doc
-	reload_doc('utilities','doctype','address')
-	
-	from webnotes.model.db_schema import updatedb
-	updatedb('Address')
-
-def make_address_from_customer():
-	for c in webnotes.conn.sql("select * from tabCustomer", as_dict=1):		
-		d = Document('Address') 
-		d.address_line1 = c['address_line1'] 
-		d.address_line2 = c['address_line2']  
-		d.city = c['city']  
-		d.country = c['country']  
-		d.pincode = c['pincode']
-		d.state = c['state']  
-		d.fax = c['fax_1']  
-		d.email_id = c['email_id']  		
-		d.phone = c['phone_1']  
-		d.customer = c['name']  
-		d.customer_name = c['customer_name']  
-		d.is_primary_address = 1
-		d.address_type = 'Office'
-		try:
-			d.save(1)
-		except NameError, e:
-			pass
-
-def make_address_from_supplier():
-	for c in webnotes.conn.sql("select * from tabSupplier", as_dict=1):		
-		d = Document('Address')
-		d.address_line1 = c['address_line1'] 
-		d.address_line2 = c['address_line2']  
-		d.city = c['city']  
-		d.country = c['country']  
-		d.pincode = c['pincode']
-		d.state = c['state']  		  		
-		d.supplier = c['name']  
-		d.supplier_name = c['supplier_name']  
-		d.is_primary_address = 1
-		d.address_type = 'Office'
-		try:
-			d.save(1)
-		except NameError, e:
-			pass
-
-def make_contact_from_contacttab():
-	webnotes.conn.sql("""
-	update ignore tabContact set
-		is_primary_contact = if(is_primary_contact='Yes',1,0)
-	""")
-
-	webnotes.conn.sql("""
-	update ignore tabContact t1, tabCustomer t2 set
-		t1.name = concat(ifnull(t1.contact_name,t1.name), '-', ifnull(t1.customer_name, t2.name))
-		where ifnull(t1.is_customer,0)=1
-		and t1.customer = t2.name
-	""")
-
-	webnotes.conn.sql("""
-	update ignore tabContact t1, tabSupplier t2 set
-		t1.name = concat(ifnull(t1.contact_name,t1.name), '-', ifnull(t1.supplier_name, t2.name))
-		where ifnull(t1.is_supplier,0)=1
-		and t1.supplier = t2.name
-	""")
-
-	webnotes.conn.sql("""
-	update ignore tabContact set
-		name = concat(ifnull(contact_name,name), '-', sales_partner)
-		where ifnull(is_sales_partner,0)=1
-	""")
-
-	webnotes.conn.commit()
-	try:
-		webnotes.conn.sql("""alter table tabContact change contact_no phone varchar(180)""")
-		webnotes.conn.sql("""alter table tabContact change is_primary_contact is_primary_contact int(1)""")
-	except:
-		pass
-	webnotes.conn.begin()
-	
-def delete_unwanted_fields():
-	delete_fields = [
-		('Contact', 'is_sales_partner'), ('Contact', 'sales_partner_address'), ('Contact', 'partner_type'), ('Contact', 'disable_login'), ('Contact', 'contact_address'), ('Contact', 'fax'), ('Contact', 'company_name'), ('Contact', 'contact_no'), ('Contact', 'customer_group'), ('Contact', 'has_login'), ('Contact', 'Create Login'), ('Contact', 'contact_name'), ('Contact', 'company_address'), ('Contact', 'customer_address'), ('Contact', 'supplier_address'), ('Contact', 'supplier_type'), ('Contact', 'is_customer'), ('Contact', 'is_supplier'), ('Contact', 'employee_id'), ('Contact', 'is_employee'), 
-		('Customer', 'region'), ('Customer', 'pincode'), ('Customer', 'city'), ('Customer', 'country'), ('Customer', 'state'), ('Customer', 'address'), ('Customer', 'telephone'), ('Customer', 'address_line2'), ('Customer', 'address_line1'), ('Customer', 'last_sales_order'), ('Customer', 'Shipping HTML'), ('Customer', 'phone_1'), ('Customer', 'Territory Help'), ('Customer', 'CG Help'), ('Customer', 'fax_1'), ('Customer', 'email_id'), 
-		('Customer Issue', 'email_id'), ('Customer Issue', 'contact_no'),
-		('Delivery Note', 'customer_mobile_no'), ('Delivery Note', 'Send SMS'), ('Delivery Note', 'Get Other Charges'), ('Delivery Note', 'message'), ('Delivery Note', 'shipping_address'), ('Delivery Note', 'ship_to'), ('Delivery Note', 'ship_det_no'), ('Delivery Note', 'contact_no'), ('Delivery Note', 'Customer Details'), ('Delivery Note', 'email_id'), ('Delivery Note', 'delivery_address'), ('Delivery Note', 'Contact Help'), ('Delivery Note', 'Territory Help'), 
-		('Enquiry', 'address'), ('Enquiry', 'Send Email'), ('Enquiry', 'enquiry_attachment_detail'), ('Enquiry', 'contact_date_ref'), ('Enquiry', 'Update Follow up'), ('Enquiry', 'email_id1'), ('Enquiry', 'cc_to'), ('Enquiry', 'subject'), ('Enquiry', 'message'), ('Enquiry', 'Attachment Html'), ('Enquiry', 'Create New File'), ('Enquiry', 'contact_no'), ('Enquiry', 'email_id'), ('Enquiry', 'project'), ('Enquiry', 'update_follow_up'), ('Enquiry', 'Contact Help'), 
-		('Installation Note', 'address'), 
-		('Lead', 'message'), ('Lead', 'Send Email'), ('Lead', 'address'), ('Lead', 'subject'), ('Lead', 'contact_no'), ('Lead', 'TerritoryHelp'), 
-		('Maintenance Schedule', 'address'), 
-		('Maintenance Visit', 'address'), 
-		('Purchase Order', 'Contact Help'), ('Purchase Order', 'supplier_qtn'), ('Purchase Order', 'contact_no'), ('Purchase Order', 'email'), 
-		('Purchase Receipt', 'Contact Help'), 
-		('Quotation', 'email_id'), ('Quotation', 'contact_no'), ('Quotation', 'Update Follow up'), ('Quotation', 'contact_date_ref'), ('Quotation', 'Territory Help'), ('Quotation', 'Contact Help'), 
-		('Receivable Voucher', 'Territory Help'), 
-		('Sales Order', 'contact_no'), ('Sales Order', 'email_id'), ('Sales Order', 'Contact Help'), ('Sales Order', 'file_list'), ('Sales Order', 'ship_det_no'), ('Sales Order', 'mobile_no'), ('Sales Order', 'Territory Help'), ('Sales Order', 'ship_to'), ('Sales Order', 'Customer Details'), 
-		('Sales Partner', 'area_code'), ('Sales Partner', 'telephone'), ('Sales Partner', 'email'), ('Sales Partner', 'address'), ('Sales Partner', 'TerritoryHelp'), ('Sales Partner', 'pincode'), ('Sales Partner', 'country'), ('Sales Partner', 'city'), ('Sales Partner', 'address_line2'), ('Sales Partner', 'address_line1'), ('Sales Partner', 'mobile'), ('Sales Partner', 'state'), 
-		('Serial No', 'supplier_address'), 
-		('Supplier', 'city'), ('Supplier', 'country'), ('Supplier', 'state'), ('Supplier', 'address_line1'), ('Supplier', 'last_purchase_order'), ('Supplier', 'address'), ('Supplier', 'address_line2'), ('Supplier', 'pincode'), ('Supplier rating', 'address'), ('Supplier rating', 'select'), ('Supplier rating', 'supplier')]
-	for d in delete_fields:
-		webnotes.conn.sql("delete from tabDocField where parent=%s and if(ifnull(fieldname,'')='',ifnull(label,''),fieldname)=%s", (d[0], d[1]))
-
-#def gen_txt_files():
-#	from webnotes.modules.export_module import export_to_files
-#	for dt in ['Contact','Customer','Customer Issue','Delivery Note','Enquiry','Installation Note','Lead','Maintenance Schedule','Maintenance Visit','Purchase Order','Purchase Receipt','Quotation','Receivable Voucher','Sales Order','Sales Partner','Serial No','Supplier']:
-#		export_to_files(record_list=[['DocType',dt]])
-
-def reload_doc_files():
-	from webnotes.modules.module_manager import reload_doc	
-	reload_doc('utilities', 'doctype', 'contact')
-	reload_doc('selling', 'doctype', 'customer')
-	reload_doc('support', 'doctype', 'customer_issue')
-	reload_doc('stock', 'doctype', 'delivery_note')
-	reload_doc('selling', 'doctype', 'enquiry')
-	reload_doc('selling', 'doctype', 'installation_note')
-	reload_doc('selling', 'doctype', 'lead')
-	reload_doc('support', 'doctype', 'maintenance_schedule')
-	reload_doc('support', 'doctype', 'maintenance_visit')
-	reload_doc('buying', 'doctype', 'purchase_order')
-	reload_doc('stock', 'doctype', 'purchase_receipt')
-	reload_doc('selling', 'doctype', 'quotation')
-	reload_doc('accounts', 'doctype', 'receivable_voucher')
-	reload_doc('accounts', 'doctype', 'payable_voucher')	
-	reload_doc('selling', 'doctype', 'sales_order')
-	reload_doc('setup', 'doctype', 'sales_partner')
-	reload_doc('stock', 'doctype', 'serial_no')
-	reload_doc('buying', 'doctype', 'supplier')
-	
-def reload_mapper_files():
-	from webnotes.modules.module_manager import reload_doc	
-	reload_doc('Mapper', 'DocType Mapper', 'Customer Issue-Maintenance Visit')
-	reload_doc('Mapper', 'DocType Mapper', 'Delivery Note-Installation Note')
-	reload_doc('Mapper', 'DocType Mapper', 'Delivery Note-Receivable Voucher')
-	reload_doc('Mapper', 'DocType Mapper', 'Enquiry-Quotation')
-	reload_doc('Mapper', 'DocType Mapper', 'Lead-Customer')
-	reload_doc('Mapper', 'DocType Mapper', 'Lead-Enquiry')
-	reload_doc('Mapper', 'DocType Mapper', 'Purchase Order-Payable Voucher')
-	reload_doc('Mapper', 'DocType Mapper', 'Purchase Order-Purchase Receipt')
-	reload_doc('Mapper', 'DocType Mapper', 'Purchase Receipt-Payable Voucher')
-	reload_doc('Mapper', 'DocType Mapper', 'Quotation-Sales Order')
-	reload_doc('Mapper', 'DocType Mapper', 'Receivable Voucher-Delivery Note')
-	reload_doc('Mapper', 'DocType Mapper', 'Sales Order-Delivery Note')
-	reload_doc('Mapper', 'DocType Mapper', 'Sales Order-Maintenance Schedule')
-	reload_doc('Mapper', 'DocType Mapper', 'Sales Order-Maintenance Visit')
-	reload_doc('Mapper', 'DocType Mapper', 'Sales Order-Receivable Voucher')		
-  	
-def delete_unwanted_mapper_fields():
-	delete_fields = [
-	('Customer Issue-Maintenance Visit', 'customer_address', 'address'),
-	('Delivery Note-Installation Note', 'customer_address', 'address'),
-	('Enquiry-Quotation', 'contact_no', 'contact_no'), ('Enquiry-Quotation', 'subject', 'enq_det'), ('Enquiry-Quotation', 'customer_name', 'customer_name'), ('Enquiry-Quotation', 'customer_name', 'customer_name'), ('Enquiry-Quotation', 'address', 'customer_address'), ('Enquiry-Quotation', 'email_id', 'email_id'),
-	('Quotation-Sales Order', 'contact_no', 'contact_no'), ('Quotation-Sales Order', 'email_id', 'email_id'), ('Quotation-Sales Order', 'customer_mobile_no', 'customer_mobile_no'),
-	('Sales Order-Delivery Note', 'customer_address', 'delivery_address'), ('Sales Order-Delivery Note', 'customer_address', 'customer_address'), ('Sales Order-Delivery Note', 'contact_no', 'contact_no'), ('Sales Order-Delivery Note', 'email_id', 'email_id'), ('Sales Order-Delivery Note', 'ship_det_no', 'ship_det_no'), ('Sales Order-Delivery Note', 'ship_to', 'ship_to'), ('Sales Order-Delivery Note', 'shipping_address', 'shipping_address'), ('Sales Order-Delivery Note', 'customer_mobile_no', 'customer_mobile_no'),
-	('Sales Order-Maintenance Schedule', 'customer_address', 'address'),
-	('Sales Order-Maintenance Visit', 'customer_address', 'address'),
-	('Sales Order-Receivable Voucher', 'contact_no', 'contact_no')]
-	
-  	for rec in delete_fields:  		
-		webnotes.conn.sql("delete from `tabField Mapper Detail` where parent=%s and from_field=%s and to_field=%s",(rec[0], rec[1], rec[2]))
-  	
-def sync_docfield_properties():
-	update_fields = [	
-	('Contact', 'customer', 'Customer', 0L, None, 0L, None), ('Contact', 'supplier', 'Supplier', 0L, None, None, None), ('Contact', 'is_primary_contact', None, 0L, None, None, None), ('Contact', 'email_id', None, 0L, 1L, None, None), ('Contact', 'department', 'Suggest', 0L, None, None, None), ('Contact', 'designation', 'Suggest', 0L, None, None, None),
-	('Customer Issue', 'customer', 'Customer', 0L, 1L, 1L, None), ('Customer Issue', 'customer_address', 'Address', 0L, None, 1L, None), ('Customer Issue', 'contact_person', 'Contact', 0L, None, 1L, None), ('Customer Issue', 'customer_name', None, 1L, None, None, None), ('Customer Issue', 'company', 'Company', 0L, 1L, 1L, None), ('Customer Issue', 'fiscal_year', 'link:Fiscal Year', 0L, 1L, 1L, None),
-	('Delivery Note', 'customer_address', 'Address', 0L, None, 1L, None), ('Delivery Note', 'contact_person', 'Contact', 0L, None, 1L, None), ('Delivery Note', 'customer_name', None, 1L, None, None, None), ('Delivery Note', 'status', '\nDraft\nSubmitted\nCancelled', 1L, 1L, 1L, None), ('Delivery Note', 'territory', 'Territory', 0L, 1L, 1L, 0L), ('Delivery Note', 'customer_group', 'Customer Group', 0L, None, 1L, None), ('Delivery Note', 'transporter_name', None, 0L, 0L, 1L, None), ('Delivery Note', 'lr_no', None, 0L, 0L, 1L, None), ('Delivery Note', 'lr_date', None, 0L, None, 1L, None), ('Delivery Note', 'currency', 'link:Currency', 0L, 1L, 1L, None), ('Delivery Note', 'letter_head', 'link:Letter Head', 0L, None, 1L, None),
-	('Enquiry', 'contact_person', 'Contact', 0L, None, 1L, None), ('Enquiry', 'customer_name', None, 1L, None, 0L, None), ('Enquiry', 'lead', 'Lead', 0L, None, 1L, 0L), ('Enquiry', 'enquiry_type', '\nSales\nMaintenance', 0L, 1L, None, None), ('Enquiry', 'territory', 'Territory', 0L, 1L, 1L, None), ('Enquiry', 'customer_group', 'Customer Group', 0L, 0L, 1L, 0L), ('Enquiry', 'contact_by', 'Profile', 0L, None, None, None),
-	('Installation Note', 'contact_person', 'Contact', 0L, None, 1L, None), ('Installation Note', 'customer_name', None, 1L, 0L, None, None), ('Installation Note', 'territory', 'Territory', 0L, 1L, 1L, None), ('Installation Note', 'status', 'Draft\nSubmitted\nCancelled', 1L, 1L, 1L, None),
-	('Lead', 'city', None, 0L, 1L, 1L, None), ('Lead', 'country', 'link:Country', 0L, 1L, 1L, None), ('Lead', 'state', 'Suggest', 0L, None, 1L, None), ('Lead', 'company', 'Company', 0L, 1L, None, None), ('Lead', 'contact_by', 'Profile', 0L, 0L, 0L, 0L),
-	('Maintenance Schedule', 'customer', 'Customer', 0L, 1L, 1L, None), ('Maintenance Schedule', 'contact_person', 'Contact', 0L, None, 1L, None), ('Maintenance Schedule', 'status', '\nDraft\nSubmitted\nCancelled', 1L, 1L, None, None), ('Maintenance Schedule', 'territory', 'Territory', 0L, 1L, None, None),
-	('Maintenance Visit', 'customer', 'Customer', 0L, 1L, 1L, None), ('Maintenance Visit', 'contact_person', 'Contact', 0L, None, 1L, None), ('Maintenance Visit', 'customer_name', None, 1L, None, None, None), ('Maintenance Visit', 'company', 'link:Company', 0L, 1L, 1L, None), ('Maintenance Visit', 'fiscal_year', 'link:Fiscal Year', 0L, 1L, 1L, None), ('Maintenance Visit', 'status', '\nDraft\nCancelled\nSubmitted', 1L, 1L, None, None), ('Maintenance Visit', 'territory', 'Territory', 0L, None, 1L, None),
-	('Purchase Order', 'supplier_address', 'Address', 0L, None, 1L, None), ('Purchase Order', 'contact_person', 'Contact', 0L, None, 1L, None), ('Purchase Order', 'supplier_name', None, 1L, None, None, None), ('Purchase Order', 'status', '\nDraft\nSubmitted\nStopped\nCancelled', 1L, 1L, 1L, None), ('Purchase Order', 'indent_no', 'Indent', 0L, None, 1L, 0L), ('Purchase Order', 'is_subcontracted', '\nYes\nNo', 0L, None, 1L, None), ('Purchase Order', 'currency', 'link:Currency', 0L, 1L, 1L, None), ('Purchase Order', 'net_total', None, 1L, 0L, 1L, None),
-	('Purchase Receipt', 'supplier_address', 'Address', 0L, None, 1L, None), ('Purchase Receipt', 'contact_person', 'Contact', 0L, None, 1L, None), ('Purchase Receipt', 'supplier_name', None, 1L, None, None, None), ('Purchase Receipt', 'status', '\nDraft\nSubmitted\nCancelled', 1L, 1L, 1L, None), ('Purchase Receipt', 'currency', 'link:Currency', 0L, 1L, 1L, None),
-	('Quotation', 'customer', 'Customer', 0L, None, 1L, 0L), ('Quotation', 'customer_address', 'Address', 0L, None, 1L, 0L), ('Quotation', 'contact_person', 'Contact', 0L, 0L, 1L, 0L), ('Quotation', 'customer_name', None, 1L, None, None, None), ('Quotation', 'lead', 'Lead', 0L, None, 1L, 0L), ('Quotation', 'lead_name', None, 1L, None, None, None), ('Quotation', 'order_type', '\nSales\nMaintenance', 0L, 1L, 0L, None), ('Quotation', 'status', '\nDraft\nSubmitted\nOrder Confirmed\nOrder Lost\nCancelled', 1L, 1L, 1L, None), ('Quotation', 'territory', 'Territory', 0L, 1L, 1L, 0L), ('Quotation', 'currency', 'link:Currency', 0L, 1L, 1L, None), ('Quotation', 'letter_head', 'link:Letter Head', 0L, None, 1L, None), ('Quotation', 'order_lost_reason', None, 1L, None, 1L, None), ('Quotation', 'contact_by', 'Profile', 0L, None, 1L, None), ('Quotation', 'contact_date', None, 0L, None, 1L, None), ('Quotation', 'to_discuss', None, 0L, None, 1L, None),
-	('Receivable Voucher', 'debit_to', 'Account', 0L, 1L, 1L, None), ('Receivable Voucher', 'customer_address', 'Address', 0L, None, 1L, None), ('Receivable Voucher', 'territory', 'Territory', 0L, 1L, 1L, None), ('Receivable Voucher', 'paid_amount', None, 0L, None, 1L, None), ('Receivable Voucher', 'company', 'Company', 0L, 1L, 1L, None), ('Receivable Voucher', 'fiscal_year', 'link:Fiscal Year', 0L, 1L, 1L, None), ('Receivable Voucher', 'outstanding_amount', None, 1L, None, 1L, None),
-	('Payable Voucher', 'supplier_address', 'Address', 0L, None, 1L, None), ('Payable Voucher', 'contact_display', None, 1L, None, None, None), ('Payable Voucher', 'contact_mobile', None, 1L, None, None, None), ('Payable Voucher', 'contact_email', None, 1L, None, 1L, None), ('Payable Voucher', 'currency', 'link:Currency', 0L, 1L, 1L, None), ('Payable Voucher', 'conversion_rate', None, 0L, 1L, 1L, None), ('Payable Voucher', 'company', 'Company', 0L, 1L, 1L, None), ('Payable Voucher', 'fiscal_year', 'link:Fiscal Year', 0L, 1L, 1L, None),
-	('Sales Order', 'customer_address', 'Address', 0L, None, 1L, 0L), ('Sales Order', 'contact_person', 'Contact', 0L, None, 1L, None), ('Sales Order', 'customer_name', None, 1L, None, None, None), ('Sales Order', 'status', '\nDraft\nSubmitted\nStopped\nCancelled', 1L, 1L, 1L, None), ('Sales Order', 'quotation_date', None, 1L, 0L, 1L, 1L), ('Sales Order', 'currency', 'link:Currency', 0L, 1L, 1L, None), ('Sales Order', 'letter_head', 'link:Letter Head', 0L, None, 1L, None),
-	('Sales Partner', 'territory', 'Territory', 0L, 1L, None, None),
-	('Supplier', 'company', 'Company', 0L, 1L, None, None)]
-	
-	for rec in update_fields:
-		webnotes.conn.sql("UPDATE `tabDocField` SET options=%s, permlevel=%s, reqd=%s, print_hide=%s, hidden=%s where parent=%s and fieldname=%s",(rec[2], rec[3], rec[4], rec[5], rec[6], rec[0], rec[1]))
-	
-def run_patch():
-	make_address()
-  	make_address_from_customer()
-  	make_address_from_supplier()
-  	make_contact_from_contacttab()
-  	delete_unwanted_fields()
-	reload_doc_files()
-	reload_mapper_files()
-	delete_unwanted_mapper_fields()
-	sync_docfield_properties()	
-
-#Old Customer Data Sync Patch for "Quotation, SO, PO, RV, PV, DN, PR, Installation Note, Maintenance Schedule, Customer Issue, Maintenance Visit"
-#--------------------------------------------------------------
-
-def run_old_data_sync_patch():
-	sync_quotation_customer_data()
-	sync_sales_order_customer_data()
-	sync_purchase_order_supplier_data()
-	sync_receivable_voucher_customer_data()
-	sync_payable_voucher_supplier_data()
-	sync_delivery_note_customer_data()
-	sync_purchase_receipt_supplier_data()
-	sync_installation_note_customer_data()
-	sync_maintenance_schedule_customer_data()
-	sync_customer_issue_customer_data()
-	sync_maintenance_visit_customer_data()
-	sync_lead_phone()
-	
-#Quotation
-def sync_quotation_customer_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT tq.name as id,tq.customer, 
-	ta.name as customer_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM tabQuotation tq, tabAddress ta
-	WHERE tq.customer = ta.customer
-	AND tq.quotation_to = 'Customer'	
-	AND tq.docstatus !=2
-	ORDER BY tq.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Tel: '+rec['phone'] or ''))											
-		
-		webnotes.conn.sql("""
-		UPDATE tabQuotation SET
-			customer_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['customer_address'],address_display,rec['id']))
-		
-	data_rec = webnotes.conn.sql("""
-	SELECT tq.name as id,tq.customer, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM tabQuotation tq, tabContact tc
-	WHERE tq.customer = tc.customer 
-	AND tq.quotation_to = 'Customer'	
-	AND tq.docstatus !=2
-	ORDER BY tq.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE tabQuotation SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))
-				
-		
-#Sales Order		
-def sync_sales_order_customer_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	ta.name as customer_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM `tabSales Order` t, tabAddress ta
-	WHERE t.customer = ta.customer
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Phone: '+rec['phone'] or ''))
-											
-		webnotes.conn.sql("""
-		UPDATE `tabSales Order` SET
-			customer_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['customer_address'],address_display,rec['id']))		
-
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM `tabSales Order` t, tabContact tc
-	WHERE t.customer = tc.customer 
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:					
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE `tabSales Order` SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))		
-				
-#Purchase Order
-def sync_purchase_order_supplier_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.supplier, 
-	ta.name as supplier_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM `tabPurchase Order` t, tabAddress ta
-	WHERE t.supplier = ta.supplier
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Tel: '+rec['phone'] or ''))
-											
-		webnotes.conn.sql("""
-		UPDATE `tabPurchase Order` SET
-			supplier_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['supplier_address'],address_display,rec['id']))				
-
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.supplier, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM `tabPurchase Order` t, tabContact tc
-	WHERE t.supplier = tc.supplier 
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:					
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE `tabPurchase Order` SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))				
-		
-#Sales Invoice		
-def sync_receivable_voucher_customer_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	ta.name as customer_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM `tabReceivable Voucher` t, tabAddress ta
-	WHERE t.customer = ta.customer
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Tel: '+rec['phone'] or ''))
-											
-		webnotes.conn.sql("""
-		UPDATE `tabReceivable Voucher` SET
-			customer_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['customer_address'],address_display,rec['id']))		
-		
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM `tabReceivable Voucher` t, tabContact tc
-	WHERE t.customer = tc.customer 
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:					
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE `tabReceivable Voucher` SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))				
-		
-#Purchase Invoice
-def sync_payable_voucher_supplier_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.supplier, 
-	ta.name as supplier_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM `tabPayable Voucher` t, tabAddress ta
-	WHERE t.supplier = ta.supplier
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Tel: '+rec['phone'] or ''))
-											
-		webnotes.conn.sql("""
-		UPDATE `tabPayable Voucher` SET
-			supplier_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['supplier_address'],address_display,rec['id']))				
-
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.supplier, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM `tabPayable Voucher` t, tabContact tc
-	WHERE t.supplier = tc.supplier 
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:					
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE `tabPayable Voucher` SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))				
-		
-#Delivery Note
-def sync_delivery_note_customer_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	ta.name as customer_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM `tabDelivery Note` t, tabAddress ta
-	WHERE t.customer = ta.customer
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Tel: '+rec['phone'] or ''))
-											
-		webnotes.conn.sql("""
-		UPDATE `tabDelivery Note` SET
-			customer_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['customer_address'],address_display,rec['id']))				
-
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM `tabDelivery Note` t, tabContact tc
-	WHERE t.customer = tc.customer 
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE `tabDelivery Note` SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))				
-
-#Purchase Receipt
-def sync_purchase_receipt_supplier_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.supplier, 
-	ta.name as supplier_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM `tabPurchase Receipt` t, tabAddress ta
-	WHERE t.supplier = ta.supplier
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Tel: '+rec['phone'] or ''))
-											
-		webnotes.conn.sql("""
-		UPDATE `tabPurchase Receipt` SET
-			supplier_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['supplier_address'],address_display,rec['id']))				
-
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.supplier, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM `tabPurchase Receipt` t, tabContact tc
-	WHERE t.supplier = tc.supplier 
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:					
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE `tabPurchase Receipt` SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))				
-
-#Installation Note
-def sync_installation_note_customer_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	ta.name as customer_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM `tabInstallation Note` t, tabAddress ta
-	WHERE t.customer = ta.customer
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Tel: '+rec['phone'] or ''))
-											
-		webnotes.conn.sql("""
-		UPDATE `tabInstallation Note` SET
-			customer_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['customer_address'],address_display,rec['id']))				
-
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM `tabInstallation Note` t, tabContact tc
-	WHERE t.customer = tc.customer 
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE `tabInstallation Note` SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))				
-		
-#Maintenance Schedule
-def sync_maintenance_schedule_customer_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	ta.name as customer_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM `tabMaintenance Schedule` t, tabAddress ta
-	WHERE t.customer = ta.customer
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Tel: '+rec['phone'] or ''))
-											
-		webnotes.conn.sql("""
-		UPDATE `tabMaintenance Schedule` SET
-			customer_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['customer_address'],address_display,rec['id']))	
-
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM `tabMaintenance Schedule` t, tabContact tc
-	WHERE t.customer = tc.customer 
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE `tabMaintenance Schedule` SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))	
-				
-#Customer Issue
-def sync_customer_issue_customer_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	ta.name as customer_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM `tabCustomer Issue` t, tabAddress ta
-	WHERE t.customer = ta.customer
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Tel: '+rec['phone'] or ''))
-											
-		webnotes.conn.sql("""
-		UPDATE `tabCustomer Issue` SET
-			customer_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['customer_address'],address_display,rec['id']))
-
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM `tabCustomer Issue` t, tabContact tc
-	WHERE t.customer = tc.customer 
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE `tabCustomer Issue` SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))
-		
-#Maintenance Visit
-def sync_maintenance_visit_customer_data():
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	ta.name as customer_address, ta.address_line1, ta.address_line2, ta.city, ta.country, ta.pincode, ta.state, ta.phone
-	FROM `tabMaintenance Visit` t, tabAddress ta
-	WHERE t.customer = ta.customer
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		address_display = cstr((rec['address_line1'] and rec['address_line1'] or '')) + cstr((rec['address_line2'] and '\n' + rec['address_line2'] or '')) + cstr((rec['city'] and '\n'+rec['city'] or '')) + cstr((rec['pincode'] and ', ' + rec['pincode'] or '')) + cstr((rec['state'] and '\n'+rec['state']+', ' or '')) + cstr((rec['country'] and rec['country'] or '')) + '\n' + cstr((rec['phone'] and 'Tel: '+rec['phone'] or ''))
-											
-		webnotes.conn.sql("""
-		UPDATE `tabMaintenance Visit` SET
-			customer_address = %s,
-			address_display = %s
-			WHERE name = %s
-		""",(rec['customer_address'],address_display,rec['id']))	
-
-	data_rec = webnotes.conn.sql("""
-	SELECT t.name as id,t.customer, 
-	tc.name as contact_person, tc.first_name, tc.last_name, tc.email_id, tc.phone as contact_phone, tc.mobile_no, tc.department, tc.designation
-	FROM `tabMaintenance Visit` t, tabContact tc
-	WHERE t.customer = tc.customer 
-	AND t.docstatus !=2
-	ORDER BY t.name
-	""", as_dict=1)
-	
-	for rec in data_rec:			
-		contact_display = (rec['first_name'] and rec['first_name'] or '') + (rec['last_name'] and ' ' + rec['last_name'] or '')
-											
-		webnotes.conn.sql("""
-		UPDATE `tabMaintenance Visit` SET
-			contact_person = %s,
-			contact_mobile = %s,
-			contact_email = %s,
-			contact_display = %s			
-			WHERE name = %s
-		""",(rec['contact_person'],rec['mobile_no'],rec['email_id'],contact_display,rec['id']))			
-
-#lead phone data sync
-def sync_lead_phone():
-	webnotes.conn.sql("""
-		update ignore tabLead set
-			phone = contact_no
-			where contact_no is not null			
-		""")
diff --git a/erpnext/patches/old_patches/doctype_permission_patch.py b/erpnext/patches/old_patches/doctype_permission_patch.py
deleted file mode 100644
index 0953864..0000000
--- a/erpnext/patches/old_patches/doctype_permission_patch.py
+++ /dev/null
@@ -1,90 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import webnotes
-
-def set_doctype_permissions():
-	
-	# remove descriptions
-	webnotes.conn.sql("update tabDocType set description=null")
-		
-	from webnotes.modules.module_manager import reload_doc
-	reload_doc('core','doctype','custom_script')
-	reload_doc('core','doctype','custom_field')
-	reload_doc('core','doctype','property_setter')
-	
-	# remove admin rights
-	webnotes.conn.sql("delete from tabUserRole where role in ('Administrator','Customer','Supplier') and parent!='Administrator'")	
-	
-	# create custom scripts
-	create_custom_scripts()
-
-	# remove script fields
-	reload_doc('core','doctype','doctype')
-
-	# allow sys manager to read doctype, custom script
-	allow_sys_manager()
-	
-def create_custom_scripts():
-	
-	cs_list = webnotes.conn.sql("select name, server_code, client_script from tabDocType where ifnull(server_code,'')!='' or ifnull(client_script,'')!=''")
-	
-	from webnotes.model.doc import Document
-	
-	for c in cs_list:
-		if c[1]:
-			cs = Document('Custom Script')
-			cs.dt = c[0]
-			cs.script_type = 'Server'
-			cs.script = c[1]
-			try:
-				cs.save(1)
-			except NameError:
-				pass
-
-		if c[2]:
-			cs = Document('Custom Script')
-			cs.dt = c[0]
-			cs.script_type = 'Client'
-			cs.script = c[2]
-			try:
-				cs.save(1)
-			except NameError:
-				pass
-
-def allow_sys_manager():
-	from webnotes.model.doc import Document
-
-	if not webnotes.conn.sql("select name from tabDocPerm where parent='DocType' and role='System Manager' and `read`=1"):
-		d = Document('DocPerm')
-		d.parent = 'DocType'
-		d.parenttype = 'DocType'
-		d.parentfield = 'permissions'
-		d.role = 'System Manager'
-		d.read = 1
-		d.save(1)
-
-	
-	if not webnotes.conn.sql("select name from tabDocPerm where parent='Custom Script' and role='System Manager' and `write`=1"):
-		d = Document('DocPerm')
-		d.parent = 'Custom Script'
-		d.parenttype = 'DocType'
-		d.parentfield = 'permissions'
-		d.role = 'System Manager'
-		d.read = 1
-		d.write = 1
-		d.create = 1
-		d.save(1)
\ No newline at end of file
diff --git a/erpnext/patches/old_patches/feed_patch.py b/erpnext/patches/old_patches/feed_patch.py
deleted file mode 100644
index 1edac88..0000000
--- a/erpnext/patches/old_patches/feed_patch.py
+++ /dev/null
@@ -1,118 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# long patches
-import webnotes
-
-def set_subjects_and_tagfields():
-	subject_dict = {
-		'Item':'%(item_name)s',
-		'Customer':' ',
-		'Contact':'%(first_name)s %(last_name)s - Email: %(email_id)s | Contact: %(contact_no)s',
-		'Supplier':' ',
-		'Lead':'%(lead_name)s from %(company_name)s | To Discuss: %(to_discuss)s',
-		'Quotation':'To %(customer_name)s on %(transaction_date)s worth %(currency)s %(grand_total_export)s',
-		'Enquiry':'To %(customer_name)s%(lead_name)s on %(transaction_date)s',
-		'Sales Order':'From %(customer_name)s on %(transaction_date)s worth %(currency)s %(grand_total_export)s | %(per_delivered)s% delivered | %(per_billed)s% billed',
-		'Delivery Note':'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed',
-		'Indent':'%(per_ordered)s% ordered',
-		'Purchase Order':'To %(supplier_name)s on %(transaction_date)s | %(per_received)s% delivered',
-		'Purchase Receipt':'From %(supplier_name)s against %(purchase_order)s on %(transaction_date)s',
-		'Receivable Voucher':'To %(customer_name)s worth %(currency)s %(grand_total_export)s due on %(due_date)s | %(outstanding_amount)s outstanding',
-		'Payable Voucher':'From %(supplier_name)s due on %(due_date)s | %(outstanding_amount)s outstanding',
-		'Journal Voucher':' ',
-		'Serial No':'%(item_code)s',
-		'Project':' ',
-		'Ticket':'%(subject)s',
-		'Timesheet':'%(owner)s',
-		'Support Ticket':'%(problem_description)s',
-		'Installation Note':'At %(customer_name)s on %(inst_date)s',
-		'Maintenance Visit':'To %(customer_name)s on %(mntc_date)s',
-		'Customer Issue':'%(complaint)s By %(complaint_raised_by)s on %(issue_date)s',
-		'Employee':'%(employee_name)s',
-		'Expense Voucher':'From %(employee_name)s for %(total_claimed_amount)s (claimed)',
-		'Appraisal':'',
-		'Leave Application':'From %(employee_name)s, %(designation)s',
-		'Salary Structure':'For %(employee_name)s',
-		'Salary Slip':'For %(employee_name)s, %(designation)s',
-		'Bill of Materials':'%(item_code)s'
-	}
-	
-	tags_dict = {
-		'Item':'item_group',
-		'Customer':'customer_group,customer_type',
-		#'Contact':'',
-		'Supplier':'supplier_type',
-		'Lead':'status,source',
-		'Quotation':'status',
-		'Enquiry':'',
-		'Sales Order':'status',
-		'Delivery Note':'',
-		'Indent':'',
-		'Purchase Order':'',
-		'Purchase Receipt':'',
-		'Receivable Voucher':'',
-		'Payable Voucher':'',
-		'Journal Voucher':'voucher_type',
-		'Serial No':'status',
-		'Project':'status',
-		'Ticket':'status',
-		'Timesheet':'',
-		'Support Ticket':'',
-		'Installation Note':'',
-		'Maintenance Visit':'completion_status,maintenance_type',
-		'Customer Issue':'status',
-		'Employee':'status',
-		'Expense Voucher':'approval_status',
-		'Appraisal':'',
-		'Leave Application':'leave_type',
-		'Salary Structure':'',
-		'Bill of Materials':''
-	}
-	
-	description_dict = {
-		'Property Setter':'Property Setter overrides a standard DocType or Field property',
-		'Custom Field':'Adds a custom field to a DocType',
-		'Custom Script':'Adds a custom script (client or server) to a DocType'
-	}
-	
-	alldt = []
-	
-	for dt in subject_dict:
-		webnotes.conn.sql('update tabDocType set subject=%s where name=%s', (subject_dict[dt], dt))
-		if not dt in alldt: alldt.append(dt)
-	
-	for dt in tags_dict:
-		webnotes.conn.sql('update tabDocType set tag_fields=%s where name=%s', (tags_dict[dt], dt))
-		if not dt in alldt: alldt.append(dt)
-
-	for dt in description_dict:
-		webnotes.conn.sql('update tabDocType set description=%s where name=%s', (description_dict[dt], dt))
-		if not dt in alldt: alldt.append(dt)
-	
-	#from webnotes.modules.export_module import export_to_files
-	#for dt in alldt:
-	#	export_to_files(record_list=[['DocType',dt]])
-
-def support_patch():
-	# relaod support and other doctypes
-	
-	from webnotes.modules.module_manager import reload_doc
-	
-	webnotes.model.delete_doc('DocType','Support Ticket')
-	reload_doc('setup','doctype','support_email_settings')
-	reload_doc('support','doctype','support_ticket')
-	reload_doc('support','doctype','support_ticket_response')
diff --git a/erpnext/patches/old_patches/patch_1.py b/erpnext/patches/old_patches/patch_1.py
deleted file mode 100644
index 4176bf5..0000000
--- a/erpnext/patches/old_patches/patch_1.py
+++ /dev/null
@@ -1,1196 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-"""
-	Old patches for reference
-"""
-
-if patch_no==33:
-	pass
-elif patch_no==34:
-	webnotes.conn.sql("update `tabDocField` set options = 'Letter Head', print_hide = 1 where fieldname = 'letter_head' and fieldtype = 'Link'")
-elif patch_no==35:
-	webnotes.conn.sql("update tabDocType set module = 'Event Updates' where name = 'Feed Control'")
-elif patch_no==36:
-	# remove delivery note foreign key in Serial Number
-	from webnotes.model.db_schema import DbTable
-	t = DbTable('Serial No')
-	fk_list  = t.get_foreign_keys()
-	for f in fk_list:
-		if f[0]=='delivery_note_no':
-			webnotes.conn.commit()
-			webnotes.conn.sql("alter table `tabSerial No` drop foreign key `%s`" % f[1])
-			webnotes.conn.begin()
-			webnotes.conn.sql("update tabDocField set fieldtype='Data' where fieldname='delivery_note_no' and parent='Serial No' limit 1")
-elif patch_no==37:
-	import os
-	mod_path = webnotes.defs.modules_path
-	path_list = []
-	for m in os.listdir(mod_path):
-		for t in ['doctype', 'page', 'search_criteria']:
-			dt_path = os.path.join(mod_path, m, t)
-			if os.path.exists(dt_path):
-				for dt in os.listdir(dt_path):
-					if '.' not in dt and os.path.exists(os.path.join(dt_path, dt, dt+ '.txt')):
-						path_list.append(os.path.join(dt_path, dt, dt+ '.txt'))
-
-	for d in path_list:
-		doclist = eval(open(d,'r').read())
-		webnotes.conn.sql("update `tab%s` set module = '%s' where name = '%s'" % (doclist[0]['doctype'], doclist[0]['module'], doclist[0]['name']))
-
-elif patch_no==38:
-	import webnotes
-	webnotes.conn.set_global("system_message", "System Updates: Hello! You would have noticed some changes on the Home Page. As a part of our commitment to make the system more friendly and social, we have re-designed the feed so that now you will only see feed that is relevant to you (either you have created something or you have been mentioned in the document).<br><br>On the individual listings, you can add tags and also color them!<br><br>You will also get time-to-time updates from our side here. Do keep sending your feedback at support@erpnext.com.")
-	webnotes.conn.set_global("system_message_id", "1")
-
-elif patch_no == 39:
-	pass
-
-elif patch_no == 40:
-	import_from_files(record_list=[['material_management','doctype','item']])
-
-elif patch_no == 42:
-	acc = sql("select name, lft, rgt from tabAccount where account_name in ('Incomes', 'Expenses')")
-	for d in acc:
-		sql("update tabAccount set is_pl_account = 'Yes' where lft >= '%s' and rgt <= '%s'" % (d[1], d[2]))
-elif patch_no == 43:
-	import webnotes.model
-	webnotes.model.delete_doc('Page', 'Module Manager')
-
-# cleanup of Service, Customer Support, Utilities Modules
-# -------------------------------------------------------
-elif patch_no == 44:
-	from webnotes.model import delete_doc
-
-	for dt in sql("select name from tabDocType where module in ('Customer Support')"):
-		delete_doc('DocType', dt[0])
-
-	for dt in sql("select name from `tabSearch Criteria` where module in ('Customer Support')"):
-		delete_doc('Search Criteria', dt[0])
-
-	for dt in sql("select name from tabPage where module in ('Customer Support')"):
-		delete_doc('Page', dt[0])
-
-	# move a couple
-	webnotes.conn.sql("update `tab%s` set module=%s where name=%s" % ('DocType', '%s', '%s'), ('Application Internal', 'Patch Util'))
-	webnotes.conn.sql("update `tab%s` set module=%s where name=%s" % ('DocType', '%s', '%s'), ('Application Internal', 'DocType Property Setter'))
-
-	# remove utilities
-	webnotes.conn.sql('delete from `tabModule Def` where name in ("Customer Support", "Utilities")')
-
-elif patch_no == 45:
-	webnotes.conn.sql('delete from tabDocField where options="Ticket Response Detail"')
-
-elif patch_no == 46:
-	import webnotes
-	webnotes.conn.set_global("system_message", "<b>SYSTEM DOWNTIME:</b> Hello! As part of our commitment to keep improving the service, we are planning a scheduled maintenance on our servers for 4 hrs on 16-Jan-2011(Sunday), from 10AM to 2PM. Do keep sending your feedback at support@erpnext.com.")
-	webnotes.conn.set_global("system_message_id", "2")
-
-elif patch_no == 47:
-	import webnotes
-	webnotes.conn.set_global("system_message", "")
-	webnotes.conn.set_global("system_message_id", "3")
-
-elif patch_no == 48:
-	webnotes.conn.sql("update tabDocField set options = 'Print Heading' where fieldname = 'select_print_heading'")
-
-elif patch_no == 49:
-	webnotes.conn.sql("update tabDocType set autoname = '' where name = 'Search Criteria'")
-elif patch_no == 50:
-	sql("update tabDocField set in_filter = 1 where fieldname in ('cost_center', 'income_account', 'Item Group') and parent = 'RV Detail'")
-elif patch_no == 51:
-	sql("update tabDocField set options = 'link:Print Heading' where fieldtype = 'Select' and fieldname = 'select_print_heading' and parent = 'POS Setting'")
-elif patch_no == 52:
-	sql("update tabDocField set print_hide = 1 where fieldname = 'letter_head'")
-elif patch_no == 53:
-	sql("update tabDocType set search_fields = 'lead_name,lead_owner,status,contact_by,contact_date' where name = 'Lead'")
-elif patch_no == 54:
-	sql("delete from tabDocField where parent = 'Supplier' and label = 'Supplier Contacts' and fieldtype = 'Section Break'")
-elif patch_no == 55:
-	sql("commit")
-	try:
-		sql("alter table tabFeed add column `_user_tags` varchar(180)")
-	except Exception, e:
-		if e.args[0]!=1060:
-			raise e
-elif patch_no == 56:
-	sql("delete from `tabModule Def Item` where parent = 'CRM' and doc_type = 'Reports' and doc_name = 'Delivery Note' and display_name = 'Territory, Item Group wise GP'")
-elif patch_no == 57:
-	import_from_files(record_list=[['selling','doctype','sales_order_detail']])
-
-elif patch_no == 58:
-	# module def patches
-	sql("update `tabModule Def` set module_page = NULL where name not in ('Event Updates', 'Setup', 'My Company')")
-	sql("delete from `tabModule Def Item` where doc_type in ('Separator', 'Setup Forms', 'More Reports')")
-	sql("delete from `tabModule Def Item` where doc_name = 'Project Activity'")
-	sql("update `tabModule Def` set module_label = 'People', disabled='No', is_hidden='No' where name = 'My Company'")
-
-	# insert new module items
-	from webnotes.model.doc import make_autoname
-	if not sql("select name from `tabModule Def Item` where parent='Projects' and doc_name='Ticket'"):
-		sql("""insert into `tabModule Def Item`
-			(name, parent, parenttype, parentfield, docstatus, doc_type, doc_name, display_name, idx) values
-			(%s, 'Projects', 'Module Def', 'items', 0, 'Forms', 'Ticket', 'Task', 1)""", make_autoname('MDI.#####'))
-
-	if not sql("select name from `tabModule Def Item` where parent='Projects' and doc_name='Timesheet'"):
-		sql("""insert into `tabModule Def Item`
-			(name, parent, parenttype, parentfield, docstatus, doc_type, doc_name, display_name, idx) values
-			(%s, 'Projects', 'Module Def', 'items', 0, 'Forms', 'Timesheet', 'Timesheet', 2)""", make_autoname('MDI.#####'))
-
-	if not sql("select name from `tabModule Def Item` where parent='Projects' and doc_name='Projects'"):
-		sql("""insert into `tabModule Def Item`
-			(name, parent, parenttype, parentfield, docstatus, doc_type, doc_name, display_name, idx) values
-			(%s, 'Projects', 'Module Def', 'items', 0, 'Pages', 'Projects', 'Gantt Chart', 1)""", make_autoname('MDI.#####'))
-
-elif patch_no == 59:
-	webnotes.conn.set_value('Control Panel',None,'mail_footer','')
-	webnotes.conn.set_global('global_mail_footer','<div style="margin-top:8px; padding: 8px; font-size: 11px; text-align:right; border-top: 1px solid #AAA">Sent via <a href="https://www.erpnext.com">ERPNext</a></div>')
-elif patch_no == 60:
-	sql("delete from `tabModule Def Item` where display_name = 'Point of Sales'")
-elif patch_no == 61:
-	sql("delete from `tabTDS Category Account` where company not in (select name from tabCompany)")
-elif patch_no == 62:
-	# Import Supplier Quotation
-	import_from_files(record_list=[['srm','doctype','supplier_quotation']])
-
-	# Adding Status Filter
-	sql("update tabDocType set search_fields = concat('status,',search_fields) where name IN ('Delivery Note','Leave Transaction')")
-	# Import Other Charges
-
-	import_from_files(record_list=[['setup','doctype','other_charges']])
-elif patch_no == 63:
-	sql("update `tabDocField` set permlevel = 1 where fieldname in ('return_date', 'return_details') and parent = 'Sales and Purchase Return Wizard'")
-	import_from_files(record_list = [['accounts', 'doctype', 'rv_detail'], ['material_management', 'doctype', 'sales_and_purchase_return_wizard'], ['material_management', 'doctype', 'stock_entry']])
-
-elif patch_no == 64:
-	sql("update tabDocField set `hidden` = 1, `print_hide` = 1, `report_hide` = 1 where options in ('RFQ','Supplier Quotation')")
-	sql("update tabDocType set `read_only` = 1, in_create = 1 where name in ('RFQ','Supplier Quotation')")
-	sql("update tabDocField set `report_hide` = 0 where fieldname in ('email_id','phone_1','fax_1') and parent = 'Customer'")
-elif patch_no == 65:
-	# Monthly Trend Analyzer <-> Trend Analyzer
-	sql("update `tabSearch Criteria` set criteria_name = 'Trend Analyzer' where criteria_name = 'Monthly Trend Analyzer' and name = 'SRCH/00159'")
-	sql("update `tabModule Def Item` set display_name = 'Trend Analyzer' where parent = 'Analysis' and display_name = 'Monthly Trend Analyzer'")
-elif patch_no == 66:
-	import webnotes
-	webnotes.conn.set_global("system_message", """<h3>UI Updates</h3>Based on user feedback, we have made a couple of changes in the UI:<ul><li>Sidebar menus are now collapsable</li><li>Forms are now scrollable (we removed the confusing tabs)</li><li>Feed is a lot more descriptive</li></ul>Do send us your feedback!""")
-	webnotes.conn.set_global("system_message_id", "4")
-
-	sql("update `tabModule Def Item` set doc_type = 'Setup Forms' where doc_name in ('TDS Payment', 'TDS Return Acknowledgement', 'Form 16A', 'Period Closing Voucher', 'IT Checklist')")
-	from webnotes.session_cache import clear_cache
-	clear_cache(webnotes.session['user'])
-elif patch_no == 67:
-	sql("update `tabDocField` set in_filter = 1 where fieldname = 'brand' and parent = 'RV Detail'")
-	sql("delete from `tabModule Def Item` where (display_name = 'Sales Invoice' and parent = 'CRM') or (display_name = 'Purchase Invoice' and parent = 'SRM')")
-elif patch_no == 68:
-	from webnotes.modules.import_module import import_from_files
-	import_from_files(record_list=[['hr','doctype','employee'],['roles','Role','Employee']])
-elif patch_no == 69:
-	# delete flds from employee master
-	p = get_obj('Patch Util')
-	emp_del_flds = ['month_of_birth']
-	for f in emp_del_flds:
-		p.delete_field('Employee', f)
-
-	sql("Update tabDocField set `default` = 'Active' where fieldname = 'status' and parent = 'Employee'")
-
-	# map parent flds
-	fld_map = ['cell_number', 'personal_email', 'person_to_be_contacted', 'relation', 'emergency_phone_number', 'pan_number', 'passport_number', 'date_of_issue', 'valid_upto', 'place_of_issue', 'marital_status', 'blood_group', 'permanent_accommodation_type']
-
-	emp_prof = sql("select t1.name, t1.employee, t1.permanent_address_line_1, t1.permanent_address_line_2, t1.city1, t1.state1, t1.country1, t1.pin_code1, t1.phn_no1, t1.present_address_line_1, t1.present_address_line_2, t1.city2, t1.state2, t1.country2, t1.pin_code2, t1.phn_no2, t1.fathers_name, t1.fathers_occupation, t1.mothers_name, t1.mothers_occupation, t1.spouses_name, t1.spouses_occupation, t1.height_cms, t1.weight_kgs, t1.allergies, t1.other_medical_concerns, t1.physical_handicap from `tabEmployee Profile` t1, `tabEmployee` t2 where t1.employee = t2.name")
-	for e in emp_prof:
-		prof_obj = get_obj('Employee Profile', e[0])
-		emp_obj = get_obj('Employee', e[1])
-		for d in fld_map:
-			emp_obj.doc.fields[d] = prof_obj.doc.fields[d]
-		emp_obj.doc.current_accommodation_type = prof_obj.doc.present_accommodation_type
-
-		# address
-		per_addr = cstr(e[2]) + '\n' + cstr(e[3]) + '\n' + cstr(e[4]) + '\n' + cstr(e[5]) + ', ' + cstr(e[6]) + '\n' + 'PIN - ' + cstr(e[7]) + '\n' + 'Ph. No' + cstr(e[8])
-		cur_addr = cstr(e[9]) + '\n' + cstr(e[10]) + '\n' + cstr(e[11]) + '\n' + cstr(e[12]) + ', ' + cstr(e[13]) + '\n' + 'PIN - ' + cstr(e[14]) + '\n' + 'Ph. No' + cstr(e[15])
-		emp_obj.doc.permanent_address = per_addr
-		emp_obj.doc.current_address = cur_addr
-		#family
-		fam = "Father's Name: " + cstr(e[16]) + '\n' + "Father's Occupation: " + cstr(e[17]) + '\n' + "Mother's Name: " + cstr(e[18]) + '\n' + "Mother's Occupation: " + cstr(e[19]) + '\n' + "Spouse's Name: " + cstr(e[20]) + '\n' + "Spouse's Occupation: " + cstr(e[21])
-		emp_obj.doc.family_background = fam
-		# health
-		health = 'Height(cms): ' + cstr(e[22]) + '\n' + 'Weight(kgs): ' + cstr(e[23]) + '\n' + 'Allergies: ' +cstr( e[24]) + '\n' + 'Other Medical Concern: ' + cstr(e[25]) + '\n' + 'Physically Handicapped(if any): ' + cstr(e[26])
-		emp_obj.doc.health_details = health
-		emp_obj.doc.save()
-
-
-	# map tables
-	tbl_list = ['Experience In Company Detail', 'Previous Experience Detail', 'Educational Qualifications Detail']
-	for t in tbl_list:
-		sql("update `tab%s` t1, `tabEmployee Profile` t2 set t1.parent = t2.employee, t1.parenttype = 'Employee' where t1.parent = t2.name" % t)
-
-
-	# overwrite idx?????????
-
-
-	# delete emp profile
-	webnotes.model.delete_doc('DocType', 'Employee Profile')
-	for e in emp_prof:
-		webnotes.model.delete_doc('Employee Profile', e[0])
-
-elif patch_no == 70:
-	# update search criteria module -> System
-	sql("update tabDocType set module='System' where name='Search Criteria'")
-
-	# Cleanups to Contact
-	sql("update tabDocField set fieldtype='Data' where options='Designation' and parent='Contact'")
-	sql("update tabDocField set fieldtype='Data' where options='Department' and parent='Contact'")
-	sql("update tabDocField set depends_on='eval:(cint(doc.is_customer) || cint(doc.is_supplier) || cint(doc.is_sales_partner))' where fieldname='is_primary_contact' and parent='Contact'")
-
-	# import Contact, Employee
-	from webnotes.modules.import_module import import_from_files
-	import_from_files(record_list=[['utilities','doctype','contact']])
-
-
-	# remove last_contact_date from Lead
-	sql("delete from tabDocField where fieldname='last_contact_date' and parent='Lead'")
-
-elif patch_no == 71:
-	# Make Stock Qty and Conversion Factor field editable. Also no need to mention Conversion factor in table can do it directly
-	sql("update `tabDocField` set `permlevel` = 0, `width` = '100px', `trigger` = 'Client' where parent IN ('PO Detail','Purchase Receipt Detail') and fieldname in ('stock_qty','conversion_factor')")
-	sql("update `tabDocField` set `width` = '100px' where parent IN ('PO Detail','Purchase Receipt Detail') and fieldname = 'stock_uom'")
-
-elif patch_no == 72:
-	# Core Patch
-	# ----------
-
-	from webnotes.modules.import_module import import_from_files
-
-	# import module def
-	import_from_files(record_list = [['core', 'Module Def', 'Core']])
-elif patch_no == 73:
-	# set module in DocTypes
-	sql("update tabDocType set module='Core' where name in ('DocType', 'DocField', 'DocPerm', 'Role', 'UserRole', 'Profile', 'Print Format', 'DocFormat', 'Control Panel', 'Event', 'Event Role', 'Event User', 'DefaultValue', 'Default Home Page', 'File', 'File Group', 'File Data', 'Letter Head', 'Module Def', 'Module Def Item', 'Module Def Role', 'Page', 'Page Role', 'Search Criteria', 'DocType Label', 'DocType Mapper', 'Field Mapper Detail', 'Table Mapper Detail')")
-
-	# set module in Page
-	sql("update tabPage set module='Core' where name='Login Page'")
-
-	# move file browser to Tools
-	sql("update tabPage set module='Tools' where name='File Browser'")
-	sql("update tabDocType set module='Tools' where name='File Browser Control'")
-	sql("update tabDocType set module='Application Internal' where name='Profile Control'")
-elif patch_no == 74:
-	p = get_obj('Patch Util')
-	# permission
-	p.delete_permission('Employee', 'Administrator', 0)
-	p.delete_permission('Employee', 'Administrator', 1)
-	p.add_permission('Employee', 'Employee', 0, read = 1, match = 'owner')
-	p.add_permission('Employee', 'Employee', 1, read = 1, match = 'owner')
-	sql("delete from `tabDocField` where parent = 'Employee' and label = 'Payroll Rule'")
-elif patch_no == 75:
-	#sal structure patch
-	# import
-	from webnotes.modules.import_module import import_from_files
-	import_from_files(record_list=[['hr','doctype','salary_structure'], ['hr','doctype','earning_detail'],['hr','doctype','deduction_detail']])
-elif patch_no == 76:
-	# property
-	p = get_obj('Patch Util')
-	p.set_field_property('Salary Structure', 'is_active', 'default', 'Yes')
-	p.set_field_property('Salary Structure', 'ctc', 'reqd', '1')
-	p.set_field_property('Earning Detail', 'modified_value', 'width', '')
-	p.set_field_property('Earning Detail', 'modified_value', 'trigger', 'Client')
-	p.set_field_property('Deduction Detail', 'd_modified_amt', 'width', '')
-	p.set_field_property('Earning Detail', 'd_modified_amt', 'trigger', 'Client')
-	sql("Update tabDocField set `description` = 'You can create more earning and deduction type from Setup --> HR' where label = 'Earning & Deduction' and parent = 'Salary Structure' and fieldtype = 'Section Break'")
-
-	# delete
-	sql("update `tabSalary Structure` set net_pay = total")
-	sql("delete from tabDocField where label in ('LWP Help', 'Calculate Total', 'Total') and parent = 'Salary Structure'")
-	sql("delete from tabDocPerm where parent in ('Earning Detail', 'Deduction Detail')")
-
-
-	# permission
-	p.delete_permission('Salary Structure', 'Administrator', 0)
-	p.delete_permission('Salary Structure', 'Administrator', 1)
-	p.add_permission('Salary Structure', 'Employee', 0, read = 1, match = 'owner')
-	p.add_permission('Salary Structure', 'Employee', 1, read = 1, match = 'owner')
-elif patch_no == 77:
-	# sal slip patch
-	# import
-	from webnotes.modules.import_module import import_from_files
-	import_from_files(record_list=[['hr','doctype','salary_slip'], ['hr','doctype','ss_earning_detail'],['hr','doctype','ss_deduction_detail'], ['mapper', 'DocType Mapper', 'Salary Structure-Salary Slip']])
-elif patch_no == 78:
-	p = get_obj('Patch Util')
-	# delete
-	sql("update `tabSalary Slip` set leave_encashment_amount = encashment_amount")
-	p.delete_field('Salary Slip', 'encashment_amount')
-	p.delete_field('Salary Slip', 'year')
-	p.delete_field('Salary Slip', 'flag')
-	sql("delete from tabDocField where label = 'Process Payroll' and parent = 'Salary Slip'")
-
-	# field property
-	p.set_field_property('Salary Slip', 'bank_name', 'permlevel', '1')
-	p.set_field_property('Salary Slip', 'leave_without_pay', 'permlevel', '0')
-	p.set_field_property('Salary Slip', 'leave_without_pay', 'trigger', 'Client')
-	p.set_field_property('SS Earning Detail', 'e_type', 'permlevel', '0')
-	p.set_field_property('SS Earning Detail', 'e_type', 'fieldtype', 'Link')
-	p.set_field_property('SS Earning Detail', 'e_type', 'options', 'Earning Type')
-	p.set_field_property('SS Deduction Detail', 'd_type', 'permlevel', '0')
-	p.set_field_property('SS Deduction Detail', 'd_type', 'fieldtype', 'Link')
-	p.set_field_property('SS Deduction Detail', 'd_type', 'options', 'Deduction Type')
-	sql("update `tabSS Earning Detail` set e_modified_amount = e_amount")
-	sql("update `tabSS Deduction Detail` set d_modified_amount = d_amount")
-
-	# permission
-	p.delete_permission('Salary Slip', 'Administrator', 0)
-	p.delete_permission('Salary Slip', 'Administrator', 1)
-	p.add_permission('Salary Slip', 'Employee', 0, read = 1, match = 'owner')
-	p.add_permission('Salary Slip', 'Employee', 1, read = 1, match = 'owner')
-elif patch_no == 79:
-	# Import Modules
-	import_from_files(record_list=[['hr','doctype','leave_application'],['hr','doctype','leave_allocation'],['hr','doctype','leave_control_panel'],['hr','doctype','holiday_list'],['hr','doctype','holiday_list_detail'],['hr','Module Def','HR']])
-elif patch_no == 80:
-	# Holiday List
-	sql("update `tabHoliday List Detail` set description = holiday_name")
-	sql("delete from tabDocField where parent = 'Holiday List Detail' and fieldname = 'holiday_name'")
-	sql("update tabDocField set fieldtype = 'Select', options = 'link:Fiscal Year' where parent = 'Holiday List' and fieldname = 'fiscal_year'")
-	sql("delete from tabDocPerm where role in ('Administrator','HR User') and parent = 'Holiday List'")
-
-	# Leave Control Panel
-	# --------------------
-	sql("delete from `tabDocField` where parent = 'Leave Control Panel' and label in ('Leave Control Panel','Allocation Details') and fieldtype = 'Section Break'")
-	sql("delete from tabDocField where parent = 'Leave Control Panel' and fieldname in ('col_brk3','allocation_type','col_brk2','from_date','to_date','leave_transaction_type','posting_date')")
-	sql("update tabDocField set fieldtype = 'Select', options = 'link:Fiscal Year' where parent = 'Leave Control Panel' and fieldname = 'fiscal_year'")
-	sql("update tabDocField set fieldtype = 'Select', options = 'link:Leave Type' where parent = 'Leave Control Panel' and fieldname = 'leave_type'")
-	sql("update tabDocField set reqd = 1 where parent = 'Leave Control Panel' and fieldname = 'no_of_days'")
-
-	# Leave Application
-	# ------------------
-	for d in sql("select * from `tabLeave Transaction` where leave_transaction_type = 'Deduction' and ifnull(deduction_type, '') = 'Leave'", as_dict = 1):
-		lp = Document('Leave Application')
-		lp.employee = d['employee']
-		lp.leave_type = d['leave_type']
-		lp.posting_date = d['date']
-		lp.fiscal_year = d['fiscal_year']
-		lp.leave_balance = d['pre_balance']
-		lp.half_day = d['half_day']
-		lp.from_date = d['from_date']
-		lp.to_date = d['to_date']
-		lp.total_leave_days = d['total_leave']
-		lp.description = d['reason']
-		lp.docstatus = cint(d['docstatus'])
-		lp.save(1)
-
-	# Leave Allocation
-	# -----------------
-	for d in sql("select * from `tabLeave Transaction` where leave_transaction_type = 'Allocation'", as_dict = 1):
-		la = Document('Leave Allocation')
-		la.employee = d['employee']
-		la.leave_type = d['leave_type']
-		la.posting_date = d['date']
-		la.fiscal_year = d['fiscal_year']
-		la.new_leaves_allocated = d['total_leave']
-		la.total_leaves_allocated = d['total_leave']
-		la.description = d['reason']
-		la.docstatus = cint(d['docstatus'])
-		la.save(1)
-
-	# Payroll Module Def
-	# -------------------
-	sql("delete from `tabModule Def Item` where doc_name = 'Leave Transaction' and display_name = 'Leave Transaction' and parent = 'Payroll' and doc_type = 'Forms'")
-
-elif patch_no == 81:
-	# Import Modules
-	import_from_files(record_list=[['hr','Module Def','HR']])
-elif patch_no == 82:
-	sql("update tabDocType set search_fields = 'employee,leave_type,total_leaves_allocated,fiscal_year' where name = 'Leave Allocation'")
-	sql("update tabDocType set search_fields = 'employee,leave_type,from_date,to_date,total_leave_days,fiscal_year' where name = 'Leave Application'")
-elif patch_no == 83:
-	# delete leave transaction
-	webnotes.conn.sql("set foreign_key_checks=0")
-	sql("delete from `tabLeave Transaction`")
-	import webnotes.model
-	webnotes.model.delete_doc('DocType','Badge Settings Detail')
-	webnotes.model.delete_doc('DocType','Leave Transaction')
-	webnotes.conn.sql("set foreign_key_checks=1")
-elif patch_no == 84:
-	p = get_obj('Patch Util')
-	p.set_field_property('SS Earning Detail', 'e_amount', 'permlevel', '1')
-	p.set_field_property('SS Deduction Detail', 'd_amount', 'permlevel', '1')
-elif patch_no == 85:
-	# permission
-	p = get_obj('Patch Util')
-	p.add_permission('Leave Application', 'Employee', 0, read = 1, write = 1, create = 1, submit = 1, cancel = 1, amend = 1, match = 'owner')
-	p.add_permission('Leave Application', 'Employee', 1, read = 1, match = 'owner')
-	p.add_permission('Leave Allocation', 'HR User', 0, read = 1, write = 1, create = 1, submit = 1, cancel = 1, amend = 1, match = 'owner')
-	p.add_permission('Leave Allocation', 'HR User', 1, read = 1)
-	sql("update tabDocPerm set `match` = '' where parent = 'Leave Application' and role = 'HR User'")
-elif patch_no == 86:
-	# Import Modules
-	import_from_files(record_list=[['hr','doctype','leave_type']])
-elif patch_no == 87:
-	sql("update `tabLeave Type` set is_lwp = 1 where name = 'Leave Without Pay'")
-elif patch_no == 88:
-	# Import Modules
-	import_from_files(record_list=[['hr','doctype','leave_allocation']])
-
-elif patch_no == 89:
-	sql("delete from `tabModule Def Item` where doc_type = 'Setup Forms' and doc_name in ('Payroll Rule', 'IT Checklist', 'Employee Profile') and parent = 'Payroll'")
-	sql("update `tabDocField` set `hidden` = 1, `print_hide` = 1, `report_hide` = 1 where parent = 'Leave Type' and fieldname = 'is_encash'")
-elif patch_no == 90:
-	sql("update `tabLeave Allocation` set docstatus = 1")
-elif patch_no == 91:
-	import webnotes
-	webnotes.conn.set_global("system_message", """<h3>System Updates</h3>Based on user feedback, we have cleaned up HR module (Partly):<ul><li>Employee and Employee Profile are merged into a single document</li><li>Salary Structure and Salary Slip are now more user friendly</li><li>Leave Transaction document is now divided into 2 documents Leave Application and Leave Allocation</li></ul>We will work on Reports, Attendance and other documents of Payroll module next week<br><br> Do send us your feedback!""")
-	webnotes.conn.set_global("system_message_id", "5")
-elif patch_no == 92:
-	sql("update tabDocField set label = 'Get Charges' where parent IN ('Sales Order','Delivery Note','Receivable Voucher') and label = 'Get Other Charges' and fieldtype = 'Button'")
-	# Automated Other Charges Calculation basis
-	sql("update tabDocField set options = '', `trigger` = 'Client' where parent IN ('Quotation','Sales Order','Delivery Note','Receivable Voucher') and label = 'Get Charges' and fieldtype = 'Button'")
-elif patch_no == 93:
-	sql("update `tabTable Mapper Detail` set validation_logic = 'qty > ifnull(billed_qty,0) and docstatus = 1' where parent = 'Sales Order-Receivable Voucher' and from_table = 'Sales Order Detail'")
-	sql("update `tabField Mapper Detail` set from_field = 'customer' where to_field = 'customer' and parent = 'Sales Order-Receivable Voucher'")
-elif patch_no == 94:
-	import_from_files(record_list=[['selling','doctype','sms_center']])
-elif patch_no == 95:
-	import_from_files(record_list=[['mapper','DocType Mapper','Sales Order-Receivable Voucher'], ['mapper','DocType Mapper','Delivery Note-Receivable Voucher']])
-elif patch_no == 96:
-	sql("delete from `tabModule Def Item` where doc_type = 'Reports' and display_name = 'Cenvat Credit - Input or Capital Goods' and parent = 'Accounts'")
-elif patch_no == 97:
-	sql("update tabFeed set doc_label = 'Feed', doc_name = name where ifnull(doc_name,'') = '' and ifnull(doc_label,'') = ''")
-elif patch_no == 98:
-	import_from_files(record_list=[['accounts','doctype','payable_voucher']])
-elif patch_no == 99:
-	import_from_files(record_list=[['accounts','doctype','account']])
-elif patch_no == 100:
-	p = get_obj('Patch Util')
-	p.set_field_property('Account', 'level', 'hidden', '1')
-	p.set_field_property('Account', 'level', 'print_hide', '1')
-	p.set_field_property('Account', 'account_type', 'search_index', '0')
-	p.set_field_property('TDS Detail', 'tds_category', 'width', '150px')
-	p.set_field_property('TDS Detail', 'special_tds_rate_applicable', 'width', '150px')
-	p.set_field_property('TDS Detail', 'special_tds_rate', 'width', '150px')
-	p.set_field_property('TDS Detail', 'special_tds_limit', 'width', '150px')
-elif patch_no == 101:
-	# Leave Application Details and Leave Allocation Details
-	sql("update tabDocField set search_index = 1, in_filter = 1 where fieldname in ('employee','leave_type','fiscal_year') and parent in ('Leave Application','Leave Allocation')")
-	get_obj('DocType','Leave Application').doc.save()
-	get_obj('DocType','Leave Allocation').doc.save()
-elif patch_no == 102:
-	# make item description field editable in production order
-	sql("update tabDocField set permlevel = 0 where fieldname = 'description' and parent = 'Production Order'")
-elif patch_no == 103:
-	sql("update tabDocField set fieldname = '' where fieldtype = 'HTML'")
-elif patch_no == 104:
-	import_from_files(record_list=[['hr','search_criteria','stdsrch_00001'],['hr','search_criteria','stdsrch_00002'],['hr','search_criteria','stdsrch_00003'],['hr','Module Def','HR'],['hr','doctype','leave_application'],['hr','doctype','leave_allocation']])
-
-elif patch_no == 105:
-	# Employee Leave Balance
-	sql("delete from `tabModule Def Item` where parent = 'Payroll' and doc_type = 'Reports' and display_name IN ('Employeewise Leave Transaction Details','Employeewise Balance Leave Report')")
-	# Update Search Fields
-	sql("update tabDocType set search_fields = 'employee,employee_name,leave_type,from_date,to_date,total_leave_days,fiscal_year' where name = 'Leave Application'")
-	sql("update tabDocType set search_fields = 'employee,employee_name,leave_type,total_leaves_allocated,fiscal_year' where name = 'Leave Allocation'")
-elif patch_no == 106:
-	for d in sql("select name,employee,employee_name from `tabLeave Allocation`"):
-		if not cstr(d[2]):
-			sql("update `tabLeave Allocation` set employee_name = '%s' where name = '%s'" % (webnotes.conn.get_value('Employee',cstr(d[1]),'employee_name'), cstr(d[0])))
-	for d in sql("select name,employee,employee_name from `tabLeave Application`"):
-		if not cstr(d[2]):
-			sql("update `tabLeave Application` set employee_name = '%s' where name = '%s'" % (webnotes.conn.get_value('Employee',cstr(d[1]),'employee_name'), cstr(d[0])))
-elif patch_no == 107:
-	sql("delete from `tabDocField` where fieldname = 'fiscal_year' and parent = 'Employee'")
-elif patch_no == 108:
-	import_from_files(record_list=[['hr','search_criteria','srch_std_00013']])
-elif patch_no == 109:
-	import_from_files(record_list=[['hr','search_criteria','srch_std_00015']])
-elif patch_no == 110:
-	import_from_files(record_list=[['hr','doctype','salary_structure'], ['hr', 'doctype', 'salary_slip']])
-elif patch_no == 111:
-	sql("update tabDocType set search_fields = 'transfer_date, from_warehouse, to_warehouse, purpose, remarks' where name = 'Stock Entry'")
-elif patch_no == 112:
-	sql("delete from tabDocField where label = 'Get Other Charges' and fieldtype = 'Button' and parent = 'Receivable Voucher'")
-elif patch_no == 113:
-	sql("update tabDocField set reqd = 1 where parent = 'Customer' and fieldname = 'phone_1'")
-elif patch_no == 114:
-	for d in sql("select name, master_name, credit_days, credit_limit from tabAccount where master_type = 'Customer'"):
-		if cstr(d[1]):
-			days, limit = cint(d[2]), flt(d[3])
-			cust_det = sql("select credit_days, credit_limit from tabCustomer where name = '%s'" % (cstr(d[1])))
-			if not days: days = cust_det and cint(cust_det[0][0]) or 0
-			if not limit: limit = cust_det and flt(cust_det[0][1]) or 0
-			sql("COMMIT")
-			sql("START TRANSACTION")
-			sql("update tabAccount set credit_days = '%s', credit_limit = '%s' where name = '%s'" % (days, limit, cstr(d[0])))
-			sql("COMMIT")
-
-elif patch_no == 115:
-	# patch for timesheet cleanup
-	from webnotes.model import delete_doc
-	delete_doc('DocType', 'Timesheet Detail')
-
-	from webnotes.modules.import_module import import_from_files
-	import_from_files(record_list = [['Projects', 'DocType', 'Timesheet'], ['Projects', 'DocType', 'Timesheet Detail'], ['Projects', 'DocType', 'Activity Type']])
-
-elif patch_no == 116:
-	# again!
-	from webnotes.model import delete_doc
-	delete_doc('DocType', 'Timesheet Detail')
-
-	from webnotes.modules.import_module import import_from_files
-	import_from_files(record_list = [['Projects', 'DocType', 'Timesheet Detail']])
-elif patch_no == 117:
-	op = '\n' + 'Walk In'
-	sql("update `tabDocField` set `options` = concat(options, %s) where parent = 'Enquiry' and fieldname = 'source' and options not like '%%Walk%%'", op)
-elif patch_no == 118:
-	from webnotes.utils import get_defaults
-	ss = sql("select name, net_pay from `tabSalary Slip`")
-	for d in ss:
-		if d[1]:
-			w = get_obj('Sales Common').get_total_in_words(get_defaults()['currency'], d[1])
-			sql("update `tabSalary Slip` set net_pay_in_words = '%s' where name = '%s'" % (w, d[0]))
-elif patch_no == 119:
-	sql("update tabDocType set in_create = 1 where name = 'Profile'")
-elif patch_no == 120:
-	sql("update tabDocField set permlevel = 0 where parent = 'Sales and Purchase Return Wizard' and fieldname = 'return_date'")
-elif patch_no == 121:
-	import_from_files(record_list = [['CRM', 'DocType', 'Return Detail'], ['Material Management', 'DocType', 'Sales and Purchase Return Wizard']])
-elif patch_no == 122:
-	sql("delete from tabDocField where (fieldname = 'serial_no' or label = 'Warrany Status') and parent = 'Sales Order'")
-elif patch_no == 123:
-	import_from_files(record_list = [['CRM', 'Module Def', 'CRM'], ['CRM', 'Search Criteria', 'STDSRCH/00004']])
-elif patch_no == 124:
-	import webnotes
-	webnotes.conn.set_global("system_message", """<h3>Updates(New)</h3>We have added a new report in the Selling Module.<br><br><b>Sales Personwise Transaction Summary: </b>In this report you can see sales person's contribution in a particular order, delivery or invoice. You can select voucher type in "Based On" filter.<br><br> Do send us your feedback!""")
-	webnotes.conn.set_global("system_message_id", "5")
-elif patch_no == 125:
-	import_from_files(record_list = [['Material Management', 'DocType', 'Delivery Note']])
-elif patch_no == 126:
-	sql("delete from tabDocField where parent = 'Delivery Note' and label in ('Make Sales Invoice', 'Make Installation Note', 'Intro Note')")
-elif patch_no == 127:
-	sql("delete from tabDocPerm where role = 'All' and parent = 'Expense Voucher' and (permlevel = 0 or permlevel = 2)")
-	p = get_obj('Patch Util')
-	p.add_permission('Expense Voucher', 'Employee', 0, read = 1, write = 1, create = 1, submit = 1, cancel = 1, amend = 1, match = 'owner')
-	p.add_permission('Expense Voucher', 'HR Manager', 0, read = 1, write = 1, create = 1, submit = 1, cancel = 1, amend = 1)
-	p.add_permission('Expense Voucher', 'HR User', 0, read = 1, write = 1, create = 1, submit = 1, cancel = 1, amend = 1)
-elif patch_no == 128:
-	from webnotes.modules import import_module
-	import_module.import_from_files(record_list=[['selling','doctype','sales_order'], ['selling','doctype','sales_order_detail'],  ['stock','doctype','delivery_note'], ['stock','doctype','delivery_note_detail']])
-elif patch_no == 129:
-	sql("update `tabTable Mapper Detail` set validation_logic = '(qty > ifnull(billed_qty, 0) or amount > ifnull(billed_amt, 0)) and docstatus = 1' where parent = 'Sales Order-Receivable Voucher' and from_table = 'Sales Order Detail' and to_table = 'RV Detail'")
-	sql("update `tabTable Mapper Detail` set validation_logic = '(qty > ifnull(billed_qty, 0) or amount > ifnull(billed_amt, 0)) and docstatus = 1' where parent = 'Delivery Note-Receivable Voucher' and from_table = 'Delivery Note Detail' and to_table = 'RV Detail'")
-elif patch_no == 130:
-	# update from rv
-	from webnotes.model.code import get_obj
-	from webnotes.utils import cstr
-	for d in sql("select name, docstatus from `tabReceivable Voucher` where ifnull(docstatus,0) != 0"):
-		sql("COMMIT")
-		sql("START TRANSACTION")
-		try:
-			obj = get_obj('Receivable Voucher', cstr(d[0]), with_children = 1)
-			is_submit = 1
-			if cint(d[1]) == 2: is_submit = 0
-			get_obj('Sales Common').update_prevdoc_detail(is_submit, obj)
-		except:
-			pass
-		sql("COMMIT")
-
-	# update from dn
-	from webnotes.model.code import get_obj
-	for d in sql("select name, docstatus from `tabDelivery Note` where ifnull(docstatus,0) != 0"):
-		sql("COMMIT")
-		sql("START TRANSACTION")
-		try:
-			obj = get_obj('Delivery Note', cstr(d[0]), with_children = 1)
-			is_submit = 1
-			if cint(d[1]) == 2: is_submit = 0
-			get_obj('Sales Common').update_prevdoc_detail(is_submit, obj)
-		except:
-			pass
-		sql("COMMIT")
-elif patch_no == 131:
-	sql("update `tabDocType` set allow_trash = 1 where name = 'Purchase Other Charges'")
-	sql("update tabDocPerm set `cancel` = 1 where parent = 'Purchase Other Charges' and permlevel = 0 and `read` = 1 and `write` = 1")
-elif patch_no == 132:
-	sql("update tabDocField set no_copy = 0 where parent = 'Receivable Voucher' and fieldname = 'customer'")
-elif patch_no == 133:
-	from webnotes.modules import import_module
-	import_module.import_from_files(record_list=[['accounts','doctype','receivable_voucher']])
-elif patch_no == 134:
-	sql("update tabDocField set no_copy = 1 where parent = 'Receivable Voucher' and fieldname = 'posting_time'")
-elif patch_no == 135:
-	sql("update tabDocField set `default` = 'Today' where parent = 'Receivable Voucher' and fieldname = 'due_date'")
-elif patch_no == 136:
-	from webnotes.modules import import_module
-	import_module.import_from_files(record_list=[['accounts','doctype','rv_detail']])
-elif patch_no == 137:
-	from webnotes.modules import import_module
-	import_module.import_from_files(record_list=[['setup','doctype','price_list']])
-elif patch_no == 138:
-	sql("update `tabDocType` set allow_attach = 1 where name = 'Price List'")
-elif patch_no == 139:
-	from webnotes.modules import import_module
-	import_module.import_from_files(record_list=[['mapper','DocType Mapper','Sales Order-Receivable Voucher'], ['mapper','DocType Mapper','Delivery Note-Receivable Voucher']])
-elif patch_no == 140:
-	from webnotes.modules import import_module
-	import_module.import_from_files(record_list=[['accounts','doctype','rv_detail']])
-elif patch_no == 141:
-	sql("delete from tabDocField where (fieldname = 'letter_head' or label = 'Letter Head') and parent = 'Company'")
-elif patch_no == 142:
-	# fixes to letter head and personalize
-	from webnotes.model import delete_doc
-
-	delete_doc('DocType', 'Batch Settings')
-	delete_doc('DocType', 'Batch Settings Detail')
-	delete_doc('DocType', 'Social Badge')
-	delete_doc('Page', 'Personalize Page')
-	delete_doc('DocType', 'Personalize Page Control')
-
-	import_from_files(record_list=[['core','doctype','letter_head'], ['setup','doctype','personalize']])
-elif patch_no == 144:
-	webnotes.conn.sql("update tabDocField set fieldtype='Code' where parent='Letter Head' and fieldname='content'")
-elif patch_no == 145:
-	sql("update `tabDocField` set permlevel=1 where fieldname = 'group_or_ledger' and parent = 'Account'")
-elif patch_no == 146:
-	import_from_files(record_list=[['accounts','doctype','account']])
-elif patch_no == 147:
-	import_from_files(record_list=[['mapper', 'DocType Mapper', 'Purchase Order-Payable Voucher'], ['mapper', 'DocType Mapper', 'Purchase Receipt-Payable Voucher'], ['mapper', 'DocType Mapper', 'Purchase Order-Purchase Receipt']])
-elif patch_no == 148:
-	sql("delete from `tabDocField` where (fieldname = 'account_balances' or label = 'Balances') and parent = 'Account'")
-	sql("update tabDocType set istable = 0, section_style = 'Simple', search_fields = 'account, period, fiscal_year, balance' where name = 'Account Balance'")
-	sql("update tabDocField set permlevel = 0 where parent = 'Account Balance'")
-	p = get_obj('Patch Util')
-	p.add_permission('Account Balance', 'Accounts User', 0, read = 1)
-	p.add_permission('Account Balance', 'Accounts Manager', 0, read = 1)
-	import_from_files(record_list=[['accounts','doctype','account_balance']])
-elif patch_no == 149:
-	sql("update `tabAccount Balance` set account = parent")
-elif patch_no == 150:
-	sql("update tabDocField set in_filter = 1, search_index = 1 where parent = 'Account Balance' and fieldname in ('account', 'period', 'fiscal_year', 'start_date', 'end_date')")
-	ac_bal = Document("DocType", "Account Balance")
-	ac_bal.save()
-elif patch_no == 151:
-	sql("delete from tabDocField where label = 'Add / Manage Contacts' and fieldtype = 'Button' and parent = 'Customer'")
-	sql("delete from `tabField Mapper Detail` where parent = 'Sales Order-Delivery Note' and from_field = 'note' and to_field = 'note'")
-elif patch_no == 152:
-	import_from_files(record_list=[['selling','doctype','sales_order'], ['stock','doctype','delivery_note'], ['selling','doctype','customer'], ['selling','doctype','shipping_address'], ['mapper', 'DocType Mapper', 'Sales Order-Delivery Note']])
-elif patch_no == 153:
-	sql("delete from `tabDocField` where fieldname = 'sales_person' and parent = 'Customer'")
-elif patch_no == 154:
-	import_from_files(record_list=[['stock','doctype','serial_no'], ['support','doctype','customer_issue']])
-elif patch_no == 155:
-	for d in sql("select name, item_code from `tabSerial No`"):
-		sql("COMMIT")
-		sql("START TRANSACTION")
-		sql("update `tabSerial No` set item_name = '%s' where name = '%s'" % (webnotes.conn.get_value('Item',cstr(d[1]),'item_name'), cstr(d[0])))
-		sql("COMMIT")
-elif patch_no == 156:
-	sql("update tabDocField set fieldtype = 'Code' where fieldname = 'html' and parent = 'Print Format'")
-elif patch_no == 157:
-	import_from_files(record_list=[['accounts', 'doctype', 'journal_voucher'], ['accounts', 'Print Format', 'Payment Receipt Voucher'], ['accounts', 'Print Format', 'Cheque Printing Format']])
-elif patch_no == 158:
-	from webnotes.model.doc import addchild
-	sql("delete from tabDocField where parent = 'Customer Issue' and fieldname = 'customer_group'")
-elif patch_no == 159:
-	sql("update tabAccount set account_type = 'Chargeable' where account_name in ('Advertising and Publicity', 'Freight & Forwarding Charges', 'Miscellaneous Expenses', 'Sales Promotion Expenses')")
-elif patch_no == 160:
-	sql("update `tabDocType` set search_fields = 'posting_date, due_date, debit_to, fiscal_year, grand_total, outstanding_amount' where name = 'Receivable Voucher'")
-	sql("update `tabDocType` set search_fields = 'posting_date, credit_to, fiscal_year, bill_no, grand_total, outstanding_amount' where name = 'Payable Voucher'")
-elif patch_no == 161:
-	sql("update tabDocType set autoname = 'field:batch_id' where name = 'Batch'")
-	sql("update tabDocField set no_copy = 1 where parent = 'Batch' and fieldname = 'batch_id'")
-elif patch_no == 162:
-	import_from_files(record_list=[['selling', 'search_criteria', 'sales_order_pending_items1']])
-elif patch_no == 163:
-	sql("delete from `tabModule Def Item` where display_name = 'Sales Orderwise Pending Packing Item Summary' and parent = 'CRM'")
-	import_from_files(record_list=[['selling', 'search_criteria', 'sales_orderwise_pending_qty_to_deliver'], ['selling', 'search_criteria', 'sales_orderwise_pending_amount_to_bill'], ['selling', 'search_criteria', 'delivered_items_to_be_install']])
-elif patch_no == 164:
-	import_from_files(record_list=[['buying', 'search_criteria', 'pending_po_items_to_receive'], ['buying', 'search_criteria', 'pending_po_items_to_bill']])
-elif patch_no == 165:
-	pass
-elif patch_no == 166:
-	import_from_files(record_list=[['buying', 'doctype', 'purchase_order']])
-elif patch_no == 167:
-	if webnotes.conn.get_value('Control Panel', None, 'account_id') not in ['ax0000956', 'ax0001338']:
-		sql("delete from tabDocField where parent = 'Purchase Order' and fieldname in ('test_certificate_required', 'estimated_cost', 'transport', 'vendor_reference', 'transportation_required', 'mode_of_dispatch', 'octroi')")
-elif patch_no == 168:
-	sql("update tabDocField set fieldtype = 'Data', options = 'Suggest' where fieldname = 'bank_name' and parent = 'Employee'")
-elif patch_no == 169:
-	import_from_files(record_list=[['accounts', 'doctype', 'pv_detail'], ['accounts', 'doctype', 'rv_detail']])
-elif patch_no == 170:
-	import_from_files(record_list=[['mapper', 'DocType Mapper', 'Delivery Note-Receivable Voucher']])
-elif patch_no == 171:
-	import_from_files(record_list=[['buying', 'doctype', 'supplier']])
-elif patch_no == 172:
-	import webnotes
-	webnotes.conn.set_global("system_message", """<b>Welcome to the new financial year 2011-2012 !!! </b><br><br> So obvious question in your mind is how to start Entries in the New Fiscal Year in ERPNext? What are the changes you have to make in the system? <br>We have made some guidelines regarding the basic steps you should follow. Please click on link <a href='http://erpnext.blogspot.com/2011/03/how-to-start-entries-in-new-fiscal-year.html'>How to start Entries in the New Fiscal Year in ERPNext?</a>""")
-	webnotes.conn.set_global("system_message_id", "6")
-elif patch_no == 173:
-	sql("delete from tabDocField where label = 'Get Other Charges' and parent = 'Delivery Note'")
-	sql("update tabDocField set reqd = 0 where fieldname = 'posting_time' and parent = 'Serial No'")
-elif patch_no == 174:
-	c = sql("select count(name) from `tabField Mapper Detail` where parent = 'Delivery Note-Receivable Voucher' and from_field = 'description' and to_field = 'description' and match_id = 2")
-	if c and cint(c[0][0]) > 1:
-		sql("update `tabField Mapper Detail` set match_id = 1 where parent = 'Delivery Note-Receivable Voucher' and from_field = 'description' and to_field = 'description' limit 1")
-elif patch_no == 175:
-	import webnotes
-	webnotes.conn.set_global("system_message", """If your financial year starts on 1st April then you have make some changes in the system to start entry in the new year.<br>We have made some guidelines regarding the basic steps you should follow. Please click on link <a href='http://erpnext.blogspot.com/2011/03/how-to-start-entries-in-new-fiscal-year.html'>How to start Entries in the New Fiscal Year in ERPNext?</a>""")
-	webnotes.conn.set_global("system_message_id", "6")
-elif patch_no == 176:
-	sql("update tabDocPerm set role='Guest', `write`=0, `create`=0 where role='Administrator' and parent='Notification Control' limit 1")
-elif patch_no == 177:
-	sql("delete from `tabDocField` where label = 'Next Steps' and parent = 'Purchase Order'")
-	sql("update tabDocField set options = 'Material Issue\nMaterial Receipt\nMaterial Transfer\nSales Return\nPurchase Return\nSubcontracting\nProduction Order' where parent = 'Stock Entry' and fieldname = 'purpose'")
-elif patch_no == 178:
-	import_from_files(record_list = [['hr', 'doctype', 'salary_slip']])
-elif patch_no == 179:
-	from webnotes.utils import get_defaults
-	sl = sql("select name, net_pay from `tabSalary Slip`")
-	for d in sl:
-		in_words = get_obj('Sales Common').get_total_in_words(get_defaults()['currency'], round(flt(d[1])))
-		sql("update `tabSalary Slip` set rounded_total = '%s', total_in_words = '%s' where name = '%s'" % (round(flt(d[1])), in_words, d[0]))
-elif patch_no == 180:
-	sql("delete from tabDocField where parent = 'Salary Slip' and fieldname = 'net_pay_in_words'")
-elif patch_no == 181:
-	import_from_files(record_list = [['accounts', 'doctype', 'journal_voucher']])
-elif patch_no == 182:
-	sql("update tabDocField set options = CONCAT(options, '\nWrite Off Voucher') where fieldname = 'voucher_type' and parent = 'Journal Voucher'")
-elif patch_no == 183:
-	sql("delete from tabDocField where label = 'SMS' and fieldtype = 'Section Break' and parent in  ('Enquiry', 'Lead', 'Sales Order', 'Delivery Note')")
-elif patch_no == 184:
-	from webnotes.model import delete_doc
-	delete_doc('DocType', 'Feed')
-	delete_doc('DocType', 'Feed List')
-	delete_doc('DocType', 'Feed Control')
-
-	# add trigger
-	from webnotes.model.triggers import add_trigger
-	add_trigger('*','*','*','event_updates.update_feed')
-
-	webnotes.conn.commit()
-
-	try:
-		sql("drop table tabFeed")
-		sql("drop table `tabFeed List`")
-	except: pass
-
-	# import
-	from webnotes.modules.module_manager import reload_doc
-	reload_doc('event_updates','doctype','feed')
-elif patch_no==185:
-	sql("delete from tabDocTrigger where method = 'webnotes.widgets.follow.on_docsave'")
-elif patch_no==186:
-	from webnotes.modules.module_manager import reload_doc
-	reload_doc('event_updates','doctype','feed')
-elif patch_no == 187:
-	sql("update tabDocType set autoname = '' where name = 'QA Inspection Report'")
-elif patch_no == 188:
-	import_from_files(record_list = [['buying', 'doctype', 'qa_inspection_report']])
-elif patch_no == 189:
-	sql("update `tabDocField` set allow_on_submit = 1 where fieldname in ('entries', 'other_charges') and parent = 'Receivable Voucher'")
-elif patch_no == 190:
-	sql("update tabDocField set permlevel=0 where fieldname = 'fiscal_year' and parent = 'Stock Entry'")
-elif patch_no == 191:
-	import_from_files(record_list = [['support', 'doctype', 'customer_issue']])
-elif patch_no == 192:
-	sql("delete from `tabModule Def Item` where parent = 'Material Management' and doc_name = 'Landed Cost Wizard' and display_name = 'Landed Cost Wizard'")
-	import_from_files(record_list = [['buying', 'Module Def', 'SRM']])
-elif patch_no == 193:
-	sql("update tabDocField set fieldtype='Button', `trigger`='Client' where parent='Letter Head' and fieldname='set_from_image'")
-elif patch_no == 194:
-	sql("delete from `tabModule Def Item` where parent = 'SRM' and doc_name = 'Landed Cost Wizard' and display_name = 'Landed Cost Wizard'")
-	import_from_files(record_list = [['stock', 'Module Def', 'Material Management']])
-elif patch_no == 195:
-	from webnotes.modules.module_manager import reload_doc
-	reload_doc('setup','doctype','manage_account')
-elif patch_no == 196:
-	sql("update `tabModule Def` set module_page = null where name = 'Material Management'")
-elif patch_no == 197:
-	sql("update `tabDocField` set permlevel = 0, in_filter = 1 where fieldname = 'warranty_amc_status' and parent = 'Customer Issue'")
-	import_from_files(record_list = [['support', 'doctype', 'customer_issue']])
-elif patch_no == 198:
-	sql("delete from `tabDocField` where (label in ('SMS', 'Send SMS') or fieldname in ('message', 'customer_mobile_no')) and parent in ('Quoattion', 'Sales Order', 'Delivery Note', 'Receivable Voucher')")
-	sql("delete from `tabDocField` where label in ('SMS', 'Send SMS') and parent = 'Purchase Order'")
-	sql("delete from `tabDocField` where (label in ('Send SMS', 'SMS Html') or fieldname in ('sms_message', 'lead_sms_detail', 'enquiry_sms_detail')) and parent in ('Lead', 'Enquiry')")
-	from webnotes.model import delete_doc
-	delete_doc('DocType', 'Lead SMS Detail')
-	delete_doc('DocType', 'Enquiry SMS Detail')
-elif patch_no == 199:
-	sql("update tabDocField set reqd = 0 where parent = 'Attendance' and fieldname = 'shifts'")
-elif patch_no == 200:
-	reload_doc('event_updates','page','profile_settings')
-elif patch_no == 201:
-	reload_doc('setup','doctype','price_list')
-elif patch_no == 202:
-	name1 = sql("select name from tabDocField where parent='Price List' and label='Clear Prices' limit 1,1")
-	name2 = sql("select name from tabDocField where parent='Price List' and label='Update Prices' limit 1,1")
-	if name1:
-		sql("delete from tabDocField where name=%s limit 1", name1[0][0])
-	if name2:
-		sql("delete from tabDocField where name=%s limit 1", name2[0][0])
-elif patch_no == 203:
-	sql("delete from tabDocField where parent = 'Company' and fieldname = 'default_salary_account' limit 1")
-elif patch_no == 204:
-	sql("delete from tabDocField where parent = 'Company' and fieldname = 'default_salary_acount' limit 1")
-elif patch_no == 205:
-	sql("update `tabDocField` set `default` = '' where fieldname = 'naming_series' and parent = 'Installation Note'")
-elif patch_no == 206:
-	reload_doc('selling','doctype','installation_note')
-elif patch_no == 207:
-	import_from_files(record_list = [['setup', 'doctype', 'company']])
-elif patch_no == 208:
-	sql("delete from `tabDocField` where (label in ('SMS', 'Send SMS') or fieldname in ('message', 'customer_mobile_no')) and parent ='Quotation'")
-	default_currency = get_obj('Manage Account').doc.default_currency
-	sql("update tabCompany set default_currency = '%s'" % default_currency)
-elif patch_no == 209:
-	import_from_files(record_list = [['setup', 'doctype', 'company']])
-elif patch_no == 210:
-	sql("delete FROM `tabDocField` WHERE parent = 'Lead' AND label in ('CC:','Attachment Html','Create New File','Attachment')")
-elif patch_no == 212:
-	# reload company because of disturbed UI
-	import_from_files(record_list = [['setup', 'doctype', 'company']])
-elif patch_no == 213:
-	reload_doc('selling','doctype','lead')
-	reload_doc('setup','doctype','company')
-elif patch_no == 214:
-	reload_doc('selling','doctype','sales_order')
-elif patch_no == 215:
-	# patch for item and image in description
-	sql("update tabDocField set width = '300px' where fieldname='description'")
-	reload_doc('stock', 'doctype', 'item')
-	sql("delete from __DocTypeCache")
-elif patch_no == 216:
-	import_from_files(record_list = [['stock', 'doctype', 'serial_no'], ['stock', 'doctype', 'stock_ledger_entry']])
-elif patch_no == 217:
-	sql("update tabDocField set options = '\nIn Store\nDelivered\nNot in Use' where fieldname = 'status' and parent = 'Serial No'")
-	sql("update tabDocField set no_copy = 1 where fieldname = 'serial_no' and parent = 'Delivery Note Detail'")
-	sql("update tabDocField set no_copy = 1 where fieldname = 'serial_no' and parent = 'Stock Entry Detail'")
-elif patch_no == 218:
-	for d in sql("select name from `tabSerial No`"):
-		sql("Commit")
-		sql("Start Transaction")
-		s = Document('Serial No', d[0])
-		if s.pr_no:
-			s.purchase_document_type = 'Purchase Receipt'
-			s.purchase_document_no = s.pr_no
-		if s.delivery_note_no:
-			s.delivery_document_type = 'Delivery Note'
-			s.delivery_document_no = s.delivery_note_no
-		if s.notes:
-			s.delivery_note_no = s.notes
-		s.company = webnotes.utils.get_defaults()['company']
-		s.fiscal_year = webnotes.utils.get_defaults()['fiscal_year']
-		s.save()
-elif patch_no == 219:
-	sql("delete from tabDocField where fieldname in ('pr_no', 'make', 'label', 'delivery_note_no', 'notes') and parent = 'Serial No'")
-elif patch_no == 220:
-	sql("update tabDocField set label = 'Incoming Rate' where fieldname = 'purchase_rate' and parent = 'Serial No'")
-	sql("update tabDocField set label = 'Incoming Time' where fieldname = 'purchase_time' and parent = 'Serial No'")
-elif patch_no == 221:
-	sql("update tabDocField set reqd = 1 where fieldname in ('purchase_rate', 'warehouse') and parent = 'Serial No'")
-elif patch_no == 222:
-	sql("update tabDocField set options = '\nDelivery Note\nReceivable Voucher\nStock Entry' where fieldname = 'delivery_document_type' and parent = 'Serial No'")
-elif patch_no == 223:
-	sql("update tabDocField set hidden = 0 where fieldname in ('pay_to_recd_from', 'total_amount', 'total_amount_in_words') and parent = 'Journal Voucher'")
-	sql("update tabDocField set permlevel = 0 where fieldname = 'pay_to_recd_from' and parent = 'Journal Voucher'")
-elif patch_no == 224:
-	import_from_files(record_list = [['stock', 'doctype', 'delivery_note_packing_detail'], ['accounts', 'Print Format', 'Payment Receipt Voucher']])
-elif patch_no == 225:
-	import_from_files(record_list = [['stock', 'doctype', 'delivery_note_packing_detail']])
-elif patch_no == 226:
-	import_from_files(record_list = [['stock', 'doctype', 'delivery_note_packing_detail']])
-elif patch_no == 227:
-	reload_doc('stock', 'doctype', 'item')
-	if webnotes.conn.get_value('Control Panel', None, 'account_id') != 'axjanak2011':
-		sql("delete from tabDocField where parent = 'Item' and fieldname='alternate_description' limit 1")
-elif patch_no == 228:
-	# knowledge base patch
-	reload_doc('knowledge_base', 'doctype', 'question')
-	reload_doc('knowledge_base', 'doctype', 'answer')
-	reload_doc('knowledge_base', 'page', 'questions')
-	reload_doc('knowledge_base', 'Module Def', 'Knowledge Base')
-	sql("update `tabModule Def` set disabled='No' where name='Knowledge Base'")
-elif patch_no == 229:
-	reload_doc('knowledge_base', 'page', 'question_view')
-elif patch_no == 230:
-	reload_doc('buying', 'doctype', 'indent')
-	reload_doc('buying', 'doctype', 'indent_detail')
-	reload_doc('Mapper', 'DocType Mapper', 'Sales Order-Indent')
-elif patch_no == 231:
-	reload_doc('Mapper', 'DocType Mapper', 'Sales Order-Indent')
-elif patch_no == 232:
-	sql("update `tabDocField` set options = 'Sales Order' where fieldname = 'sales_order_no' and parent = 'Indent'")
-elif patch_no == 233:
-	reload_doc('Mapper', 'DocType Mapper', 'Sales Order-Receivable Voucher')
-	reload_doc('Mapper', 'DocType Mapper', 'Delivery Note-Receivable Voucher')
-elif patch_no == 234:
-	sql("update `tabTable Mapper Detail` set validation_logic = 'docstatus=1' where parent = 'Sales Order-Indent' and from_table = 'Sales Order Detail'")
-elif patch_no == 235:
-	for sc in sql("""select name from `tabSearch Criteria` where ifnull(name,'')
-		like 'srch%' or ifnull(name,'') like '%stdsrch'"""):
-		try:
-			get_obj('Search Criteria', sc[0]).rename()
-		except AttributeError, e:
-			pass
-	reload_doc('core', 'doctype', 'system_console')
-elif patch_no == 236:
-	# warehouse not mandatory for delivered serial nos
-	sql("update tabDocField set reqd=0 where parent='Serial No' and fieldname='warehouse'")
-elif patch_no == 237:
-	sql("update tabDocField set depends_on = 'eval:doc.is_pos==1' where fieldname = 'cash_bank_account' and parent = 'Receivable Voucher'")
-elif patch_no == 238:
-	reload_doc('accounts', 'doctype', 'receivable_voucher')
-	reload_doc('accounts', 'GL Mapper', 'POS with write off')
-elif patch_no == 239:
-	reload_doc('core', 'doctype', 'docfield')
-	reload_doc('core', 'doctype', 'doctype')
-	from patches.old_patches.feed_patch import set_subjects_and_tagfields
-
-	set_subjects_and_tagfields()
-elif patch_no == 240:
-	# again for sales order (status)
-	from patches.old_patches.feed_patch import set_subjects_and_tagfields
-	set_subjects_and_tagfields()
-elif patch_no == 241:
-	sql("update `tabDocField` set fieldtype = 'Text', options = '', in_filter = '' where fieldname = 'serial_no' and parent = 'Stock Ledger Entry'")
-elif patch_no == 242:
-	if webnotes.conn.get_value('Control Panel', None, 'account_id') not in ['axjanak2011']:
-		sql("commit")
-		try:
-			sql("alter table `tabStock Ledger Entry` drop index serial_no")
-		except:
-			pass
-
-		sql("alter table `tabStock Ledger Entry` change serial_no serial_no text")
-elif patch_no == 243:
-	# moving custom script and custom fields to framework
-	webnotes.conn.set_value('DocType', 'Custom Script', 'module', 'Core')
-	webnotes.conn.set_value('DocType', 'Custom Field', 'module', 'Core')
-	reload_doc('setup', 'doctype', 'company')
-elif patch_no == 244:
-	reload_doc('stock', 'search_criteria', 'shortage_to_indent')
-elif patch_no == 245:
-	from patches.old_patches.doctype_permission_patch import set_doctype_permissions
-	set_doctype_permissions()
-
-	from patches.old_patches.feed_patch import set_subjects_and_tagfields
-	set_subjects_and_tagfields()
-elif patch_no == 246:
-	webnotes.conn.set_value('DocType','Stock Entry','tag_fields','purpose')
-	webnotes.conn.set_value('DocType','Stock Entry','subject','%(remarks)s')
-elif patch_no == 247:
-	webnotes.conn.set_value('DocType','Stock Entry','subject','%(remarks)s')
-elif patch_no == 248:
-	reload_doc('setup', 'doctype', 'manage_account')
-elif patch_no == 249:
-	sql("update `tabDocPerm` t1, `tabDocType` t2 set t1.role = 'System Manager' where t1.role = 'Administrator' and t1.parent = t2.name and t2.module != 'Core'")
-elif patch_no == 250:
-	from patches.old_patches.feed_patch  import support_patch
-	support_patch()
-elif patch_no == 251:
-	from webnotes.model import db_schema
-	db_schema.remove_all_foreign_keys()
-	from patches.old_patches.customer_address import run_patch
-	run_patch()
-elif patch_no == 252:
-	reload_doc('support','doctype','support_ticket')
-	reload_doc('support','doctype','support_ticket_response')
-elif patch_no == 253:
-	reload_doc('accounts','doctype','ledger_balance_export')
-	reload_doc('accounts','doctype','ledger_detail')
-	reload_doc('accounts', 'Module Def', 'Accounts')
-
-	from webnotes.model.db_schema import updatedb
-	updatedb('Ledger Balance Export')
-	updatedb('Ledger Detail')
-elif patch_no == 254:
-	reload_doc('setup', 'doctype', 'sms_settings')
-	reload_doc('setup', 'doctype', 'static_parameter_detail')
-
-	from webnotes.model.db_schema import updatedb
-	updatedb('SMS Settings')
-	updatedb('Static Parameter Detail')
-elif patch_no == 255:
-	from patches.old_patches.customer_address import run_old_data_sync_patch
-	run_old_data_sync_patch()
-elif patch_no == 256:
-	sql("update `tabLetter Head` set content = replace(content, 'http://46.4.50.84/v170-test/', '')")
-	sql("update `tabSingles` set value = replace(value, 'http://46.4.50.84/v170-test/', '') where field in ('letter_head', 'client_name') and doctype = 'Control Panel'")
-	sql("update `tabItem` set description_html = replace(description_html, 'http://46.4.50.84/v170-test/', '')")
-elif patch_no == 257:
-	from patches.old_patches.customer_address import run_old_data_sync_patch
-	run_old_data_sync_patch()
-elif patch_no == 258:
-	sql("update tabDocField set `default`=NULL where fieldname = 'naming_series'")
-elif patch_no == 259:
-	sql("update `tabQuotation Detail` set description = replace(description, 'http://46.4.50.84/v170-test/', '')")
-	sql("update `tabSales Order Detail` set description = replace(description, 'http://46.4.50.84/v170-test/', '')")
-	sql("update `tabRV Detail` set description = replace(description, 'http://46.4.50.84/v170-test/', '')")
-	sql("update `tabDelivery Note Detail` set description = replace(description, 'http://46.4.50.84/v170-test/', '')")
-elif patch_no == 260:
-	sql("update `tabLetter Head` set content = replace(content, 'http://46.4.50.84/v170/', '')")
-	sql("update `tabSingles` set value = replace(value, 'http://46.4.50.84/v170/', '') where field in ('letter_head', 'client_name') and doctype = 'Control Panel'")
-	sql("update `tabItem` set description_html = replace(description_html, 'http://46.4.50.84/v170/', '')")
-	sql("update `tabQuotation Detail` set description = replace(description, 'http://46.4.50.84/v170/', '')")
-	sql("update `tabSales Order Detail` set description = replace(description, 'http://46.4.50.84/v170/', '')")
-	sql("update `tabRV Detail` set description = replace(description, 'http://46.4.50.84/v170/', '')")
-	sql("update `tabDelivery Note Detail` set description = replace(description, 'http://46.4.50.84/v170/', '')")
-elif patch_no == 261:
-	sql("update `tabPrint Format` set html = replace(html, 'customer_address', 'address_display')")
-elif patch_no == 262:
-	from patches.old_patches.customer_address import sync_lead_phone
-	sync_lead_phone()
-elif patch_no == 263:
-	ol = ['','Open','To Reply','Waiting for Customer','Hold','Closed']
-	sql("update tabDocField set options=%s where parent=%s and fieldname=%s", ('\n'.join(ol), 'Support Ticket', 'status'))
-elif patch_no == 264:
-	sql("delete from tabDocField where parent = 'Customer Issue' and (fieldname = 'issue_in' or fieldname = 'issue_category')")
-	sql("update tabDocField set options=NULL where parent='Support Ticket' and label = 'Send'")
-elif patch_no == 266:
-	reload_doc('setup','doctype','support_email_settings')
-elif patch_no == 267:
-	sql("update `tabPrint Format` set html = replace(html, 'supplier_address', 'address_display')")
-elif patch_no == 268:
-	sql("update `tabDocPerm` set permlevel = 0 where permlevel is null")
-elif patch_no == 269:
-	p = get_obj('Patch Util')
-	p.add_permission('GL Entry', 'Accounts User', 0, read = 1)
-elif patch_no == 270:
-	pages = ['Accounts Setup', 'Accounts', 'Accounting Reports','GeneralLedger','How do I - Accounts','Making Opening Entries',\
-	'Analysis','How do I - CRM','How do I - Inventory','Inventory Setup', 'Stock','HR','HR & Payroll Setup',\
-	'Payroll Setup','Production Setup','Production','Buying','SRM Setup','Contact Page','Forum','Messages','Test Toolbar',\
-	'Trend Analyzer']
-	from webnotes.model import delete_doc
-	sql("delete from `tabPage Visit`")
-	for p in pages:
-		try: delete_doc('Page', p)
-		except: pass
-elif patch_no == 271:
-	# tags patch
-	reload_doc('selling','doctype','sales_order')
-	reload_doc('stock','doctype','delivery_note')
-	sql("delete from tabDocField where fieldname='per_amt_billed' and parent in ('Sales Order', 'Delivery Note')")
-
-	sql("""update `tabSales Order` set delivery_status = if(ifnull(per_delivered,0) < 0.001, 'Not Delivered',
-			if(per_delivered >= 99.99, 'Fully Delivered', 'Partly Delivered'))""")
-	sql("""update `tabSales Order` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed',
-			if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""")
-	sql("""update `tabDelivery Note` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed',
-			if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""")
-elif patch_no == 272:
-	from webnotes.model import delete_doc
-	try:
-		delete_doc('Search Criteria', '_SRCH00003')
-	except:
-		pass
-	reload_doc('accounts', 'search_criteria', 'purchase_register')
-elif patch_no == 276:
-	from webnotes.model import delete_doc
-	sn = sql("select name from `tabSearch Criteria` where criteria_name = 'Sales Personwise Transaction Summary'")
-	for d in sn:
-		delete_doc('Search Criteria', d[0])
-	reload_doc('selling', 'search_criteria', 'sales_personwise_transaction_summary')
-elif patch_no == 277:
-	webnotes.model.delete_doc('DocType','HomePage Settings')
-	webnotes.model.delete_doc('DocType','Badge Settings')
-	sql("update tabDocType set module='Home' where module in ('Event Updates', 'My Company')")
-	sql("update tabPage set module='Home' where module in ('Event Updates', 'My Company')")
-	sql("update `tabSearch Criteria` set module='Home' where module in ('Event Updates', 'My Company')")
-
-
-	delete_pages = ('Chat User Gallery', 'Badge Info', 'Home', 'Website Setup', 'Test Page', 'Setup Masters', 'Service', 'Selling', 'Sales Reports', 'Organize','My Cart', 'My Activity', 'Manage Users', 'Maintenance', 'Getting Started', 'Gantt Test', 'Custom Reports - Stock', 'Custom Reports - Selling', 'Custom Reports - Production', 'Custom Reports - Payroll', 'Custom Reports - Maintenance', 'Custom Reports - Buying', 'Custom Reports - Accounts', 'CRM Setup', 'CRM Reports')
-	for p in delete_pages:
-	  webnotes.model.delete_doc('Page',p)
-elif patch_no == 278:
-	sql("update tabDocTrigger set method = 'home.update_feed' where method = 'event_updates.update_feed'")
-elif patch_no == 279:
-	dt = ['GL Entry', 'Stock Ledger Entry']
-	for t in dt:
-		rec = sql("select voucher_type, voucher_no, ifnull(is_cancelled, 'No') from `tab%s` where modified >= '2011-06-15 01:00:00' group by voucher_no" % t)
-		for d in rec:
-			sql("update `tab%s` set docstatus = %s where name = '%s'" % (d[0], d[2]=='No' and 1 or 2, d[1]))
-
-	other_dt = ['Enquiry', 'Quotation', 'Sales Order', 'Indent', 'Purchase Order', 'Production Order', 'Customer Issue', 'Installation Note']
-	for dt in other_dt:
-		rec = sql("select name, status from `tab%s` where modified >= '2011-06-15 01:00:00'" % dt)
-		for r in rec:
-			sql("update `tab%s` set docstatus = %s where name = '%s'" % (dt, (r[1] in ['Submitted', 'Closed'] and 1 or r[1]=='Cancelled' and 2 or 0), r[0]))
-elif patch_no == 280:
-	reload_doc('accounts', 'doctype', 'form_16a')
-elif patch_no == 281:
-	dt_list = ['Delivery Note', 'Purchase Receipt']
-	for dt in dt_list:
-		sql("update `tab%s` set status = 'Submitted' where docstatus = 1 and modified >='2011-06-15 01:00:00'" % dt)
-		sql("update `tab%s` set status = 'Cancelled' where docstatus = 2 and modified >='2011-06-15 01:00:00'" % dt)
-elif patch_no == 282:
-	dt_list = ['Enquiry', 'Quotation', 'Sales Order', 'Indent', 'Purchase Order', 'Production Order', 'Customer Issue', 'Installation Note', 'Receivable Voucher', 'Payable Voucher', 'Delivery Note', 'Purchase Receipt', 'Journal Voucher', 'Stock Entry']
-	for d in dt_list:
-		tbl = sql("select options from `tabDocField` where fieldtype = 'Table' and parent = '%s'" % d)
-		for t in tbl:
-			sql("update `tab%s` t1, `tab%s` t2 set t1.docstatus = t2.docstatus where t1.parent = t2.name" % (t[0], d))
-elif patch_no == 283:
-	rec = sql("select voucher_type, voucher_no, ifnull(is_cancelled, 'No') from `tabGL Entry` where modified >= '2011-06-15 01:00:00' order by name ASC")
-	for d in rec:
-		sql("update `tab%s` set docstatus = %s where name = '%s'" % (d[0], d[2]=='No' and 1 or 2, d[1]))
-elif patch_no == 284:
-	reload_doc('support', 'doctype', 'support_ticket')
-	sql("update `tabDocField` set in_filter = 1 where fieldname in ('raised_by', 'subject') and parent = 'Support Ticket'")
-elif patch_no == 286:
-	reload_doc('accounts', 'search_criteria', 'itemwise_sales_register')
-	reload_doc('accounts', 'search_criteria', 'itemwise_purchase_register')
-elif patch_no == 287:
-	sql("update `tabDocField` set no_copy = 1 where fieldname in ('per_received', 'per_billed', 'per_delivered') and parent in ('Purchase Order', 'Purchase Receipt', 'Sales Order', 'Delivery Note')")
-elif patch_no == 288:
-	reload_doc('accounts', 'doctype', 'payable_voucher')
-elif patch_no == 289:
-	sql("update `tabDocType` set subject = 'From %(supplier_name)s worth %(grand_total)s due on %(due_date)s | %(outstanding_amount)s outstanding' where name = 'Payable Voucher'")
-	sql("update `tabDocType` set search_fields = 'status,transaction_date,customer,lead,order_type' where name = 'Quotation'")
-elif patch_no == 290:
-	count = sql("""SELECT * FROM  `tabModule Def`
-		   WHERE `module_name` LIKE 'Home'""")
-	if not count:
-		md = Document('Module Def')
-		md.module_name = 'Home'
-		md.module_label = 'Home'
-		md.save(1)
-elif patch_no == 291:
-	reload_doc('utilities','doctype','rename_tool')
-elif patch_no == 292:
-	reload_doc('accounts', 'search_criteria', 'trial_balance')
-elif patch_no == 293:
-	sql("delete from tabDocField where parent='Account' and fieldname='address'")
-	reload_doc('accounts', 'doctype', 'account')
-elif patch_no == 294:
-	# new account profile fix
-	ul = sql("select name from tabProfile where ifnull(name,'') not in ('Administrator', 'Guest', '')")
-	# if one user and one user has no roles
-	if len(ul)==1 and not sql("select parent from tabUserRole where role='System Manager' and parent=%s", ul[0][0]):
-		get_obj('Setup Control').add_roles(Document('Profile', ul[0][0]))
-elif patch_no == 295:
-	sql("update `tabDocField` set options = 'Delivered\nNot Delivered\nPartly Delivered\nClosed\nNot Applicable' where parent = 'Sales Order' and fieldname = 'delivery_status'")
-	sql("update `tabDocField` set options = 'Billed\nNot Billed\nPartly Billed\nClosed' where parent = 'Sales Order' and fieldname = 'billing_status'")
-elif patch_no == 296:
-	sql("delete from tabDocField where parent='Support Ticket' and fieldname='contact_no'")
-	reload_doc('support', 'doctype', 'support_ticket')
-elif patch_no == 297:
-	reload_doc('hr', 'doctype', 'employee')
-	reload_doc('hr', 'doctype', 'attendance')
-	reload_doc('hr', 'doctype', 'expense_voucher')
-	reload_doc('hr', 'doctype', 'appraisal')
-	reload_doc('hr', 'doctype', 'salary_structure')
-	reload_doc('hr', 'doctype', 'salary_slip')
-elif patch_no == 298:
-	sql("update `tabDocField` set options = 'link:Company' where parent = 'Attendance' and fieldname = 'company'")
-	sql("update `tabDocField` set options = 'link:Company' where parent = 'Expense Voucher' and fieldname = 'company'")
-	sql("update `tabDocField` set options = 'link:Company' where parent = 'Appraisal' and fieldname = 'company'")
-elif patch_no == 299:
-	sql("update `tabDocPerm` set `match` = NULL where parent = 'Employee' and role = 'Employee'")
-elif patch_no == 300:
-	sql("""DELETE FROM `tabSearch Criteria` WHERE name IN
-		   ('sales_register1', 'sales_register2', 'purchase_register1')""")
\ No newline at end of file
diff --git a/erpnext/patches/old_patches/rename_search_criteria.py b/erpnext/patches/old_patches/rename_search_criteria.py
deleted file mode 100644
index 0cd23ed..0000000
--- a/erpnext/patches/old_patches/rename_search_criteria.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import webnotes
-from webnotes.model.code import get_obj
-def execute():
-	for sc in webnotes.conn.sql("""select name from `tabSearch Criteria` where ifnull(name,'')
-		like 'srch%' or ifnull(name,'') like '%stdsrch'"""):
-		get_obj('Search Criteria', sc[0]).rename()
diff --git a/erpnext/patches/old_patches/replacecode.py b/erpnext/patches/old_patches/replacecode.py
deleted file mode 100644
index 0043f9c..0000000
--- a/erpnext/patches/old_patches/replacecode.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import os
-
-def replace_code(old, new):
-	txt = os.popen("""grep "%s" ./*/*/*/*.js""" % old).read().split()
-	txt = [t.split(':')[0] for t in txt]
-	txt = list(set(filter(lambda t: t.startswith('./'), txt)))
-	for t in txt:
-		if new:
-			code = open(t,'r').read().replace(old, new)
-			open(t, 'w').write(code)
-			print "Replaced for %s" % t
-		else:
-			print 'Found in %s' % t
-	
-if __name__=='__main__':
-	old = """cur_frm.cscript.get_tips(doc, cdt, cdn);"""
-	new = " "
-	replace_code(old, new)
-			
diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py
deleted file mode 100644
index 744b102..0000000
--- a/erpnext/patches/patch.py
+++ /dev/null
@@ -1,480 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# REMEMBER to update this
-# ========================
-
-last_patch = 388
-
-#-------------------------------------------
-
-def execute(patch_no):
-	return
-	import webnotes
-	from webnotes.modules.module_manager import reload_doc
-
-	from webnotes.model.code import get_obj
-	sql = webnotes.conn.sql
-	from webnotes.utils import cint, cstr, flt
-	from webnotes.model.doc import Document
-	from webnotes.model import delete_doc
-
-	if patch_no == 301:
-		from patches.delivery_billing_status_patch import run_patch
-		run_patch()
-	elif patch_no == 302:
-		sql("update `tabDocField` set no_copy = 1 where fieldname = 'naming_series'")
-	elif patch_no == 303:
-		pass
-	elif patch_no == 304:
-		sql("delete from `tabDocField` where parent = 'company' and label = 'Trash Company' and fieldtype = 'button'")
-		reload_doc('setup', 'doctype', 'company')
-	elif patch_no == 305:
-		sql("update `tabDocField` set options = 'link:Company' where options='link:Company' and fieldname='company' and fieldtype='Select'")
-	elif patch_no == 306:
-		sql("update `tabDocField` set options = '\nAccount\nCompany\nCustomer\nSupplier\nEmployee\nWarehouse\nItem' where parent = 'Rename Tool' and fieldname = 'select_doctype'")
-		sql("update `tabDocField` set options = 'link:Item' where parent = 'Raw Materials Supplied' and fieldname = 'po_item'")
-		sql("update `tabDocField` set options = 'Sales Order' where parent = 'Indent Detail' and fieldname = 'sales_order_no'")
-		sql("update `tabDocField` set options = 'link:Company', fieldtype = 'Select' where parent = 'Stock Ledger Entry' and fieldname = 'company'")
-		reload_doc('utilities', 'doctype', 'rename_tool')
-	elif patch_no == 307:
-		sql("delete from `tabDocField` where parent = 'company' and label = 'Trash Company' and fieldtype = 'Button'")
-		reload_doc('setup', 'doctype', 'company')
-	elif patch_no == 308:
-		sql("update `tabDocField` set reqd = 0 where fieldname = 'select_item' and parent = 'Property Setter'")
-	elif patch_no == 309:
-		sql("delete from `tabDocField` where fieldname = 'item_attachments_details' and parent = 'Item'")
-		sql("delete from `tabModule Def Item` where parent = 'Stock' and doc_name = 'Landed Cost Wizard'")
-	elif patch_no == 310:
-		from erpnext_structure_cleanup import run_patches
-		run_patches()
-	elif patch_no == 311:
-		sql("update `tabDocField` set reqd = 0 where fieldname = 'select_item' and parent = 'Property Setter'")
-		#reload_doc('core', 'doctype', 'property_setter')
-	elif patch_no == 312:
-		sql("delete from `tabSessions`")
-		sql("delete from `__SessionCache`")
-	elif patch_no == 313:
-		dt = ['GL Entry', 'Stock Ledger Entry']
-		for t in dt:
-			rec = sql("select voucher_type, voucher_no, ifnull(is_cancelled, 'No') from `tab%s` where modified >= '2011-07-06 10:00:00' group by voucher_no" % t)
-			for d in rec:
-				sql("update `tab%s` set docstatus = %s where name = '%s'" % (d[0], d[2]=='No' and 1 or 2, d[1]))
-
-		other_dt = ['Enquiry', 'Quotation', 'Sales Order', 'Indent', 'Purchase Order', 'Production Order', 'Customer Issue', 'Installation Note']
-		for dt in other_dt:
-			rec = sql("select name, status from `tab%s` where modified >= '2011-07-06 10:00:00'" % dt)
-			for r in rec:
-				sql("update `tab%s` set docstatus = %s where name = '%s'" % (dt, (r[1] in ['Submitted', 'Closed'] and 1 or r[1]=='Cancelled' and 2 or 0), r[0]))
-
-
-		dt_list = ['Delivery Note', 'Purchase Receipt']
-		for dt in dt_list:
-			sql("update `tab%s` set status = 'Submitted' where docstatus = 1 and modified >='2011-07-06 10:00:00'" % dt)
-			sql("update `tab%s` set status = 'Cancelled' where docstatus = 2 and modified >='2011-07-06 10:00:00'" % dt)
-
-		dt_list = ['Enquiry', 'Quotation', 'Sales Order', 'Indent', 'Purchase Order', 'Production Order', 'Customer Issue', 'Installation Note', 'Receivable Voucher', 'Payable Voucher', 'Delivery Note', 'Purchase Receipt', 'Journal Voucher', 'Stock Entry']
-		for d in dt_list:
-			tbl = sql("select options from `tabDocField` where fieldtype = 'Table' and parent = '%s'" % d)
-			for t in tbl:
-				sql("update `tab%s` t1, `tab%s` t2 set t1.docstatus = t2.docstatus where t1.parent = t2.name" % (t[0], d))
-
-	elif patch_no == 314:
-		# delete double feed
-		sql("delete from tabFeed where subject like 'New %'")
-	elif patch_no == 315:
-		# delete double feed
-		sql("delete from tabFeed where doc_name like 'New %'")
-		reload_doc('core', 'doctype', 'property_setter')
-
-		from webnotes.model.doc import Document
-		m = Document('Module Def Role')
-		m.role = 'All'
-		m.parent = 'Home'
-		m.parenttype = 'Module Def'
-		m.parentfield = 'roles'
-		m.save(1)
-	elif patch_no == 316:
-		pass
-	elif patch_no == 317:
-		sql("update `tabPage` set name = 'profile-settings' where page_name = 'Profile Settings'")
-	elif patch_no == 318:
-		reload_doc('utilities', 'doctype', 'bulk_rename_tool')
-	elif patch_no == 319:
-		sql("delete from tabFeed where doc_name like 'New %'")
-	elif patch_no == 320:
-		reload_doc('setup', 'doctype', 'series_detail')
-	elif patch_no == 321:
-		reload_doc('hr','doctype','leave_application')
-	elif patch_no == 322:
-		sql("delete from `tabDocField` where parent = 'Leave Application' and fieldname = 'latter_head'")
-	elif patch_no == 323:
-		reload_doc('stock', 'doctype', 'stock_entry')
-		sql("update `tabDocField` set options = 'get_stock_and_rate' where parent = 'Stock Entry' and label = 'Get Stock and Rate'")
-		sql("delete from `tabDocField` where label = 'Get Current Stock' and parent = 'Stock Entry'")
-	elif patch_no == 324:
-		sql("delete from `tabDocField` where fieldname = 'test_field' and parent = 'Customer'")
-	elif patch_no == 325:
-		sql("update `tabDocField` set fieldtype = 'Data' where parent = 'Salary Slip' and fieldname = 'total_days_in_month'")
-		reload_doc('hr', 'doctype', 'salary_slip')
-	elif patch_no == 326:
-		# load the new billing page
-		if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')):
-			reload_doc('server_tools','page','billing')
-	elif patch_no == 327:
-		# patch for support email settings now moved to email settings
-		reload_doc('setup','doctype','email_settings')
-
-		# map fields from support to email settings
-		field_map = {
-			'support_email': 'email',
-			'support_host':'host',
-			'support_username': 'username',
-			'support_password': 'password',
-			'support_use_ssl': 'use_ssl',
-			'sync_support_mails': 'integrate_incoming',
-			'signature': 'support_signature'
-		}
-
-		for key in field_map:
-			webnotes.conn.set_value('Email Settings',None,key, \
-				webnotes.conn.get_value('Support Email Settings',None,field_map[key]))
-
-		# delete support email settings
-		delete_doc('DocType', 'Support Email Settings')
-
-		reload_doc('support','doctype','support_ticket')
-		sql("delete from tabDocField where fieldname='problem_description' and parent='Support Ticket'")
-	elif patch_no == 328:
-		if webnotes.conn.get_value('Control Panel', None, 'account_id') != 'axjanak2011':
-			sql("delete from `tabDocField` where fieldname = 'supplier_status' and parent = 'Supplier'")
-	elif patch_no == 329:
-		reload_doc('utilities', 'doctype', 'rename_tool')
-		reload_doc('utilities', 'doctype', 'bulk_rename_tool')
-	elif patch_no == 330:
-		reload_doc('accounts', 'doctype', 'lease_agreement')
-		reload_doc('accounts', 'doctype', 'lease_installment')
-
-		reload_doc('accounts', 'search_criteria', 'lease_agreement_list')
-		reload_doc('accounts', 'search_criteria', 'lease_monthly_future_installment_inflows')
-		reload_doc('accounts', 'search_criteria', 'lease_overdue_age_wise')
-		reload_doc('accounts', 'search_criteria', 'lease_over_due_list')
-		reload_doc('accounts', 'search_criteria', 'lease_receipts_client_wise')
-		reload_doc('accounts', 'search_criteria', 'lease_receipt_summary_year_to_date')
-		reload_doc('accounts', 'search_criteria', 'lease_yearly_future_installment_inflows')
-
-		reload_doc('accounts', 'Module Def', 'Accounts')
-	elif patch_no == 331:
-		p = get_obj('Patch Util')
-		# permission
-		p.add_permission('Lease Agreement', 'Accounts Manager', 0, read = 1, write=1,submit=1, cancel=1,amend=1)
-		p.add_permission('Lease Agreement', 'Accounts Manager', 1, read = 1)
-	elif patch_no == 332:
-		sql("update `tabDocField` set permlevel=1, hidden = 1 where parent = 'Bulk Rename Tool' and fieldname = 'file_list'")
-	elif patch_no == 333:
-		sql("update `tabDocPerm` set `create`  =1 where role = 'Accounts Manager' and parent = 'Lease Agreement'")
-
-		p = get_obj('Patch Util')
-		p.add_permission('DocType Mapper', 'System Manager', 0, read = 1, write=1, create=1)
-		p.add_permission('Role', 'System Manager', 0, read = 1, write=1, create=1)
-		p.add_permission('Print Format', 'System Manager', 0, read = 1, write=1, create=1)
-	elif patch_no == 334:
-		reload_doc('knowledge_base', 'doctype', 'answer')
-	elif patch_no == 335:
-		for dt in ['Account', 'Cost Center', 'Territory', 'Item Group', 'Customer Group']:
-			sql("update `tabDocField` set fieldtype = 'Link', options = %s where fieldname = 'old_parent' and parent = %s", (dt, dt))
-	elif patch_no == 336:
-		reload_doc('server_tools','page','billing')
-	elif patch_no == 337:
-		item_list = webnotes.conn.sql("""SELECT name, description_html
-									FROM tabItem""")
-		if item_list:
-			for item, html in item_list:
-				if html and "getfile" in html and "acx" in html:
-					ac_id = webnotes.conn.sql("""SELECT value FROM `tabSingles` WHERE doctype='Control Panel' AND field='account_id'""")
-					sp_acx = html.split("acx=")
-					l_acx = len(sp_acx)
-					if l_acx > 1:
-						for i in range(l_acx-1):
-							sp_quot = sp_acx[i+1].split('"')
-							if len(sp_quot) > 1: sp_quot[0] = str(ac_id[0][0])
-							sp_acx[i+1] = '"'.join(sp_quot)
-					html = "acx=".join(sp_acx)
-					webnotes.conn.sql("""UPDATE tabItem SET description_html=%s WHERE name=%s""", (html, item))
-	elif patch_no == 338:
-		# Patch for billing status based on amount
-		# reload so and dn
-		reload_doc('selling','doctype','sales_order')
-		reload_doc('stock','doctype','delivery_note')
-
-		# delete billed_qty field
-		sql("delete from `tabDocField` where fieldname = 'billed_qty' and parent in ('Sales Order Detail', 'Delivery Note Detail')")
-
-		# update billed amt in item table in so and dn
-		sql("""	update `tabSales Order Detail` so
-				set billed_amt = (select sum(amount) from `tabRV Detail` where `so_detail`= so.name and docstatus=1 and parent not like 'old%%'), modified = now()""")
-
-		sql(""" update `tabDelivery Note Detail` dn
-				set billed_amt = (select sum(amount) from `tabRV Detail` where `dn_detail`= dn.name and docstatus=1 and parent not like 'old%%'), modified = now()""")
-
-		# calculate % billed based on item table
-		sql("""	update `tabSales Order` so
-				set per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabSales Order Detail` where parent = so.name), modified = now()""")
-
-		sql("""	update `tabDelivery Note` dn
-				set per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabDelivery Note Detail` where parent = dn.name), modified = now()""")
-
-		# update billing status based on % billed
-		sql("""update `tabSales Order` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed',
-				if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""")
-		sql("""update `tabDelivery Note` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed',
-				if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""")
-
-		# update name of questions page
-		sql("update tabPage set name='questions' where name='Questions'")
-		sql("update tabPage set name='question-view' where name='Question View'")
-	elif patch_no == 339:
-		reload_doc('production','doctype','bill_of_materials')
-	elif patch_no == 340:
-		sql("update `tabDocField` set permlevel = 0 where (fieldname in ('process', 'production_order', 'fg_completed_qty') or label = 'Get Items') and parent = 'Stock Entry'")
-	elif patch_no == 341:
-		reload_doc('stock','doctype','delivery_note')
-		reload_doc('stock','doctype','item')
-		reload_doc('selling','doctype','quotation')
-		reload_doc('stock','Print Format','Delivery Note Packing List Wise')
-
-		if not sql("select format from `tabDocFormat` where name = 'Delivery Note Packing List Wise' and parent = 'Delivery Note'"):
-			from webnotes.model.doc import addchild
-			dt_obj = get_obj('DocType', 'Delivery Note', with_children = 1)
-			ch = addchild(dt_obj.doc, 'formats', 'DocFormat', 1)
-			ch.format = 'Delivery Note Packing List Wise'
-			ch.save(1)
-	elif patch_no == 342:
-		sql("update `tabDocField` set permlevel = 0 where parent = 'Stock Entry Detail' and fieldname in ('s_warehouse', 't_warehouse', 'fg_item')")
-	elif patch_no == 343:
-		reload_doc('stock','doctype','item_customer_detail')
-	elif patch_no == 344:
-		sql("delete from `tabDocFormat` where ifnull(format, '') = '' and parent = 'Delivery Note'")
-		reload_doc('stock', 'doctype', 'delivery_note_detail')
-		reload_doc('stock', 'doctype', 'item_customer_detail')
-	elif patch_no == 345:
-		# rerun 343 (merge confict)
-		reload_doc('stock','doctype','item_customer_detail')
-		sql("delete from `tabModule Def Item` where display_name = 'Salary Slip Control Panel' and parent = 'HR'")
-		reload_doc('hr','Module Def','HR')
-	elif patch_no == 346:
-		pass
-	elif patch_no == 347:
-		sql("delete from `tabField Mapper Detail` where from_field = to_field and map = 'Yes' and ifnull(checking_operator, '') = ''")
-	elif patch_no == 348:
-		sql("update `tabStock Ledger Entry` set is_cancelled = 'No' where voucher_type = 'Serial No'")
-	elif patch_no == 349:
-		delete_doc('Custom Script', 'Update Series-Server')
-		delete_doc('Custom Script', 'Profile-Client')
-		delete_doc('Custom Script', 'Event-Client')
-		delete_doc('Custom Script', 'File-Server')
-
-		# reload profile with new fields for security
-		delete_doc('DocType', 'Profile')
-		reload_doc('core', 'doctype', 'profile')
-	elif patch_no == 350:
-		reload_doc('stock', 'doctype', 'delivery_note_detail')
-		reload_doc('stock', 'doctype', 'item_customer_detail')
-	elif patch_no == 351:
-		reload_doc('home', 'page', 'dashboard')
-	elif patch_no == 352:
-		reload_doc('stock','doctype','delivery_note')
-		reload_doc('stock','doctype','item')
-		reload_doc('selling','doctype','quotation')
-		reload_doc('stock','Print Format','Delivery Note Packing List Wise')
-
-		if not sql("select format from `tabDocFormat` where name = 'Delivery Note Packing List Wise' and parent = 'Delivery Note'"):
-			from webnotes.model.doc import addchild
-			dt_obj = get_obj('DocType', 'Delivery Note', with_children = 1)
-			ch = addchild(dt_obj.doc, 'formats', 'DocFormat', 1)
-			ch.format = 'Delivery Note Packing List Wise'
-			ch.save(1)
-	elif patch_no == 353:
-		reload_doc('core', 'doctype', 'doctype')
-		sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'")
-	elif patch_no == 354:
-		reload_doc('stock', 'doctype', 'delivery_note')
-		reload_doc('stock', 'doctype', 'delivery_note_detail')
-	elif patch_no == 355:
-		sql("update `tabDocField` set print_hide =1 where fieldname in ('pack_no', 'pack_gross_wt', 'weight_uom', 'pack_nett_wt') and parent = 'Delivery Note Detail'")
-	elif patch_no == 356:
-		sql("update `tabDocField` set print_hide =1 where fieldname = 'print_packing_slip' and parent = 'Delivery Note'")
-	elif patch_no == 357:
-		reload_doc('hr', 'doctype', 'salary_manager')
-	elif patch_no == 358:
-		reload_doc('setup', 'doctype','features_setup')
-		reload_doc('stock','doctype','item')
-		sql("update tabDocField set label='Produced Qty',description='Updated after finished goods are transferred to FG Warehouse through Stock Entry' where parent='Production Order' and fieldname='produced_qty'")
-		rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null")
-		from webnotes.model.doc import Document
-		m = Document('Features Setup')
-		for d in rs:
-			m.fields[d[0]] = 1
-		m.save()
-	elif patch_no == 359:
-		reload_doc('hr', 'doctype', 'salary_slip')
-		delete_doc('DocType', 'Salary Control Panel')
-	elif patch_no == 360:
-		sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', 'change_log') or label = 'Template') and parent = 'DocType'")
-	elif patch_no == 361:
-		sql("update `tabModule Def Item` set doc_name = 'GL Entry' where display_name in ('Lease Agreement List', 'Lease Monthly Future Installment Inflows', 'Lease Overdue Age Wise', 'Lease Overdue List', 'Lease Receipts Client Wise', 'Lease Receipt Summary Month Wise', 'Lease Yearly Future Installment Inflows') and parent = 'Accounts'")
-	elif patch_no == 362:
-		sql("update `tabDocField` set no_copy = 1 where fieldname in ('amended_from', 'amendment_date', 'file_list', 'naming_series', 'status')")
-	elif patch_no == 363:
-		reload_doc('accounts', 'search_criteria', 'voucher_wise_tax_details')
-		reload_doc('accounts', 'Module Def', 'Accounts')
-		mappers = sql("select name, module from `tabDocType Mapper`")
-		for d in mappers:
-			if d[0] and d[1]:
-				reload_doc(d[1].lower(), 'DocType Mapper', d[0])
-	elif patch_no == 364:
-		sql("""delete from `tabField Mapper Detail` 
-			where to_field in ('qty', 'amount', 'export_amount') 
-			and parent in ('Sales Order-Receivable Voucher', 'Delivery Note-Receivable Voucher')
-		""")
-		mappers = sql("select name, module from `tabDocType Mapper`")
-		for d in mappers:
-			if d[0] and d[1]:
-				reload_doc(d[1].lower(), 'DocType Mapper', d[0])
-	elif patch_no == 365:
-		from patches.delivery_billing_status_patch import run_patch
-		run_patch()
-	elif patch_no == 367:
-		bin = sql("select name from tabBin")
-		for b in bin:
-			bobj = get_obj('Bin',b[0])
-			bobj.update_entries_after(posting_date = '2011-09-01', posting_time = '01:00')
-	elif patch_no == 368:
-		from webnotes.utils import nestedset
-		t = [
-			['Account', 'parent_account'], ['Cost Center', 'parent_cost_center'], 
-			['Item Group', 'parent_item_group'], ['Territory', 'parent_territory'],
-			['Customer Group', 'parent_customer_group'], ['Sales Person', 'parent_sales_person']
-		]
-		for d in t:
-			nestedset.rebuild_tree(d[0], d[1])
-	elif patch_no == 369:
-		reload_doc('hr', 'doctype', 'appraisal')
-		reload_doc('hr', 'doctype', 'appraisal_detail')
-	elif patch_no == 370:
-		sql("update `tabDocField` set `hidden` = 0 where fieldname = 'group_or_ledger' and parent = 'Cost Center'")
-	elif patch_no == 371:
-		from webnotes.modules.module_manager import reload_doc
-
-		reload_doc('setup', 'doctype','features_setup')
-		flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos']
-
-		for f in flds:
-			val = sql("select value from tabSingles where field = '%s' and doctype = 'Features Setup'" % f)
-			val = val and val[0][0] or 0
-			sql("update `tabSingles` set `value` = %s where `field` = '%s' and doctype = 'Features Setup'" % (val, '__'+f))
-
-		st = "'"+"', '".join(flds)+"'"
-		sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st)
-		sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st)
-
-		get_obj('Features Setup', 'Features Setup').doc.save()
-	elif patch_no == 372:
-		from webnotes.modules.module_manager import reload_doc
-
-		reload_doc('setup', 'doctype','features_setup')
-		flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos']
-
-		for f in flds:
-			val = sql("select value from tabSingles where field = '%s' and doctype = 'Features Setup'" % f)
-			val = val and val[0][0] or 0
-			sql("update `tabSingles` set `value` = %s where `field` = '%s' and doctype = 'Features Setup'" % (val, 'fs_'+f))
-
-		st = "'__"+"', '__".join(flds)+"'"
-		
-		sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st)
-		sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st)
-
-		get_obj('Features Setup', 'Features Setup').doc.save()
-	elif patch_no == 373:
-		sql("delete from `tabDocField` where fieldname = 'item_searial_nos' and parent = 'Features Setup'")
-		sql("delete from `tabDefaultValue` where defkey = 'item_searial_nos' and parent = 'Control Panel'")
-	elif patch_no == 374:
-		rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null")
-		from webnotes.model.code import get_obj
-		m = get_obj('Features Setup')
-		for d in rs:
-			m.doc.fields[d[0]] = 1
-		m.doc.save()
-		m.validate()
-	elif patch_no == 375:
-		from webnotes.session_cache import clear_cache
-		clear_cache(webnotes.session['user'])
-	elif patch_no == 376:
-		reload_doc('stock', 'DocType Mapper', 'Purchase Order-Purchase Receipt')
-	elif patch_no == 377:
-		flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos']
-		
-		st = "'"+"', '".join(flds)+"'"
-		sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st)
-		sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st)
-		
-		from webnotes.session_cache import clear_cache
-		clear_cache(webnotes.session['user'])
-	elif patch_no == 378:
-		comp = sql("select name from tabCompany where docstatus!=2")
-		fy = sql("select name from `tabFiscal Year` order by year_start_date asc")
-		for c in comp:
-			prev_fy = ''
-			for f in fy:
-				fy_obj = get_obj('Fiscal Year', f[0])
-				fy_obj.doc.past_year = prev_fy
-				fy_obj.doc.company = c[0]
-				fy_obj.doc.save()
-				fy_obj.repost()
-				prev_fy = f[0]
-				sql("commit")
-				sql("start transaction")
-	elif patch_no == 379:
-		sql("update tabDocPerm set amend = 0 where parent = 'Salary Structure'")
-		sql("update tabDocPerm set cancel = 1 where parent = 'Company' and role = 'System Manager'")
-	elif patch_no == 380:
-		if sql("select count(name) from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1:
-			sql("delete from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1")
-		if sql("select count(name) from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1:
-			sql("delete from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1")
-	elif patch_no == 381:
-		reload_doc('accounts', 'doctype', 'internal_reconciliation')
-		reload_doc('accounts', 'doctype', 'ir_payment_detail')
-		reload_doc('accounts', 'Module Def', 'Accounts')
-	elif patch_no == 382:
-		if sql("select count(name) from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button'")[0][0] > 1:
-			sql("delete from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button' limit 1")
-	elif patch_no == 383:
-		reload_doc('accounts', 'doctype', 'cost_center')
-	elif patch_no == 384:
-		reload_doc('stock', 'Module Def', 'Stock')
-		sql("delete from `tabModule Def Item` where display_name = 'Serial No' and parent = 'Support'")
-		sql("update `tabDocType` set subject = 'Item Code: %(item_code)s, Warehouse: %(warehouse)s' where name = 'Serial No'")
-	elif patch_no == 385:
-		# Patch for adding packing related columns (packed by, checked by, shipping mark etc)
-		reload_doc('stock','doctype','delivery_note')
-	elif patch_no == 386:
-		sql("update `tabDocField` set allow_on_submit = 1 where fieldname = 'page_break'")
-	elif patch_no == 387:
-		sql("update `tabDocField` set allow_on_submit = 1 where fieldname in ('indent_details', 'po_details', 'purchase_receipt_details', 'entries', 'sales_order_details', 'delivery_note_details', 'quotation_details') and fieldtype = 'Table'")
-	elif patch_no == 388:
-		pass
diff --git a/erpnext/patches/patch_list.py b/erpnext/patches/patch_list.py
index cd38480..7bb6001 100644
--- a/erpnext/patches/patch_list.py
+++ b/erpnext/patches/patch_list.py
@@ -28,7 +28,7 @@
 	{
 		'patch_module': 'patches.jan_mar_2012',
 		'patch_file': 'rename_doctype_indent',
-		'description': 'Add DocType Label: Indent to Purchase Requisition'
+		'description': 'Add DocType Label: Purchase Request to Purchase Requisition'
 	},
 	{
 		'patch_module': 'patches.jan_mar_2012',
@@ -208,6 +208,11 @@
 		'description': 'Purpose SE: Others to Other' 
 	},
 	{
+		'patch_module': 'patches.mar_2012',
+		'patch_file': 'pos_invoice_fix',
+		'description': 'Reload POS Invoice' 
+	},
+	{
 		'patch_module': 'patches.jan_mar_2012',
 		'patch_file': 'reload_mapper',
 		'description': 'SO-DN, SO-Rv, DN-RV'
@@ -223,9 +228,43 @@
 		'description': 'SO-RV duplicate mapper entry removal'
 	},
 	{
+		'patch_module': 'patches.jan_mar_2012',
+		'patch_file': 'sync_ref_db',
+		'description': 'Deletes non required doctypes'
+	},
+	{
+		'patch_module': 'patches.jan_mar_2012',
+		'patch_file': 'rename_dt',
+		'description': 'Rename DocType Patch'
+	},
+	{
+		'patch_module': 'patches.mar_2012',
+		'patch_file': 'cleanup_control_panel',
+		'description': 'Remove email related fields from Control Panel' 
+	},
+	{
+		'patch_module': 'patches.mar_2012',
+		'patch_file': 'doctype_get_refactor',
+		'description': 'Patch related to doctype get refactoring' 
+	},
+	{
+		'patch_module': 'patches.mar_2012',
+		'patch_file': 'clean_property_setter',
+		'description': 'Cleanup Property Setter Entries' 
+	},
+	{
+		'patch_module': 'patches.mar_2012',
+		'patch_file': 'delete_docformat',
+		'description': 'Deletes DocFormat from database' 
+	},
+	{
+		'patch_module': 'patches.mar_2012',
+		'patch_file': 'usertags',
+		'description': 'Adds _user_tags columns to tables' 
+	},
+	{
 		'patch_module': 'patches.april_2012',
 		'patch_file': 'reload_c_form',
 		'description': 'Added attchemnt option and total field'
 	},
-
 ]
diff --git a/erpnext/patches/print_formats/DeliveryNoteClassic.html b/erpnext/patches/print_formats/DeliveryNoteClassic.html
deleted file mode 100644
index 65d30e6..0000000
--- a/erpnext/patches/print_formats/DeliveryNoteClassic.html
+++ /dev/null
@@ -1,291 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Georgia", serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Georgia", serif !important;
-		font-size: 12px;
-		padding: 10px 0px;
-	}
-
-	table {
-		border-collapse: collapse;
-		width: 100%;
-		vertical-align: top;
-	}
-
-	table td {
-		padding: 2px 0px;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table thead {
-		border-bottom: 1px solid black;
-	}
-
-	table.header-table h3 {
-		color: gray;
-	}
-
-	table.header-table thead td {
-		padding: 5px 0px;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Delivery Note',
-				doc.name,
-				'delivery_note_details',
-				'Delivery Note Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
-					'basic_rate', 'amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '10%', '15%', '32%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						var to_append = ''
-						if(data_row.adj_rate){
-							to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								data_row.description = data_row.description + to_append;
-							}
-						}
-						
-						if(data_row.serial_no) {
-							to_append = '<div style="padding-left: 15px;"><i>Serial No.:' + 
-								((data_row.serial_no.indexOf('\n')>-1)?'<br />':'&nbsp;') + 
-								data_row.serial_no + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								data_row.description = data_row.description + to_append;
-							}
-						}
-	
-						return data_row.description;
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td><script>'<h1>' + (doc.select_print_heading || 'Delivery Note') + '</h1>'</script></td></tr>
-			<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=22%><b>Name</b></td>
-						<td><script>doc.customer_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=63%><b>Delivery Note Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-					<tr>
-						<td><b>Sales Order No.</b></td>
-						<td>
-							<script>doc.sales_order_no</script><br />
-							<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>
-						</td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-
diff --git a/erpnext/patches/print_formats/DeliveryNoteModern.html b/erpnext/patches/print_formats/DeliveryNoteModern.html
deleted file mode 100644
index 652358f..0000000
--- a/erpnext/patches/print_formats/DeliveryNoteModern.html
+++ /dev/null
@@ -1,317 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Helvetica", "Arial", sans-serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Helvetica", "Arial", sans-serif !important;
-		font-size: 12px;
-		padding: 10px 0px;
-	}
-
-	table {
-		border-collapse: collapse;
-		width: 100%;
-		vertical-align: top;
-		border-style: none !important;
-	}
-
-	table td {
-		padding: 2px 0px;
-		border-style: none !important;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table h1 {
-		text-transform: uppercase;
-		color: white;
-		font-size: 55px;
-		font-style: italic;
-	}
-
-	table.header-table thead tr:nth-child(1) div {
-		height: 24px;
-		background-color: #696969;
-		vertical-align: middle;
-		padding: 12px 0px 0px 0px;
-		width: 100%;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	div.page-body table tr td {
-		background-color: #DCDCDC !important;
-	}
-
-	div.page-body table tr:nth-child(1) td {
-		background-color: #696969 !important;
-		color: white !important;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-
-	table.footer-table tfoot td {
-		background-color: #696969;
-		height: 10px;
-	}
-
-	.imp-details {
-		background-color: #DCDCDC;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Delivery Note',
-				doc.name,
-				'delivery_note_details',
-				'Delivery Note Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
-					'basic_rate', 'amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '10%', '15%', '32%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						var to_append = ''
-						if(data_row.adj_rate){
-							to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								data_row.description = data_row.description + to_append;
-							}
-						}
-						
-						if(data_row.serial_no) {
-							to_append = '<div style="padding-left: 15px;"><i>Serial No.:' + 
-								((data_row.serial_no.indexOf('\n')>-1)?'<br />':'&nbsp;') + 
-								data_row.serial_no + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								data_row.description = data_row.description + to_append;
-							}
-						}
-	
-						return data_row.description;
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td colspan=2><div><script>'<h1>' + (doc.select_print_heading || 'Delivery Note') + '</h1>'</script></div></td></tr>
-			<tr><td colspan=2><div style="height:15px"></div></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=22%><b>Name</b></td>
-						<td><script>doc.customer_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr class='imp-details'>
-						<td><b>Delivery Note No.</b></td>
-						<td><script>cur_frm.docname</script></td>
-					</tr>
-					<tr>
-						<td width=63%><b>Delivery Note Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-					<tr>
-						<td><b>Sales Order No.</b></td>
-						<td>
-							<script>doc.sales_order_no</script><br />
-							<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>
-						</td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold' class='imp-details'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-			<tr><td colspan=2><div></div></td><tr>
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/DeliveryNoteSpartan.html b/erpnext/patches/print_formats/DeliveryNoteSpartan.html
deleted file mode 100644
index 978183d..0000000
--- a/erpnext/patches/print_formats/DeliveryNoteSpartan.html
+++ /dev/null
@@ -1,312 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Arial", sans-serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Arial", sans-serif !important;
-		font-size: 12px;
-		padding: 0px;
-	}
-
-	table {
-		width: 100% !important;
-		vertical-align: top;
-	}
-
-	table td {
-		padding: 2px 0px;
-	}
-
-	table, td {
-		border-collapse: collapse !important;
-		padding: 0px;
-		margin: 0px !important;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table h3 {
-		color: gray;
-	}
-
-	table.header-table thead td {
-		padding: 5px;
-	}
-
-	table.header-table > thead,
-	table.header-table > tbody > tr > td,
-	table.footer-table > tbody > tr > td {
-		border: 1px solid black;
-		padding: 5px;
-	}
-
-	table.footer-table > tbody,
-	table.header-table > thead {
-		border-bottom: 3px solid black;
-	}
-
-	table.header-table > thead {
-		border-top: 3px solid black;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	div.page-body td {
-		background-color: white !important;
-		border: 1px solid black !important;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Delivery Note',
-				doc.name,
-				'delivery_note_details',
-				'Delivery Note Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
-					'basic_rate', 'amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '10%', '15%', '32%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						var to_append = ''
-						if(data_row.adj_rate){
-							to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								data_row.description = data_row.description + to_append;
-							}
-						}
-						
-						if(data_row.serial_no) {
-							to_append = '<div style="padding-left: 15px;"><i>Serial No.:' + 
-								((data_row.serial_no.indexOf('\n')>-1)?'<br />':'&nbsp;') + 
-								data_row.serial_no + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								data_row.description = data_row.description + to_append;
-							}
-						}
-	
-						return data_row.description;
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td colspan=2><script>'<h1>' + (doc.select_print_heading || 'Delivery Note') + '</h1>'</script></td></tr>
-			<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=22%><b>Name</b></td>
-						<td><script>doc.customer_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=63%><b>Delivery Note Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-					<tr>
-						<td><b>Sales Order No.</b></td>
-						<td>
-							<script>doc.sales_order_no</script><br />
-							<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>
-						</td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/PurchaseOrderClassic.html b/erpnext/patches/print_formats/PurchaseOrderClassic.html
deleted file mode 100644
index e9a9ff8..0000000
--- a/erpnext/patches/print_formats/PurchaseOrderClassic.html
+++ /dev/null
@@ -1,248 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Georgia", serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Georgia", serif !important;
-		font-size: 12px;
-		padding: 10px 0px;
-	}
-
-	table {
-		border-collapse: collapse;
-		width: 100%;
-		vertical-align: top;
-	}
-
-	table td {
-		padding: 2px 0px;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table thead {
-		border-bottom: 1px solid black;
-	}
-
-	table.header-table h3 {
-		color: gray;
-	}
-
-	table.header-table thead td {
-		padding: 5px 0px;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Purchase Order',
-				doc.name,
-				'po_details',
-				'PO Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
-					'import_rate', 'import_amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '10%', '15%', '32%', '5%',
-					'5%', '15%', '15%'
-				]
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('Purchase Tax Detail', doc.name, 'purchase_tax_details');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				rows +=
-					'<tr>\n' +
-						'\t<td>' + oc[i].description + '</td>\n' +
-						'\t<td></td>\n' +
-						'\t<td width=38%>' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + '</td>\n' +
-					'</tr>\n';
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td><script>'<h1>' + (doc.select_print_heading || 'Purchase Order') + '</h1>'</script></td></tr>
-			<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=22%><b>Name</b></td>
-						<td><script>doc.supplier_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=63%><b>Purchase Order Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total_import)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr style='font-weight: bold'>
-							<td>Grand Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.grand_total_import)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_import</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/PurchaseOrderModern.html b/erpnext/patches/print_formats/PurchaseOrderModern.html
deleted file mode 100644
index 73b607b..0000000
--- a/erpnext/patches/print_formats/PurchaseOrderModern.html
+++ /dev/null
@@ -1,275 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Helvetica", "Arial", sans-serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Helvetica", "Arial", sans-serif !important;
-		font-size: 12px;
-		padding: 10px 0px;
-	}
-
-	table {
-		border-collapse: collapse;
-		width: 100%;
-		vertical-align: top;
-		border-style: none !important;
-	}
-
-	table td {
-		padding: 2px 0px;
-		border-style: none !important;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table h1 {
-		text-transform: uppercase;
-		color: white;
-		font-size: 55px;
-		font-style: italic;
-	}
-
-	table.header-table thead tr:nth-child(1) div {
-		height: 24px;
-		background-color: #696969;
-		vertical-align: middle;
-		padding: 12px 0px 0px 0px;
-		width: 100%;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	div.page-body table tr td {
-		background-color: #DCDCDC !important;
-	}
-
-	div.page-body table tr:nth-child(1) td {
-		background-color: #696969 !important;
-		color: white !important;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-
-	table.footer-table tfoot td {
-		background-color: #696969;
-		height: 10px;
-	}
-
-	.imp-details {
-		background-color: #DCDCDC;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Purchase Order',
-				doc.name,
-				'po_details',
-				'PO Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
-					'import_rate', 'import_amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '10%', '15%', '32%', '5%',
-					'5%', '15%', '15%'
-				]
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('Purchase Tax Detail', doc.name, 'purchase_tax_details');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				rows +=
-					'<tr>\n' +
-						'\t<td>' + oc[i].description + '</td>\n' +
-						'\t<td></td>\n' +
-						'\t<td width=38%>' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + '</td>\n' +
-					'</tr>\n';
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td colspan=2><div><script>'<h1>' + (doc.select_print_heading || 'Purchase Order') + '</h1>'</script></div></td></tr>
-			<tr><td colspan=2><div style="height:15px"></div></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=22%><b>Name</b></td>
-						<td><script>doc.supplier_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr class='imp-details'>
-						<td><b>Purchase Order No.</b></td>
-						<td><script>cur_frm.docname</script></td>
-					</tr>
-					<tr>
-						<td width=63%><b>Purchase Order Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total_import)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr style='font-weight: bold' class='imp-details'>
-							<td>Grand Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.grand_total_import)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_import</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-			<tr><td colspan=2><div></div></td><tr>
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/PurchaseOrderSpartan.html b/erpnext/patches/print_formats/PurchaseOrderSpartan.html
deleted file mode 100644
index 9058e0c..0000000
--- a/erpnext/patches/print_formats/PurchaseOrderSpartan.html
+++ /dev/null
@@ -1,270 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Arial", sans-serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Arial", sans-serif !important;
-		font-size: 12px;
-		padding: 0px;
-	}
-
-	table {
-		width: 100% !important;
-		vertical-align: top;
-	}
-
-	table td {
-		padding: 2px 0px;
-	}
-
-	table, td {
-		border-collapse: collapse !important;
-		padding: 0px;
-		margin: 0px !important;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table h3 {
-		color: gray;
-	}
-
-	table.header-table thead td {
-		padding: 5px;
-	}
-
-	table.header-table > thead,
-	table.header-table > tbody > tr > td,
-	table.footer-table > tbody > tr > td {
-		border: 1px solid black;
-		padding: 5px;
-	}
-
-	table.footer-table > tbody,
-	table.header-table > thead {
-		border-bottom: 3px solid black;
-	}
-
-	table.header-table > thead {
-		border-top: 3px solid black;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	div.page-body td {
-		background-color: white !important;
-		border: 1px solid black !important;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Purchase Order',
-				doc.name,
-				'po_details',
-				'PO Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
-					'import_rate', 'import_amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '10%', '15%', '32%', '5%',
-					'5%', '15%', '15%'
-				]
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('Purchase Tax Detail', doc.name, 'purchase_tax_details');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				rows +=
-					'<tr>\n' +
-						'\t<td>' + oc[i].description + '</td>\n' +
-						'\t<td></td>\n' +
-						'\t<td width=38%>' + fmt_money(oc[i].tax_amount / (doc.conversion_rate || 1)) + '</td>\n' +
-					'</tr>\n';
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td colspan=2><script>'<h1>' + (doc.select_print_heading || 'Purchase Order') + '</h1>'</script></td></tr>
-			<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=22%><b>Name</b></td>
-						<td><script>doc.supplier_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=63%><b>Purchase Order Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total_import)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr style='font-weight: bold'>
-							<td>Grand Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.grand_total_import)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_import</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/QuotationClassic.html b/erpnext/patches/print_formats/QuotationClassic.html
deleted file mode 100644
index ca69755..0000000
--- a/erpnext/patches/print_formats/QuotationClassic.html
+++ /dev/null
@@ -1,275 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Georgia", serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Georgia", serif !important;
-		font-size: 12px;
-		padding: 10px 0px;
-	}
-
-	table {
-		border-collapse: collapse;
-		width: 100%;
-		vertical-align: top;
-	}
-
-	table td {
-		padding: 2px 0px;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table thead {
-		border-bottom: 1px solid black;
-	}
-
-	table.header-table h3 {
-		color: gray;
-	}
-
-	table.header-table thead td {
-		padding: 5px 0px;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Quotation',
-				doc.name,
-				'quotation_details',
-				'Quotation Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
-					'export_rate', 'export_amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '10%', '15%', '32%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						if(data_row.adj_rate) {
-							var to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								return data_row.description + to_append;
-							} else { return data_row.description; }
-						} else {
-							return data_row.description;
-						}
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td>
-					<script>'<h1>' + (doc.select_print_heading || 'Quotation') + '</h1>'</script>
-			</td></tr>
-			<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=39%><b>Name</b></td>
-						<td><script>doc.customer?doc.customer:doc.lead_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=63%><b>Quotation Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total/doc.conversion_rate)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/QuotationModern.html b/erpnext/patches/print_formats/QuotationModern.html
deleted file mode 100644
index 7f7727a..0000000
--- a/erpnext/patches/print_formats/QuotationModern.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Helvetica", "Arial", sans-serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Helvetica", "Arial", sans-serif !important;
-		font-size: 12px;
-		padding: 10px 0px;
-	}
-
-	table {
-		border-collapse: collapse;
-		width: 100%;
-		vertical-align: top;
-		border-style: none !important;
-	}
-
-	table td {
-		padding: 2px 0px;
-		border-style: none !important;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table h1 {
-		text-transform: uppercase;
-		color: white;
-		font-size: 55px;
-		font-style: italic;
-	}
-
-	table.header-table thead tr:nth-child(1) div {
-		height: 24px;
-		background-color: #696969;
-		vertical-align: middle;
-		padding: 12px 0px 0px 0px;
-		width: 100%;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	div.page-body table tr td {
-		background-color: #DCDCDC !important;
-	}
-
-	div.page-body table tr:nth-child(1) td {
-		background-color: #696969 !important;
-		color: white !important;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-
-	table.footer-table tfoot td {
-		background-color: #696969;
-		height: 10px;
-	}
-
-	.imp-details {
-		background-color: #DCDCDC;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Quotation',
-				doc.name,
-				'quotation_details',
-				'Quotation Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
-					'export_rate', 'export_amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '10%', '15%', '32%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						if(data_row.adj_rate) {
-							var to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								return data_row.description + to_append;
-							} else { return data_row.description; }
-						} else {
-							return data_row.description;
-						}
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td colspan=2><div><script>'<h1>' + (doc.select_print_heading || 'Quotation') + '</h1>'</script></div></td></tr>
-			<tr><td colspan=2><div style="height:15px"></div></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=39%><b>Name</b></td>
-						<td><script>doc.customer?doc.customer:doc.lead_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr class='imp-details'>
-						<td><b>Quotation No.</b></td>
-						<td><script>cur_frm.docname</script></td>
-					</tr>
-					<tr>
-						<td width=63%><b>Quotation Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total/doc.conversion_rate)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold' class='imp-details'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-			<tr><td colspan=2><div></div></td><tr>
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/QuotationSpartan.html b/erpnext/patches/print_formats/QuotationSpartan.html
deleted file mode 100644
index e082993..0000000
--- a/erpnext/patches/print_formats/QuotationSpartan.html
+++ /dev/null
@@ -1,295 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Arial", sans-serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Arial", sans-serif !important;
-		font-size: 12px;
-		padding: 0px;
-	}
-
-	table {
-		width: 100% !important;
-		vertical-align: top;
-	}
-
-	table td {
-		padding: 2px 0px;
-	}
-
-	table, td {
-		border-collapse: collapse !important;
-		padding: 0px;
-		margin: 0px !important;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table h3 {
-		color: gray;
-	}
-
-	table.header-table thead td {
-		padding: 5px;
-	}
-
-	table.header-table > thead,
-	table.header-table > tbody > tr > td,
-	table.footer-table > tbody > tr > td {
-		border: 1px solid black;
-		padding: 5px;
-	}
-
-	table.footer-table > tbody,
-	table.header-table > thead {
-		border-bottom: 3px solid black;
-	}
-
-	table.header-table > thead {
-		border-top: 3px solid black;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	div.page-body td {
-		background-color: white !important;
-		border: 1px solid black !important;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Quotation',
-				doc.name,
-				'quotation_details',
-				'Quotation Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'item_name', 'description', 'qty', 'stock_uom',
-					'export_rate', 'export_amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '10%', '15%', '32%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						if(data_row.adj_rate) {
-							var to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								return data_row.description + to_append;
-							} else { return data_row.description; }
-						} else {
-							return data_row.description;
-						}
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td colspan=2><script>'<h1>' + (doc.select_print_heading || 'Quotation') + '</h1>'</script></td></tr>
-			<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=39%><b>Name</b></td>
-						<td><script>doc.customer?doc.customer:doc.lead_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=63%><b>Quotation Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total/doc.conversion_rate)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/SalesInvoiceClassic.html b/erpnext/patches/print_formats/SalesInvoiceClassic.html
deleted file mode 100644
index d40f801..0000000
--- a/erpnext/patches/print_formats/SalesInvoiceClassic.html
+++ /dev/null
@@ -1,277 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Georgia", serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Georgia", serif !important;
-		font-size: 12px;
-		padding: 10px 0px;
-	}
-
-	table {
-		border-collapse: collapse;
-		width: 100%;
-		vertical-align: top;
-	}
-
-	table td {
-		padding: 2px 0px;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table thead {
-		border-bottom: 1px solid black;
-	}
-
-	table.header-table h3 {
-		color: gray;
-	}
-
-	table.header-table thead td {
-		padding: 5px 0px;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Receivable Voucher',
-				doc.name,
-				'entries',
-				'RV Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_name', 'description', 'qty', 'stock_uom',
-					'export_rate', 'export_amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '20%', '37%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						if(data_row.adj_rate) {
-							var to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								return data_row.description + to_append;
-							} else { return data_row.description; }
-						} else {
-							return data_row.description;
-						}
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td><script>'<h1>' + (doc.select_print_heading || 'Invoice') + '</h1>'</script></td></tr>
-			<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=39%><b>Name</b></td>
-						<td><script>doc.customer_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=40%><b>Invoice Date</b></td>
-						<td><script>date.str_to_user(doc.posting_date)</script></td>
-					<tr>					
-					<tr>
-						<td><b>Due Date</b></td>
-						<td><script>date.str_to_user(doc.due_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total/doc.conversion_rate)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/SalesInvoiceModern.html b/erpnext/patches/print_formats/SalesInvoiceModern.html
deleted file mode 100644
index ac66423..0000000
--- a/erpnext/patches/print_formats/SalesInvoiceModern.html
+++ /dev/null
@@ -1,304 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Helvetica", "Arial", sans-serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Helvetica", "Arial", sans-serif !important;
-		font-size: 12px;
-		padding: 10px 0px;
-	}
-
-	table {
-		border-collapse: collapse;
-		width: 100%;
-		vertical-align: top;
-		border-style: none !important;
-	}
-
-	table td {
-		padding: 2px 0px;
-		border-style: none !important;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table h1 {
-		text-transform: uppercase;
-		color: white;
-		font-size: 55px;
-		font-style: italic;
-	}
-
-	table.header-table thead tr:nth-child(1) div {
-		height: 24px;
-		background-color: #696969;
-		vertical-align: middle;
-		padding: 12px 0px 0px 0px;
-		width: 100%;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	div.page-body table tr td {
-		background-color: #DCDCDC !important;
-	}
-
-	div.page-body table tr:nth-child(1) td {
-		background-color: #696969 !important;
-		color: white !important;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-
-	table.footer-table tfoot td {
-		background-color: #696969;
-		height: 10px;
-	}
-
-	.imp-details {
-		background-color: #DCDCDC;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Receivable Voucher',
-				doc.name,
-				'entries',
-				'RV Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_name', 'description', 'qty', 'stock_uom',
-					'export_rate', 'export_amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '20%', '37%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						if(data_row.adj_rate) {
-							var to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								return data_row.description + to_append;
-							} else { return data_row.description; }
-						} else {
-							return data_row.description;
-						}
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td colspan=2><div><script>'<h1>' + (doc.select_print_heading || 'Invoice') + '</h1>'</script></div></td></tr>
-			<tr><td colspan=2><div style="height:15px"></div></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=39%><b>Name</b></td>
-						<td><script>doc.customer_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr class='imp-details'>
-						<td><b>Invoice No.</b></td>
-						<td><script>cur_frm.docname</script></td>
-					</tr>
-					<tr>
-						<td width=40%><b>Invoice Date</b></td>
-						<td><script>date.str_to_user(doc.posting_date)</script></td>
-					<tr>					
-					<tr>
-						<td><b>Due Date</b></td>
-						<td><script>date.str_to_user(doc.due_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total/doc.conversion_rate)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold' class='imp-details'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-			<tr><td colspan=2><div></div></td><tr>
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/SalesInvoiceSpartan.html b/erpnext/patches/print_formats/SalesInvoiceSpartan.html
deleted file mode 100644
index 81e1c38..0000000
--- a/erpnext/patches/print_formats/SalesInvoiceSpartan.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Arial", sans-serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Arial", sans-serif !important;
-		font-size: 12px;
-		padding: 0px;
-	}
-
-	table {
-		width: 100% !important;
-		vertical-align: top;
-	}
-
-	table td {
-		padding: 2px 0px;
-	}
-
-	table, td {
-		border-collapse: collapse !important;
-		padding: 0px;
-		margin: 0px !important;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table h3 {
-		color: gray;
-	}
-
-	table.header-table thead td {
-		padding: 5px;
-	}
-
-	table.header-table > thead,
-	table.header-table > tbody > tr > td,
-	table.footer-table > tbody > tr > td {
-		border: 1px solid black;
-		padding: 5px;
-	}
-
-	table.footer-table > tbody,
-	table.header-table > thead {
-		border-bottom: 3px solid black;
-	}
-
-	table.header-table > thead {
-		border-top: 3px solid black;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	div.page-body td {
-		background-color: white !important;
-		border: 1px solid black !important;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Receivable Voucher',
-				doc.name,
-				'entries',
-				'RV Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_name', 'description', 'qty', 'stock_uom',
-					'export_rate', 'export_amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Name', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '20%', '37%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						if(data_row.adj_rate) {
-							var to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								return data_row.description + to_append;
-							} else { return data_row.description; }
-						} else {
-							return data_row.description;
-						}
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td colspan=2><script>'<h1>' + (doc.select_print_heading || 'Invoice') + '</h1>'</script></td></tr>
-			<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=39%><b>Name</b></td>
-						<td><script>doc.customer_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=40%><b>Invoice Date</b></td>
-						<td><script>date.str_to_user(doc.posting_date)</script></td>
-					<tr>					
-					<tr>
-						<td><b>Due Date</b></td>
-						<td><script>date.str_to_user(doc.due_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total/doc.conversion_rate)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/SalesOrderClassic.html b/erpnext/patches/print_formats/SalesOrderClassic.html
deleted file mode 100644
index 070feb0..0000000
--- a/erpnext/patches/print_formats/SalesOrderClassic.html
+++ /dev/null
@@ -1,277 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Georgia", serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Georgia", serif !important;
-		font-size: 12px;
-		padding: 10px 0px;
-	}
-
-	table {
-		border-collapse: collapse;
-		width: 100%;
-		vertical-align: top;
-	}
-
-	table td {
-		padding: 2px 0px;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table thead {
-		border-bottom: 1px solid black;
-	}
-
-	table.header-table h3 {
-		color: gray;
-	}
-
-	table.header-table thead td {
-		padding: 5px 0px;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Sales Order',
-				doc.name,
-				'sales_order_details',
-				'Sales Order Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'description', 'qty', 'stock_uom',
-					'basic_rate', 'amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '20%', '37%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						if(data_row.adj_rate) {
-							var to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								return data_row.description + to_append;
-							} else { return data_row.description; }
-						} else {
-							return data_row.description;
-						}
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td><script>'<h1>' + (doc.select_print_heading || 'Sales Order') + '</h1>'</script></td></tr>
-			<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=39%><b>Name</b></td>
-						<td><script>doc.customer_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=63%><b>Sales Order Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-					<tr>
-						<td><b>Delivery Date</b></td>
-						<td><script>date.str_to_user(doc.delivery_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/SalesOrderModern.html b/erpnext/patches/print_formats/SalesOrderModern.html
deleted file mode 100644
index e2ac0c1..0000000
--- a/erpnext/patches/print_formats/SalesOrderModern.html
+++ /dev/null
@@ -1,304 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Helvetica", "Arial", sans-serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Helvetica", "Arial", sans-serif !important;
-		font-size: 12px;
-		padding: 10px 0px;
-	}
-
-	table {
-		border-collapse: collapse;
-		width: 100%;
-		vertical-align: top;
-		border-style: none !important;
-	}
-
-	table td {
-		padding: 2px 0px;
-		border-style: none !important;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table h1 {
-		text-transform: uppercase;
-		color: white;
-		font-size: 55px;
-		font-style: italic;
-	}
-
-	table.header-table thead tr:nth-child(1) div {
-		height: 24px;
-		background-color: #696969;
-		vertical-align: middle;
-		padding: 12px 0px 0px 0px;
-		width: 100%;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	div.page-body table tr td {
-		background-color: #DCDCDC !important;
-	}
-
-	div.page-body table tr:nth-child(1) td {
-		background-color: #696969 !important;
-		color: white !important;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-
-	table.footer-table tfoot td {
-		background-color: #696969;
-		height: 10px;
-	}
-
-	.imp-details {
-		background-color: #DCDCDC;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Sales Order',
-				doc.name,
-				'sales_order_details',
-				'Sales Order Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'description', 'qty', 'stock_uom',
-					'basic_rate', 'amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '20%', '37%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						if(data_row.adj_rate) {
-							var to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								return data_row.description + to_append;
-							} else { return data_row.description; }
-						} else {
-							return data_row.description;
-						}
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td colspan=2><div><script>'<h1>' + (doc.select_print_heading || 'Sales Order') + '</h1>'</script></div></td></tr>
-			<tr><td colspan=2><div style="height:15px"></div></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=39%><b>Name</b></td>
-						<td><script>doc.customer_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr class='imp-details'>
-						<td><b>Sales Order No.</b></td>
-						<td><script>cur_frm.docname</script></td>
-					</tr>
-					<tr>
-						<td width=63%><b>Sales Order Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-					<tr>
-						<td><b>Delivery Date</b></td>
-						<td><script>date.str_to_user(doc.delivery_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold' class='imp-details'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-			<tr><td colspan=2><div></div></td><tr>
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/patches/print_formats/SalesOrderSpartan.html b/erpnext/patches/print_formats/SalesOrderSpartan.html
deleted file mode 100644
index 866e84f..0000000
--- a/erpnext/patches/print_formats/SalesOrderSpartan.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!--
-	Sample Print Format for ERPNext
-	Please use at your own discretion
-	For suggestions and contributions:
-		https://github.com/webnotes/erpnext-print-templates
-
-	Freely usable under MIT license
--->
-
-<!-- Style Settings -->
-<style>
-	/*
-		common style for whole page
-		This should include:
-		+ page size related settings
-		+ font family settings
-		+ line spacing settings
-	*/
-	@media screen {
-		body {
-			width: 8.3in;
-		}
-	}
-
-	html, body, div, span, td {
-		font-family: "Arial", sans-serif;
-		font-size: 12px;
-	}
-
-	body {
-		padding: 10px;
-		margin: auto;
-		font-size: 12px;
-		line-height: 150%;
-	}
-
-	.common {
-		font-family: "Arial", sans-serif !important;
-		font-size: 12px;
-		padding: 0px;
-	}
-
-	table {
-		width: 100% !important;
-		vertical-align: top;
-	}
-
-	table td {
-		padding: 2px 0px;
-	}
-
-	table, td {
-		border-collapse: collapse !important;
-		padding: 0px;
-		margin: 0px !important;
-	}
-	
-	table h1, h2, h3, h4, h5, h6 {
-		padding: 0px;
-		margin: 0px;
-	}
-
-	table.header-table td {
-		vertical-align: top;
-	}
-
-	table.header-table h3 {
-		color: gray;
-	}
-
-	table.header-table thead td {
-		padding: 5px;
-	}
-
-	table.header-table > thead,
-	table.header-table > tbody > tr > td,
-	table.footer-table > tbody > tr > td {
-		border: 1px solid black;
-		padding: 5px;
-	}
-
-	table.footer-table > tbody,
-	table.header-table > thead {
-		border-bottom: 3px solid black;
-	}
-
-	table.header-table > thead {
-		border-top: 3px solid black;
-	}
-
-	div.page-body table td:nth-child(6),
-	div.page-body table td:nth-child(7) {
-		text-align: right;
-	}
-
-	div.page-body td {
-		background-color: white !important;
-		border: 1px solid black !important;
-	}
-
-	table.footer-table td {
-		vertical-align: top;
-	}
-
-	table.footer-table td table td:nth-child(2),
-	table.footer-table td table td:nth-child(3) {
-		text-align: right;
-	}
-</style>
-
-
-<!-- Javascript -->
-<script>
-	si_std = {
-		print_item_table: function() {
-			var table = print_table(
-				'Sales Order',
-				doc.name,
-				'sales_order_details',
-				'Sales Order Detail',
-				[// Here specify the table columns to be displayed
-					'SR', 'item_code', 'description', 'qty', 'stock_uom',
-					'basic_rate', 'amount'
-				],
-				[// Here specify the labels of column headings
-					'Sr', 'Item Code', 'Description', 'Qty',
-					'UoM', 'Basic Rate', 'Amount'
-				],
-				[// Here specify the column widths
-					'3%', '20%', '37%', '5%',
-					'5%', '15%', '15%'
-				],
-				null,
-				null,
-				{
-					'description' : function(data_row) {
-						if(data_row.adj_rate) {
-							var to_append = '<div style="padding-left: 15px;"><i>Discount: ' + 
-								data_row.adj_rate + '% on ' + doc.currency + ' ' +
-								fmt_money(data_row.ref_rate) + '</i></div>';
-							if(data_row.description.indexOf(to_append)==-1) {
-								return data_row.description + to_append;
-							} else { return data_row.description; }
-						} else {
-							return data_row.description;
-						}
-					}
-				}
-			);
-
-			// This code takes care of page breaks
-			if(table.appendChild) {
-				out = table.innerHTML;
-			} else {
-				out = '';
-				for(var i=0; i < (table.length-1); i++) {
-					out += table[i].innerHTML + 
-						'<div style = "page-break-after: always;" \
-						class = "page_break"></div>\
-						<div class="page-settings"></div>';
-				}
-				out += table[table.length-1].innerHTML;
-			}
-			return out;
-		},
-
-
-		print_other_charges: function(parent) {
-			var oc = getchildren('RV Tax Detail', doc.name, 'other_charges');
-			var rows = '<table width=100%>\n';
-			for(var i=0; i<oc.length; i++) {
-				if(!oc[i].included_in_print_rate) {
-					rows +=
-						'<tr>\n' +
-							'\t<td>' + oc[i].description + '</td>\n' +
-							'\t<td></td>\n' +
-							'\t<td width=38%>' + fmt_money(oc[i].tax_amount) + '</td>\n' +
-						'</tr>\n';
-				}
-			}
-			return rows + '</table>\n';
-		}
-	};
-</script>
-
-
-<!-- Page Layout Settings -->
-<div class='common page-header'>
-	<!-- 
-		Page Header will contain
-			+ table 1
-				+ table 1a
-					- Name
-					- Address
-					- Contact
-					- Mobile No
-				+ table 1b
-					- Voucher Date
-					- Due Date
-	-->
-	<table class='header-table' cellspacing=0>
-		<thead>
-			<tr><td colspan=2><script>'<h1>' + (doc.select_print_heading || 'Sales Order') + '</h1>'</script></td></tr>
-			<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60%><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=39%><b>Name</b></td>
-						<td><script>doc.customer_name</script></td>
-					</tr>
-					<tr>
-						<td><b>Address</b></td>
-						<td><script>replace_newlines(doc.address_display)</script></td>
-					</tr>
-					<tr>
-						<td><b>Contact</b></td>
-						<td><script>doc.contact_display</script></td>
-					</tr>
-				</tbody></table></td>
-				<td><table width=100% cellspacing=0><tbody>
-					<tr>
-						<td width=63%><b>Sales Order Date</b></td>
-						<td><script>date.str_to_user(doc.transaction_date)</script></td>
-					<tr>					
-					<tr>
-						<td><b>Delivery Date</b></td>
-						<td><script>date.str_to_user(doc.delivery_date)</script></td>
-					<tr>					
-				</tbody></table></td>
-			</tr>
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
-<div class='common page-body'>
-	<!-- 
-		Page Body will contain
-			+ table 2
-				- Sales Invoice Data
-	-->
-	<script>si_std.print_item_table()</script>
-</div>
-<div class='common page-footer'>
-	<!-- 
-		Page Footer will contain
-			+ table 3
-				- Terms and Conditions
-				- Total Rounded Amount Calculation
-				- Total Rounded Amount in Words
-	-->
-	<table class='footer-table' width=100% cellspacing=0>
-		<thead>
-			
-		</thead>
-		<tbody>
-			<tr>
-				<td width=60% style='padding-right: 10px;'>
-					<b>Terms, Conditions &amp; Other Information:</b><br />
-					<script>doc.terms</script>
-				</td>
-				<td>
-					<table cellspacing=0 width=100%><tbody>
-						<tr>
-							<td>Net Total</td>
-							<td></td>
-							<td width=38%><script>
-								fmt_money(doc.net_total)
-							</script></td>
-						</tr>
-						<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>
-						<tr>
-							<td>Grand Total</td>
-							<td></td>
-							<td><script>
-								fmt_money(doc.grand_total_export)
-							</script></td>
-						</tr>
-						<tr style='font-weight: bold'>
-							<td>Rounded Total</td>
-							<td><script>doc.currency</script></td>
-							<td><script>
-								fmt_money(doc.rounded_total_export)
-							</script></td>
-						</tr>
-					</tbody></table>
-					<br /><b>In Words</b><br />
-					<i><script>doc.in_words_export</script></i>
-				</td>
-			</tr>		
-		</tbody>
-		<tfoot>
-		
-		</tfoot>
-	</table>
-</div>
diff --git a/erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt b/erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt
deleted file mode 100644
index 7065fa6..0000000
--- a/erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt
+++ /dev/null
@@ -1,102 +0,0 @@
-# DocType Mapper, Production Forecast-Production Plan
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:35',
-		'docstatus': 0,
-		'modified': '2011-09-15 15:04:42',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'name': '__common__',
-		'parent': 'Production Forecast-Production Plan',
-		'parentfield': 'table_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'map': 'Yes',
-		'match_id': 1,
-		'name': '__common__',
-		'parent': 'Production Forecast-Production Plan',
-		'parentfield': 'field_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': 'DocType Mapper',
-		'from_doctype': 'Production Forecast',
-		'module': 'Production',
-		'name': '__common__',
-		'to_doctype': 'Production Plan'
-	},
-
-	# DocType Mapper, Production Forecast-Production Plan
-	{
-		'doctype': 'DocType Mapper',
-		'name': 'Production Forecast-Production Plan'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval:flt(obj.qty)-flt(obj.planned_qty)',
-		'to_field': 'prevdoc_reqd_qty'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parenttype',
-		'to_field': 'against_document'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parent',
-		'to_field': 'document_no'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'start_date',
-		'to_field': 'document_date'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'end_date',
-		'to_field': 'confirmation_date'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_table': 'Production Forecast',
-		'match_id': 0,
-		'to_table': 'Production Plan',
-		'validation_logic': 'docstatus =1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'pf_details',
-		'from_table': 'PF Detail',
-		'match_id': 1,
-		'to_field': 'pp_details',
-		'to_table': 'PP Detail',
-		'validation_logic': 'docstatus =1 and qty > planned_qty '
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt b/erpnext/production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt
deleted file mode 100644
index 3d62811..0000000
--- a/erpnext/production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt
+++ /dev/null
@@ -1,95 +0,0 @@
-# DocType Mapper, Production Forecast-Production Planning Tool
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:35',
-		'docstatus': 0,
-		'modified': '2011-09-15 15:04:43',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'name': '__common__',
-		'parent': 'Production Forecast-Production Planning Tool',
-		'parentfield': 'table_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'map': 'Yes',
-		'match_id': 1,
-		'name': '__common__',
-		'parent': 'Production Forecast-Production Planning Tool',
-		'parentfield': 'field_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': 'DocType Mapper',
-		'from_doctype': 'Production Forecast',
-		'module': 'Production',
-		'name': '__common__',
-		'to_doctype': 'Production Planning Tool'
-	},
-
-	# DocType Mapper, Production Forecast-Production Planning Tool
-	{
-		'doctype': 'DocType Mapper',
-		'name': 'Production Forecast-Production Planning Tool'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval:flt(obj.qty)-flt(obj.planned_qty)',
-		'to_field': 'prevdoc_reqd_qty'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parenttype',
-		'to_field': 'source_doctype'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parent',
-		'to_field': 'source_docname'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'end_date',
-		'to_field': 'confirmation_date'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_table': 'Production Forecast',
-		'match_id': 0,
-		'to_table': 'Production Planning Tool',
-		'validation_logic': 'docstatus =1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'pf_details',
-		'from_table': 'PF Detail',
-		'match_id': 1,
-		'to_field': 'pp_details',
-		'to_table': 'PP Detail',
-		'validation_logic': 'docstatus =1 and qty > planned_qty '
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt b/erpnext/production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt
deleted file mode 100644
index 780b841..0000000
--- a/erpnext/production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt
+++ /dev/null
@@ -1,103 +0,0 @@
-# DocType Mapper, Sales Order-Production Plan
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:36',
-		'docstatus': 0,
-		'modified': '2011-09-15 15:04:45',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'name': '__common__',
-		'parent': 'Sales Order-Production Plan',
-		'parentfield': 'table_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'map': 'Yes',
-		'match_id': 1,
-		'name': '__common__',
-		'parent': 'Sales Order-Production Plan',
-		'parentfield': 'field_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': 'DocType Mapper',
-		'from_doctype': 'Sales Order',
-		'module': 'Production',
-		'name': '__common__',
-		'ref_doc_submitted': 1,
-		'to_doctype': 'Production Plan'
-	},
-
-	# DocType Mapper, Sales Order-Production Plan
-	{
-		'doctype': 'DocType Mapper',
-		'name': 'Sales Order-Production Plan'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parenttype',
-		'to_field': 'against_document'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parent',
-		'to_field': 'document_no'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'uom',
-		'to_field': 'stock_uom'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval:flt(obj.qty)-flt(obj.planned_qty)',
-		'to_field': 'prevdoc_total_qty'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'transaction_date',
-		'to_field': 'document_date'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_table': 'Sales Order',
-		'match_id': 0,
-		'to_table': 'Production Plan',
-		'validation_logic': 'docstatus =1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'packing_details',
-		'from_table': 'Delivery Note Packing Detail',
-		'match_id': 1,
-		'to_field': 'pp_details',
-		'to_table': 'PP Detail',
-		'validation_logic': 'docstatus =1 and qty > planned_qty'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/Module Def/Production/Production.txt b/erpnext/production/Module Def/Production/Production.txt
deleted file mode 100644
index 169acf5..0000000
--- a/erpnext/production/Module Def/Production/Production.txt
+++ /dev/null
@@ -1,519 +0,0 @@
-[
-	{
-		'_last_update': '1300959287',
-		'creation': '2010-11-30 22:42:49',
-		'disabled': 'No',
-		'docstatus': 0,
-		'doctype': u'Module Def',
-		'doctype_list': None,
-		'file_list': 'support.gif,FileData/00214',
-		'idx': None,
-		'is_hidden': 'No',
-		'last_updated_date': '2010-11-29 12:02:02',
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'module_desc': '<p>Production Documents</p>',
-		'module_icon': 'process.png',
-		'module_label': 'Production',
-		'module_name': 'Production',
-		'module_page': None,
-		'module_seq': 7,
-		'name': 'Production',
-		'owner': 'Administrator',
-		'parent': None,
-		'parentfield': None,
-		'parenttype': None,
-		'trash_reason': None,
-		'widget_code': None
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Bill of material master containing raw materials, operation and costs',
-		'display_name': 'Bill Of Materials',
-		'doc_name': 'Bill Of Materials',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': 'id\nitem\ndescription\noperating_cost\nmaintained_by',
-		'hide': None,
-		'icon': None,
-		'idx': 1,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00209',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Machinery in warehouse where operations are performed on raw materials',
-		'display_name': 'Workstation',
-		'doc_name': 'Workstation',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': 'id\nworkstation_name\nwarehouse\ndescription',
-		'hide': None,
-		'icon': None,
-		'idx': 2,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00210',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Explode Bill of Materials in a tree and calculate the cost',
-		'display_name': 'Bill of Materials (Tree)',
-		'doc_name': 'Bill of Materials',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 3,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00211',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Update confirmed delivery dates in Sales Orders included in Production Plan',
-		'display_name': 'Update Delivery Dates',
-		'doc_name': 'Update Delivery Date',
-		'doc_type': 'Single DocType',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 4,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00212',
-		'owner': 'jai@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Plan your production by including relevant Sales Orders in your plan',
-		'display_name': 'Production Planning Tool',
-		'doc_name': 'Production Planning Tool',
-		'doc_type': 'Single DocType',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 5,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00213',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Change raw materials used in a Bill of Material through BOM replace utility',
-		'display_name': 'BOM Replace Utility',
-		'doc_name': 'BOM Replace Utility',
-		'doc_type': 'Single DocType',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 6,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00214',
-		'owner': 'jai@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Raise your Production Orders Manually',
-		'display_name': 'Production Order',
-		'doc_name': 'Production Order',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 7,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00215',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': None,
-		'doc_name': 'Reports',
-		'doc_type': 'Separator',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 8,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': '000003093',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Delivery Plan',
-		'doc_name': 'Sales Order Detail',
-		'doc_type': 'Reports',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 9,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': '000003094',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Itemwise Production Report',
-		'doc_name': 'Stock Entry Detail',
-		'doc_type': 'Reports',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 10,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': '000003095',
-		'owner': 'jai@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Production Orders In Process',
-		'doc_name': 'Production Order',
-		'doc_type': 'Reports',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 11,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': '000003096',
-		'owner': 'jai@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Bill of material master containing raw materials, operation and costs',
-		'display_name': 'Bill Of Materials',
-		'doc_name': 'Bill Of Materials',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': 'id\nitem\ndescription\noperating_cost\nmaintained_by',
-		'hide': None,
-		'icon': None,
-		'idx': 1,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00209',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Machinery in warehouse where operations are performed on raw materials',
-		'display_name': 'Workstation',
-		'doc_name': 'Workstation',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': 'id\nworkstation_name\nwarehouse\ndescription',
-		'hide': None,
-		'icon': None,
-		'idx': 2,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00210',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Explode Bill of Materials in a tree and calculate the cost',
-		'display_name': 'Bill of Materials (Tree)',
-		'doc_name': 'Bill of Materials',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 3,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00211',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Update confirmed delivery dates in Sales Orders included in Production Plan',
-		'display_name': 'Update Delivery Dates',
-		'doc_name': 'Update Delivery Date',
-		'doc_type': 'Single DocType',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 4,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00212',
-		'owner': 'jai@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Plan your production by including relevant Sales Orders in your plan',
-		'display_name': 'Production Planning Tool',
-		'doc_name': 'Production Planning Tool',
-		'doc_type': 'Single DocType',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 5,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00213',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Change raw materials used in a Bill of Material through BOM replace utility',
-		'display_name': 'BOM Replace Utility',
-		'doc_name': 'BOM Replace Utility',
-		'doc_type': 'Single DocType',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 6,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00214',
-		'owner': 'jai@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:42:49',
-		'description': 'Raise your Production Orders Manually',
-		'display_name': 'Production Order',
-		'doc_name': 'Production Order',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 7,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDI00215',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': None,
-		'doc_name': 'Reports',
-		'doc_type': 'Separator',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 8,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': '000003093',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Delivery Plan',
-		'doc_name': 'Sales Order Detail',
-		'doc_type': 'Reports',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 9,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': '000003094',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Itemwise Production Report',
-		'doc_name': 'Stock Entry Detail',
-		'doc_type': 'Reports',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 10,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': '000003095',
-		'owner': 'jai@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Production Orders In Process',
-		'doc_name': 'Production Order',
-		'doc_type': 'Reports',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 11,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': '000003096',
-		'owner': 'jai@webnotestech.com',
-		'parent': 'Production',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'creation': '2010-11-30 22:42:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 1,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDR00040',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Production User'
-	},
-	{
-		'creation': '2010-11-30 22:42:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 2,
-		'modified': '2011-03-24 15:29:36',
-		'modified_by': 'Administrator',
-		'name': 'MDR00041',
-		'owner': 'Administrator',
-		'parent': 'Production',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Production Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/Role/Production Manager/Production Manager.txt b/erpnext/production/Role/Production Manager/Production Manager.txt
deleted file mode 100644
index b87fc74..0000000
--- a/erpnext/production/Role/Production Manager/Production Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Production Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2009-09-23 16:35:35',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Production',
-		'name': '__common__',
-		'role_name': 'Production Manager'
-	},
-
-	# Role, Production Manager
-	{
-		'doctype': 'Role',
-		'name': 'Production Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/Role/Production User/Production User.txt b/erpnext/production/Role/Production User/Production User.txt
deleted file mode 100644
index ed6d6d6..0000000
--- a/erpnext/production/Role/Production User/Production User.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Production User
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2009-09-23 16:36:08',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Production',
-		'name': '__common__',
-		'role_name': 'Production User'
-	},
-
-	# Role, Production User
-	{
-		'doctype': 'Role',
-		'name': 'Production User'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/__init__.py b/erpnext/production/__init__.py
index e69de29..4da0c58 100644
--- a/erpnext/production/__init__.py
+++ b/erpnext/production/__init__.py
@@ -0,0 +1,4 @@
+install_docs = [
+	{"doctype":"Role", "name":"Production Manager"},
+	{"doctype":"Role", "name":"Production User"},
+]
diff --git a/erpnext/production/doctype/bill_of_materials/__init__.py b/erpnext/production/doctype/bill_of_materials/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/bill_of_materials/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/bill_of_materials/bill_of_materials.js b/erpnext/production/doctype/bill_of_materials/bill_of_materials.js
deleted file mode 100644
index ae61147..0000000
--- a/erpnext/production/doctype/bill_of_materials/bill_of_materials.js
+++ /dev/null
@@ -1,159 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// On REFRESH
-cur_frm.cscript.refresh = function(doc,dt,dn){
-	if(!doc.__islocal) {
-		set_field_permlevel('item',1);
-		unhide_field('Update Cost as on today');
-	} else {
-		hide_field('Update Cost as on today');
-	}
-}
-
-
-// Triggers
-//--------------------------------------------------------------------------------------------------
-cur_frm.cscript.item = function(doc, dt, dn) {
-	if (doc.item) {
-		get_server_fields('get_item_detail',doc.item,'',doc,dt,dn,1);
-	}
-}
-
-
-cur_frm.cscript.workstation = function(doc,dt,dn) {
-	var d = locals[dt][dn];
-	if (d.workstation) {
-		var callback = function(r, rt) {
-			calculate_op_cost(doc, dt, dn);
-			calculate_total(doc);
-		}
-		get_server_fields('get_workstation_details',d.workstation,'bom_operations',doc,dt,dn,1, callback);
-	}
-}
-
-
-cur_frm.cscript.hour_rate = function(doc, dt, dn) {
-	calculate_op_cost(doc, dt, dn);
-	calculate_total(doc);
-}
-
-
-cur_frm.cscript.time_in_mins = cur_frm.cscript.hour_rate;
-
-
-cur_frm.cscript.item_code = function(doc,dt,dn) {
-	get_bom_material_detail(doc, dt, dn);
-}
-
-
-cur_frm.cscript.bom_no  = function(doc,dt,dn) {
-	get_bom_material_detail(doc, dt, dn);
-}
-
-
-var get_bom_material_detail= function(doc,dt,dn) {
-	var d = locals[dt][dn];
-	var callback = function(doc, dt, dn) {
-		calculate_rm_cost(doc, dt, dn);
-		calculate_total(doc);
-	}
-
-	var bom_no = (d.bom_no!=null) ? d.bom_no:''
-	if (d.item_code) {
-		arg = {'item_code': d.item_code, 'bom_no': bom_no, 'qty': d.qty};
-		get_server_fields('get_bom_material_detail', JSON.stringify(arg), 'bom_materials', doc, dt, dn, 1, callback);
-	}
-}
-
-
-cur_frm.cscript.qty = function(doc, dt, dn) {
-	calculate_rm_cost(doc, dt, dn);
-	calculate_total(doc);
-}
-
-
-cur_frm.cscript.rate = cur_frm.cscript.qty;
-
-
-cur_frm.cscript.is_default = function(doc, dt, dn) {
-	if (doc.docstatus == 1)
-		$c_obj(make_doclist(dt, dn), 'manage_default_bom', '', '');
-}
-
-
-cur_frm.cscript.is_active = function(doc, dt, dn) {
-	if (!doc.__islocal)
-		$c_obj(make_doclist(dt, dn), 'manage_active_bom', '', '');
-}
-
-
-// Calculate Operating Cost
-var calculate_op_cost = function(doc, dt, dn) {  
-	var op = getchildren('BOM Operation', doc.name, 'bom_operations');
-	total_op_cost = 0;
-	for(var i=0;i<op.length;i++) {
-		op_cost =  flt(op[i].hour_rate) * flt(op[i].time_in_mins) / 60;
-		set_multiple('BOM Operation',op[i].name, {'operating_cost': op_cost}, 'bom_operations');
-		total_op_cost += op_cost;
-	}
-	doc.operating_cost = total_op_cost;
-	refresh_field('operating_cost');
-}
-
-
-// Calculate Raw Material Cost
-var calculate_rm_cost = function(doc, dt, dn) {  
-	var rm = getchildren('BOM Material', doc.name, 'bom_materials');
-	total_rm_cost = 0;
-	for(var i=0;i<rm.length;i++) {
-		amt =  flt(rm[i].rate) * flt(rm[i].qty);
-		set_multiple('BOM Material',rm[i].name, {'amount': amt}, 'bom_materials');
-		set_multiple('BOM Material',rm[i].name, {'qty_consumed_per_unit': flt(rm[i].qty)/flt(doc.quantity)}, 'bom_materials');
-		total_rm_cost += amt;
-	}
-	doc.raw_material_cost = total_rm_cost;
-	refresh_field('raw_material_cost');
-}
-
-
-// Calculate Total Cost
-var calculate_total = function(doc) {
-	doc.total_cost = flt(doc.raw_material_cost) + flt(doc.operating_cost);
-	refresh_field('total_cost');
-}
-
-
-
-// Get Query
-//-----------------------------------------------------------------------------------------------------
-cur_frm.fields_dict['item'].get_query = function(doc) {
-	return 'SELECT DISTINCT `tabItem`.`name`, `tabItem`.description FROM `tabItem` WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` = "0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND `tabItem`.`%(key)s` like "%s" ORDER BY `tabItem`.`name` LIMIT 50';
-}
-
-cur_frm.fields_dict['project_name'].get_query = function(doc, dt, dn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
-}
-
-cur_frm.fields_dict['bom_materials'].grid.get_field('item_code').get_query = function(doc) {
-	return 'SELECT DISTINCT `tabItem`.`name`, `tabItem`.description FROM `tabItem` WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` = "0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND `tabItem`.`%(key)s` like "%s" ORDER BY `tabItem`.`name` LIMIT 50';
-}
-
-cur_frm.fields_dict['bom_materials'].grid.get_field('bom_no').get_query = function(doc) {
-	var d = locals[this.doctype][this.docname];
-	return 'SELECT DISTINCT `tabBill Of Materials`.`name`, `tabBill Of Materials`.`remarks` FROM `tabBill Of Materials` WHERE `tabBill Of Materials`.`item` = "' + d.item_code + '" AND `tabBill Of Materials`.`is_active` = "Yes" AND `tabBill Of Materials`.docstatus = 1 AND `tabBill Of Materials`.`name` like "%s" ORDER BY `tabBill Of Materials`.`name` LIMIT 50';
-}
-
diff --git a/erpnext/production/doctype/bill_of_materials/bill_of_materials.py b/erpnext/production/doctype/bill_of_materials/bill_of_materials.py
deleted file mode 100644
index dfbc998..0000000
--- a/erpnext/production/doctype/bill_of_materials/bill_of_materials.py
+++ /dev/null
@@ -1,404 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import webnotes
-from webnotes.utils import cint, cstr, flt, get_defaults, getdate, now, nowdate
-from webnotes.model.doc import Document, addchild, getchildren, make_autoname
-from webnotes.model.doclist import getlist
-from webnotes.model.code import get_obj
-from webnotes import msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-
-# -----------------------------------------------------------------------------------------
-
-class DocType:
-	def __init__(self, doc, doclist=[]):
-		self.doc = doc
-		self.doclist = doclist
-
-	def autoname(self):
-		last_name = sql("select max(name) from `tabBill Of Materials` where name like 'BOM/%s/%%'" % self.doc.item)
-		if last_name:
-			idx = cint(cstr(last_name[0][0]).split('/')[-1]) + 1
-		else:
-			idx = 1
-		self.doc.name = 'BOM/' + self.doc.item + ('/%.3i' % idx)
-
-
-	def get_item_det(self, item_code):
-		item = sql("""select name, is_asset_item, is_purchase_item, docstatus, is_sub_contracted_item,
-			description, stock_uom, default_bom, last_purchase_rate, standard_rate, is_manufactured_item from `tabItem` 
-			where item_code = %s""", item_code, as_dict = 1)
-
-		return item
-
-
-	def get_item_detail(self, item_code):
-		""" Get stock uom and description for finished good item"""
-
-		item = self.get_item_det(item_code)
-		ret={
-			'description'	 : item and item[0]['description'] or '',
-			'uom'				: item and item[0]['stock_uom'] or ''
-		}
-		return ret
-
-
-
-	def get_workstation_details(self,workstation):
-		""" Fetch hour rate from workstation master"""
-
-		ws = sql("select hour_rate from `tabWorkstation` where name = %s",workstation , as_dict = 1)
-		ret = {
-			'hour_rate'				: ws and flt(ws[0]['hour_rate']) or '',
-		}
-		return ret
-
-
-
-	def validate_rm_item(self, item):
-		""" Validate raw material items"""
-
-		if item[0]['name'] == self.doc.item:
-			msgprint(" Item_code: "+item[0]['name']+" in materials tab cannot be same as FG Item in BOM := " +cstr(self.doc.name), raise_exception=1)
-		
-		if item and item[0]['is_asset_item'] == 'Yes':
-			msgprint("Sorry!!! Item " + item[0]['name'] + " is an Asset of the company. Entered in BOM => " + cstr(self.doc.name), raise_exception = 1)
-
-		if not item or item[0]['docstatus'] == 2:
-			msgprint("Item %s does not exist in system" % item[0]['item_code'], raise_exception = 1)
-
-
-
-	def get_bom_material_detail(self, arg):
-		""" Get raw material details like uom, desc and rate"""
-
-		arg = eval(arg)
-		item = self.get_item_det(arg['item_code'])
-		self.validate_rm_item(item)
-		
-		arg['bom_no'] = arg['bom_no'] or item and cstr(item[0]['default_bom']) or ''
-		arg.update(item[0])
-
-		rate = self.get_rm_rate(arg)
-		ret_item = {
-					 'description'  : item and arg['description'] or '',
-					 'stock_uom'	: item and arg['stock_uom'] or '',
-					 'bom_no'		: arg['bom_no'],
-					 'rate'			: rate
-		}
-		return ret_item
-
-
-
-	def get_rm_rate(self, arg):
-		"""	Get raw material rate as per selected method, if bom exists takes bom cost """
-
-		if arg['bom_no']:
-			bom = sql("""select name, total_cost/quantity as unit_cost from `tabBill Of Materials`
-				where is_active = 'Yes' and name = %s""", arg['bom_no'], as_dict=1)
-			rate = bom and bom[0]['unit_cost'] or 0
-		elif arg and (arg['is_purchase_item'] == 'Yes' or arg['is_sub_contracted_item'] == 'Yes'):
-			if self.doc.rm_cost_as_per == 'Valuation Rate':
-				rate = self.get_valuation_rate(arg)
-			elif self.doc.rm_cost_as_per == 'Last Purchase Rate':
-				rate = arg['last_purchase_rate']
-			elif self.doc.rm_cost_as_per == 'Standard Rate':
-				rate = arg['standard_rate']
-
-		return rate
-
-	
-
-	def get_valuation_rate(self, arg):
-		""" Get average valuation rate of relevant warehouses 
-			as per valuation method (MAR/FIFO) 
-			as on costing date	
-		"""
-
-		dt = self.doc.costing_date or nowdate()
-		time = self.doc.costing_date == nowdate() and now().split()[1] or '23:59'
-		warehouse = sql("select warehouse from `tabBin` where item_code = %s", arg['item_code'])
-		rate = []
-		for wh in warehouse:
-			r = get_obj('Valuation Control').get_incoming_rate(dt, time, arg['item_code'], wh[0], qty = arg.get('qty', 0))
-			if r:
-				rate.append(r)
-
-		return rate and flt(sum(rate))/len(rate) or 0
-
-
-
-	def manage_default_bom(self):
-		""" Uncheck others if current one is selected as default, update default bom in item master"""
-
-		if self.doc.is_default and self.doc.is_active == 'Yes':
-			sql("update `tabBill Of Materials` set is_default = 0 where name != %s and item=%s", (self.doc.name, self.doc.item))
-
-			# update default bom in Item Master
-			sql("update `tabItem` set default_bom = %s where name = %s", (self.doc.name, self.doc.item))
-		else:
-			sql("update `tabItem` set default_bom = '' where name = %s and default_bom = %s", (self.doc.item, self.doc.name))
-	
-
-
-	def manage_active_bom(self):
-		""" Manage active/inactive """
-		if self.doc.is_active == 'Yes':
-			self.validate()
-		else:
-			self.check_active_parent_boms()
-
-
-
-	def check_active_parent_boms(self):
-		""" Check parent BOM before making it inactive """
-		act_pbom = sql("""select distinct t1.parent from `tabBOM Material` t1, `tabBill Of Materials` t2 
-			where t1.bom_no =%s and t2.name = t1.parent and t2.is_active = 'Yes' 
-			and t2.docstatus = 1 and t1.docstatus =1 """, self.doc.name)
-		if act_pbom and act_pbom[0][0]:
-			msgprint("""Sorry cannot inactivate as BOM: %s is child 
-				of one or many other active parent BOMs""" % self.doc.name, raise_exception=1)
-
-
-
-	def calculate_cost(self):
-		"""Calculate bom totals"""
-		self.doc.costing_date = nowdate()
-		self.calculate_op_cost()
-		self.calculate_rm_cost()
-		self.doc.total_cost = self.doc.raw_material_cost + self.doc.operating_cost
-		self.doc.modified = now()
-		self.doc.save()
-
-		self.update_flat_bom_engine(is_submit = self.doc.docstatus)
-
-	
-
-	def calculate_op_cost(self):
-		"""Update workstation rate and calculates totals"""
-		total_op_cost = 0
-		for d in getlist(self.doclist, 'bom_operations'):
-			hour_rate = sql("select hour_rate from `tabWorkstation` where name = %s", d.workstation)
-			d.hour_rate = hour_rate and flt(hour_rate[0][0]) or 0
-			d.operating_cost = flt(d.hour_rate) * flt(d.time_in_mins) / 60
-			total_op_cost += d.operating_cost
-		self.doc.operating_cost = total_op_cost
-
-
-
-	def calculate_rm_cost(self):
-		"""Fetch RM rate as per today's valuation rate and calculate totals"""
-		total_rm_cost = 0
-		for d in getlist(self.doclist, 'bom_materials'):
-			#if self.doc.rm_cost_as_per == 'Valuation Rate':
-			arg = {'item_code': d.item_code, 'qty': d.qty, 'bom_no': d.bom_no}
-			ret = self.get_bom_material_detail(cstr(arg))
-			for k in ret:
-				d.fields[k] = ret[k]
-
-			d.amount = flt(d.rate) * flt(d.qty)
-			total_rm_cost += d.amount
-		self.doc.raw_material_cost = total_rm_cost
-
-
-
-	def validate_main_item(self):
-		""" Validate main FG item"""
-		item = self.get_item_det(self.doc.item)
-		if not item:
-			msgprint("Item %s does not exists in the system or expired." % self.doc.item, raise_exception = 1)
-
-		elif item[0]['is_manufactured_item'] != 'Yes' and item[0]['is_sub_contracted_item'] != 'Yes':
-			msgprint("""As Item: %s is not a manufactured / sub-contracted item, 
-				you can not make BOM for it""" % self.doc.item, raise_exception = 1)
-
-
-
-	def validate_operations(self):
-		""" Check duplicate operation no"""
-		self.op = []
-		for d in getlist(self.doclist, 'bom_operations'):
-			if cstr(d.operation_no) in self.op:
-				msgprint("Operation no: %s is repeated in Operations Table"% d.operation_no, raise_exception=1)
-			else:
-				# add operation in op list
-				self.op.append(cstr(d.operation_no))
-
-
-
-	def validate_materials(self):
-		""" Validate raw material entries """
-		check_list = []
-		for m in getlist(self.doclist, 'bom_materials'):
-			# check if operation no not in op table
-			if m.operation_no not in self.op:
-				msgprint("""Operation no: %s against item: %s at row no: %s is not present 
-					at Operations table"""% (m.operation_no, m.item_code, m.idx), raise_exception = 1)
-		
-			item = self.get_item_det(m.item_code)
-			if item[0]['is_manufactured_item'] == 'Yes' or item[0]['is_sub_contracted_item'] == 'Yes':
-				if not m.bom_no:
-					msgprint("Please enter BOM No aginst item: %s at row no: %s"% (m.item_code, m.idx), raise_exception=1)
-				else:
-					self.validate_bom_no(m.item_code, m.bom_no, m.idx)
-
-			elif m.bom_no:
-				msgprint("""As Item %s is not a manufactured / sub-contracted item, 
-					you can enter BOM against it (Row No: %s)."""% (m.item_code, m.idx), raise_excepiton = 1)
-
-			if flt(m.qty) <= 0:
-				msgprint("Please enter qty against raw material: %s at row no: %s"% (m.item_code, m.idx), raise_exception = 1)
-
-			self.check_if_item_repeated(m.item_code, m.operation_no, check_list)
-
-
-
-	def validate_bom_no(self, item, bom_no, idx):
-		"""Validate BOM No of sub-contracted items"""
-		bom = sql("""select name from `tabBill Of Materials` where name = %s and item = %s 
-			and ifnull(is_active, 'No') = 'Yes'	and docstatus < 2 """, (bom_no, item), as_dict =1)
-		if not bom:
-			msgprint("""Incorrect BOM No: %s against item: %s at row no: %s.
-				It may be inactive or cancelled or for some other item."""% (bom_no, item, idx), raise_exception = 1)
-				
-
-
-	def check_if_item_repeated(self, item, op, check_list):
-		if [cstr(item), cstr(op)] in check_list:
-			msgprint("Item %s has been entered twice against same operation" % item, raise_exception = 1)
-		else:
-			check_list.append([cstr(item), cstr(op)])
-
-
-
-	#----- Document on Save function------
-	def validate(self):
-		self.validate_main_item()
-		self.validate_operations()
-		self.validate_materials()
-		self.validate_operations()
-
-
-
-	def check_recursion(self):
-		""" Check whether reqursion occurs in any bom"""
-
-		check_list = [['parent', 'bom_no', 'parent'], ['bom_no', 'parent', 'child']]
-		for d in check_list:
-			bom_list, count = [self.doc.name], 0
-			while (len(bom_list) > count ):
-				boms = sql(" select %s from `tabBOM Material` where %s = '%s' " % (d[0], d[1], cstr(bom_list[count])))
-				count = count + 1
-				for b in boms:
-					if b[0] == self.doc.name:
-						msgprint("""Recursion Occured => '%s' cannot be '%s' of '%s'.
-							""" % (cstr(b), cstr(d[2]), self.doc.name), raise_exception = 1)
-					if b[0]:
-						bom_list.append(b[0])
-
-
-
-	def on_update(self):
-		if self.doc.item != cstr(self.doc.name.split('/')[1]):
-			msgprint("Cannot change Item once the Bill Of Material is created.")
-			raise Exception
-		self.check_recursion()
-
-
-
-	def add_to_flat_bom_detail(self, is_submit = 0):
-		"Add items to Flat BOM table"
-		self.doc.clear_table(self.doclist, 'flat_bom_details', 1)
-		for d in self.cur_flat_bom_items:
-			ch = addchild(self.doc, 'flat_bom_details', 'Flat BOM Detail', 1, self.doclist)
-			for i in d.keys():
-				ch.fields[i] = d[i]
-			ch.docstatus = is_submit
-			ch.save(1)
-		self.doc.save()
-
-
-
-	def get_child_flat_bom_items(self, bom_no, qty):
-		""" Add all items from Flat BOM of child BOM"""
-
-		child_fb_items = sql("""select item_code, description, stock_uom, qty, rate, amount, parent_bom, mat_detail_no, qty_consumed_per_unit 
-			from `tabFlat BOM Detail` where parent = '%s' and docstatus = 1""" % bom_no, as_dict = 1)
-		for d in child_fb_items:
-			self.cur_flat_bom_items.append({
-				'item_code'				: d['item_code'], 
-				'description'			: d['description'], 
-				'stock_uom'				: d['stock_uom'], 
-				'qty'					: flt(d['qty_consumed_per_unit'])*qty,
-				'rate'					: flt(d['rate']), 
-				'amount'				: flt(d['amount']),
-				'parent_bom'			: d['parent_bom'],
-				'mat_detail_no'			: d['mat_detail_no'],
-				'qty_consumed_per_unit' : flt(d['qty_consumed_per_unit'])*qty/flt(self.doc.quantity)
-
-			})
-
-
-
-
-	# Get Current Flat BOM Items
-	# -----------------------------
-	def get_current_flat_bom_items(self):
-		""" Get all raw materials including items from child bom"""
-		self.cur_flat_bom_items = []
-		for d in getlist(self.doclist, 'bom_materials'):
-			self.cur_flat_bom_items.append({
-				'item_code'				: d.item_code, 
-				'description'			: d.description, 
-				'stock_uom'				: d.stock_uom, 
-				'qty'					: flt(d.qty),
-				'rate'					: flt(d.rate), 
-				'amount'				: flt(d.amount),
-				'parent_bom'			: d.parent, #item and item[0][0]=='No' and d.bom_no or d.parent, 
-				'mat_detail_no'			: d.name,
-				'qty_consumed_per_unit' : flt(d.qty_consumed_per_unit)
-			})
-			if d.bom_no:
-				self.get_child_flat_bom_items(d.bom_no, d.qty)
-
-
-	def update_flat_bom_engine(self, is_submit = 0):
-		""" Update Flat BOM, following will be correct data"""
-		self.get_current_flat_bom_items()
-		self.add_to_flat_bom_detail(is_submit)
-
-
-	def get_parent_bom_list(self, bom_no):
-		p_bom = sql("select parent from `tabBOM Material` where bom_no = '%s'" % bom_no)
-		return p_bom and [i[0] for i in p_bom] or []
-
-
-	def on_submit(self):
-		self.manage_default_bom()
-		self.update_flat_bom_engine(1)
-
-
-	def on_cancel(self):
-		# check if used in any other bom
-		par = sql("""select t1.parent from `tabBOM Material` t1, `tabBill Of Materials` t2 
-			where t1.parent = t2.name and t1.bom_no = %s and t1.docstatus = 1 and t2.is_active = 'Yes'""", self.doc.name)
-		if par:
-			msgprint("BOM can not be cancelled, as it is a child item in following active BOM %s"% [d[0] for d in par])
-			raise Exception
diff --git a/erpnext/production/doctype/bill_of_materials/bill_of_materials.txt b/erpnext/production/doctype/bill_of_materials/bill_of_materials.txt
deleted file mode 100644
index cc29380..0000000
--- a/erpnext/production/doctype/bill_of_materials/bill_of_materials.txt
+++ /dev/null
@@ -1,440 +0,0 @@
-# DocType, Bill Of Materials
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:52',
-		'docstatus': 0,
-		'modified': '2012-01-24 19:49:00',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1326963484',
-		'allow_attach': 0,
-		'allow_copy': 0,
-		'allow_email': 0,
-		'allow_print': 0,
-		'allow_rename': 0,
-		'allow_trash': 1,
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'document_type': 'Master',
-		'hide_heading': 0,
-		'hide_toolbar': 0,
-		'in_create': 0,
-		'issingle': 0,
-		'istable': 0,
-		'module': 'Production',
-		'name': '__common__',
-		'read_only': 0,
-		'search_fields': 'item',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'subject': '%(item)s',
-		'version': 196
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Bill Of Materials',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'amend': 0,
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Bill Of Materials',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Bill Of Materials
-	{
-		'doctype': 'DocType',
-		'name': 'Bill Of Materials'
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'System Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'System Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Production Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Production Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Production User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Production User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Select the item code for which Bill of Material is being created',
-		'doctype': 'DocField',
-		'fieldname': 'item',
-		'fieldtype': 'Link',
-		'in_filter': 1,
-		'label': 'Item',
-		'oldfieldname': 'item',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Total quantity of items for which raw materials required and operations done will be defined',
-		'doctype': 'DocField',
-		'fieldname': 'quantity',
-		'fieldtype': 'Currency',
-		'label': 'Quantity',
-		'oldfieldname': 'quantity',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'uom',
-		'fieldtype': 'Select',
-		'label': 'UOM',
-		'options': 'link:UOM',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'permlevel': 0,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'description': 'Select name of the project if Bill Of Materials need to be created against any project',
-		'doctype': 'DocField',
-		'fieldname': 'project_name',
-		'fieldtype': 'Link',
-		'in_filter': 1,
-		'label': 'Project Name',
-		'oldfieldname': 'project_name',
-		'oldfieldtype': 'Link',
-		'options': 'Project',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'is_active',
-		'fieldtype': 'Select',
-		'hidden': 0,
-		'label': 'Is Active',
-		'no_copy': 1,
-		'oldfieldname': 'is_active',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'is_default',
-		'fieldtype': 'Check',
-		'label': 'Is Default',
-		'no_copy': 1,
-		'oldfieldname': 'is_default',
-		'oldfieldtype': 'Check',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'maintained_by',
-		'fieldtype': 'Data',
-		'label': 'Maintained By',
-		'oldfieldname': 'maintained_by',
-		'oldfieldtype': 'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'remarks',
-		'fieldtype': 'Text',
-		'label': 'Remarks',
-		'no_copy': 1,
-		'oldfieldname': 'remarks',
-		'oldfieldtype': 'Text',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Operations',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Specify the operations, operating cost and give a unique Operation no to your operations.',
-		'doctype': 'DocField',
-		'fieldname': 'bom_operations',
-		'fieldtype': 'Table',
-		'label': 'BOM Operations',
-		'oldfieldname': 'bom_operations',
-		'oldfieldtype': 'Table',
-		'options': 'BOM Operation',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Materials',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Enter the raw materials required to manufacture the BOM item. Specify the operation no as entered in the previous tab which will be performed on the raw materials entered.',
-		'doctype': 'DocField',
-		'fieldname': 'bom_materials',
-		'fieldtype': 'Table',
-		'label': 'BOM Material',
-		'oldfieldname': 'bom_materials',
-		'oldfieldtype': 'Table',
-		'options': 'BOM Material',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Costing',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rm_cost_as_per',
-		'fieldtype': 'Select',
-		'label': 'Consider Raw Material Cost As Per',
-		'options': 'Valuation Rate\nLast Purchase Rate\nStandard Rate',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'costing_date',
-		'fieldtype': 'Date',
-		'label': 'Costing Date',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Update Cost as on today',
-		'options': 'calculate_cost',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'raw_material_cost',
-		'fieldtype': 'Float',
-		'label': 'Raw Material Cost',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'operating_cost',
-		'fieldtype': 'Float',
-		'label': 'Operating Cost',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'total_cost',
-		'fieldtype': 'Float',
-		'label': 'Total Cost',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'hidden': 1,
-		'options': 'Simple',
-		'permlevel': 0,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'No Toolbar',
-		'doctype': 'DocField',
-		'fieldname': 'flat_bom_details',
-		'fieldtype': 'Table',
-		'hidden': 1,
-		'label': 'Flat BOM Detail',
-		'no_copy': 1,
-		'oldfieldname': 'flat_bom_details',
-		'oldfieldtype': 'Table',
-		'options': 'Flat BOM Detail',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'hidden': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/bom_material/__init__.py b/erpnext/production/doctype/bom/__init__.py
similarity index 100%
rename from erpnext/production/doctype/bom_material/__init__.py
rename to erpnext/production/doctype/bom/__init__.py
diff --git a/erpnext/production/doctype/bom/bom.js b/erpnext/production/doctype/bom/bom.js
new file mode 100644
index 0000000..15b972e
--- /dev/null
+++ b/erpnext/production/doctype/bom/bom.js
@@ -0,0 +1,159 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+// On REFRESH
+cur_frm.cscript.refresh = function(doc,dt,dn){
+	if(!doc.__islocal) {
+		set_field_permlevel('item',1);
+		unhide_field('Update Cost as on today');
+	} else {
+		hide_field('Update Cost as on today');
+	}
+}
+
+
+// Triggers
+//--------------------------------------------------------------------------------------------------
+cur_frm.cscript.item = function(doc, dt, dn) {
+	if (doc.item) {
+		get_server_fields('get_item_detail',doc.item,'',doc,dt,dn,1);
+	}
+}
+
+
+cur_frm.cscript.workstation = function(doc,dt,dn) {
+	var d = locals[dt][dn];
+	if (d.workstation) {
+		var callback = function(r, rt) {
+			calculate_op_cost(doc, dt, dn);
+			calculate_total(doc);
+		}
+		get_server_fields('get_workstation_details',d.workstation,'bom_operations',doc,dt,dn,1, callback);
+	}
+}
+
+
+cur_frm.cscript.hour_rate = function(doc, dt, dn) {
+	calculate_op_cost(doc, dt, dn);
+	calculate_total(doc);
+}
+
+
+cur_frm.cscript.time_in_mins = cur_frm.cscript.hour_rate;
+
+
+cur_frm.cscript.item_code = function(doc,dt,dn) {
+	get_bom_material_detail(doc, dt, dn);
+}
+
+
+cur_frm.cscript.bom_no  = function(doc,dt,dn) {
+	get_bom_material_detail(doc, dt, dn);
+}
+
+
+var get_bom_material_detail= function(doc,dt,dn) {
+	var d = locals[dt][dn];
+	var callback = function(doc, dt, dn) {
+		calculate_rm_cost(doc, dt, dn);
+		calculate_total(doc);
+	}
+
+	var bom_no = (d.bom_no!=null) ? d.bom_no:''
+	if (d.item_code) {
+		arg = {'item_code': d.item_code, 'bom_no': bom_no, 'qty': d.qty};
+		get_server_fields('get_bom_material_detail', JSON.stringify(arg), 'bom_materials', doc, dt, dn, 1, callback);
+	}
+}
+
+
+cur_frm.cscript.qty = function(doc, dt, dn) {
+	calculate_rm_cost(doc, dt, dn);
+	calculate_total(doc);
+}
+
+
+cur_frm.cscript.rate = cur_frm.cscript.qty;
+
+
+cur_frm.cscript.is_default = function(doc, dt, dn) {
+	if (doc.docstatus == 1)
+		$c_obj(make_doclist(dt, dn), 'manage_default_bom', '', '');
+}
+
+
+cur_frm.cscript.is_active = function(doc, dt, dn) {
+	if (!doc.__islocal)
+		$c_obj(make_doclist(dt, dn), 'manage_active_bom', '', '');
+}
+
+
+// Calculate Operating Cost
+var calculate_op_cost = function(doc, dt, dn) {  
+	var op = getchildren('BOM Operation', doc.name, 'bom_operations');
+	total_op_cost = 0;
+	for(var i=0;i<op.length;i++) {
+		op_cost =  flt(op[i].hour_rate) * flt(op[i].time_in_mins) / 60;
+		set_multiple('BOM Operation',op[i].name, {'operating_cost': op_cost}, 'bom_operations');
+		total_op_cost += op_cost;
+	}
+	doc.operating_cost = total_op_cost;
+	refresh_field('operating_cost');
+}
+
+
+// Calculate Raw Material Cost
+var calculate_rm_cost = function(doc, dt, dn) {  
+	var rm = getchildren('BOM Item', doc.name, 'bom_materials');
+	total_rm_cost = 0;
+	for(var i=0;i<rm.length;i++) {
+		amt =  flt(rm[i].rate) * flt(rm[i].qty);
+		set_multiple('BOM Item',rm[i].name, {'amount': amt}, 'bom_materials');
+		set_multiple('BOM Item',rm[i].name, {'qty_consumed_per_unit': flt(rm[i].qty)/flt(doc.quantity)}, 'bom_materials');
+		total_rm_cost += amt;
+	}
+	doc.raw_material_cost = total_rm_cost;
+	refresh_field('raw_material_cost');
+}
+
+
+// Calculate Total Cost
+var calculate_total = function(doc) {
+	doc.total_cost = flt(doc.raw_material_cost) + flt(doc.operating_cost);
+	refresh_field('total_cost');
+}
+
+
+
+// Get Query
+//-----------------------------------------------------------------------------------------------------
+cur_frm.fields_dict['item'].get_query = function(doc) {
+	return 'SELECT DISTINCT `tabItem`.`name`, `tabItem`.description FROM `tabItem` WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` = "0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND `tabItem`.`%(key)s` like "%s" ORDER BY `tabItem`.`name` LIMIT 50';
+}
+
+cur_frm.fields_dict['project_name'].get_query = function(doc, dt, dn) {
+	return 'SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+}
+
+cur_frm.fields_dict['bom_materials'].grid.get_field('item_code').get_query = function(doc) {
+	return 'SELECT DISTINCT `tabItem`.`name`, `tabItem`.description FROM `tabItem` WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` = "0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND `tabItem`.`%(key)s` like "%s" ORDER BY `tabItem`.`name` LIMIT 50';
+}
+
+cur_frm.fields_dict['bom_materials'].grid.get_field('bom_no').get_query = function(doc) {
+	var d = locals[this.doctype][this.docname];
+	return 'SELECT DISTINCT `tabBOM`.`name`, `tabBOM`.`remarks` FROM `tabBOM` WHERE `tabBOM`.`item` = "' + d.item_code + '" AND `tabBOM`.`is_active` = "Yes" AND `tabBOM`.docstatus = 1 AND `tabBOM`.`name` like "%s" ORDER BY `tabBOM`.`name` LIMIT 50';
+}
+
diff --git a/erpnext/production/doctype/bom/bom.py b/erpnext/production/doctype/bom/bom.py
new file mode 100644
index 0000000..0a1a0f8
--- /dev/null
+++ b/erpnext/production/doctype/bom/bom.py
@@ -0,0 +1,404 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import webnotes
+from webnotes.utils import cint, cstr, flt, get_defaults, getdate, now, nowdate
+from webnotes.model.doc import Document, addchild, getchildren, make_autoname
+from webnotes.model.doclist import getlist
+from webnotes.model.code import get_obj
+from webnotes import msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+
+# -----------------------------------------------------------------------------------------
+
+class DocType:
+	def __init__(self, doc, doclist=[]):
+		self.doc = doc
+		self.doclist = doclist
+
+	def autoname(self):
+		last_name = sql("select max(name) from `tabBOM` where name like 'BOM/%s/%%'" % self.doc.item)
+		if last_name:
+			idx = cint(cstr(last_name[0][0]).split('/')[-1]) + 1
+		else:
+			idx = 1
+		self.doc.name = 'BOM/' + self.doc.item + ('/%.3i' % idx)
+
+
+	def get_item_det(self, item_code):
+		item = sql("""select name, is_asset_item, is_purchase_item, docstatus, is_sub_contracted_item,
+			description, stock_uom, default_bom, last_purchase_rate, standard_rate, is_manufactured_item from `tabItem` 
+			where item_code = %s""", item_code, as_dict = 1)
+
+		return item
+
+
+	def get_item_detail(self, item_code):
+		""" Get stock uom and description for finished good item"""
+
+		item = self.get_item_det(item_code)
+		ret={
+			'description'	 : item and item[0]['description'] or '',
+			'uom'				: item and item[0]['stock_uom'] or ''
+		}
+		return ret
+
+
+
+	def get_workstation_details(self,workstation):
+		""" Fetch hour rate from workstation master"""
+
+		ws = sql("select hour_rate from `tabWorkstation` where name = %s",workstation , as_dict = 1)
+		ret = {
+			'hour_rate'				: ws and flt(ws[0]['hour_rate']) or '',
+		}
+		return ret
+
+
+
+	def validate_rm_item(self, item):
+		""" Validate raw material items"""
+
+		if item[0]['name'] == self.doc.item:
+			msgprint(" Item_code: "+item[0]['name']+" in materials tab cannot be same as FG Item in BOM := " +cstr(self.doc.name), raise_exception=1)
+		
+		if item and item[0]['is_asset_item'] == 'Yes':
+			msgprint("Sorry!!! Item " + item[0]['name'] + " is an Asset of the company. Entered in BOM => " + cstr(self.doc.name), raise_exception = 1)
+
+		if not item or item[0]['docstatus'] == 2:
+			msgprint("Item %s does not exist in system" % item[0]['item_code'], raise_exception = 1)
+
+
+
+	def get_bom_material_detail(self, arg):
+		""" Get raw material details like uom, desc and rate"""
+
+		arg = eval(arg)
+		item = self.get_item_det(arg['item_code'])
+		self.validate_rm_item(item)
+		
+		arg['bom_no'] = arg['bom_no'] or item and cstr(item[0]['default_bom']) or ''
+		arg.update(item[0])
+
+		rate = self.get_rm_rate(arg)
+		ret_item = {
+					 'description'  : item and arg['description'] or '',
+					 'stock_uom'	: item and arg['stock_uom'] or '',
+					 'bom_no'		: arg['bom_no'],
+					 'rate'			: rate
+		}
+		return ret_item
+
+
+
+	def get_rm_rate(self, arg):
+		"""	Get raw material rate as per selected method, if bom exists takes bom cost """
+
+		if arg['bom_no']:
+			bom = sql("""select name, total_cost/quantity as unit_cost from `tabBOM`
+				where is_active = 'Yes' and name = %s""", arg['bom_no'], as_dict=1)
+			rate = bom and bom[0]['unit_cost'] or 0
+		elif arg and (arg['is_purchase_item'] == 'Yes' or arg['is_sub_contracted_item'] == 'Yes'):
+			if self.doc.rm_cost_as_per == 'Valuation Rate':
+				rate = self.get_valuation_rate(arg)
+			elif self.doc.rm_cost_as_per == 'Last Purchase Rate':
+				rate = arg['last_purchase_rate']
+			elif self.doc.rm_cost_as_per == 'Standard Rate':
+				rate = arg['standard_rate']
+
+		return rate
+
+	
+
+	def get_valuation_rate(self, arg):
+		""" Get average valuation rate of relevant warehouses 
+			as per valuation method (MAR/FIFO) 
+			as on costing date	
+		"""
+
+		dt = self.doc.costing_date or nowdate()
+		time = self.doc.costing_date == nowdate() and now().split()[1] or '23:59'
+		warehouse = sql("select warehouse from `tabBin` where item_code = %s", arg['item_code'])
+		rate = []
+		for wh in warehouse:
+			r = get_obj('Valuation Control').get_incoming_rate(dt, time, arg['item_code'], wh[0], qty = arg.get('qty', 0))
+			if r:
+				rate.append(r)
+
+		return rate and flt(sum(rate))/len(rate) or 0
+
+
+
+	def manage_default_bom(self):
+		""" Uncheck others if current one is selected as default, update default bom in item master"""
+
+		if self.doc.is_default and self.doc.is_active == 'Yes':
+			sql("update `tabBOM` set is_default = 0 where name != %s and item=%s", (self.doc.name, self.doc.item))
+
+			# update default bom in Item Master
+			sql("update `tabItem` set default_bom = %s where name = %s", (self.doc.name, self.doc.item))
+		else:
+			sql("update `tabItem` set default_bom = '' where name = %s and default_bom = %s", (self.doc.item, self.doc.name))
+	
+
+
+	def manage_active_bom(self):
+		""" Manage active/inactive """
+		if self.doc.is_active == 'Yes':
+			self.validate()
+		else:
+			self.check_active_parent_boms()
+
+
+
+	def check_active_parent_boms(self):
+		""" Check parent BOM before making it inactive """
+		act_pbom = sql("""select distinct t1.parent from `tabBOM Item` t1, `tabBOM` t2 
+			where t1.bom_no =%s and t2.name = t1.parent and t2.is_active = 'Yes' 
+			and t2.docstatus = 1 and t1.docstatus =1 """, self.doc.name)
+		if act_pbom and act_pbom[0][0]:
+			msgprint("""Sorry cannot inactivate as BOM: %s is child 
+				of one or many other active parent BOMs""" % self.doc.name, raise_exception=1)
+
+
+
+	def calculate_cost(self):
+		"""Calculate bom totals"""
+		self.doc.costing_date = nowdate()
+		self.calculate_op_cost()
+		self.calculate_rm_cost()
+		self.doc.total_cost = self.doc.raw_material_cost + self.doc.operating_cost
+		self.doc.modified = now()
+		self.doc.save()
+
+		self.update_flat_bom_engine(is_submit = self.doc.docstatus)
+
+	
+
+	def calculate_op_cost(self):
+		"""Update workstation rate and calculates totals"""
+		total_op_cost = 0
+		for d in getlist(self.doclist, 'bom_operations'):
+			hour_rate = sql("select hour_rate from `tabWorkstation` where name = %s", d.workstation)
+			d.hour_rate = hour_rate and flt(hour_rate[0][0]) or 0
+			d.operating_cost = flt(d.hour_rate) * flt(d.time_in_mins) / 60
+			total_op_cost += d.operating_cost
+		self.doc.operating_cost = total_op_cost
+
+
+
+	def calculate_rm_cost(self):
+		"""Fetch RM rate as per today's valuation rate and calculate totals"""
+		total_rm_cost = 0
+		for d in getlist(self.doclist, 'bom_materials'):
+			#if self.doc.rm_cost_as_per == 'Valuation Rate':
+			arg = {'item_code': d.item_code, 'qty': d.qty, 'bom_no': d.bom_no}
+			ret = self.get_bom_material_detail(cstr(arg))
+			for k in ret:
+				d.fields[k] = ret[k]
+
+			d.amount = flt(d.rate) * flt(d.qty)
+			total_rm_cost += d.amount
+		self.doc.raw_material_cost = total_rm_cost
+
+
+
+	def validate_main_item(self):
+		""" Validate main FG item"""
+		item = self.get_item_det(self.doc.item)
+		if not item:
+			msgprint("Item %s does not exists in the system or expired." % self.doc.item, raise_exception = 1)
+
+		elif item[0]['is_manufactured_item'] != 'Yes' and item[0]['is_sub_contracted_item'] != 'Yes':
+			msgprint("""As Item: %s is not a manufactured / sub-contracted item, 
+				you can not make BOM for it""" % self.doc.item, raise_exception = 1)
+
+
+
+	def validate_operations(self):
+		""" Check duplicate operation no"""
+		self.op = []
+		for d in getlist(self.doclist, 'bom_operations'):
+			if cstr(d.operation_no) in self.op:
+				msgprint("Operation no: %s is repeated in Operations Table"% d.operation_no, raise_exception=1)
+			else:
+				# add operation in op list
+				self.op.append(cstr(d.operation_no))
+
+
+
+	def validate_materials(self):
+		""" Validate raw material entries """
+		check_list = []
+		for m in getlist(self.doclist, 'bom_materials'):
+			# check if operation no not in op table
+			if m.operation_no not in self.op:
+				msgprint("""Operation no: %s against item: %s at row no: %s is not present 
+					at Operations table"""% (m.operation_no, m.item_code, m.idx), raise_exception = 1)
+		
+			item = self.get_item_det(m.item_code)
+			if item[0]['is_manufactured_item'] == 'Yes' or item[0]['is_sub_contracted_item'] == 'Yes':
+				if not m.bom_no:
+					msgprint("Please enter BOM No aginst item: %s at row no: %s"% (m.item_code, m.idx), raise_exception=1)
+				else:
+					self.validate_bom_no(m.item_code, m.bom_no, m.idx)
+
+			elif m.bom_no:
+				msgprint("""As Item %s is not a manufactured / sub-contracted item, 
+					you can enter BOM against it (Row No: %s)."""% (m.item_code, m.idx), raise_excepiton = 1)
+
+			if flt(m.qty) <= 0:
+				msgprint("Please enter qty against raw material: %s at row no: %s"% (m.item_code, m.idx), raise_exception = 1)
+
+			self.check_if_item_repeated(m.item_code, m.operation_no, check_list)
+
+
+
+	def validate_bom_no(self, item, bom_no, idx):
+		"""Validate BOM No of sub-contracted items"""
+		bom = sql("""select name from `tabBOM` where name = %s and item = %s 
+			and ifnull(is_active, 'No') = 'Yes'	and docstatus < 2 """, (bom_no, item), as_dict =1)
+		if not bom:
+			msgprint("""Incorrect BOM No: %s against item: %s at row no: %s.
+				It may be inactive or cancelled or for some other item."""% (bom_no, item, idx), raise_exception = 1)
+				
+
+
+	def check_if_item_repeated(self, item, op, check_list):
+		if [cstr(item), cstr(op)] in check_list:
+			msgprint("Item %s has been entered twice against same operation" % item, raise_exception = 1)
+		else:
+			check_list.append([cstr(item), cstr(op)])
+
+
+
+	#----- Document on Save function------
+	def validate(self):
+		self.validate_main_item()
+		self.validate_operations()
+		self.validate_materials()
+		self.validate_operations()
+
+
+
+	def check_recursion(self):
+		""" Check whether reqursion occurs in any bom"""
+
+		check_list = [['parent', 'bom_no', 'parent'], ['bom_no', 'parent', 'child']]
+		for d in check_list:
+			bom_list, count = [self.doc.name], 0
+			while (len(bom_list) > count ):
+				boms = sql(" select %s from `tabBOM Item` where %s = '%s' " % (d[0], d[1], cstr(bom_list[count])))
+				count = count + 1
+				for b in boms:
+					if b[0] == self.doc.name:
+						msgprint("""Recursion Occured => '%s' cannot be '%s' of '%s'.
+							""" % (cstr(b), cstr(d[2]), self.doc.name), raise_exception = 1)
+					if b[0]:
+						bom_list.append(b[0])
+
+
+
+	def on_update(self):
+		if self.doc.item != cstr(self.doc.name.split('/')[1]):
+			msgprint("Cannot change Item once the Bill Of Material is created.")
+			raise Exception
+		self.check_recursion()
+
+
+
+	def add_to_flat_bom_detail(self, is_submit = 0):
+		"Add items to Flat BOM table"
+		self.doc.clear_table(self.doclist, 'flat_bom_details', 1)
+		for d in self.cur_flat_bom_items:
+			ch = addchild(self.doc, 'flat_bom_details', 'BOM Explosion Item', 1, self.doclist)
+			for i in d.keys():
+				ch.fields[i] = d[i]
+			ch.docstatus = is_submit
+			ch.save(1)
+		self.doc.save()
+
+
+
+	def get_child_flat_bom_items(self, bom_no, qty):
+		""" Add all items from Flat BOM of child BOM"""
+
+		child_fb_items = sql("""select item_code, description, stock_uom, qty, rate, amount, parent_bom, mat_detail_no, qty_consumed_per_unit 
+			from `tabBOM Explosion Item` where parent = '%s' and docstatus = 1""" % bom_no, as_dict = 1)
+		for d in child_fb_items:
+			self.cur_flat_bom_items.append({
+				'item_code'				: d['item_code'], 
+				'description'			: d['description'], 
+				'stock_uom'				: d['stock_uom'], 
+				'qty'					: flt(d['qty_consumed_per_unit'])*qty,
+				'rate'					: flt(d['rate']), 
+				'amount'				: flt(d['amount']),
+				'parent_bom'			: d['parent_bom'],
+				'mat_detail_no'			: d['mat_detail_no'],
+				'qty_consumed_per_unit' : flt(d['qty_consumed_per_unit'])*qty/flt(self.doc.quantity)
+
+			})
+
+
+
+
+	# Get Current Flat BOM Items
+	# -----------------------------
+	def get_current_flat_bom_items(self):
+		""" Get all raw materials including items from child bom"""
+		self.cur_flat_bom_items = []
+		for d in getlist(self.doclist, 'bom_materials'):
+			self.cur_flat_bom_items.append({
+				'item_code'				: d.item_code, 
+				'description'			: d.description, 
+				'stock_uom'				: d.stock_uom, 
+				'qty'					: flt(d.qty),
+				'rate'					: flt(d.rate), 
+				'amount'				: flt(d.amount),
+				'parent_bom'			: d.parent, #item and item[0][0]=='No' and d.bom_no or d.parent, 
+				'mat_detail_no'			: d.name,
+				'qty_consumed_per_unit' : flt(d.qty_consumed_per_unit)
+			})
+			if d.bom_no:
+				self.get_child_flat_bom_items(d.bom_no, d.qty)
+
+
+	def update_flat_bom_engine(self, is_submit = 0):
+		""" Update Flat BOM, following will be correct data"""
+		self.get_current_flat_bom_items()
+		self.add_to_flat_bom_detail(is_submit)
+
+
+	def get_parent_bom_list(self, bom_no):
+		p_bom = sql("select parent from `tabBOM Item` where bom_no = '%s'" % bom_no)
+		return p_bom and [i[0] for i in p_bom] or []
+
+
+	def on_submit(self):
+		self.manage_default_bom()
+		self.update_flat_bom_engine(1)
+
+
+	def on_cancel(self):
+		# check if used in any other bom
+		par = sql("""select t1.parent from `tabBOM Item` t1, `tabBOM` t2 
+			where t1.parent = t2.name and t1.bom_no = %s and t1.docstatus = 1 and t2.is_active = 'Yes'""", self.doc.name)
+		if par:
+			msgprint("BOM can not be cancelled, as it is a child item in following active BOM %s"% [d[0] for d in par])
+			raise Exception
diff --git a/erpnext/production/doctype/bom/bom.txt b/erpnext/production/doctype/bom/bom.txt
new file mode 100644
index 0000000..646321e
--- /dev/null
+++ b/erpnext/production/doctype/bom/bom.txt
@@ -0,0 +1,462 @@
+# DocType, BOM
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:02',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:45:46',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1326963484',
+		'allow_attach': 0,
+		'allow_copy': 0,
+		'allow_email': 0,
+		'allow_print': 0,
+		'allow_rename': 0,
+		'allow_trash': 1,
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'document_type': u'Master',
+		'hide_heading': 0,
+		'hide_toolbar': 0,
+		'in_create': 0,
+		'is_submittable': 1,
+		'issingle': 0,
+		'istable': 0,
+		'module': u'Production',
+		'name': '__common__',
+		'read_only': 0,
+		'search_fields': u'item',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'subject': u'%(item)s',
+		'version': 196
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'BOM',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'BOM',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, BOM
+	{
+		'doctype': 'DocType',
+		'name': u'BOM'
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'System Manager'
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Production Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Production Manager'
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Production User',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Production User'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Select the item code for which Bill of Material is being created',
+		'doctype': u'DocField',
+		'fieldname': u'item',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item',
+		'oldfieldname': u'item',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Total quantity of items for which raw materials required and operations done will be defined',
+		'doctype': u'DocField',
+		'fieldname': u'quantity',
+		'fieldtype': u'Currency',
+		'label': u'Quantity',
+		'oldfieldname': u'quantity',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'uom',
+		'fieldtype': u'Select',
+		'label': u'UOM',
+		'options': u'link:UOM',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'description': u'Select name of the project if BOM need to be created against any project',
+		'doctype': u'DocField',
+		'fieldname': u'project_name',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Project Name',
+		'oldfieldname': u'project_name',
+		'oldfieldtype': u'Link',
+		'options': u'Project',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'is_active',
+		'fieldtype': u'Select',
+		'hidden': 0,
+		'label': u'Is Active',
+		'no_copy': 1,
+		'oldfieldname': u'is_active',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'is_default',
+		'fieldtype': u'Check',
+		'label': u'Is Default',
+		'no_copy': 1,
+		'oldfieldname': u'is_default',
+		'oldfieldtype': u'Check',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'maintained_by',
+		'fieldtype': u'Data',
+		'label': u'Maintained By',
+		'oldfieldname': u'maintained_by',
+		'oldfieldtype': u'Data',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Text',
+		'label': u'Remarks',
+		'no_copy': 1,
+		'oldfieldname': u'remarks',
+		'oldfieldtype': u'Text',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'operations',
+		'fieldtype': u'Section Break',
+		'label': u'Operations',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Specify the operations, operating cost and give a unique Operation no to your operations.',
+		'doctype': u'DocField',
+		'fieldname': u'bom_operations',
+		'fieldtype': u'Table',
+		'label': u'BOM Operations',
+		'oldfieldname': u'bom_operations',
+		'oldfieldtype': u'Table',
+		'options': u'BOM Operation',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'materials',
+		'fieldtype': u'Section Break',
+		'label': u'Materials',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Enter the raw materials required to manufacture the BOM item. Specify the operation no as entered in the previous tab which will be performed on the raw materials entered.',
+		'doctype': u'DocField',
+		'fieldname': u'bom_materials',
+		'fieldtype': u'Table',
+		'label': u'BOM Item',
+		'oldfieldname': u'bom_materials',
+		'oldfieldtype': u'Table',
+		'options': u'BOM Item',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'costing',
+		'fieldtype': u'Section Break',
+		'label': u'Costing',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rm_cost_as_per',
+		'fieldtype': u'Select',
+		'label': u'Consider Raw Material Cost As Per',
+		'options': u'Valuation Rate\nLast Purchase Rate\nStandard Rate',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'costing_date',
+		'fieldtype': u'Date',
+		'label': u'Costing Date',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'update_cost_as_on_today',
+		'fieldtype': u'Button',
+		'label': u'Update Cost as on today',
+		'options': u'calculate_cost',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'raw_material_cost',
+		'fieldtype': u'Float',
+		'label': u'Raw Material Cost',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'operating_cost',
+		'fieldtype': u'Float',
+		'label': u'Operating Cost',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'total_cost',
+		'fieldtype': u'Float',
+		'label': u'Total Cost',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'hidden': 1,
+		'options': u'Simple',
+		'permlevel': 0,
+		'print_hide': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'No Toolbar',
+		'doctype': u'DocField',
+		'fieldname': u'flat_bom_details',
+		'fieldtype': u'Table',
+		'hidden': 1,
+		'label': u'BOM Explosion Item',
+		'no_copy': 1,
+		'oldfieldname': u'flat_bom_details',
+		'oldfieldtype': u'Table',
+		'options': u'BOM Explosion Item',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'depends_on': u'eval:doc.amended_from',
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Link',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'options': u'Sales Invoice',
+		'permlevel': 1,
+		'print_hide': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/production/doctype/bom_control/bom_control.py b/erpnext/production/doctype/bom_control/bom_control.py
index d8a9e59..8123fcc 100644
--- a/erpnext/production/doctype/bom_control/bom_control.py
+++ b/erpnext/production/doctype/bom_control/bom_control.py
@@ -44,7 +44,7 @@
 		ret = sql("select name from `tabItem Group` ")
 		item_group = []
 		for r in ret:
-			item =sql("select t1.name from `tabItem` t1, `tabBill Of Materials` t2 where t2.item = t1.name and t1.item_group = '%s' " % (r[0]))
+			item =sql("select t1.name from `tabItem` t1, `tabBOM` t2 where t2.item = t1.name and t1.item_group = '%s' " % (r[0]))
 			if item and item[0][0]:
 				item_group.append(r[0])
 		return '~~~'.join([r for r in item_group])
@@ -52,23 +52,23 @@
 
 
 	def get_item_code(self,item_group):
-		""" here Bill Of Materials docstatus = 1 and is_active ='yes' condition is not given because some bom
+		""" here BOM docstatus = 1 and is_active ='yes' condition is not given because some bom
 			is under construction that is it is still in saved mode and they want see till where they have reach.
 		"""
-		ret = sql("select distinct t1.name from `tabItem` t1, `tabBill Of Materials` t2 where t2.item = t1.name and t1.item_group = '%s' " % (item_group))
+		ret = sql("select distinct t1.name from `tabItem` t1, `tabBOM` t2 where t2.item = t1.name and t1.item_group = '%s' " % (item_group))
 		return '~~~'.join([r[0] for r in ret])
 
 
 
 	def get_bom_no(self,item_code):
-		ret = sql("select name from `tabBill Of Materials` where item = '%s' " % (item_code))
+		ret = sql("select name from `tabBOM` where item = '%s' " % (item_code))
 		return '~~~'.join([r[0] for r in ret])
 
 
 
 	def get_operations(self,bom_no):
 		ret = sql("select operation_no,opn_description,workstation,hour_rate,time_in_mins from `tabBOM Operation` where parent = %s", bom_no, as_dict = 1)
-		cost = sql("select dir_mat_as_per_mar , operating_cost , cost_as_per_mar from `tabBill Of Materials` where name = %s", bom_no, as_dict = 1)
+		cost = sql("select dir_mat_as_per_mar , operating_cost , cost_as_per_mar from `tabBOM` where name = %s", bom_no, as_dict = 1)
 
 		# Validate the BOM ENTRIES
 		reply = []
@@ -87,7 +87,7 @@
 	def get_item_bom(self,data):
 		data = eval(data)
 		reply = []
-		ret = sql("select item_code,description,bom_no,qty,scrap,stock_uom,value_as_per_mar,moving_avg_rate from `tabBOM Material` where parent = '%s' and operation_no = '%s'" % (data['bom_no'],data['op_no']), as_dict =1 )
+		ret = sql("select item_code,description,bom_no,qty,scrap,stock_uom,value_as_per_mar,moving_avg_rate from `tabBOM Item` where parent = '%s' and operation_no = '%s'" % (data['bom_no'],data['op_no']), as_dict =1 )
 
 		for r in ret:
 			item = sql("select is_manufactured_item, is_sub_contracted_item from `tabItem` where name = '%s'" % r['item_code'], as_dict=1)
@@ -106,7 +106,7 @@
 		main_bom_list = get_obj('Production Control').traverse_bom_tree( bom_no = bom_no, qty = 1, calculate_cost = 1)
 		main_bom_list.reverse()
 		for bom in main_bom_list:
-			bom_obj = get_obj('Bill Of Materials', bom, with_children = 1)
+			bom_obj = get_obj('BOM', bom, with_children = 1)
 			bom_obj.calculate_cost()
 		return 'calculated'
 
@@ -115,7 +115,7 @@
 	def get_bom_tree_list(self,args):
 		arg = eval(args)
 		i =[]
-		for a in sql("select t1.name from `tabBill Of Materials` t1, `tabItem` t2 where t2.item_group like '%s' and t1.item like '%s'"%(arg['item_group'] +'%',arg['item_code'] + '%')):
+		for a in sql("select t1.name from `tabBOM` t1, `tabItem` t2 where t2.item_group like '%s' and t1.item like '%s'"%(arg['item_group'] +'%',arg['item_code'] + '%')):
 			if a[0] not in i:
 				i.append(a[0])
 		return i
diff --git a/erpnext/production/doctype/bom_control/bom_control.txt b/erpnext/production/doctype/bom_control/bom_control.txt
index 127d997..3c322e1 100644
--- a/erpnext/production/doctype/bom_control/bom_control.txt
+++ b/erpnext/production/doctype/bom_control/bom_control.txt
@@ -3,22 +3,22 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:53',
+		'creation': '2012-03-27 14:36:02',
 		'docstatus': 0,
-		'modified': '2012-01-24 20:56:54',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:02',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Production',
+		'module': u'Production',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 108
 	},
@@ -26,6 +26,6 @@
 	# DocType, BOM Control
 	{
 		'doctype': 'DocType',
-		'name': 'BOM Control'
+		'name': u'BOM Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/production/doctype/bom_material/__init__.py b/erpnext/production/doctype/bom_explosion_item/__init__.py
similarity index 100%
copy from erpnext/production/doctype/bom_material/__init__.py
copy to erpnext/production/doctype/bom_explosion_item/__init__.py
diff --git a/erpnext/production/doctype/bom_explosion_item/bom_explosion_item.txt b/erpnext/production/doctype/bom_explosion_item/bom_explosion_item.txt
new file mode 100644
index 0000000..1ba688f
--- /dev/null
+++ b/erpnext/production/doctype/bom_explosion_item/bom_explosion_item.txt
@@ -0,0 +1,138 @@
+# DocType, BOM Explosion Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:03',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:03',
+		'modified_by': u'Administrator',
+		'owner': u'jai@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'FBD/.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Production',
+		'name': '__common__',
+		'read_only': 0,
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 24
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'BOM Explosion Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, BOM Explosion Item
+	{
+		'doctype': 'DocType',
+		'name': u'BOM Explosion Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Float',
+		'label': u'Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Float',
+		'label': u'Rate',
+		'oldfieldname': u'standard_rate',
+		'oldfieldtype': u'Currency'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Float',
+		'label': u'Amount',
+		'oldfieldname': u'amount_as_per_sr',
+		'oldfieldtype': u'Currency'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Link',
+		'label': u'Stock UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'parent_bom',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'label': u'Parent BOM',
+		'oldfieldname': u'parent_bom',
+		'oldfieldtype': u'Link',
+		'width': u'250px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'mat_detail_no',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Mat Detail No'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty_consumed_per_unit',
+		'fieldtype': u'Float',
+		'hidden': 0,
+		'label': u'Qty Consumed Per Unit',
+		'no_copy': 0
+	}
+]
\ No newline at end of file
diff --git a/erpnext/production/doctype/bom_material/__init__.py b/erpnext/production/doctype/bom_item/__init__.py
similarity index 100%
copy from erpnext/production/doctype/bom_material/__init__.py
copy to erpnext/production/doctype/bom_item/__init__.py
diff --git a/erpnext/production/doctype/bom_item/bom_item.txt b/erpnext/production/doctype/bom_item/bom_item.txt
new file mode 100644
index 0000000..741de0e
--- /dev/null
+++ b/erpnext/production/doctype/bom_item/bom_item.txt
@@ -0,0 +1,194 @@
+# DocType, BOM Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:02',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:02',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Production',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 27
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'BOM Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'BOM Item',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1,
+		'role': u'System Manager'
+	},
+
+	# DocType, BOM Item
+	{
+		'doctype': 'DocType',
+		'name': u'BOM Item'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'operation_no',
+		'fieldtype': u'Data',
+		'label': u'Operation No',
+		'oldfieldname': u'operation_no',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'bom_no',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'BOM No',
+		'oldfieldname': u'bom_no',
+		'oldfieldtype': u'Link',
+		'options': u'BOM',
+		'permlevel': 0,
+		'reqd': 0,
+		'search_index': 1,
+		'trigger': u'Client',
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Float',
+		'label': u'Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'Stock UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Float',
+		'label': u'Rate',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Float',
+		'label': u'Amount',
+		'oldfieldname': u'amount_as_per_mar',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'scrap',
+		'fieldtype': u'Currency',
+		'label': u'Scrap %',
+		'oldfieldname': u'scrap',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Item Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'reqd': 0,
+		'width': u'250px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty_consumed_per_unit',
+		'fieldtype': u'Float',
+		'hidden': 1,
+		'label': u'Qty Consumed Per Unit',
+		'oldfieldname': u'qty_consumed_per_unit',
+		'oldfieldtype': u'Float',
+		'permlevel': 1,
+		'print_hide': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/production/doctype/bom_material/bom_material.txt b/erpnext/production/doctype/bom_material/bom_material.txt
deleted file mode 100644
index ebef2b4..0000000
--- a/erpnext/production/doctype/bom_material/bom_material.txt
+++ /dev/null
@@ -1,194 +0,0 @@
-# DocType, BOM Material
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:53',
-		'docstatus': 0,
-		'modified': '2012-01-24 19:47:34',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 27
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'BOM Material',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'BOM Material',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1,
-		'role': 'System Manager'
-	},
-
-	# DocType, BOM Material
-	{
-		'doctype': 'DocType',
-		'name': 'BOM Material'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'operation_no',
-		'fieldtype': 'Data',
-		'label': 'Operation No',
-		'oldfieldname': 'operation_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'bom_no',
-		'fieldtype': 'Link',
-		'in_filter': 1,
-		'label': 'BOM No',
-		'oldfieldname': 'bom_no',
-		'oldfieldtype': 'Link',
-		'options': 'Bill Of Materials',
-		'permlevel': 0,
-		'reqd': 0,
-		'search_index': 1,
-		'trigger': 'Client',
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Float',
-		'label': 'Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'label': 'Stock UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rate',
-		'fieldtype': 'Float',
-		'label': 'Rate',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amount',
-		'fieldtype': 'Float',
-		'label': 'Amount',
-		'oldfieldname': 'amount_as_per_mar',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'scrap',
-		'fieldtype': 'Currency',
-		'label': 'Scrap %',
-		'oldfieldname': 'scrap',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'label': 'Item Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'permlevel': 0,
-		'reqd': 0,
-		'width': '250px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty_consumed_per_unit',
-		'fieldtype': 'Float',
-		'hidden': 1,
-		'label': 'Qty Consumed Per Unit',
-		'oldfieldname': 'qty_consumed_per_unit',
-		'oldfieldtype': 'Float',
-		'permlevel': 1,
-		'print_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/bom_operation/bom_operation.txt b/erpnext/production/doctype/bom_operation/bom_operation.txt
index f3cc659..1e5b93a 100644
--- a/erpnext/production/doctype/bom_operation/bom_operation.txt
+++ b/erpnext/production/doctype/bom_operation/bom_operation.txt
@@ -3,133 +3,133 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:53',
+		'creation': '2012-03-27 14:36:02',
 		'docstatus': 0,
-		'modified': '2011-12-28 12:28:02',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:02',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Production',
+		'module': u'Production',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 8
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'BOM Operation',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'BOM Operation',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'BOM Operation',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'BOM Operation',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, BOM Operation
 	{
 		'doctype': 'DocType',
-		'name': 'BOM Operation'
+		'name': u'BOM Operation'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'operation_no',
-		'fieldtype': 'Data',
-		'label': 'Operation No',
-		'oldfieldname': 'operation_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'operation_no',
+		'fieldtype': u'Data',
+		'label': u'Operation No',
+		'oldfieldname': u'operation_no',
+		'oldfieldtype': u'Data',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'opn_description',
-		'fieldtype': 'Text',
-		'label': 'Opn Description',
-		'oldfieldname': 'opn_description',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'opn_description',
+		'fieldtype': u'Text',
+		'label': u'Opn Description',
+		'oldfieldname': u'opn_description',
+		'oldfieldtype': u'Text',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'workstation',
-		'fieldtype': 'Link',
-		'label': 'Workstation',
-		'oldfieldname': 'workstation',
-		'oldfieldtype': 'Link',
-		'options': 'Workstation',
+		'doctype': u'DocField',
+		'fieldname': u'workstation',
+		'fieldtype': u'Link',
+		'label': u'Workstation',
+		'oldfieldname': u'workstation',
+		'oldfieldtype': u'Link',
+		'options': u'Workstation',
 		'reqd': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'hour_rate',
-		'fieldtype': 'Currency',
-		'label': 'Hour Rate',
-		'oldfieldname': 'hour_rate',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'hour_rate',
+		'fieldtype': u'Currency',
+		'label': u'Hour Rate',
+		'oldfieldname': u'hour_rate',
+		'oldfieldtype': u'Currency',
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'time_in_mins',
-		'fieldtype': 'Currency',
-		'label': 'Operation Time (mins)',
-		'oldfieldname': 'time_in_mins',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'time_in_mins',
+		'fieldtype': u'Currency',
+		'label': u'Operation Time (mins)',
+		'oldfieldname': u'time_in_mins',
+		'oldfieldtype': u'Currency',
 		'reqd': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 0,
-		'doctype': 'DocField',
-		'fieldname': 'operating_cost',
-		'fieldtype': 'Currency',
-		'label': 'Operating Cost',
-		'oldfieldname': 'operating_cost',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'operating_cost',
+		'fieldtype': u'Currency',
+		'label': u'Operating Cost',
+		'oldfieldname': u'operating_cost',
+		'oldfieldtype': u'Currency',
 		'reqd': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/production/doctype/bom_replace_utility/__init__.py b/erpnext/production/doctype/bom_replace_utility/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/bom_replace_utility/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.js b/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.js
deleted file mode 100644
index 41cb17c..0000000
--- a/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-
-// Get Query functions 
-cur_frm.fields_dict['s_bom'].get_query = function(doc) {
-  return 'SELECT `tabBill Of Materials`.`name` FROM `tabBill Of Materials` WHERE `tabBill Of Materials`.`docstatus` = 1 AND `tabBill Of Materials`.%(key)s LIKE "%s" ORDER BY `tabBill Of Materials`.`name` DESC LIMIT 50';
-}
-
-cur_frm.fields_dict['r_bom'].get_query = function(doc) {
-  return 'SELECT `tabBill Of Materials`.`name` FROM `tabBill Of Materials` WHERE `tabBill Of Materials`.`docstatus` = 1 and `tabBill Of Materials`.%(key)s LIKE "%s" ORDER BY `tabBill Of Materials`.`name` DESC LIMIT 50';
-}
-
-cur_frm.fields_dict['s_item'].get_query = function(doc) {
-  return 'SELECT DISTINCT `tabItem`.name FROM `tabItem` WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` ="0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND (`tabItem`.is_purchase_item = "Yes" OR`tabItem`.is_sub_contracted_item = "Yes") AND tabItem.%(key)s LIKE "%s" ORDER BY `tabItem`.item_code LIMIT 50';
-}
-
-cur_frm.fields_dict['r_item'].get_query = function(doc) {
-  return 'SELECT DISTINCT `tabItem`.name FROM `tabItem` WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` ="0000-00-00" OR `tabItem`.`end_of_life` > NOW()) AND (`tabItem`.is_purchase_item = "Yes" OR`tabItem`.is_sub_contracted_item = "Yes") AND tabItem.%(key)s LIKE "%s" ORDER BY `tabItem`.item_code LIMIT 50';
-}
-
-// Client Triggers
-
diff --git a/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.py b/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.py
deleted file mode 100644
index c7ab0d3..0000000
--- a/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.py
+++ /dev/null
@@ -1,143 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self, doc, doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-    
-  def search_parent_bom_of_bom(self):
-    pbom = sql("select parent from `tabBOM Material` where bom_no = '%s' and docstatus = 1 " % self.doc.s_bom )
-    self.doc.clear_table(self.doclist,'replace_bom_details', 1)
-    self.add_to_replace_bom_utility_detail(pbom, 'replace_bom_details')
-  
-  def search_parent_bom_of_item(self):
-    pbom = sql("select parent from `tabBOM Material` where item_code = '%s' and (bom_no is NULL or bom_no = '') and docstatus =1" % self.doc.s_item )
-    self.doc.clear_table(self.doclist,'replace_item_details', 1)
-    self.add_to_replace_bom_utility_detail(pbom, 'replace_item_details')
-    
-  def add_to_replace_bom_utility_detail(self, pbom, t_fname):
-    for d in pbom:
-      br_child = addchild( self.doc, t_fname, 'BOM Replace Utility Detail', 0,self.doclist)
-      br_child.parent_bom = d[0]
-      br_child.save()
-    self.doc.save()  
-    
-  def replace_bom(self):
-    # validate r_bom
-    bom = sql("select name, is_active, docstatus from `tabBill Of Materials` where name = %s",self.doc.r_bom, as_dict =1)
-    if not bom:
-      msgprint("Please Enter Valid BOM to replace with.")
-      raise Exception
-    if bom and bom[0]['is_active'] != 'Yes':
-      msgprint("BOM '%s' is not Active BOM." % cstr(self.doc.r_bom))
-      raise Exception
-    if bom and flt(bom[0]['docstatus']) != 1:
-      msgprint("BOM '%s' is not Submitted BOM." % cstr(self.doc.r_bom))
-      raise Exception
-    
-    # get item code of r_bom
-    item_code = cstr(sql("select item from `tabBill Of Materials` where name = '%s' " % self.doc.r_bom)[0][0])
-    # call replace bom engine
-    self.replace_bom_engine('replace_bom_details', 'bom_no', self.doc.s_bom, self.doc.r_bom, item_code)
-  
-  def replace_item(self):
-    item = sql("select name, is_active from `tabItem` where name = %s", self.doc.r_item, as_dict = 1)
-    if not item:
-      msgprint("Please enter Valid Item Code to replace with.")
-      raise Exception
-    if item and item[0]['is_active'] != 'Yes':
-      msgprint("Item Code '%s' is not Active Item." % cstr(self.doc.r_item))
-      raise Exception
-    self.replace_bom_engine('replace_item_details', 'item_code', self.doc.s_item, self.doc.r_item)
-    
-  def replace_data_in_bom_materials(self, dl, fname, s_data, r_data, item_code =''):
-    for d in getlist(dl, 'bom_materials'):
-      if d.fields[fname] == s_data:
-        d.fields[fname] = r_data
-        if fname == 'bom_no':
-          d.item_code = item_code
-        d.save()
-
-  def replace_bom_engine(self, t_fname, fname, s_data, r_data, item_code = ''):
-    if not r_data:
-      msgprint("Please Enter '%s' and then click on '%s'." % ((t_fname == 'replace_bom_details') and 'BOM to Replace' or 'Item to Replace',(t_fname == 'replace_bom_details') and 'Replace BOM' or 'Replace Item' ))
-      raise Exception
-      
-    for d in getlist(self.doclist, t_fname):
-      if d.bom_created:
-        msgprint("Please click on '%s' and then on '%s'." % ((t_fname == 'replace_bom_details') and 'Search BOM' or 'Search Item',(t_fname == 'replace_bom_details') and 'Replace BOM' or 'Replace Item' ))
-        raise Exception
-        
-      if d.replace:
-        # copy_doclist is the framework funcn which create duplicate document and returns doclist of new document
-        # Reinder := 
-        # make copy
-        if self.doc.create_new_bom:
-          import webnotes.model.doc
-          new_bom_dl = copy_doclist(webnotes.model.doc.get('Bill Of Materials', d.parent_bom), no_copy = ['is_active', 'is_default', 'is_sub_assembly', 'remarks', 'flat_bom_details'])
-        
-          new_bom_dl[0].docstatus = 0
-          new_bom_dl[0].save()
-        else:
-          new_bom_dl = get_obj('Bill Of Materials', d.parent_bom, with_children = 1).doclist
-
-        # replace s_data with r_data in Bom Material Detail Table
-        self.replace_data_in_bom_materials(new_bom_dl, fname, s_data, r_data, item_code)
-       
-        d.bom_created = new_bom_dl[0].name
-        d.save()
-
-  def update_docstatus(self):
-    sql("update `tabBill Of Materials` set docstatus = 0 where  name = '%s' limit 1" % self.doc.bom)
-    msgprint("Updated")
-
-  def update_bom(self):
-    self.check_bom_list = []
-    main_bom_list = get_obj('Production Control').traverse_bom_tree(self.doc.fg_bom_no, 1)
-    main_bom_list.reverse()
-    # run calculate cost and get
-    #msgprint(main_bom_list)
-    for bom in main_bom_list:
-      if bom and bom not in self.check_bom_list:
-        bom_obj = get_obj('Bill Of Materials', bom, with_children = 1)
-        #print(bom_obj.doc.fields)
-        bom_obj.validate()
-        bom_obj.doc.docstatus = 1
-        bom_obj.check_recursion()
-        bom_obj.update_flat_bom_engine(is_submit = 1)
-        bom_obj.doc.docstatus = 1
-        bom_obj.doc.save()
-        self.check_bom_list.append(bom)
diff --git a/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.txt b/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.txt
deleted file mode 100644
index f3e1412..0000000
--- a/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.txt
+++ /dev/null
@@ -1,398 +0,0 @@
-# DocType, BOM Replace Utility
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:53',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'show_in_menu': 1,
-		'version': 56
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'BOM Replace Utility',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'BOM Replace Utility',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, BOM Replace Utility
-	{
-		'doctype': 'DocType',
-		'name': 'BOM Replace Utility'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 0,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 1,
-		'role': 'System Manager'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 0,
-		'role': 'Production User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 1,
-		'role': 'Production User'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
-		'permlevel': 0,
-		'role': 'Production Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 6,
-		'permlevel': 1,
-		'role': 'Production Manager'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'create_new_bom',
-		'fieldtype': 'Check',
-		'idx': 1,
-		'label': 'Create New BOM'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 2,
-		'label': 'BOM Details'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Select the relevant BOM to be replaced which is actually a raw material used for a parent BOM.',
-		'doctype': 'DocField',
-		'fieldname': 's_bom',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'Select BOM',
-		'options': 'Bill Of Materials',
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 4,
-		'label': 'Note 1',
-		'options': 'Click on the button "Search BOM" to fetch in the table below all the parent BOMs in which the above selected BOM is used as a raw material.'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 5
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 6,
-		'label': 'Search BOM',
-		'options': 'search_parent_bom_of_bom'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 7,
-		'options': 'Simple'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Select the BOM by which you want the above sected BOM to be replaced.',
-		'doctype': 'DocField',
-		'fieldname': 'r_bom',
-		'fieldtype': 'Link',
-		'idx': 8,
-		'label': 'Replace Bom with',
-		'options': 'Bill Of Materials',
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 9,
-		'label': 'Note 2',
-		'options': 'Click on the button "Replace BOM" after checking under the column Replace against relevant Parent BOMs'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 10
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 11,
-		'label': 'Replace BOM',
-		'options': 'replace_bom'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 12,
-		'options': 'Simple'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'replace_bom_details',
-		'fieldtype': 'Table',
-		'idx': 13,
-		'label': 'Replace BOM Detail',
-		'options': 'BOM Replace Utility Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 14,
-		'label': 'Item Details'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Select the relevant item to be replaced which is actually a raw material used for a parent BOM.',
-		'doctype': 'DocField',
-		'fieldname': 's_item',
-		'fieldtype': 'Link',
-		'idx': 15,
-		'label': 'Select Item',
-		'options': 'Item',
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 16,
-		'label': 'Note 3',
-		'options': 'Click on the button "Search Item" to fetch in the table below all the parent BOMs in which the above selected item is used as a raw material.'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 17
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 18,
-		'label': 'Search Item',
-		'options': 'search_parent_bom_of_item'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 19,
-		'options': 'Simple'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Select the item by which you want the above sected item to be replaced.',
-		'doctype': 'DocField',
-		'fieldname': 'r_item',
-		'fieldtype': 'Link',
-		'idx': 20,
-		'label': 'Replace Item with',
-		'options': 'Item',
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 21,
-		'label': 'Note 4',
-		'options': 'Click on the button "Replace Item" after checking under the column Replace against relevant Parent BOMs'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 22
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 23,
-		'label': 'Replace Item',
-		'options': 'replace_item'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 24,
-		'options': 'Simple'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'replace_item_details',
-		'fieldtype': 'Table',
-		'idx': 25,
-		'label': 'Replace Item Detail',
-		'options': 'BOM Replace Utility Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 26,
-		'label': 'Update BOM Tree'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Select the root Bill of Materials in which raw materials are replaced and click on the button below to update costs.',
-		'doctype': 'DocField',
-		'fieldname': 'fg_bom_no',
-		'fieldtype': 'Link',
-		'idx': 27,
-		'label': 'FG BOM No',
-		'options': 'Bill Of Materials'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 28,
-		'label': 'Update',
-		'options': 'update_bom'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 29,
-		'label': 'Update BOM'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'bom',
-		'fieldtype': 'Link',
-		'idx': 30,
-		'label': 'BOM',
-		'options': 'Bill Of Materials'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 31,
-		'label': 'Update Docstatus',
-		'options': 'update_docstatus'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/bom_replace_utility_detail/__init__.py b/erpnext/production/doctype/bom_replace_utility_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/bom_replace_utility_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/bom_replace_utility_detail/bom_replace_utility_detail.txt b/erpnext/production/doctype/bom_replace_utility_detail/bom_replace_utility_detail.txt
deleted file mode 100644
index d36f26b..0000000
--- a/erpnext/production/doctype/bom_replace_utility_detail/bom_replace_utility_detail.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-# DocType, BOM Replace Utility Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:53',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'BRUD/.#####',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'hide_toolbar': 1,
-		'in_create': 1,
-		'istable': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 8
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'BOM Replace Utility Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'BOM Replace Utility Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocType, BOM Replace Utility Detail
-	{
-		'doctype': 'DocType',
-		'name': 'BOM Replace Utility Detail'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'parent_bom',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Parent BOM',
-		'oldfieldname': 'parent_bom',
-		'oldfieldtype': 'Link',
-		'options': 'Bill Of Materials',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'replace',
-		'fieldtype': 'Check',
-		'idx': 2,
-		'label': 'Replace',
-		'oldfieldname': 'replace',
-		'oldfieldtype': 'Check',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'bom_created',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'BOM Created',
-		'oldfieldname': 'bom_created',
-		'oldfieldtype': 'Link',
-		'options': 'Bill Of Materials',
-		'permlevel': 1,
-		'search_index': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/bom_report_detail/__init__.py b/erpnext/production/doctype/bom_report_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/bom_report_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/bom_report_detail/bom_report_detail.txt b/erpnext/production/doctype/bom_report_detail/bom_report_detail.txt
deleted file mode 100644
index 307fe7d..0000000
--- a/erpnext/production/doctype/bom_report_detail/bom_report_detail.txt
+++ /dev/null
@@ -1,161 +0,0 @@
-# DocType, BOM Report Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:53',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 8
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'BOM Report Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'BOM Report Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1,
-		'role': 'System Manager'
-	},
-
-	# DocType, BOM Report Detail
-	{
-		'doctype': 'DocType',
-		'name': 'BOM Report Detail'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'idx': 2,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'permlevel': 1,
-		'reqd': 0,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'moving_avg_rate',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Moving Avg Rate',
-		'oldfieldname': 'moving_avg_rate',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amount',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Amount',
-		'oldfieldname': 'amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'last_purchase_rate',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Last Purchase Rate',
-		'oldfieldname': 'last_purchase_rate',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Data',
-		'idx': 9,
-		'label': 'Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'idx': 12,
-		'label': 'Stock UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'reqd': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/flat_bom_detail/__init__.py b/erpnext/production/doctype/flat_bom_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/flat_bom_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/flat_bom_detail/flat_bom_detail.txt b/erpnext/production/doctype/flat_bom_detail/flat_bom_detail.txt
deleted file mode 100644
index 1c2d76e..0000000
--- a/erpnext/production/doctype/flat_bom_detail/flat_bom_detail.txt
+++ /dev/null
@@ -1,138 +0,0 @@
-# DocType, Flat BOM Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:02',
-		'docstatus': 0,
-		'modified': '2012-01-11 14:32:31',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'FBD/.######',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'read_only': 0,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 24
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Flat BOM Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Flat BOM Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Flat BOM Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Float',
-		'label': 'Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rate',
-		'fieldtype': 'Float',
-		'label': 'Rate',
-		'oldfieldname': 'standard_rate',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amount',
-		'fieldtype': 'Float',
-		'label': 'Amount',
-		'oldfieldname': 'amount_as_per_sr',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Link',
-		'label': 'Stock UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Link',
-		'options': 'UOM'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'parent_bom',
-		'fieldtype': 'Link',
-		'hidden': 0,
-		'label': 'Parent BOM',
-		'oldfieldname': 'parent_bom',
-		'oldfieldtype': 'Link',
-		'width': '250px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'mat_detail_no',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'label': 'Mat Detail No'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty_consumed_per_unit',
-		'fieldtype': 'Float',
-		'hidden': 0,
-		'label': 'Qty Consumed Per Unit',
-		'no_copy': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/pf_detail/__init__.py b/erpnext/production/doctype/pf_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/pf_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/pf_detail/pf_detail.txt b/erpnext/production/doctype/pf_detail/pf_detail.txt
deleted file mode 100644
index 5c29c84..0000000
--- a/erpnext/production/doctype/pf_detail/pf_detail.txt
+++ /dev/null
@@ -1,216 +0,0 @@
-# DocType, PF Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:12',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'PFD/.#####',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'PF Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'PF Detail',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1,
-		'role': 'System Manager'
-	},
-
-	# DocType, PF Detail
-	{
-		'doctype': 'DocType',
-		'name': 'PF Detail'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 0,
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': 'Client',
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'idx': 2,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'permlevel': 1,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'default': '0.00',
-		'doctype': 'DocField',
-		'fieldname': 'planned_qty',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Planned Quantity',
-		'oldfieldname': 'planned_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'produced_qty',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Produced Quantity',
-		'oldfieldname': 'produced_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'start_date',
-		'fieldtype': 'Date',
-		'hidden': 0,
-		'idx': 7,
-		'in_filter': 0,
-		'label': 'Start Date',
-		'oldfieldname': 'start_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'report_hide': 0,
-		'reqd': 1,
-		'search_index': 0,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'end_date',
-		'fieldtype': 'Date',
-		'hidden': 0,
-		'idx': 8,
-		'in_filter': 0,
-		'label': 'End Date',
-		'oldfieldname': 'end_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'report_hide': 0,
-		'reqd': 1,
-		'search_index': 0,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'idx': 9,
-		'label': 'Quantity',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'forecast_date',
-		'fieldtype': 'Date',
-		'hidden': 1,
-		'idx': 9,
-		'label': 'Forecast Date',
-		'oldfieldname': 'forecast_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'forecast_due_date',
-		'fieldtype': 'Date',
-		'hidden': 1,
-		'idx': 10,
-		'label': 'Forecast Due Date',
-		'oldfieldname': 'forecast_due_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'idx': 12,
-		'label': 'Stock UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/pp_detail/__init__.py b/erpnext/production/doctype/pp_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/pp_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/pp_detail/pp_detail.txt b/erpnext/production/doctype/pp_detail/pp_detail.txt
deleted file mode 100644
index a90d59c..0000000
--- a/erpnext/production/doctype/pp_detail/pp_detail.txt
+++ /dev/null
@@ -1,159 +0,0 @@
-# DocType, PP Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:12',
-		'docstatus': 0,
-		'modified': '2012-01-09 16:25:13',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'PPID/.#####',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 27
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'PP Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, PP Detail
-	{
-		'doctype': 'DocType',
-		'name': 'PP Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_order',
-		'fieldtype': 'Data',
-		'label': 'Sales Order',
-		'oldfieldname': 'source_docname',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client',
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'bom_no',
-		'fieldtype': 'Link',
-		'label': 'BOM No',
-		'oldfieldname': 'bom_no',
-		'oldfieldtype': 'Link',
-		'options': 'Bill Of Materials',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'default': '0.00',
-		'doctype': 'DocField',
-		'fieldname': 'so_pending_qty',
-		'fieldtype': 'Currency',
-		'label': 'SO Pending Qty',
-		'oldfieldname': 'prevdoc_reqd_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'reqd': 0,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'default': '0.00',
-		'doctype': 'DocField',
-		'fieldname': 'planned_qty',
-		'fieldtype': 'Currency',
-		'label': 'Planned Qty',
-		'oldfieldname': 'planned_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'label': 'UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'reqd': 1,
-		'width': '80px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'permlevel': 1,
-		'width': '200px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'parent_packing_item',
-		'fieldtype': 'Link',
-		'label': 'Parent Packing Item',
-		'oldfieldname': 'parent_item',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'is_pro_created',
-		'fieldtype': 'Check',
-		'label': 'Is PRO Created',
-		'oldfieldname': 'pro_created',
-		'oldfieldtype': 'Check',
-		'permlevel': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/pp_so_detail/__init__.py b/erpnext/production/doctype/pp_so_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/pp_so_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/pp_so_detail/pp_so_detail.txt b/erpnext/production/doctype/pp_so_detail/pp_so_detail.txt
deleted file mode 100644
index c07d71b..0000000
--- a/erpnext/production/doctype/pp_so_detail/pp_so_detail.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-# DocType, PP SO Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:13',
-		'docstatus': 0,
-		'modified': '2012-01-09 17:41:37',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'PP/.SO/.#####',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'PP SO Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, PP SO Detail
-	{
-		'doctype': 'DocType',
-		'name': 'PP SO Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_order',
-		'fieldtype': 'Link',
-		'label': 'Sales Order',
-		'oldfieldname': 'prevdoc_docname',
-		'oldfieldtype': 'Data',
-		'options': 'Sales Order',
-		'permlevel': 0,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_order_date',
-		'fieldtype': 'Date',
-		'label': 'Sales Order Date',
-		'oldfieldname': 'document_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'label': 'Customer',
-		'options': 'Customer',
-		'permlevel': 1,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'grand_total',
-		'fieldtype': 'Currency',
-		'label': 'Grand Total',
-		'permlevel': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'include_in_plan',
-		'fieldtype': 'Check',
-		'label': 'Include In Plan',
-		'oldfieldname': 'include_in_plan',
-		'oldfieldtype': 'Check',
-		'permlevel': 0,
-		'width': '100px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/ppw_detail/__init__.py b/erpnext/production/doctype/ppw_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/ppw_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/ppw_detail/ppw_detail.txt b/erpnext/production/doctype/ppw_detail/ppw_detail.txt
deleted file mode 100644
index 96bcf85..0000000
--- a/erpnext/production/doctype/ppw_detail/ppw_detail.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-# DocType, PPW Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:13',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'PPWD/.#######',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Warehouse',
-		'name': '__common__',
-		'oldfieldname': 'warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
-		'parent': 'PPW Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, PPW Detail
-	{
-		'doctype': 'DocType',
-		'name': 'PPW Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/pro_detail/pro_detail.txt b/erpnext/production/doctype/pro_detail/pro_detail.txt
deleted file mode 100644
index df7465e..0000000
--- a/erpnext/production/doctype/pro_detail/pro_detail.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-# DocType, PRO Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:13',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'PRODC/.#######',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 4
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'PRO Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, PRO Detail
-	{
-		'doctype': 'DocType',
-		'name': 'PRO Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'idx': 2,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'permlevel': 1,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'source_warehouse',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'Source Warehouse',
-		'oldfieldname': 'source_warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'actual_qty',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Current Stock',
-		'oldfieldname': 'actual_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty_reqd',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Qty Reqd',
-		'oldfieldname': 'qty_reqd',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'issued_qty',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Issued Qty',
-		'oldfieldname': 'issued_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'consumed_qty',
-		'fieldtype': 'Currency',
-		'idx': 8,
-		'label': 'Consumed Qty',
-		'oldfieldname': 'consumed_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty_consumed_per_unit',
-		'fieldtype': 'Currency',
-		'idx': 9,
-		'label': 'Qty Consumed Per Unit',
-		'oldfieldname': 'qty_consumed_per_unit',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'idx': 12,
-		'label': 'Stock UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'reqd': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/pro_pp_detail/__init__.py b/erpnext/production/doctype/pro_pp_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/pro_pp_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/pro_pp_detail/pro_pp_detail.txt b/erpnext/production/doctype/pro_pp_detail/pro_pp_detail.txt
deleted file mode 100644
index 042ec1a..0000000
--- a/erpnext/production/doctype/pro_pp_detail/pro_pp_detail.txt
+++ /dev/null
@@ -1,129 +0,0 @@
-# DocType, PRO PP Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:13',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'PRO PP Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, PRO PP Detail
-	{
-		'doctype': 'DocType',
-		'name': 'PRO PP Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'source_doctype',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Source Doctype',
-		'oldfieldname': 'source_doctype',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'source_docname',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Source Docname',
-		'oldfieldname': 'source_docname',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'source_detail_docname',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Source Detail Docname ',
-		'oldfieldname': 'source_detail_docname',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'prevdoc_detail_docname',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Prevdoc Detail Docname',
-		'oldfieldname': 'prevdoc_detail_docname',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'confirm_date',
-		'fieldtype': 'Date',
-		'idx': 5,
-		'label': 'Confirm Date',
-		'oldfieldname': 'confirm_date',
-		'oldfieldtype': 'Date'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty_reqd',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Qty Reqd',
-		'oldfieldname': 'qty_reqd',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'produced_qty',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Produced Qty',
-		'oldfieldname': 'produced_qty',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'update',
-		'fieldtype': 'Check',
-		'idx': 8,
-		'label': 'Update',
-		'oldfieldname': 'update',
-		'oldfieldtype': 'Check'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/production_control/production_control.py b/erpnext/production/doctype/production_control/production_control.py
index c051d1e..6afd6ae 100644
--- a/erpnext/production/doctype/production_control/production_control.py
+++ b/erpnext/production/doctype/production_control/production_control.py
@@ -46,7 +46,7 @@
 		count, bom_list, qty_list = 0, [bom_no], [qty]
 		while (count < len(bom_list)):
 			# get child items from BOM MAterial Table.
-			child_items = sql("select item_code, bom_no, qty, qty_consumed_per_unit from `tabBOM Material` where parent = %s", bom_list[count], as_dict = 1)
+			child_items = sql("select item_code, bom_no, qty, qty_consumed_per_unit from `tabBOM Item` where parent = %s", bom_list[count], as_dict = 1)
 			child_items = child_items and child_items or []
 			for item in child_items:
 				# Calculate qty required for FG's qty.
@@ -106,7 +106,7 @@
 		# run calculate cost and get
 		for bom in main_bom_list:
 			if bom and bom not in self.check_bom_list:
-				bom_obj = get_obj('Bill Of Materials', bom, with_children = 1)
+				bom_obj = get_obj('BOM', bom, with_children = 1)
 				bom_obj.doc.save()
 				bom_obj.check_recursion()
 				bom_obj.update_flat_bom_engine()
diff --git a/erpnext/production/doctype/production_control/production_control.txt b/erpnext/production/doctype/production_control/production_control.txt
index 7ca5160..4f8564c 100644
--- a/erpnext/production/doctype/production_control/production_control.txt
+++ b/erpnext/production/doctype/production_control/production_control.txt
@@ -3,22 +3,22 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:14',
+		'creation': '2012-03-27 14:36:05',
 		'docstatus': 0,
-		'modified': '2010-12-23 11:22:14',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:05',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Production',
+		'module': u'Production',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 19
 	},
@@ -26,6 +26,6 @@
 	# DocType, Production Control
 	{
 		'doctype': 'DocType',
-		'name': 'Production Control'
+		'name': u'Production Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/production/doctype/production_order/production_order.js b/erpnext/production/doctype/production_order/production_order.js
index 227f3ca..6ac7065 100644
--- a/erpnext/production/doctype/production_order/production_order.js
+++ b/erpnext/production/doctype/production_order/production_order.js
@@ -109,7 +109,7 @@
 
 cur_frm.fields_dict['bom_no'].get_query = function(doc)  {
   if (doc.production_item){
-    return 'SELECT DISTINCT `tabBill Of Materials`.`name` FROM `tabBill Of Materials` WHERE `tabBill Of Materials`.`is_active` = "Yes" AND `tabBill Of Materials`.docstatus = 1 AND `tabBill Of Materials`.`item` = "' + cstr(doc.production_item) + '" AND`tabBill Of Materials`.%(key)s LIKE "%s" ORDER BY `tabBill Of Materials`.`name` LIMIT 50';
+    return 'SELECT DISTINCT `tabBOM`.`name` FROM `tabBOM` WHERE `tabBOM`.`is_active` = "Yes" AND `tabBOM`.docstatus = 1 AND `tabBOM`.`item` = "' + cstr(doc.production_item) + '" AND`tabBOM`.%(key)s LIKE "%s" ORDER BY `tabBOM`.`name` LIMIT 50';
   }
   else {
     alert(" Please Enter Production Item First.")
diff --git a/erpnext/production/doctype/production_order/production_order.py b/erpnext/production/doctype/production_order/production_order.py
index ded32ff..65ee471 100644
--- a/erpnext/production/doctype/production_order/production_order.py
+++ b/erpnext/production/doctype/production_order/production_order.py
@@ -63,7 +63,7 @@
 				raise Exception
 
 		if self.doc.bom_no:
-			bom = sql("""select name from `tabBill Of Materials`	where name = %s and docstatus = 1 
+			bom = sql("""select name from `tabBOM`	where name = %s and docstatus = 1 
 				and is_active = 'Yes' and item = %s""", (self.doc.bom_no, self.doc.production_item), as_dict =1)
 			if not bom:
 				msgprint("""Incorrect BOM: %s entered. 
diff --git a/erpnext/production/doctype/production_order/production_order.txt b/erpnext/production/doctype/production_order/production_order.txt
index d94ccc9..62aa610 100644
--- a/erpnext/production/doctype/production_order/production_order.txt
+++ b/erpnext/production/doctype/production_order/production_order.txt
@@ -3,51 +3,52 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:14',
+		'creation': '2012-03-27 14:36:05',
 		'docstatus': 0,
-		'modified': '2012-01-11 17:36:23',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:45:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1325837006',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'_last_update': u'1325837006',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'in_create': 0,
-		'module': 'Production',
+		'is_submittable': 1,
+		'module': u'Production',
 		'name': '__common__',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 190
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Production Order',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Production Order',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Production Order',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Production Order',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Production Order
 	{
 		'doctype': 'DocType',
-		'name': 'Production Order'
+		'name': u'Production Order'
 	},
 
 	# DocPerm
@@ -55,18 +56,18 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All'
+		'role': u'All'
 	},
 
 	# DocPerm
@@ -74,9 +75,9 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Production Manager',
+		'role': u'Production Manager',
 		'submit': 1,
 		'write': 1
 	},
@@ -86,227 +87,229 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Production User',
+		'role': u'Production User',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Item for which this Production Order is raised.',
-		'doctype': 'DocField',
-		'fieldname': 'production_item',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'description': u'Item for which this Production Order is raised.',
+		'doctype': u'DocField',
+		'fieldname': u'production_item',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Production Item',
-		'oldfieldname': 'production_item',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
+		'label': u'Production Item',
+		'oldfieldname': u'production_item',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
 		'permlevel': 1,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
 		'permlevel': 0,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'label': 'Stock UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'Stock UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Bill of Material which was considered for manufacturing the production item.',
-		'doctype': 'DocField',
-		'fieldname': 'bom_no',
-		'fieldtype': 'Link',
-		'label': 'BOM No',
-		'oldfieldname': 'bom_no',
-		'oldfieldtype': 'Link',
-		'options': 'Bill Of Materials',
+		'colour': u'White:FFF',
+		'description': u'Bill of Material which was considered for manufacturing the production item.',
+		'doctype': u'DocField',
+		'fieldname': u'bom_no',
+		'fieldtype': u'Link',
+		'label': u'BOM No',
+		'oldfieldname': u'bom_no',
+		'oldfieldtype': u'Link',
+		'options': u'BOM',
 		'permlevel': 1,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Quantity of item for which Production Order is raised.',
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'label': 'Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'description': u'Quantity of item for which Production Order is raised.',
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'The warehouse for finished goods where stock of produced items will be updated.',
-		'doctype': 'DocField',
-		'fieldname': 'fg_warehouse',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'description': u'The warehouse for finished goods where stock of produced items will be updated.',
+		'doctype': u'DocField',
+		'fieldname': u'fg_warehouse',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'FG Warehouse',
-		'oldfieldname': 'fg_warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
+		'label': u'FG Warehouse',
+		'oldfieldname': u'fg_warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'The work in progress warehouse where raw materials will be operated upon to create finished goods.',
-		'doctype': 'DocField',
-		'fieldname': 'wip_warehouse',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'description': u'The work in progress warehouse where raw materials will be operated upon to create finished goods.',
+		'doctype': u'DocField',
+		'fieldname': u'wip_warehouse',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'WIP Warehouse',
-		'oldfieldname': 'wip_warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
+		'label': u'WIP Warehouse',
+		'oldfieldname': u'wip_warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'label': 'Amended From',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
 		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'label': 'Amendment Date',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
 		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'The date on which current entry will get or has actually executed.',
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
-		'label': 'Posting Date',
-		'oldfieldname': 'posting_date',
-		'oldfieldtype': 'Date',
+		'colour': u'White:FFF',
+		'description': u'The date on which current entry will get or has actually executed.',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
+		'label': u'Posting Date',
+		'oldfieldname': u'posting_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Select "Yes" if stock is maintained and tracked for sub-assembly items. Select "No" if you want child items of sub-assembly for material transfer.',
-		'doctype': 'DocField',
-		'fieldname': 'consider_sa_items',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'description': u'Select "Yes" if stock is maintained and tracked for sub-assembly items. Select "No" if you want child items of sub-assembly for material transfer.',
+		'doctype': u'DocField',
+		'fieldname': u'consider_sa_items',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Consider SA Items as raw material',
-		'oldfieldname': 'consider_sa_items',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'label': u'Consider SA Items as raw material',
+		'oldfieldname': u'consider_sa_items',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'description': 'Select name of the project if Production Order need to be created against any project',
-		'doctype': 'DocField',
-		'fieldname': 'project_name',
-		'fieldtype': 'Link',
+		'description': u'Select name of the project if Production Order need to be created against any project',
+		'doctype': u'DocField',
+		'fieldname': u'project_name',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Project Name',
-		'oldfieldname': 'project_name',
-		'oldfieldtype': 'Link',
-		'options': 'Project',
+		'label': u'Project Name',
+		'oldfieldname': u'project_name',
+		'oldfieldtype': u'Link',
+		'options': u'Project',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'origin',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'origin',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Origin',
+		'label': u'Origin',
 		'no_copy': 1,
-		'oldfieldname': 'origin',
-		'oldfieldtype': 'Select',
-		'options': 'Manual\nMRP',
+		'oldfieldname': u'origin',
+		'oldfieldtype': u'Select',
+		'options': u'Manual\nMRP',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Status',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nDraft\nSubmitted\nStopped\nIn Process\nCompleted\nCancelled',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nDraft\nSubmitted\nStopped\nIn Process\nCompleted\nCancelled',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 1
@@ -314,40 +317,40 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Updated after finished goods are transferred to FG Warehouse through Stock Entry',
-		'doctype': 'DocField',
-		'fieldname': 'produced_qty',
-		'fieldtype': 'Currency',
-		'label': 'Produced Qty',
-		'oldfieldname': 'produced_qty',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'description': u'Updated after finished goods are transferred to FG Warehouse through Stock Entry',
+		'doctype': u'DocField',
+		'fieldname': u'produced_qty',
+		'fieldtype': u'Currency',
+		'label': u'Produced Qty',
+		'oldfieldname': u'produced_qty',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'reqd': 1
 	}
diff --git a/erpnext/production/doctype/pro_detail/__init__.py b/erpnext/production/doctype/production_plan_item/__init__.py
similarity index 100%
rename from erpnext/production/doctype/pro_detail/__init__.py
rename to erpnext/production/doctype/production_plan_item/__init__.py
diff --git a/erpnext/production/doctype/production_plan_item/production_plan_item.txt b/erpnext/production/doctype/production_plan_item/production_plan_item.txt
new file mode 100644
index 0000000..8b546a4
--- /dev/null
+++ b/erpnext/production/doctype/production_plan_item/production_plan_item.txt
@@ -0,0 +1,159 @@
+# DocType, Production Plan Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:03',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:03',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'PPID/.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Production',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 27
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Production Plan Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Production Plan Item
+	{
+		'doctype': 'DocType',
+		'name': u'Production Plan Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sales_order',
+		'fieldtype': u'Data',
+		'label': u'Sales Order',
+		'oldfieldname': u'source_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'bom_no',
+		'fieldtype': u'Link',
+		'label': u'BOM No',
+		'oldfieldname': u'bom_no',
+		'oldfieldtype': u'Link',
+		'options': u'BOM',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'so_pending_qty',
+		'fieldtype': u'Currency',
+		'label': u'SO Pending Qty',
+		'oldfieldname': u'prevdoc_reqd_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'reqd': 0,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'planned_qty',
+		'fieldtype': u'Currency',
+		'label': u'Planned Qty',
+		'oldfieldname': u'planned_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'reqd': 1,
+		'width': u'80px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'permlevel': 1,
+		'width': u'200px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'parent_packing_item',
+		'fieldtype': u'Link',
+		'label': u'Parent Packing Item',
+		'oldfieldname': u'parent_item',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'is_pro_created',
+		'fieldtype': u'Check',
+		'label': u'Is PRO Created',
+		'oldfieldname': u'pro_created',
+		'oldfieldtype': u'Check',
+		'permlevel': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/production/doctype/pro_detail/__init__.py b/erpnext/production/doctype/production_plan_sales_order/__init__.py
similarity index 100%
copy from erpnext/production/doctype/pro_detail/__init__.py
copy to erpnext/production/doctype/production_plan_sales_order/__init__.py
diff --git a/erpnext/production/doctype/production_plan_sales_order/production_plan_sales_order.txt b/erpnext/production/doctype/production_plan_sales_order/production_plan_sales_order.txt
new file mode 100644
index 0000000..810c140
--- /dev/null
+++ b/erpnext/production/doctype/production_plan_sales_order/production_plan_sales_order.txt
@@ -0,0 +1,124 @@
+# DocType, Production Plan Sales Order
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:04',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:04',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'PP/.SO/.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Production',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 5
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Production Plan Sales Order',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Production Plan Sales Order',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1,
+		'role': u'System Manager'
+	},
+
+	# DocType, Production Plan Sales Order
+	{
+		'doctype': 'DocType',
+		'name': u'Production Plan Sales Order'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sales_order',
+		'fieldtype': u'Link',
+		'label': u'Sales Order',
+		'oldfieldname': u'prevdoc_docname',
+		'oldfieldtype': u'Data',
+		'options': u'Sales Order',
+		'permlevel': 0,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sales_order_date',
+		'fieldtype': u'Date',
+		'label': u'Sales Order Date',
+		'oldfieldname': u'document_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
+		'label': u'Customer',
+		'options': u'Customer',
+		'permlevel': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'grand_total',
+		'fieldtype': u'Currency',
+		'label': u'Grand Total',
+		'permlevel': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'include_in_plan',
+		'fieldtype': u'Check',
+		'label': u'Include In Plan',
+		'oldfieldname': u'include_in_plan',
+		'oldfieldtype': u'Check',
+		'permlevel': 0,
+		'width': u'100px'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/production/doctype/production_planning_tool/production_planning_tool.js b/erpnext/production/doctype/production_planning_tool/production_planning_tool.js
index e52c853..11d6e44 100644
--- a/erpnext/production/doctype/production_planning_tool/production_planning_tool.js
+++ b/erpnext/production/doctype/production_planning_tool/production_planning_tool.js
@@ -29,7 +29,7 @@
 }
 
 
-cur_frm.cscript['Download Raw Material'] = function(doc, cdt, cdn) {
+cur_frm.cscript.download_raw_material = function(doc, cdt, cdn) {
 	var callback = function(r, rt){
 		if (r.message) 
 			$c_obj_csv(make_doclist(cdt, cdn), 'download_raw_materials', '', '');
@@ -46,5 +46,5 @@
 
 cur_frm.fields_dict['pp_details'].grid.get_field('bom_no').get_query = function(doc) {
   var d = locals[this.doctype][this.docname];
-  return 'SELECT DISTINCT `tabBill Of Materials`.`name` FROM `tabBill Of Materials` WHERE `tabBill Of Materials`.`item` = "' + d.item_code + '" AND `tabBill Of Materials`.`is_active` = "Yes" AND `tabBill Of Materials`.docstatus = 1 AND `tabBill Of Materials`.`name` like "%s" ORDER BY `tabBill Of Materials`.`name` LIMIT 50';
+  return 'SELECT DISTINCT `tabBOM`.`name` FROM `tabBOM` WHERE `tabBOM`.`item` = "' + d.item_code + '" AND `tabBOM`.`is_active` = "Yes" AND `tabBOM`.docstatus = 1 AND `tabBOM`.`name` like "%s" ORDER BY `tabBOM`.`name` LIMIT 50';
 }
diff --git a/erpnext/production/doctype/production_planning_tool/production_planning_tool.py b/erpnext/production/doctype/production_planning_tool/production_planning_tool.py
index 4e4832f..b247ba8 100644
--- a/erpnext/production/doctype/production_planning_tool/production_planning_tool.py
+++ b/erpnext/production/doctype/production_planning_tool/production_planning_tool.py
@@ -75,7 +75,7 @@
 			select 
 				distinct t1.name, t1.transaction_date, t1.customer, t1.grand_total 
 			from 
-				`tabSales Order` t1, `tabSales Order Detail` t2, `tabDelivery Note Packing Detail` t3, tabItem t4
+				`tabSales Order` t1, `tabSales Order Item` t2, `tabDelivery Note Packing Item` t3, tabItem t4
 			where 
 				t1.name = t2.parent and t1.name = t3.parent and t3.parenttype = 'Sales Order' and t1.docstatus = 1 and t2.item_code = t3.parent_item 
 				and t4.name = t3.item_code and  t1.status != 'Stopped' and t1.company = '%s' and ifnull(t2.qty, 0) > ifnull(t2.delivered_qty, 0) 
@@ -117,7 +117,7 @@
 			so_list.append(d.sales_order)
 		for r in open_so:
 			if cstr(r['name']) not in so_list:
-				pp_so = addchild(self.doc, 'pp_so_details', 'PP SO Detail', 1, self.doclist)
+				pp_so = addchild(self.doc, 'pp_so_details', 'Production Plan Sales Order', 1, self.doclist)
 				pp_so.sales_order = r['name']
 				pp_so.sales_order_date = cstr(r['transaction_date'])
 				pp_so.customer = cstr(r['customer'])
@@ -147,7 +147,7 @@
 				t0.name, t2.parent_item, t2.item_code, 
 				(t1.qty - ifnull(t1.delivered_qty,0)) * (ifnull(t2.qty,0) / ifnull(t1.qty,1)) as 'pending_qty' 
 			from
-				`tabSales Order` t0, `tabSales Order Detail` t1, `tabDelivery Note Packing Detail` t2, `tabItem` t3
+				`tabSales Order` t0, `tabSales Order Item` t1, `tabDelivery Note Packing Item` t2, `tabItem` t3
 			where 
 				t0.name = t1.parent and t0.name = t2.parent and t1.name = t2.parent_detail_docname
 				and t0.name in (%s) and t0.docstatus = 1 and t1.qty > ifnull(t1.delivered_qty,0) and t3.name = t2.item_code 
@@ -164,7 +164,7 @@
 
 		for p in packing_items:	
 			item_details = sql("select description, stock_uom, default_bom from tabItem where name=%s", p['item_code'])
-			pi = addchild(self.doc, 'pp_details', 'PP Detail', 1, self.doclist)
+			pi = addchild(self.doc, 'pp_details', 'Production Plan Item', 1, self.doclist)
 			pi.sales_order				= p['name']
 			pi.parent_packing_item		= p['parent_item']
 			pi.item_code				= p['item_code']
@@ -191,7 +191,7 @@
 		if not d.bom_no:
 			msgprint("Please enter bom no for item: %s at row no: %s" % (d.item_code, d.idx), raise_exception=1)
 		else:
-			bom = sql("""select name from `tabBill Of Materials` where item = %s and docstatus = 1 
+			bom = sql("""select name from `tabBOM` where item = %s and docstatus = 1 
 				and name = %s and ifnull(is_active, 'No') = 'Yes'""", (d.item_code, d.bom_no), as_dict = 1)
 			if not bom:
 				msgprint("""Incorrect BOM No: %s entered for item: %s at row no: %s
@@ -216,7 +216,7 @@
 				# so no childs of SA items
 				fl_bom_items = sql("""
 					select item_code, ifnull(sum(qty_consumed_per_unit), 0) * '%s', description, stock_uom 
-					from `tabBOM Material` 
+					from `tabBOM Item` 
 					where parent = '%s' and docstatus < 2 
 					group by item_code
 				""" % (flt(bom_dict[bom]), bom))
@@ -229,7 +229,7 @@
 					from 
 						( 
 							select distinct fb.name, fb.description, fb.item_code, fb.qty_consumed_per_unit, fb.stock_uom 
-							from `tabFlat BOM Detail` fb,`tabItem` it 
+							from `tabBOM Explosion Item` fb,`tabItem` it 
 							where it.name = fb.item_code and ifnull(it.is_pro_applicable, 'No') = 'No'
 							and ifnull(it.is_sub_contracted_item, 'No') = 'No' and fb.docstatus<2 and fb.parent=%s
 						) a
@@ -246,7 +246,7 @@
 
 
 	def get_csv(self):
-		item_list = [['Item Code', 'Description', 'Stock UOM', 'Required Qty', 'Indented Qty', 'Ordered Qty', 'Actual Qty']]
+		item_list = [['Item Code', 'Description', 'Stock UOM', 'Required Qty', 'Quantity Requested for Purchase', 'Ordered Qty', 'Actual Qty']]
 		for d in self.item_dict:
 			item_qty= sql("select sum(indented_qty), sum(ordered_qty), sum(actual_qty) from `tabBin` where item_code = %s", d)
 			item_list.append([d, self.item_dict[d][1], self.item_dict[d][2], self.item_dict[d][0], flt(item_qty[0][0]), flt(item_qty[0][1]), flt(item_qty[0][2])])
diff --git a/erpnext/production/doctype/production_planning_tool/production_planning_tool.txt b/erpnext/production/doctype/production_planning_tool/production_planning_tool.txt
index 14b0b75..9634f93 100644
--- a/erpnext/production/doctype/production_planning_tool/production_planning_tool.txt
+++ b/erpnext/production/doctype/production_planning_tool/production_planning_tool.txt
@@ -3,48 +3,48 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:14',
+		'creation': '2012-03-27 14:36:05',
 		'docstatus': 0,
-		'modified': '2012-01-10 16:26:10',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
+		'modified': '2012-03-27 14:36:05',
+		'modified_by': u'Administrator',
+		'owner': u'jai@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1326188323',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'_last_update': u'1326188323',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'in_create': 1,
 		'issingle': 1,
-		'module': 'Production',
+		'module': u'Production',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 1,
 		'version': 106
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Production Planning Tool',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Production Planning Tool',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Production Planning Tool',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Production Planning Tool',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -53,247 +53,266 @@
 	# DocType, Production Planning Tool
 	{
 		'doctype': 'DocType',
-		'name': 'Production Planning Tool'
+		'name': u'Production Planning Tool'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'Production User'
+		'doctype': u'DocPerm',
+		'role': u'Production User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'Production Manager'
+		'doctype': u'DocPerm',
+		'role': u'Production Manager'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Select Sales Orders'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'select_sales_orders',
+		'fieldtype': u'Section Break',
+		'label': u'Select Sales Orders'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'label': 'From Date'
+		'doctype': u'DocField',
+		'fieldname': u'from_date',
+		'fieldtype': u'Date',
+		'label': u'From Date'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'label': 'To Date'
+		'doctype': u'DocField',
+		'fieldname': u'to_date',
+		'fieldtype': u'Date',
+		'label': u'To Date'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fg_item',
-		'fieldtype': 'Link',
-		'label': 'FG Item',
-		'options': 'Item'
+		'doctype': u'DocField',
+		'fieldname': u'fg_item',
+		'fieldtype': u'Link',
+		'label': u'FG Item',
+		'options': u'Item'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'label': 'Customer',
-		'options': 'Customer'
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
+		'label': u'Customer',
+		'options': u'Customer'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'label': 'Company',
-		'options': 'Company',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'label': u'Company',
+		'options': u'Company',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'options': 'Simple'
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'options': u'Simple'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Get Sales Orders',
-		'options': 'get_open_sales_orders'
+		'doctype': u'DocField',
+		'fieldname': u'get_sales_orders',
+		'fieldtype': u'Button',
+		'label': u'Get Sales Orders',
+		'options': u'get_open_sales_orders'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Clear SO Table',
-		'options': 'clear_so_table',
-		'trigger': 'Client'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'clear_so_table',
+		'fieldtype': u'Button',
+		'label': u'Clear SO Table',
+		'options': u'clear_so_table',
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'options': 'Simple'
+		'doctype': u'DocField',
+		'fieldname': u'section_break1',
+		'fieldtype': u'Section Break',
+		'options': u'Simple'
 	},
 
 	# DocField
 	{
-		'description': 'Select Sales Orders from which you want to create Production Orders. You can get sales orders based on above criteria.',
-		'doctype': 'DocField',
-		'fieldname': 'pp_so_details',
-		'fieldtype': 'Table',
-		'label': 'PP SO Details',
-		'options': 'PP SO Detail'
+		'description': u'Select Sales Orders from which you want to create Production Orders. You can get sales orders based on above criteria.',
+		'doctype': u'DocField',
+		'fieldname': u'pp_so_details',
+		'fieldtype': u'Table',
+		'label': u'Production Plan Sales Orders',
+		'options': u'Production Plan Sales Order'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Items'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'items',
+		'fieldtype': u'Section Break',
+		'label': u'Items'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Get Items from SO',
-		'options': 'get_items_from_so'
+		'doctype': u'DocField',
+		'fieldname': u'get_items_from_so',
+		'fieldtype': u'Button',
+		'label': u'Get Items from SO',
+		'options': u'get_items_from_so'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break4',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Clear Item Table',
-		'options': 'clear_item_table',
-		'trigger': 'Client'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'clear_item_table',
+		'fieldtype': u'Button',
+		'label': u'Clear Item Table',
+		'options': u'clear_item_table',
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'options': 'Simple'
+		'doctype': u'DocField',
+		'fieldname': u'section_break2',
+		'fieldtype': u'Section Break',
+		'options': u'Simple'
 	},
 
 	# DocField
 	{
-		'description': 'Enter items and planned qty for which you want to raise production orders or download raw materials for analysis. You can pull items (which are pending to deliver) from SO as well by adding SO in plan.',
-		'doctype': 'DocField',
-		'fieldname': 'pp_details',
-		'fieldtype': 'Table',
-		'label': 'PP Details',
-		'options': 'PP Detail'
+		'description': u'Enter items and planned qty for which you want to raise production orders or download raw materials for analysis. You can pull items (which are pending to deliver) from SO as well by adding SO in plan.',
+		'doctype': u'DocField',
+		'fieldname': u'pp_details',
+		'fieldtype': u'Table',
+		'label': u'Production Plan Items',
+		'options': u'Production Plan Item'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'No',
-		'description': 'Select "Yes" if stock is maintained and tracked for sub assembly items.',
-		'doctype': 'DocField',
-		'fieldname': 'consider_sa_items',
-		'fieldtype': 'Select',
-		'label': 'Consider Sub Assemblies as Raw Material',
-		'options': 'No\nYes',
+		'colour': u'White:FFF',
+		'default': u'No',
+		'description': u'Select "Yes" if stock is maintained and tracked for sub assembly items.',
+		'doctype': u'DocField',
+		'fieldname': u'consider_sa_items',
+		'fieldtype': u'Select',
+		'label': u'Consider Sub Assemblies as Raw Material',
+		'options': u'No\nYes',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'options': 'Simple'
+		'doctype': u'DocField',
+		'fieldname': u'section_break3',
+		'fieldtype': u'Section Break',
+		'options': u'Simple'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break5',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Raise Production Order',
-		'options': 'raise_production_order'
+		'doctype': u'DocField',
+		'fieldname': u'raise_production_order',
+		'fieldtype': u'Button',
+		'label': u'Raise Production Order',
+		'options': u'raise_production_order'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break6',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Download Raw Material',
-		'trigger': 'Client'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'download_raw_material',
+		'fieldtype': u'Button',
+		'label': u'Download Raw Material',
+		'trigger': u'Client'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/production/doctype/update_delivery_date/__init__.py b/erpnext/production/doctype/update_delivery_date/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/update_delivery_date/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/update_delivery_date/update_delivery_date.js b/erpnext/production/doctype/update_delivery_date/update_delivery_date.js
deleted file mode 100644
index 394f76c..0000000
--- a/erpnext/production/doctype/update_delivery_date/update_delivery_date.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-//get query select Territory
-//=======================================================================================================================
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-  return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"  ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
-}
\ No newline at end of file
diff --git a/erpnext/production/doctype/update_delivery_date/update_delivery_date.py b/erpnext/production/doctype/update_delivery_date/update_delivery_date.py
deleted file mode 100644
index c7c2e48..0000000
--- a/erpnext/production/doctype/update_delivery_date/update_delivery_date.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self, d, dl):
-    self.doc, self.doclist = d, dl
-
-  def get_open_sales_order(self):
-    if not (self.doc.from_date and self.doc.to_date):
-      msgprint("From Date and To Date are Mandatory")
-      return
-    
-    cond = ''  
-    if self.doc.customer:
-      cond += " AND t1.customer = '%s' " % self.doc.customer
-    if self.doc.sales_order:
-      cond += " AND t1.name = '%s' " % self.doc.sales_order
-    if self.doc.territory:
-      cond += " AND t1.territory = '%s' " %self.doc.territory
-
-    dl = sql("select distinct t1.name, t1.customer,  t1.delivery_date, t1.territory, t1.rounded_total from `tabSales Order` t1, `tabSales Order Detail` t2 where  t1.transaction_date >= '%s' and t1.transaction_date <= '%s' and t1.docstatus=1 and t1.status != 'Completed' and t1.name = t2.parent and t2.docstatus =1 and t2.qty > t2.delivered_qty and (t2.confirmation_date is null or t2.confirmation_date= '' or t2.confirmation_date='0000-00-00') %s"% (self.doc.from_date, self.doc.to_date, cond)) 
-    self.doc.clear_table(self.doclist, 'entries')
-    count = 0 
-    for d in dl:
-      nl = addchild(self.doc, 'entries', 'Update Delivery Date Detail', 1, self.doclist)
-      nl.sales_order_no = str(d[0])
-      nl.customer = str(d[1])
-      nl.territory = str(d[3])
-      nl.rounded_total = str(d[4])
-      nl.delivery_date = str(d[2])
-      count = count +1
-    if not count:
-      msgprint("No Sales Order found as per filters set.")
-
-  def update_sales_order(self):
-    for d in getlist(self.doclist, 'entries'):
-      if d.confirmation_date:
-        sql("update `tabSales Order Detail` set confirmation_date = %s where parent = %s ", (d.confirmation_date, d.sales_order_no))
-    msgprint("Updated")
\ No newline at end of file
diff --git a/erpnext/production/doctype/update_delivery_date/update_delivery_date.txt b/erpnext/production/doctype/update_delivery_date/update_delivery_date.txt
deleted file mode 100644
index fcd62aa..0000000
--- a/erpnext/production/doctype/update_delivery_date/update_delivery_date.txt
+++ /dev/null
@@ -1,150 +0,0 @@
-# DocType, Update Delivery Date
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:29',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Update Delivery Date',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Update Delivery Date',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocType, Update Delivery Date
-	{
-		'doctype': 'DocType',
-		'name': 'Update Delivery Date'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'from_date',
-		'fieldtype': 'Date',
-		'idx': 1,
-		'label': 'From Date',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'to_date',
-		'fieldtype': 'Date',
-		'idx': 2,
-		'label': 'To Date',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'Customer',
-		'options': 'Customer'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_order',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Sales Order',
-		'options': 'Sales Order'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 5,
-		'label': 'Company',
-		'options': 'link:Company'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
-		'idx': 6,
-		'label': 'Territory',
-		'options': 'Territory',
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 7,
-		'label': 'Get Open Sales Order',
-		'options': 'get_open_sales_order'
-	},
-
-	# DocField
-	{
-		'default': 'No Toolbar',
-		'doctype': 'DocField',
-		'fieldname': 'entries',
-		'fieldtype': 'Table',
-		'idx': 8,
-		'label': 'Entries',
-		'options': 'Update Delivery Date Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 9,
-		'label': 'Update Sales Order',
-		'options': 'update_sales_order'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/update_delivery_date_detail/__init__.py b/erpnext/production/doctype/update_delivery_date_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/doctype/update_delivery_date_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/production/doctype/update_delivery_date_detail/update_delivery_date_detail.txt b/erpnext/production/doctype/update_delivery_date_detail/update_delivery_date_detail.txt
deleted file mode 100644
index 646a97e..0000000
--- a/erpnext/production/doctype/update_delivery_date_detail/update_delivery_date_detail.txt
+++ /dev/null
@@ -1,143 +0,0 @@
-# DocType, Update Delivery Date Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:29',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Production',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Update Delivery Date Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Update Delivery Date Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Update Delivery Date Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_order_no',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Sales Order No',
-		'oldfieldname': 'sales_order_no',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Order',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Customer',
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Data',
-		'options': 'Customer',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'city',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'City',
-		'oldfieldname': 'city',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'state',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'State',
-		'oldfieldname': 'state',
-		'oldfieldtype': 'Link',
-		'options': 'State',
-		'permlevel': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
-		'idx': 5,
-		'label': 'Territory',
-		'oldfieldname': 'territory',
-		'oldfieldtype': 'Link',
-		'options': 'Territory',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rounded_total',
-		'fieldtype': 'Data',
-		'idx': 6,
-		'label': 'Total Amount',
-		'oldfieldname': 'rounded_total',
-		'oldfieldtype': 'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_date',
-		'fieldtype': 'Date',
-		'idx': 7,
-		'label': 'Expected Delivery Date',
-		'oldfieldname': 'delivery_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'confirmation_date',
-		'fieldtype': 'Date',
-		'idx': 8,
-		'label': 'Confirmation Date',
-		'oldfieldname': 'confirmation_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/doctype/workstation/workstation.txt b/erpnext/production/doctype/workstation/workstation.txt
index dd0868d..999ce58 100644
--- a/erpnext/production/doctype/workstation/workstation.txt
+++ b/erpnext/production/doctype/workstation/workstation.txt
@@ -3,80 +3,80 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-03-27 14:36:05',
 		'docstatus': 0,
-		'modified': '2011-11-24 14:34:41',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 18:46:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1322125389',
+		'_last_update': u'1322125389',
 		'allow_email': 0,
 		'allow_trash': 1,
-		'autoname': 'field:workstation_name',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'autoname': u'field:workstation_name',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Production',
+		'document_type': u'Master',
+		'module': u'Production',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 13
+		'version': 14
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Workstation',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Workstation',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Workstation',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Workstation',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Workstation
 	{
 		'doctype': 'DocType',
-		'name': 'Workstation'
+		'name': u'Workstation'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Production User',
+		'role': u'Production User',
 		'write': 1
 	},
 
@@ -84,184 +84,186 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Production User',
+		'role': u'Production User',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Production Manager'
+		'role': u'Production Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Production User'
+		'role': u'Production User'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'workstation_name',
-		'fieldtype': 'Data',
-		'label': 'Workstation Name',
-		'oldfieldname': 'workstation_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'workstation_name',
+		'fieldtype': u'Data',
+		'label': u'Workstation Name',
+		'oldfieldname': u'workstation_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse',
-		'fieldtype': 'Link',
-		'label': 'Warehouse',
-		'oldfieldname': 'warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
+		'label': u'Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
 		'permlevel': 0,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'capacity',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'capacity',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'label': 'Capacity',
-		'oldfieldname': 'capacity',
-		'oldfieldtype': 'Data',
+		'label': u'Capacity',
+		'oldfieldname': u'capacity',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'capacity_units',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'capacity_units',
+		'fieldtype': u'Select',
 		'hidden': 1,
-		'label': 'Capacity Units',
-		'oldfieldname': 'capacity_units',
-		'oldfieldtype': 'Select',
-		'options': '\nUnits/Shifts\nUnits/Hour',
+		'label': u'Capacity Units',
+		'oldfieldname': u'capacity_units',
+		'oldfieldtype': u'Select',
+		'options': u'\nUnits/Shifts\nUnits/Hour',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'hour_rate_labour',
-		'fieldtype': 'Currency',
-		'label': 'Hour Rate Labour',
-		'oldfieldname': 'hour_rate_labour',
-		'oldfieldtype': 'Currency',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'hour_rate_labour',
+		'fieldtype': u'Currency',
+		'label': u'Hour Rate Labour',
+		'oldfieldname': u'hour_rate_labour',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Over Heads',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'over_heads',
+		'fieldtype': u'Section Break',
+		'label': u'Over Heads',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'hour_rate_electricity',
-		'fieldtype': 'Currency',
-		'label': 'Hour Rate Electricity',
-		'oldfieldname': 'hour_rate_electricity',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'hour_rate_electricity',
+		'fieldtype': u'Currency',
+		'label': u'Hour Rate Electricity',
+		'oldfieldname': u'hour_rate_electricity',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'hour_rate_consumable',
-		'fieldtype': 'Currency',
-		'label': 'Hour Rate Consumable',
-		'oldfieldname': 'hour_rate_consumable',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'hour_rate_consumable',
+		'fieldtype': u'Currency',
+		'label': u'Hour Rate Consumable',
+		'oldfieldname': u'hour_rate_consumable',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'hour_rate_rent',
-		'fieldtype': 'Currency',
-		'label': 'Hour Rate Rent',
-		'oldfieldname': 'hour_rate_rent',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'hour_rate_rent',
+		'fieldtype': u'Currency',
+		'label': u'Hour Rate Rent',
+		'oldfieldname': u'hour_rate_rent',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'overhead',
-		'fieldtype': 'Currency',
-		'label': 'Overhead',
-		'oldfieldname': 'overhead',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'overhead',
+		'fieldtype': u'Currency',
+		'label': u'Overhead',
+		'oldfieldname': u'overhead',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Hour Rate',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'hour_rate_section_break',
+		'fieldtype': u'Section Break',
+		'label': u'Hour Rate',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'hour_rate',
-		'fieldtype': 'Currency',
-		'label': 'Hour Rate',
-		'oldfieldname': 'hour_rate',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'hour_rate',
+		'fieldtype': u'Currency',
+		'label': u'Hour Rate',
+		'oldfieldname': u'hour_rate',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/production/page/bill_of_materials/bill_of_materials.js b/erpnext/production/page/bill_of_materials/bill_of_materials.js
index aba5666..7fcd6aa 100644
--- a/erpnext/production/page/bill_of_materials/bill_of_materials.js
+++ b/erpnext/production/page/bill_of_materials/bill_of_materials.js
@@ -489,7 +489,7 @@
     if(i==1) {
       var c = $a(this.tab.rows[0].cells[i], 'div', 'link_type', {overflow:'hidden', width:'100%'});
       c.bom_no = label[tree.col_details[i][3]]
-      c.onclick = function() { loaddoc("Bill Of Materials", this.bom_no); }
+      c.onclick = function() { loaddoc("BOM", this.bom_no); }
       c.innerHTML = label[tree.col_details[i][3]];
     }
     if(this.is_item == 1 && i > 1 && i < 6) {
diff --git a/erpnext/production/page/production_home/production_home.html b/erpnext/production/page/production_home/production_home.html
index 13e2468..b2762ad 100644
--- a/erpnext/production/page/production_home/production_home.html
+++ b/erpnext/production/page/production_home/production_home.html
@@ -10,7 +10,7 @@
 			<p class="help">Generate Purchase Requisition (MRP) and Production Orders</p>
 		</div>
 		<div style="width: 48%; float: right;">
-			<h4><a href="#!List/Bill Of Materials">Bill of Materials</a></h4>
+			<h4><a href="#!List/BOM">Bill of Materials</a></h4>
 			<p class="help">Bill of Materials (BOM) Master</p>
 			<h4><a href="#!List/Item">Item</a></h4>
 			<p class="help">Item Master</p>
diff --git a/erpnext/production/search_criteria/consumption_against_production/consumption_against_production.txt b/erpnext/production/search_criteria/consumption_against_production/consumption_against_production.txt
index a0da069..54d6a19 100644
--- a/erpnext/production/search_criteria/consumption_against_production/consumption_against_production.txt
+++ b/erpnext/production/search_criteria/consumption_against_production/consumption_against_production.txt
@@ -3,35 +3,35 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:32',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2010-06-11 16:32:48',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'jai@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': '`tabProduction Order`.consider_sa_items',
-		'add_cond': '`tabProduction Order`.name = `tabStock Entry`.production_order',
-		'add_tab': '`tabProduction Order`',
-		'columns': 'Stock Entry\x01ID,Stock Entry\x01Production Order,Stock Entry\x01Process,Stock Entry\x01Posting Date,Stock Entry\x01Company,Stock Entry Detail\x01Source Warehouse,Stock Entry Detail\x01Target Warehouse,Stock Entry Detail\x01FG Item,Stock Entry Detail\x01Item Code,Stock Entry Detail\x01Description,Stock Entry Detail\x01Reqd Qty,Stock Entry Detail\x01Transfer Quantity',
-		'criteria_name': 'Consumption Against Production',
-		'doc_type': 'Stock Entry Detail',
+		'add_col': u'`tabProduction Order`.consider_sa_items',
+		'add_cond': u'`tabProduction Order`.name = `tabStock Entry`.production_order',
+		'add_tab': u'`tabProduction Order`',
+		'columns': u'Stock Entry\x01ID,Stock Entry\x01Production Order,Stock Entry\x01Process,Stock Entry\x01Posting Date,Stock Entry\x01Company,Stock Entry Detail\x01Source Warehouse,Stock Entry Detail\x01Target Warehouse,Stock Entry Detail\x01FG Item,Stock Entry Detail\x01Item Code,Stock Entry Detail\x01Description,Stock Entry Detail\x01Reqd Qty,Stock Entry Detail\x01Transfer Quantity',
+		'criteria_name': u'Consumption Against Production',
+		'doc_type': u'Stock Entry Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Stock Entry\x01Submitted':1,'Stock Entry\x01Purpose':'Production Order','Stock Entry\x01Process':''}",
-		'module': 'Production',
+		'filters': u"{'Stock Entry\x01Submitted':1,'Stock Entry\x01Purpose':'Production Order','Stock Entry\x01Process':''}",
+		'module': u'Production',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Stock Entry',
-		'sort_by': '`tabStock Entry`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Stock Entry',
+		'sort_by': u'`tabStock Entry`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, consumption_against_production
 	{
 		'doctype': 'Search Criteria',
-		'name': 'consumption_against_production'
+		'name': u'consumption_against_production'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/production/search_criteria/delivery_plan/__init__.py b/erpnext/production/search_criteria/delivery_plan/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/production/search_criteria/delivery_plan/__init__.py
+++ /dev/null
diff --git a/erpnext/production/search_criteria/delivery_plan/delivery_plan.js b/erpnext/production/search_criteria/delivery_plan/delivery_plan.js
deleted file mode 100644
index 63d0da8..0000000
--- a/erpnext/production/search_criteria/delivery_plan/delivery_plan.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-
-  //to hide all filters
-  //this.hide_all_filters();
-
-  // to disable a filter from query set 
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Status'].df.ignore = 1;
-
-  // to unhide required filters
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Customer'].df.filter_hide = 0;
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Customer Name'].df.filter_hide = 0;
-  this.filter_fields_dict['Sales Order Detail'+FILTER_SEP +'From Confirmed Delivery Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Sales Order Detail'+FILTER_SEP +'To Confirmed Delivery Date'].df.filter_hide = 0;
-
-
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Company'].df['report_default'] = sys_defaults.company;
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Fiscal Year'].df['report_default'] = sys_defaults.fiscal_year;
-}
\ No newline at end of file
diff --git a/erpnext/production/search_criteria/delivery_plan/delivery_plan.txt b/erpnext/production/search_criteria/delivery_plan/delivery_plan.txt
deleted file mode 100644
index 683acb7..0000000
--- a/erpnext/production/search_criteria/delivery_plan/delivery_plan.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-# Search Criteria, delivery_plan
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-09-01 15:48:09',
-		'docstatus': 0,
-		'modified': '2010-08-30 14:06:22',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_col': "SUM(`tabSales Order Detail`.`pending_qty` * `tabSales Order Detail`.`basic_rate` ) AS 'Amount'",
-		'add_cond': "`tabSales Order Detail`.pending_qty > 0 and (`tabSales Order Detail`.confirmation_date is not null or `tabSales Order Detail`.confirmation_date!='' or `tabSales Order Detail`.confirmation_date != '00-00-0000')",
-		'columns': 'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Customer Name',
-		'criteria_name': 'Delivery Plan',
-		'doc_type': 'Sales Order Detail',
-		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
-		'group_by': '`tabSales Order Detail`.`confirmation_date`, `tabSales Order`.`name`',
-		'module': 'Production',
-		'name': '__common__',
-		'page_len': 50,
-		'parent_doc_type': 'Sales Order',
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, delivery_plan
-	{
-		'doctype': 'Search Criteria',
-		'name': 'delivery_plan'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt b/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt
index b861d17..6f0c3eb 100644
--- a/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt
+++ b/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:32',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-06-14 15:50:44',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'jai@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Stock Entry\x01ID,Stock Entry\x01Posting Date,Stock Entry\x01Production Order,Stock Entry\x01Process,Stock Entry\x01Company,Stock Entry Detail\x01Target Warehouse,Stock Entry Detail\x01Item Code,Stock Entry Detail\x01Description,Stock Entry Detail\x01Stock UOM,Stock Entry Detail\x01Transfer Quantity',
-		'criteria_name': 'Itemwise Production Report',
-		'doc_type': 'Stock Entry Detail',
+		'columns': u'Stock Entry\x01ID,Stock Entry\x01Posting Date,Stock Entry\x01Production Order,Stock Entry\x01Process,Stock Entry\x01Company,Stock Entry Detail\x01Target Warehouse,Stock Entry Detail\x01Item Code,Stock Entry Detail\x01Description,Stock Entry Detail\x01Stock UOM,Stock Entry Detail\x01Transfer Quantity',
+		'criteria_name': u'Itemwise Production Report',
+		'doc_type': u'Stock Entry Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Stock Entry\x01Saved':1,'Stock Entry\x01Submitted':1,'Stock Entry\x01Purpose':'Production Order','Stock Entry\x01Process':'Backflush','Stock Entry Detail\x01FG Item':1}",
-		'module': 'Production',
+		'filters': u"{'Stock Entry\x01Saved':1,'Stock Entry\x01Submitted':1,'Stock Entry\x01Purpose':'Production Order','Stock Entry\x01Process':'Backflush','Stock Entry Detail\x01FG Item':1}",
+		'module': u'Production',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Stock Entry',
-		'sort_by': '`tabStock Entry`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Stock Entry',
+		'sort_by': u'`tabStock Entry`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, itemwise_production_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'itemwise_production_report'
+		'name': u'itemwise_production_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt b/erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt
index a5fd27d..51eb1f4 100644
--- a/erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt
+++ b/erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-06-15 10:01:15',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'jai@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_cond': '`tabProduction Order`.qty > `tabProduction Order`.produced_qty',
-		'columns': 'Production Order\x01ID,Production Order\x01Origin,Production Order\x01Status,Production Order\x01Posting Date,Production Order\x01Production Item,Production Order\x01BOM No,Production Order\x01Description,Production Order\x01Stock UOM,Production Order\x01Qty,Production Order\x01Produced Qty,Production Order\x01FG Warehouse,Production Order\x01WIP Warehouse,Production Order\x01Consider SA Items,Production Order\x01Fiscal Year,Production Order\x01Company',
-		'criteria_name': 'Production Orders In Process',
-		'doc_type': 'Production Order',
+		'add_cond': u'`tabProduction Order`.qty > `tabProduction Order`.produced_qty',
+		'columns': u'Production Order\x01ID,Production Order\x01Origin,Production Order\x01Status,Production Order\x01Posting Date,Production Order\x01Production Item,Production Order\x01BOM No,Production Order\x01Description,Production Order\x01Stock UOM,Production Order\x01Qty,Production Order\x01Produced Qty,Production Order\x01FG Warehouse,Production Order\x01WIP Warehouse,Production Order\x01Consider SA Items,Production Order\x01Fiscal Year,Production Order\x01Company',
+		'criteria_name': u'Production Orders In Process',
+		'doc_type': u'Production Order',
 		'doctype': 'Search Criteria',
-		'filters': "{'Production Order\x01Submitted':1,'Production Order\x01Origin':'','Production Order\x01Status':'','Production Order\x01Consider SA Items':'','Production Order\x01Fiscal Year':''}",
-		'module': 'Production',
+		'filters': u"{'Production Order\x01Submitted':1,'Production Order\x01Origin':'','Production Order\x01Status':'','Production Order\x01Consider SA Items':'','Production Order\x01Fiscal Year':''}",
+		'module': u'Production',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabProduction Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabProduction Order`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, production_orders_in_process
 	{
 		'doctype': 'Search Criteria',
-		'name': 'production_orders_in_process'
+		'name': u'production_orders_in_process'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/Module Def/Projects/Projects.txt b/erpnext/projects/Module Def/Projects/Projects.txt
deleted file mode 100644
index f8cf6f7..0000000
--- a/erpnext/projects/Module Def/Projects/Projects.txt
+++ /dev/null
@@ -1,141 +0,0 @@
-[
-	{
-		'_last_update': '1300959287',
-		'creation': '2010-11-30 17:31:44',
-		'disabled': 'No',
-		'docstatus': 0,
-		'doctype': u'Module Def',
-		'doctype_list': None,
-		'file_list': 'undefined,undefined',
-		'idx': None,
-		'is_hidden': 'No',
-		'last_updated_date': '2011-03-10 15:57:47',
-		'modified': '2011-03-24 15:07:53',
-		'modified_by': 'Administrator',
-		'module_desc': '<div id="projects_div"></div>',
-		'module_icon': 'puzzle.png',
-		'module_label': 'Projects',
-		'module_name': 'Projects',
-		'module_page': None,
-		'module_seq': 2,
-		'name': 'Projects',
-		'owner': 'Administrator',
-		'parent': None,
-		'parentfield': None,
-		'parenttype': None,
-		'trash_reason': None,
-		'widget_code': None
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 17:31:44',
-		'description': None,
-		'display_name': 'Project',
-		'doc_name': 'Project',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 1,
-		'modified': '2011-03-24 15:07:53',
-		'modified_by': 'Administrator',
-		'name': 'MDI00099',
-		'owner': 'Administrator',
-		'parent': 'Projects',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': None,
-		'description': None,
-		'display_name': 'Task',
-		'doc_name': 'Ticket',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 2,
-		'modified': '2011-03-24 15:07:53',
-		'modified_by': 'Administrator',
-		'name': 'MDI00285',
-		'owner': None,
-		'parent': 'Projects',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': None,
-		'description': None,
-		'display_name': 'Gantt Chart',
-		'doc_name': 'Projects',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 3,
-		'modified': '2011-03-24 15:07:53',
-		'modified_by': 'Administrator',
-		'name': 'MDI00286',
-		'owner': None,
-		'parent': 'Projects',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': None,
-		'description': None,
-		'display_name': 'Timesheet',
-		'doc_name': 'Timesheet',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 4,
-		'modified': '2011-03-24 15:07:53',
-		'modified_by': 'Administrator',
-		'name': 'MDI00287',
-		'owner': None,
-		'parent': 'Projects',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'creation': '2010-11-30 17:31:44',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 1,
-		'modified': '2011-03-24 15:07:53',
-		'modified_by': 'Administrator',
-		'name': 'MDR00012',
-		'owner': 'Administrator',
-		'parent': 'Projects',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Projects User'
-	},
-	{
-		'creation': '2010-11-30 17:31:44',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 2,
-		'modified': '2011-03-24 15:07:53',
-		'modified_by': 'Administrator',
-		'name': 'MDR00013',
-		'owner': 'Administrator',
-		'parent': 'Projects',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'System Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/projects/Role/Projects User/Projects User.txt b/erpnext/projects/Role/Projects User/Projects User.txt
deleted file mode 100644
index 61a5a3b..0000000
--- a/erpnext/projects/Role/Projects User/Projects User.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Projects User
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-05-08 09:40:07',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Projects',
-		'name': '__common__',
-		'role_name': 'Projects User'
-	},
-
-	# Role, Projects User
-	{
-		'doctype': 'Role',
-		'name': 'Projects User'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/projects/__init__.py b/erpnext/projects/__init__.py
index e69de29..636248f 100644
--- a/erpnext/projects/__init__.py
+++ b/erpnext/projects/__init__.py
@@ -0,0 +1,3 @@
+install_docs = [
+	{"doctype":"Role", "name":"Projects User"},
+]
diff --git a/erpnext/projects/doctype/activity_type/activity_type.txt b/erpnext/projects/doctype/activity_type/activity_type.txt
index f366101..46ed917 100644
--- a/erpnext/projects/doctype/activity_type/activity_type.txt
+++ b/erpnext/projects/doctype/activity_type/activity_type.txt
@@ -3,76 +3,76 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-02-23 11:22:28',
+		'creation': '2012-03-27 14:36:05',
 		'docstatus': 0,
-		'modified': '2011-02-21 15:43:40',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:05',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'field:activity_type',
-		'colour': 'White:FFF',
+		'autoname': u'field:activity_type',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_dialog': 1,
-		'module': 'Projects',
+		'module': u'Projects',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 12
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'activity_type',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Activity Type',
+		'doctype': u'DocField',
+		'fieldname': u'activity_type',
+		'fieldtype': u'Data',
+		'label': u'Activity Type',
 		'name': '__common__',
-		'parent': 'Activity Type',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Activity Type',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# These values are common for all DocPerm
 	{
+		'amend': 0,
+		'cancel': 0,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Activity Type',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Activity Type',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
+		'submit': 0,
 		'write': 1
 	},
 
 	# DocType, Activity Type
 	{
 		'doctype': 'DocType',
-		'name': 'Activity Type'
+		'name': u'Activity Type'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Projects User'
+		'doctype': u'DocPerm',
+		'role': u'Projects User'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField'
+		'doctype': u'DocField'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/doctype/project/help.md b/erpnext/projects/doctype/project/help.md
new file mode 100644
index 0000000..0043f04
--- /dev/null
+++ b/erpnext/projects/doctype/project/help.md
@@ -0,0 +1,5 @@
+You can use projects to:
+
+1. Track budgets (Purchase Orders, Invoices).
+2. Track material consumption.
+3. Create and assign tasks (and view them on a Gantt Chart).
\ No newline at end of file
diff --git a/erpnext/projects/doctype/project/project.txt b/erpnext/projects/doctype/project/project.txt
index 3d57e12..527201e 100644
--- a/erpnext/projects/doctype/project/project.txt
+++ b/erpnext/projects/doctype/project/project.txt
@@ -3,96 +3,130 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:14',
+		'creation': '2012-03-27 14:36:05',
 		'docstatus': 0,
-		'modified': '2011-01-05 15:24:43',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:05',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1305714062',
+		'_last_update': u'1305714062',
+		'allow_attach': 1,
 		'allow_trash': 1,
-		'autoname': 'field:project_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:project_name',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Projects',
+		'document_type': u'Master',
+		'max_attachments': 4,
+		'module': u'Projects',
 		'name': '__common__',
-		'search_fields': 'customer, status, priority, is_active',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
-		'subject': ' ',
-		'tag_fields': 'status',
-		'version': 32
+		'search_fields': u'customer, status, priority, is_active',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'subject': u' ',
+		'tag_fields': u'status',
+		'version': 33
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Project',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Project',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Project',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'write': 1
+		'parent': u'Project',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
 	},
 
 	# DocType, Project
 	{
 		'doctype': 'DocType',
-		'name': 'Project'
+		'name': u'Project'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'All'
+		'amend': 0,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'All',
+		'submit': 0,
+		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Projects User'
+		'amend': 0,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Projects User',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Helps you keep track of your projects and links to Tasks. You can tag a task to a project to track its progress',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Basic Info',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'description': u'Helps you keep track of your projects and links to Tasks. You can tag a task to a project to track its progress',
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'description': 'Project will get saved and will be searchable with project name given',
-		'doctype': 'DocField',
-		'fieldname': 'project_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Project Name',
-		'oldfieldname': 'project_name',
-		'oldfieldtype': 'Data',
+		'description': u'Project will get saved and will be searchable with project name given',
+		'doctype': u'DocField',
+		'fieldname': u'project_name',
+		'fieldtype': u'Data',
+		'label': u'Project Name',
+		'no_copy': 0,
+		'oldfieldname': u'project_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'Open',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Status',
+		'no_copy': 1,
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'Open\nCompleted\nCancelled',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -100,17 +134,56 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Open',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'in_filter': 1,
-		'label': 'Status',
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': 'Open\nCompleted\nCancelled',
+		'doctype': u'DocField',
+		'fieldname': u'is_active',
+		'fieldtype': u'Select',
+		'label': u'Is Active',
+		'no_copy': 0,
+		'oldfieldname': u'is_active',
+		'oldfieldtype': u'Select',
+		'options': u'Yes\nNo',
+		'permlevel': 0,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'priority',
+		'fieldtype': u'Select',
+		'label': u'Priority',
+		'no_copy': 0,
+		'oldfieldname': u'priority',
+		'oldfieldtype': u'Select',
+		'options': u'Medium\nLow\nHigh',
+		'permlevel': 0,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'project_value',
+		'fieldtype': u'Currency',
+		'label': u'Project Value',
+		'no_copy': 0,
+		'oldfieldname': u'project_value',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'gross_margin_value',
+		'fieldtype': u'Currency',
+		'label': u'Gross Margin Value',
+		'no_copy': 0,
+		'oldfieldname': u'gross_margin_value',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -118,368 +191,338 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_active',
-		'fieldtype': 'Select',
-		'idx': 4,
-		'label': 'Is Active',
-		'oldfieldname': 'is_active',
-		'oldfieldtype': 'Select',
-		'options': 'Yes\nNo',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'priority',
-		'fieldtype': 'Select',
-		'idx': 5,
-		'label': 'Priority',
-		'oldfieldname': 'priority',
-		'oldfieldtype': 'Select',
-		'options': 'Medium\nLow\nHigh',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'project_value',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Project Value',
-		'oldfieldname': 'project_value',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'per_gross_margin',
+		'fieldtype': u'Currency',
+		'label': u'Gross Margin %',
+		'no_copy': 0,
+		'oldfieldname': u'per_gross_margin',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'gross_margin_value',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Gross Margin Value',
-		'oldfieldname': 'gross_margin_value',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'est_material_cost',
+		'fieldtype': u'Currency',
+		'label': u'Estimated Material Cost',
+		'no_copy': 0,
+		'oldfieldname': u'est_material_cost',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
-		'reqd': 1
+		'search_index': 0,
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'per_gross_margin',
-		'fieldtype': 'Currency',
-		'idx': 8,
-		'label': 'Gross Margin %',
-		'oldfieldname': 'per_gross_margin',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'project_type',
+		'fieldtype': u'Data',
+		'label': u'Project Type',
+		'no_copy': 0,
+		'oldfieldname': u'project_type',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
-		'reqd': 1
+		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'est_material_cost',
-		'fieldtype': 'Currency',
-		'idx': 9,
-		'label': 'Estimated Material Cost',
-		'oldfieldname': 'est_material_cost',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'project_type',
-		'fieldtype': 'Data',
-		'idx': 10,
-		'label': 'Project Type',
-		'oldfieldname': 'project_type',
-		'oldfieldtype': 'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'project_start_date',
-		'fieldtype': 'Date',
-		'idx': 11,
+		'doctype': u'DocField',
+		'fieldname': u'project_start_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Project Start Date',
-		'oldfieldname': 'project_start_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0
+		'label': u'Project Start Date',
+		'no_copy': 0,
+		'oldfieldname': u'project_start_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'completion_date',
-		'fieldtype': 'Date',
-		'idx': 12,
-		'label': 'Completion Date',
-		'oldfieldname': 'completion_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0
+		'doctype': u'DocField',
+		'fieldname': u'completion_date',
+		'fieldtype': u'Date',
+		'label': u'Completion Date',
+		'no_copy': 0,
+		'oldfieldname': u'completion_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'act_completion_date',
-		'fieldtype': 'Date',
-		'idx': 13,
-		'label': 'Actual Completion Date',
-		'oldfieldname': 'act_completion_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0
+		'doctype': u'DocField',
+		'fieldname': u'act_completion_date',
+		'fieldtype': u'Date',
+		'label': u'Actual Completion Date',
+		'no_copy': 0,
+		'oldfieldname': u'act_completion_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'idx': 14,
-		'label': 'Amended From',
+		'label': u'Amended From',
 		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
-		'print_hide': 0
+		'print_hide': 0,
+		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amemdment_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'amemdment_date',
+		'fieldtype': u'Date',
 		'hidden': 1,
-		'idx': 15,
-		'label': 'Amemdment Date',
+		'label': u'Amemdment Date',
 		'no_copy': 1,
-		'oldfieldname': 'amemdment_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1
+		'oldfieldname': u'amemdment_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 16,
-		'label': 'Project Details',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'project_details',
+		'fieldtype': u'Section Break',
+		'label': u'Project Details',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 17,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 18,
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'notes',
-		'fieldtype': 'Text Editor',
-		'idx': 19,
-		'label': 'Notes',
-		'oldfieldname': 'notes',
-		'oldfieldtype': 'Text Editor',
+		'doctype': u'DocField',
+		'fieldname': u'notes',
+		'fieldtype': u'Text Editor',
+		'label': u'Notes',
+		'no_copy': 0,
+		'oldfieldname': u'notes',
+		'oldfieldtype': u'Text Editor',
+		'permlevel': 0,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer_details',
+		'fieldtype': u'Section Break',
+		'label': u'Customer Details',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 20,
-		'label': 'Customer Details',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Select name of Customer to whom project belongs',
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'idx': 21,
+		'colour': u'White:FFF',
+		'description': u'Select name of Customer to whom project belongs',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Customer',
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Link',
-		'options': 'Customer',
+		'label': u'Customer',
+		'no_copy': 0,
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
-		'idx': 22,
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Customer Name',
-		'oldfieldname': 'customer_name',
-		'oldfieldtype': 'Data',
+		'label': u'Customer Name',
+		'no_copy': 0,
+		'oldfieldname': u'customer_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer_address',
+		'fieldtype': u'Small Text',
+		'label': u'Customer Address',
+		'no_copy': 0,
+		'oldfieldname': u'customer_address',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_address',
-		'fieldtype': 'Small Text',
-		'idx': 23,
-		'label': 'Customer Address',
-		'oldfieldname': 'customer_address',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'contact_person',
-		'fieldtype': 'Link',
-		'idx': 24,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'contact_person',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Contact Person',
-		'oldfieldname': 'contact_person',
-		'oldfieldtype': 'Link',
-		'permlevel': 0,
-		'reqd': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
-		'idx': 25,
-		'in_filter': 1,
-		'label': 'Territory',
-		'oldfieldname': 'territory',
-		'oldfieldtype': 'Link',
-		'options': 'Territory',
+		'label': u'Contact Person',
+		'no_copy': 0,
+		'oldfieldname': u'contact_person',
+		'oldfieldtype': u'Link',
 		'permlevel': 0,
 		'reqd': 0,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_no',
-		'fieldtype': 'Data',
-		'idx': 26,
-		'label': 'Contact No',
-		'oldfieldname': 'contact_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Territory',
+		'oldfieldname': u'territory',
+		'oldfieldtype': u'Link',
+		'options': u'Territory',
+		'permlevel': 0,
+		'reqd': 0,
+		'search_index': 0,
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'email_id',
-		'fieldtype': 'Data',
-		'idx': 27,
-		'label': 'Email Id',
-		'oldfieldname': 'email_id',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_group',
-		'fieldtype': 'Link',
-		'idx': 28,
-		'label': 'Customer Group',
-		'oldfieldname': 'customer_group',
-		'oldfieldtype': 'Link',
-		'options': 'Customer Group',
+		'doctype': u'DocField',
+		'fieldname': u'contact_no',
+		'fieldtype': u'Data',
+		'label': u'Contact No',
+		'no_copy': 0,
+		'oldfieldname': u'contact_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Important dates and commitments in your project life cycle',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 29,
-		'label': 'Milestones',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'email_id',
+		'fieldtype': u'Data',
+		'label': u'Email Id',
+		'no_copy': 0,
+		'oldfieldname': u'email_id',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer_group',
+		'fieldtype': u'Link',
+		'label': u'Customer Group',
+		'no_copy': 0,
+		'oldfieldname': u'customer_group',
+		'oldfieldtype': u'Link',
+		'options': u'Customer Group',
+		'permlevel': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Important dates and commitments in your project life cycle',
+		'doctype': u'DocField',
+		'fieldname': u'milestones',
+		'fieldtype': u'Section Break',
+		'label': u'Milestones',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'project_milestones',
-		'fieldtype': 'Table',
-		'idx': 30,
-		'label': 'Project Milestones',
-		'oldfieldname': 'project_milestones',
-		'oldfieldtype': 'Table',
-		'options': 'Project Milestone',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'hidden': 1,
-		'idx': 31,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'project_milestones',
+		'fieldtype': u'Table',
+		'label': u'Project Milestones',
+		'no_copy': 0,
+		'oldfieldname': u'project_milestones',
+		'oldfieldtype': u'Table',
+		'options': u'Project Milestone',
 		'permlevel': 0,
-		'print_hide': 1
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Trash Reason',
+		'no_copy': 0,
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Small Text',
+		'label': u'File List',
+		'no_copy': 1,
+		'permlevel': 0,
+		'search_index': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/doctype/project_activity/project_activity.js b/erpnext/projects/doctype/project_activity/project_activity.js
index ed2b1df..7da3976 100644
--- a/erpnext/projects/doctype/project_activity/project_activity.js
+++ b/erpnext/projects/doctype/project_activity/project_activity.js
@@ -55,7 +55,7 @@
       if (ci==0){ 
         var d1 = $a(cell,'div');
         var img = $a(cell,'img','',{width:'40px'});
-        set_user_img(img,d[ri][0])
+        img.src = wn.user_info(d[ri][0]).image;
         var d2 = $a(cell,'div');
         d2.innerHTML =  d[ri][0] + ' on: ' + date.str_to_user(d[ri][1]);
       }
@@ -88,7 +88,7 @@
     unhide_field(fl); }
 }
 
-cur_frm.cscript['Add'] = function(doc, dt, dn) {
+cur_frm.cscript.add = function(doc, dt, dn) {
   var callback = function(r,rt) {
     
     // refresh listing
diff --git a/erpnext/projects/doctype/project_activity/project_activity.txt b/erpnext/projects/doctype/project_activity/project_activity.txt
index d194131..5447165 100644
--- a/erpnext/projects/doctype/project_activity/project_activity.txt
+++ b/erpnext/projects/doctype/project_activity/project_activity.txt
@@ -3,173 +3,165 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:14',
+		'creation': '2012-03-27 14:36:06',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:06',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'Activity.######',
-		'colour': 'White:FFF',
+		'autoname': u'Activity.######',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'Projects',
+		'module': u'Projects',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 15
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Project Activity',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Project Activity',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Project Activity',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Project Activity',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'All',
+		'role': u'All',
 		'write': 1
 	},
 
 	# DocType, Project Activity
 	{
 		'doctype': 'DocType',
-		'name': 'Project Activity'
+		'name': u'Project Activity'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'project',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Project',
-		'oldfieldname': 'project',
-		'oldfieldtype': 'Link',
-		'options': 'Project'
+		'doctype': u'DocField',
+		'fieldname': u'project',
+		'fieldtype': u'Link',
+		'label': u'Project',
+		'oldfieldname': u'project',
+		'oldfieldtype': u'Link',
+		'options': u'Project'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'activity_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Activity Name',
-		'oldfieldname': 'activity_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'activity_name',
+		'fieldtype': u'Data',
+		'label': u'Activity Name',
+		'oldfieldname': u'activity_name',
+		'oldfieldtype': u'Data',
 		'print_hide': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'percent_complete',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'Percent Complete',
-		'oldfieldname': 'percent_complete',
-		'oldfieldtype': 'Select',
-		'options': '0\n5\n10\n15\n20\n25\n30\n35\n40\n45\n50\n55\n60\n65\n70\n75\n80\n85\n90\n95\n100',
+		'doctype': u'DocField',
+		'fieldname': u'percent_complete',
+		'fieldtype': u'Select',
+		'label': u'Percent Complete',
+		'oldfieldname': u'percent_complete',
+		'oldfieldtype': u'Select',
+		'options': u'0\n5\n10\n15\n20\n25\n30\n35\n40\n45\n50\n55\n60\n65\n70\n75\n80\n85\n90\n95\n100',
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'last_update',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'last_update',
+		'fieldtype': u'Date',
 		'hidden': 1,
-		'idx': 4,
-		'label': 'Last Update',
-		'oldfieldname': 'last_update',
-		'oldfieldtype': 'Date',
+		'label': u'Last Update',
+		'oldfieldname': u'last_update',
+		'oldfieldtype': u'Date',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'last_update_by',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'last_update_by',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'idx': 5,
-		'label': 'Last Update By',
-		'oldfieldname': 'last_update_by',
-		'oldfieldtype': 'Data',
+		'label': u'Last Update By',
+		'oldfieldname': u'last_update_by',
+		'oldfieldtype': u'Data',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 6,
-		'label': 'Updates',
-		'oldfieldtype': 'Section Break'
+		'doctype': u'DocField',
+		'fieldname': u'updates',
+		'fieldtype': u'Section Break',
+		'label': u'Updates',
+		'oldfieldtype': u'Section Break'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 7,
-		'label': 'Updates HTML',
-		'oldfieldtype': 'HTML'
+		'doctype': u'DocField',
+		'fieldname': u'updates_html',
+		'fieldtype': u'HTML',
+		'label': u'Updates HTML',
+		'oldfieldtype': u'HTML'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'new_update',
-		'fieldtype': 'Text',
-		'idx': 8,
-		'label': 'New Update',
-		'oldfieldname': 'new_update',
-		'oldfieldtype': 'Text'
+		'doctype': u'DocField',
+		'fieldname': u'new_update',
+		'fieldtype': u'Text',
+		'label': u'New Update',
+		'oldfieldname': u'new_update',
+		'oldfieldtype': u'Text'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'hours',
-		'fieldtype': 'Float',
-		'idx': 9,
-		'label': 'Hours',
-		'oldfieldname': 'hours',
-		'oldfieldtype': 'Float'
+		'doctype': u'DocField',
+		'fieldname': u'hours',
+		'fieldtype': u'Float',
+		'label': u'Hours',
+		'oldfieldname': u'hours',
+		'oldfieldtype': u'Float'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 10,
-		'label': 'Add',
-		'oldfieldtype': 'Button',
-		'trigger': 'Client'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'add',
+		'fieldtype': u'Button',
+		'label': u'Add',
+		'oldfieldtype': u'Button',
+		'trigger': u'Client'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/doctype/project_activity_update/project_activity_update.txt b/erpnext/projects/doctype/project_activity_update/project_activity_update.txt
index 5455de5..8155ccf 100644
--- a/erpnext/projects/doctype/project_activity_update/project_activity_update.txt
+++ b/erpnext/projects/doctype/project_activity_update/project_activity_update.txt
@@ -3,61 +3,59 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:15',
+		'creation': '2012-03-27 14:36:06',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:06',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Projects',
+		'module': u'Projects',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Project Activity Update',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Project Activity Update',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Project Activity Update
 	{
 		'doctype': 'DocType',
-		'name': 'Project Activity Update'
+		'name': u'Project Activity Update'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'update',
-		'fieldtype': 'Text',
-		'idx': 1,
-		'label': 'Update',
-		'oldfieldname': 'update',
-		'oldfieldtype': 'Text'
+		'doctype': u'DocField',
+		'fieldname': u'update',
+		'fieldtype': u'Text',
+		'label': u'Update',
+		'oldfieldname': u'update',
+		'oldfieldtype': u'Text'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'e.g. 0.5, 2.5 etc',
-		'doctype': 'DocField',
-		'fieldname': 'hours',
-		'fieldtype': 'Float',
-		'idx': 2,
-		'label': 'Hours',
-		'oldfieldname': 'hours',
-		'oldfieldtype': 'Float'
+		'colour': u'White:FFF',
+		'description': u'e.g. 0.5, 2.5 etc',
+		'doctype': u'DocField',
+		'fieldname': u'hours',
+		'fieldtype': u'Float',
+		'label': u'Hours',
+		'oldfieldname': u'hours',
+		'oldfieldtype': u'Float'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/doctype/project_control/project_control.py b/erpnext/projects/doctype/project_control/project_control.py
index a1fdf11..036ffb8 100644
--- a/erpnext/projects/doctype/project_control/project_control.py
+++ b/erpnext/projects/doctype/project_control/project_control.py
@@ -68,10 +68,10 @@
 		n_tasks = {}
 		
 		for p in pl:
-			t1 = sql('select count(*) from tabTicket where project=%s and docstatus!=2', p)[0][0]
+			t1 = sql('select count(*) from tabTask where project=%s and docstatus!=2', p)[0][0]
 			n_tasks[p] = t1 or 0
 			if t1:
-				t2 = sql('select count(*) from tabTicket where project=%s and docstatus!=2 and status="Closed"', p)[0][0]
+				t2 = sql('select count(*) from tabTask where project=%s and docstatus!=2 and status="Closed"', p)[0][0]
 				comp[p] = cint(flt(t2)*100/t1)
 		
 		return {'pl':pl, 'ml':ml, 'comp':comp, 'n_tasks':n_tasks, 'status':status}
@@ -80,15 +80,15 @@
 		ret = {}
 
 		# resource list
-		rl = sql("select distinct allocated_to, assignee_email from tabTicket")
+		rl = sql("select distinct allocated_to, assignee_email from tabTask")
 
 		# get open & closed tickets
 		for r in rl:
 			if r[0]:
 				ret[r[1]] = {}
 				ret[r[1]]['id'] = r[0]
-				ret[r[1]]['Total'] = sql("select count(*) from tabTicket where allocated_to=%s and docstatus!=2", r[0])[0][0]
-				ret[r[1]]['Closed'] = sql("select count(*) from tabTicket where allocated_to=%s and status='Closed' and docstatus!=2", r[0])[0][0]
+				ret[r[1]]['Total'] = sql("select count(*) from tabTask where allocated_to=%s and docstatus!=2", r[0])[0][0]
+				ret[r[1]]['Closed'] = sql("select count(*) from tabTask where allocated_to=%s and status='Closed' and docstatus!=2", r[0])[0][0]
 				ret[r[1]]['percent'] = cint(flt(ret[r[1]]['Closed']) * 100 / ret[r[1]]['Total'])
 
 		return ret
@@ -98,7 +98,7 @@
 
 	def get_init_data(self, arg=''):
 		pl = [p[0] for p in sql('select name from tabProject where docstatus != 2')]
-		rl = [p[0] for p in sql('select distinct allocated_to from tabTicket where docstatus != 2 and ifnull(allocated_to,"") != ""')]
+		rl = [p[0] for p in sql('select distinct allocated_to from tabTask where docstatus != 2 and ifnull(allocated_to,"") != ""')]
 		return {'pl':pl, 'rl':rl}
 
 	def get_tasks(self, arg):
@@ -113,7 +113,7 @@
 
 		tl = sql("""
 			select subject, allocated_to, project, exp_start_date, exp_end_date, priority, status, name
-			from tabTicket 
+			from tabTask 
 			where 
 				((exp_start_date between '%(st)s' and '%(end)s') or 
 				(exp_end_date between '%(st)s' and '%(end)s') or 
@@ -122,7 +122,7 @@
 		return convert_to_lists(tl)
 	
 	def declare_proj_completed(self, arg):
-		chk = sql("select name from `tabTicket` where project=%s and status='Open'", arg)
+		chk = sql("select name from `tabTask` where project=%s and status='Open'", arg)
 		if chk:
 			chk_lst = [x[0] for x in chk]
 			msgprint("Task(s) "+','.join(chk_lst)+" has staus 'Open'. Please submit all tasks against this project before closing the project.")
@@ -136,7 +136,7 @@
 	task_list = sql("""
 		select subject, allocated_to, project, exp_start_date, exp_end_date,
 			priority, status, name, senders_name, opening_date, review_date, description 
-		from tabTicket
+		from tabTask
 		where task_email_notify=1 
 			and sent_reminder=0 
 			and status='Open' 
@@ -157,5 +157,5 @@
 			<p>(This notification is autogenerated)</p>""" % i
 			sendmail(i['allocated_to'], sender='automail@webnotestech.com', msg=msg2,send_now=1, \
 				subject='A task has been assigned')
-			sql("update `tabTicket` set sent_reminder='1' where name='%(name)s' and allocated_to= '%(allocated_to)s'" % i)	
+			sql("update `tabTask` set sent_reminder='1' where name='%(name)s' and allocated_to= '%(allocated_to)s'" % i)	
 	
diff --git a/erpnext/projects/doctype/project_control/project_control.txt b/erpnext/projects/doctype/project_control/project_control.txt
index 9e1422d..76861cc 100644
--- a/erpnext/projects/doctype/project_control/project_control.txt
+++ b/erpnext/projects/doctype/project_control/project_control.txt
@@ -3,28 +3,28 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:15',
+		'creation': '2012-03-27 14:36:06',
 		'docstatus': 0,
-		'modified': '2010-12-23 10:43:22',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-03-27 14:36:06',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Projects',
+		'module': u'Projects',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 30
 	},
 
 	# DocType, Project Control
 	{
 		'doctype': 'DocType',
-		'name': 'Project Control'
+		'name': u'Project Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/doctype/project_milestone/project_milestone.txt b/erpnext/projects/doctype/project_milestone/project_milestone.txt
index 6d45a7c..6a7a4fb 100644
--- a/erpnext/projects/doctype/project_milestone/project_milestone.txt
+++ b/erpnext/projects/doctype/project_milestone/project_milestone.txt
@@ -3,72 +3,72 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:15',
+		'creation': '2012-03-27 14:36:06',
 		'docstatus': 0,
-		'modified': '2011-12-19 14:11:40',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:06',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Projects',
+		'module': u'Projects',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 4
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Project Milestone',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Project Milestone',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Project Milestone
 	{
 		'doctype': 'DocType',
-		'name': 'Project Milestone'
+		'name': u'Project Milestone'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'milestone_date',
-		'fieldtype': 'Date',
-		'label': 'Milestone Date',
-		'oldfieldname': 'milestone_date',
-		'oldfieldtype': 'Date'
+		'doctype': u'DocField',
+		'fieldname': u'milestone_date',
+		'fieldtype': u'Date',
+		'label': u'Milestone Date',
+		'oldfieldname': u'milestone_date',
+		'oldfieldtype': u'Date'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'milestone',
-		'fieldtype': 'Text',
-		'label': 'Milestone',
-		'oldfieldname': 'milestone',
-		'oldfieldtype': 'Text',
-		'width': '300px'
+		'doctype': u'DocField',
+		'fieldname': u'milestone',
+		'fieldtype': u'Text',
+		'label': u'Milestone',
+		'oldfieldname': u'milestone',
+		'oldfieldtype': u'Text',
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
-		'label': 'Status',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': 'Pending\nCompleted'
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'Pending\nCompleted'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/doctype/ticket/__init__.py b/erpnext/projects/doctype/task/__init__.py
similarity index 100%
rename from erpnext/projects/doctype/ticket/__init__.py
rename to erpnext/projects/doctype/task/__init__.py
diff --git a/erpnext/projects/doctype/task/task.js b/erpnext/projects/doctype/task/task.js
new file mode 100644
index 0000000..c88382b
--- /dev/null
+++ b/erpnext/projects/doctype/task/task.js
@@ -0,0 +1,122 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+cur_frm.cscript.onload = function(doc,cdt,cdn){
+  if(!doc.senders_name) {  
+    doc.senders_name = user_fullname;
+    doc.senders_email = user;
+    refresh_many(['senders_name', 'senders_email']);
+  }
+
+  if(doc.__islocal) {
+    doc.status = 'Open';
+    doc.opening_date = get_today();
+    refresh_many(['status', 'opening_date']);
+  }
+  else{
+    if(!doc.opening_date){
+      doc.opening_date = dateutil.str_to_user(only_date(doc.creation));
+      refresh_field('opening_date');      
+    }
+  }  
+  
+  //hide unhide field depends on status
+  if(doc.status == 'Open') doc.review_date = doc.closing_date = '';
+  else if(doc.status == 'Pending Review') doc.closing_date = '';
+  refresh_many(['closing_date','review_date']); 
+
+  if(doc.project) cur_frm.cscript.project(doc, cdt, cdn);  
+}
+
+cur_frm.cscript.refresh = function(doc,cdt,cdn) {
+  cur_frm.clear_custom_buttons();
+  if(doc.status == 'Pending Review' && (doc.senders_name == user_fullname || doc.senders_email == user)) {
+    cur_frm.add_custom_button('Declare Completed', cur_frm.cscript.declare_completed);
+    cur_frm.add_custom_button('Reopen Task', cur_frm.cscript['Reopen Task']);
+  }
+  if(doc.status == 'Open' && !doc.__islocal) {
+    cur_frm.add_custom_button('Cancel Task', cur_frm.cscript['Cancel Task']);
+    if(doc.allocated_to == user) cur_frm.add_custom_button('Get Approval', cur_frm.cscript['Get Approval']);
+  }
+}
+
+cur_frm.fields_dict['project'].get_query = function(doc,cdt,cdn){
+  var cond='';
+  if(doc.customer) cond = 'ifnull(`tabProject`.customer, "") = "'+doc.customer+'" AND';
+  
+  return repl('SELECT distinct `tabProject`.`name` FROM `tabProject` WHERE %(cond)s `tabProject`.`name` LIKE "%s" ORDER BY `tabProject`.`name` ASC LIMIT 50', {cond:cond});
+}
+
+
+cur_frm.cscript.project = function(doc, cdt, cdn){
+  if(doc.project) get_server_fields('get_project_details', '','', doc, cdt, cdn, 1);
+}
+
+cur_frm.fields_dict['customer'].get_query = function(doc,cdt,cdn){
+  var cond='';
+  if(doc.project) cond = 'ifnull(`tabProject`.customer, "") = `tabCustomer`.name AND ifnull(`tabProject`.name, "") = "'+doc.project+'" AND';
+  
+  return repl('SELECT distinct `tabCustomer`.`name` FROM `tabCustomer`, `tabProject` WHERE %(cond)s `tabCustomer`.`name` LIKE "%s" ORDER BY `tabCustomer`.`name` ASC LIMIT 50', {cond:cond});
+}
+
+cur_frm.cscript.customer = function(doc, cdt, cdn){
+  if(doc.customer) get_server_fields('get_customer_details', '','', doc, cdt, cdn, 1);
+  else doc.customer_name ='';
+}
+
+cur_frm.cscript.allocated_to = function(doc,cdt,cdn){
+  get_server_fields('get_allocated_to_name','','',doc,cdt,cdn,1);
+}
+
+cur_frm.cscript['Get Approval'] = function(){
+  $c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name), 'set_for_review', '',function(r, rt) {
+    if(r.message == 'true'){
+      doc.status = 'Pending Review'; //for refresh
+      refresh_many(['review_date','status']);
+      cur_frm.cscript.refresh(cur_frm.doc, cur_frm.doc.doctype, cur_frm.doc.name);
+    }
+  });  
+}
+
+cur_frm.cscript['Reopen Task'] = function(){
+  $c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name), 'reopen_task', '',function(r, rt) {
+    if(r.message == 'true'){
+      doc.status = 'Open'; //for refresh
+      refresh_many(['status']);
+      cur_frm.cscript.refresh(cur_frm.doc, cur_frm.doc.doctype, cur_frm.doc.name);
+    }
+  });  
+}
+
+cur_frm.cscript['Cancel Task'] = function(){
+  $c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name), 'cancel_task', '',function(r, rt) {
+    if(r.message == 'true'){
+      doc.status = 'Cancelled'; //for refresh
+      refresh_many(['status']);
+      cur_frm.cscript.refresh(cur_frm.doc, cur_frm.doc.doctype, cur_frm.doc.name);
+    }
+  });  
+}
+
+cur_frm.cscript.declare_completed = function(){
+  $c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name),'declare_completed', '',function(r, rt) {
+    if(r.message == 'true'){
+      doc.status = 'Closed'; //for refresh
+      refresh_many(['review_date', 'closing_date', 'status']);
+      cur_frm.cscript.refresh(cur_frm.doc, cur_frm.doc.doctype, cur_frm.doc.name);
+    }
+  });  
+}
\ No newline at end of file
diff --git a/erpnext/projects/doctype/ticket/ticket.py b/erpnext/projects/doctype/task/task.py
similarity index 100%
rename from erpnext/projects/doctype/ticket/ticket.py
rename to erpnext/projects/doctype/task/task.py
diff --git a/erpnext/projects/doctype/task/task.txt b/erpnext/projects/doctype/task/task.txt
new file mode 100644
index 0000000..8110719
--- /dev/null
+++ b/erpnext/projects/doctype/task/task.txt
@@ -0,0 +1,561 @@
+# DocType, Task
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:06',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:06',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1324880734',
+		'allow_trash': 1,
+		'autoname': u'TIC/.####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'document_type': u'Master',
+		'module': u'Projects',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'subject': u'%(subject)s',
+		'tag_fields': u'status',
+		'version': 254
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Task',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Task',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Task
+	{
+		'doctype': 'DocType',
+		'name': u'Task'
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'All',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Projects User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Projects User'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'task_details',
+		'fieldtype': u'Section Break',
+		'label': u'Task Details',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0,
+		'search_index': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'subject',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Subject',
+		'oldfieldname': u'subject',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
+		'label': u'Status',
+		'no_copy': 1,
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'Open\nPending Review\nClosed\nCancelled',
+		'permlevel': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'opening_date',
+		'fieldtype': u'Date',
+		'label': u'Creation Date',
+		'oldfieldname': u'opening_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.status == "Closed" || doc.status == "Pending Review"',
+		'doctype': u'DocField',
+		'fieldname': u'review_date',
+		'fieldtype': u'Date',
+		'hidden': 1,
+		'label': u'Review Date',
+		'oldfieldname': u'review_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.status == "Closed"',
+		'doctype': u'DocField',
+		'fieldname': u'closing_date',
+		'fieldtype': u'Date',
+		'hidden': 1,
+		'label': u'Closing Date',
+		'oldfieldname': u'closing_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'priority',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Priority',
+		'oldfieldname': u'priority',
+		'oldfieldtype': u'Select',
+		'options': u'Low\nMedium\nHigh\nUrgent',
+		'permlevel': 0,
+		'reqd': 0,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'project',
+		'fieldtype': u'Link',
+		'label': u'Project',
+		'oldfieldname': u'project',
+		'oldfieldtype': u'Link',
+		'options': u'Project',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
+		'label': u'Customer',
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
+		'label': u'Customer Name',
+		'oldfieldname': u'customer_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'allocated_to_old',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Allocated To Old',
+		'no_copy': 1,
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'allocated_to',
+		'fieldtype': u'Link',
+		'label': u'Allocated To',
+		'oldfieldname': u'allocated_to',
+		'oldfieldtype': u'Link',
+		'options': u'Profile',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'task_email_notify',
+		'fieldtype': u'Check',
+		'label': u'Sent Mail Notification',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'allocated_to_name',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Allocated To Name',
+		'oldfieldname': u'allocated_to_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sent_reminder',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Sent Reminder',
+		'no_copy': 1,
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'senders_name',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Raised By',
+		'oldfieldname': u'senders_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'senders_email',
+		'fieldtype': u'Data',
+		'label': u'Email',
+		'oldfieldname': u'senders_email',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'senders_contact_no',
+		'fieldtype': u'Data',
+		'label': u'Senders Contact No',
+		'oldfieldname': u'senders_contact_no',
+		'oldfieldtype': u'Data',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'senders_company',
+		'fieldtype': u'Data',
+		'label': u'Senders Company',
+		'oldfieldname': u'senders_company',
+		'oldfieldtype': u'Data',
+		'permlevel': 0
+	},
+	
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'external_or_internal',
+		'fieldtype': u'Select',
+		'label': u'External or Internal',
+		'oldfieldname': u'external_or_internal',
+		'oldfieldtype': u'Select',
+		'options': u'External\nInternal',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Amended From',
+		'no_copy': 1,
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'hidden': 1,
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text Editor',
+		'label': u'Details',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text Editor',
+		'permlevel': 0,
+		'reqd': 0,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'first_creation_flag',
+		'fieldtype': u'Int',
+		'hidden': 1,
+		'in_filter': 0,
+		'label': u'First Creation Flag',
+		'no_copy': 1,
+		'oldfieldname': u'first_creation_flag',
+		'oldfieldtype': u'Int',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'second_creation_flag',
+		'fieldtype': u'Int',
+		'hidden': 1,
+		'label': u'Second Creation Flag',
+		'no_copy': 1,
+		'oldfieldname': u'second_creation_flag',
+		'oldfieldtype': u'Int',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'time_and_budget',
+		'fieldtype': u'Section Break',
+		'label': u'Time and Budget',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'expected',
+		'fieldtype': u'Column Break',
+		'label': u'Expected',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'exp_start_date',
+		'fieldtype': u'Date',
+		'label': u'Expected Start Date',
+		'oldfieldname': u'exp_start_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'exp_end_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Expected End Date',
+		'oldfieldname': u'exp_end_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 0,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'exp_total_hrs',
+		'fieldtype': u'Data',
+		'label': u'Total Hours (Expected)',
+		'oldfieldname': u'exp_total_hrs',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'allocated_budget',
+		'fieldtype': u'Currency',
+		'label': u'Allocated Budget',
+		'oldfieldname': u'allocated_budget',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'actual',
+		'fieldtype': u'Column Break',
+		'label': u'Actual',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'act_start_date',
+		'fieldtype': u'Date',
+		'label': u'Actual Start Date',
+		'oldfieldname': u'act_start_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'act_end_date',
+		'fieldtype': u'Date',
+		'label': u'Actual End Date',
+		'oldfieldname': u'act_end_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'act_total_hrs',
+		'fieldtype': u'Data',
+		'label': u'Total Hours (Actual)',
+		'oldfieldname': u'act_total_hrs',
+		'oldfieldtype': u'Data',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'actual_budget',
+		'fieldtype': u'Currency',
+		'label': u'Actual Budget',
+		'oldfieldname': u'actual_budget',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0
+	}
+]
diff --git a/erpnext/projects/doctype/ticket/ticket.js b/erpnext/projects/doctype/ticket/ticket.js
deleted file mode 100644
index 322b8a1..0000000
--- a/erpnext/projects/doctype/ticket/ticket.js
+++ /dev/null
@@ -1,122 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-cur_frm.cscript.onload = function(doc,cdt,cdn){
-  if(!doc.senders_name) {  
-    doc.senders_name = user_fullname;
-    doc.senders_email = user;
-    refresh_many(['senders_name', 'senders_email']);
-  }
-
-  if(doc.__islocal) {
-    doc.status = 'Open';
-    doc.opening_date = get_today();
-    refresh_many(['status', 'opening_date']);
-  }
-  else{
-    if(!doc.opening_date){
-      doc.opening_date = dateutil.str_to_user(only_date(doc.creation));
-      refresh_field('opening_date');      
-    }
-  }  
-  
-  //hide unhide field depends on status
-  if(doc.status == 'Open') doc.review_date = doc.closing_date = '';
-  else if(doc.status == 'Pending Review') doc.closing_date = '';
-  refresh_many(['closing_date','review_date']); 
-
-  if(doc.project) cur_frm.cscript.project(doc, cdt, cdn);  
-}
-
-cur_frm.cscript.refresh = function(doc,cdt,cdn) {
-  cur_frm.clear_custom_buttons();
-  if(doc.status == 'Pending Review' && (doc.senders_name == user_fullname || doc.senders_email == user)) {
-    cur_frm.add_custom_button('Declare Completed', cur_frm.cscript['Declare Completed']);
-    cur_frm.add_custom_button('Reopen Task', cur_frm.cscript['Reopen Task']);
-  }
-  if(doc.status == 'Open' && !doc.__islocal) {
-    cur_frm.add_custom_button('Cancel Task', cur_frm.cscript['Cancel Task']);
-    if(doc.allocated_to == user) cur_frm.add_custom_button('Get Approval', cur_frm.cscript['Get Approval']);
-  }
-}
-
-cur_frm.fields_dict['project'].get_query = function(doc,cdt,cdn){
-  var cond='';
-  if(doc.customer) cond = 'ifnull(`tabProject`.customer, "") = "'+doc.customer+'" AND';
-  
-  return repl('SELECT distinct `tabProject`.`name` FROM `tabProject` WHERE %(cond)s `tabProject`.`name` LIKE "%s" ORDER BY `tabProject`.`name` ASC LIMIT 50', {cond:cond});
-}
-
-
-cur_frm.cscript.project = function(doc, cdt, cdn){
-  if(doc.project) get_server_fields('get_project_details', '','', doc, cdt, cdn, 1);
-}
-
-cur_frm.fields_dict['customer'].get_query = function(doc,cdt,cdn){
-  var cond='';
-  if(doc.project) cond = 'ifnull(`tabProject`.customer, "") = `tabCustomer`.name AND ifnull(`tabProject`.name, "") = "'+doc.project+'" AND';
-  
-  return repl('SELECT distinct `tabCustomer`.`name` FROM `tabCustomer`, `tabProject` WHERE %(cond)s `tabCustomer`.`name` LIKE "%s" ORDER BY `tabCustomer`.`name` ASC LIMIT 50', {cond:cond});
-}
-
-cur_frm.cscript.customer = function(doc, cdt, cdn){
-  if(doc.customer) get_server_fields('get_customer_details', '','', doc, cdt, cdn, 1);
-  else doc.customer_name ='';
-}
-
-cur_frm.cscript.allocated_to = function(doc,cdt,cdn){
-  get_server_fields('get_allocated_to_name','','',doc,cdt,cdn,1);
-}
-
-cur_frm.cscript['Get Approval'] = function(){
-  $c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name), 'set_for_review', '',function(r, rt) {
-    if(r.message == 'true'){
-      doc.status = 'Pending Review'; //for refresh
-      refresh_many(['review_date','status']);
-      cur_frm.cscript.refresh(cur_frm.doc, cur_frm.doc.doctype, cur_frm.doc.name);
-    }
-  });  
-}
-
-cur_frm.cscript['Reopen Task'] = function(){
-  $c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name), 'reopen_task', '',function(r, rt) {
-    if(r.message == 'true'){
-      doc.status = 'Open'; //for refresh
-      refresh_many(['status']);
-      cur_frm.cscript.refresh(cur_frm.doc, cur_frm.doc.doctype, cur_frm.doc.name);
-    }
-  });  
-}
-
-cur_frm.cscript['Cancel Task'] = function(){
-  $c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name), 'cancel_task', '',function(r, rt) {
-    if(r.message == 'true'){
-      doc.status = 'Cancelled'; //for refresh
-      refresh_many(['status']);
-      cur_frm.cscript.refresh(cur_frm.doc, cur_frm.doc.doctype, cur_frm.doc.name);
-    }
-  });  
-}
-
-cur_frm.cscript['Declare Completed'] = function(){
-  $c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name),'declare_completed', '',function(r, rt) {
-    if(r.message == 'true'){
-      doc.status = 'Closed'; //for refresh
-      refresh_many(['review_date', 'closing_date', 'status']);
-      cur_frm.cscript.refresh(cur_frm.doc, cur_frm.doc.doctype, cur_frm.doc.name);
-    }
-  });  
-}
\ No newline at end of file
diff --git a/erpnext/projects/doctype/ticket/ticket.txt b/erpnext/projects/doctype/ticket/ticket.txt
deleted file mode 100644
index 5b8da14..0000000
--- a/erpnext/projects/doctype/ticket/ticket.txt
+++ /dev/null
@@ -1,576 +0,0 @@
-# DocType, Ticket
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-01-28 17:52:35',
-		'docstatus': 0,
-		'modified': '2011-12-26 11:56:35',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1324880734',
-		'allow_trash': 1,
-		'autoname': 'TIC/.####',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Projects',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'subject': '%(subject)s',
-		'tag_fields': 'status',
-		'version': 254
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Ticket',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Ticket',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1,
-		'submit': 0
-	},
-
-	# DocType, Ticket
-	{
-		'doctype': 'DocType',
-		'name': 'Ticket'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Projects User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'All',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'All',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Projects User',
-		'write': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Task Details',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0,
-		'search_index': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'subject',
-		'fieldtype': 'Data',
-		'in_filter': 1,
-		'label': 'Subject',
-		'oldfieldname': 'subject',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
-		'label': 'Status',
-		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': 'Open\nPending Review\nClosed\nCancelled',
-		'permlevel': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'opening_date',
-		'fieldtype': 'Date',
-		'label': 'Creation Date',
-		'oldfieldname': 'opening_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:doc.status == "Closed" || doc.status == "Pending Review"',
-		'doctype': 'DocField',
-		'fieldname': 'review_date',
-		'fieldtype': 'Date',
-		'hidden': 1,
-		'label': 'Review Date',
-		'oldfieldname': 'review_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:doc.status == "Closed"',
-		'doctype': 'DocField',
-		'fieldname': 'closing_date',
-		'fieldtype': 'Date',
-		'hidden': 1,
-		'label': 'Closing Date',
-		'oldfieldname': 'closing_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'priority',
-		'fieldtype': 'Select',
-		'in_filter': 1,
-		'label': 'Priority',
-		'oldfieldname': 'priority',
-		'oldfieldtype': 'Select',
-		'options': 'Low\nMedium\nHigh\nUrgent',
-		'permlevel': 0,
-		'reqd': 0,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'project',
-		'fieldtype': 'Link',
-		'label': 'Project',
-		'oldfieldname': 'project',
-		'oldfieldtype': 'Link',
-		'options': 'Project',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'label': 'Customer',
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Link',
-		'options': 'Customer',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
-		'label': 'Customer Name',
-		'oldfieldname': 'customer_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'allocated_to_old',
-		'fieldtype': 'Link',
-		'hidden': 1,
-		'label': 'Allocated To Old',
-		'no_copy': 1,
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'allocated_to',
-		'fieldtype': 'Link',
-		'label': 'Allocated To',
-		'oldfieldname': 'allocated_to',
-		'oldfieldtype': 'Link',
-		'options': 'Profile',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'task_email_notify',
-		'fieldtype': 'Check',
-		'label': 'Sent Mail Notification',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'allocated_to_name',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'label': 'Allocated To Name',
-		'oldfieldname': 'allocated_to_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'sent_reminder',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'label': 'Sent Reminder',
-		'no_copy': 1,
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'senders_name',
-		'fieldtype': 'Data',
-		'in_filter': 1,
-		'label': 'Raised By',
-		'oldfieldname': 'senders_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'senders_email',
-		'fieldtype': 'Data',
-		'label': 'Email',
-		'oldfieldname': 'senders_email',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'senders_contact_no',
-		'fieldtype': 'Data',
-		'label': 'Senders Contact No',
-		'oldfieldname': 'senders_contact_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'senders_company',
-		'fieldtype': 'Data',
-		'label': 'Senders Company',
-		'oldfieldname': 'senders_company',
-		'oldfieldtype': 'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'category',
-		'fieldtype': 'Link',
-		'label': 'Category',
-		'oldfieldname': 'category',
-		'oldfieldtype': 'Link',
-		'options': 'Ticket Category',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'external_or_internal',
-		'fieldtype': 'Select',
-		'label': 'External or Internal',
-		'oldfieldname': 'external_or_internal',
-		'oldfieldtype': 'Select',
-		'options': 'External\nInternal',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'label': 'Amended From',
-		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'hidden': 1,
-		'label': 'Amendment Date',
-		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text Editor',
-		'label': 'Details',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text Editor',
-		'permlevel': 0,
-		'reqd': 0,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'first_creation_flag',
-		'fieldtype': 'Int',
-		'hidden': 1,
-		'in_filter': 0,
-		'label': 'First Creation Flag',
-		'no_copy': 1,
-		'oldfieldname': 'first_creation_flag',
-		'oldfieldtype': 'Int',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'second_creation_flag',
-		'fieldtype': 'Int',
-		'hidden': 1,
-		'label': 'Second Creation Flag',
-		'no_copy': 1,
-		'oldfieldname': 'second_creation_flag',
-		'oldfieldtype': 'Int',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Time and Budget',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'label': 'Expected',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'exp_start_date',
-		'fieldtype': 'Date',
-		'label': 'Expected Start Date',
-		'oldfieldname': 'exp_start_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'exp_end_date',
-		'fieldtype': 'Date',
-		'in_filter': 1,
-		'label': 'Expected End Date',
-		'oldfieldname': 'exp_end_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'reqd': 0,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'exp_total_hrs',
-		'fieldtype': 'Data',
-		'label': 'Total Hours (Expected)',
-		'oldfieldname': 'exp_total_hrs',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'allocated_budget',
-		'fieldtype': 'Currency',
-		'label': 'Allocated Budget',
-		'oldfieldname': 'allocated_budget',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'label': 'Actual',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'act_start_date',
-		'fieldtype': 'Date',
-		'label': 'Actual Start Date',
-		'oldfieldname': 'act_start_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'act_end_date',
-		'fieldtype': 'Date',
-		'label': 'Actual End Date',
-		'oldfieldname': 'act_end_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'act_total_hrs',
-		'fieldtype': 'Data',
-		'label': 'Total Hours (Actual)',
-		'oldfieldname': 'act_total_hrs',
-		'oldfieldtype': 'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'actual_budget',
-		'fieldtype': 'Currency',
-		'label': 'Actual Budget',
-		'oldfieldname': 'actual_budget',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/projects/doctype/timesheet/timesheet.js b/erpnext/projects/doctype/timesheet/timesheet.js
index a49b5a1..81f0420 100644
--- a/erpnext/projects/doctype/timesheet/timesheet.js
+++ b/erpnext/projects/doctype/timesheet/timesheet.js
@@ -28,9 +28,9 @@
   var cond=cond1='';
   var d = locals[cdt][cdn];
   //if(d.customer_name) cond = 'ifnull(`tabProject`.customer_name, "") = "'+d.customer_name+'" AND';
-  if(d.task_id) cond1 = 'ifnull(`tabTicket`.project, "") = `tabProject`.name AND `tabTicket`.name = "'+d.task_id+'" AND';
+  if(d.task_id) cond1 = 'ifnull(`tabTask`.project, "") = `tabProject`.name AND `tabTask`.name = "'+d.task_id+'" AND';
   
-  return repl('SELECT distinct `tabProject`.`name` FROM `tabProject`, `tabTicket` WHERE %(cond1)s `tabProject`.`name` LIKE "%s" ORDER BY `tabProject`.`name` ASC LIMIT 50', {cond1:cond1});
+  return repl('SELECT distinct `tabProject`.`name` FROM `tabProject`, `tabTask` WHERE %(cond1)s `tabProject`.`name` LIKE "%s" ORDER BY `tabProject`.`name` ASC LIMIT 50', {cond1:cond1});
 }
 
 cur_frm.cscript.task_name = function(doc, cdt, cdn){
@@ -41,7 +41,7 @@
 cur_frm.fields_dict['timesheet_details'].grid.get_field("task_name").get_query = function(doc,cdt,cdn){
   var cond='';
   var d = locals[cdt][cdn];
-  if(d.project_name) cond = 'ifnull(`tabTicket`.project, "") = "'+d.project_name+'" AND';
+  if(d.project_name) cond = 'ifnull(`tabTask`.project, "") = "'+d.project_name+'" AND';
   
-  return repl('SELECT distinct `tabTicket`.`subject` FROM `tabTicket` WHERE %(cond)s `tabTicket`.`subject` LIKE "%s" ORDER BY `tabTicket`.`subject` ASC LIMIT 50', {cond:cond});
+  return repl('SELECT distinct `tabTask`.`subject` FROM `tabTask` WHERE %(cond)s `tabTask`.`subject` LIKE "%s" ORDER BY `tabTask`.`subject` ASC LIMIT 50', {cond:cond});
 }
\ No newline at end of file
diff --git a/erpnext/projects/doctype/timesheet/timesheet.py b/erpnext/projects/doctype/timesheet/timesheet.py
index ec58a46..cacfc74 100644
--- a/erpnext/projects/doctype/timesheet/timesheet.py
+++ b/erpnext/projects/doctype/timesheet/timesheet.py
@@ -45,7 +45,7 @@
       return (ret)
   
   def get_task_details(self, task_sub):
-    tsk = sql("select name, project, customer, customer_name from `tabTicket` where subject = %s", task_sub)
+    tsk = sql("select name, project, customer, customer_name from `tabTask` where subject = %s", task_sub)
     if tsk:
       ret = {'task_id': tsk and tsk[0][0] or '', 'project_name': tsk and tsk[0][1] or '', 'customer_name': tsk and tsk[0][3] or ''}
       return ret
diff --git a/erpnext/projects/doctype/timesheet/timesheet.txt b/erpnext/projects/doctype/timesheet/timesheet.txt
index 839da19..1ccb781 100644
--- a/erpnext/projects/doctype/timesheet/timesheet.txt
+++ b/erpnext/projects/doctype/timesheet/timesheet.txt
@@ -3,50 +3,52 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:29',
+		'creation': '2012-03-27 14:36:07',
 		'docstatus': 0,
-		'modified': '2011-02-23 11:22:29',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-03-27 18:47:10',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'TimeSheet.#####',
-		'colour': 'White:FFF',
+		'autoname': u'TimeSheet.#####',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'Projects',
+		'is_submittable': 1,
+		'module': u'Projects',
 		'name': '__common__',
-		'search_fields': 'status, owner, timesheet_date',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'subject': '%(owner)s',
-		'version': 68
+		'search_fields': u'status, owner, timesheet_date',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'subject': u'%(owner)s',
+		'version': 69
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Timesheet',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Timesheet',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Timesheet',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Timesheet',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Timesheet
 	{
 		'doctype': 'DocType',
-		'name': 'Timesheet'
+		'name': u'Timesheet'
 	},
 
 	# DocPerm
@@ -54,18 +56,18 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Projects User',
+		'role': u'Projects User',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Projects User'
+		'role': u'Projects User'
 	},
 
 	# DocPerm
@@ -73,44 +75,41 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Timesheet Details',
+		'doctype': u'DocField',
+		'fieldname': u'timesheet_details_section_break',
+		'fieldtype': u'Section Break',
+		'label': u'Timesheet Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Draft',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
-		'idx': 2,
+		'colour': u'White:FFF',
+		'default': u'Draft',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
 		'in_filter': 0,
-		'label': 'Status',
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nDraft\nSubmitted\nCancelled',
+		'label': u'Status',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nDraft\nSubmitted\nCancelled',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 1
@@ -118,16 +117,15 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Today',
-		'doctype': 'DocField',
-		'fieldname': 'timesheet_date',
-		'fieldtype': 'Date',
-		'idx': 3,
+		'colour': u'White:FFF',
+		'default': u'Today',
+		'doctype': u'DocField',
+		'fieldname': u'timesheet_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Timesheet Date',
-		'oldfieldname': 'timesheet_date',
-		'oldfieldtype': 'Date',
+		'label': u'Timesheet Date',
+		'oldfieldname': u'timesheet_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -135,15 +133,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'owner',
-		'fieldtype': 'Link',
-		'idx': 4,
+		'doctype': u'DocField',
+		'fieldname': u'owner',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Timesheet By',
-		'oldfieldname': 'owner',
-		'oldfieldtype': 'Link',
-		'options': 'Profile',
+		'label': u'Timesheet By',
+		'oldfieldname': u'owner',
+		'oldfieldtype': u'Link',
+		'options': u'Profile',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -151,69 +148,65 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'idx': 5,
-		'label': 'Amended From',
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'label': u'Amended From',
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
 		'hidden': 1,
-		'idx': 6,
-		'label': 'Amendment Date',
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'label': u'Amendment Date',
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 7,
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'notes',
-		'fieldtype': 'Text',
-		'idx': 8,
-		'label': 'Notes',
+		'doctype': u'DocField',
+		'fieldname': u'notes',
+		'fieldtype': u'Text',
+		'label': u'Notes',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 9,
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'timesheet_details',
-		'fieldtype': 'Table',
-		'idx': 10,
-		'label': 'Timesheet Details',
-		'oldfieldname': 'timesheet_details',
-		'oldfieldtype': 'Table',
-		'options': 'Timesheet Detail',
+		'doctype': u'DocField',
+		'fieldname': u'timesheet_details',
+		'fieldtype': u'Table',
+		'label': u'Timesheet Details',
+		'oldfieldname': u'timesheet_details',
+		'oldfieldtype': u'Table',
+		'options': u'Timesheet Detail',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/doctype/timesheet_detail/timesheet_detail.txt b/erpnext/projects/doctype/timesheet_detail/timesheet_detail.txt
index 0098228..dc4f105 100644
--- a/erpnext/projects/doctype/timesheet_detail/timesheet_detail.txt
+++ b/erpnext/projects/doctype/timesheet_detail/timesheet_detail.txt
@@ -3,167 +3,158 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-02-23 11:22:29',
+		'creation': '2012-03-27 14:36:07',
 		'docstatus': 0,
-		'modified': '2011-02-23 11:22:28',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:07',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'TSD.#####',
-		'colour': 'White:FFF',
+		'autoname': u'TSD.#####',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'Projects',
+		'module': u'Projects',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 15
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Timesheet Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Timesheet Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# DocType, Timesheet Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Timesheet Detail'
+		'name': u'Timesheet Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'act_start_time',
-		'fieldtype': 'Time',
-		'idx': 1,
-		'label': 'Actual Start Time',
-		'oldfieldname': 'act_start_time',
-		'oldfieldtype': 'Time',
+		'doctype': u'DocField',
+		'fieldname': u'act_start_time',
+		'fieldtype': u'Time',
+		'label': u'Actual Start Time',
+		'oldfieldname': u'act_start_time',
+		'oldfieldtype': u'Time',
 		'permlevel': 0,
 		'reqd': 1,
-		'width': '160px'
+		'width': u'160px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'act_end_time',
-		'fieldtype': 'Time',
-		'idx': 2,
-		'label': 'Actual End Time',
-		'oldfieldname': 'act_end_time',
-		'oldfieldtype': 'Time',
+		'doctype': u'DocField',
+		'fieldname': u'act_end_time',
+		'fieldtype': u'Time',
+		'label': u'Actual End Time',
+		'oldfieldname': u'act_end_time',
+		'oldfieldtype': u'Time',
 		'permlevel': 0,
 		'reqd': 1,
-		'width': '160px'
+		'width': u'160px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'activity_type',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'Activity Type',
-		'options': 'Activity Type',
+		'doctype': u'DocField',
+		'fieldname': u'activity_type',
+		'fieldtype': u'Link',
+		'label': u'Activity Type',
+		'options': u'Activity Type',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0,
-		'width': '200px'
+		'width': u'200px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'other_details',
-		'fieldtype': 'Text',
-		'idx': 4,
-		'label': 'Additional Info',
-		'oldfieldname': 'other_details',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'other_details',
+		'fieldtype': u'Text',
+		'label': u'Additional Info',
+		'oldfieldname': u'other_details',
+		'oldfieldtype': u'Text',
 		'permlevel': 0,
-		'width': '200px'
+		'width': u'200px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'act_total_hrs',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Total Hours (Actual)',
-		'oldfieldname': 'act_total_hrs',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'act_total_hrs',
+		'fieldtype': u'Data',
+		'label': u'Total Hours (Actual)',
+		'oldfieldname': u'act_total_hrs',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Link',
-		'idx': 6,
-		'label': 'Customer Name',
-		'oldfieldname': 'customer_name',
-		'oldfieldtype': 'Data',
-		'options': 'Customer',
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Link',
+		'label': u'Customer Name',
+		'oldfieldname': u'customer_name',
+		'oldfieldtype': u'Data',
+		'options': u'Customer',
 		'permlevel': 0,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'project_name',
-		'fieldtype': 'Link',
-		'idx': 7,
+		'doctype': u'DocField',
+		'fieldname': u'project_name',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Project',
-		'oldfieldname': 'project_name',
-		'oldfieldtype': 'Link',
-		'options': 'Project',
+		'label': u'Project',
+		'oldfieldname': u'project_name',
+		'oldfieldtype': u'Link',
+		'options': u'Project',
 		'permlevel': 0,
 		'reqd': 0,
 		'search_index': 1,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'task_id',
-		'fieldtype': 'Link',
-		'idx': 8,
+		'doctype': u'DocField',
+		'fieldname': u'task_id',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Task Id',
-		'oldfieldname': 'task_id',
-		'oldfieldtype': 'Link',
-		'options': 'Ticket',
+		'label': u'Task Id',
+		'oldfieldname': u'task_id',
+		'oldfieldtype': u'Link',
+		'options': u'Task',
 		'permlevel': 0,
 		'search_index': 1,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'task_name',
-		'fieldtype': 'Link',
-		'idx': 9,
-		'label': 'Task Name',
-		'oldfieldname': 'task_name',
-		'oldfieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'task_name',
+		'fieldtype': u'Link',
+		'label': u'Task Name',
+		'oldfieldname': u'task_name',
+		'oldfieldtype': u'Link',
 		'permlevel': 0,
 		'reqd': 0,
 		'search_index': 0,
-		'width': '250px'
+		'width': u'250px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/page/projects/projects.js b/erpnext/projects/page/projects/projects.js
index 3778a34..cda9ec5 100644
--- a/erpnext/projects/page/projects/projects.js
+++ b/erpnext/projects/page/projects/projects.js
@@ -217,7 +217,7 @@
 
 	// label
 	this.label = $a(grid.y_labels, 'div', '', {'top':(idx*40) + 'px', overflow:'hidden', position:'absolute', 'width':'100%', height: '40px'});
-	var l1 = $a($a(this.label, 'div'), 'span', 'link_type'); l1.innerHTML = data[0]; l1.dn = data[7]; l1.onclick = function() { loaddoc('Ticket', this.dn) };
+	var l1 = $a($a(this.label, 'div'), 'span', 'link_type'); l1.innerHTML = data[0]; l1.dn = data[7]; l1.onclick = function() { loaddoc('Task', this.dn) };
 	var l2 = $a(this.label, 'div', '', {fontSize:'10px'}); l2.innerHTML = data[1];
 
 	// bar
diff --git a/erpnext/projects/search_criteria/dispatch_report/__init__.py b/erpnext/projects/search_criteria/dispatch_report/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/projects/search_criteria/dispatch_report/__init__.py
+++ /dev/null
diff --git a/erpnext/projects/search_criteria/dispatch_report/dispatch_report.js b/erpnext/projects/search_criteria/dispatch_report/dispatch_report.js
deleted file mode 100644
index a31d6e4..0000000
--- a/erpnext/projects/search_criteria/dispatch_report/dispatch_report.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.mytabs.items['Select Columns'].hide()
-  //this.mytabs.items['More Filters'].hide()
-  //this.hide_all_filters();
-}
\ No newline at end of file
diff --git a/erpnext/projects/search_criteria/dispatch_report/dispatch_report.txt b/erpnext/projects/search_criteria/dispatch_report/dispatch_report.txt
deleted file mode 100644
index fbd19fb..0000000
--- a/erpnext/projects/search_criteria/dispatch_report/dispatch_report.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, dispatch_report
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-12-14 10:23:31',
-		'docstatus': 0,
-		'modified': '2010-11-05 20:34:19',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Delivery Note\x01ID,Delivery Note\x01Project Name,Delivery Note\x01Customer,Delivery Note\x01Customer Name,Delivery Note\x01Posting Date,Delivery Note Detail\x01Item Code,Delivery Note Detail\x01Item Name,Delivery Note Detail\x01Quantity,Delivery Note Detail\x01Amount*',
-		'criteria_name': 'Dispatch Report',
-		'doc_type': 'Delivery Note Detail',
-		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Saved':1,'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'Submitted','Delivery Note\x01Fiscal Year':''}",
-		'module': 'Projects',
-		'name': '__common__',
-		'page_len': 50,
-		'parent_doc_type': 'Delivery Note',
-		'sort_by': '`tabDelivery Note`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, dispatch_report
-	{
-		'doctype': 'Search Criteria',
-		'name': 'dispatch_report'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.js b/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.js
index 77ce624..c8b42dc 100644
--- a/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.js
+++ b/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.js
@@ -17,7 +17,7 @@
 report.customize_filters = function() {
   this.hide_all_filters();
 
-  //this.add_filter({fieldname:'item_code', label:'Item Code', fieldtype:'Link', options:'Item',ignore : 1,parent:'Delivery Note Detail'});
+  //this.add_filter({fieldname:'item_code', label:'Item Code', fieldtype:'Link', options:'Item',ignore : 1,parent:'Delivery Note Item'});
 
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'Project Name'].df.filter_hide = 0;
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'Company'].df.filter_hide = 0;
diff --git a/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt b/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt
index a084040..e4143ba 100644
--- a/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt
+++ b/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt
@@ -3,33 +3,33 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-08-30 11:54:36',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_cond': 'IFNULL(`tabDelivery Note`.`project_name`,"")!=""',
-		'columns': 'Delivery Note\x01ID,Delivery Note\x01Project Name,Delivery Note\x01Customer,Delivery Note\x01Customer Name,Delivery Note Detail\x01Item Code,Delivery Note Detail\x01Item Name,Delivery Note Detail\x01Quantity,Delivery Note\x01Posting Date,Delivery Note\x01% Billed,Delivery Note Detail\x01Amount*',
-		'criteria_name': 'Projectwise Delivered Qty and Costs',
-		'doc_type': 'Delivery Note Detail',
+		'add_cond': u'IFNULL(`tabDelivery Note`.`project_name`,"")!=""',
+		'columns': u'Delivery Note\x01ID,Delivery Note\x01Project Name,Delivery Note\x01Customer,Delivery Note\x01Customer Name,Delivery Note Item\x01Item Code,Delivery Note Item\x01Item Name,Delivery Note Item\x01Quantity,Delivery Note\x01Posting Date,Delivery Note\x01% Billed,Delivery Note Item\x01Amount*',
+		'criteria_name': u'Projectwise Delivered Qty and Costs',
+		'doc_type': u'Delivery Note Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'Submitted','Delivery Note\x01Fiscal Year':''}",
-		'module': 'Projects',
+		'filters': u"{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'Submitted','Delivery Note\x01Fiscal Year':''}",
+		'module': u'Projects',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Delivery Note',
-		'sort_by': '`tabDelivery Note`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Delivery Note',
+		'sort_by': u'`tabDelivery Note`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, projectwise_delivered_qty_and_costs
 	{
 		'doctype': 'Search Criteria',
-		'name': 'projectwise_delivered_qty_and_costs'
+		'name': u'projectwise_delivered_qty_and_costs'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.js b/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.js
index e04a7c6..ce56077 100644
--- a/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.js
+++ b/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.js
@@ -17,7 +17,7 @@
 report.customize_filters = function() {
   this.hide_all_filters();
 
-  //this.add_filter({fieldname:'item_code', label:'Item Code', fieldtype:'Link', options:'Item',ignore : 1,parent:'Sales Order Detail'});
+  //this.add_filter({fieldname:'item_code', label:'Item Code', fieldtype:'Link', options:'Item',ignore : 1,parent:'Sales Order Item'});
 
   this.filter_fields_dict['Sales Order'+FILTER_SEP +'Project Name'].df.filter_hide = 0;
   this.filter_fields_dict['Sales Order'+FILTER_SEP +'Company'].df.filter_hide = 0;
diff --git a/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt b/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt
index 1c6821b..e795202 100644
--- a/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt
+++ b/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt
@@ -3,34 +3,34 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-08-30 14:21:20',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': "SUM(`tabSales Order Detail`.`qty` - `tabSales Order Detail`.`delivered_qty`) AS 'Pending Qty'\nSUM((`tabSales Order Detail`.`qty` - `tabSales Order Detail`.`delivered_qty`)* `tabSales Order Detail`.basic_rate) AS 'Pending Amount'",
-		'add_cond': '`tabSales Order Detail`.`qty` > `tabSales Order Detail`.`delivered_qty`\nIFNULL(`tabSales Order`.`project_name`,"")!=""\n`tabSales Order`.order_type = \'Sales\'',
-		'columns': 'Sales Order\x01ID,Sales Order\x01Project Name,Sales Order\x01Customer,Sales Order\x01Customer Name,Sales Order Detail\x01Item Code,Sales Order Detail\x01Item Name,Sales Order\x01%  Delivered,Sales Order\x01% Billed,Sales Order\x01Sales Order Date,Sales Order\x01Expected Delivery Date',
-		'criteria_name': 'Projectwise Pending Qty and Costs',
-		'doc_type': 'Sales Order Detail',
+		'add_col': u"SUM(`tabSales Order Item`.`qty` - `tabSales Order Item`.`delivered_qty`) AS 'Pending Qty'\nSUM((`tabSales Order Item`.`qty` - `tabSales Order Item`.`delivered_qty`)* `tabSales Order Item`.basic_rate) AS 'Pending Amount'",
+		'add_cond': u'`tabSales Order Item`.`qty` > `tabSales Order Item`.`delivered_qty`\nIFNULL(`tabSales Order`.`project_name`,"")!=""\n`tabSales Order`.order_type = \'Sales\'',
+		'columns': u'Sales Order\x01ID,Sales Order\x01Project Name,Sales Order\x01Customer,Sales Order\x01Customer Name,Sales Order Item\x01Item Code,Sales Order Item\x01Item Name,Sales Order\x01%  Delivered,Sales Order\x01% Billed,Sales Order\x01Sales Order Date,Sales Order\x01Expected Delivery Date',
+		'criteria_name': u'Projectwise Pending Qty and Costs',
+		'doc_type': u'Sales Order Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Submitted':1,'Sales Order\x01Status':'Submitted','Sales Order\x01Fiscal Year':''}",
-		'module': 'Projects',
+		'filters': u"{'Sales Order\x01Submitted':1,'Sales Order\x01Status':'Submitted','Sales Order\x01Fiscal Year':''}",
+		'module': u'Projects',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Sales Order',
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Order',
+		'sort_by': u'`tabSales Order`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, projectwise_pending_qty_and_costs
 	{
 		'doctype': 'Search Criteria',
-		'name': 'projectwise_pending_qty_and_costs'
+		'name': u'projectwise_pending_qty_and_costs'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.js b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.js
index 0401c28..bd4be54 100644
--- a/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.js
+++ b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.js
@@ -88,7 +88,7 @@
     if(fy !='') cond += ' t1.fiscal_year = "'+fy+'" AND '; 
  
   
-    var q = 'SELECT DISTINCT t1.name, t1.status, t1.project_name, t1.supplier, t1.supplier_name,t1.grand_total FROM `tabPurchase Receipt` t1,  `tabPurchase Receipt Detail` t2 WHERE '+cond +'IFNULL(t1.project_name,"") !="" AND t1.docstatus != 2 AND t1.name = t2.parent';
+    var q = 'SELECT DISTINCT t1.name, t1.status, t1.project_name, t1.supplier, t1.supplier_name,t1.grand_total FROM `tabPurchase Receipt` t1,  `tabPurchase Receipt Item` t2 WHERE '+cond +'IFNULL(t1.project_name,"") !="" AND t1.docstatus != 2 AND t1.name = t2.parent';
   
     return q;  
   }
@@ -101,7 +101,7 @@
     if(company) cond += ' t1.company = "'+company+'" AND ';
     if(fy !='') cond += ' t1.fiscal_year = "'+fy+'" AND ';     
     
-    var q = 'SELECT DISTINCT t1.name , t1.credit_to , t1.project_name, t1.supplier, t1.supplier_name , t1.grand_total FROM `tabPayable Voucher` t1,  `tabPV Detail` t2 WHERE '+cond +'IFNULL(t1.project_name,"") !="" AND t1.docstatus != 2 AND t1.name = t2.parent';
+    var q = 'SELECT DISTINCT t1.name , t1.credit_to , t1.project_name, t1.supplier, t1.supplier_name , t1.grand_total FROM `tabPurchase Invoice` t1,  `tabPurchase Invoice Item` t2 WHERE '+cond +'IFNULL(t1.project_name,"") !="" AND t1.docstatus != 2 AND t1.name = t2.parent';
   
     return q;  
   }  
diff --git a/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.py b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.py
index 2147699..4dab05c 100644
--- a/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.py
+++ b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.py
@@ -22,7 +22,7 @@
   col = [['Purchase Order ID','Link','Purchase Order'],['Status','Data',''],['Project Name','Link','Project'],['Supplier','Link','Supplier'],['Supplier Name','Data',''],['% Received','Data',''],['% Billed','Data',''],['Grand Total','Currency','']] 
 
 elif based_on == 'Purchase Invoice':
-  col = [['Purchase Receipt ID','Link','Payable Voucher'],['Status','Data',''],['Project Name','Link','Project'],['Supplier','Link','Supplier'],['Supplier Name','Data',''],['Grand Total','Currency','']]
+  col = [['Purchase Receipt ID','Link','Purchase Invoice'],['Status','Data',''],['Project Name','Link','Project'],['Supplier','Link','Supplier'],['Supplier Name','Data',''],['Grand Total','Currency','']]
 
 elif based_on == 'Purchase Receipt':
   col = [['Purchase Invoice ID','Link','Purchase Receipt'],['Credit To','Data',''],['Project Name','Link','Project'],['Supplier','Link','Supplier'],['Supplier Name','Data',''],['Grand Total','Currency','']]
diff --git a/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt
index 286ec98..4a11bac 100644
--- a/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt
+++ b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt
@@ -3,29 +3,29 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:31',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-11-12 09:23:17',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': 'Projectwise Purchase Details',
-		'doc_type': 'Purchase Order',
+		'criteria_name': u'Projectwise Purchase Details',
+		'doc_type': u'Purchase Order',
 		'doctype': 'Search Criteria',
-		'filters': "{'Purchase Order\x01Status':'','Purchase Order\x01Fiscal Year':''}",
-		'module': 'Projects',
+		'filters': u"{'Purchase Order\x01Status':'','Purchase Order\x01Fiscal Year':''}",
+		'module': u'Projects',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, projectwise_purchase_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'projectwise_purchase_details'
+		'name': u'projectwise_purchase_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.js b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.js
index 83951b5..4e92c3c 100644
--- a/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.js
+++ b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.js
@@ -89,7 +89,7 @@
     if(company) cond += ' t1.company = "'+company+'" AND ';
     if(fy) cond += ' t1.fiscal_year = "'+fy+'" AND '; 
     
-    var q = 'SELECT DISTINCT t1.name, t1.status, t1.project_name, t1.customer, t1.customer_name, t1.per_billed, t1.per_installed, t1.grand_total FROM `tabDelivery Note` t1, `tabDelivery Note Detail` t2  WHERE '+cond+' IFNULL(t1.project_name,"") !="" AND t1.docstatus != 2';
+    var q = 'SELECT DISTINCT t1.name, t1.status, t1.project_name, t1.customer, t1.customer_name, t1.per_billed, t1.per_installed, t1.grand_total FROM `tabDelivery Note` t1, `tabDelivery Note Item` t2  WHERE '+cond+' IFNULL(t1.project_name,"") !="" AND t1.docstatus != 2';
 
     return q;
   }
@@ -104,7 +104,7 @@
     if(fy) cond += ' t1.fiscal_year = "'+fy+'" AND '; 
 
        
-    var q = 'SELECT DISTINCT t1.name , t1.debit_to , t1.project_name , t1.customer , t1.customer_name , t1.grand_total  FROM `tabReceivable Voucher` t1,  `tabRV Detail` t2 WHERE '+cond +'IFNULL(t1.project_name,"") !="" AND t1.docstatus != 2 AND t1.name = t2.parent';
+    var q = 'SELECT DISTINCT t1.name , t1.debit_to , t1.project_name , t1.customer , t1.customer_name , t1.grand_total  FROM `tabSales Invoice` t1,  `tabSales Invoice Item` t2 WHERE '+cond +'IFNULL(t1.project_name,"") !="" AND t1.docstatus != 2 AND t1.name = t2.parent';
 
     return q;  
   }
diff --git a/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.py b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.py
index 15a20a7..065a03d 100644
--- a/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.py
+++ b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.py
@@ -25,7 +25,7 @@
   cols = [['Delivery Note No','Link','150px','Delivery Note'], ['Status','Data','100px',''], ['Project Name','Link','200px','Project'], ['Customer','Link','150px','Customer'], ['Customer Name','Data','200px',''], ['% Installed','Currency','100px',''], ['% Billed','Currency','100px',''], ['Grand Total','Currency','150px','']]
 
 elif based_on == 'Sales Invoice':
-  cols = [['Sales Invoice No','Link','150px','Receivable Voucher'], ['Debit To','Data','150px',''], ['Project Name','Link','200px','Project'], ['Customer','Link','150px','Customer'], ['Customer Name','Data','200px',''], ['Grand Total','Currency','150px','']]
+  cols = [['Sales Invoice No','Link','150px','Sales Invoice'], ['Debit To','Data','150px',''], ['Project Name','Link','200px','Project'], ['Customer','Link','150px','Customer'], ['Customer Name','Data','200px',''], ['Grand Total','Currency','150px','']]
 
 
 for c in cols:
diff --git a/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt
index bb51f25..0ecb1be 100644
--- a/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt
+++ b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt
@@ -3,29 +3,29 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:31',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-11-12 09:21:11',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': 'Projectwise Sales Details',
-		'doc_type': 'Sales Order',
+		'criteria_name': u'Projectwise Sales Details',
+		'doc_type': u'Sales Order',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Status':''}",
-		'module': 'Projects',
+		'filters': u"{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Status':''}",
+		'module': u'Projects',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, projectwise_sales_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'projectwise_sales_details'
+		'name': u'projectwise_sales_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt b/erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt
index 9d172b6..c36a326 100644
--- a/erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt
+++ b/erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-08-30 14:21:59',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_cond': "ifnull(`tabSales Order`.project_name ,'') != ''",
-		'columns': 'Sales Order\x01ID,Sales Order\x01Status,Sales Order\x01Project Name,Sales Order\x01Customer,Sales Order\x01Sales Order Date,Sales Order\x01Expected Delivery Date,Sales Order\x01Quotation No,Sales Order\x01%  Delivered,Sales Order\x01% Billed,Sales Order\x01Grand Total*',
-		'criteria_name': 'Projectwise Sales Orders',
-		'doc_type': 'Sales Order',
+		'add_cond': u"ifnull(`tabSales Order`.project_name ,'') != ''",
+		'columns': u'Sales Order\x01ID,Sales Order\x01Status,Sales Order\x01Project Name,Sales Order\x01Customer,Sales Order\x01Sales Order Date,Sales Order\x01Expected Delivery Date,Sales Order\x01Quotation No,Sales Order\x01%  Delivered,Sales Order\x01% Billed,Sales Order\x01Grand Total*',
+		'criteria_name': u'Projectwise Sales Orders',
+		'doc_type': u'Sales Order',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
-		'module': 'Projects',
+		'filters': u"{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
+		'module': u'Projects',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabSales Order`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, projectwise_sales_orders
 	{
 		'doctype': 'Search Criteria',
-		'name': 'projectwise_sales_orders'
+		'name': u'projectwise_sales_orders'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt b/erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt
index 77f9d33..64586eb 100644
--- a/erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt
+++ b/erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:31',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-11-05 20:44:03',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Timesheet\x01ID,Timesheet\x01Timesheet Date,Timesheet\x01Timesheet by,Timesheet Detail\x01Project Name,Timesheet Detail\x01Task Id,Timesheet Detail\x01Task Name,Timesheet Detail\x01Actual Start Time,Timesheet Detail\x01Actual End Time,Timesheet Detail\x01Total Hours (Actual)',
-		'criteria_name': 'Timesheet Report',
-		'doc_type': 'Timesheet Detail',
+		'columns': u'Timesheet\x01ID,Timesheet\x01Timesheet Date,Timesheet\x01Timesheet by,Timesheet Detail\x01Project Name,Timesheet Detail\x01Task Id,Timesheet Detail\x01Task Name,Timesheet Detail\x01Actual Start Time,Timesheet Detail\x01Actual End Time,Timesheet Detail\x01Total Hours (Actual)',
+		'criteria_name': u'Timesheet Report',
+		'doc_type': u'Timesheet Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Timesheet\x01Saved':1,'Timesheet\x01Submitted':1}",
-		'module': 'Projects',
+		'filters': u"{'Timesheet\x01Saved':1,'Timesheet\x01Submitted':1}",
+		'module': u'Projects',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Timesheet',
-		'sort_by': '`tabTimesheet`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Timesheet',
+		'sort_by': u'`tabTimesheet`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, timesheet_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'timesheet_report'
+		'name': u'timesheet_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/sandbox/testdata/masters.py b/erpnext/sandbox/testdata/masters.py
index 368e6e4..61fa2cb 100644
--- a/erpnext/sandbox/testdata/masters.py
+++ b/erpnext/sandbox/testdata/masters.py
@@ -237,7 +237,7 @@
 		),
 		Document(
 			fielddata = {
-				'doctype': 'Ref Rate Detail',
+				'doctype': 'Item Price',
 				'parentfield': 'ref_rate_details',
 				'parenttype': 'Item',
 				'parent' : 'it',
diff --git a/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt b/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt
index da8762d..b597f92 100644
--- a/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt
+++ b/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt
@@ -123,10 +123,10 @@
 	{
 		'doctype': 'Table Mapper Detail',
 		'from_field': 'delivery_note_details',
-		'from_table': 'Delivery Note Detail',
+		'from_table': 'Delivery Note Item',
 		'match_id': 1,
 		'to_field': 'installed_item_details',
-		'to_table': 'Installed Item Details',
+		'to_table': 'Installation Note Item',
 		'validation_logic': 'qty > ifnull(installed_qty,0) and docstatus = 1'
 	},
 
@@ -147,7 +147,7 @@
 		'reference_doctype_key': 'prevdoc_doctype',
 		'reference_key': 'prevdoc_docname',
 		'to_field': 'installed_item_details',
-		'to_table': 'Installed Item Details',
+		'to_table': 'Installation Note Item',
 		'validation_logic': 'docstatus = 1'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt b/erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
deleted file mode 100644
index de6f60d..0000000
--- a/erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
+++ /dev/null
@@ -1,146 +0,0 @@
-# DocType Mapper, Enquiry-Quotation
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:34',
-		'docstatus': 0,
-		'modified': '2011-09-14 12:36:24',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'name': '__common__',
-		'parent': 'Enquiry-Quotation',
-		'parentfield': 'table_mapper_details',
-		'parenttype': 'DocType Mapper',
-		'validation_logic': 'docstatus=1'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'name': '__common__',
-		'parent': 'Enquiry-Quotation',
-		'parentfield': 'field_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': u'DocType Mapper',
-		'from_doctype': 'Enquiry',
-		'module': 'Selling',
-		'name': '__common__',
-		'ref_doc_submitted': 1,
-		'to_doctype': 'Quotation'
-	},
-
-	# DocType Mapper, Enquiry-Quotation
-	{
-		'doctype': u'DocType Mapper',
-		'name': 'Enquiry-Quotation'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'uom',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'stock_uom'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'name',
-		'map': 'Yes',
-		'match_id': 0,
-		'to_field': 'enq_no'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parent',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'prevdoc_docname'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parenttype',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'prevdoc_doctype'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'enquiry_from',
-		'map': 'Yes',
-		'match_id': 0,
-		'to_field': 'quotation_to'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'enquiry_type',
-		'map': 'Yes',
-		'match_id': 0,
-		'to_field': 'order_type'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'transaction_date',
-		'map': 'No',
-		'match_id': 0,
-		'to_field': 'transaction_date'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'status',
-		'map': 'No',
-		'match_id': 0,
-		'to_field': 'status'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'naming_series',
-		'map': 'No',
-		'match_id': 0,
-		'to_field': 'naming_series'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_table': 'Enquiry',
-		'match_id': 0,
-		'to_table': 'Quotation'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'enq_details',
-		'from_table': 'Enquiry Detail',
-		'match_id': 1,
-		'to_field': 'quotation_details',
-		'to_table': 'Quotation Detail'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt b/erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt
deleted file mode 100644
index 5dc1c8f..0000000
--- a/erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-# DocType Mapper, Lead-Enquiry
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:34',
-		'docstatus': 0,
-		'modified': '2011-09-14 12:36:24',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_table': 'Lead',
-		'match_id': 0,
-		'name': '__common__',
-		'parent': 'Lead-Enquiry',
-		'parentfield': 'table_mapper_details',
-		'parenttype': 'DocType Mapper',
-		'to_table': 'Enquiry',
-		'validation_logic': 'name is not null'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'match_id': 0,
-		'name': '__common__',
-		'parent': 'Lead-Enquiry',
-		'parentfield': 'field_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': u'DocType Mapper',
-		'from_doctype': 'Lead',
-		'module': 'Selling',
-		'name': '__common__',
-		'to_doctype': 'Enquiry'
-	},
-
-	# DocType Mapper, Lead-Enquiry
-	{
-		'doctype': u'DocType Mapper',
-		'name': 'Lead-Enquiry'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'campaign_name',
-		'map': 'Yes',
-		'to_field': 'campaign'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'doctype',
-		'map': 'Yes',
-		'to_field': 'enquiry_from'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'name',
-		'map': 'Yes',
-		'to_field': 'lead'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'status',
-		'map': 'No',
-		'to_field': 'status'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/DocType Mapper/Lead-Opportunity/Lead-Opportunity.txt b/erpnext/selling/DocType Mapper/Lead-Opportunity/Lead-Opportunity.txt
new file mode 100644
index 0000000..ff4a925
--- /dev/null
+++ b/erpnext/selling/DocType Mapper/Lead-Opportunity/Lead-Opportunity.txt
@@ -0,0 +1,87 @@
+# DocType Mapper, Lead-Opportunity
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2010-08-08 17:09:34',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_table': u'Lead',
+		'match_id': 0,
+		'name': '__common__',
+		'parent': u'Lead-Opportunity',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper',
+		'to_table': u'Opportunity',
+		'validation_logic': u'name is not null'
+	},
+
+	# These values are common for all Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'match_id': 0,
+		'name': '__common__',
+		'parent': u'Lead-Opportunity',
+		'parentfield': u'field_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': u'DocType Mapper',
+		'from_doctype': u'Lead',
+		'module': u'Selling',
+		'name': '__common__',
+		'to_doctype': u'Opportunity'
+	},
+
+	# DocType Mapper, Lead-Opportunity
+	{
+		'doctype': u'DocType Mapper',
+		'name': u'Lead-Opportunity'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'campaign_name',
+		'map': u'Yes',
+		'to_field': u'campaign'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'doctype',
+		'map': u'Yes',
+		'to_field': u'enquiry_from'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'name',
+		'map': u'Yes',
+		'to_field': u'lead'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'status',
+		'map': u'No',
+		'to_field': u'status'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/selling/DocType Mapper/Opportunity-Quotation/Opportunity-Quotation.txt b/erpnext/selling/DocType Mapper/Opportunity-Quotation/Opportunity-Quotation.txt
new file mode 100644
index 0000000..18543e8
--- /dev/null
+++ b/erpnext/selling/DocType Mapper/Opportunity-Quotation/Opportunity-Quotation.txt
@@ -0,0 +1,146 @@
+# DocType Mapper, Opportunity-Quotation
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2010-08-08 17:09:34',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'name': '__common__',
+		'parent': u'Opportunity-Quotation',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper',
+		'validation_logic': u'docstatus=1'
+	},
+
+	# These values are common for all Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'name': '__common__',
+		'parent': u'Opportunity-Quotation',
+		'parentfield': u'field_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': u'DocType Mapper',
+		'from_doctype': u'Opportunity',
+		'module': u'Selling',
+		'name': '__common__',
+		'ref_doc_submitted': 1,
+		'to_doctype': u'Quotation'
+	},
+
+	# DocType Mapper, Opportunity-Quotation
+	{
+		'doctype': u'DocType Mapper',
+		'name': u'Opportunity-Quotation'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'uom',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'stock_uom'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'name',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'enq_no'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parent',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'prevdoc_docname'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parenttype',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'prevdoc_doctype'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'enquiry_from',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'quotation_to'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'enquiry_type',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'order_type'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'transaction_date',
+		'map': u'No',
+		'match_id': 0,
+		'to_field': u'transaction_date'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'status',
+		'map': u'No',
+		'match_id': 0,
+		'to_field': u'status'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'naming_series',
+		'map': u'No',
+		'match_id': 0,
+		'to_field': u'naming_series'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_table': u'Opportunity',
+		'match_id': 0,
+		'to_table': u'Quotation'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'enq_details',
+		'from_table': u'Opportunity Item',
+		'match_id': 1,
+		'to_field': u'quotation_details',
+		'to_table': u'Quotation Item'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt b/erpnext/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt
index feadb98..77e6cac 100644
--- a/erpnext/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt
+++ b/erpnext/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt
@@ -134,10 +134,10 @@
 	{
 		'doctype': 'Table Mapper Detail',
 		'from_field': 'other_charges',
-		'from_table': 'RV Tax Detail',
+		'from_table': 'Sales Taxes and Charges',
 		'match_id': 2,
 		'to_field': 'other_charges',
-		'to_table': 'RV Tax Detail',
+		'to_table': 'Sales Taxes and Charges',
 		'validation_logic': 'name is not null'
 	},
 
@@ -145,11 +145,11 @@
 	{
 		'doctype': 'Table Mapper Detail',
 		'from_field': 'quotation_details',
-		'from_table': 'Quotation Detail',
+		'from_table': 'Quotation Item',
 		'match_id': 1,
 		'reference_doctype_key': 'prevdoc_doctype',
 		'to_field': 'sales_order_details',
-		'to_table': 'Sales Order Detail',
+		'to_table': 'Sales Order Item',
 		'validation_logic': 'name is not null'
 	},
 
diff --git a/erpnext/selling/Module Def/Selling/Selling.txt b/erpnext/selling/Module Def/Selling/Selling.txt
deleted file mode 100644
index 42c8449..0000000
--- a/erpnext/selling/Module Def/Selling/Selling.txt
+++ /dev/null
@@ -1,335 +0,0 @@
-# Module Def, Selling
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-01 17:39:08',
-		'docstatus': 0,
-		'modified': '2012-01-23 18:25:58',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'name': '__common__',
-		'parent': 'Selling',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def Item
-	{
-		'doctype': 'Module Def Item',
-		'name': '__common__',
-		'parent': 'Selling',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def
-	{
-		'disabled': 'No',
-		'doctype': u'Module Def',
-		'doctype_list': 'Print Format, Sales Order\nPrint Format, Quotation Format\nPrint Format, Delivery Note Format',
-		'file_list': 'crm.gif,FileData/00208',
-		'is_hidden': 'No',
-		'module_desc': 'Manage you sales team, with your leads, customers, quotes, orders etc.',
-		'module_icon': 'Selling.gif',
-		'module_label': 'Selling',
-		'module_name': 'Selling',
-		'module_seq': 3,
-		'name': '__common__'
-	},
-
-	# Module Def, Selling
-	{
-		'doctype': u'Module Def',
-		'name': 'Selling'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Database of potential customers you need to keep in touch with',
-		'display_name': 'Lead',
-		'doc_name': 'Lead',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\nlead_owner\nlead_name\ncontact_no\ncontact_by\ncontact_date\nexpected_month'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Your Customer Database',
-		'display_name': 'Customer',
-		'doc_name': 'Customer',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'customer_group\ncountry'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Specific requirements from a Lead / Customer',
-		'display_name': 'Enquiry',
-		'doc_name': 'Enquiry',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\ntransaction_date\ncustomer\ncontact_person\ncost_center\ncompany'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Offers you have made to your customers',
-		'display_name': 'Quotation',
-		'doc_name': 'Quotation',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\ntransaction_date\ncustomer\ncontact_person\ncost_center\ngrand_total\ncompany'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Database of confirmed Sale Orders from your Customers',
-		'display_name': 'Sales Order',
-		'doc_name': 'Sales Order',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\ntransaction_date\ncustomer\ncost_center\ngrand_total\nper_delivered\nper_billed\ncompany'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Sales Dashboard',
-		'doc_name': 'Sales Dashboard',
-		'doc_type': 'Pages',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'doc_name': 'Reports',
-		'doc_type': 'Separator',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'doc_name': 'Reports',
-		'doc_type': 'Separator',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Gross Profit',
-		'doc_name': 'Delivery Note Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Territory, Item Group wise GP',
-		'doc_name': 'Delivery Note',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Itemwise Sales Details',
-		'doc_name': 'Sales Order Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Itemwise Delivery Details',
-		'doc_name': 'Delivery Note Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Sales Personwise Transaction Summary',
-		'doc_name': 'Sales Person',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Total Target Variance Report',
-		'doc_name': 'Target Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Sales Persons Target Variance (Item Group wise)',
-		'doc_name': 'Target Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Territories Target Variance (Item Group wise)',
-		'doc_name': 'Target Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Sales Order Pending Items',
-		'doc_name': 'Sales Order Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Sales Orderwise Booking & Delivery Summary',
-		'doc_name': 'Sales Order Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Sales Orderwise Pending Qty To Deliver',
-		'doc_name': 'Sales Order Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Sales Orderwise Pending Amount To Bill',
-		'doc_name': 'Sales Order Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Delivered Items to be Install',
-		'doc_name': 'Delivery Note Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Itemwise Price List',
-		'doc_name': 'Ref Rate Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Follow-up Report',
-		'doc_name': 'Follow up',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Ledger details of your debtors',
-		'display_name': "Debtor's Ledger",
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Report displaying Customer, Primary Address Details & Primary Contact Details',
-		'display_name': 'Customer Address Contact',
-		'doc_name': 'Customer',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Customer Category',
-		'display_name': 'Customer Group',
-		'doc_name': 'Customer Group',
-		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'id\ndescription'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Sales person details',
-		'display_name': 'Sales Person',
-		'doc_name': 'Sales Person',
-		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'id\nterritory\ndepartment\nmobile_no\nemail_id'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Item master',
-		'display_name': 'Item',
-		'doc_name': 'Item',
-		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'name\nitem_group\ndescription'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Sales partner details',
-		'display_name': 'Sales Partner',
-		'doc_name': 'Sales Partner',
-		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'id\npartner_type\nmobile\nemail\nterritory'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Business campaigns',
-		'display_name': 'Campaign',
-		'doc_name': 'Campaign',
-		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'id\ncampaign_name\ndescription'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Administrator'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Sales Manager'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Sales User'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Sales Master Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/Print Format/Quotation Classic/Quotation Classic.txt b/erpnext/selling/Print Format/Quotation Classic/Quotation Classic.txt
index 48620bc..a912888 100644
--- a/erpnext/selling/Print Format/Quotation Classic/Quotation Classic.txt
+++ b/erpnext/selling/Print Format/Quotation Classic/Quotation Classic.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Quotation',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Georgia", serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Georgia", serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table thead {\n\t\tborder-bottom: 1px solid black;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px 0px;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Quotation\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'quotation_details\',\n\t\t\t\t\'Quotation Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td>\n\t\t\t\t\t<script>\'<h1>\' + (doc.select_print_heading || \'Quotation\') + \'</h1>\'</script>\n\t\t\t</td></tr>\n\t\t\t<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer?doc.customer:doc.lead_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Quotation Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Georgia", serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Georgia", serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table thead {\n\t\tborder-bottom: 1px solid black;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px 0px;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Quotation\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'quotation_details\',\n\t\t\t\t\'Quotation Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td>\n\t\t\t\t\t<script>\'<h1>\' + (doc.select_print_heading || \'Quotation\') + \'</h1>\'</script>\n\t\t\t</td></tr>\n\t\t\t<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer?doc.customer:doc.lead_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Quotation Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Selling',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/selling/Print Format/Quotation Modern/Quotation Modern.txt b/erpnext/selling/Print Format/Quotation Modern/Quotation Modern.txt
index be9aa37..3bdc693 100644
--- a/erpnext/selling/Print Format/Quotation Modern/Quotation Modern.txt
+++ b/erpnext/selling/Print Format/Quotation Modern/Quotation Modern.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Quotation',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Helvetica", "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Helvetica", "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t\tborder-style: none !important;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t\tborder-style: none !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h1 {\n\t\ttext-transform: uppercase;\n\t\tcolor: white;\n\t\tfont-size: 55px;\n\t\tfont-style: italic;\n\t}\n\n\ttable.header-table thead tr:nth-child(1) div {\n\t\theight: 24px;\n\t\tbackground-color: #696969;\n\t\tvertical-align: middle;\n\t\tpadding: 12px 0px 0px 0px;\n\t\twidth: 100%;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body table tr td {\n\t\tbackground-color: #DCDCDC !important;\n\t}\n\n\tdiv.page-body table tr:nth-child(1) td {\n\t\tbackground-color: #696969 !important;\n\t\tcolor: white !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table tfoot td {\n\t\tbackground-color: #696969;\n\t\theight: 10px;\n\t}\n\n\t.imp-details {\n\t\tbackground-color: #DCDCDC;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Quotation\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'quotation_details\',\n\t\t\t\t\'Quotation Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><div><script>\'<h1>\' + (doc.select_print_heading || \'Quotation\') + \'</h1>\'</script></div></td></tr>\n\t\t\t<tr><td colspan=2><div style="height:15px"></div></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer?doc.customer:doc.lead_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr class=\'imp-details\'>\n\t\t\t\t\t\t<td><b>Quotation No.</b></td>\n\t\t\t\t\t\t<td><script>cur_frm.docname</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Quotation Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\' class=\'imp-details\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\t<tr><td colspan=2><div></div></td><tr>\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Helvetica", "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Helvetica", "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t\tborder-style: none !important;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t\tborder-style: none !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h1 {\n\t\ttext-transform: uppercase;\n\t\tcolor: white;\n\t\tfont-size: 55px;\n\t\tfont-style: italic;\n\t}\n\n\ttable.header-table thead tr:nth-child(1) div {\n\t\theight: 24px;\n\t\tbackground-color: #696969;\n\t\tvertical-align: middle;\n\t\tpadding: 12px 0px 0px 0px;\n\t\twidth: 100%;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body table tr td {\n\t\tbackground-color: #DCDCDC !important;\n\t}\n\n\tdiv.page-body table tr:nth-child(1) td {\n\t\tbackground-color: #696969 !important;\n\t\tcolor: white !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table tfoot td {\n\t\tbackground-color: #696969;\n\t\theight: 10px;\n\t}\n\n\t.imp-details {\n\t\tbackground-color: #DCDCDC;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Quotation\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'quotation_details\',\n\t\t\t\t\'Quotation Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><div><script>\'<h1>\' + (doc.select_print_heading || \'Quotation\') + \'</h1>\'</script></div></td></tr>\n\t\t\t<tr><td colspan=2><div style="height:15px"></div></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer?doc.customer:doc.lead_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr class=\'imp-details\'>\n\t\t\t\t\t\t<td><b>Quotation No.</b></td>\n\t\t\t\t\t\t<td><script>cur_frm.docname</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Quotation Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\' class=\'imp-details\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\t<tr><td colspan=2><div></div></td><tr>\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Selling',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/selling/Print Format/Quotation Spartan/Quotation Spartan.txt b/erpnext/selling/Print Format/Quotation Spartan/Quotation Spartan.txt
index 3700c7d..1571b41 100644
--- a/erpnext/selling/Print Format/Quotation Spartan/Quotation Spartan.txt
+++ b/erpnext/selling/Print Format/Quotation Spartan/Quotation Spartan.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Quotation',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 0px;\n\t}\n\n\ttable {\n\t\twidth: 100% !important;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\n\ttable, td {\n\t\tborder-collapse: collapse !important;\n\t\tpadding: 0px;\n\t\tmargin: 0px !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px;\n\t}\n\n\ttable.header-table > thead,\n\ttable.header-table > tbody > tr > td,\n\ttable.footer-table > tbody > tr > td {\n\t\tborder: 1px solid black;\n\t\tpadding: 5px;\n\t}\n\n\ttable.footer-table > tbody,\n\ttable.header-table > thead {\n\t\tborder-bottom: 3px solid black;\n\t}\n\n\ttable.header-table > thead {\n\t\tborder-top: 3px solid black;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body td {\n\t\tbackground-color: white !important;\n\t\tborder: 1px solid black !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Quotation\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'quotation_details\',\n\t\t\t\t\'Quotation Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><script>\'<h1>\' + (doc.select_print_heading || \'Quotation\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer?doc.customer:doc.lead_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Quotation Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 0px;\n\t}\n\n\ttable {\n\t\twidth: 100% !important;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\n\ttable, td {\n\t\tborder-collapse: collapse !important;\n\t\tpadding: 0px;\n\t\tmargin: 0px !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px;\n\t}\n\n\ttable.header-table > thead,\n\ttable.header-table > tbody > tr > td,\n\ttable.footer-table > tbody > tr > td {\n\t\tborder: 1px solid black;\n\t\tpadding: 5px;\n\t}\n\n\ttable.footer-table > tbody,\n\ttable.header-table > thead {\n\t\tborder-bottom: 3px solid black;\n\t}\n\n\ttable.header-table > thead {\n\t\tborder-top: 3px solid black;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body td {\n\t\tbackground-color: white !important;\n\t\tborder: 1px solid black !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Quotation\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'quotation_details\',\n\t\t\t\t\'Quotation Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'export_rate\', \'export_amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><script>\'<h1>\' + (doc.select_print_heading || \'Quotation\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer?doc.customer:doc.lead_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Quotation Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total/doc.conversion_rate)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Selling',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/selling/Print Format/Sales Order Classic/Sales Order Classic.txt b/erpnext/selling/Print Format/Sales Order Classic/Sales Order Classic.txt
index f955bf8..79afbce 100644
--- a/erpnext/selling/Print Format/Sales Order Classic/Sales Order Classic.txt
+++ b/erpnext/selling/Print Format/Sales Order Classic/Sales Order Classic.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Sales Order',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Georgia", serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Georgia", serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table thead {\n\t\tborder-bottom: 1px solid black;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px 0px;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Sales Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'sales_order_details\',\n\t\t\t\t\'Sales Order Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td><script>\'<h1>\' + (doc.select_print_heading || \'Sales Order\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Sales Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Delivery Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.delivery_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Georgia", serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Georgia", serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table thead {\n\t\tborder-bottom: 1px solid black;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px 0px;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Sales Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'sales_order_details\',\n\t\t\t\t\'Sales Order Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td><script>\'<h1>\' + (doc.select_print_heading || \'Sales Order\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Sales Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Delivery Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.delivery_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Selling',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/selling/Print Format/Sales Order Modern/Sales Order Modern.txt b/erpnext/selling/Print Format/Sales Order Modern/Sales Order Modern.txt
index 234256f..639ed63 100644
--- a/erpnext/selling/Print Format/Sales Order Modern/Sales Order Modern.txt
+++ b/erpnext/selling/Print Format/Sales Order Modern/Sales Order Modern.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Sales Order',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Helvetica", "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Helvetica", "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t\tborder-style: none !important;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t\tborder-style: none !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h1 {\n\t\ttext-transform: uppercase;\n\t\tcolor: white;\n\t\tfont-size: 55px;\n\t\tfont-style: italic;\n\t}\n\n\ttable.header-table thead tr:nth-child(1) div {\n\t\theight: 24px;\n\t\tbackground-color: #696969;\n\t\tvertical-align: middle;\n\t\tpadding: 12px 0px 0px 0px;\n\t\twidth: 100%;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body table tr td {\n\t\tbackground-color: #DCDCDC !important;\n\t}\n\n\tdiv.page-body table tr:nth-child(1) td {\n\t\tbackground-color: #696969 !important;\n\t\tcolor: white !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table tfoot td {\n\t\tbackground-color: #696969;\n\t\theight: 10px;\n\t}\n\n\t.imp-details {\n\t\tbackground-color: #DCDCDC;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Sales Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'sales_order_details\',\n\t\t\t\t\'Sales Order Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><div><script>\'<h1>\' + (doc.select_print_heading || \'Sales Order\') + \'</h1>\'</script></div></td></tr>\n\t\t\t<tr><td colspan=2><div style="height:15px"></div></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr class=\'imp-details\'>\n\t\t\t\t\t\t<td><b>Sales Order No.</b></td>\n\t\t\t\t\t\t<td><script>cur_frm.docname</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Sales Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Delivery Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.delivery_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\' class=\'imp-details\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\t<tr><td colspan=2><div></div></td><tr>\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Helvetica", "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Helvetica", "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t\tborder-style: none !important;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t\tborder-style: none !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h1 {\n\t\ttext-transform: uppercase;\n\t\tcolor: white;\n\t\tfont-size: 55px;\n\t\tfont-style: italic;\n\t}\n\n\ttable.header-table thead tr:nth-child(1) div {\n\t\theight: 24px;\n\t\tbackground-color: #696969;\n\t\tvertical-align: middle;\n\t\tpadding: 12px 0px 0px 0px;\n\t\twidth: 100%;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body table tr td {\n\t\tbackground-color: #DCDCDC !important;\n\t}\n\n\tdiv.page-body table tr:nth-child(1) td {\n\t\tbackground-color: #696969 !important;\n\t\tcolor: white !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table tfoot td {\n\t\tbackground-color: #696969;\n\t\theight: 10px;\n\t}\n\n\t.imp-details {\n\t\tbackground-color: #DCDCDC;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Sales Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'sales_order_details\',\n\t\t\t\t\'Sales Order Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><div><script>\'<h1>\' + (doc.select_print_heading || \'Sales Order\') + \'</h1>\'</script></div></td></tr>\n\t\t\t<tr><td colspan=2><div style="height:15px"></div></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr class=\'imp-details\'>\n\t\t\t\t\t\t<td><b>Sales Order No.</b></td>\n\t\t\t\t\t\t<td><script>cur_frm.docname</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Sales Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Delivery Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.delivery_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\' class=\'imp-details\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\t<tr><td colspan=2><div></div></td><tr>\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Selling',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt b/erpnext/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt
index 5fc3c45..dd603b3 100644
--- a/erpnext/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt
+++ b/erpnext/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Sales Order',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 0px;\n\t}\n\n\ttable {\n\t\twidth: 100% !important;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\n\ttable, td {\n\t\tborder-collapse: collapse !important;\n\t\tpadding: 0px;\n\t\tmargin: 0px !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px;\n\t}\n\n\ttable.header-table > thead,\n\ttable.header-table > tbody > tr > td,\n\ttable.footer-table > tbody > tr > td {\n\t\tborder: 1px solid black;\n\t\tpadding: 5px;\n\t}\n\n\ttable.footer-table > tbody,\n\ttable.header-table > thead {\n\t\tborder-bottom: 3px solid black;\n\t}\n\n\ttable.header-table > thead {\n\t\tborder-top: 3px solid black;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body td {\n\t\tbackground-color: white !important;\n\t\tborder: 1px solid black !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Sales Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'sales_order_details\',\n\t\t\t\t\'Sales Order Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><script>\'<h1>\' + (doc.select_print_heading || \'Sales Order\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Sales Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Delivery Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.delivery_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 0px;\n\t}\n\n\ttable {\n\t\twidth: 100% !important;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\n\ttable, td {\n\t\tborder-collapse: collapse !important;\n\t\tpadding: 0px;\n\t\tmargin: 0px !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px;\n\t}\n\n\ttable.header-table > thead,\n\ttable.header-table > tbody > tr > td,\n\ttable.footer-table > tbody > tr > td {\n\t\tborder: 1px solid black;\n\t\tpadding: 5px;\n\t}\n\n\ttable.footer-table > tbody,\n\ttable.header-table > thead {\n\t\tborder-bottom: 3px solid black;\n\t}\n\n\ttable.header-table > thead {\n\t\tborder-top: 3px solid black;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body td {\n\t\tbackground-color: white !important;\n\t\tborder: 1px solid black !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Sales Order\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'sales_order_details\',\n\t\t\t\t\'Sales Order Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'20%\', \'37%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tif(data_row.adj_rate) {\n\t\t\t\t\t\t\tvar to_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\treturn data_row.description + to_append;\n\t\t\t\t\t\t\t} else { return data_row.description; }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><script>\'<h1>\' + (doc.select_print_heading || \'Sales Order\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=39%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Sales Order Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Delivery Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.delivery_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Selling',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/selling/Role/Customer/Customer.txt b/erpnext/selling/Role/Customer/Customer.txt
deleted file mode 100644
index 3f7e9d2..0000000
--- a/erpnext/selling/Role/Customer/Customer.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Customer
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2009-06-26 14:42:33',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Selling',
-		'name': '__common__',
-		'role_name': 'Customer'
-	},
-
-	# Role, Customer
-	{
-		'doctype': 'Role',
-		'name': 'Customer'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/Role/Partner/Partner.txt b/erpnext/selling/Role/Partner/Partner.txt
deleted file mode 100644
index 339929c..0000000
--- a/erpnext/selling/Role/Partner/Partner.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Partner
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2009-07-13 11:29:39',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Selling',
-		'name': '__common__',
-		'role_name': 'Partner'
-	},
-
-	# Role, Partner
-	{
-		'doctype': 'Role',
-		'name': 'Partner'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/Role/Sales Manager/Sales Manager.txt b/erpnext/selling/Role/Sales Manager/Sales Manager.txt
deleted file mode 100644
index 5d975fc..0000000
--- a/erpnext/selling/Role/Sales Manager/Sales Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Sales Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-08 12:07:36',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Selling',
-		'name': '__common__',
-		'role_name': 'Sales Manager'
-	},
-
-	# Role, Sales Manager
-	{
-		'doctype': 'Role',
-		'name': 'Sales Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/Role/Sales Master Manager/Sales Master Manager.txt b/erpnext/selling/Role/Sales Master Manager/Sales Master Manager.txt
deleted file mode 100644
index 1140f99..0000000
--- a/erpnext/selling/Role/Sales Master Manager/Sales Master Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Sales Master Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-08 13:50:11',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Selling',
-		'name': '__common__',
-		'role_name': 'Sales Master Manager'
-	},
-
-	# Role, Sales Master Manager
-	{
-		'doctype': 'Role',
-		'name': 'Sales Master Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/Role/Sales User/Sales User.txt b/erpnext/selling/Role/Sales User/Sales User.txt
deleted file mode 100644
index 97229b8..0000000
--- a/erpnext/selling/Role/Sales User/Sales User.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Sales User
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-08 12:07:44',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Selling',
-		'name': '__common__',
-		'role_name': 'Sales User'
-	},
-
-	# Role, Sales User
-	{
-		'doctype': 'Role',
-		'name': 'Sales User'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/__init__.py b/erpnext/selling/__init__.py
index e69de29..c61f23c 100644
--- a/erpnext/selling/__init__.py
+++ b/erpnext/selling/__init__.py
@@ -0,0 +1,7 @@
+install_docs = [
+	{"doctype":"Role", "name":"Customer"},
+	{"doctype":"Role", "name":"Partner"},
+	{"doctype":"Role", "name":"Sales Manager"},
+	{"doctype":"Role", "name":"Sales Master Manager"},
+	{"doctype":"Role", "name":"Sales User"},
+]
diff --git a/erpnext/selling/doctype/campaign/campaign.txt b/erpnext/selling/doctype/campaign/campaign.txt
index 8810cb8..0912fe7 100644
--- a/erpnext/selling/doctype/campaign/campaign.txt
+++ b/erpnext/selling/doctype/campaign/campaign.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:54',
+		'creation': '2012-03-27 14:36:07',
 		'docstatus': 0,
-		'modified': '2012-02-20 18:06:32',
+		'modified': '2012-03-27 14:36:07',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -36,12 +36,84 @@
 		'parenttype': u'DocType'
 	},
 
+	# These values are common for all DocPerm
+	{
+		'amend': 0,
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Campaign',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1,
+		'submit': 0
+	},
+
 	# DocType, Campaign
 	{
 		'doctype': 'DocType',
 		'name': u'Campaign'
 	},
 
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Master Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Master Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'write': 0
+	},
+
 	# DocField
 	{
 		'doctype': u'DocField',
@@ -56,6 +128,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'campaign',
 		'fieldtype': u'Section Break',
 		'label': u'Campaign',
 		'oldfieldtype': u'Section Break',
diff --git a/erpnext/selling/doctype/enquiry/__init__.py b/erpnext/selling/doctype/communication_log/__init__.py
similarity index 100%
copy from erpnext/selling/doctype/enquiry/__init__.py
copy to erpnext/selling/doctype/communication_log/__init__.py
diff --git a/erpnext/selling/doctype/communication_log/communication_log.txt b/erpnext/selling/doctype/communication_log/communication_log.txt
new file mode 100644
index 0000000..f5ea6be
--- /dev/null
+++ b/erpnext/selling/doctype/communication_log/communication_log.txt
@@ -0,0 +1,90 @@
+# DocType, Communication Log
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:09',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:09',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Selling',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 10
+	},
+
+	# These values are common for all DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Communication Log',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Communication Log
+	{
+		'doctype': 'DocType',
+		'name': u'Communication Log'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Date',
+		'oldfieldname': u'date',
+		'oldfieldtype': u'Date'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'notes',
+		'fieldtype': u'Small Text',
+		'in_filter': 0,
+		'label': u'Notes',
+		'oldfieldname': u'notes',
+		'oldfieldtype': u'Small Text',
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'follow_up_type',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Communication type',
+		'oldfieldname': u'follow_up_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nPhone\nEmail\nSMS\nVisit\nOther'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'follow_up_by',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Communication by',
+		'oldfieldname': u'follow_up_by',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Person'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/customer/customer.js b/erpnext/selling/doctype/customer/customer.js
index 89b95fa..5b229dc 100644
--- a/erpnext/selling/doctype/customer/customer.js
+++ b/erpnext/selling/doctype/customer/customer.js
@@ -14,7 +14,7 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-$import(Contact Control)
+wn.require('erpnext/setup/doctype/contact_control/contact_control.js');
 
 /* ********************************* onload ********************************************* */
 
@@ -68,19 +68,10 @@
 
 cur_frm.cscript.make_address = function() {
 	if(!cur_frm.address_list) {
-		cur_frm.address_list = new wn.widgets.Listing({
+		cur_frm.address_list = new wn.ui.Listing({
 			parent: cur_frm.fields_dict['Address HTML'].wrapper,
 			page_length: 2,
 			new_doctype: "Address",
-			new_doc_onload: function(dn) {
-				ndoc = locals["Address"][dn];
-				ndoc.customer = cur_frm.doc.name;
-				ndoc.customer_name = cur_frm.doc.customer_name;
-				ndoc.address_type = 'Office';				
-			},
-			new_doc_onsave: function(dn) {				
-				cur_frm.address_list.run()				
-			},
 			get_query: function() {
 				return "select name, address_type, address_line1, address_line2, city, state, country, pincode, fax, email_id, phone, is_primary_address, is_shipping_address from tabAddress where customer='"+cur_frm.docname+"' and docstatus != 2 order by is_primary_address desc"
 			},
@@ -110,21 +101,10 @@
 
 cur_frm.cscript.make_contact = function() {
 	if(!cur_frm.contact_list) {
-		cur_frm.contact_list = new wn.widgets.Listing({
+		cur_frm.contact_list = new wn.ui.Listing({
 			parent: cur_frm.fields_dict['Contact HTML'].wrapper,
 			page_length: 2,
 			new_doctype: "Contact",
-			new_doc_onload: function(dn) {
-				ndoc = locals["Contact"][dn];
-				ndoc.customer = cur_frm.doc.name;
-				ndoc.customer_name = cur_frm.doc.customer_name;
-				if(cur_frm.doc.customer_type == 'Individual') {
-					ndoc.first_name = cur_frm.doc.customer_name;
-				}
-			},
-			new_doc_onsave: function(dn) {				
-				cur_frm.contact_list.run()
-			},
 			get_query: function() {
 				return "select name, first_name, last_name, email_id, phone, mobile_no, department, designation, is_primary_contact from tabContact where customer='"+cur_frm.docname+"' and docstatus != 2 order by is_primary_contact desc"
 			},
@@ -174,6 +154,7 @@
 // make quotation list
 // --------------------
 cur_frm.cscript.make_qtn_list = function(parent,doc){
+	wn.require('lib/js/legacy/widgets/listing.js');
 
 	var lst = new Listing();
 	lst.colwidths = ['5%','20%','20%','20%','20%','15%'];
@@ -191,6 +172,8 @@
 // make so list
 // -------------
 cur_frm.cscript.make_so_list = function(parent,doc){
+	wn.require('lib/js/legacy/widgets/listing.js');
+
 	var lst = new Listing();
 	lst.colwidths = ['5%','20%','20%','30%','25%'];
 	lst.colnames = ['Sr.','Id','Status','Sales Order Date','Grand Total'];
@@ -207,6 +190,8 @@
 // make dn list
 // -------------
 cur_frm.cscript.make_dn_list = function(parent,doc){
+	wn.require('lib/js/legacy/widgets/listing.js');
+
 	var lst = new Listing();
 	lst.colwidths = ['5%','20%','20%','20%','20%','15%'];
 	lst.colnames = ['Sr.','Id','Status','Delivery Note Date','Territory','Grand Total'];
@@ -223,15 +208,17 @@
 // make si list
 // -------------
 cur_frm.cscript.make_si_list = function(parent,doc){
+	wn.require('lib/js/legacy/widgets/listing.js');
+	
 	var lst = new Listing();
 	lst.colwidths = ['5%','20%','20%','20%','20%','15%'];
 	lst.colnames = ['Sr.','Id','Posting Date','Due Date','Debit To','Grand Total'];
 	lst.coltypes = ['Data','Link','Data','Data','Link','Currency'];
-	lst.coloptions = ['','Receivable Voucher','','','Account',''];
+	lst.coloptions = ['','Sales Invoice','','','Account',''];
 
 
-	var q = repl("select name,posting_date,due_date,debit_to,grand_total from `tabReceivable Voucher` where customer='%(cust)s' order by posting_date desc", {'cust':doc.name});
-	var q_max = repl("select count(name) from `tabReceivable Voucher` where customer='%(cust)s'", {'cust':doc.name});
+	var q = repl("select name,posting_date,due_date,debit_to,grand_total from `tabSales Invoice` where customer='%(cust)s' order by posting_date desc", {'cust':doc.name});
+	var q_max = repl("select count(name) from `tabSales Invoice` where customer='%(cust)s'", {'cust':doc.name});
 	
-	cur_frm.cscript.run_list(lst,parent,q,q_max,doc,'Sales Invoice','Receivable Voucher');
+	cur_frm.cscript.run_list(lst,parent,q,q_max,doc,'Sales Invoice','Sales Invoice');
 }
diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py
index 4530cf5..80ac914 100644
--- a/erpnext/selling/doctype/customer/customer.py
+++ b/erpnext/selling/doctype/customer/customer.py
@@ -253,19 +253,19 @@
 			('Contact', 'customer'),
 			('Customer Issue', 'customer'),
 			('Delivery Note', 'customer'),
-			('Enquiry', 'customer'),
+			('Opportunity', 'customer'),
 			('Installation Note', 'customer'),
 			('Maintenance Schedule', 'customer'),
 			('Maintenance Visit', 'customer'),
 			('Project', 'customer'),
 			('Quotation', 'customer'),
-			('Receivable Voucher', 'customer'),
+			('Sales Invoice', 'customer'),
 			('Sales Order', 'customer'),
 			('Serial No', 'customer'),
 			('Shipping Address', 'customer'),
 			('Stock Entry', 'customer'),
 			('Support Ticket', 'customer'),
-			('Ticket', 'customer')]
+			('Task', 'customer')]
 			for rec in update_fields:
 				sql("update `tab%s` set customer_name = '%s' where %s = '%s'" %(rec[0],newdn,rec[1],olddn))
 				
diff --git a/erpnext/selling/doctype/customer/customer.txt b/erpnext/selling/doctype/customer/customer.txt
index 993dc29..59105b3 100644
--- a/erpnext/selling/doctype/customer/customer.txt
+++ b/erpnext/selling/doctype/customer/customer.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:56',
+		'creation': '2012-03-27 14:36:07',
 		'docstatus': 0,
-		'modified': '2012-02-29 13:24:31',
+		'modified': '2012-03-27 18:47:38',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -27,7 +27,7 @@
 		'show_in_menu': 0,
 		'subject': u'eval:"%(customer_name)s"=="%(name)s" ? "" : "%(customer_name)s"',
 		'tag_fields': u'customer_group,customer_type',
-		'version': 434
+		'version': 435
 	},
 
 	# These values are common for all DocField
@@ -59,46 +59,6 @@
 
 	# DocPerm
 	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
 		'cancel': 1,
 		'create': 1,
 		'doctype': u'DocPerm',
@@ -117,11 +77,52 @@
 		'write': 0
 	},
 
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'write': 0
+	},
+
 	# DocField
 	{
 		'colour': u'White:FFF',
 		'description': u'Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts',
 		'doctype': u'DocField',
+		'fieldname': u'basic_info',
 		'fieldtype': u'Section Break',
 		'label': u'Basic Info',
 		'oldfieldtype': u'Section Break',
@@ -195,6 +196,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -241,6 +243,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'address_contacts',
 		'fieldtype': u'Section Break',
 		'label': u'Address & Contacts',
 		'permlevel': 0
@@ -251,6 +254,7 @@
 		'colour': u'White:FFF',
 		'depends_on': u'eval:doc.__islocal',
 		'doctype': u'DocField',
+		'fieldname': u'address_desc',
 		'fieldtype': u'HTML',
 		'label': u'Address Desc',
 		'options': u'<em>Addresses will appear only when you save the customer</em>',
@@ -261,6 +265,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'address_html',
 		'fieldtype': u'HTML',
 		'label': u'Address HTML',
 		'permlevel': 1
@@ -269,6 +274,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break1',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -279,6 +285,7 @@
 		'colour': u'White:FFF',
 		'depends_on': u'eval:doc.__islocal',
 		'doctype': u'DocField',
+		'fieldname': u'contact_desc',
 		'fieldtype': u'HTML',
 		'label': u'Contact Desc',
 		'options': u'<em>Contact Details will appear only when you save the customer</em>',
@@ -289,6 +296,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'contact_html',
 		'fieldtype': u'HTML',
 		'label': u'Contact HTML',
 		'oldfieldtype': u'HTML',
@@ -299,6 +307,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'more_info',
 		'fieldtype': u'Section Break',
 		'label': u'More Info',
 		'oldfieldtype': u'Section Break',
@@ -308,6 +317,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break2',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -346,6 +356,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break3',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -385,6 +396,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'sales_team_section_break',
 		'fieldtype': u'Section Break',
 		'label': u'Sales Team',
 		'oldfieldtype': u'Section Break',
@@ -431,6 +443,7 @@
 		'colour': u'White:FFF',
 		'depends_on': u'eval:!doc.__islocal',
 		'doctype': u'DocField',
+		'fieldname': u'transaction_history',
 		'fieldtype': u'Section Break',
 		'label': u'Transaction History',
 		'permlevel': 0
@@ -441,6 +454,7 @@
 		'colour': u'White:FFF',
 		'depends_on': u'eval:!doc.__islocal',
 		'doctype': u'DocField',
+		'fieldname': u'history_html',
 		'fieldtype': u'HTML',
 		'label': u'History HTML',
 		'permlevel': 0
diff --git a/erpnext/selling/doctype/customer/listview.js b/erpnext/selling/doctype/customer/listview.js
new file mode 100644
index 0000000..3ac705a
--- /dev/null
+++ b/erpnext/selling/doctype/customer/listview.js
@@ -0,0 +1,18 @@
+// render
+wn.doclistviews['Customer'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			"`tabCustomer`.customer_name",
+			"`tabCustomer`.territory",
+		]);
+	},
+	
+	columns: [
+		{width: '5%', content:'avatar'},
+		{width: '53%', content:'name'},
+		{width: '10%', content:'tags'},
+		{width: '20%', content:'territory', css: {'color': '#aaa'}},
+		{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+});
diff --git a/erpnext/selling/doctype/enquiry/enquiry.js b/erpnext/selling/doctype/enquiry/enquiry.js
deleted file mode 100644
index c3f0a0b..0000000
--- a/erpnext/selling/doctype/enquiry/enquiry.js
+++ /dev/null
@@ -1,351 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-$import(SMS Control)
-
-cur_frm.cscript.refresh = function(doc, cdt, cdn){
-
-	// 
-
-	if(!doc.docstatus){
-		hide_field(['Update Follow up']);
-		hide_field(['email_id1','cc_to','subject','message','Attachment Html', 'Create New File', 'enquiry_attachment_detail','Send Email']);
-	}
-	else{
-		unhide_field(['Update Follow up']);
-		unhide_field(['email_id1','cc_to','subject','message','Attachment Html', 'Create New File', 'enquiry_attachment_detail','Send Email']);
-	}
-
-	
-	cur_frm.clear_custom_buttons();
-	if(doc.docstatus == 1) {
-		cur_frm.add_custom_button('Create Quotation', cur_frm.cscript['Create Quotation']);
-		cur_frm.add_custom_button('Enquiry Lost', cur_frm.cscript['Declare Enquiry Lost']);
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
-	}
-
-	//cur_frm.cscript.clear_values(doc,cdt,cdn);
-}
-
-// ONLOAD
-// ===============================================================
-cur_frm.cscript.onload = function(doc, cdt, cdn) {
-
-	if(!doc.enquiry_from) hide_field(['customer', 'customer_address', 'contact_person', 'customer_name','lead', 'lead_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']);
-	if(!doc.status) set_multiple(cdt,cdn,{status:'Draft'});
-	if(!doc.date) doc.transaction_date = date.obj_to_str(new Date());
-	if(!doc.company && sys_defaults.company) set_multiple(cdt,cdn,{company:sys_defaults.company});
-	if(!doc.fiscal_year && sys_defaults.fiscal_year) set_multiple(cdt,cdn,{fiscal_year:sys_defaults.fiscal_year});		
-	
-	if(doc.enquiry_from) {
-		if(doc.enquiry_from == 'Customer') {
-			hide_field(['lead', 'lead_name']);
-		}
-		else if (doc.enquiry_from == 'Lead') {
-			hide_field(['customer', 'customer_address', 'contact_person', 'customer_name', 'contact_display', 'customer_group']);
-		}
-	} 
-
-	// setup fetch
-	cur_frm.cscript.set_fetch();
-}
-
-cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) {
-	if(doc.enquiry_from == 'Lead' && doc.lead) {
-	 	cur_frm.cscript.lead(doc,cdt,cdn);
-	}
-}
-
-// fetch
-// ===============================================================
-cur_frm.cscript.set_fetch = function() {
-
-	// item
-	cur_frm.add_fetch('item_code', 'item_name', 'item_name');
-	cur_frm.add_fetch('item_code', 'stock_uom', 'uom');
-	cur_frm.add_fetch('item_code', 'description', 'description');
-	cur_frm.add_fetch('item_code', 'item_group', 'item_group');
-	cur_frm.add_fetch('item_code', 'brand', 'brand');
-
-	// customer
-
-}
-
-// hide - unhide fields on basis of enquiry_from lead or customer
-cur_frm.cscript.enquiry_from = function(doc,cdt,cdn){
-	cur_frm.cscript.lead_cust_show(doc,cdt,cdn);
-}
-
-// hide - unhide fields based on lead or customer
-cur_frm.cscript.lead_cust_show = function(doc,cdt,cdn){
-	if(doc.enquiry_from == 'Lead'){
-		unhide_field(['lead']);
-		hide_field(['lead_name','customer','customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
-		doc.lead = doc.lead_name = doc.customer = doc.customer_address = doc.contact_person = doc.address_display = doc.contact_display = doc.contact_mobile = doc.contact_email = doc.territory = doc.customer_group = "";
-	}
-	else if(doc.enquiry_from == 'Customer'){		
-		unhide_field(['customer']);
-		hide_field(['lead','lead_name','address_display','contact_display','contact_mobile','contact_email','territory']);		
-		doc.lead = doc.lead_name = doc.customer = doc.customer_address = doc.contact_person = doc.address_display = doc.contact_display = doc.contact_mobile = doc.contact_email = doc.territory = doc.customer_group = "";
-	}
-}
-
-// customer
-cur_frm.cscript.customer = function(doc,dt,dn) {
-	if(doc.customer) get_server_fields('get_default_customer_address', JSON.stringify({customer: doc.customer}),'', doc, dt, dn, 1);
-	if(doc.customer) unhide_field(['customer_name','customer_address','contact_person','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
-}
-
-cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {		
-	if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
-}
-
-cur_frm.fields_dict.customer_address.on_new = function(dn) {
-	locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
-	locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
-}
-
-cur_frm.fields_dict.contact_person.on_new = function(dn) {
-	locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
-	locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
-}
-
-cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
-
-cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
-
-// lead
-cur_frm.fields_dict['lead'].get_query = function(doc,cdt,cdn){
-	return 'SELECT `tabLead`.name, `tabLead`.lead_name FROM `tabLead` WHERE `tabLead`.%(key)s LIKE "%s"	ORDER BY	`tabLead`.`name` ASC LIMIT 50';
-}
-
-cur_frm.cscript.lead = function(doc, cdt, cdn) {
-	if(doc.lead) get_server_fields('get_lead_details', doc.lead,'', doc, cdt, cdn, 1);
-	if(doc.lead) unhide_field(['lead_name','address_display','contact_mobile','contact_email','territory']);	
-}
-
-
-//item getquery
-//=======================================
-cur_frm.fields_dict['enquiry_details'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
-	if (doc.enquiry_type == 'Maintenance')
-		return 'SELECT tabItem.name,tabItem.item_name,tabItem.description FROM tabItem WHERE tabItem.is_service_item="Yes" AND (ifnull(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` > NOW() OR `tabItem`.`end_of_life`="0000-00-00") AND tabItem.%(key)s LIKE "%s" LIMIT 50';
-	else 
-		return 'SELECT tabItem.name,tabItem.item_name,tabItem.description FROM tabItem WHERE tabItem.is_sales_item="Yes" AND (ifnull(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` > NOW() OR `tabItem`.`end_of_life`="0000-00-00") AND tabItem.%(key)s LIKE "%s" LIMIT 50';
-}
-	
- //Fetch Item Details
-//====================================================================================================================
-cur_frm.cscript.item_code = function(doc, cdt, cdn) {
-	var d = locals[cdt][cdn];
-	if (d.item_code) {
-		get_server_fields('get_item_details',d.item_code,'enquiry_details',doc,cdt,cdn,1);
-	}
-}
-
-/*
- //Fetch Customer Details
-//======================================================================================================================
-cur_frm.cscript.customer = function(doc, cdt, cdn){
-	if (doc.customer) {
-		get_server_fields('get_cust_address',doc.customer,'',doc,cdt,cdn,1);
-	}
-}
-*/
-
-/*
-//=======================================================================================================================
-cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabContact`.contact_name FROM `tabContact` WHERE `tabContact`.is_customer = 1 AND `tabContact`.customer = "'+ doc.customer+'" AND `tabContact`.docstatus != 2 AND `tabContact`.contact_name LIKE "%s" ORDER BY `tabContact`.contact_name ASC LIMIT 50';
-}
-*/
-
-/*
-//=======================================================================================================================
-cur_frm.cscript.contact_person = function(doc, cdt, cdn){
-	if (doc.contact_person) {
-		arg = {};
-		arg.contact_person = doc.contact_person;
-		arg.customer = doc.customer;
-		get_server_fields('get_contact_details',docstring(arg),'',doc,cdt,cdn,1);
-	}
-}
-*/
-
-/*
-// hide - unhide fields based on lead or customer..
-//=======================================================================================================================
-cur_frm.cscript.clear_values = function(doc,cdt,cdn) {
-	if(doc.enquiry_from == 'Lead') {
-		doc.customer = doc.customer_name = doc.contact_person = doc.customer_group = "";
-	}
-	else if(doc.enquiry_from == 'Customer') {
-		doc.lead =	doc.lead_name = "";
-	}
-	refresh_many(['lead','lead_name','customer','customer_name','contact_person','customer_group']);
-}
-*/
-
-/*
-//================ hide - unhide fields on basis of enquiry from either lead or customer =============================== 
-cur_frm.cscript.enquiry_from = function(doc,cdt,cdn){
-	cur_frm.cscript.clear_values(doc,cdt,cdn);
-	 doc.address = doc.territory = doc.contact_no = doc.email_id = "";
-	 refresh_many(['territory','address','contact_no','email_id']);
-}
-*/
-
-/*
-//================ create new contact ============================================================================
-cur_frm.cscript.new_contact = function(){
-	tn = createLocal('Contact');
-	locals['Contact'][tn].is_customer = 1;
-	if(doc.customer) locals['Contact'][tn].customer = doc.customer;
-	loaddoc('Contact', tn);
-}
-*/
-
-//=======================================================================================================================
-cur_frm.cscript['Create New File'] = function(doc){
-	var fl = LocalDB.create('File');
-	fl = locals['File'][fl];
-	loaddoc('File', fl.name);
-}
-
-//update follow up
-//=================================================================================
-cur_frm.cscript['Update Follow up'] = function(doc,cdt,cdn){
-
-	$c_obj(make_doclist(doc.doctype, doc.name),'update_follow_up','',function(r, rt){
-		refresh_field('follow_up');
-		doc.__unsaved = 0;
-		cur_frm.refresh_header();
-	});
-}
-
- // Create New Quotation
-// =======================================================================================================================
-cur_frm.cscript['Create Quotation'] = function(){
-	n = createLocal("Quotation");
-	$c('dt_map', args={
-		'docs':compress_doclist([locals["Quotation"][n]]),
-		'from_doctype':'Enquiry',
-		'to_doctype':'Quotation',
-		'from_docname':cur_frm.docname,
-		'from_to_list':"[['Enquiry', 'Quotation'],['Enquiry Detail','Quotation Detail']]"
-	}
-	, function(r,rt) {
-		loaddoc("Quotation", n);
-		}
-	);
-}
-
-
-// declare enquiry	lost
-//-------------------------
-cur_frm.cscript['Declare Enquiry Lost'] = function(){
-	var e_lost_dialog;
-
-	set_e_lost_dialog = function(){
-		e_lost_dialog = new Dialog(400,150,'Add Enquiry Lost Reason');
-		e_lost_dialog.make_body([
-			['HTML', 'Message', '<div class="comment">Please add enquiry lost reason</div>'],
-			['Text', 'Enquiry Lost Reason'],
-			['HTML', 'Response', '<div class = "comment" id="update_enquiry_dialog_response"></div>'],
-			['HTML', 'Add Reason', '<div></div>']
-		]);
-		
-		var add_reason_btn1 = $a($i(e_lost_dialog.widgets['Add Reason']), 'button', 'button');
-		add_reason_btn1.innerHTML = 'Add';
-		add_reason_btn1.onclick = function(){ e_lost_dialog.add(); }
-		
-		var add_reason_btn2 = $a($i(e_lost_dialog.widgets['Add Reason']), 'button', 'button');
-		add_reason_btn2.innerHTML = 'Cancel';
-		$y(add_reason_btn2,{marginLeft:'4px'});
-		add_reason_btn2.onclick = function(){ e_lost_dialog.hide();}
-		
-		e_lost_dialog.onshow = function() {
-			e_lost_dialog.widgets['Enquiry Lost Reason'].value = '';
-			$i('update_enquiry_dialog_response').innerHTML = '';
-		}
-		
-		e_lost_dialog.add = function() {
-			// sending...
-			$i('update_enquiry_dialog_response').innerHTML = 'Processing...';
-			var arg =	strip(e_lost_dialog.widgets['Enquiry Lost Reason'].value);
-			var call_back = function(r,rt) { 
-				if(r.message == 'true'){
-					$i('update_enquiry_dialog_response').innerHTML = 'Done';
-					e_lost_dialog.hide();
-				}
-			}
-			if(arg) {
-				$c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name),'declare_enquiry_lost',arg,call_back);
-			}
-			else{
-				msgprint("Please add enquiry lost reason");
-			}
-			
-		}
-	}	
-	
-	if(!e_lost_dialog){
-		set_e_lost_dialog();
-	}	
-	e_lost_dialog.show();
-}
-
-//get query select Territory
-//=======================================================================================================================
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';}
-
-/*
-//===================== Enquiry From validation - either customer or lead is mandatory =====================================
-cur_frm.cscript.enq_frm_validate = function(doc,cdt,cdn){
-	
-	if(doc.enquiry_from == 'Lead'){
-		if(!doc.lead){
-			alert("Lead is mandatory.");	
-			validated = false; 
-		}
-	}
-	else if(doc.enquiry_from == 'Customer'){
-			if(!doc.customer){
-			alert("Customer is mandatory.");
-			validated = false;
-		}
-		else if(!doc.contact_person){
-			alert("Contact Person is mandatory.");
-			validated = false;
-		}
-		else if(!doc.customer_group){
-			alert("Customer Group is mandatory.");
-			validated = false;
-		}
-	} 
-}
-*/
-
-//===================validation function ==============================================================================
-
-cur_frm.cscript.validate = function(doc,cdt,cdn){
-	//cur_frm.cscript.enq_frm_validate(doc,cdt,cdn);
-}
diff --git a/erpnext/selling/doctype/enquiry/enquiry.py b/erpnext/selling/doctype/enquiry/enquiry.py
deleted file mode 100644
index debc3d7..0000000
--- a/erpnext/selling/doctype/enquiry/enquiry.py
+++ /dev/null
@@ -1,347 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.	If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-from utilities.transaction_base import TransactionBase
-
-class DocType(TransactionBase):
-	def __init__(self,doc,doclist=[]):
-		self.doc = doc
-		self.doclist = doclist
-		self.fname = 'enq_details'
-		self.tname = 'Enquiry Detail'
-
-	# Autoname
-	# ====================================================================================================================
-	def autoname(self):
-		self.doc.name = make_autoname(self.doc.naming_series+'.####')
-
-	#--------Get customer address-------
-	# ====================================================================================================================
-	def get_cust_address(self,name):
-		details = sql("select customer_name, address, territory, customer_group from `tabCustomer` where name = '%s' and docstatus != 2" %(name), as_dict = 1)
-		if details:
-			ret = {
-				'customer_name':	details and details[0]['customer_name'] or '',
-				'address'	:	details and details[0]['address'] or '',
-				'territory'			 :	details and details[0]['territory'] or '',
-				'customer_group'		:	details and details[0]['customer_group'] or ''
-			}
-			# ********** get primary contact details (this is done separately coz. , in case there is no primary contact thn it would not be able to fetch customer details in case of join query)
-
-			contact_det = sql("select contact_name, contact_no, email_id from `tabContact` where customer = '%s' and is_customer = 1 and is_primary_contact = 'Yes' and docstatus != 2" %(name), as_dict = 1)
-
-			
-			ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or ''
-			ret['contact_no']		 = contact_det and contact_det[0]['contact_no'] or ''
-			ret['email_id']			 = contact_det and contact_det[0]['email_id'] or ''
-		
-			return ret
-		else:
-			msgprint("Customer : %s does not exist in system." % (name))
-			raise Exception
-		
-
-	# ====================================================================================================================		
-	def get_contact_details(self, arg):
-		arg = eval(arg)
-		contact = sql("select contact_no, email_id from `tabContact` where contact_name = '%s' and customer_name = '%s'" %(arg['contact_person'],arg['customer']), as_dict = 1)
-		ret = {
-			'contact_no' : contact and contact[0]['contact_no'] or '',
-			'email_id' : contact and contact[0]['email_id'] or ''
-		}
-		return ret
-		
-	# ====================================================================================================================
-	def on_update(self):
-		# Add to calendar
-		#if self.doc.contact_date and self.doc.last_contact_date != self.doc.contact_date:
-		if self.doc.contact_date and self.doc.contact_date_ref != self.doc.contact_date:
-			if self.doc.contact_by:
-				self.add_calendar_event()
-			set(self.doc, 'contact_date_ref',self.doc.contact_date)
-		set(self.doc, 'status', 'Draft')
-	
-	# Add to Calendar
-	# ====================================================================================================================
-	def add_calendar_event(self):
-		desc=''
-		user_lst =[]
-		if self.doc.customer:
-			if self.doc.contact_person:
-				desc = 'Contact '+cstr(self.doc.contact_person)
-			else:
-				desc = 'Contact customer '+cstr(self.doc.customer)
-		elif self.doc.lead:
-			if self.doc.lead_name:
-				desc = 'Contact '+cstr(self.doc.lead_name)
-			else:
-				desc = 'Contact lead '+cstr(self.doc.lead)
-		desc = desc+ '. By : ' + cstr(self.doc.contact_by)
-		
-		if self.doc.to_discuss:
-			desc = desc+' To Discuss : ' + cstr(self.doc.to_discuss)
-		
-		ev = Document('Event')
-		ev.description = desc
-		ev.event_date = self.doc.contact_date
-		ev.event_hour = '10:00'
-		ev.event_type = 'Private'
-		ev.ref_type = 'Enquiry'
-		ev.ref_name = self.doc.name
-		ev.save(1)
-		
-		user_lst.append(self.doc.owner)
-		
-		chk = sql("select t1.name from `tabProfile` t1, `tabSales Person` t2 where t2.email_id = t1.name and t2.name=%s",self.doc.contact_by)
-		if chk:
-			user_lst.append(chk[0][0])
-		
-		for d in user_lst:
-			ch = addchild(ev, 'event_individuals', 'Event User', 0)
-			ch.person = d
-			ch.save(1)
-
-	#--------------Validation For Last Contact Date-----------------
-	# ====================================================================================================================
-	def set_last_contact_date(self):
-		if self.doc.contact_date_ref and self.doc.contact_date_ref != self.doc.contact_date:
-			if getdate(self.doc.contact_date_ref) < getdate(self.doc.contact_date):
-				self.doc.last_contact_date=self.doc.contact_date_ref
-			else:
-				msgprint("Contact Date Cannot be before Last Contact Date")
-				raise Exception
-	
-	# check if item present in item table
-	# ====================================================================================================================
-	def validate_item_details(self):
-		if not getlist(self.doclist, 'enquiry_details'):
-			msgprint("Please select items for which enquiry needs to be made")
-			raise Exception
-	
-	#check if enquiry date in the range of fiscal year selected
-	#=====================================================
-	def validate_fiscal_year(self):
-		fy=sql("select year_start_date from `tabFiscal Year` where name='%s'"%self.doc.fiscal_year)
-		ysd=fy and fy[0][0] or ""
-		yed=add_days(str(ysd),365)
-		if str(self.doc.transaction_date) < str(ysd) or str(self.doc.transaction_date) > str(yed):
-			msgprint("Enquiry Date is not within the Fiscal Year selected")
-			raise Exception		
-
-	def validate_lead_cust(self):
-		if self.doc.enquiry_from == 'Lead' and not self.doc.lead:
-			msgprint("Lead Id is mandatory if 'Enquiry From' is selected as Lead", raise_exception=1)
-		elif self.doc.enquiry_from == 'Customer' and not self.doc.customer:
-			msgprint("Customer is mandatory if 'Enquiry From' is selected as Customer", raise_exception=1)
-
-	
-	def validate(self):
-		self.validate_fiscal_year()
-		self.set_last_contact_date()
-		self.validate_item_details()
-		self.validate_lead_cust()
-		
-	# On Submit Functions
-	# ====================================================================================================================
-	def on_submit(self):
-		set(self.doc, 'status', 'Submitted')
-		
-	# ====================================================================================================================	
-	def on_cancel(self):
-		chk = sql("select t1.name from `tabQuotation` t1, `tabQuotation Detail` t2 where t2.parent = t1.name and t1.docstatus=1 and (t1.status!='Order Lost' and t1.status!='Cancelled') and t2.prevdoc_docname = %s",self.doc.name)
-		if chk:
-			msgprint("Quotation No. "+cstr(chk[0][0])+" is submitted against this Enquiry. Thus can not be cancelled.")
-			raise Exception
-		else:
-			set(self.doc, 'status', 'Cancelled')
-		
-	# declare as enquiry lost
-	#---------------------------
-	def declare_enquiry_lost(self,arg):
-		chk = sql("select t1.name from `tabQuotation` t1, `tabQuotation Detail` t2 where t2.parent = t1.name and t1.docstatus=1 and (t1.status!='Order Lost' and t1.status!='Cancelled') and t2.prevdoc_docname = %s",self.doc.name)
-		if chk:
-			msgprint("Quotation No. "+cstr(chk[0][0])+" is submitted against this Enquiry. Thus 'Enquiry Lost' can not be declared against it.")
-			raise Exception
-		else:
-			set(self.doc, 'status', 'Enquiry Lost')
-			set(self.doc, 'order_lost_reason', arg)
-			return 'true'
-		
-	# ====================================================================================================================	
-	def update_follow_up(self):
-		
-		sql("delete from `tabFollow up` where parent = '%s'"%self.doc.name);
-		for d in getlist(self.doclist, 'follow_up'):		
-			d.save()
-		self.doc.save()
-		
-		
-	# On Send Email
-	# ====================================================================================================================
-	#def send_emails(self,email,sender,subject,message):
-	#	if email:
-	#		sendmail(email,sender,subject=subject or 'Enquiry',parts=[['text/plain',message or self.get_enq_summary()]])
-
-	# Prepare HTML Table and Enter Enquiry Details in it, which will be added in enq summary
-	# ====================================================================================================================
-	def quote_table(self):
-		if getlist(self.doclist,'enq_details'):
-			header_lbl = ['Item Code','Item Name','Description','Reqd Qty','UOM']
-			item_tbl = '''<table style="width:90%%; border:1px solid #AAA; border-collapse:collapse"><tr>'''
-			for i in header_lbl:
-				item_header = '''<td style="width=20%%; border:1px solid #AAA; border-collapse:collapse;"><b>%s</b></td>''' % i
-				item_tbl += item_header
-			item_tbl += '''</tr>'''
-			
-			for d in getlist(self.doclist,'enq_details'):
-				item_det = '''
-					<tr><td style="width:20%%; border:1px solid #AAA; border-collpase:collapse">%s</td>
-					<td style="width:20%%; border:1px solid #AAA; border-collapse:collpase">%s</td>
-					<td style="width:20%%; border:1px solid #AAA; border-collapse:collpase">%s</td>
-					<td style="width:20%%; border:1px solid #AAA; border-collapse:collpase">%s</td>
-					<td style="width:20%%; border:1px solid #AAA; border-collapse:collpase">%s</td></tr>
-				''' % (d.item_code,d.item_name,d.description,d.reqd_qty,d.uom)
-				item_tbl += item_det
-			item_tbl += '''</table>'''
-			return item_tbl
-			
-	# Prepare HTML Page containing summary of Enquiry, which will be sent as message in E-mail
-	# ====================================================================================================================
-	def get_enq_summary(self):
-
-		t = """
-				<html><head></head>
-				<body>
-					<div style="border:1px solid #AAA; padding:20px; width:100%%">
-						<div style="text-align:center;font-size:14px"><b>Request For Quotation</b><br></div>
-						<div style="text-align:center;font-size:12px"> %(from_company)s</div>
-						<div style="text-align:center; font-size:10px"> %(company_address)s</div>
-						<div style="border-bottom:1px solid #AAA; padding:10px"></div> 
-						
-						<div style="padding-top:10px"><b>Quotation Details</b></div>
-						<div><table style="width:100%%">
-						<tr><td style="width:40%%">Enquiry No:</td> <td style="width:60%%"> %(name)s</td></tr>
-						<tr><td style="width:40%%">Opening Date:</td> <td style="width:60%%"> %(transaction_date)s</td></tr>
-						<tr><td style="width:40%%">Expected By Date:</td> <td style="width:60%%"> %(expected_date)s</td></tr>
-						</table>
-						</div>
-						
-						<div style="padding-top:10px"><b>Terms and Conditions</b></div>
-						<div> %(terms_and_conditions)s</div>
-						
-						<div style="padding-top:10px"><b>Contact Details</b></div>
-						<div><table style="width:100%%">
-						<tr><td style="width=40%%">Contact Person:</td><td style="width:60%%"> %(contact_person)s</td></tr>
-						<tr><td style="width=40%%">Contact No:</td><td style="width:60%%"> %(contact_no)s</td></tr>
-						<tr><td style="width=40%%">Email:</td><td style="width:60%%"> %(email)s</td></tr>
-						</table></div>
-						""" % (self.doc.fields)
-		
-		t += """<br><div><b>Quotation Items</b><br></div><div style="width:100%%">%s</div>
-						<br>
-To login into the system, use link : <div><a href='http://67.205.111.118/v160/login.html' target='_blank'>http://67.205.111.118/v160/login.html</a></div><br><br>
-						</div>
-					</body>
-					</html>
-					""" % (self.quote_table())
-		return t
-			
-	#-----------------Email-------------------------------------------- 
-	# ====================================================================================================================
-	def send_emails(self, email=[], subject='', message=''):
-		if email:
-			sender_email= sql("Select email from `tabProfile` where name='%s'"%session['user'])
-			if sender_email and sender_email[0][0]:
-				attach_list=[]
-				for at in getlist(self.doclist,'enquiry_attachment_detail'):
-					if at.select_file:
-						attach_list.append(at.select_file)
-				cc_list=[]
-				if self.doc.cc_to:
-					for cl in (self.doc.cc_to.split(',')):
-						if not validate_email_add(cl.strip(' ')):
-							msgprint('error:%s is not a valid email id' % cl.strip(' '))
-							raise Exception
-						cc_list.append(cl.strip(' ')) 
-						sendmail(cc_list, sender=sender_email[0][0], subject=subject, parts=[['text/html', message]], attach=attach_list)					 
-				sendmail(email, sender=sender_email[0][0], subject=subject, parts=[['text/html', message]], cc=cc_list, attach=attach_list)
-				#sendmail(cc_list, sender = sender_email[0][0], subject = subject , parts = [['text/html', message]],attach=attach_list)
-				msgprint("Mail has been sent")
-				self.add_in_follow_up(message,'Email')
-			else:
-				msgprint("Please enter your mail id in Profile")
-				raise Exception
-	
-	#-------------------------Checking Sent Mails Details----------------------------------------------
-	# ====================================================================================================================
-	def sent_mail(self):
-		if not self.doc.subject or not self.doc.message:
-			msgprint("Please enter subject & message in their respective fields.")
-		elif not self.doc.email_id1:
-			msgprint("Recipient not specified. Please add email id in 'Send To'.")
-			raise Exception
-		else :
-			if not validate_email_add(self.doc.email_id1.strip(' ')):
-				msgprint('error:%s is not a valid email id' % self.doc.email_id1)
-			else:
-				self.send_emails([self.doc.email_id1.strip(' ')], subject = self.doc.subject ,message = self.doc.message)
-
-	#---------------------- Add details in follow up table----------------
-	# ====================================================================================================================
-	def add_in_follow_up(self,message,type):
-		import datetime
-		child = addchild( self.doc, 'follow_up', 'Follow up', 1, self.doclist)
-		child.date = datetime.datetime.now().date().strftime('%Y-%m-%d')
-		child.notes = message
-		child.follow_up_type = type
-		child.save()
-
-	#-------------------SMS----------------------------------------------
-	# ====================================================================================================================
-	def send_sms(self):
-		if not self.doc.sms_message:
-			msgprint("Please enter message in SMS Section ")
-			raise Exception
-		elif not getlist(self.doclist, 'enquiry_sms_detail'):
-			msgprint("Please mention mobile no. to which sms needs to be sent")
-			raise Exception
-		else:
-			receiver_list = []
-			for d in getlist(self.doclist,'enquiry_sms_detail'):
-				if d.other_mobile_no:
-					receiver_list.append(d.other_mobile_no)
-		
-		if receiver_list:
-			msgprint(get_obj('SMS Control', 'SMS Control').send_sms(receiver_list, self.doc.sms_message))
-			self.add_in_follow_up(self.doc.sms_message,'SMS')
diff --git a/erpnext/selling/doctype/enquiry/enquiry.txt b/erpnext/selling/doctype/enquiry/enquiry.txt
deleted file mode 100644
index 0a21d8a..0000000
--- a/erpnext/selling/doctype/enquiry/enquiry.txt
+++ /dev/null
@@ -1,616 +0,0 @@
-# DocType, Enquiry
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:00',
-		'docstatus': 0,
-		'modified': '2012-03-07 13:10:00',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1324284087',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'document_type': u'Transaction',
-		'module': u'Selling',
-		'name': '__common__',
-		'search_fields': u'status,transaction_date,customer,lead,enquiry_type,territory,company',
-		'section_style': u'Tabbed',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'subject': u'To %(customer_name)s%(lead_name)s on %(transaction_date)s',
-		'version': 588
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Enquiry',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
-		'parent': u'Enquiry',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'read': 1
-	},
-
-	# DocType, Enquiry
-	{
-		'doctype': 'DocType',
-		'name': u'Enquiry'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'System Manager'
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Enter customer enquiry for which you might raise a quotation in future',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Basic Info',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'To manage multiple series please go to Setup > Manage Series',
-		'doctype': u'DocField',
-		'fieldname': u'naming_series',
-		'fieldtype': u'Select',
-		'label': u'Series',
-		'no_copy': 1,
-		'oldfieldname': u'naming_series',
-		'oldfieldtype': u'Select',
-		'options': u'ENQUIRY\nENQ',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'enquiry_from',
-		'fieldtype': u'Select',
-		'label': u'Enquiry From',
-		'oldfieldname': u'enquiry_from',
-		'oldfieldtype': u'Select',
-		'options': u'\nLead\nCustomer',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 0,
-		'reqd': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'customer',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'Customer',
-		'oldfieldname': u'customer',
-		'oldfieldtype': u'Link',
-		'options': u'Customer',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'customer_address',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Customer Address',
-		'options': u'Address',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_person',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Contact Person',
-		'options': u'Contact',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'customer_name',
-		'fieldtype': u'Data',
-		'label': u'Customer Name',
-		'permlevel': 1,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'lead',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'Lead',
-		'oldfieldname': u'lead',
-		'oldfieldtype': u'Link',
-		'options': u'Lead',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'lead_name',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'label': u'Name',
-		'oldfieldname': u'lead_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'address_display',
-		'fieldtype': u'Small Text',
-		'hidden': 0,
-		'label': u'Address',
-		'oldfieldname': u'address',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_display',
-		'fieldtype': u'Small Text',
-		'label': u'Contact',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_mobile',
-		'fieldtype': u'Text',
-		'label': u'Contact Mobile No',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'contact_email',
-		'fieldtype': u'Text',
-		'label': u'Contact Email',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'default': u'Today',
-		'description': u'The date at which current entry is made in system.',
-		'doctype': u'DocField',
-		'fieldname': u'transaction_date',
-		'fieldtype': u'Date',
-		'label': u'Enquiry Date',
-		'oldfieldname': u'transaction_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': u'50px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'enquiry_type',
-		'fieldtype': u'Select',
-		'label': u'Enquiry Type',
-		'oldfieldname': u'enquiry_type',
-		'oldfieldtype': u'Select',
-		'options': u'\nSales\nMaintenance',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'Draft',
-		'doctype': u'DocField',
-		'fieldname': u'status',
-		'fieldtype': u'Select',
-		'label': u'Status',
-		'no_copy': 1,
-		'oldfieldname': u'status',
-		'oldfieldtype': u'Select',
-		'options': u'\nDraft\nSubmitted\nQuotation Sent\nOrder Confirmed\nEnquiry Lost\nCancelled',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'amended_from',
-		'fieldtype': u'Data',
-		'label': u'Amended From',
-		'no_copy': 1,
-		'oldfieldname': u'amended_from',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'amendment_date',
-		'fieldtype': u'Date',
-		'label': u'Amendment Date',
-		'no_copy': 1,
-		'oldfieldname': u'amendment_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'<a href="javascript:cur_frm.cscript.TerritoryHelp();">To Manage Territory, click here</a>',
-		'doctype': u'DocField',
-		'fieldname': u'territory',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Territory',
-		'options': u'Territory',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:doc.enquiry_from=="Customer"',
-		'description': u'<a href="javascript:cur_frm.cscript.CGHelp();">To Manage Customer Groups, click here</a>',
-		'doctype': u'DocField',
-		'fieldname': u'customer_group',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'Customer Group',
-		'oldfieldname': u'customer_group',
-		'oldfieldtype': u'Link',
-		'options': u'Customer Group',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Items',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u"Items which do not exist in Item master can also be entered on customer's request",
-		'doctype': u'DocField',
-		'fieldname': u'enquiry_details',
-		'fieldtype': u'Table',
-		'label': u'Enquiry Details',
-		'oldfieldname': u'enquiry_details',
-		'oldfieldtype': u'Table',
-		'options': u'Enquiry Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Filing in Additional Information about the Enquiry will help you analyze your data better.',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'More Info',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'company',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Company',
-		'oldfieldname': u'company',
-		'oldfieldtype': u'Link',
-		'options': u'Company',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'fiscal_year',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Fiscal Year',
-		'oldfieldname': u'fiscal_year',
-		'oldfieldtype': u'Select',
-		'options': u'link:Fiscal Year',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'source',
-		'fieldtype': u'Select',
-		'label': u'Source',
-		'oldfieldname': u'source',
-		'oldfieldtype': u'Select',
-		'options': u"\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign\nWalk In",
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Enter name of campaign if source of enquiry is campaign',
-		'doctype': u'DocField',
-		'fieldname': u'campaign',
-		'fieldtype': u'Link',
-		'label': u'Campaign',
-		'oldfieldname': u'campaign',
-		'oldfieldtype': u'Link',
-		'options': u'Campaign',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldname': u'order_lost_reason',
-		'fieldtype': u'Small Text',
-		'label': u'Order Lost Reason',
-		'no_copy': 1,
-		'oldfieldname': u'order_lost_reason',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1,
-		'report_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Your sales person who will contact the customer in future',
-		'doctype': u'DocField',
-		'fieldname': u'contact_by',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Next Contact By',
-		'oldfieldname': u'contact_by',
-		'oldfieldtype': u'Link',
-		'options': u'Profile',
-		'permlevel': 0,
-		'width': u'75px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Your sales person will get a reminder on this date to contact the customer',
-		'doctype': u'DocField',
-		'fieldname': u'contact_date',
-		'fieldtype': u'Date',
-		'label': u'Next Contact Date',
-		'oldfieldname': u'contact_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 0,
-		'colour': u'White:FFF',
-		'depends_on': u'eval:!doc.__islocal',
-		'description': u'Date on which the lead was last contacted',
-		'doctype': u'DocField',
-		'fieldname': u'last_contact_date',
-		'fieldtype': u'Date',
-		'label': u'Last Contact Date',
-		'no_copy': 1,
-		'oldfieldname': u'last_contact_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'to_discuss',
-		'fieldtype': u'Small Text',
-		'label': u'To Discuss',
-		'no_copy': 1,
-		'oldfieldname': u'to_discuss',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Keep a track of communication related to this enquiry which will help for future reference.',
-		'doctype': u'DocField',
-		'fieldtype': u'Section Break',
-		'label': u'Communication History',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'follow_up',
-		'fieldtype': u'Table',
-		'label': u'Follow Up',
-		'oldfieldname': u'follow_up',
-		'oldfieldtype': u'Table',
-		'options': u'Follow up',
-		'permlevel': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/enquiry_detail/__init__.py b/erpnext/selling/doctype/enquiry_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/selling/doctype/enquiry_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/selling/doctype/enquiry_detail/enquiry_detail.txt b/erpnext/selling/doctype/enquiry_detail/enquiry_detail.txt
deleted file mode 100644
index 284b436..0000000
--- a/erpnext/selling/doctype/enquiry_detail/enquiry_detail.txt
+++ /dev/null
@@ -1,148 +0,0 @@
-# DocType, Enquiry Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:01',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Selling',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 59
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Enquiry Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Enquiry Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Enquiry Detail'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'reqd': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Item Name',
-		'oldfieldname': 'item_name',
-		'oldfieldtype': 'Data',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'reqd': 1,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_group',
-		'fieldtype': 'Link',
-		'hidden': 1,
-		'idx': 6,
-		'label': 'Item Group',
-		'oldfieldname': 'item_group',
-		'oldfieldtype': 'Link',
-		'options': 'Item Group',
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'brand',
-		'fieldtype': 'Link',
-		'hidden': 1,
-		'idx': 7,
-		'label': 'Brand',
-		'oldfieldname': 'brand',
-		'oldfieldtype': 'Link',
-		'options': 'Brand',
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'basic_rate',
-		'fieldtype': 'Currency',
-		'hidden': 1,
-		'idx': 8,
-		'label': 'Basic Rate',
-		'oldfieldname': 'basic_rate',
-		'oldfieldtype': 'Currency',
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'idx': 9,
-		'label': 'Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'uom',
-		'fieldtype': 'Link',
-		'idx': 10,
-		'label': 'UOM',
-		'oldfieldname': 'uom',
-		'oldfieldtype': 'Link',
-		'options': 'UOM',
-		'search_index': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/enquiry_sms_detail/__init__.py b/erpnext/selling/doctype/enquiry_sms_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/selling/doctype/enquiry_sms_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/selling/doctype/enquiry_sms_detail/enquiry_sms_detail.txt b/erpnext/selling/doctype/enquiry_sms_detail/enquiry_sms_detail.txt
deleted file mode 100644
index 84d0907..0000000
--- a/erpnext/selling/doctype/enquiry_sms_detail/enquiry_sms_detail.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2009-12-11 11:45:55', 'search_fields': None, 'module': 'CRM', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'dhanalekshmi@webnotestech.com', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': None, 'allow_rename': None, 'smallicon': None, 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 5, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': 1, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': None, 'client_string': None, 'use_template': None, 'modified_by': 'ashwini@webnotestech.com', 'document_type': None, 'name': 'Enquiry SMS Detail', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-09-20 14:06:57', 'server_code_error': None, 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2009-12-11 11:45:55', 'doctype': 'DocField', 'oldfieldname': 'other_mobile_no', 'owner': 'dhanalekshmi@webnotestech.com', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'ashwini@webnotestech.com', 'label': 'Mobile No', 'width': '200px', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Enquiry SMS Detail', 'search_index': None, 'allow_on_submit': 1, 'icon': None, 'name': 'FL03494', 'idx': 1, 'default': None, 'colour': None, 'modified': '2010-08-08 11:13:11', 'parenttype': 'DocType', 'fieldname': 'other_mobile_no', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/follow_up/__init__.py b/erpnext/selling/doctype/follow_up/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/selling/doctype/follow_up/__init__.py
+++ /dev/null
diff --git a/erpnext/selling/doctype/follow_up/follow_up.txt b/erpnext/selling/doctype/follow_up/follow_up.txt
deleted file mode 100644
index 4c1338e..0000000
--- a/erpnext/selling/doctype/follow_up/follow_up.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-# DocType, Follow up
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:02',
-		'docstatus': 0,
-		'modified': '2010-10-13 12:06:26',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Selling',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 10
-	},
-
-	# These values are common for all DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Follow up',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Follow up
-	{
-		'doctype': 'DocType',
-		'name': 'Follow up'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'date',
-		'fieldtype': 'Date',
-		'idx': 1,
-		'in_filter': 1,
-		'label': 'Date',
-		'oldfieldname': 'date',
-		'oldfieldtype': 'Date'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'notes',
-		'fieldtype': 'Small Text',
-		'idx': 2,
-		'in_filter': 0,
-		'label': 'Notes',
-		'oldfieldname': 'notes',
-		'oldfieldtype': 'Small Text',
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'follow_up_type',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'in_filter': 1,
-		'label': 'Follow up type',
-		'oldfieldname': 'follow_up_type',
-		'oldfieldtype': 'Select',
-		'options': '\nPhone\nEmail\nSMS\nVisit\nOther'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'follow_up_by',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'in_filter': 1,
-		'label': 'Follow up by',
-		'oldfieldname': 'follow_up_by',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Person'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/industry_type/industry_type.txt b/erpnext/selling/doctype/industry_type/industry_type.txt
index 71bfa9f..7e836cd 100644
--- a/erpnext/selling/doctype/industry_type/industry_type.txt
+++ b/erpnext/selling/doctype/industry_type/industry_type.txt
@@ -3,50 +3,49 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:04',
+		'creation': '2012-03-27 14:36:09',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-03-27 14:36:09',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'field:industry',
-		'colour': 'White:FFF',
+		'autoname': u'field:industry',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Selling',
+		'document_type': u'Master',
+		'module': u'Selling',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 4
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'industry',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Industry',
+		'doctype': u'DocField',
+		'fieldname': u'industry',
+		'fieldtype': u'Data',
+		'label': u'Industry',
 		'name': '__common__',
-		'oldfieldname': 'industry',
-		'oldfieldtype': 'Data',
-		'parent': 'Industry Type',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'oldfieldname': u'industry',
+		'oldfieldtype': u'Data',
+		'parent': u'Industry Type',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Industry Type',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Industry Type',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1
 	},
@@ -54,36 +53,33 @@
 	# DocType, Industry Type
 	{
 		'doctype': 'DocType',
-		'name': 'Industry Type'
+		'name': u'Industry Type'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'Sales Manager',
+		'doctype': u'DocPerm',
+		'role': u'Sales Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Sales User'
+		'doctype': u'DocPerm',
+		'role': u'Sales User'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'Sales Master Manager',
+		'doctype': u'DocPerm',
+		'role': u'Sales Master Manager',
 		'write': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField'
+		'doctype': u'DocField'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/installation_note/installation_note.js b/erpnext/selling/doctype/installation_note/installation_note.js
index 5486857..44f6ac8 100644
--- a/erpnext/selling/doctype/installation_note/installation_note.js
+++ b/erpnext/selling/doctype/installation_note/installation_note.js
@@ -14,7 +14,7 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-cur_frm.cscript.tname = "Installed Item Details";
+cur_frm.cscript.tname = "Installation Note Item";
 cur_frm.cscript.fname = "installed_item_details";
 
 cur_frm.cscript.onload = function(doc, dt, dn) {
@@ -34,7 +34,7 @@
   if(doc.customer) {
     cond = '`tabDelivery Note`.customer = "'+doc.customer+'" AND';
   }
-  return repl('SELECT DISTINCT `tabDelivery Note`.name, `tabDelivery Note`.customer_name  FROM `tabDelivery Note`, `tabDelivery Note Detail` WHERE `tabDelivery Note`.company = "%(company)s" AND `tabDelivery Note`.docstatus = 1 AND ifnull(`tabDelivery Note`.per_installed,0) < 100 AND %(cond)s `tabDelivery Note`.name LIKE "%s" ORDER BY `tabDelivery Note`.name DESC LIMIT 50', {company:doc.company, cond:cond});
+  return repl('SELECT DISTINCT `tabDelivery Note`.name, `tabDelivery Note`.customer_name  FROM `tabDelivery Note`, `tabDelivery Note Item` WHERE `tabDelivery Note`.company = "%(company)s" AND `tabDelivery Note`.docstatus = 1 AND ifnull(`tabDelivery Note`.per_installed,0) < 100 AND %(cond)s `tabDelivery Note`.name LIKE "%s" ORDER BY `tabDelivery Note`.name DESC LIMIT 50', {company:doc.company, cond:cond});
 }
 
 
@@ -42,7 +42,7 @@
   return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"  ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
 }
 
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
+cur_frm.cscript.get_items = function(doc, dt, dn) {
   var callback = function(r,rt) { 
 	  unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
 	  cur_frm.refresh();
diff --git a/erpnext/selling/doctype/installation_note/installation_note.py b/erpnext/selling/doctype/installation_note/installation_note.py
index 0b5f3c2..846d143 100644
--- a/erpnext/selling/doctype/installation_note/installation_note.py
+++ b/erpnext/selling/doctype/installation_note/installation_note.py
@@ -38,7 +38,7 @@
   def __init__(self, doc, doclist=[]):
     self.doc = doc
     self.doclist = doclist
-    self.tname = 'Installed Item Details'
+    self.tname = 'Installation Note Item'
     self.fname = 'installed_item_details'
 
   # Autoname
@@ -51,7 +51,7 @@
   #====================================
   def pull_delivery_note_details(self):
     self.validate_prev_docname()
-    self.doclist = get_obj('DocType Mapper', 'Delivery Note-Installation Note').dt_map('Delivery Note', 'Installation Note', self.doc.delivery_note_no, self.doc, self.doclist, "[['Delivery Note', 'Installation Note'],['Delivery Note Detail', 'Installed Item Details']]")
+    self.doclist = get_obj('DocType Mapper', 'Delivery Note-Installation Note').dt_map('Delivery Note', 'Installation Note', self.doc.delivery_note_no, self.doc, self.doclist, "[['Delivery Note', 'Installation Note'],['Delivery Note Item', 'Installation Note Item']]")
   
   # Validates that Delivery Note is not pulled twice 
   #============================================
@@ -116,7 +116,7 @@
   def get_prevdoc_serial_no(self, prevdoc_detail_docname, prevdoc_docname):
     from stock.doctype.stock_ledger.stock_ledger import get_sr_no_list
 	
-    res = sql("select serial_no from `tabDelivery Note Detail` where name = '%s' and parent ='%s'" % (prevdoc_detail_docname, prevdoc_docname))
+    res = sql("select serial_no from `tabDelivery Note Item` where name = '%s' and parent ='%s'" % (prevdoc_detail_docname, prevdoc_docname))
     return get_sr_no_list(res[0][0])
     
   #check if all serial nos from current record exist in resp delivery note
diff --git a/erpnext/selling/doctype/installation_note/installation_note.txt b/erpnext/selling/doctype/installation_note/installation_note.txt
index 8feb2f5..a3812d7 100644
--- a/erpnext/selling/doctype/installation_note/installation_note.txt
+++ b/erpnext/selling/doctype/installation_note/installation_note.txt
@@ -3,51 +3,53 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:04',
+		'creation': '2012-03-27 14:36:09',
 		'docstatus': 0,
-		'modified': '2011-05-17 16:34:30',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 18:48:02',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1308741898',
-		'autoname': 'IN/.####',
-		'colour': 'White:FFF',
+		'_last_update': u'1306480044',
+		'autoname': u'IN/.####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Selling',
+		'is_submittable': 1,
+		'module': u'Selling',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': 'At %(customer_name)s on %(inst_date)s',
-		'version': 96
+		'subject': u'At %(customer_name)s on %(inst_date)s',
+		'version': 98
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Installation Note',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Installation Note',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Installation Note',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Installation Note',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Installation Note
 	{
 		'doctype': 'DocType',
-		'name': 'Installation Note'
+		'name': u'Installation Note'
 	},
 
 	# DocPerm
@@ -55,20 +57,18 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
@@ -76,129 +76,120 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales User',
+		'role': u'Sales User',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 1,
-		'role': 'Sales User'
-	},
-
-	# DocPerm
-	{
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Manager',
+		'role': u'Sales Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Sales Manager'
+		'role': u'Sales User'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Installation Note',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'installation_note',
+		'fieldtype': u'Section Break',
+		'label': u'Installation Note',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 2,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Series',
 		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
-		'options': '\nIN',
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'\nIN',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Customer',
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Link',
-		'options': 'Customer',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
+		'label': u'Customer',
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_address',
-		'fieldtype': 'Link',
-		'idx': 5,
-		'label': 'Customer Address',
-		'options': 'Address',
+		'doctype': u'DocField',
+		'fieldname': u'customer_address',
+		'fieldtype': u'Link',
+		'label': u'Customer Address',
+		'options': u'Address',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_person',
-		'fieldtype': 'Link',
-		'idx': 6,
-		'label': 'Contact Person',
-		'options': 'Contact',
+		'doctype': u'DocField',
+		'fieldname': u'contact_person',
+		'fieldtype': u'Link',
+		'label': u'Contact Person',
+		'options': u'Contact',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
-		'idx': 7,
-		'label': 'Name',
-		'oldfieldname': 'customer_name',
-		'oldfieldtype': 'Data',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
+		'label': u'Name',
+		'oldfieldname': u'customer_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'reqd': 0,
 		'search_index': 0
@@ -206,91 +197,84 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_display',
-		'fieldtype': 'Small Text',
-		'idx': 8,
-		'label': 'Address',
+		'doctype': u'DocField',
+		'fieldname': u'address_display',
+		'fieldtype': u'Small Text',
+		'label': u'Address',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_display',
-		'fieldtype': 'Small Text',
-		'idx': 9,
-		'label': 'Contact',
+		'doctype': u'DocField',
+		'fieldname': u'contact_display',
+		'fieldtype': u'Small Text',
+		'label': u'Contact',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_mobile',
-		'fieldtype': 'Text',
-		'idx': 10,
-		'label': 'Mobile No',
+		'doctype': u'DocField',
+		'fieldname': u'contact_mobile',
+		'fieldtype': u'Text',
+		'label': u'Mobile No',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_email',
-		'fieldtype': 'Text',
-		'idx': 11,
-		'label': 'Contact Email',
+		'doctype': u'DocField',
+		'fieldname': u'contact_email',
+		'fieldtype': u'Text',
+		'label': u'Contact Email',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
-		'idx': 12,
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Territory',
-		'options': 'Territory',
+		'label': u'Territory',
+		'options': u'Territory',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
-		'search_index': 0
+		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_group',
-		'fieldtype': 'Link',
-		'idx': 13,
-		'label': 'Customer Group',
-		'options': 'Customer Group',
+		'doctype': u'DocField',
+		'fieldname': u'customer_group',
+		'fieldtype': u'Link',
+		'label': u'Customer Group',
+		'options': u'Customer Group',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 14,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'inst_date',
-		'fieldtype': 'Date',
-		'idx': 15,
-		'label': 'Installation Date',
-		'oldfieldname': 'inst_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'inst_date',
+		'fieldtype': u'Date',
+		'label': u'Installation Date',
+		'oldfieldname': u'inst_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -298,28 +282,26 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'inst_time',
-		'fieldtype': 'Time',
-		'idx': 16,
-		'label': 'Installation Time',
-		'oldfieldname': 'inst_time',
-		'oldfieldtype': 'Time',
+		'doctype': u'DocField',
+		'fieldname': u'inst_time',
+		'fieldtype': u'Time',
+		'label': u'Installation Time',
+		'oldfieldname': u'inst_time',
+		'oldfieldtype': u'Time',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'default': 'Draft',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
-		'idx': 17,
-		'label': 'Status',
+		'default': u'Draft',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': 'Draft\nSubmitted\nCancelled',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'Draft\nSubmitted\nCancelled',
 		'permlevel': 1,
 		'print_hide': 1,
 		'reqd': 1
@@ -327,35 +309,33 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Select the relevant company name if you have multiple companies.',
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 18,
+		'colour': u'White:FFF',
+		'description': u'Select the relevant company name if you have multiple companies.',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Select',
-		'options': 'link:Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Select',
+		'options': u'link:Company',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 19,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1
@@ -363,117 +343,111 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'idx': 20,
-		'label': 'Amended From',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
 		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'The date at which current entry is corrected in the system.',
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
+		'colour': u'White:FFF',
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
 		'hidden': 1,
-		'idx': 21,
-		'label': 'Amendment Date',
+		'label': u'Amendment Date',
 		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'remarks',
-		'fieldtype': 'Small Text',
-		'idx': 22,
-		'label': 'Remarks',
-		'oldfieldname': 'remarks',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'fieldtype': u'Small Text',
+		'label': u'Remarks',
+		'oldfieldname': u'remarks',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'cancel_reason',
-		'fieldtype': 'Data',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'cancel_reason',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'idx': 23,
-		'label': 'Cancel Reason',
+		'label': u'Cancel Reason',
 		'no_copy': 1,
-		'oldfieldname': 'cancel_reason',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'cancel_reason',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 24,
-		'label': 'Item Details',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'item_details',
+		'fieldtype': u'Section Break',
+		'label': u'Item Details',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'delivery_note_no',
-		'fieldtype': 'Link',
-		'idx': 25,
-		'label': 'Delivery Note No',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_note_no',
+		'fieldtype': u'Link',
+		'label': u'Delivery Note No',
 		'no_copy': 1,
-		'oldfieldname': 'delivery_note_no',
-		'oldfieldtype': 'Link',
-		'options': 'Delivery Note',
+		'oldfieldname': u'delivery_note_no',
+		'oldfieldtype': u'Link',
+		'options': u'Delivery Note',
 		'permlevel': 0,
 		'print_hide': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
+		'doctype': u'DocField',
+		'fieldname': u'get_items',
+		'fieldtype': u'Button',
 		'hidden': 0,
-		'idx': 26,
-		'label': 'Get Items',
-		'oldfieldtype': 'Button',
-		'options': 'pull_delivery_note_details',
+		'label': u'Get Items',
+		'oldfieldtype': u'Button',
+		'options': u'pull_delivery_note_details',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'installed_item_details',
-		'fieldtype': 'Table',
-		'idx': 27,
-		'label': 'Installed Item Details',
-		'oldfieldname': 'installed_item_details',
-		'oldfieldtype': 'Table',
-		'options': 'Installed Item Details',
+		'doctype': u'DocField',
+		'fieldname': u'installed_item_details',
+		'fieldtype': u'Table',
+		'label': u'Installation Note Item',
+		'oldfieldname': u'installed_item_details',
+		'oldfieldtype': u'Table',
+		'options': u'Installation Note Item',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/installed_item_details/__init__.py b/erpnext/selling/doctype/installation_note_item/__init__.py
similarity index 100%
rename from erpnext/selling/doctype/installed_item_details/__init__.py
rename to erpnext/selling/doctype/installation_note_item/__init__.py
diff --git a/erpnext/selling/doctype/installation_note_item/installation_note_item.txt b/erpnext/selling/doctype/installation_note_item/installation_note_item.txt
new file mode 100644
index 0000000..8a999f4
--- /dev/null
+++ b/erpnext/selling/doctype/installation_note_item/installation_note_item.txt
@@ -0,0 +1,153 @@
+# DocType, Installation Note Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:10',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:10',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'IID/.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Selling',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 25
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Installation Note Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Installation Note Item
+	{
+		'doctype': 'DocType',
+		'name': u'Installation Note Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Data',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_date',
+		'fieldtype': u'Date',
+		'hidden': 0,
+		'label': u'Delivery Date',
+		'oldfieldname': u'prevdoc_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Small Text',
+		'label': u'Serial No',
+		'oldfieldname': u'serial_no',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'width': u'180px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_detail_docname',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Against Document Detail No',
+		'no_copy': 1,
+		'oldfieldname': u'prevdoc_detail_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_docname',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Against Document No',
+		'no_copy': 1,
+		'oldfieldname': u'prevdoc_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_doctype',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Document Type',
+		'no_copy': 1,
+		'oldfieldname': u'prevdoc_doctype',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Installed Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/installed_item_details/installed_item_details.txt b/erpnext/selling/doctype/installed_item_details/installed_item_details.txt
deleted file mode 100644
index 3b4632c..0000000
--- a/erpnext/selling/doctype/installed_item_details/installed_item_details.txt
+++ /dev/null
@@ -1,159 +0,0 @@
-# DocType, Installed Item Details
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:05',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'abhishek@webnotestech.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'IID/.#####',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Selling',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 24
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Installed Item Details',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Installed Item Details
-	{
-		'doctype': 'DocType',
-		'name': 'Installed Item Details'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'prevdoc_date',
-		'fieldtype': 'Date',
-		'hidden': 0,
-		'idx': 3,
-		'label': 'Delivery Date',
-		'oldfieldname': 'prevdoc_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no',
-		'fieldtype': 'Small Text',
-		'idx': 5,
-		'label': 'Serial No',
-		'oldfieldname': 'serial_no',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0,
-		'width': '180px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'prevdoc_detail_docname',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 6,
-		'label': 'Against Document Detail No',
-		'no_copy': 1,
-		'oldfieldname': 'prevdoc_detail_docname',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'prevdoc_docname',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 7,
-		'in_filter': 1,
-		'label': 'Against Document No',
-		'no_copy': 1,
-		'oldfieldname': 'prevdoc_docname',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'prevdoc_doctype',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 8,
-		'in_filter': 1,
-		'label': 'Document Type',
-		'no_copy': 1,
-		'oldfieldname': 'prevdoc_doctype',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 0,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'idx': 9,
-		'label': 'Installed Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/lead/lead.js b/erpnext/selling/doctype/lead/lead.js
index 7255636..bd2c88f 100644
--- a/erpnext/selling/doctype/lead/lead.js
+++ b/erpnext/selling/doctype/lead/lead.js
@@ -16,11 +16,11 @@
 
 // Module CRM
 
-$import(SMS Control)
+wn.require('erpnext/utilities/doctype/sms_control/sms_control.js');
 
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
   if(user =='Guest'){
-    hide_field(['status', 'naming_series', 'order_lost_reason', 'customer', 'rating', 'fax', 'website', 'territory', 'TerritoryHelp', 'address_line1', 'address_line2', 'city', 'state', 'country', 'pincode', 'address', 'lead_owner', 'market_segment', 'industry', 'campaign_name', 'interested_in', 'company', 'fiscal_year', 'contact_by', 'contact_date', 'last_contact_date', 'contact_date_ref', 'to_discuss', 'More Info', 'follow_up', 'Communication History', 'cc_to', 'subject', 'message', 'Attachment Html', 'Create New File', 'lead_attachment_detail', 'Send Email', 'Email', 'Create Customer', 'Create Enquiry', 'Next Steps', 'transaction_date', 'type', 'source']);
+    hide_field(['status', 'naming_series', 'order_lost_reason', 'customer', 'rating', 'fax', 'website', 'territory', 'TerritoryHelp', 'address_line1', 'address_line2', 'city', 'state', 'country', 'pincode', 'address', 'lead_owner', 'market_segment', 'industry', 'campaign_name', 'interested_in', 'company', 'fiscal_year', 'contact_by', 'contact_date', 'last_contact_date', 'contact_date_ref', 'to_discuss', 'More Info', 'follow_up', 'Communication History', 'cc_to', 'subject', 'message', 'Attachment Html', 'Create New File', 'lead_attachment_detail', 'Send Email', 'Email', 'Create Customer', 'Create Opportunity', 'Next Steps', 'transaction_date', 'type', 'source']);
     doc.source = 'Website';
   }
   if(!doc.status) set_multiple(dt,dn,{status:'Open'});
@@ -40,8 +40,8 @@
   cur_frm.clear_custom_buttons()
   if(!doc.__islocal && !in_list(['Converted', 'Lead Lost'], doc.status)) {
     cur_frm.add_custom_button('Create Customer', cur_frm.cscript['Create Customer']);
-    cur_frm.add_custom_button('Create Enquiry', cur_frm.cscript['Create Enquiry']);
-    cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+    cur_frm.add_custom_button('Create Opportunity', cur_frm.cscript['Create Opportunity']);
+    cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
   }
 }
 
@@ -122,7 +122,7 @@
 
 // send email
 // ===============================================================
-cur_frm.cscript['Send Email'] = function(doc,cdt,cdn){
+cur_frm.cscript.send_email = function(doc,cdt,cdn){
   if(doc.__islocal != 1){
     $c_obj(make_doclist(doc.doctype, doc.name),'send_mail','',function(r,rt){});
   }else{
@@ -130,9 +130,9 @@
   }
 }
 
-// Create New Enquiry
+// Create New Opportunity
 // ===============================================================
-cur_frm.cscript['Create Enquiry'] = function(){
+cur_frm.cscript['Create Opportunity'] = function(){
   var doc = cur_frm.doc;
   $c('runserverobj',args={ 'method':'check_status', 'docs':compress_doclist([doc])},
     function(r,rt){
@@ -140,16 +140,16 @@
         msgprint("This lead is now converted to customer. Please create enquiry on behalf of customer");
       }
       else{
-        n = createLocal("Enquiry");
+        n = createLocal("Opportunity");
         $c('dt_map', args={
-          'docs':compress_doclist([locals["Enquiry"][n]]),
+          'docs':compress_doclist([locals["Opportunity"][n]]),
           'from_doctype':'Lead',
-          'to_doctype':'Enquiry',
+          'to_doctype':'Opportunity',
           'from_docname':doc.name,
-          'from_to_list':"[['Lead', 'Enquiry']]"
+          'from_to_list':"[['Lead', 'Opportunity']]"
         }
         , function(r,rt) {
-            loaddoc("Enquiry", n);
+            loaddoc("Opportunity", n);
           }
         );
       }
diff --git a/erpnext/selling/doctype/lead/lead.py b/erpnext/selling/doctype/lead/lead.py
index e5d2633..50e996a 100644
--- a/erpnext/selling/doctype/lead/lead.py
+++ b/erpnext/selling/doctype/lead/lead.py
@@ -84,7 +84,7 @@
     #  self.doc.address = comp_address
     
     if self.doc.status == 'Lead Lost' and not self.doc.order_lost_reason:
-      msgprint("Please Enter Order Lost Reason")
+      msgprint("Please Enter Quotation Lost Reason")
       raise Exception  
     
     if self.doc.source == 'Campaign' and not self.doc.campaign_name and session['user'] != 'Guest':
@@ -204,7 +204,7 @@
 #---------------------- Add details in follow up table----------------
   def add_in_follow_up(self,message,type):
     import datetime
-    child = addchild( self.doc, 'follow_up', 'Follow up', 1, self.doclist)
+    child = addchild( self.doc, 'follow_up', 'Communication Log', 1, self.doclist)
     child.date = datetime.datetime.now().date().strftime('%Y-%m-%d')
     child.notes = message
     child.follow_up_type = type
diff --git a/erpnext/selling/doctype/lead/lead.txt b/erpnext/selling/doctype/lead/lead.txt
index 2387323..2ec8963 100644
--- a/erpnext/selling/doctype/lead/lead.txt
+++ b/erpnext/selling/doctype/lead/lead.txt
@@ -3,80 +3,74 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:07',
+		'creation': '2012-03-27 14:36:10',
 		'docstatus': 0,
-		'modified': '2011-05-10 12:15:21',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:10',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1305009922',
+		'_last_update': u'1332222225',
 		'allow_trash': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Selling',
+		'document_type': u'Master',
+		'module': u'Selling',
 		'name': '__common__',
-		'search_fields': 'lead_name,lead_owner,status',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'search_fields': u'lead_name,lead_owner,status',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': '%(lead_name)s from %(company_name)s | To Discuss: %(to_discuss)s',
-		'tag_fields': 'status,source',
-		'version': 394
+		'subject': u'%(lead_name)s from %(company_name)s | To Discuss: %(to_discuss)s',
+		'tag_fields': u'status,source',
+		'version': 395
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Lead',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Lead',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Lead',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Lead',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Lead
 	{
 		'doctype': 'DocType',
-		'name': 'Lead'
+		'name': u'Lead'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
 	},
 
 	# DocPerm
 	{
 		'amend': 0,
 		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Sales User',
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
 		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 1,
-		'role': 'Sales Manager',
-		'submit': 0,
-		'write': 0
+		'write': 1
 	},
 
 	# DocPerm
@@ -84,10 +78,9 @@
 		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Manager',
+		'role': u'Sales Manager',
 		'submit': 0,
 		'write': 1
 	},
@@ -97,77 +90,88 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
+		'match': u'owner',
 		'permlevel': 0,
-		'role': 'Sales User',
+		'role': u'System Manager',
 		'submit': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All'
+		'role': u'Sales Manager',
+		'submit': 0,
+		'write': 0
 	},
 
 	# DocPerm
 	{
 		'amend': 0,
 		'cancel': 0,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 6,
-		'permlevel': 0,
-		'role': 'System Manager',
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
 		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'match': u'territory',
+		'permlevel': 0,
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 7,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Guest',
+		'role': u'Guest',
 		'write': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Basic Info',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 2,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'lead_name',
-		'fieldtype': 'Data',
-		'idx': 3,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'lead_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Contact Name',
-		'oldfieldname': 'lead_name',
-		'oldfieldtype': 'Data',
+		'label': u'Contact Name',
+		'oldfieldname': u'lead_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -175,124 +179,117 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'source',
-		'fieldtype': 'Select',
-		'idx': 4,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'source',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Source',
+		'label': u'Source',
 		'no_copy': 1,
-		'oldfieldname': 'source',
-		'oldfieldtype': 'Select',
-		'options': "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign\nWebsite",
+		'oldfieldname': u'source',
+		'oldfieldtype': u'Select',
+		'options': u"\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign\nWebsite",
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.source == 'Existing Customer'",
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.source == 'Existing Customer'",
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
 		'hidden': 0,
-		'idx': 5,
-		'label': 'From Customer',
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Link',
-		'options': 'Customer',
+		'label': u'From Customer',
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.source == 'Campaign'",
-		'description': 'Enter campaign name if the source of lead is campaign.',
-		'doctype': 'DocField',
-		'fieldname': 'campaign_name',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.source == 'Campaign'",
+		'description': u'Enter campaign name if the source of lead is campaign.',
+		'doctype': u'DocField',
+		'fieldname': u'campaign_name',
+		'fieldtype': u'Link',
 		'hidden': 0,
-		'idx': 6,
-		'label': 'Campaign Name',
-		'oldfieldname': 'campaign_name',
-		'oldfieldtype': 'Link',
-		'options': 'Campaign',
+		'label': u'Campaign Name',
+		'oldfieldname': u'campaign_name',
+		'oldfieldtype': u'Link',
+		'options': u'Campaign',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Name of organization from where lead has come',
-		'doctype': 'DocField',
-		'fieldname': 'company_name',
-		'fieldtype': 'Data',
-		'idx': 7,
+		'colour': u'White:FFF',
+		'description': u'Name of organization from where lead has come',
+		'doctype': u'DocField',
+		'fieldname': u'company_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Company Name',
-		'oldfieldname': 'company_name',
-		'oldfieldtype': 'Data',
+		'label': u'Company Name',
+		'oldfieldname': u'company_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 0,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'To manage multiple series please go to Setup > Manage Series',
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'idx': 8,
-		'label': 'Series',
+		'colour': u'White:FFF',
+		'description': u'To manage multiple series please go to Setup > Manage Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Series',
 		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
-		'options': '\nLEAD\nLEAD/10-11/\nLEAD/MUMBAI/',
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'LEAD\nLEAD/10-11/\nLEAD/MUMBAI/',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Open',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
-		'idx': 9,
+		'colour': u'White:FFF',
+		'default': u'Open',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Status',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nOpen\nAttempted to Contact\nContact in Future\nContacted\nInterested\nNot interested\nLead Lost\nConverted',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nOpen\nAttempted to Contact\nContact in Future\nContacted\nInterested\nNot interested\nLead Lost\nConverted',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'default': 'Today',
-		'description': 'The date at which current entry is made in system.',
-		'doctype': 'DocField',
-		'fieldname': 'transaction_date',
-		'fieldtype': 'Date',
-		'idx': 10,
+		'default': u'Today',
+		'description': u'The date at which current entry is made in system.',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Lead Date',
+		'label': u'Lead Date',
 		'no_copy': 1,
-		'oldfieldname': 'transaction_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'transaction_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -300,54 +297,51 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 11,
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'type',
-		'fieldtype': 'Select',
-		'idx': 12,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'type',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Lead Type',
-		'oldfieldname': 'type',
-		'oldfieldtype': 'Select',
-		'options': '\nClient\nChannel Partner\nConsultant',
+		'label': u'Lead Type',
+		'oldfieldname': u'type',
+		'oldfieldtype': u'Select',
+		'options': u'\nClient\nChannel Partner\nConsultant',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'request_type',
-		'fieldtype': 'Select',
-		'idx': 13,
-		'label': 'Request Type',
-		'oldfieldname': 'request_type',
-		'oldfieldtype': 'Select',
-		'options': '\nProduct Enquiry\nRequest for Information\nSuggestions\nOther',
+		'doctype': u'DocField',
+		'fieldname': u'request_type',
+		'fieldtype': u'Select',
+		'label': u'Request Type',
+		'oldfieldname': u'request_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nProduct Enquiry\nRequest for Information\nSuggestions\nOther',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Probability of lead converting to customer',
-		'doctype': 'DocField',
-		'fieldname': 'rating',
-		'fieldtype': 'Select',
-		'idx': 14,
+		'colour': u'White:FFF',
+		'description': u'Probability of lead converting to customer',
+		'doctype': u'DocField',
+		'fieldname': u'rating',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Rating',
-		'oldfieldname': 'rating',
-		'oldfieldtype': 'Select',
-		'options': '\nHot\nWarm\nCold',
+		'label': u'Rating',
+		'oldfieldname': u'rating',
+		'oldfieldtype': u'Select',
+		'options': u'\nHot\nWarm\nCold',
 		'permlevel': 0,
 		'reqd': 0,
 		'search_index': 0
@@ -355,153 +349,143 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'remark',
-		'fieldtype': 'Small Text',
-		'idx': 15,
-		'label': 'Remark',
-		'oldfieldname': 'remark',
-		'oldfieldtype': 'Text',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'remark',
+		'fieldtype': u'Small Text',
+		'label': u'Remark',
+		'oldfieldname': u'remark',
+		'oldfieldtype': u'Text',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 0,
-		'depends_on': "eval:doc.status == 'Lead Lost'",
-		'doctype': 'DocField',
-		'fieldname': 'order_lost_reason',
-		'fieldtype': 'Link',
+		'depends_on': u"eval:doc.status == 'Lead Lost'",
+		'doctype': u'DocField',
+		'fieldname': u'order_lost_reason',
+		'fieldtype': u'Link',
 		'hidden': 0,
-		'idx': 16,
-		'label': 'Lost Reason',
-		'oldfieldname': 'order_lost_reason',
-		'oldfieldtype': 'Link',
-		'options': 'Order Lost Reason',
+		'label': u'Lost Reason',
+		'oldfieldname': u'order_lost_reason',
+		'oldfieldtype': u'Link',
+		'options': u'Quotation Lost Reason',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 17,
-		'label': 'Trash Reason',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
 		'no_copy': 1,
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 18,
-		'label': 'Contact Info',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'contact_info',
+		'fieldtype': u'Section Break',
+		'label': u'Contact Info',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'phone',
-		'fieldtype': 'Data',
-		'idx': 19,
-		'label': 'Phone',
-		'oldfieldname': 'contact_no',
-		'oldfieldtype': 'Data',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'phone',
+		'fieldtype': u'Data',
+		'label': u'Phone',
+		'oldfieldname': u'contact_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'mobile_no',
-		'fieldtype': 'Data',
-		'idx': 20,
-		'label': 'Mobile No.',
-		'oldfieldname': 'mobile_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'mobile_no',
+		'fieldtype': u'Data',
+		'label': u'Mobile No.',
+		'oldfieldname': u'mobile_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'email_id',
-		'fieldtype': 'Data',
-		'idx': 21,
-		'label': 'Email Id',
-		'oldfieldname': 'email_id',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'email_id',
+		'fieldtype': u'Data',
+		'label': u'Email Id',
+		'oldfieldname': u'email_id',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fax',
-		'fieldtype': 'Data',
-		'idx': 22,
-		'label': 'Fax',
-		'oldfieldname': 'fax',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'fax',
+		'fieldtype': u'Data',
+		'label': u'Fax',
+		'oldfieldname': u'fax',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'website',
-		'fieldtype': 'Data',
-		'idx': 23,
-		'label': 'Website',
-		'oldfieldname': 'website',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'website',
+		'fieldtype': u'Data',
+		'label': u'Website',
+		'oldfieldname': u'website',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': '<a href="javascript:cur_frm.cscript.TerritoryHelp();">To manage Territory, click here</a>',
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
-		'idx': 24,
-		'label': 'Territory',
-		'oldfieldname': 'territory',
-		'oldfieldtype': 'Link',
-		'options': 'Territory',
+		'colour': u'White:FFF',
+		'description': u'<a href="javascript:cur_frm.cscript.TerritoryHelp();">To manage Territory, click here</a>',
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
+		'label': u'Territory',
+		'oldfieldname': u'territory',
+		'oldfieldtype': u'Link',
+		'options': u'Territory',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 25,
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_line1',
-		'fieldtype': 'Data',
-		'idx': 26,
-		'label': 'Address Line 1',
-		'oldfieldname': 'address_line1',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'address_line1',
+		'fieldtype': u'Data',
+		'label': u'Address Line 1',
+		'oldfieldname': u'address_line1',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 0
@@ -509,26 +493,24 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_line2',
-		'fieldtype': 'Data',
-		'idx': 27,
-		'label': 'Address Line 2',
-		'oldfieldname': 'address_line2',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'address_line2',
+		'fieldtype': u'Data',
+		'label': u'Address Line 2',
+		'oldfieldname': u'address_line2',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'city',
-		'fieldtype': 'Data',
-		'idx': 28,
-		'label': 'City',
-		'oldfieldname': 'city',
-		'oldfieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'city',
+		'fieldtype': u'Data',
+		'label': u'City',
+		'oldfieldname': u'city',
+		'oldfieldtype': u'Select',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1
@@ -536,101 +518,95 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'country',
-		'fieldtype': 'Select',
-		'idx': 29,
-		'label': 'Country',
-		'oldfieldname': 'country',
-		'oldfieldtype': 'Select',
-		'options': 'link:Country',
+		'doctype': u'DocField',
+		'fieldname': u'country',
+		'fieldtype': u'Select',
+		'label': u'Country',
+		'oldfieldname': u'country',
+		'oldfieldtype': u'Select',
+		'options': u'link:Country',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'state',
-		'fieldtype': 'Data',
-		'idx': 30,
-		'label': 'State',
-		'oldfieldname': 'state',
-		'oldfieldtype': 'Select',
-		'options': 'Suggest',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'state',
+		'fieldtype': u'Data',
+		'label': u'State',
+		'oldfieldname': u'state',
+		'oldfieldtype': u'Select',
+		'options': u'Suggest',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'pincode',
-		'fieldtype': 'Data',
-		'idx': 31,
-		'label': 'Pin Code',
-		'oldfieldname': 'pincode',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'pincode',
+		'fieldtype': u'Data',
+		'label': u'Pin Code',
+		'oldfieldname': u'pincode',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 32,
-		'label': 'More Info',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'more_info',
+		'fieldtype': u'Section Break',
+		'label': u'More Info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 33,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'default': '__user',
-		'doctype': 'DocField',
-		'fieldname': 'lead_owner',
-		'fieldtype': 'Link',
-		'idx': 34,
+		'default': u'__user',
+		'doctype': u'DocField',
+		'fieldname': u'lead_owner',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Lead Owner',
-		'oldfieldname': 'lead_owner',
-		'oldfieldtype': 'Link',
-		'options': 'Profile',
+		'label': u'Lead Owner',
+		'oldfieldname': u'lead_owner',
+		'oldfieldtype': u'Link',
+		'options': u'Profile',
 		'permlevel': 0,
-		'search_index': 0
+		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'market_segment',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'market_segment',
+		'fieldtype': u'Select',
 		'hidden': 0,
-		'idx': 35,
 		'in_filter': 1,
-		'label': 'Market Segment',
-		'oldfieldname': 'market_segment',
-		'oldfieldtype': 'Select',
-		'options': '\nLower Income\nMiddle Income\nUpper Income',
+		'label': u'Market Segment',
+		'oldfieldname': u'market_segment',
+		'oldfieldtype': u'Select',
+		'options': u'\nLower Income\nMiddle Income\nUpper Income',
 		'permlevel': 0,
 		'reqd': 0,
 		'search_index': 0
@@ -638,109 +614,103 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'industry',
-		'fieldtype': 'Link',
-		'idx': 36,
-		'label': 'Industry',
-		'oldfieldname': 'industry',
-		'oldfieldtype': 'Link',
-		'options': 'Industry Type',
+		'doctype': u'DocField',
+		'fieldname': u'industry',
+		'fieldtype': u'Link',
+		'label': u'Industry',
+		'oldfieldname': u'industry',
+		'oldfieldtype': u'Link',
+		'options': u'Industry Type',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Your products or facilities in which the lead is interested',
-		'doctype': 'DocField',
-		'fieldname': 'interested_in',
-		'fieldtype': 'Data',
-		'idx': 37,
-		'label': 'Interested In',
-		'oldfieldname': 'interested_in',
-		'oldfieldtype': 'Data',
+		'colour': u'White:FFF',
+		'description': u'Your products or facilities in which the lead is interested',
+		'doctype': u'DocField',
+		'fieldname': u'interested_in',
+		'fieldtype': u'Data',
+		'label': u'Interested In',
+		'oldfieldname': u'interested_in',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'hidden': 1,
-		'idx': 38,
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 39,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 0,
-		'colour': 'White:FFF',
-		'description': 'Your sales person who will contact the lead in future',
-		'doctype': 'DocField',
-		'fieldname': 'contact_by',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'description': u'Your sales person who will contact the lead in future',
+		'doctype': u'DocField',
+		'fieldname': u'contact_by',
+		'fieldtype': u'Link',
 		'hidden': 0,
-		'idx': 40,
 		'in_filter': 1,
-		'label': 'Next Contact By',
-		'oldfieldname': 'contact_by',
-		'oldfieldtype': 'Link',
-		'options': 'Profile',
+		'label': u'Next Contact By',
+		'oldfieldname': u'contact_by',
+		'oldfieldtype': u'Link',
+		'options': u'Profile',
 		'permlevel': 0,
 		'print_hide': 0,
 		'reqd': 0,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 0,
-		'colour': 'White:FFF',
-		'description': 'Your sales person will get a reminder on this date to contact the lead',
-		'doctype': 'DocField',
-		'fieldname': 'contact_date',
-		'fieldtype': 'Date',
-		'idx': 41,
+		'colour': u'White:FFF',
+		'description': u'Your sales person will get a reminder on this date to contact the lead',
+		'doctype': u'DocField',
+		'fieldname': u'contact_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Next Contact Date',
+		'label': u'Next Contact Date',
 		'no_copy': 1,
-		'oldfieldname': 'contact_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'contact_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 0,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'description': 'Date on which the lead was last contacted',
-		'doctype': 'DocField',
-		'fieldname': 'last_contact_date',
-		'fieldtype': 'Date',
-		'idx': 42,
-		'label': 'Last Contact Date',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'description': u'Date on which the lead was last contacted',
+		'doctype': u'DocField',
+		'fieldname': u'last_contact_date',
+		'fieldtype': u'Date',
+		'label': u'Last Contact Date',
 		'no_copy': 1,
-		'oldfieldname': 'last_contact_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'last_contact_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'print_hide': 1
 	},
@@ -748,40 +718,38 @@
 	# DocField
 	{
 		'allow_on_submit': 0,
-		'doctype': 'DocField',
-		'fieldname': 'to_discuss',
-		'fieldtype': 'Small Text',
-		'idx': 43,
-		'label': 'To Discuss',
+		'doctype': u'DocField',
+		'fieldname': u'to_discuss',
+		'fieldtype': u'Small Text',
+		'label': u'To Discuss',
 		'no_copy': 1,
-		'oldfieldname': 'to_discuss',
-		'oldfieldtype': 'Small Text',
+		'oldfieldname': u'to_discuss',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Keep a track of communication with this lead which will help for future reference.',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 44,
-		'label': 'Communication History',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'description': u'Keep a track of communication with this lead which will help for future reference.',
+		'doctype': u'DocField',
+		'fieldname': u'communication_history',
+		'fieldtype': u'Section Break',
+		'label': u'Communication History',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 0,
-		'doctype': 'DocField',
-		'fieldname': 'follow_up',
-		'fieldtype': 'Table',
-		'idx': 45,
-		'label': 'Follow up',
-		'oldfieldname': 'follow_up',
-		'oldfieldtype': 'Table',
-		'options': 'Follow up',
+		'doctype': u'DocField',
+		'fieldname': u'follow_up',
+		'fieldtype': u'Table',
+		'label': u'Communication Log',
+		'oldfieldname': u'follow_up',
+		'oldfieldtype': u'Table',
+		'options': u'Communication Log',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/lead/listview.js b/erpnext/selling/doctype/lead/listview.js
new file mode 100644
index 0000000..4751c64
--- /dev/null
+++ b/erpnext/selling/doctype/lead/listview.js
@@ -0,0 +1,32 @@
+wn.doclistviews['Lead'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			'tabLead.lead_name',
+			'tabLead.status',
+			'tabLead.source',
+			'tabLead.rating'
+		]);
+		this.stats = this.stats.concat(['status', 'source', 'rating', 'company']);
+	},
+
+	prepare_data: function(data) {
+		this._super(data);
+		if(data.status=='Interested') {
+			data.label_type = 'success'
+		}
+		else if(['Open', 'Attempted to Contact', 'Contacted', 'Contact in Future'].indexOf(data.status)!=-1) {
+			data.label_type = 'info'
+		}
+		data.status_html = repl('<span class="label label-%(label_type)s">%(status)s</span>', data);
+		
+		data.lead_name = (data.rating ? ('['+data.rating+'] ') : '') + '['+data.source+'] ' + data.lead_name;
+	},
+
+	columns: [
+		{width: '20%', content:'name'},
+		{width: '12%', content:'status_html'},
+		{width: '55%', content:'tags+lead_name', css: {color:'#aaa'}},
+		{width: '13%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+})
diff --git a/erpnext/selling/doctype/lead_attachment_detail/__init__.py b/erpnext/selling/doctype/lead_attachment_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/selling/doctype/lead_attachment_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/selling/doctype/lead_attachment_detail/lead_attachment_detail.txt b/erpnext/selling/doctype/lead_attachment_detail/lead_attachment_detail.txt
deleted file mode 100644
index 85f086c..0000000
--- a/erpnext/selling/doctype/lead_attachment_detail/lead_attachment_detail.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2009-10-06 12:12:21', 'search_fields': None, 'module': 'CRM', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': None, 'allow_rename': None, 'smallicon': None, 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 2, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': 1, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': None, 'client_string': None, 'use_template': None, 'modified_by': 'Administrator', 'document_type': None, 'name': 'Lead Attachment Detail', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-09-20 14:06:57', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}, {'no_copy': None, 'oldfieldtype': 'Link', 'creation': '2009-10-06 12:12:21', 'doctype': 'DocField', 'oldfieldname': 'select_file', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'Administrator', 'label': 'Select File For Attachment', 'width': '200px', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Lead Attachment Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL03137', 'idx': 1, 'default': None, 'colour': None, 'modified': '2009-10-06 12:35:51', 'parenttype': 'DocType', 'fieldname': 'select_file', 'fieldtype': 'Link', 'options': 'File', 'report_hide': None, 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/lead_item_detail/__init__.py b/erpnext/selling/doctype/lead_item_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/selling/doctype/lead_item_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/selling/doctype/lead_item_detail/lead_item_detail.txt b/erpnext/selling/doctype/lead_item_detail/lead_item_detail.txt
deleted file mode 100644
index 2f83a9f..0000000
--- a/erpnext/selling/doctype/lead_item_detail/lead_item_detail.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Tray', 'is_transaction_doc': None, 'creation': '2009-03-30 15:38:55', 'search_fields': None, 'module': 'CRM', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': None, 'allow_rename': None, 'smallicon': '', 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 5, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': 1, 'description': None, 'parent': None, 'server_code': '', 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': None, 'client_string': None, 'use_template': None, 'modified_by': 'swarnalata@webnotestech.com', 'document_type': None, 'name': 'Lead Item Detail', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': '', 'modified': '2010-09-20 14:06:57', 'server_code_error': None, 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}, {'no_copy': None, 'oldfieldtype': 'Link', 'creation': '2009-03-30 15:38:55', 'doctype': 'DocField', 'oldfieldname': 'item_code', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'swarnalata@webnotestech.com', 'label': 'Item Code', 'width': '200px', 'trigger': 'Client', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Lead Item Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01565', 'idx': 1, 'default': None, 'colour': None, 'modified': '2009-10-09 15:32:48', 'parenttype': 'DocType', 'fieldname': 'item_code', 'fieldtype': 'Link', 'options': 'Item', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2009-05-19 11:15:06', 'doctype': 'DocField', 'oldfieldname': 'item_name', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'swarnalata@webnotestech.com', 'label': 'Item Name', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 1, 'description': None, 'parent': 'Lead Item Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL02098', 'idx': 2, 'default': None, 'colour': None, 'modified': '2009-10-09 15:32:48', 'parenttype': 'DocType', 'fieldname': 'item_name', 'fieldtype': 'Data', 'options': '', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2009-07-08 11:17:32', 'doctype': 'DocField', 'oldfieldname': 'item_group', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'swarnalata@webnotestech.com', 'label': 'Item Group', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 1, 'description': None, 'parent': 'Lead Item Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL02551', 'idx': 3, 'default': None, 'colour': None, 'modified': '2009-10-09 15:32:48', 'parenttype': 'DocType', 'fieldname': 'item_group', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2009-07-08 11:17:32', 'doctype': 'DocField', 'oldfieldname': 'brand', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'swarnalata@webnotestech.com', 'label': 'Brand', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 1, 'description': None, 'parent': 'Lead Item Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL02552', 'idx': 4, 'default': None, 'colour': None, 'modified': '2009-10-09 15:32:48', 'parenttype': 'DocType', 'fieldname': 'brand', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Text', 'creation': '2009-03-30 15:38:55', 'doctype': 'DocField', 'oldfieldname': 'description', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'swarnalata@webnotestech.com', 'label': 'Description', 'width': '100px', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 1, 'description': None, 'parent': 'Lead Item Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01566', 'idx': 5, 'default': None, 'colour': None, 'modified': '2009-10-09 15:32:48', 'parenttype': 'DocType', 'fieldname': 'description', 'fieldtype': 'Text', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2009-03-30 15:38:55', 'doctype': 'DocField', 'oldfieldname': 'uom', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'swarnalata@webnotestech.com', 'label': 'UOM', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': 0, 'permlevel': 1, 'description': None, 'parent': 'Lead Item Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01567', 'idx': 6, 'default': None, 'colour': None, 'modified': '2009-10-09 15:32:48', 'parenttype': 'DocType', 'fieldname': 'uom', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Currency', 'creation': '2009-03-30 15:38:55', 'doctype': 'DocField', 'oldfieldname': 'qty', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': 0, 'modified_by': 'swarnalata@webnotestech.com', 'label': 'Qty', 'width': '100px', 'trigger': 'Client', 'depends_on': None, 'docstatus': 0, 'hidden': 0, 'permlevel': 0, 'description': None, 'parent': 'Lead Item Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01568', 'idx': 7, 'default': None, 'colour': None, 'modified': '2009-10-09 15:32:48', 'parenttype': 'DocType', 'fieldname': 'qty', 'fieldtype': 'Currency', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Currency', 'creation': '2009-03-30 15:38:55', 'doctype': 'DocField', 'oldfieldname': 'rate', 'owner': 'Administrator', 'reqd': 0, 'in_filter': None, 'print_hide': None, 'modified_by': 'swarnalata@webnotestech.com', 'label': 'Rate', 'width': '100px', 'trigger': '', 'depends_on': None, 'docstatus': 0, 'hidden': 1, 'permlevel': 1, 'description': None, 'parent': 'Lead Item Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01569', 'idx': 8, 'default': None, 'colour': None, 'modified': '2009-10-09 15:32:48', 'parenttype': 'DocType', 'fieldname': 'rate', 'fieldtype': 'Currency', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Read Only', 'creation': '2009-03-30 15:38:55', 'doctype': 'DocField', 'oldfieldname': 'amount', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'swarnalata@webnotestech.com', 'label': 'Amount', 'width': '100px', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': 1, 'permlevel': 1, 'description': None, 'parent': 'Lead Item Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01570', 'idx': 9, 'default': None, 'colour': None, 'modified': '2009-10-09 15:32:48', 'parenttype': 'DocType', 'fieldname': 'amount', 'fieldtype': 'Read Only', 'options': None, 'report_hide': None, 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/lead_sms_detail/__init__.py b/erpnext/selling/doctype/lead_sms_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/selling/doctype/lead_sms_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/selling/doctype/lead_sms_detail/lead_sms_detail.txt b/erpnext/selling/doctype/lead_sms_detail/lead_sms_detail.txt
deleted file mode 100644
index aeb93cb..0000000
--- a/erpnext/selling/doctype/lead_sms_detail/lead_sms_detail.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2009-10-06 12:10:26', 'search_fields': None, 'module': 'CRM', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': None, 'allow_rename': None, 'smallicon': None, 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 2, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': 1, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': None, 'client_string': None, 'use_template': None, 'modified_by': 'Administrator', 'document_type': None, 'name': 'Lead SMS Detail', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-09-20 14:06:57', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2009-10-06 12:10:26', 'doctype': 'DocField', 'oldfieldname': 'other_mobile_no', 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'Administrator', 'label': 'Mobile No', 'width': '200px', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'Lead SMS Detail', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL03136', 'idx': 1, 'default': None, 'colour': None, 'modified': '2009-10-06 17:26:45', 'parenttype': 'DocType', 'fieldname': 'other_mobile_no', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/enquiry/__init__.py b/erpnext/selling/doctype/opportunity/__init__.py
similarity index 100%
rename from erpnext/selling/doctype/enquiry/__init__.py
rename to erpnext/selling/doctype/opportunity/__init__.py
diff --git a/erpnext/selling/doctype/opportunity/listview.js b/erpnext/selling/doctype/opportunity/listview.js
new file mode 100644
index 0000000..db7f67c
--- /dev/null
+++ b/erpnext/selling/doctype/opportunity/listview.js
@@ -0,0 +1,37 @@
+wn.doclistviews['Opportunity'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			'tabOpportunity.enquiry_from',
+			'tabOpportunity.lead_name',
+			'tabOpportunity.customer_name',
+			'tabOpportunity.status',
+		]);
+		this.stats = this.stats.concat(['status', 'source', 'enquiry_from', 'company']);
+	},
+
+	prepare_data: function(data) {
+		this._super(data);
+		if(['Order Confirmed', 'Quotation Sent']
+				.indexOf(data.status)!=-1) {
+			data.label_type = 'success';
+		} else if(data.status == 'Draft') {
+			data.label_type = 'info';
+		} else if(data.status == 'Submit') {
+			data.label_type = 'important';
+		}
+		data.status_html = repl('<span class="label label-%(label_type)s">%(status)s</span>', data);
+		if(data.enquiry_from == 'Lead') {
+			data.enquiry_name = repl('[%(enquiry_from)s] %(lead_name)s', data);
+		} else {
+			data.enquiry_name = repl('[%(enquiry_from)s] %(customer_name)s', data);
+		}
+	},
+
+	columns: [
+		{width: '15%', content:'name'},
+		{width: '18%', content:'status_html'},
+		{width: '55%', content:'tags+enquiry_name', css: {color:'#aaa'}},
+		{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+})
diff --git a/erpnext/selling/doctype/opportunity/opportunity.js b/erpnext/selling/doctype/opportunity/opportunity.js
new file mode 100644
index 0000000..6e6fbd3
--- /dev/null
+++ b/erpnext/selling/doctype/opportunity/opportunity.js
@@ -0,0 +1,351 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+wn.require('erpnext/utilities/doctype/sms_control/sms_control.js');
+
+cur_frm.cscript.refresh = function(doc, cdt, cdn){
+
+	// 
+
+	if(!doc.docstatus){
+		hide_field(['Update Communication Log']);
+		hide_field(['email_id1','cc_to','subject','message','Attachment Html', 'Create New File', 'enquiry_attachment_detail','Send Email']);
+	}
+	else{
+		unhide_field(['Update Communication Log']);
+		unhide_field(['email_id1','cc_to','subject','message','Attachment Html', 'Create New File', 'enquiry_attachment_detail','Send Email']);
+	}
+
+	
+	cur_frm.clear_custom_buttons();
+	if(doc.docstatus == 1) {
+		cur_frm.add_custom_button('Create Quotation', cur_frm.cscript['Create Quotation']);
+		cur_frm.add_custom_button('Opportunity Lost', cur_frm.cscript['Declare Opportunity Lost']);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
+	}
+
+	//cur_frm.cscript.clear_values(doc,cdt,cdn);
+}
+
+// ONLOAD
+// ===============================================================
+cur_frm.cscript.onload = function(doc, cdt, cdn) {
+
+	if(!doc.enquiry_from) hide_field(['customer', 'customer_address', 'contact_person', 'customer_name','lead', 'lead_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']);
+	if(!doc.status) set_multiple(cdt,cdn,{status:'Draft'});
+	if(!doc.date) doc.transaction_date = date.obj_to_str(new Date());
+	if(!doc.company && sys_defaults.company) set_multiple(cdt,cdn,{company:sys_defaults.company});
+	if(!doc.fiscal_year && sys_defaults.fiscal_year) set_multiple(cdt,cdn,{fiscal_year:sys_defaults.fiscal_year});		
+	
+	if(doc.enquiry_from) {
+		if(doc.enquiry_from == 'Customer') {
+			hide_field(['lead', 'lead_name']);
+		}
+		else if (doc.enquiry_from == 'Lead') {
+			hide_field(['customer', 'customer_address', 'contact_person', 'customer_name', 'contact_display', 'customer_group']);
+		}
+	} 
+
+	// setup fetch
+	cur_frm.cscript.set_fetch();
+}
+
+cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) {
+	if(doc.enquiry_from == 'Lead' && doc.lead) {
+	 	cur_frm.cscript.lead(doc,cdt,cdn);
+	}
+}
+
+// fetch
+// ===============================================================
+cur_frm.cscript.set_fetch = function() {
+
+	// item
+	cur_frm.add_fetch('item_code', 'item_name', 'item_name');
+	cur_frm.add_fetch('item_code', 'stock_uom', 'uom');
+	cur_frm.add_fetch('item_code', 'description', 'description');
+	cur_frm.add_fetch('item_code', 'item_group', 'item_group');
+	cur_frm.add_fetch('item_code', 'brand', 'brand');
+
+	// customer
+
+}
+
+// hide - unhide fields on basis of enquiry_from lead or customer
+cur_frm.cscript.enquiry_from = function(doc,cdt,cdn){
+	cur_frm.cscript.lead_cust_show(doc,cdt,cdn);
+}
+
+// hide - unhide fields based on lead or customer
+cur_frm.cscript.lead_cust_show = function(doc,cdt,cdn){
+	if(doc.enquiry_from == 'Lead'){
+		unhide_field(['lead']);
+		hide_field(['lead_name','customer','customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
+		doc.lead = doc.lead_name = doc.customer = doc.customer_address = doc.contact_person = doc.address_display = doc.contact_display = doc.contact_mobile = doc.contact_email = doc.territory = doc.customer_group = "";
+	}
+	else if(doc.enquiry_from == 'Customer'){		
+		unhide_field(['customer']);
+		hide_field(['lead','lead_name','address_display','contact_display','contact_mobile','contact_email','territory']);		
+		doc.lead = doc.lead_name = doc.customer = doc.customer_address = doc.contact_person = doc.address_display = doc.contact_display = doc.contact_mobile = doc.contact_email = doc.territory = doc.customer_group = "";
+	}
+}
+
+// customer
+cur_frm.cscript.customer = function(doc,dt,dn) {
+	if(doc.customer) get_server_fields('get_default_customer_address', JSON.stringify({customer: doc.customer}),'', doc, dt, dn, 1);
+	if(doc.customer) unhide_field(['customer_name','customer_address','contact_person','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
+}
+
+cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {		
+	if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
+}
+
+cur_frm.fields_dict.customer_address.on_new = function(dn) {
+	locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
+	locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
+}
+
+cur_frm.fields_dict.contact_person.on_new = function(dn) {
+	locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
+	locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
+}
+
+cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
+	return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
+
+cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
+	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
+
+// lead
+cur_frm.fields_dict['lead'].get_query = function(doc,cdt,cdn){
+	return 'SELECT `tabLead`.name, `tabLead`.lead_name FROM `tabLead` WHERE `tabLead`.%(key)s LIKE "%s"	ORDER BY	`tabLead`.`name` ASC LIMIT 50';
+}
+
+cur_frm.cscript.lead = function(doc, cdt, cdn) {
+	if(doc.lead) get_server_fields('get_lead_details', doc.lead,'', doc, cdt, cdn, 1);
+	if(doc.lead) unhide_field(['lead_name','address_display','contact_mobile','contact_email','territory']);	
+}
+
+
+//item getquery
+//=======================================
+cur_frm.fields_dict['enquiry_details'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
+	if (doc.enquiry_type == 'Maintenance')
+		return 'SELECT tabItem.name,tabItem.item_name,tabItem.description FROM tabItem WHERE tabItem.is_service_item="Yes" AND (ifnull(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` > NOW() OR `tabItem`.`end_of_life`="0000-00-00") AND tabItem.%(key)s LIKE "%s" LIMIT 50';
+	else 
+		return 'SELECT tabItem.name,tabItem.item_name,tabItem.description FROM tabItem WHERE tabItem.is_sales_item="Yes" AND (ifnull(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` > NOW() OR `tabItem`.`end_of_life`="0000-00-00") AND tabItem.%(key)s LIKE "%s" LIMIT 50';
+}
+	
+ //Fetch Item Details
+//====================================================================================================================
+cur_frm.cscript.item_code = function(doc, cdt, cdn) {
+	var d = locals[cdt][cdn];
+	if (d.item_code) {
+		get_server_fields('get_item_details',d.item_code,'enquiry_details',doc,cdt,cdn,1);
+	}
+}
+
+/*
+ //Fetch Customer Details
+//======================================================================================================================
+cur_frm.cscript.customer = function(doc, cdt, cdn){
+	if (doc.customer) {
+		get_server_fields('get_cust_address',doc.customer,'',doc,cdt,cdn,1);
+	}
+}
+*/
+
+/*
+//=======================================================================================================================
+cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
+	return 'SELECT `tabContact`.contact_name FROM `tabContact` WHERE `tabContact`.is_customer = 1 AND `tabContact`.customer = "'+ doc.customer+'" AND `tabContact`.docstatus != 2 AND `tabContact`.contact_name LIKE "%s" ORDER BY `tabContact`.contact_name ASC LIMIT 50';
+}
+*/
+
+/*
+//=======================================================================================================================
+cur_frm.cscript.contact_person = function(doc, cdt, cdn){
+	if (doc.contact_person) {
+		arg = {};
+		arg.contact_person = doc.contact_person;
+		arg.customer = doc.customer;
+		get_server_fields('get_contact_details',docstring(arg),'',doc,cdt,cdn,1);
+	}
+}
+*/
+
+/*
+// hide - unhide fields based on lead or customer..
+//=======================================================================================================================
+cur_frm.cscript.clear_values = function(doc,cdt,cdn) {
+	if(doc.enquiry_from == 'Lead') {
+		doc.customer = doc.customer_name = doc.contact_person = doc.customer_group = "";
+	}
+	else if(doc.enquiry_from == 'Customer') {
+		doc.lead =	doc.lead_name = "";
+	}
+	refresh_many(['lead','lead_name','customer','customer_name','contact_person','customer_group']);
+}
+*/
+
+/*
+//================ hide - unhide fields on basis of enquiry from either lead or customer =============================== 
+cur_frm.cscript.enquiry_from = function(doc,cdt,cdn){
+	cur_frm.cscript.clear_values(doc,cdt,cdn);
+	 doc.address = doc.territory = doc.contact_no = doc.email_id = "";
+	 refresh_many(['territory','address','contact_no','email_id']);
+}
+*/
+
+/*
+//================ create new contact ============================================================================
+cur_frm.cscript.new_contact = function(){
+	tn = createLocal('Contact');
+	locals['Contact'][tn].is_customer = 1;
+	if(doc.customer) locals['Contact'][tn].customer = doc.customer;
+	loaddoc('Contact', tn);
+}
+*/
+
+//=======================================================================================================================
+cur_frm.cscript['Create New File'] = function(doc){
+	var fl = LocalDB.create('File');
+	fl = locals['File'][fl];
+	loaddoc('File', fl.name);
+}
+
+//update follow up
+//=================================================================================
+cur_frm.cscript['Update Communication Log'] = function(doc,cdt,cdn){
+
+	$c_obj(make_doclist(doc.doctype, doc.name),'update_follow_up','',function(r, rt){
+		refresh_field('follow_up');
+		doc.__unsaved = 0;
+		cur_frm.refresh_header();
+	});
+}
+
+ // Create New Quotation
+// =======================================================================================================================
+cur_frm.cscript['Create Quotation'] = function(){
+	n = createLocal("Quotation");
+	$c('dt_map', args={
+		'docs':compress_doclist([locals["Quotation"][n]]),
+		'from_doctype':'Opportunity',
+		'to_doctype':'Quotation',
+		'from_docname':cur_frm.docname,
+		'from_to_list':"[['Opportunity', 'Quotation'],['Opportunity Item','Quotation Item']]"
+	}
+	, function(r,rt) {
+		loaddoc("Quotation", n);
+		}
+	);
+}
+
+
+// declare enquiry	lost
+//-------------------------
+cur_frm.cscript['Declare Opportunity Lost'] = function(){
+	var e_lost_dialog;
+
+	set_e_lost_dialog = function(){
+		e_lost_dialog = new Dialog(400,150,'Add Opportunity Lost Reason');
+		e_lost_dialog.make_body([
+			['HTML', 'Message', '<div class="comment">Please add enquiry lost reason</div>'],
+			['Text', 'Opportunity Lost Reason'],
+			['HTML', 'Response', '<div class = "comment" id="update_enquiry_dialog_response"></div>'],
+			['HTML', 'Add Reason', '<div></div>']
+		]);
+		
+		var add_reason_btn1 = $a($i(e_lost_dialog.widgets['Add Reason']), 'button', 'button');
+		add_reason_btn1.innerHTML = 'Add';
+		add_reason_btn1.onclick = function(){ e_lost_dialog.add(); }
+		
+		var add_reason_btn2 = $a($i(e_lost_dialog.widgets['Add Reason']), 'button', 'button');
+		add_reason_btn2.innerHTML = 'Cancel';
+		$y(add_reason_btn2,{marginLeft:'4px'});
+		add_reason_btn2.onclick = function(){ e_lost_dialog.hide();}
+		
+		e_lost_dialog.onshow = function() {
+			e_lost_dialog.widgets['Opportunity Lost Reason'].value = '';
+			$i('update_enquiry_dialog_response').innerHTML = '';
+		}
+		
+		e_lost_dialog.add = function() {
+			// sending...
+			$i('update_enquiry_dialog_response').innerHTML = 'Processing...';
+			var arg =	strip(e_lost_dialog.widgets['Opportunity Lost Reason'].value);
+			var call_back = function(r,rt) { 
+				if(r.message == 'true'){
+					$i('update_enquiry_dialog_response').innerHTML = 'Done';
+					e_lost_dialog.hide();
+				}
+			}
+			if(arg) {
+				$c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name),'declare_enquiry_lost',arg,call_back);
+			}
+			else{
+				msgprint("Please add enquiry lost reason");
+			}
+			
+		}
+	}	
+	
+	if(!e_lost_dialog){
+		set_e_lost_dialog();
+	}	
+	e_lost_dialog.show();
+}
+
+//get query select Territory
+//=======================================================================================================================
+cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
+	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';}
+
+/*
+//===================== Opportunity From validation - either customer or lead is mandatory =====================================
+cur_frm.cscript.enq_frm_validate = function(doc,cdt,cdn){
+	
+	if(doc.enquiry_from == 'Lead'){
+		if(!doc.lead){
+			alert("Lead is mandatory.");	
+			validated = false; 
+		}
+	}
+	else if(doc.enquiry_from == 'Customer'){
+			if(!doc.customer){
+			alert("Customer is mandatory.");
+			validated = false;
+		}
+		else if(!doc.contact_person){
+			alert("Contact Person is mandatory.");
+			validated = false;
+		}
+		else if(!doc.customer_group){
+			alert("Customer Group is mandatory.");
+			validated = false;
+		}
+	} 
+}
+*/
+
+//===================validation function ==============================================================================
+
+cur_frm.cscript.validate = function(doc,cdt,cdn){
+	//cur_frm.cscript.enq_frm_validate(doc,cdt,cdn);
+}
diff --git a/erpnext/selling/doctype/opportunity/opportunity.py b/erpnext/selling/doctype/opportunity/opportunity.py
new file mode 100644
index 0000000..1dc8757
--- /dev/null
+++ b/erpnext/selling/doctype/opportunity/opportunity.py
@@ -0,0 +1,347 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.	If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+from utilities.transaction_base import TransactionBase
+
+class DocType(TransactionBase):
+	def __init__(self,doc,doclist=[]):
+		self.doc = doc
+		self.doclist = doclist
+		self.fname = 'enq_details'
+		self.tname = 'Opportunity Item'
+
+	# Autoname
+	# ====================================================================================================================
+	def autoname(self):
+		self.doc.name = make_autoname(self.doc.naming_series+'.####')
+
+	#--------Get customer address-------
+	# ====================================================================================================================
+	def get_cust_address(self,name):
+		details = sql("select customer_name, address, territory, customer_group from `tabCustomer` where name = '%s' and docstatus != 2" %(name), as_dict = 1)
+		if details:
+			ret = {
+				'customer_name':	details and details[0]['customer_name'] or '',
+				'address'	:	details and details[0]['address'] or '',
+				'territory'			 :	details and details[0]['territory'] or '',
+				'customer_group'		:	details and details[0]['customer_group'] or ''
+			}
+			# ********** get primary contact details (this is done separately coz. , in case there is no primary contact thn it would not be able to fetch customer details in case of join query)
+
+			contact_det = sql("select contact_name, contact_no, email_id from `tabContact` where customer = '%s' and is_customer = 1 and is_primary_contact = 'Yes' and docstatus != 2" %(name), as_dict = 1)
+
+			
+			ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or ''
+			ret['contact_no']		 = contact_det and contact_det[0]['contact_no'] or ''
+			ret['email_id']			 = contact_det and contact_det[0]['email_id'] or ''
+		
+			return ret
+		else:
+			msgprint("Customer : %s does not exist in system." % (name))
+			raise Exception
+		
+
+	# ====================================================================================================================		
+	def get_contact_details(self, arg):
+		arg = eval(arg)
+		contact = sql("select contact_no, email_id from `tabContact` where contact_name = '%s' and customer_name = '%s'" %(arg['contact_person'],arg['customer']), as_dict = 1)
+		ret = {
+			'contact_no' : contact and contact[0]['contact_no'] or '',
+			'email_id' : contact and contact[0]['email_id'] or ''
+		}
+		return ret
+		
+	# ====================================================================================================================
+	def on_update(self):
+		# Add to calendar
+		#if self.doc.contact_date and self.doc.last_contact_date != self.doc.contact_date:
+		if self.doc.contact_date and self.doc.contact_date_ref != self.doc.contact_date:
+			if self.doc.contact_by:
+				self.add_calendar_event()
+			set(self.doc, 'contact_date_ref',self.doc.contact_date)
+		set(self.doc, 'status', 'Draft')
+	
+	# Add to Calendar
+	# ====================================================================================================================
+	def add_calendar_event(self):
+		desc=''
+		user_lst =[]
+		if self.doc.customer:
+			if self.doc.contact_person:
+				desc = 'Contact '+cstr(self.doc.contact_person)
+			else:
+				desc = 'Contact customer '+cstr(self.doc.customer)
+		elif self.doc.lead:
+			if self.doc.lead_name:
+				desc = 'Contact '+cstr(self.doc.lead_name)
+			else:
+				desc = 'Contact lead '+cstr(self.doc.lead)
+		desc = desc+ '. By : ' + cstr(self.doc.contact_by)
+		
+		if self.doc.to_discuss:
+			desc = desc+' To Discuss : ' + cstr(self.doc.to_discuss)
+		
+		ev = Document('Event')
+		ev.description = desc
+		ev.event_date = self.doc.contact_date
+		ev.event_hour = '10:00'
+		ev.event_type = 'Private'
+		ev.ref_type = 'Opportunity'
+		ev.ref_name = self.doc.name
+		ev.save(1)
+		
+		user_lst.append(self.doc.owner)
+		
+		chk = sql("select t1.name from `tabProfile` t1, `tabSales Person` t2 where t2.email_id = t1.name and t2.name=%s",self.doc.contact_by)
+		if chk:
+			user_lst.append(chk[0][0])
+		
+		for d in user_lst:
+			ch = addchild(ev, 'event_individuals', 'Event User', 0)
+			ch.person = d
+			ch.save(1)
+
+	#--------------Validation For Last Contact Date-----------------
+	# ====================================================================================================================
+	def set_last_contact_date(self):
+		if self.doc.contact_date_ref and self.doc.contact_date_ref != self.doc.contact_date:
+			if getdate(self.doc.contact_date_ref) < getdate(self.doc.contact_date):
+				self.doc.last_contact_date=self.doc.contact_date_ref
+			else:
+				msgprint("Contact Date Cannot be before Last Contact Date")
+				raise Exception
+	
+	# check if item present in item table
+	# ====================================================================================================================
+	def validate_item_details(self):
+		if not getlist(self.doclist, 'enquiry_details'):
+			msgprint("Please select items for which enquiry needs to be made")
+			raise Exception
+	
+	#check if enquiry date in the range of fiscal year selected
+	#=====================================================
+	def validate_fiscal_year(self):
+		fy=sql("select year_start_date from `tabFiscal Year` where name='%s'"%self.doc.fiscal_year)
+		ysd=fy and fy[0][0] or ""
+		yed=add_days(str(ysd),365)
+		if str(self.doc.transaction_date) < str(ysd) or str(self.doc.transaction_date) > str(yed):
+			msgprint("Opportunity Date is not within the Fiscal Year selected")
+			raise Exception		
+
+	def validate_lead_cust(self):
+		if self.doc.enquiry_from == 'Lead' and not self.doc.lead:
+			msgprint("Lead Id is mandatory if 'Opportunity From' is selected as Lead", raise_exception=1)
+		elif self.doc.enquiry_from == 'Customer' and not self.doc.customer:
+			msgprint("Customer is mandatory if 'Opportunity From' is selected as Customer", raise_exception=1)
+
+	
+	def validate(self):
+		self.validate_fiscal_year()
+		self.set_last_contact_date()
+		self.validate_item_details()
+		self.validate_lead_cust()
+		
+	# On Submit Functions
+	# ====================================================================================================================
+	def on_submit(self):
+		set(self.doc, 'status', 'Submitted')
+		
+	# ====================================================================================================================	
+	def on_cancel(self):
+		chk = sql("select t1.name from `tabQuotation` t1, `tabQuotation Item` t2 where t2.parent = t1.name and t1.docstatus=1 and (t1.status!='Order Lost' and t1.status!='Cancelled') and t2.prevdoc_docname = %s",self.doc.name)
+		if chk:
+			msgprint("Quotation No. "+cstr(chk[0][0])+" is submitted against this Opportunity. Thus can not be cancelled.")
+			raise Exception
+		else:
+			set(self.doc, 'status', 'Cancelled')
+		
+	# declare as enquiry lost
+	#---------------------------
+	def declare_enquiry_lost(self,arg):
+		chk = sql("select t1.name from `tabQuotation` t1, `tabQuotation Item` t2 where t2.parent = t1.name and t1.docstatus=1 and (t1.status!='Order Lost' and t1.status!='Cancelled') and t2.prevdoc_docname = %s",self.doc.name)
+		if chk:
+			msgprint("Quotation No. "+cstr(chk[0][0])+" is submitted against this Opportunity. Thus 'Opportunity Lost' can not be declared against it.")
+			raise Exception
+		else:
+			set(self.doc, 'status', 'Opportunity Lost')
+			set(self.doc, 'order_lost_reason', arg)
+			return 'true'
+		
+	# ====================================================================================================================	
+	def update_follow_up(self):
+		
+		sql("delete from `tabCommunication Log` where parent = '%s'"%self.doc.name);
+		for d in getlist(self.doclist, 'follow_up'):		
+			d.save()
+		self.doc.save()
+		
+		
+	# On Send Email
+	# ====================================================================================================================
+	#def send_emails(self,email,sender,subject,message):
+	#	if email:
+	#		sendmail(email,sender,subject=subject or 'Opportunity',parts=[['text/plain',message or self.get_enq_summary()]])
+
+	# Prepare HTML Table and Enter Opportunity Items in it, which will be added in enq summary
+	# ====================================================================================================================
+	def quote_table(self):
+		if getlist(self.doclist,'enq_details'):
+			header_lbl = ['Item Code','Item Name','Description','Reqd Qty','UOM']
+			item_tbl = '''<table style="width:90%%; border:1px solid #AAA; border-collapse:collapse"><tr>'''
+			for i in header_lbl:
+				item_header = '''<td style="width=20%%; border:1px solid #AAA; border-collapse:collapse;"><b>%s</b></td>''' % i
+				item_tbl += item_header
+			item_tbl += '''</tr>'''
+			
+			for d in getlist(self.doclist,'enq_details'):
+				item_det = '''
+					<tr><td style="width:20%%; border:1px solid #AAA; border-collpase:collapse">%s</td>
+					<td style="width:20%%; border:1px solid #AAA; border-collapse:collpase">%s</td>
+					<td style="width:20%%; border:1px solid #AAA; border-collapse:collpase">%s</td>
+					<td style="width:20%%; border:1px solid #AAA; border-collapse:collpase">%s</td>
+					<td style="width:20%%; border:1px solid #AAA; border-collapse:collpase">%s</td></tr>
+				''' % (d.item_code,d.item_name,d.description,d.reqd_qty,d.uom)
+				item_tbl += item_det
+			item_tbl += '''</table>'''
+			return item_tbl
+			
+	# Prepare HTML Page containing summary of Opportunity, which will be sent as message in E-mail
+	# ====================================================================================================================
+	def get_enq_summary(self):
+
+		t = """
+				<html><head></head>
+				<body>
+					<div style="border:1px solid #AAA; padding:20px; width:100%%">
+						<div style="text-align:center;font-size:14px"><b>Request For Quotation</b><br></div>
+						<div style="text-align:center;font-size:12px"> %(from_company)s</div>
+						<div style="text-align:center; font-size:10px"> %(company_address)s</div>
+						<div style="border-bottom:1px solid #AAA; padding:10px"></div> 
+						
+						<div style="padding-top:10px"><b>Quotation Items</b></div>
+						<div><table style="width:100%%">
+						<tr><td style="width:40%%">Opportunity No:</td> <td style="width:60%%"> %(name)s</td></tr>
+						<tr><td style="width:40%%">Opening Date:</td> <td style="width:60%%"> %(transaction_date)s</td></tr>
+						<tr><td style="width:40%%">Expected By Date:</td> <td style="width:60%%"> %(expected_date)s</td></tr>
+						</table>
+						</div>
+						
+						<div style="padding-top:10px"><b>Terms and Conditions</b></div>
+						<div> %(terms_and_conditions)s</div>
+						
+						<div style="padding-top:10px"><b>Contact Details</b></div>
+						<div><table style="width:100%%">
+						<tr><td style="width=40%%">Contact Person:</td><td style="width:60%%"> %(contact_person)s</td></tr>
+						<tr><td style="width=40%%">Contact No:</td><td style="width:60%%"> %(contact_no)s</td></tr>
+						<tr><td style="width=40%%">Email:</td><td style="width:60%%"> %(email)s</td></tr>
+						</table></div>
+						""" % (self.doc.fields)
+		
+		t += """<br><div><b>Quotation Items</b><br></div><div style="width:100%%">%s</div>
+						<br>
+To login into the system, use link : <div><a href='http://67.205.111.118/v160/login.html' target='_blank'>http://67.205.111.118/v160/login.html</a></div><br><br>
+						</div>
+					</body>
+					</html>
+					""" % (self.quote_table())
+		return t
+			
+	#-----------------Email-------------------------------------------- 
+	# ====================================================================================================================
+	def send_emails(self, email=[], subject='', message=''):
+		if email:
+			sender_email= sql("Select email from `tabProfile` where name='%s'"%session['user'])
+			if sender_email and sender_email[0][0]:
+				attach_list=[]
+				for at in getlist(self.doclist,'enquiry_attachment_detail'):
+					if at.select_file:
+						attach_list.append(at.select_file)
+				cc_list=[]
+				if self.doc.cc_to:
+					for cl in (self.doc.cc_to.split(',')):
+						if not validate_email_add(cl.strip(' ')):
+							msgprint('error:%s is not a valid email id' % cl.strip(' '))
+							raise Exception
+						cc_list.append(cl.strip(' ')) 
+						sendmail(cc_list, sender=sender_email[0][0], subject=subject, parts=[['text/html', message]], attach=attach_list)					 
+				sendmail(email, sender=sender_email[0][0], subject=subject, parts=[['text/html', message]], cc=cc_list, attach=attach_list)
+				#sendmail(cc_list, sender = sender_email[0][0], subject = subject , parts = [['text/html', message]],attach=attach_list)
+				msgprint("Mail has been sent")
+				self.add_in_follow_up(message,'Email')
+			else:
+				msgprint("Please enter your mail id in Profile")
+				raise Exception
+	
+	#-------------------------Checking Sent Mails Details----------------------------------------------
+	# ====================================================================================================================
+	def sent_mail(self):
+		if not self.doc.subject or not self.doc.message:
+			msgprint("Please enter subject & message in their respective fields.")
+		elif not self.doc.email_id1:
+			msgprint("Recipient not specified. Please add email id in 'Send To'.")
+			raise Exception
+		else :
+			if not validate_email_add(self.doc.email_id1.strip(' ')):
+				msgprint('error:%s is not a valid email id' % self.doc.email_id1)
+			else:
+				self.send_emails([self.doc.email_id1.strip(' ')], subject = self.doc.subject ,message = self.doc.message)
+
+	#---------------------- Add details in follow up table----------------
+	# ====================================================================================================================
+	def add_in_follow_up(self,message,type):
+		import datetime
+		child = addchild( self.doc, 'follow_up', 'Communication Log', 1, self.doclist)
+		child.date = datetime.datetime.now().date().strftime('%Y-%m-%d')
+		child.notes = message
+		child.follow_up_type = type
+		child.save()
+
+	#-------------------SMS----------------------------------------------
+	# ====================================================================================================================
+	def send_sms(self):
+		if not self.doc.sms_message:
+			msgprint("Please enter message in SMS Section ")
+			raise Exception
+		elif not getlist(self.doclist, 'enquiry_sms_detail'):
+			msgprint("Please mention mobile no. to which sms needs to be sent")
+			raise Exception
+		else:
+			receiver_list = []
+			for d in getlist(self.doclist,'enquiry_sms_detail'):
+				if d.other_mobile_no:
+					receiver_list.append(d.other_mobile_no)
+		
+		if receiver_list:
+			msgprint(get_obj('SMS Control', 'SMS Control').send_sms(receiver_list, self.doc.sms_message))
+			self.add_in_follow_up(self.doc.sms_message,'SMS')
diff --git a/erpnext/selling/doctype/opportunity/opportunity.txt b/erpnext/selling/doctype/opportunity/opportunity.txt
new file mode 100644
index 0000000..5886113
--- /dev/null
+++ b/erpnext/selling/doctype/opportunity/opportunity.txt
@@ -0,0 +1,624 @@
+# DocType, Opportunity
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:08',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:45:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1324284087',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'document_type': u'Transaction',
+		'is_submittable': 1,
+		'module': u'Selling',
+		'name': '__common__',
+		'search_fields': u'status,transaction_date,customer,lead,enquiry_type,territory,company',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'subject': u'To %(customer_name)s%(lead_name)s on %(transaction_date)s',
+		'version': 588
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Opportunity',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Opportunity',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Opportunity
+	{
+		'doctype': 'DocType',
+		'name': u'Opportunity'
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'System Manager'
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Enter customer enquiry for which you might raise a quotation in future',
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'To manage multiple series please go to Setup > Manage Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Series',
+		'no_copy': 1,
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'ENQUIRY\nENQ',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'enquiry_from',
+		'fieldtype': u'Select',
+		'label': u'Opportunity From',
+		'oldfieldname': u'enquiry_from',
+		'oldfieldtype': u'Select',
+		'options': u'\nLead\nCustomer',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Customer',
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'search_index': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer_address',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Customer Address',
+		'options': u'Address',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_person',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Contact Person',
+		'options': u'Contact',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
+		'label': u'Customer Name',
+		'permlevel': 1,
+		'print_hide': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'lead',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Lead',
+		'oldfieldname': u'lead',
+		'oldfieldtype': u'Link',
+		'options': u'Lead',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'lead_name',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'label': u'Name',
+		'oldfieldname': u'lead_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'address_display',
+		'fieldtype': u'Small Text',
+		'hidden': 0,
+		'label': u'Address',
+		'oldfieldname': u'address',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_display',
+		'fieldtype': u'Small Text',
+		'label': u'Contact',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_mobile',
+		'fieldtype': u'Text',
+		'label': u'Contact Mobile No',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'contact_email',
+		'fieldtype': u'Text',
+		'label': u'Contact Email',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'default': u'Today',
+		'description': u'The date at which current entry is made in system.',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_date',
+		'fieldtype': u'Date',
+		'label': u'Opportunity Date',
+		'oldfieldname': u'transaction_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'50px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'enquiry_type',
+		'fieldtype': u'Select',
+		'label': u'Opportunity Type',
+		'oldfieldname': u'enquiry_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nSales\nMaintenance',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'Draft',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
+		'label': u'Status',
+		'no_copy': 1,
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nDraft\nSubmitted\nQuotation Sent\nOrder Confirmed\nOpportunity Lost\nCancelled',
+		'permlevel': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'<a href="javascript:cur_frm.cscript.TerritoryHelp();">To Manage Territory, click here</a>',
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Territory',
+		'options': u'Territory',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.enquiry_from=="Customer"',
+		'description': u'<a href="javascript:cur_frm.cscript.CGHelp();">To Manage Customer Groups, click here</a>',
+		'doctype': u'DocField',
+		'fieldname': u'customer_group',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Customer Group',
+		'oldfieldname': u'customer_group',
+		'oldfieldtype': u'Link',
+		'options': u'Customer Group',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'items',
+		'fieldtype': u'Section Break',
+		'label': u'Items',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u"Items which do not exist in Item master can also be entered on customer's request",
+		'doctype': u'DocField',
+		'fieldname': u'enquiry_details',
+		'fieldtype': u'Table',
+		'label': u'Opportunity Items',
+		'oldfieldname': u'enquiry_details',
+		'oldfieldtype': u'Table',
+		'options': u'Opportunity Item',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Filing in Additional Information about the Opportunity will help you analyze your data better.',
+		'doctype': u'DocField',
+		'fieldname': u'more_info',
+		'fieldtype': u'Section Break',
+		'label': u'More Info',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
+		'in_filter': 1,
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'source',
+		'fieldtype': u'Select',
+		'label': u'Source',
+		'oldfieldname': u'source',
+		'oldfieldtype': u'Select',
+		'options': u"\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign\nWalk In",
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Enter name of campaign if source of enquiry is campaign',
+		'doctype': u'DocField',
+		'fieldname': u'campaign',
+		'fieldtype': u'Link',
+		'label': u'Campaign',
+		'oldfieldname': u'campaign',
+		'oldfieldtype': u'Link',
+		'options': u'Campaign',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'order_lost_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Quotation Lost Reason',
+		'no_copy': 1,
+		'oldfieldname': u'order_lost_reason',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'report_hide': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
+		'permlevel': 0,
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Your sales person who will contact the customer in future',
+		'doctype': u'DocField',
+		'fieldname': u'contact_by',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Next Contact By',
+		'oldfieldname': u'contact_by',
+		'oldfieldtype': u'Link',
+		'options': u'Profile',
+		'permlevel': 0,
+		'width': u'75px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Your sales person will get a reminder on this date to contact the customer',
+		'doctype': u'DocField',
+		'fieldname': u'contact_date',
+		'fieldtype': u'Date',
+		'label': u'Next Contact Date',
+		'oldfieldname': u'contact_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 0,
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'description': u'Date on which the lead was last contacted',
+		'doctype': u'DocField',
+		'fieldname': u'last_contact_date',
+		'fieldtype': u'Date',
+		'label': u'Last Contact Date',
+		'no_copy': 1,
+		'oldfieldname': u'last_contact_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'to_discuss',
+		'fieldtype': u'Small Text',
+		'label': u'To Discuss',
+		'no_copy': 1,
+		'oldfieldname': u'to_discuss',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Keep a track of communication related to this enquiry which will help for future reference.',
+		'doctype': u'DocField',
+		'fieldname': u'communication_history',
+		'fieldtype': u'Section Break',
+		'label': u'Communication History',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'follow_up',
+		'fieldtype': u'Table',
+		'label': u'Follow Up',
+		'oldfieldname': u'follow_up',
+		'oldfieldtype': u'Table',
+		'options': u'Communication Log',
+		'permlevel': 0
+	}
+]
diff --git a/erpnext/selling/doctype/enquiry/__init__.py b/erpnext/selling/doctype/opportunity_item/__init__.py
similarity index 100%
copy from erpnext/selling/doctype/enquiry/__init__.py
copy to erpnext/selling/doctype/opportunity_item/__init__.py
diff --git a/erpnext/selling/doctype/opportunity_item/opportunity_item.txt b/erpnext/selling/doctype/opportunity_item/opportunity_item.txt
new file mode 100644
index 0000000..f145263
--- /dev/null
+++ b/erpnext/selling/doctype/opportunity_item/opportunity_item.txt
@@ -0,0 +1,140 @@
+# DocType, Opportunity Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:08',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:08',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Selling',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 59
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Opportunity Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Opportunity Item
+	{
+		'doctype': 'DocType',
+		'name': u'Opportunity Item'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'reqd': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'reqd': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
+		'print_hide': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Brand',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Link',
+		'options': u'Brand',
+		'print_hide': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'basic_rate',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Basic Rate',
+		'oldfieldname': u'basic_rate',
+		'oldfieldtype': u'Currency',
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'uom',
+		'fieldtype': u'Link',
+		'label': u'UOM',
+		'oldfieldname': u'uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM',
+		'search_index': 0
+	}
+]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/plot_control/plot_control.py b/erpnext/selling/doctype/plot_control/plot_control.py
index 468f3c1..31ba67d 100644
--- a/erpnext/selling/doctype/plot_control/plot_control.py
+++ b/erpnext/selling/doctype/plot_control/plot_control.py
@@ -41,9 +41,9 @@
   def get_monthwise_amount(self,lst):
     lst = lst.split(',')
     if not lst[1]:
-      ret = convert_to_lists(sql("SELECT SUM(grand_total) AMOUNT,CASE MONTH(due_date) WHEN 1 THEN 'JAN' WHEN 2 THEN 'FEB' WHEN 3 THEN 'MAR' WHEN 4 THEN 'APR' WHEN 5 THEN 'MAY' WHEN 6 THEN 'JUN' WHEN 7 THEN 'JUL' WHEN 8 THEN 'AUG' WHEN 9 THEN 'SEP' WHEN 10 THEN 'OCT' WHEN 11 THEN 'NOV' WHEN 12 THEN 'DEC' END MONTHNAME FROM `tabReceivable Voucher` WHERE docstatus = 1 AND fiscal_year = '%s' GROUP BY MONTH(due_date) ORDER BY MONTH(due_date)"%lst[0]))
+      ret = convert_to_lists(sql("SELECT SUM(grand_total) AMOUNT,CASE MONTH(due_date) WHEN 1 THEN 'JAN' WHEN 2 THEN 'FEB' WHEN 3 THEN 'MAR' WHEN 4 THEN 'APR' WHEN 5 THEN 'MAY' WHEN 6 THEN 'JUN' WHEN 7 THEN 'JUL' WHEN 8 THEN 'AUG' WHEN 9 THEN 'SEP' WHEN 10 THEN 'OCT' WHEN 11 THEN 'NOV' WHEN 12 THEN 'DEC' END MONTHNAME FROM `tabSales Invoice` WHERE docstatus = 1 AND fiscal_year = '%s' GROUP BY MONTH(due_date) ORDER BY MONTH(due_date)"%lst[0]))
     else:
-      ret = convert_to_lists(sql("select sum(t2.amount) AMOUNT ,CASE MONTH(t1.due_date) WHEN 1 THEN 'JAN' WHEN 2 THEN 'FEB' WHEN 3 THEN 'MAR' WHEN 4 THEN 'APR' WHEN 5 THEN 'MAY' WHEN 6 THEN 'JUN' WHEN 7 THEN 'JUL' WHEN 8 THEN 'AUG' WHEN 9 THEN 'SEP' WHEN 10 THEN 'OCT' WHEN 11 THEN 'NOV' WHEN 12 THEN 'DEC' END MONTHNAME from `tabReceivable Voucher` t1,`tabRV Detail` t2 WHERE t1.name = t2.parent and t1.docstatus = 1 and t2.item_group = '%s' AND t1.fiscal_year = '%s' GROUP BY MONTH(t1.due_date) ORDER BY MONTH(t1.due_date)"%(lst[1],lst[0])))
+      ret = convert_to_lists(sql("select sum(t2.amount) AMOUNT ,CASE MONTH(t1.due_date) WHEN 1 THEN 'JAN' WHEN 2 THEN 'FEB' WHEN 3 THEN 'MAR' WHEN 4 THEN 'APR' WHEN 5 THEN 'MAY' WHEN 6 THEN 'JUN' WHEN 7 THEN 'JUL' WHEN 8 THEN 'AUG' WHEN 9 THEN 'SEP' WHEN 10 THEN 'OCT' WHEN 11 THEN 'NOV' WHEN 12 THEN 'DEC' END MONTHNAME from `tabSales Invoice` t1,`tabSales Invoice Item` t2 WHERE t1.name = t2.parent and t1.docstatus = 1 and t2.item_group = '%s' AND t1.fiscal_year = '%s' GROUP BY MONTH(t1.due_date) ORDER BY MONTH(t1.due_date)"%(lst[1],lst[0])))
     
     m =cint(sql("select month('%s')"%(get_defaults()['year_start_date']))[0][0])
 
@@ -68,13 +68,13 @@
     cases = self.get_week_cases(lst[0],lst[1])
           
     if not lst[2]:
-      query = "SELECT SUM(grand_total) AMOUNT,CASE WEEK(due_date)"+ cases +"END Weekly FROM `tabReceivable Voucher` WHERE MONTH(due_date) = %d AND docstatus = 1 AND fiscal_year = '%s' GROUP BY Weekly  ORDER BY Weekly"
+      query = "SELECT SUM(grand_total) AMOUNT,CASE WEEK(due_date)"+ cases +"END Weekly FROM `tabSales Invoice` WHERE MONTH(due_date) = %d AND docstatus = 1 AND fiscal_year = '%s' GROUP BY Weekly  ORDER BY Weekly"
       
       ret = convert_to_lists(sql(query%(cint(lst[0]),lst[1])))
     
     else:
           
-      query = "SELECT SUM(t2.amount) AMOUNT,CASE WEEK(t1.due_date)" + cases + "END Weekly FROM `tabReceivable Voucher` t1, `tabRV Detail` t2 WHERE MONTH(t1.due_date) = %d AND t1.docstatus = 1 AND t1.fiscal_year = '%s' AND t1.name = t2.parent AND t2.item_group ='%s' GROUP BY Weekly  ORDER BY Weekly"
+      query = "SELECT SUM(t2.amount) AMOUNT,CASE WEEK(t1.due_date)" + cases + "END Weekly FROM `tabSales Invoice` t1, `tabSales Invoice Item` t2 WHERE MONTH(t1.due_date) = %d AND t1.docstatus = 1 AND t1.fiscal_year = '%s' AND t1.name = t2.parent AND t2.item_group ='%s' GROUP BY Weekly  ORDER BY Weekly"
       
       ret =convert_to_lists(sql(query%(cint(lst[0]),lst[1],lst[2])))
  
@@ -113,12 +113,12 @@
       if(m1 == 13): m1 = 1 
     
     if not lst[1]:
-      query = "SELECT SUM(grand_total) AMOUNT,CASE WEEK(due_date)"+cases+"END Weekly, month(due_date) month FROM `tabReceivable Voucher` WHERE docstatus = 1 AND fiscal_year = '%s' GROUP BY `month`,weekly ORDER BY `month`,weekly"
+      query = "SELECT SUM(grand_total) AMOUNT,CASE WEEK(due_date)"+cases+"END Weekly, month(due_date) month FROM `tabSales Invoice` WHERE docstatus = 1 AND fiscal_year = '%s' GROUP BY `month`,weekly ORDER BY `month`,weekly"
       ret = convert_to_lists(sql(query%lst[0]))
     
     else:
     
-      query = "SELECT SUM(t2.amount) AMOUNT,CASE WEEK(t1.due_date)" + cases + "END Weekly, month(due_date) month FROM `tabReceivable Voucher` t1, `tabRV Detail` t2 WHERE t1.docstatus = 1 AND t1.fiscal_year = '%s' AND t1.name = t2.parent AND t2.item_group ='%s' GROUP BY Weekly  ORDER BY Weekly"
+      query = "SELECT SUM(t2.amount) AMOUNT,CASE WEEK(t1.due_date)" + cases + "END Weekly, month(due_date) month FROM `tabSales Invoice` t1, `tabSales Invoice Item` t2 WHERE t1.docstatus = 1 AND t1.fiscal_year = '%s' AND t1.name = t2.parent AND t2.item_group ='%s' GROUP BY Weekly  ORDER BY Weekly"
       ret = convert_to_lists(sql(query%(lst[0],lst[1])))
       
     
diff --git a/erpnext/selling/doctype/plot_control/plot_control.txt b/erpnext/selling/doctype/plot_control/plot_control.txt
index c6564d7..00af5f1 100644
--- a/erpnext/selling/doctype/plot_control/plot_control.txt
+++ b/erpnext/selling/doctype/plot_control/plot_control.txt
@@ -3,28 +3,28 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:12',
+		'creation': '2012-03-27 14:36:12',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-03-27 14:36:12',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Selling',
+		'module': u'Selling',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 215
 	},
 
 	# DocType, Plot Control
 	{
 		'doctype': 'DocType',
-		'name': 'Plot Control'
+		'name': u'Plot Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/quotation/listview.js b/erpnext/selling/doctype/quotation/listview.js
new file mode 100644
index 0000000..1489df3
--- /dev/null
+++ b/erpnext/selling/doctype/quotation/listview.js
@@ -0,0 +1,40 @@
+// render
+wn.doclistviews['Quotation'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			"`tabQuotation`.quotation_to",
+			"`tabQuotation`.lead_name",
+			"`tabQuotation`.customer_name",
+			"`tabQuotation`.currency", 
+			"ifnull(`tabQuotation`.grand_total_export,0) as grand_total_export"
+		]);
+		this.stats = this.stats.concat(['status', 'quotation_to', 'company']);
+	},
+	
+	prepare_data: function(data) {
+		this._super(data);
+		if(data.quotation_to == 'Lead') {
+			data.quotation_name = repl('[%(quotation_to)s] %(lead_name)s', data);
+		} else {
+			data.quotation_name = repl('[%(quotation_to)s] %(customer_name)s', data);
+		}		
+	},
+	
+	columns: [
+		{width: '5%', content:'avatar'},
+		{width: '3%', content:'docstatus'},
+		{width: '15%', content:'name'},
+		{width: '47%', content:'tags+quotation_name', css: {color:'#aaa'}},
+		{
+			width: '18%', 
+			content: function(parent, data) { 
+				$(parent).html(data.currency + ' ' + fmt_money(data.grand_total_export)) 
+			},
+			css: {'text-align':'right'}
+		},
+		{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+
+});
+
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index 910f54e..563052f 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -15,15 +15,16 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 // Module CRM
-cur_frm.cscript.tname = "Quotation Detail";
+cur_frm.cscript.tname = "Quotation Item";
 cur_frm.cscript.fname = "quotation_details";
 cur_frm.cscript.other_fname = "other_charges";
 cur_frm.cscript.sales_team_fname = "sales_team";
 
 // =====================================================================================
-$import(Sales Common)
-$import(Other Charges)
-$import(SMS Control)
+wn.require('erpnext/selling/doctype/sales_common/sales_common.js');
+wn.require('erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js');
+wn.require('erpnext/utilities/doctype/sms_control/sms_control.js');
+wn.require('erpnext/setup/doctype/notification_control/notification_control.js');
 
 // ONLOAD
 // ===================================================================================
@@ -87,11 +88,11 @@
 	if(doc.docstatus == 1 && doc.status!='Order Lost') {
 		cur_frm.add_custom_button('Make Sales Order', cur_frm.cscript['Make Sales Order']);
 		cur_frm.add_custom_button('Set as Lost', cur_frm.cscript['Declare Order Lost']);
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 	}
 
-	if (!doc.docstatus) hide_field(['Update Follow up']);
-	else unhide_field(['Update Follow up']);
+	if (!doc.docstatus) hide_field(['Update Communication Log']);
+	else unhide_field(['Update Communication Log']);
 }
 
 
@@ -102,12 +103,19 @@
 			cur_frm.refresh();
 	}
 
-	if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', '', callback);
-	if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
+	if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 
+		'get_default_customer_address', '', callback);
+	if(doc.customer) unhide_field(['customer_address','contact_person','customer_name',
+		'address_display','contact_display','contact_mobile','contact_email','territory',
+		'customer_group']);
 }
 
 cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {
-	if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
+	if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({
+		customer: doc.customer, 
+		address: doc.customer_address, 
+		contact: doc.contact_person
+	}),'', doc, dt, dn, 1);
 }
 
 cur_frm.fields_dict.customer_address.on_new = function(dn) {
@@ -143,11 +151,11 @@
 cur_frm.fields_dict['enq_no'].get_query = function(doc,cdt,cdn){
 	var cond='';
 	var cond1='';
-	if(doc.order_type) cond = 'ifnull(`tabEnquiry`.enquiry_type, "") = "'+doc.order_type+'" AND';
-	if(doc.customer) cond1 = '`tabEnquiry`.customer = "'+doc.customer+'" AND';
-	else if(doc.lead) cond1 = '`tabEnquiry`.lead = "'+doc.lead+'" AND';
+	if(doc.order_type) cond = 'ifnull(`tabOpportunity`.enquiry_type, "") = "'+doc.order_type+'" AND';
+	if(doc.customer) cond1 = '`tabOpportunity`.customer = "'+doc.customer+'" AND';
+	else if(doc.lead) cond1 = '`tabOpportunity`.lead = "'+doc.lead+'" AND';
 
-	return repl('SELECT `tabEnquiry`.`name` FROM `tabEnquiry` WHERE `tabEnquiry`.`docstatus` = 1 AND `tabEnquiry`.status = "Submitted" AND %(cond)s %(cond1)s `tabEnquiry`.`name` LIKE "%s" ORDER BY `tabEnquiry`.`name` ASC LIMIT 50', {cond:cond, cond1:cond1});
+	return repl('SELECT `tabOpportunity`.`name` FROM `tabOpportunity` WHERE `tabOpportunity`.`docstatus` = 1 AND `tabOpportunity`.status = "Submitted" AND %(cond)s %(cond1)s `tabOpportunity`.`name` LIKE "%s" ORDER BY `tabOpportunity`.`name` ASC LIMIT 50', {cond:cond, cond1:cond1});
 }
 
 // Make Sales Order
@@ -162,7 +170,7 @@
 			'from_doctype':'Quotation',
 			'to_doctype':'Sales Order',
 			'from_docname':doc.name,
-			'from_to_list':"[['Quotation', 'Sales Order'], ['Quotation Detail', 'Sales Order Detail'],['RV Tax Detail','RV Tax Detail'], ['Sales Team', 'Sales Team'], ['TC Detail', 'TC Detail']]"
+			'from_to_list':"[['Quotation', 'Sales Order'], ['Quotation Item', 'Sales Order Item'],['Sales Taxes and Charges','Sales Taxes and Charges'], ['Sales Team', 'Sales Team'], ['TC Detail', 'TC Detail']]"
 		}, function(r,rt) {
 			loaddoc("Sales Order", n);
 		});
@@ -170,7 +178,7 @@
 }
 
 //pull enquiry details
-cur_frm.cscript['Pull Enquiry Detail'] = function(doc,cdt,cdn){
+cur_frm.cscript.pull_enquiry_detail = function(doc,cdt,cdn){
 
 	var callback = function(r,rt){
 		if(r.message){
@@ -192,7 +200,7 @@
 
 //update follow up
 //=================================================================================
-cur_frm.cscript['Update Follow up'] = function(doc){
+cur_frm.cscript['Update Communication Log'] = function(doc){
 
 	$c_obj(make_doclist(doc.doctype, doc.name),'update_followup_details','',function(r, rt){
 		refresh_field('follow_up');
@@ -256,10 +264,10 @@
 // ========================================================================================
 cur_frm.cscript['Get Report'] = function(doc,cdt,cdn) {
 	var callback = function(report){
-	report.set_filter('Sales Order Detail', 'Quotation No.',doc.name)
+	report.set_filter('Sales Order Item', 'Quotation No.',doc.name)
 	report.dt.run();
  }
- loadreport('Sales Order Detail','Itemwise Sales Details', callback);
+ loadreport('Sales Order Item','Itemwise Sales Details', callback);
 }
 
 
@@ -284,7 +292,7 @@
 //===================validation function =================================
 
 cur_frm.cscript.validate = function(doc,cdt,cdn){
-	cur_frm.cscript['Re-Calculate Values'](doc, cdt, cdn);
+	cur_frm.cscript.recalculate_values(doc, cdt, cdn);
 	cur_frm.cscript.quot_to_validate(doc,cdt,cdn);
 }
 
@@ -301,27 +309,26 @@
 		(\
 			select q.item_code,q.quote_rate from\
 			(\
-				select q.transaction_date,qd.item_code,basic_rate as quote_rate from `tabQuotation Detail` qd, `tabQuotation` q where q.name=qd.parent and q.docstatus=1 and customer='%(cust)s'\
+				select q.transaction_date,qd.item_code,basic_rate as quote_rate from `tabQuotation Item` qd, `tabQuotation` q where q.name=qd.parent and q.docstatus=1 and customer='%(cust)s'\
 			)q,\
 			(\
-				select qd.item_code,max(transaction_date) as transaction_date from `tabQuotation Detail` qd, `tabQuotation` q where q.name=qd.parent and q.docstatus=1 and customer='%(cust)s' group by qd.item_code\
+				select qd.item_code,max(transaction_date) as transaction_date from `tabQuotation Item` qd, `tabQuotation` q where q.name=qd.parent and q.docstatus=1 and customer='%(cust)s' group by qd.item_code\
 			)m where q.item_code=m.item_code and q.transaction_date=m.transaction_date\
 		)q on i.item_code=q.item_code\
 		left join\
 		(\
 			select r.item_code,r.sales_rate from\
 			(\
-				select r.voucher_date,rd.item_code,basic_rate as sales_rate from `tabRV Detail` rd, `tabReceivable Voucher` r where r.name=rd.parent and r.docstatus=1 and customer='%(cust)s'\
+				select r.voucher_date,rd.item_code,basic_rate as sales_rate from `tabSales Invoice Item` rd, `tabSales Invoice` r where r.name=rd.parent and r.docstatus=1 and customer='%(cust)s'\
 			)r,\
 			(\
-				select rd.item_code,max(voucher_date) as voucher_date from `tabRV Detail` rd, `tabReceivable Voucher` r where r.name=rd.parent and r.docstatus=1 and customer='%(cust)s' group by rd.item_code\
+				select rd.item_code,max(voucher_date) as voucher_date from `tabSales Invoice Item` rd, `tabSales Invoice` r where r.name=rd.parent and r.docstatus=1 and customer='%(cust)s' group by rd.item_code\
 			)m where r.item_code=m.item_code and r.voucher_date=m.voucher_date\
 		)s on i.item_code=s.item_code ORDER BY item_code LIMIT 50",{cust:doc.customer, cond:cond});
 	else
 		return repl("SELECT name, item_name, description FROM tabItem WHERE `tabItem`.%(key)s LIKE '%s' %(cond)s ORDER BY tabItem.item_code DESC LIMIT 50", {cond:cond});
 }
 
-$import(Notification Control)
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	var args = {
 		type: 'Quotation',
diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py
index 27206b2..bfab696 100644
--- a/erpnext/selling/doctype/quotation/quotation.py
+++ b/erpnext/selling/doctype/quotation/quotation.py
@@ -38,7 +38,7 @@
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
 		self.doclist = doclist
-		self.tname = 'Quotation Detail'
+		self.tname = 'Quotation Item'
 		self.fname = 'quotation_details'
 		
 	# Autoname
@@ -50,11 +50,11 @@
 # DOCTYPE TRIGGER FUNCTIONS
 # ==============================================================================		
  
-	# Pull Enquiry Details
+	# Pull Opportunity Details
 	# --------------------
 	def pull_enq_details(self):
 		self.doc.clear_table(self.doclist, 'quotation_details')
-		get_obj('DocType Mapper', 'Enquiry-Quotation').dt_map('Enquiry', 'Quotation', self.doc.enq_no, self.doc, self.doclist, "[['Enquiry', 'Quotation'],['Enquiry Detail', 'Quotation Detail']]")
+		get_obj('DocType Mapper', 'Opportunity-Quotation').dt_map('Opportunity', 'Quotation', self.doc.enq_no, self.doc, self.doclist, "[['Opportunity', 'Quotation'],['Opportunity Item', 'Quotation Item']]")
 
 		self.get_adj_percent()
 
@@ -65,7 +65,7 @@
 	def get_contact_details(self):
 		return get_obj('Sales Common').get_contact_details(self,0)
 	
-	# Clear Quotation Details
+	# Clear Quotation Items
 	# -----------------------
 	def clear_quotation_details(self):
 		self.doc.clear_table(self.doclist, 'quotation_details')	
@@ -77,7 +77,8 @@
 	# Get Item Details
 	# -----------------
 	def get_item_details(self, args=None):
-		args = args and eval(args) or {}
+		import json
+		args = args and json.loads(args) or {}
 		if args.get('item_code'):
 			return get_obj('Sales Common').get_item_details(args, self)
 		else:
@@ -113,7 +114,7 @@
 	def load_default_taxes(self):
 		return get_obj('Sales Common').load_default_taxes(self)
 
-	# Pull details from other charges master (Get Other Charges)
+	# Pull details from other charges master (Get Sales Taxes and Charges Master)
 	# ----------------------------------------------------------
 	def get_other_charges(self):
 		return get_obj('Sales Common').get_other_charges(self)	
@@ -244,7 +245,7 @@
 		ev.event_date = self.doc.contact_date
 		ev.event_hour = '10:00'
 		ev.event_type = 'Private'
-		ev.ref_type = 'Enquiry'
+		ev.ref_type = 'Opportunity'
 		ev.ref_name = self.doc.name
 		ev.save(1)
 		
@@ -269,18 +270,18 @@
 		
 		if prevdoc:
 			if flag == 'submit': #on submit
-				sql("update `tabEnquiry` set status = 'Quotation Sent' where name = %s", prevdoc)
+				sql("update `tabOpportunity` set status = 'Quotation Sent' where name = %s", prevdoc)
 			elif flag == 'cancel': #on cancel
-				sql("update `tabEnquiry` set status = 'Open' where name = %s", prevdoc)
+				sql("update `tabOpportunity` set status = 'Open' where name = %s", prevdoc)
 			elif flag == 'order lost': #order lost
-				sql("update `tabEnquiry` set status = 'Enquiry Lost' where name=%s", prevdoc)
+				sql("update `tabOpportunity` set status = 'Opportunity Lost' where name=%s", prevdoc)
 			elif flag == 'order confirm': #order confirm
-				sql("update `tabEnquiry` set status='Order Confirmed' where name=%s", prevdoc)
+				sql("update `tabOpportunity` set status='Order Confirmed' where name=%s", prevdoc)
 	
 	# declare as order lost
 	#-------------------------
 	def declare_order_lost(self,arg):
-		chk = sql("select t1.name from `tabSales Order` t1, `tabSales Order Detail` t2 where t2.parent = t1.name and t1.docstatus=1 and t2.prevdoc_docname = %s",self.doc.name)
+		chk = sql("select t1.name from `tabSales Order` t1, `tabSales Order Item` t2 where t2.parent = t1.name and t1.docstatus=1 and t2.prevdoc_docname = %s",self.doc.name)
 		if chk:
 			msgprint("Sales Order No. "+cstr(chk[0][0])+" is submitted against this Quotation. Thus 'Order Lost' can not be declared against it.")
 			raise Exception
@@ -349,6 +350,6 @@
 		return print_lst
 	
 	def update_followup_details(self):
-		sql("delete from `tabFollow up` where parent = '%s'"%self.doc.name)
+		sql("delete from `tabCommunication Log` where parent = '%s'"%self.doc.name)
 		for d in getlist(self.doclist, 'follow_up'):
 			d.save()
diff --git a/erpnext/selling/doctype/quotation/quotation.txt b/erpnext/selling/doctype/quotation/quotation.txt
index 39a7327..2c9bd9f 100644
--- a/erpnext/selling/doctype/quotation/quotation.txt
+++ b/erpnext/selling/doctype/quotation/quotation.txt
@@ -3,22 +3,13 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:17',
+		'creation': '2012-03-27 14:36:12',
 		'docstatus': 0,
-		'modified': '2012-03-20 14:56:28',
+		'modified': '2012-03-27 18:48:29',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
 
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Quotation',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
 	# These values are common for all DocType
 	{
 		'_last_update': u'1332235370',
@@ -30,6 +21,7 @@
 		'doctype': 'DocType',
 		'document_type': u'Transaction',
 		'hide_toolbar': 0,
+		'is_submittable': 1,
 		'is_transaction_doc': 1,
 		'max_attachments': 1,
 		'module': u'Selling',
@@ -41,15 +33,15 @@
 		'show_in_menu': 0,
 		'subject': u'To %(customer_name)s on %(transaction_date)s worth %(currency)s %(grand_total_export)s',
 		'tag_fields': u'status',
-		'version': 621
+		'version': 622
 	},
 
-	# These values are common for all DocFormat
+	# These values are common for all DocField
 	{
-		'doctype': u'DocFormat',
+		'doctype': u'DocField',
 		'name': '__common__',
 		'parent': u'Quotation',
-		'parentfield': u'formats',
+		'parentfield': u'fields',
 		'parenttype': u'DocType'
 	},
 
@@ -76,21 +68,21 @@
 		'create': 1,
 		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': u'Sales Manager',
+		'role': u'Sales User',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
 		'doctype': u'DocPerm',
-		'permlevel': 0,
+		'permlevel': 1,
 		'role': u'Sales User',
-		'submit': 1,
-		'write': 1
+		'submit': 0,
+		'write': 0
 	},
 
 	# DocPerm
@@ -103,6 +95,30 @@
 
 	# DocPerm
 	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
@@ -115,6 +131,13 @@
 
 	# DocPerm
 	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Maintenance Manager'
+	},
+
+	# DocPerm
+	{
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
@@ -129,31 +152,14 @@
 	{
 		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': u'All'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Quotation Classic'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Quotation Modern'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Quotation Spartan'
+		'role': u'Maintenance User'
 	},
 
 	# DocField
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'basic_info',
 		'fieldtype': u'Section Break',
 		'label': u'Basic Info',
 		'oldfieldtype': u'Section Break',
@@ -164,6 +170,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -357,6 +364,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'column_break1',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -488,6 +496,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'items',
 		'fieldtype': u'Section Break',
 		'label': u'Items',
 		'oldfieldtype': u'Section Break',
@@ -546,6 +555,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break2',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -592,17 +602,17 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'description': u"To create Quotation against Enquiry, Select Enquiry No. and click on 'Pull Enquiry Details' ",
+		'description': u"To create Quotation against Opportunity, Select Opportunity No. and click on 'Pull Opportunity Details' ",
 		'doctype': u'DocField',
 		'fieldname': u'enq_no',
 		'fieldtype': u'Link',
 		'hidden': 0,
 		'in_filter': 1,
-		'label': u'Enquiry No',
+		'label': u'Opportunity No',
 		'no_copy': 0,
 		'oldfieldname': u'enq_no',
 		'oldfieldtype': u'Link',
-		'options': u'Enquiry',
+		'options': u'Opportunity',
 		'permlevel': 0,
 		'print_hide': 0,
 		'report_hide': 0,
@@ -612,9 +622,10 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'pull_enquiry_detail',
 		'fieldtype': u'Button',
 		'hidden': 0,
-		'label': u'Pull Enquiry Detail',
+		'label': u'Pull Opportunity Detail',
 		'no_copy': 0,
 		'oldfieldtype': u'Button',
 		'permlevel': 0,
@@ -627,6 +638,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'section_break0',
 		'fieldtype': u'Section Break',
 		'options': u'Simple',
 		'permlevel': 0
@@ -639,10 +651,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'quotation_details',
 		'fieldtype': u'Table',
-		'label': u'Quotation Details',
+		'label': u'Quotation Items',
 		'oldfieldname': u'quotation_details',
 		'oldfieldtype': u'Table',
-		'options': u'Quotation Detail',
+		'options': u'Quotation Item',
 		'permlevel': 0,
 		'width': u'40px'
 	},
@@ -650,6 +662,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'clear_table',
 		'fieldtype': u'Button',
 		'label': u'Clear Table',
 		'oldfieldtype': u'Button',
@@ -661,6 +674,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'recalculate_values',
 		'fieldtype': u'Button',
 		'label': u'Re-Calculate Values',
 		'oldfieldtype': u'Button',
@@ -688,6 +702,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'taxes',
 		'fieldtype': u'Section Break',
 		'label': u'Taxes',
 		'oldfieldtype': u'Section Break',
@@ -700,10 +715,10 @@
 		'fieldname': u'charge',
 		'fieldtype': u'Link',
 		'hidden': 0,
-		'label': u'Select Charges Master',
+		'label': u'Sales Taxes and Charges',
 		'oldfieldname': u'charge',
 		'oldfieldtype': u'Link',
-		'options': u'Other Charges',
+		'options': u'Sales Taxes and Charges Master',
 		'permlevel': 0,
 		'print_hide': 1,
 		'trigger': u'Client'
@@ -712,9 +727,10 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_charges',
 		'fieldtype': u'Button',
 		'hidden': 0,
-		'label': u'Get Charges',
+		'label': u'Get Taxes and Charges',
 		'oldfieldtype': u'Button',
 		'permlevel': 0,
 		'print_hide': 1,
@@ -726,10 +742,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges',
 		'fieldtype': u'Table',
-		'label': u'Other Charges',
+		'label': u'Sales Taxes and Charges',
 		'oldfieldname': u'other_charges',
 		'oldfieldtype': u'Table',
-		'options': u'RV Tax Detail',
+		'options': u'Sales Taxes and Charges',
 		'permlevel': 0
 	},
 
@@ -737,8 +753,9 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'calculate_charges',
 		'fieldtype': u'Button',
-		'label': u'Calculate Charges',
+		'label': u'Calculate Taxes and Charges',
 		'oldfieldtype': u'Button',
 		'permlevel': 0,
 		'print_hide': 1,
@@ -750,7 +767,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_total',
 		'fieldtype': u'Currency',
-		'label': u'Charges Total*',
+		'label': u'Taxes and Charges Total*',
 		'oldfieldname': u'other_charges_total',
 		'oldfieldtype': u'Currency',
 		'permlevel': 1,
@@ -760,8 +777,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'other_charges_calculation',
 		'fieldtype': u'HTML',
-		'label': u'Other Charges Calculation',
+		'label': u'Taxes and Charges Calculation',
 		'oldfieldtype': u'HTML',
 		'permlevel': 0,
 		'print_hide': 1
@@ -771,6 +789,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'totals',
 		'fieldtype': u'Section Break',
 		'label': u'Totals',
 		'oldfieldtype': u'Section Break',
@@ -827,6 +846,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break3',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -882,10 +902,11 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'description': u'Add Terms and Conditions for the Quotation like Payment Terms, Validity of Offer etc. You can also prepare a master Term Sheet and use the Template',
+		'description': u'Add Terms and Conditions for the Quotation like Payment Terms, Validity of Offer etc. You can also prepare a Terms and Conditions Master and use the Template',
 		'doctype': u'DocField',
+		'fieldname': u'terms_section_break',
 		'fieldtype': u'Section Break',
-		'label': u'Terms',
+		'label': u'Terms and Conditions',
 		'oldfieldtype': u'Section Break',
 		'permlevel': 0,
 		'print_hide': 0
@@ -896,10 +917,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'tc_name',
 		'fieldtype': u'Link',
-		'label': u'Select Terms',
+		'label': u'Select Terms and Conditions',
 		'oldfieldname': u'tc_name',
 		'oldfieldtype': u'Link',
-		'options': u'Term',
+		'options': u'Terms and Conditions',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -908,8 +929,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_terms',
 		'fieldtype': u'Button',
-		'label': u'Get Terms',
+		'label': u'Get Terms and Conditions',
 		'oldfieldtype': u'Button',
 		'options': u'get_tc_details',
 		'permlevel': 0
@@ -918,8 +940,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'terms_html',
 		'fieldtype': u'HTML',
-		'label': u'Terms HTML',
+		'label': u'Terms and Conditions HTML',
 		'oldfieldtype': u'HTML',
 		'options': u'You can add Terms and Notes that will be printed in the Transaction',
 		'permlevel': 0,
@@ -942,6 +965,7 @@
 		'colour': u'White:FFF',
 		'description': u'Filling in additional information about the Quotation will help you analyze your data better.',
 		'doctype': u'DocField',
+		'fieldname': u'more_info',
 		'fieldtype': u'Section Break',
 		'label': u'More Info',
 		'oldfieldtype': u'Section Break',
@@ -1007,7 +1031,7 @@
 		'fieldname': u'enq_det',
 		'fieldtype': u'Text',
 		'hidden': 1,
-		'label': u'Enquiry Detail',
+		'label': u'Opportunity Item',
 		'no_copy': 0,
 		'oldfieldname': u'enq_det',
 		'oldfieldtype': u'Text',
@@ -1071,7 +1095,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'order_lost_reason',
 		'fieldtype': u'Small Text',
-		'label': u'Order Lost Reason',
+		'label': u'Quotation Lost Reason',
 		'no_copy': 1,
 		'oldfieldname': u'order_lost_reason',
 		'oldfieldtype': u'Small Text',
@@ -1082,6 +1106,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break4',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -1164,6 +1189,7 @@
 		'colour': u'White:FFF',
 		'description': u'Keep a track on communications regarding this Quotation. This will help you remember earlier communications in case the Customer comes back again',
 		'doctype': u'DocField',
+		'fieldname': u'communication_history',
 		'fieldtype': u'Section Break',
 		'label': u'Communication History',
 		'oldfieldtype': u'Section Break',
@@ -1178,10 +1204,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'follow_up',
 		'fieldtype': u'Table',
-		'label': u'Follow up',
+		'label': u'Communication Log',
 		'oldfieldname': u'follow_up',
 		'oldfieldtype': u'Table',
-		'options': u'Follow up',
+		'options': u'Communication Log',
 		'permlevel': 0,
 		'print_hide': 1,
 		'width': u'40px'
diff --git a/erpnext/selling/doctype/quotation_detail/quotation_detail.txt b/erpnext/selling/doctype/quotation_detail/quotation_detail.txt
deleted file mode 100644
index 1b55879..0000000
--- a/erpnext/selling/doctype/quotation_detail/quotation_detail.txt
+++ /dev/null
@@ -1,334 +0,0 @@
-# DocType, Quotation Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:18',
-		'docstatus': 0,
-		'modified': '2012-03-05 15:00:10',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': u'QUOD/.#####',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'is_transaction_doc': 0,
-		'istable': 1,
-		'module': u'Selling',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 33
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Quotation Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, Quotation Detail
-	{
-		'doctype': 'DocType',
-		'name': u'Quotation Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'Item Code',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client',
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_name',
-		'fieldtype': u'Data',
-		'in_filter': 1,
-		'label': u'Item Name',
-		'oldfieldname': u'item_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Small Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 1,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'qty',
-		'fieldtype': u'Currency',
-		'in_filter': 0,
-		'label': u'Quantity',
-		'oldfieldname': u'qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 1,
-		'search_index': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Price List Rate',
-		'oldfieldname': u'ref_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'adj_rate',
-		'fieldtype': u'Float',
-		'label': u'Discount (%)',
-		'oldfieldname': u'adj_rate',
-		'oldfieldtype': u'Float',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'export_rate',
-		'fieldtype': u'Currency',
-		'in_filter': 0,
-		'label': u'Rate',
-		'oldfieldname': u'export_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 0,
-		'search_index': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'export_amount',
-		'fieldtype': u'Currency',
-		'in_filter': 0,
-		'label': u'Amount',
-		'oldfieldname': u'export_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 0,
-		'reqd': 0,
-		'search_index': 0,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'base_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Price List Rate*',
-		'oldfieldname': u'base_ref_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'basic_rate',
-		'fieldtype': u'Currency',
-		'in_filter': 0,
-		'label': u'Basic Rate*',
-		'oldfieldname': u'basic_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'amount',
-		'fieldtype': u'Currency',
-		'in_filter': 0,
-		'label': u'Amount*',
-		'oldfieldname': u'amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'stock_uom',
-		'fieldtype': u'Data',
-		'label': u'UOM',
-		'oldfieldname': u'stock_uom',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 0,
-		'reqd': 0,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_group',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Item Group',
-		'oldfieldname': u'item_group',
-		'oldfieldtype': u'Link',
-		'options': u'Item Group',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'brand',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Brand',
-		'oldfieldname': u'brand',
-		'oldfieldtype': u'Link',
-		'options': u'Brand',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_tax_rate',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Item Tax Rate',
-		'oldfieldname': u'item_tax_rate',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_docname',
-		'fieldtype': u'Data',
-		'label': u'Against Docname',
-		'no_copy': 1,
-		'oldfieldname': u'prevdoc_docname',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 0,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_doctype',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'label': u'Against Doctype',
-		'no_copy': 1,
-		'oldfieldname': u'prevdoc_doctype',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 0,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldname': u'page_break',
-		'fieldtype': u'Check',
-		'hidden': 0,
-		'label': u'Page Break',
-		'no_copy': 1,
-		'oldfieldname': u'page_break',
-		'oldfieldtype': u'Check',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/quotation_detail/__init__.py b/erpnext/selling/doctype/quotation_item/__init__.py
similarity index 100%
rename from erpnext/selling/doctype/quotation_detail/__init__.py
rename to erpnext/selling/doctype/quotation_item/__init__.py
diff --git a/erpnext/selling/doctype/quotation_item/quotation_item.txt b/erpnext/selling/doctype/quotation_item/quotation_item.txt
new file mode 100644
index 0000000..9cee3de
--- /dev/null
+++ b/erpnext/selling/doctype/quotation_item/quotation_item.txt
@@ -0,0 +1,334 @@
+# DocType, Quotation Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:13',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:13',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'QUOD/.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'is_transaction_doc': 0,
+		'istable': 1,
+		'module': u'Selling',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 33
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Quotation Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Quotation Item
+	{
+		'doctype': 'DocType',
+		'name': u'Quotation Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client',
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Quantity',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 1,
+		'search_index': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Price List Rate',
+		'oldfieldname': u'ref_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'adj_rate',
+		'fieldtype': u'Float',
+		'label': u'Discount (%)',
+		'oldfieldname': u'adj_rate',
+		'oldfieldtype': u'Float',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'export_rate',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Rate',
+		'oldfieldname': u'export_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 0,
+		'search_index': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'export_amount',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Amount',
+		'oldfieldname': u'export_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 0,
+		'reqd': 0,
+		'search_index': 0,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'base_ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Price List Rate*',
+		'oldfieldname': u'base_ref_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'basic_rate',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Basic Rate*',
+		'oldfieldname': u'basic_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'search_index': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Amount*',
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 0,
+		'search_index': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 0,
+		'reqd': 0,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Brand',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Link',
+		'options': u'Brand',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_tax_rate',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Item Tax Rate',
+		'oldfieldname': u'item_tax_rate',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_docname',
+		'fieldtype': u'Data',
+		'label': u'Against Docname',
+		'no_copy': 1,
+		'oldfieldname': u'prevdoc_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 0,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_doctype',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Against Doctype',
+		'no_copy': 1,
+		'oldfieldname': u'prevdoc_doctype',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 0,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'page_break',
+		'fieldtype': u'Check',
+		'hidden': 0,
+		'label': u'Page Break',
+		'no_copy': 1,
+		'oldfieldname': u'page_break',
+		'oldfieldtype': u'Check',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/return_detail/__init__.py b/erpnext/selling/doctype/return_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/selling/doctype/return_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/selling/doctype/return_detail/return_detail.txt b/erpnext/selling/doctype/return_detail/return_detail.txt
deleted file mode 100644
index 4c1e2f7..0000000
--- a/erpnext/selling/doctype/return_detail/return_detail.txt
+++ /dev/null
@@ -1,151 +0,0 @@
-# DocType, Return Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:19',
-		'docstatus': 0,
-		'modified': '2011-02-23 19:09:05',
-		'modified_by': 'Administrator',
-		'owner': 'wasim@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Selling',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 8
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Return Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Return Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Return Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'uom',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'UOM',
-		'oldfieldname': 'uom',
-		'oldfieldtype': 'Link',
-		'options': 'UOM',
-		'permlevel': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rate',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Rate',
-		'oldfieldname': 'rate',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'returned_qty',
-		'fieldtype': 'Data',
-		'idx': 6,
-		'label': 'Returned Qty',
-		'oldfieldname': 'returned_qty',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no',
-		'fieldtype': 'Small Text',
-		'idx': 7,
-		'label': 'Serial No',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'batch_no',
-		'fieldtype': 'Data',
-		'idx': 8,
-		'label': 'Batch No',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'detail_name',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 9,
-		'label': 'Detail Name',
-		'oldfieldname': 'detail_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/sales_order_detail/__init__.py b/erpnext/selling/doctype/sales_and_purchase_return_item/__init__.py
similarity index 100%
copy from erpnext/selling/doctype/sales_order_detail/__init__.py
copy to erpnext/selling/doctype/sales_and_purchase_return_item/__init__.py
diff --git a/erpnext/selling/doctype/sales_and_purchase_return_item/sales_and_purchase_return_item.txt b/erpnext/selling/doctype/sales_and_purchase_return_item/sales_and_purchase_return_item.txt
new file mode 100644
index 0000000..e064714
--- /dev/null
+++ b/erpnext/selling/doctype/sales_and_purchase_return_item/sales_and_purchase_return_item.txt
@@ -0,0 +1,142 @@
+# DocType, Sales and Purchase Return Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:14',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:14',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Selling',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 8
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Sales and Purchase Return Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Sales and Purchase Return Item
+	{
+		'doctype': 'DocType',
+		'name': u'Sales and Purchase Return Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 1,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Data',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'uom',
+		'fieldtype': u'Link',
+		'label': u'UOM',
+		'oldfieldname': u'uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM',
+		'permlevel': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Data',
+		'label': u'Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'returned_qty',
+		'fieldtype': u'Data',
+		'label': u'Returned Qty',
+		'oldfieldname': u'returned_qty',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Small Text',
+		'label': u'Serial No',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'batch_no',
+		'fieldtype': u'Data',
+		'label': u'Batch No',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'detail_name',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Detail Name',
+		'oldfieldname': u'detail_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/sales_common/sales_common.js b/erpnext/selling/doctype/sales_common/sales_common.js
index b257d6d..52f3124 100644
--- a/erpnext/selling/doctype/sales_common/sales_common.js
+++ b/erpnext/selling/doctype/sales_common/sales_common.js
@@ -18,14 +18,14 @@
 // ------
 // cur_frm.cscript.tname - Details table name
 // cur_frm.cscript.fname - Details fieldname
-// cur_frm.cscript.other_fname - Other Charges fieldname
+// cur_frm.cscript.other_fname - wn.require('erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js'); fieldname
 // cur_frm.cscript.sales_team_fname - Sales Team fieldname
 
 // ============== Load Default Taxes ===================
 cur_frm.cscript.load_taxes = function(doc, cdt, cdn, callback) {
 	// run if this is not executed from dt_map...
 	doc = locals[doc.doctype][doc.name];
-	if(doc.customer || getchildren('RV Tax Detail', doc.name, 'other_charges', doc.doctype).length) {
+	if(doc.customer || getchildren('Sales Taxes and Charges', doc.name, 'other_charges', doc.doctype).length) {
 		if(callback) {
 			callback(doc, cdt, cdn);
 		}
@@ -96,18 +96,18 @@
 
 var set_dynamic_label_par = function(doc, cdt, cdn, base_curr) {
 	//parent flds
-	par_cols_base = {'net_total': 'Net Total', 'other_charges_total': 'Other Charges Total', 
+	par_cols_base = {'net_total': 'Net Total', 'other_charges_total': 'Taxes and Charges Total', 
 		'grand_total':	'Grand Total', 'rounded_total': 'Rounded Total', 'in_words': 'In Words'}
 	par_cols_export = {'grand_total_export': 'Grand Total', 'rounded_total_export':	'Rounded Total', 'in_words_export':	'In Words'};
 
-	for (d in par_cols_base) cur_frm.fields_dict[d].label_area.innerHTML = par_cols_base[d]+' (' + base_curr + ')';
-	for (d in par_cols_export) cur_frm.fields_dict[d].label_area.innerHTML = par_cols_export[d]+' (' + doc.currency + ')';
-	cur_frm.fields_dict['conversion_rate'].label_area.innerHTML = "Conversion Rate (" + doc.currency +' -> '+ base_curr + ')';
-	cur_frm.fields_dict['plc_conversion_rate'].label_area.innerHTML = 'Price List Currency Conversion Rate (' + doc.price_list_currency +' -> '+ base_curr + ')';
+	for (d in par_cols_base) cur_frm.fields_dict[d].label_span.innerHTML = par_cols_base[d]+' (' + base_curr + ')';
+	for (d in par_cols_export) cur_frm.fields_dict[d].label_span.innerHTML = par_cols_export[d]+' (' + doc.currency + ')';
+	cur_frm.fields_dict['conversion_rate'].label_span.innerHTML = "Conversion Rate (" + doc.currency +' -> '+ base_curr + ')';
+	cur_frm.fields_dict['plc_conversion_rate'].label_span.innerHTML = 'Price List Currency Conversion Rate (' + doc.price_list_currency +' -> '+ base_curr + ')';
 
-	if (doc.doctype == 'Receivable Voucher') {
-		cur_frm.fields_dict['total_advance'].label_area.innerHTML = 'Total Advance (' + base_curr + ')';
-		cur_frm.fields_dict['outstanding_amount'].label_area.innerHTML = 'Outstanding Amount (' + base_curr + ')';
+	if (doc.doctype == 'Sales Invoice') {
+		cur_frm.fields_dict['total_advance'].label_span.innerHTML = 'Total Advance (' + base_curr + ')';
+		cur_frm.fields_dict['outstanding_amount'].label_span.innerHTML = 'Outstanding Amount (' + base_curr + ')';
 	}
 }
 
@@ -127,12 +127,12 @@
 
 	//tax table flds
 	tax_cols = {'tax_amount': 'Amount', 'total': 'Total'};
-	for (d in tax_cols) $('[data-grid-fieldname="RV Tax Detail-'+d+'"]').html(tax_cols[d]+' ('+base_curr+')');
+	for (d in tax_cols) $('[data-grid-fieldname="Sales Taxes and Charges-'+d+'"]').html(tax_cols[d]+' ('+base_curr+')');
 		
-	if (doc.doctype == 'Receivable Voucher') {
+	if (doc.doctype == 'Sales Invoice') {
 		// advance table flds
 		adv_cols = {'advance_amount': 'Advance Amount', 'allocated_amount': 'Allocated Amount'}
-		for (d in adv_cols) $('[data-grid-fieldname="Advance Adjustment Detail-'+d+'"]').html(adv_cols[d]+' ('+base_curr+')');	
+		for (d in adv_cols) $('[data-grid-fieldname="Sales Invoice Advance-'+d+'"]').html(adv_cols[d]+' ('+base_curr+')');	
 	}
 }
 
@@ -219,13 +219,16 @@
 cur_frm.cscript.conversion_rate = cur_frm.cscript.currency;
 cur_frm.cscript.plc_conversion_rate = cur_frm.cscript.currency;
 
-cur_frm.cscript.company = function(doc, dt, dn) {
+cur_frm.cscript.company = function(doc, cdt, cdn) {
 	wn.call({
 		method: 'selling.doctype.sales_common.sales_common.get_comp_base_currency',
 		args: {company:doc.company},
 		callback: function(r, rt) {
-			var doc = locals[dt][dn];
-			set_multiple(doc.doctype, doc.name, {currency:r.message, price_list_currency:r.message});
+			var doc = locals[cdt][cdn];
+			set_multiple(doc.doctype, doc.name, {
+				currency:r.message, 
+				price_list_currency:r.message
+			});
 			cur_frm.cscript.currency(doc, cdt, cdn);
 		}
 	});
@@ -256,9 +259,20 @@
 // ******************** ITEM CODE ******************************** 
 cur_frm.fields_dict[cur_frm.cscript.fname].grid.get_field("item_code").get_query = function(doc, cdt, cdn) {
 	if (doc.order_type == 'Maintenance')
-		return 'SELECT tabItem.name,tabItem.item_name,tabItem.description FROM tabItem WHERE tabItem.is_service_item="Yes" AND tabItem.docstatus != 2 AND (ifnull(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` > NOW() OR `tabItem`.`end_of_life`="0000-00-00") AND tabItem.%(key)s LIKE "%s" LIMIT 50';
+		return 'SELECT tabItem.name,tabItem.item_name,tabItem.description \
+			FROM tabItem WHERE tabItem.is_service_item="Yes" \
+			AND tabItem.docstatus != 2 \
+			AND (ifnull(`tabItem`.`end_of_life`,"") = "" \
+				OR `tabItem`.`end_of_life` > NOW() \
+				OR `tabItem`.`end_of_life`="0000-00-00") \
+			AND tabItem.%(key)s LIKE "%s" LIMIT 50';
 	else 
-		return 'SELECT tabItem.name,tabItem.item_name,tabItem.description FROM tabItem WHERE tabItem.is_sales_item="Yes" AND tabItem.docstatus != 2 AND (ifnull(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` > NOW() OR `tabItem`.`end_of_life`="0000-00-00") AND tabItem.%(key)s LIKE "%s" LIMIT 50';
+		return 'SELECT tabItem.name,tabItem.item_name,tabItem.description FROM tabItem \
+			WHERE tabItem.is_sales_item="Yes" AND tabItem.docstatus != 2 \
+			AND (ifnull(`tabItem`.`end_of_life`,"") = "" \
+				OR `tabItem`.`end_of_life` > NOW() \
+				OR `tabItem`.`end_of_life`="0000-00-00") \
+			AND tabItem.%(key)s LIKE "%s" LIMIT 50';
 }
 
 
@@ -274,8 +288,14 @@
 			var callback = function(r, rt){
 				cur_frm.cscript.recalc(doc, 1);
 			}
-			var args = {'item_code':d.item_code, 'income_account':d.income_account, 'cost_center': d.cost_center, 'warehouse': d.warehouse};
-			get_server_fields('get_item_details',JSON.stringify(args), fname,doc,cdt,cdn,1,callback);
+			var args = {
+				'item_code':d.item_code, 
+				'income_account':d.income_account, 
+				'cost_center': d.cost_center, 
+				'warehouse': d.warehouse
+			};
+			get_server_fields('get_item_details',JSON.stringify(args), 
+				fname,doc,cdt,cdn,1,callback);
 		}
 	}
 	if(cur_frm.cscript.custom_item_code){
@@ -346,12 +366,12 @@
 
 // ************* GET OTHER CHARGES BASED ON COMPANY *************
 cur_frm.fields_dict.charge.get_query = function(doc) {
-	return 'SELECT DISTINCT `tabOther Charges`.name FROM `tabOther Charges` WHERE `tabOther Charges`.company = "'+doc.company+'" AND `tabOther Charges`.company is not NULL AND `tabOther Charges`.docstatus != 2 AND `tabOther Charges`.%(key)s LIKE "%s" ORDER BY `tabOther Charges`.name LIMIT 50';
+	return 'SELECT DISTINCT `tabSales Taxes and Charges Master`.name FROM `tabSales Taxes and Charges Master` WHERE `tabSales Taxes and Charges Master`.company = "'+doc.company+'" AND `tabSales Taxes and Charges Master`.company is not NULL AND `tabSales Taxes and Charges Master`.docstatus != 2 AND `tabSales Taxes and Charges Master`.%(key)s LIKE "%s" ORDER BY `tabSales Taxes and Charges Master`.name LIMIT 50';
 }
 
 // ********************* Get Charges ****************************
-cur_frm.cscript['Get Charges'] = function(doc, cdt, cdn) {
-	$c_obj(make_doclist(doc.doctype,doc.name),'get_other_charges','', function(r, rt) { cur_frm.cscript['Calculate Charges'](doc, cdt, cdn);});
+cur_frm.cscript.get_charges = function(doc, cdt, cdn) {
+	$c_obj(make_doclist(doc.doctype,doc.name),'get_other_charges','', function(r, rt) { cur_frm.cscript.calculate_charges(doc, cdt, cdn);});
 }
 
 
@@ -365,13 +385,19 @@
 	var sales_team = cur_frm.cscript.sales_team_fname;
 	var other_fname	= cur_frm.cscript.other_fname;
 	
-	if(!flt(doc.conversion_rate)) { doc.conversion_rate = 1; refresh_field('conversion_rate'); }
-	if(!flt(doc.plc_conversion_rate)) { doc.plc_conversion_rate = 1; refresh_field('plc_conversion_rate'); }
+	if(!flt(doc.conversion_rate)) { 
+		doc.conversion_rate = 1; 
+		refresh_field('conversion_rate'); 
+	}
+	if(!flt(doc.plc_conversion_rate)) { 
+		doc.plc_conversion_rate = 1; 
+		refresh_field('plc_conversion_rate'); 
+	}
 
 	if(n > 0) cur_frm.cscript.update_fname_table(doc , tname , fname , n, other_fname); // updates all values in table (i.e. amount, export amount, net total etc.)
 	
 	if(flt(doc.net_total) > 0) {
-		var cl = getchildren('RV Tax Detail', doc.name, other_fname,doc.doctype);
+		var cl = getchildren('Sales Taxes and Charges', doc.name, other_fname,doc.doctype);
 		for(var i = 0; i<cl.length; i++){
 			cl[i].total_tax_amount = 0;
 			cl[i].total_amount = 0;
@@ -385,7 +411,7 @@
 		}
 		cur_frm.cscript.calc_other_charges(doc , tname , fname , other_fname); // calculate other charges
 	}
-	cur_frm.cscript.calc_doc_values(doc, cdt, cdn, tname, fname, other_fname); // calculates total amounts
+	cur_frm.cscript.calc_doc_values(doc, null, null, tname, fname, other_fname); // calculates total amounts
 
 	// ******************* calculate allocated amount of sales person ************************
 	cl = getchildren('Sales Team', doc.name, sales_team);
@@ -414,7 +440,7 @@
 	}
 
 	var inclusive_rate = 0
-	var d = getchildren('RV Tax Detail', doc.name, other_fname,doc.doctype);
+	var d = getchildren('Sales Taxes and Charges', doc.name, other_fname,doc.doctype);
 	for(var j = 0; j<d.length; j++){
 		other_charges_total += flt(d[j].tax_amount);
 		if(d[j].included_in_print_rate) {
@@ -440,14 +466,14 @@
 	doc = locals[doc.doctype][doc.name];
 
 	// Make Display Area
-	cur_frm.fields_dict['Other Charges Calculation'].disp_area.innerHTML =
-		'<b style="padding: 8px 0px;">Calculation Details for Other Charges:</b>';
+	cur_frm.fields_dict['Taxes and Charges Calculation'].disp_area.innerHTML =
+		'<b style="padding: 8px 0px;">Calculation Details for Taxes and Charges:</b>';
 
 	var cl = getchildren(tname, doc.name, fname);
-	var tax = getchildren('RV Tax Detail', doc.name, other_fname,doc.doctype);
+	var tax = getchildren('Sales Taxes and Charges', doc.name, other_fname,doc.doctype);
 	
 	// Make display table
-	var otc = make_table(cur_frm.fields_dict['Other Charges Calculation'].disp_area,
+	var otc = make_table(cur_frm.fields_dict['Taxes and Charges Calculation'].disp_area,
 		cl.length + 1, tax.length + 1, '90%', [], { border:'1px solid #AAA', padding:'2px' });
 	$y(otc,{marginTop:'8px'});
 
@@ -467,7 +493,7 @@
 		// Add Item Code in new Row
 		$td(otc,i+1,0).innerHTML = cl[i].item_code ? cl[i].item_code : cl[i].description;
 		
-		//var tax = getchildren('RV Tax Detail', doc.name, other_fname,doc.doctype);
+		//var tax = getchildren('Sales Taxes and Charges', doc.name, other_fname,doc.doctype);
 		var total = net_total;
 		
 		
@@ -493,7 +519,7 @@
 			tax[t].tax_amount += flt(tax_amount);			 
 			var total_amount = flt(tax[t].tax_amount);
 			total_tax_amount = flt(tax[t].total_tax_amount) + flt(total_amount);
-			set_multiple('RV Tax Detail', tax[t].name, { 'item_wise_tax_detail':tax[t].item_wise_tax_detail, 'amount':roundNumber(flt(total_amount), 2), 'total':roundNumber(flt(total)+flt(tax[t].tax_amount), 2)}, other_fname);
+			set_multiple('Sales Taxes and Charges', tax[t].name, { 'item_wise_tax_detail':tax[t].item_wise_tax_detail, 'amount':roundNumber(flt(total_amount), 2), 'total':roundNumber(flt(total)+flt(tax[t].tax_amount), 2)}, other_fname);
 			prev_total += flt(tax[t].total_amount);	 // for previous row total
 			total += flt(tax[t].tax_amount);		 // for adding total to previous amount
 
@@ -563,7 +589,7 @@
 
 // ********************** Functions for inclusive value calc ******************************
 cur_frm.cscript.consider_incl_rate = function(doc, other_fname) {
-	var tax_list = getchildren('RV Tax Detail', doc.name, other_fname, doc.doctype);
+	var tax_list = getchildren('Sales Taxes and Charges', doc.name, other_fname, doc.doctype);
 	for(var i=0; i<tax_list.length; i++) {
 		if(tax_list[i].included_in_print_rate) {
 			return true;
@@ -586,7 +612,7 @@
 		}
 	};
 
-	var tax_list = getchildren('RV Tax Detail', doc.name, other_fname, doc.doctype);
+	var tax_list = getchildren('Sales Taxes and Charges', doc.name, other_fname, doc.doctype);
 	var total = 1;
 	var temp_tax_list = [];
 	var amt = 0;
@@ -630,7 +656,7 @@
 			refresh_field('included_in_print_rate', tax.name, cur_frm.cscript.other_fname);
 		} else if(inList(['On Previous Row Total', 'On Previous Row Amount'], tax.charge_type)){
 			if(tax.row_id) {
-				var tax_list = getchildren('RV Tax Detail', doc.name, cur_frm.cscript.other_fname, doc.doctype);
+				var tax_list = getchildren('Sales Taxes and Charges', doc.name, cur_frm.cscript.other_fname, doc.doctype);
 				if(tax_list[tax.row_id-1].charge_type=='Actual') {
 					msgprint("Row of type 'Actual' cannot be depended on for type '" + tax.charge_type + "'\
 						when using tax inclusive prices.<br />\
@@ -720,14 +746,14 @@
 
 // **************** RE-CALCULATE VALUES ***************************
 
-cur_frm.cscript['Re-Calculate Values'] = function(doc, cdt, cdn) {	
-	cur_frm.cscript['Calculate Charges'](doc,cdt,cdn);
+cur_frm.cscript.recalculate_values = function(doc, cdt, cdn) {	
+	cur_frm.cscript.calculate_charges(doc,cdt,cdn);
 }
 
-cur_frm.cscript['Calculate Charges'] = function(doc, cdt, cdn) {
+cur_frm.cscript.calculate_charges = function(doc, cdt, cdn) {
 	var other_fname	= cur_frm.cscript.other_fname;
 
-	var cl = getchildren('RV Tax Detail', doc.name, other_fname, doc.doctype);
+	var cl = getchildren('Sales Taxes and Charges', doc.name, other_fname, doc.doctype);
 	for(var i = 0; i<cl.length; i++){
 		cl[i].total_tax_amount = 0;
 		cl[i].total_amount = 0;
@@ -802,14 +828,14 @@
 // =================================================================================
 cur_frm.cscript.validate = function(doc, cdt, cdn) {
 	cur_frm.cscript.validate_items(doc);
-	var cl = getchildren('Other Charges', doc.name, 'other_charges');
+	var cl = getchildren('Sales Taxes and Charges Master', doc.name, 'other_charges');
 	for(var i =0;i<cl.length;i++) {
 		if(!cl[i].amount) {
-			alert("Please Enter Amount in Row no. "+cl[i].idx+" in Other Charges table");
+			alert("Please Enter Amount in Row no. "+cl[i].idx+" in Taxes and Charges table");
 			validated = false;
 		}
 	}
-	cur_frm.cscript['Calculate Charges'] (doc, cdt, cdn);
+	cur_frm.cscript.calculate_charges (doc, cdt, cdn);
 
 	if (cur_frm.cscript.calc_adjustment_amount) cur_frm.cscript.calc_adjustment_amount(doc);
 }
diff --git a/erpnext/selling/doctype/sales_common/sales_common.py b/erpnext/selling/doctype/sales_common/sales_common.py
index 5c1a8e4..b70382c 100644
--- a/erpnext/selling/doctype/sales_common/sales_common.py
+++ b/erpnext/selling/doctype/sales_common/sales_common.py
@@ -43,7 +43,7 @@
 @webnotes.whitelist()
 def get_price_list_currency(arg=None):
 	""" Get all currency in which price list is maintained"""
-	plc = webnotes.conn.sql("select distinct ref_currency from `tabRef Rate Detail` where price_list_name = %s", webnotes.form_dict['price_list'])
+	plc = webnotes.conn.sql("select distinct ref_currency from `tabItem Price` where price_list_name = %s", webnotes.form_dict['price_list'])
 	plc = [d[0] for d in plc]
 	base_currency = get_comp_base_currency(webnotes.form_dict['company'])
 	return plc, base_currency
@@ -54,18 +54,18 @@
 		self.doc, self.doclist = d,dl
 
 		self.doctype_dict = {
-			'Sales Order'		: 'Sales Order Detail',
-			'Delivery Note'		: 'Delivery Note Detail',
-			'Receivable Voucher':'RV Detail',
-			'Installation Note' : 'Installed Item Details'
+			'Sales Order'		: 'Sales Order Item',
+			'Delivery Note'		: 'Delivery Note Item',
+			'Sales Invoice':'Sales Invoice Item',
+			'Installation Note' : 'Installation Note Item'
 		}
 												 
 		self.ref_doctype_dict= {}
 
 		self.next_dt_detail = {
-			'delivered_qty' : 'Delivery Note Detail',
-			'billed_qty'		: 'RV Detail',
-			'installed_qty' : 'Installed Item Details'}
+			'delivered_qty' : 'Delivery Note Item',
+			'billed_qty'		: 'Sales Invoice Item',
+			'installed_qty' : 'Installation Note Item'}
 
 		self.msg = []
 
@@ -130,12 +130,12 @@
 		obj.doc.customer_group	=	details and details[0]['customer_group'] or ''
 		obj.doc.sales_partner	 =	details and details[0]['default_sales_partner'] or ''
 		obj.doc.commission_rate =	details and flt(details[0]['default_commission_rate']) or ''
-		if obj.doc.doctype != 'Receivable Voucher':
+		if obj.doc.doctype != 'Sales Invoice':
 			obj.doc.delivery_address =	details and details[0]['address'] or ''
 			self.get_contact_details(obj,primary = 1) # get primary contact details
 		self.get_sales_person_details(obj) # get default sales person details
 
-		if obj.doc.doctype == 'Receivable Voucher' and inv_det_reqd:
+		if obj.doc.doctype == 'Sales Invoice' and inv_det_reqd:
 			self.get_invoice_details(obj) # get invoice details
 	
 	
@@ -177,7 +177,7 @@
 	
 	# ***************** Get Ref rate as entered in Item Master ********************
 	def get_ref_rate(self, item_code, price_list_name, price_list_currency, plc_conv_rate):
-		ref_rate = webnotes.conn.sql("select ref_rate from `tabRef Rate Detail` where parent = %s and price_list_name = %s and ref_currency = %s", (item_code, price_list_name, price_list_currency))
+		ref_rate = webnotes.conn.sql("select ref_rate from `tabItem Price` where parent = %s and price_list_name = %s and ref_currency = %s", (item_code, price_list_name, price_list_currency))
 		base_ref_rate = ref_rate and flt(ref_rate[0][0]) * flt(plc_conv_rate) or 0
 		return base_ref_rate
 
@@ -209,9 +209,9 @@
 			if default: add_cond = 'ifnull(t2.is_default,0) = 1'
 			else: add_cond = 't1.parent = "'+cstr(obj.doc.charge)+'"'
 			idx = 0
-			other_charge = webnotes.conn.sql("select t1.charge_type,t1.row_id,t1.description,t1.account_head,t1.rate,t1.tax_amount,t1.included_in_print_rate, t1.cost_center_other_charges from `tabRV Tax Detail` t1, `tabOther Charges` t2 where t1.parent = t2.name and t2.company = '%s' and %s order by t1.idx" % (obj.doc.company, add_cond), as_dict = 1)
+			other_charge = webnotes.conn.sql("select t1.charge_type,t1.row_id,t1.description,t1.account_head,t1.rate,t1.tax_amount,t1.included_in_print_rate, t1.cost_center_other_charges from `tabSales Taxes and Charges` t1, `tabSales Taxes and Charges Master` t2 where t1.parent = t2.name and t2.company = '%s' and %s order by t1.idx" % (obj.doc.company, add_cond), as_dict = 1)
 			for other in other_charge:
-				d =	addchild(obj.doc, 'other_charges', 'RV Tax Detail', 1, obj.doclist)
+				d =	addchild(obj.doc, 'other_charges', 'Sales Taxes and Charges', 1, obj.doclist)
 				d.charge_type = other['charge_type']
 				d.row_id = other['row_id']
 				d.description = other['description']
@@ -227,7 +227,7 @@
 	# Get TERMS AND CONDITIONS
 	# =======================================================================================
 	def get_tc_details(self,obj):
-		r = webnotes.conn.sql("select terms from `tabTerm` where name = %s", obj.doc.tc_name)
+		r = webnotes.conn.sql("select terms from `tabTerms and Conditions` where name = %s", obj.doc.tc_name)
 		if r: obj.doc.terms = r[0][0]
 
 #---------------------------------------- Get Tax Details -------------------------------#
@@ -336,7 +336,7 @@
 		return webnotes.conn.sql("select name from `tabSales BOM` where name=%s and docstatus != 2", item_code)
 	
 	def get_sales_bom_items(self, item_code):
-		return webnotes.conn.sql("select item_code, qty, uom from `tabSales BOM Detail` where parent=%s", item_code)
+		return webnotes.conn.sql("select item_code, qty, uom from `tabSales BOM Item` where parent=%s", item_code)
 
 
 	# --------------
@@ -354,7 +354,7 @@
 				# Eg.: if SO qty is 10 and there is tolerance of 20%, then it will allow DN of 12.
 				# But in this case reserved qty should only be reduced by 10 and not 12.
 
-				tot_qty, max_qty, tot_amt, max_amt = self.get_curr_and_ref_doc_details(d.doctype, 'prevdoc_detail_docname', d.prevdoc_detail_docname, 'Sales Order Detail', obj.doc.name, obj.doc.doctype)
+				tot_qty, max_qty, tot_amt, max_amt = self.get_curr_and_ref_doc_details(d.doctype, 'prevdoc_detail_docname', d.prevdoc_detail_docname, 'Sales Order Item', obj.doc.name, obj.doc.doctype)
 				if((flt(tot_qty) + flt(qty) > flt(max_qty))):
 					reserved_qty = -(flt(max_qty)-flt(tot_qty))
 				else:	
@@ -405,7 +405,7 @@
 	def add_packing_list_item(self,obj, item_code, qty, warehouse, line):
 		bin = self.get_bin_qty(item_code, warehouse)
 		item = self.get_packing_item_details(item_code)
-		pi = addchild(obj.doc, 'packing_details', 'Delivery Note Packing Detail', 1, obj.doclist)
+		pi = addchild(obj.doc, 'packing_details', 'Delivery Note Packing Item', 1, obj.doclist)
 		pi.parent_item = item_code
 		pi.item_code = item_code
 		pi.item_name = item['item_name']
@@ -511,7 +511,7 @@
 		import datetime
 		for d in getlist(obj.doclist, obj.fname):
 			if d.prevdoc_doctype and d.prevdoc_docname:
-				if d.prevdoc_doctype == 'Receivable Voucher':
+				if d.prevdoc_doctype == 'Sales Invoice':
 					dt = webnotes.conn.sql("select posting_date from `tab%s` where name = '%s'" % (d.prevdoc_doctype, d.prevdoc_docname))
 				else:
 					dt = webnotes.conn.sql("select transaction_date from `tab%s` where name = '%s'" % (d.prevdoc_doctype, d.prevdoc_docname))
@@ -537,7 +537,7 @@
 			- Update Percent
 			- Validate over delivery
 			
-		From Receivable Voucher 
+		From Sales Invoice 
 			- Update Billed Amt
 			- Update Percent
 			- Validate over billing
@@ -559,30 +559,30 @@
 	
 	def validate_all_qty(self):
 		"""
-			Validates over-billing / delivery / installation in Delivery Note, Receivable Voucher, Installation Note
+			Validates over-billing / delivery / installation in Delivery Note, Sales Invoice, Installation Note
 			To called after update_all_qty
 		"""
 		if self.obj.doc.doctype=='Delivery Note':
 			self.validate_qty({
-				'source_dt'		:'Delivery Note Detail',
+				'source_dt'		:'Delivery Note Item',
 				'compare_field'	:'delivered_qty',
 				'compare_ref_field'	:'qty',
-				'target_dt'		:'Sales Order Detail',
+				'target_dt'		:'Sales Order Item',
 				'join_field'	:'prevdoc_detail_docname'
 			})
-		elif self.obj.doc.doctype=='Receivable Voucher':
+		elif self.obj.doc.doctype=='Sales Invoice':
 			self.validate_qty({
-				'source_dt'		:'RV Detail',
+				'source_dt'		:'Sales Invoice Item',
 				'compare_field'	:'billed_amt',
 				'compare_ref_field'	:'amount',
-				'target_dt'		:'Sales Order Detail',
+				'target_dt'		:'Sales Order Item',
 				'join_field'	:'so_detail'
 			})
 			self.validate_qty({
-				'source_dt'		:'RV Detail',
+				'source_dt'		:'Sales Invoice Item',
 				'compare_field'	:'billed_amt',
 				'compare_ref_field'	:'amount',
-				'target_dt'		:'Delivery Note Detail',
+				'target_dt'		:'Delivery Note Item',
 				'join_field'	:'dn_detail'
 			}, no_tolerance =1)
 		elif self.obj.doc.doctype=='Installation Note':
@@ -590,7 +590,7 @@
 				'source_dt'		:'Installation Item Details',
 				'compare_field'	:'installed_qty',
 				'compare_ref_field'	:'qty',
-				'target_dt'		:'Delivery Note Detail',
+				'target_dt'		:'Delivery Note Item',
 				'join_field'	:'dn_detail'
 			}, no_tolerance =1)
 
@@ -606,7 +606,7 @@
 
 		if not(tolerance):
 			if self.global_tolerance == None:
-				self.global_tolerance = flt(get_value('Manage Account',None,'tolerance') or 0)
+				self.global_tolerance = flt(get_value('Global Defaults',None,'tolerance') or 0)
 			tolerance = self.global_tolerance
 		
 		self.tolerance[item_code] = tolerance
@@ -675,11 +675,11 @@
 		if self.obj.doc.doctype=='Delivery Note':
 			self.update_qty({
 				'target_field'			:'delivered_qty',
-				'target_dt'				:'Sales Order Detail',
+				'target_dt'				:'Sales Order Item',
 				'target_parent_dt'		:'Sales Order',
 				'target_parent_field'	:'per_delivered',
 				'target_ref_field'		:'qty',
-				'source_dt'				:'Delivery Note Detail',
+				'source_dt'				:'Delivery Note Item',
 				'source_field'			:'qty',
 				'join_field'			:'prevdoc_detail_docname',
 				'percent_join_field'	:'prevdoc_docname',
@@ -687,14 +687,14 @@
 				'keyword'				:'Delivered'
 			})
 			
-		elif self.obj.doc.doctype=='Receivable Voucher':
+		elif self.obj.doc.doctype=='Sales Invoice':
 			self.update_qty({
 				'target_field'			:'billed_amt',
-				'target_dt'				:'Sales Order Detail',
+				'target_dt'				:'Sales Order Item',
 				'target_parent_dt'		:'Sales Order',
 				'target_parent_field'	:'per_billed',
 				'target_ref_field'		:'amount',
-				'source_dt'				:'RV Detail',
+				'source_dt'				:'Sales Invoice Item',
 				'source_field'			:'amount',
 				'join_field'			:'so_detail',
 				'percent_join_field'	:'sales_order',
@@ -704,11 +704,11 @@
 
 			self.update_qty({
 				'target_field'			:'billed_amt',
-				'target_dt'				:'Delivery Note Detail',
+				'target_dt'				:'Delivery Note Item',
 				'target_parent_dt'		:'Delivery Note',
 				'target_parent_field'	:'per_billed',
 				'target_ref_field'		:'amount',
-				'source_dt'				:'RV Detail',
+				'source_dt'				:'Sales Invoice Item',
 				'source_field'			:'amount',
 				'join_field'			:'dn_detail',
 				'percent_join_field'	:'delivery_note',
@@ -719,11 +719,11 @@
 		if self.obj.doc.doctype=='Installation Note':
 			self.update_qty({
 				'target_field'			:'installed_qty',
-				'target_dt'				:'Delivery Note Detail',
+				'target_dt'				:'Delivery Note Item',
 				'target_parent_dt'		:'Delivery Note',
 				'target_parent_field'	:'per_installed',
 				'target_ref_field'		:'qty',
-				'source_dt'				:'Installed Item Details',
+				'source_dt'				:'Installation Note Item',
 				'source_field'			:'qty',
 				'join_field'			:'prevdoc_detail_docname',
 				'percent_join_field'	:'prevdoc_docname',
diff --git a/erpnext/selling/doctype/sales_common/sales_common.txt b/erpnext/selling/doctype/sales_common/sales_common.txt
index 4b0cf28..413e051 100644
--- a/erpnext/selling/doctype/sales_common/sales_common.txt
+++ b/erpnext/selling/doctype/sales_common/sales_common.txt
@@ -3,22 +3,22 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:21',
+		'creation': '2012-03-27 14:36:14',
 		'docstatus': 0,
-		'modified': '2011-01-03 11:21:04',
-		'modified_by': 'nabin@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:14',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Selling',
+		'module': u'Selling',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 290
 	},
@@ -26,6 +26,6 @@
 	# DocType, Sales Common
 	{
 		'doctype': 'DocType',
-		'name': 'Sales Common'
+		'name': u'Sales Common'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/sales_order/listview.js b/erpnext/selling/doctype/sales_order/listview.js
new file mode 100644
index 0000000..3b764d1
--- /dev/null
+++ b/erpnext/selling/doctype/sales_order/listview.js
@@ -0,0 +1,32 @@
+// render
+wn.doclistviews['Sales Order'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			"`tabSales Order`.customer_name", 
+			"ifnull(`tabSales Order`.per_delivered,0) as per_delivered", 
+			"ifnull(`tabSales Order`.per_billed,0) as per_billed",
+			"`tabSales Order`.currency", 
+			"ifnull(`tabSales Order`.grand_total_export,0) as grand_total_export"
+		]);
+		this.stats = this.stats.concat(['status', 'company']);
+	},
+	
+	columns: [
+		{width: '5%', content:'avatar'},
+		{width: '3%', content:'docstatus'},
+		{width: '15%', content:'name'},
+		{width: '35%', content:'tags+customer_name', css: {color:'#aaa'}},
+		{
+			width: '18%', 
+			content: function(parent, data) { 
+				$(parent).html(data.currency + ' ' + fmt_money(data.grand_total_export)) 
+			},
+			css: {'text-align':'right'}
+		},
+		{width: '8%', content: 'per_delivered', type:'bar-graph', label:'Delivered'},
+		{width: '8%', content: 'per_billed', type:'bar-graph', label:'Billed'},
+		{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+
+});
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index 3e0d783..24e69a2 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -16,15 +16,16 @@
 
 // Module CRM
 
-cur_frm.cscript.tname = "Sales Order Detail";
+cur_frm.cscript.tname = "Sales Order Item";
 cur_frm.cscript.fname = "sales_order_details";
 cur_frm.cscript.other_fname = "other_charges";
 cur_frm.cscript.sales_team_fname = "sales_team";
 
 
-$import(Sales Common)
-$import(Other Charges)
-$import(SMS Control)
+wn.require('erpnext/selling/doctype/sales_common/sales_common.js');
+wn.require('erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js');
+wn.require('erpnext/utilities/doctype/sms_control/sms_control.js');
+wn.require('erpnext/setup/doctype/notification_control/notification_control.js');
 
 
 // ONLOAD
@@ -63,20 +64,20 @@
 
 	if(doc.docstatus==1) {
 		if(doc.status != 'Stopped') {
-			cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+			cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 			// delivery note
 			if(doc.per_delivered < 100 && doc.order_type!='Maintenance')
 				cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']);
 			
 			// maintenance
 			if(doc.per_delivered < 100 && doc.order_type=='Maintenance') {
-				cur_frm.add_custom_button('Make Maint. Visit', cur_frm.cscript['Make Maintenance Visit']);
+				cur_frm.add_custom_button('Make Maint. Visit', cur_frm.cscript.make_maintenance_visit);
 				cur_frm.add_custom_button('Make Maint. Schedule', cur_frm.cscript['Make Maintenance Schedule']);
 			}
 
 			// indent
 			if(doc.order_type != 'Maintenance')
-				cur_frm.add_custom_button('Make ' + get_doctype_label('Indent'), cur_frm.cscript['Make Purchase Requisition']);
+				cur_frm.add_custom_button('Make ' + get_doctype_label('Purchase Request'), cur_frm.cscript['Make Purchase Requisition']);
 			
 			// sales invoice
 			if(doc.per_billed < 100)
@@ -134,7 +135,7 @@
 	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
 }
 
-cur_frm.cscript['Pull Quotation Details'] = function(doc,dt,dn) {
+cur_frm.cscript.pull_quotation_details = function(doc,dt,dn) {
 	var callback = function(r,rt){
 		var doc = locals[cur_frm.doctype][cur_frm.docname];					
 		if(r.message){							
@@ -216,7 +217,7 @@
 									'from_doctype':'Sales Order',
 									'to_doctype':'Maintenance Schedule',
 									'from_docname':doc.name,
-						'from_to_list':"[['Sales Order', 'Maintenance Schedule'], ['Sales Order Detail', 'Item Maintenance Detail']]"
+						'from_to_list':"[['Sales Order', 'Maintenance Schedule'], ['Sales Order Item', 'Maintenance Schedule Item']]"
 					}
 					, function(r,rt) {
 						loaddoc("Maintenance Schedule", n);
@@ -232,7 +233,7 @@
 }
 
 //------------ make maintenance visit ------------
-cur_frm.cscript['Make Maintenance Visit'] = function() {
+cur_frm.cscript.make_maintenance_visit = function() {
 	var doc = cur_frm.doc;
 
 	if (doc.docstatus == 1) { 
@@ -245,7 +246,7 @@
 									'from_doctype':'Sales Order',
 									'to_doctype':'Maintenance Visit',
 									'from_docname':doc.name,
-						'from_to_list':"[['Sales Order', 'Maintenance Visit'], ['Sales Order Detail', 'Maintenance Visit Detail']]"
+						'from_to_list':"[['Sales Order', 'Maintenance Visit'], ['Sales Order Item', 'Maintenance Visit Purpose']]"
 					}
 					, function(r,rt) {
 						loaddoc("Maintenance Visit", n);
@@ -265,16 +266,16 @@
 cur_frm.cscript['Make Purchase Requisition'] = function() {
 	var doc = cur_frm.doc;
 	if (doc.docstatus == 1) { 
-	n = createLocal("Indent");
+	n = createLocal("Purchase Request");
 	$c('dt_map', args={
-					'docs':compress_doclist([locals["Indent"][n]]),
+					'docs':compress_doclist([locals["Purchase Request"][n]]),
 					'from_doctype':'Sales Order',
-					'to_doctype':'Indent',
+					'to_doctype':'Purchase Request',
 					'from_docname':doc.name,
-		'from_to_list':"[['Sales Order', 'Indent'], ['Sales Order Detail', 'Indent Detail']]"
+		'from_to_list':"[['Sales Order', 'Purchase Request'], ['Sales Order Item', 'Purchase Request Item']]"
 	}
 	, function(r,rt) {
-		loaddoc("Indent", n);
+		loaddoc("Purchase Request", n);
 		}
 		);
 	}
@@ -292,7 +293,7 @@
 					'from_doctype':'Sales Order',
 					'to_doctype':'Delivery Note',
 					'from_docname':doc.name,
-		'from_to_list':"[['Sales Order', 'Delivery Note'], ['Sales Order Detail', 'Delivery Note Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team']]"
+		'from_to_list':"[['Sales Order', 'Delivery Note'], ['Sales Order Item', 'Delivery Note Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team']]"
 	}
 	, function(r,rt) {
 		loaddoc("Delivery Note", n);
@@ -307,15 +308,15 @@
 cur_frm.cscript['Make Sales Invoice'] = function() {
 	var doc = cur_frm.doc;
 
-	n = createLocal('Receivable Voucher');
+	n = createLocal('Sales Invoice');
 	$c('dt_map', args={
-		'docs':compress_doclist([locals['Receivable Voucher'][n]]),
+		'docs':compress_doclist([locals['Sales Invoice'][n]]),
 		'from_doctype':doc.doctype,
-		'to_doctype':'Receivable Voucher',
+		'to_doctype':'Sales Invoice',
 		'from_docname':doc.name,
-		'from_to_list':"[['Sales Order','Receivable Voucher'],['Sales Order Detail','RV Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team']]"
+		'from_to_list':"[['Sales Order','Sales Invoice'],['Sales Order Item','Sales Invoice Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team']]"
 		}, function(r,rt) {
-			 loaddoc('Receivable Voucher', n);
+			 loaddoc('Sales Invoice', n);
 		}
 	);
 }
@@ -355,7 +356,6 @@
 	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
 }
 
-$import(Notification Control)
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	var args = {
 		type: 'Sales Order',
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index c886ec3..3270f98 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -38,7 +38,7 @@
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
 		self.doclist = doclist
-		self.tname = 'Sales Order Detail'
+		self.tname = 'Sales Order Item'
 		self.fname = 'sales_order_details'
 		self.person_tname = 'Target Detail'
 		self.partner_tname = 'Partner Target Detail'
@@ -52,7 +52,7 @@
 		
 # DOCTYPE TRIGGER FUNCTIONS
 # =============================
-	# Pull Quotation Details
+	# Pull Quotation Items
 	# -----------------------
 	def pull_quotation_details(self):
 		self.doc.clear_table(self.doclist, 'other_charges')
@@ -60,7 +60,7 @@
 		self.doc.clear_table(self.doclist, 'sales_team')
 		self.doc.clear_table(self.doclist, 'tc_details')
 		if self.doc.quotation_no:				
-			get_obj('DocType Mapper', 'Quotation-Sales Order').dt_map('Quotation', 'Sales Order', self.doc.quotation_no, self.doc, self.doclist, "[['Quotation', 'Sales Order'],['Quotation Detail', 'Sales Order Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team'],['TC Detail','TC Detail']]")			
+			get_obj('DocType Mapper', 'Quotation-Sales Order').dt_map('Quotation', 'Sales Order', self.doc.quotation_no, self.doc, self.doclist, "[['Quotation', 'Sales Order'],['Quotation Item', 'Sales Order Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team'],['TC Detail','TC Detail']]")			
 		else:
 			msgprint("Please select Quotation whose details need to pull")		
 
@@ -91,7 +91,7 @@
 	def get_comm_rate(self, sales_partner):
 		return get_obj('Sales Common').get_comm_rate(sales_partner, self)
 
-	# Clear Sales Order Details Table
+	# Clear Sales Order Items Table
 	# --------------------------------
 	def clear_sales_order_details(self):
 		self.doc.clear_table(self.doclist, 'sales_order_details')
@@ -102,7 +102,8 @@
 	# Get Item Details
 	# ----------------
 	def get_item_details(self, args=None):
-		args = args and eval(args) or {}
+		import json
+		args = args and json.loads(args) or {}
 		if args.get('item_code'):
 			return get_obj('Sales Common').get_item_details(args, self)
 		else:
@@ -148,7 +149,7 @@
 	def load_default_taxes(self):
 		return get_obj('Sales Common').load_default_taxes(self)
 
-	# Pull details from other charges master (Get Other Charges)
+	# Pull details from other charges master (Get Sales Taxes and Charges Master)
 	# ----------------------------------------------------------
 	def get_other_charges(self):
 		return get_obj('Sales Common').get_other_charges(self)
@@ -162,7 +163,7 @@
 #check if maintenance schedule already generated
 #============================================
 	def check_maintenance_schedule(self):
-		nm = sql("select t1.name from `tabMaintenance Schedule` t1, `tabItem Maintenance Detail` t2 where t2.parent=t1.name and t2.prevdoc_docname=%s and t1.docstatus=1", self.doc.name)
+		nm = sql("select t1.name from `tabMaintenance Schedule` t1, `tabMaintenance Schedule Item` t2 where t2.parent=t1.name and t2.prevdoc_docname=%s and t1.docstatus=1", self.doc.name)
 		nm = nm and nm[0][0] or ''
 		
 		if not nm:
@@ -171,7 +172,7 @@
 #check if maintenance visit already generated
 #============================================
 	def check_maintenance_visit(self):
-		nm = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Detail` t2 where t2.parent=t1.name and t2.prevdoc_docname=%s and t1.docstatus=1 and t1.completion_status='Fully Completed'", self.doc.name)
+		nm = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent=t1.name and t2.prevdoc_docname=%s and t1.docstatus=1 and t1.completion_status='Fully Completed'", self.doc.name)
 		nm = nm and nm[0][0] or ''
 		
 		if not nm:
@@ -215,7 +216,7 @@
 	def validate_for_items(self):
 		check_list,flag = [],0
 		chk_dupl_itm = []
-		# Sales Order Details Validations
+		# Sales Order Items Validations
 		for d in getlist(self.doclist, 'sales_order_details'):
 			if cstr(self.doc.quotation_no) == cstr(d.prevdoc_docname):
 				flag = 1
@@ -357,9 +358,9 @@
 				raise Exception , "Validation Error. "
 	
 	def update_enquiry_status(self, prevdoc, flag):
-		enq = sql("select t2.prevdoc_docname from `tabQuotation` t1, `tabQuotation Detail` t2 where t2.parent = t1.name and t1.name=%s", prevdoc)
+		enq = sql("select t2.prevdoc_docname from `tabQuotation` t1, `tabQuotation Item` t2 where t2.parent = t1.name and t1.name=%s", prevdoc)
 		if enq:
-			sql("update `tabEnquiry` set status = %s where name=%s",(flag,enq[0][0]))
+			sql("update `tabOpportunity` set status = %s where name=%s",(flag,enq[0][0]))
 
 	#update status of quotation, enquiry
 	#----------------------------------------
@@ -372,7 +373,7 @@
 					#update enquiry
 					self.update_enquiry_status(d.prevdoc_docname, 'Order Confirmed')
 				elif flag == 'cancel':
-					chk = sql("select t1.name from `tabSales Order` t1, `tabSales Order Detail` t2 where t2.parent = t1.name and t2.prevdoc_docname=%s and t1.name!=%s and t1.docstatus=1", (d.prevdoc_docname,self.doc.name))
+					chk = sql("select t1.name from `tabSales Order` t1, `tabSales Order Item` t2 where t2.parent = t1.name and t2.prevdoc_docname=%s and t1.name!=%s and t1.docstatus=1", (d.prevdoc_docname,self.doc.name))
 					if not chk:
 						sql("update `tabQuotation` set status = 'Submitted' where name=%s",d.prevdoc_docname)
 						
@@ -420,18 +421,18 @@
 	# ----------------------------------------------------------------------------
 	def check_nextdoc_docstatus(self):
 		# Checks Delivery Note
-		submit_dn = sql("select t1.name from `tabDelivery Note` t1,`tabDelivery Note Detail` t2 where t1.name = t2.parent and t2.prevdoc_docname = '%s' and t1.docstatus = 1" % (self.doc.name))
+		submit_dn = sql("select t1.name from `tabDelivery Note` t1,`tabDelivery Note Item` t2 where t1.name = t2.parent and t2.prevdoc_docname = '%s' and t1.docstatus = 1" % (self.doc.name))
 		if submit_dn:
 			msgprint("Delivery Note : " + cstr(submit_dn[0][0]) + " has been submitted against " + cstr(self.doc.doctype) + ". Please cancel Delivery Note : " + cstr(submit_dn[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1)
-		# Checks Receivable Voucher
-		submit_rv = sql("select t1.name from `tabReceivable Voucher` t1,`tabRV Detail` t2 where t1.name = t2.parent and t2.sales_order = '%s' and t1.docstatus = 1" % (self.doc.name))
+		# Checks Sales Invoice
+		submit_rv = sql("select t1.name from `tabSales Invoice` t1,`tabSales Invoice Item` t2 where t1.name = t2.parent and t2.sales_order = '%s' and t1.docstatus = 1" % (self.doc.name))
 		if submit_rv:
 			msgprint("Sales Invoice : " + cstr(submit_rv[0][0]) + " has already been submitted against " +cstr(self.doc.doctype)+ ". Please cancel Sales Invoice : "+ cstr(submit_rv[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1)
 		#check maintenance schedule
-		submit_ms = sql("select t1.name from `tabMaintenance Schedule` t1, `tabItem Maintenance Detail` t2 where t2.parent=t1.name and t2.prevdoc_docname = %s and t1.docstatus = 1",self.doc.name)
+		submit_ms = sql("select t1.name from `tabMaintenance Schedule` t1, `tabMaintenance Schedule Item` t2 where t2.parent=t1.name and t2.prevdoc_docname = %s and t1.docstatus = 1",self.doc.name)
 		if submit_ms:
 			msgprint("Maintenance Schedule : " + cstr(submit_ms[0][0]) + " has already been submitted against " +cstr(self.doc.doctype)+ ". Please cancel Maintenance Schedule : "+ cstr(submit_ms[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1)
-		submit_mv = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Detail` t2 where t2.parent=t1.name and t2.prevdoc_docname = %s and t1.docstatus = 1",self.doc.name)
+		submit_mv = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent=t1.name and t2.prevdoc_docname = %s and t1.docstatus = 1",self.doc.name)
 		if submit_mv:
 			msgprint("Maintenance Visit : " + cstr(submit_mv[0][0]) + " has already been submitted against " +cstr(self.doc.doctype)+ ". Please cancel Maintenance Visit : " + cstr(submit_mv[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1)
 
diff --git a/erpnext/selling/doctype/sales_order/sales_order.txt b/erpnext/selling/doctype/sales_order/sales_order.txt
index 7a11bda..eb17cff 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.txt
+++ b/erpnext/selling/doctype/sales_order/sales_order.txt
@@ -3,22 +3,13 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:21',
+		'creation': '2012-03-27 14:36:14',
 		'docstatus': 0,
-		'modified': '2012-03-02 14:34:02',
+		'modified': '2012-03-27 18:49:05',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
 
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Sales Order',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
 	# These values are common for all DocType
 	{
 		'_last_update': u'1330670942',
@@ -27,6 +18,7 @@
 		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'document_type': u'Transaction',
+		'is_submittable': 1,
 		'is_transaction_doc': 1,
 		'issingle': 0,
 		'module': u'Selling',
@@ -38,15 +30,15 @@
 		'show_in_menu': 0,
 		'subject': u'From %(customer_name)s on %(transaction_date)s worth %(currency)s %(grand_total_export)s | %(per_delivered)s% delivered | %(per_billed)s% billed',
 		'tag_fields': u'delivery_status,billing_status',
-		'version': 631
+		'version': 632
 	},
 
-	# These values are common for all DocFormat
+	# These values are common for all DocField
 	{
-		'doctype': u'DocFormat',
+		'doctype': u'DocField',
 		'name': '__common__',
 		'parent': u'Sales Order',
-		'parentfield': u'formats',
+		'parentfield': u'fields',
 		'parenttype': u'DocType'
 	},
 
@@ -68,37 +60,6 @@
 
 	# DocPerm
 	{
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Production Manager'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
@@ -111,53 +72,6 @@
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'match': u'customer_name',
-		'permlevel': 0,
-		'role': u'Customer'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 2,
-		'role': u'Accounts User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Maintenance Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Maintenance Manager'
-	},
-
-	# DocPerm
-	{
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
@@ -170,33 +84,105 @@
 
 	# DocPerm
 	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
 		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': u'Maintenance User'
+		'role': u'Maintenance Manager',
+		'submit': 0,
+		'write': 0
 	},
 
-	# DocFormat
+	# DocPerm
 	{
-		'doctype': u'DocFormat',
-		'format': u'Sales Order Classic'
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Maintenance Manager',
+		'submit': 1,
+		'write': 1
 	},
 
-	# DocFormat
+	# DocPerm
 	{
-		'doctype': u'DocFormat',
-		'format': u'Sales Order Modern'
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'submit': 1,
+		'write': 1
 	},
 
-	# DocFormat
+	# DocPerm
 	{
-		'doctype': u'DocFormat',
-		'format': u'Sales Order Spartan'
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'Accounts User',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Customer',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Maintenance User',
+		'submit': 0,
+		'write': 0
 	},
 
 	# DocField
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'basic_info',
 		'fieldtype': u'Section Break',
 		'label': u'Basic Info',
 		'oldfieldtype': u'Section Break',
@@ -207,6 +193,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'in_filter': 0,
 		'oldfieldtype': u'Column Break',
@@ -355,6 +342,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break1',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -581,6 +569,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'items',
 		'fieldtype': u'Section Break',
 		'label': u'Items',
 		'oldfieldtype': u'Section Break',
@@ -634,6 +623,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break2',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -715,8 +705,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'pull_quotation_details',
 		'fieldtype': u'Button',
-		'label': u'Pull Quotation Details',
+		'label': u'Pull Quotation Items',
 		'oldfieldtype': u'Button',
 		'options': u'pull_quotation_details',
 		'permlevel': 0,
@@ -726,6 +717,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'section_break0',
 		'fieldtype': u'Section Break',
 		'permlevel': 0
 	},
@@ -737,10 +729,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'sales_order_details',
 		'fieldtype': u'Table',
-		'label': u'Sales Order Details',
+		'label': u'Sales Order Items',
 		'oldfieldname': u'sales_order_details',
 		'oldfieldtype': u'Table',
-		'options': u'Sales Order Detail',
+		'options': u'Sales Order Item',
 		'permlevel': 0,
 		'print_hide': 0,
 		'width': u'40px'
@@ -749,6 +741,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'clear_table',
 		'fieldtype': u'Button',
 		'label': u'Clear Table',
 		'oldfieldtype': u'Button',
@@ -760,6 +753,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'recalculate_values',
 		'fieldtype': u'Button',
 		'label': u'Re-Calculate Values',
 		'oldfieldtype': u'Button',
@@ -787,6 +781,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'taxes',
 		'fieldtype': u'Section Break',
 		'label': u'Taxes',
 		'oldfieldtype': u'Section Break',
@@ -799,10 +794,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'charge',
 		'fieldtype': u'Link',
-		'label': u'Select Charges Master',
+		'label': u'Sales Taxes and Charges',
 		'oldfieldname': u'charge',
 		'oldfieldtype': u'Link',
-		'options': u'Other Charges',
+		'options': u'Sales Taxes and Charges Master',
 		'permlevel': 0,
 		'print_hide': 1
 	},
@@ -810,8 +805,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_charges',
 		'fieldtype': u'Button',
-		'label': u'Get Charges',
+		'label': u'Get Taxes and Charges',
 		'oldfieldtype': u'Button',
 		'permlevel': 0,
 		'trigger': u'Client'
@@ -822,18 +818,19 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges',
 		'fieldtype': u'Table',
-		'label': u'Other Charges',
+		'label': u'Sales Taxes and Charges',
 		'oldfieldname': u'other_charges',
 		'oldfieldtype': u'Table',
-		'options': u'RV Tax Detail',
+		'options': u'Sales Taxes and Charges',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'calculate_charges',
 		'fieldtype': u'Button',
-		'label': u'Calculate Charges',
+		'label': u'Calculate Taxes and Charges',
 		'oldfieldtype': u'Button',
 		'permlevel': 0,
 		'print_hide': 0,
@@ -845,7 +842,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_total',
 		'fieldtype': u'Currency',
-		'label': u'Charges Total*',
+		'label': u'Taxes and Charges Total*',
 		'oldfieldname': u'other_charges_total',
 		'oldfieldtype': u'Currency',
 		'permlevel': 1,
@@ -856,8 +853,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'other_charges_calculation',
 		'fieldtype': u'HTML',
-		'label': u'Other Charges Calculation',
+		'label': u'Taxes and Charges Calculation',
 		'oldfieldtype': u'HTML',
 		'permlevel': 0,
 		'print_hide': 0
@@ -867,6 +865,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'totals',
 		'fieldtype': u'Section Break',
 		'label': u'Totals',
 		'oldfieldtype': u'Section Break',
@@ -919,6 +918,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break3',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -971,8 +971,9 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'terms_section_break',
 		'fieldtype': u'Section Break',
-		'label': u'Terms',
+		'label': u'Terms and Conditions',
 		'oldfieldtype': u'Section Break',
 		'permlevel': 0,
 		'print_hide': 0
@@ -983,10 +984,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'tc_name',
 		'fieldtype': u'Link',
-		'label': u'Select Terms',
+		'label': u'Select Terms and Conditions',
 		'oldfieldname': u'tc_name',
 		'oldfieldtype': u'Link',
-		'options': u'Term',
+		'options': u'Terms and Conditions',
 		'permlevel': 0,
 		'print_hide': 1,
 		'search_index': 0
@@ -995,8 +996,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_terms',
 		'fieldtype': u'Button',
-		'label': u'Get Terms',
+		'label': u'Get Terms and Conditions',
 		'oldfieldtype': u'Button',
 		'options': u'get_tc_details',
 		'permlevel': 0,
@@ -1006,8 +1008,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'terms_html',
 		'fieldtype': u'HTML',
-		'label': u'Terms HTML',
+		'label': u'Terms and Conditions HTML',
 		'oldfieldtype': u'HTML',
 		'options': u'You can add Terms and Notes that will be printed in the Transaction',
 		'permlevel': 0,
@@ -1019,7 +1022,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'terms',
 		'fieldtype': u'Text Editor',
-		'label': u'Term Details',
+		'label': u'Terms and Conditions Details',
 		'oldfieldname': u'terms',
 		'oldfieldtype': u'Text Editor',
 		'permlevel': 0,
@@ -1031,6 +1034,7 @@
 		'colour': u'White:FFF',
 		'description': u'Filling in additional information about the Sales Order will help you analyze your data better.',
 		'doctype': u'DocField',
+		'fieldname': u'more_info',
 		'fieldtype': u'Section Break',
 		'label': u'More Info',
 		'oldfieldtype': u'Section Break',
@@ -1041,6 +1045,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break4',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -1097,6 +1102,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break5',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -1204,6 +1210,7 @@
 		'colour': u'White:FFF',
 		'description': u'Display all the individual items delivered with the main items',
 		'doctype': u'DocField',
+		'fieldname': u'packing_list',
 		'fieldtype': u'Section Break',
 		'hidden': 0,
 		'label': u'Packing List',
@@ -1221,7 +1228,7 @@
 		'label': u'Packing Details',
 		'oldfieldname': u'packing_details',
 		'oldfieldtype': u'Table',
-		'options': u'Delivery Note Packing Detail',
+		'options': u'Delivery Note Packing Item',
 		'permlevel': 1,
 		'print_hide': 1
 	},
@@ -1229,6 +1236,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'sales_team_section_break',
 		'fieldtype': u'Section Break',
 		'label': u'Sales Team',
 		'oldfieldtype': u'Section Break',
@@ -1239,6 +1247,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break6',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'print_hide': 1,
@@ -1267,6 +1276,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break7',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'print_hide': 1,
@@ -1303,6 +1313,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'section_break1',
 		'fieldtype': u'Section Break',
 		'options': u'Simple',
 		'permlevel': 0,
@@ -1326,6 +1337,7 @@
 	{
 		'allow_on_submit': 1,
 		'doctype': u'DocField',
+		'fieldname': u'repair_sales_order',
 		'fieldtype': u'Button',
 		'label': u'Repair Sales Order',
 		'oldfieldtype': u'Button',
diff --git a/erpnext/selling/doctype/sales_order_detail/sales_order_detail.txt b/erpnext/selling/doctype/sales_order_detail/sales_order_detail.txt
deleted file mode 100644
index c0a01f1..0000000
--- a/erpnext/selling/doctype/sales_order_detail/sales_order_detail.txt
+++ /dev/null
@@ -1,433 +0,0 @@
-# DocType, Sales Order Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:22',
-		'docstatus': 0,
-		'modified': '2012-03-05 14:59:43',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': u'SOD/.#####',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': u'Selling',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 54
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Sales Order Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, Sales Order Detail
-	{
-		'doctype': 'DocType',
-		'name': u'Sales Order Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item Code',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client',
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_name',
-		'fieldtype': u'Data',
-		'label': u'Item Name',
-		'oldfieldname': u'item_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'width': u'150'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Small Text',
-		'in_filter': 1,
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'qty',
-		'fieldtype': u'Currency',
-		'label': u'Quantity',
-		'oldfieldname': u'qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'stock_uom',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'label': u'UOM',
-		'oldfieldname': u'stock_uom',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'reqd': 0,
-		'width': u'70px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Price List Rate',
-		'oldfieldname': u'ref_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'70px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'adj_rate',
-		'fieldtype': u'Float',
-		'label': u'Discount(%)',
-		'oldfieldname': u'adj_rate',
-		'oldfieldtype': u'Float',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client',
-		'width': u'70px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'export_rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate',
-		'oldfieldname': u'export_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'export_amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount',
-		'no_copy': 0,
-		'oldfieldname': u'export_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'reqd': 0,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'base_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Price List Rate*',
-		'oldfieldname': u'base_ref_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'basic_rate',
-		'fieldtype': u'Currency',
-		'label': u'Basic Rate*',
-		'oldfieldname': u'basic_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount*',
-		'no_copy': 0,
-		'oldfieldname': u'amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'reserved_warehouse',
-		'fieldtype': u'Link',
-		'label': u'Reserved Warehouse',
-		'no_copy': 1,
-		'oldfieldname': u'reserved_warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'projected_qty',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Projected Qty',
-		'no_copy': 1,
-		'oldfieldname': u'projected_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'70px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'actual_qty',
-		'fieldtype': u'Currency',
-		'label': u'Actual Qty',
-		'no_copy': 1,
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'70px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'delivered_qty',
-		'fieldtype': u'Currency',
-		'hidden': 0,
-		'in_filter': 0,
-		'label': u'Delivered Qty',
-		'no_copy': 1,
-		'oldfieldname': u'delivered_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 0,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'billed_amt',
-		'fieldtype': u'Currency',
-		'label': u'Billed Amt',
-		'no_copy': 1,
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'For Production',
-		'doctype': u'DocField',
-		'fieldname': u'planned_qty',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Planned Quantity',
-		'no_copy': 1,
-		'oldfieldname': u'planned_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1,
-		'width': u'50px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'For Production',
-		'doctype': u'DocField',
-		'fieldname': u'produced_qty',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Produced Quantity',
-		'oldfieldname': u'produced_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1,
-		'width': u'50px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'brand',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Brand Name',
-		'oldfieldname': u'brand',
-		'oldfieldtype': u'Link',
-		'options': u'Brand',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'item_group',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Item Group',
-		'oldfieldname': u'item_group',
-		'oldfieldtype': u'Link',
-		'options': u'Item Group',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_docname',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'Quotation No.',
-		'oldfieldname': u'prevdoc_docname',
-		'oldfieldtype': u'Link',
-		'options': u'Quotation',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldname': u'page_break',
-		'fieldtype': u'Check',
-		'label': u'Page Break',
-		'oldfieldname': u'page_break',
-		'oldfieldtype': u'Check',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'item_tax_rate',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Item Tax Rate',
-		'oldfieldname': u'item_tax_rate',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'The date at which current entry is made in system.',
-		'doctype': u'DocField',
-		'fieldname': u'transaction_date',
-		'fieldtype': u'Date',
-		'hidden': 1,
-		'in_filter': 0,
-		'label': u'Sales Order Date',
-		'oldfieldname': u'transaction_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1,
-		'search_index': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/sales_order_detail/__init__.py b/erpnext/selling/doctype/sales_order_item/__init__.py
similarity index 100%
rename from erpnext/selling/doctype/sales_order_detail/__init__.py
rename to erpnext/selling/doctype/sales_order_item/__init__.py
diff --git a/erpnext/selling/doctype/sales_order_item/sales_order_item.txt b/erpnext/selling/doctype/sales_order_item/sales_order_item.txt
new file mode 100644
index 0000000..854d2f9
--- /dev/null
+++ b/erpnext/selling/doctype/sales_order_item/sales_order_item.txt
@@ -0,0 +1,433 @@
+# DocType, Sales Order Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:15',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:15',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'SOD/.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Selling',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 54
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Sales Order Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Sales Order Item
+	{
+		'doctype': 'DocType',
+		'name': u'Sales Order Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client',
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'width': u'150'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'in_filter': 1,
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Quantity',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'label': u'UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'reqd': 0,
+		'width': u'70px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Price List Rate',
+		'oldfieldname': u'ref_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'70px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'adj_rate',
+		'fieldtype': u'Float',
+		'label': u'Discount(%)',
+		'oldfieldname': u'adj_rate',
+		'oldfieldtype': u'Float',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client',
+		'width': u'70px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'export_rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'export_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'export_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'no_copy': 0,
+		'oldfieldname': u'export_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'reqd': 0,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'base_ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Price List Rate*',
+		'oldfieldname': u'base_ref_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'basic_rate',
+		'fieldtype': u'Currency',
+		'label': u'Basic Rate*',
+		'oldfieldname': u'basic_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount*',
+		'no_copy': 0,
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 0,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'reserved_warehouse',
+		'fieldtype': u'Link',
+		'label': u'Reserved Warehouse',
+		'no_copy': 1,
+		'oldfieldname': u'reserved_warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'projected_qty',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Projected Qty',
+		'no_copy': 1,
+		'oldfieldname': u'projected_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'70px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'actual_qty',
+		'fieldtype': u'Currency',
+		'label': u'Actual Qty',
+		'no_copy': 1,
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'70px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'delivered_qty',
+		'fieldtype': u'Currency',
+		'hidden': 0,
+		'in_filter': 0,
+		'label': u'Delivered Qty',
+		'no_copy': 1,
+		'oldfieldname': u'delivered_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 0,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'billed_amt',
+		'fieldtype': u'Currency',
+		'label': u'Billed Amt',
+		'no_copy': 1,
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'For Production',
+		'doctype': u'DocField',
+		'fieldname': u'planned_qty',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Planned Quantity',
+		'no_copy': 1,
+		'oldfieldname': u'planned_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1,
+		'width': u'50px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'For Production',
+		'doctype': u'DocField',
+		'fieldname': u'produced_qty',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Produced Quantity',
+		'oldfieldname': u'produced_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1,
+		'width': u'50px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Brand Name',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Link',
+		'options': u'Brand',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_docname',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Quotation No.',
+		'oldfieldname': u'prevdoc_docname',
+		'oldfieldtype': u'Link',
+		'options': u'Quotation',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'page_break',
+		'fieldtype': u'Check',
+		'label': u'Page Break',
+		'oldfieldname': u'page_break',
+		'oldfieldtype': u'Check',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_tax_rate',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Item Tax Rate',
+		'oldfieldname': u'item_tax_rate',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'The date at which current entry is made in system.',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_date',
+		'fieldtype': u'Date',
+		'hidden': 1,
+		'in_filter': 0,
+		'label': u'Sales Order Date',
+		'oldfieldname': u'transaction_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1,
+		'search_index': 0
+	}
+]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/sales_team/sales_team.txt b/erpnext/selling/doctype/sales_team/sales_team.txt
index 9f3c50d..ca1dbac 100644
--- a/erpnext/selling/doctype/sales_team/sales_team.txt
+++ b/erpnext/selling/doctype/sales_team/sales_team.txt
@@ -3,133 +3,126 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:23',
+		'creation': '2012-03-27 14:36:17',
 		'docstatus': 0,
-		'modified': '2010-11-24 09:09:57',
-		'modified_by': 'nabin@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:17',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Selling',
+		'module': u'Selling',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 5
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Sales Team',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Sales Team',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Sales Team
 	{
 		'doctype': 'DocType',
-		'name': 'Sales Team'
+		'name': u'Sales Team'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_person',
-		'fieldtype': 'Link',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'sales_person',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Sales Person',
-		'oldfieldname': 'sales_person',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Person',
+		'label': u'Sales Person',
+		'oldfieldname': u'sales_person',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Person',
 		'reqd': 1,
 		'search_index': 1,
-		'width': '200px'
+		'width': u'200px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_designation',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Designation',
-		'oldfieldname': 'sales_designation',
-		'oldfieldtype': 'Data',
-		'width': '100px'
+		'doctype': u'DocField',
+		'fieldname': u'sales_designation',
+		'fieldtype': u'Data',
+		'label': u'Designation',
+		'oldfieldname': u'sales_designation',
+		'oldfieldtype': u'Data',
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_no',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'contact_no',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'idx': 3,
-		'label': 'Contact No.',
-		'oldfieldname': 'contact_no',
-		'oldfieldtype': 'Data',
-		'width': '100px'
+		'label': u'Contact No.',
+		'oldfieldname': u'contact_no',
+		'oldfieldtype': u'Data',
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'allocated_percentage',
-		'fieldtype': 'Currency',
-		'idx': 4,
-		'label': 'Allocated (%)',
-		'oldfieldname': 'allocated_percentage',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'allocated_percentage',
+		'fieldtype': u'Currency',
+		'label': u'Allocated (%)',
+		'oldfieldname': u'allocated_percentage',
+		'oldfieldtype': u'Currency',
 		'reqd': 0,
-		'trigger': 'Client',
-		'width': '100px'
+		'trigger': u'Client',
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'allocated_amount',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Allocated Amount',
-		'oldfieldname': 'allocated_amount',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'allocated_amount',
+		'fieldtype': u'Currency',
+		'label': u'Allocated Amount',
+		'oldfieldname': u'allocated_amount',
+		'oldfieldtype': u'Currency',
 		'reqd': 0,
-		'width': '120px'
+		'width': u'120px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'parenttype',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'parenttype',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'idx': 6,
 		'in_filter': 1,
-		'label': 'Parenttype',
-		'oldfieldname': 'parenttype',
-		'oldfieldtype': 'Data',
+		'label': u'Parenttype',
+		'oldfieldname': u'parenttype',
+		'oldfieldtype': u'Data',
 		'print_hide': 1,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'incentives',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Incentives',
-		'oldfieldname': 'incentives',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'incentives',
+		'fieldtype': u'Currency',
+		'label': u'Incentives',
+		'oldfieldname': u'incentives',
+		'oldfieldtype': u'Currency'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/shipping_address/shipping_address.txt b/erpnext/selling/doctype/shipping_address/shipping_address.txt
index b101616..b1b3370 100755
--- a/erpnext/selling/doctype/shipping_address/shipping_address.txt
+++ b/erpnext/selling/doctype/shipping_address/shipping_address.txt
@@ -3,191 +3,179 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-03-23 10:39:45',
+		'creation': '2012-03-27 14:36:17',
 		'docstatus': 0,
-		'modified': '2011-03-24 10:39:09',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:17',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'SA.#####',
-		'colour': 'White:FFF',
+		'autoname': u'SA.#####',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Selling',
+		'document_type': u'Master',
+		'module': u'Selling',
 		'name': '__common__',
-		'search_fields': 'customer, ship_to, shipping_address',
-		'section_style': 'Simple',
+		'search_fields': u'customer, ship_to, shipping_address',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 8
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Shipping Address',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Shipping Address',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Shipping Address',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Shipping Address',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Shipping Address
 	{
 		'doctype': 'DocType',
-		'name': 'Shipping Address'
+		'name': u'Shipping Address'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Master Manager',
+		'role': u'Sales Master Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Sales Master Manager'
+		'role': u'Sales Master Manager'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Manager',
+		'role': u'Sales Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Sales Manager'
+		'role': u'Sales Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'label': 'Customer',
-		'options': 'Customer',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
+		'label': u'Customer',
+		'options': u'Customer',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Customer Name',
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
+		'label': u'Customer Name',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_address',
-		'fieldtype': 'Text',
-		'idx': 4,
-		'label': 'Customer Address',
+		'doctype': u'DocField',
+		'fieldname': u'customer_address',
+		'fieldtype': u'Text',
+		'label': u'Customer Address',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'ship_to',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Ship To',
+		'doctype': u'DocField',
+		'fieldname': u'ship_to',
+		'fieldtype': u'Data',
+		'label': u'Ship To',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'shipping_address',
-		'fieldtype': 'Text',
-		'idx': 6,
-		'label': 'Shipping Address',
+		'doctype': u'DocField',
+		'fieldname': u'shipping_address',
+		'fieldtype': u'Text',
+		'label': u'Shipping Address',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 7,
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_primary_address',
-		'fieldtype': 'Select',
-		'idx': 8,
-		'label': 'Is Primary Address',
-		'options': 'Yes\nNo',
+		'doctype': u'DocField',
+		'fieldname': u'is_primary_address',
+		'fieldtype': u'Select',
+		'label': u'Is Primary Address',
+		'options': u'Yes\nNo',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'shipping_details',
-		'fieldtype': 'Text Editor',
-		'idx': 9,
-		'label': 'Shipping Details',
+		'doctype': u'DocField',
+		'fieldname': u'shipping_details',
+		'fieldtype': u'Text Editor',
+		'label': u'Shipping Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 10,
-		'label': 'Trash Reason',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/sms_center/sms_center.txt b/erpnext/selling/doctype/sms_center/sms_center.txt
index 507f160..d80787a 100644
--- a/erpnext/selling/doctype/sms_center/sms_center.txt
+++ b/erpnext/selling/doctype/sms_center/sms_center.txt
@@ -3,68 +3,68 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-01-11 17:52:26',
+		'creation': '2012-03-27 14:36:17',
 		'docstatus': 0,
-		'modified': '2011-02-15 17:06:33',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:17',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1300788634',
+		'_last_update': u'1322549700',
 		'allow_attach': 0,
 		'allow_copy': 1,
 		'allow_email': 1,
 		'allow_print': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'hide_heading': 0,
 		'hide_toolbar': 0,
 		'in_create': 0,
 		'issingle': 1,
 		'menu_index': 4,
-		'module': 'Selling',
+		'module': u'Selling',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 1,
-		'version': 39
+		'version': 41
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'SMS Center',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'SMS Center',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'SMS Center',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'SMS Center',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, SMS Center
 	{
 		'doctype': 'DocType',
-		'name': 'SMS Center'
+		'name': u'SMS Center'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
@@ -72,124 +72,114 @@
 	# DocPerm
 	{
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
 		'write': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'column_break1',
-		'fieldtype': 'Column Break',
-		'idx': 1,
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'send_to',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'label': 'Send To',
-		'options': '\nAll Contact\nAll Customer Contact\nAll Supplier Contact\nAll Sales Partner Contact\nAll Lead (Open)\nAll Employee (Active)\nAll Sales Person',
-		'trigger': 'Client'
+		'doctype': u'DocField',
+		'fieldname': u'send_to',
+		'fieldtype': u'Select',
+		'label': u'Send To',
+		'options': u'\nAll Contact\nAll Customer Contact\nAll Supplier Contact\nAll Sales Partner Contact\nAll Lead (Open)\nAll Employee (Active)\nAll Sales Person',
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.send_to=='All Customer Contact'",
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'Customer',
-		'options': 'Customer'
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.send_to=='All Customer Contact'",
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
+		'label': u'Customer',
+		'options': u'Customer'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.send_to=='All Supplier Contact'",
-		'doctype': 'DocField',
-		'fieldname': 'supplier',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Supplier',
-		'options': 'Supplier'
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.send_to=='All Supplier Contact'",
+		'doctype': u'DocField',
+		'fieldname': u'supplier',
+		'fieldtype': u'Link',
+		'label': u'Supplier',
+		'options': u'Supplier'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.send_to=='All Employee (Active)'",
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Select',
-		'idx': 5,
-		'label': 'Department',
-		'options': 'link:Department'
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.send_to=='All Employee (Active)'",
+		'doctype': u'DocField',
+		'fieldname': u'department',
+		'fieldtype': u'Select',
+		'label': u'Department',
+		'options': u'link:Department'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.send_to=='All Employee (Active)'",
-		'doctype': 'DocField',
-		'fieldname': 'branch',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Branch',
-		'options': 'link:Branch'
+		'colour': u'White:FFF',
+		'depends_on': u"eval:doc.send_to=='All Employee (Active)'",
+		'doctype': u'DocField',
+		'fieldname': u'branch',
+		'fieldtype': u'Select',
+		'label': u'Branch',
+		'options': u'link:Branch'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 7,
-		'label': 'Create Receiver List',
-		'options': 'create_receiver_list'
+		'doctype': u'DocField',
+		'fieldname': u'create_receiver_list',
+		'fieldtype': u'Button',
+		'label': u'Create Receiver List',
+		'options': u'create_receiver_list'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'receiver_list',
-		'fieldtype': 'Code',
-		'idx': 8,
-		'label': 'Receiver List'
+		'doctype': u'DocField',
+		'fieldname': u'receiver_list',
+		'fieldtype': u'Code',
+		'label': u'Receiver List'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'column_break9',
-		'fieldtype': 'Column Break',
-		'idx': 9,
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break9',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'description': 'Message greater than 160 character will be splitted into multiple mesage',
-		'doctype': 'DocField',
-		'fieldname': 'message',
-		'fieldtype': 'Text',
-		'idx': 10,
-		'label': 'Message',
+		'description': u'Message greater than 160 character will be splitted into multiple mesage',
+		'doctype': u'DocField',
+		'fieldname': u'message',
+		'fieldtype': u'Text',
+		'label': u'Message',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 11,
-		'label': 'Send SMS',
-		'options': 'send_sms'
+		'doctype': u'DocField',
+		'fieldname': u'send_sms',
+		'fieldtype': u'Button',
+		'label': u'Send SMS',
+		'options': u'send_sms'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js
index b079515..8137d04 100644
--- a/erpnext/selling/page/sales_browser/sales_browser.js
+++ b/erpnext/selling/page/sales_browser/sales_browser.js
@@ -49,7 +49,7 @@
     var tr_main_grid = make_table(div_body,1,2,'100%',['60%','40%'],{width: "100%", tableLayout: "fixed", borderCollapse: "collapse", border:"0px", padding:"4px 4px 4px 4px"});
     
     $y($td(tr_main_grid,0,0),{border: "1px solid #dddddd", padding: "8px", width: "60%"});   
-    this.tree_area = $a($td(tr_main_grid,0,0),'div');
+    this.tree_area = $a($td(tr_main_grid,0,0),'div','',{minHeight:'400px'});
 
     $y($td(tr_main_grid,0,1),{border: "1px solid #DDD"});   
     this.detail_area = $a($td(tr_main_grid,0,1),'div');
diff --git a/erpnext/selling/page/sales_dashboard/sales_dashboard.js b/erpnext/selling/page/sales_dashboard/sales_dashboard.js
index 1af5cb4..e89c7fb 100644
--- a/erpnext/selling/page/sales_dashboard/sales_dashboard.js
+++ b/erpnext/selling/page/sales_dashboard/sales_dashboard.js
@@ -22,8 +22,8 @@
   $dh(pscript.mnt_div1);
   //pscript.dx_axis = [];
 
-	wn.require('lib/css/jqpot.css');
-	wn.require('lib/js/legacy/jquery/jquery.jqplot.min.js');
+	wn.require('lib/css/lib/jqplot.css');
+	wn.require('lib/js/lib/jqplot/jquery.jqplot.min.js');
 	pscript.all_onchnge();
 }
 //=======================================================================
diff --git a/erpnext/selling/page/selling_home/selling_home.html b/erpnext/selling/page/selling_home/selling_home.html
index 4216f43..ce45e52 100644
--- a/erpnext/selling/page/selling_home/selling_home.html
+++ b/erpnext/selling/page/selling_home/selling_home.html
@@ -6,7 +6,7 @@
 		<div style="width: 48%; float: left;">
 			<h4><a href="#!List/Lead">Lead</a></h4>
 			<p class="help">Prospective customers</p>
-			<h4><a href="#!List/Enquiry">Enquiry</a></h4>
+			<h4><a href="#!List/Opportunity">Opportunity</a></h4>
 			<p class="help">Business opportunities</p>
 			<h4><a href="#!List/Quotation">Quotation</a></h4>
 			<p class="help">Quotes sent to Leads / Customers</p>
@@ -32,7 +32,7 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title = "Tax and charges structure master"
-							href="#!List/Other Charges">Sales Other Charges</a>
+							href="#!List/Sales Taxes and Charges Master">Sales Taxes and Charges Master</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
@@ -47,7 +47,7 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title = "Terms of contract template"
-							href="#!List/Term">Order Terms Template</a>
+							href="#!List/Terms and Conditions">Terms and Conditions Template</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
@@ -82,7 +82,7 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title = "Helper for managing return of goods (sales or purchase)"
-							href="#!Form/Sales and Purchase Return Wizard/Sales and Purchase Return Wizard">Sales Returns</a>
+							href="#!Form/Sales and Purchase Return Tool/Sales and Purchase Return Tool">Sales Returns</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
@@ -99,4 +99,4 @@
 		</div>
 	</div>
 	<div style="clear: both;"></div>
-</div>
\ No newline at end of file
+</div>
diff --git a/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt b/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt
index f63b2cc..52d6d63 100644
--- a/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt
+++ b/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-02-23 14:18:56',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-02-23 14:18:56',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt b/erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt
index fb44274..b3d2359 100644
--- a/erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt
+++ b/erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt
@@ -3,35 +3,35 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-03-30 11:03:20',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2011-03-29 14:08:46',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': "(`tabDelivery Note Detail`.`qty`- ifnull(`tabDelivery Note Detail`.`installed_qty`, 0)) AS 'Pending to Install'",
-		'add_cond': '`tabDelivery Note Detail`.`qty` > ifnull(`tabDelivery Note Detail`.`installed_qty`, 0)',
-		'columns': 'Delivery Note\x01ID,Delivery Note\x01Status,Delivery Note\x01Customer,Delivery Note\x01Customer Name,Delivery Note\x01Contact Person,Delivery Note\x01Voucher Date,Delivery Note Detail\x01Item Code,Delivery Note Detail\x01Item Name,Delivery Note Detail\x01Quantity,Delivery Note Detail\x01Installed Qty,Delivery Note\x01% Installed',
-		'criteria_name': 'Delivered Items to be Install',
-		'description': 'Delivered Items to be Install',
-		'doc_type': 'Delivery Note Detail',
+		'add_col': u"(`tabDelivery Note Item`.`qty`- ifnull(`tabDelivery Note Item`.`installed_qty`, 0)) AS 'Pending to Install'",
+		'add_cond': u'`tabDelivery Note Item`.`qty` > ifnull(`tabDelivery Note Item`.`installed_qty`, 0)',
+		'columns': u'Delivery Note\x01ID,Delivery Note\x01Status,Delivery Note\x01Customer,Delivery Note\x01Customer Name,Delivery Note\x01Contact Person,Delivery Note\x01Voucher Date,Delivery Note Item\x01Item Code,Delivery Note Item\x01Item Name,Delivery Note Item\x01Quantity,Delivery Note Item\x01Installed Qty,Delivery Note\x01% Installed',
+		'criteria_name': u'Delivered Items to be Install',
+		'description': u'Delivered Items to be Install',
+		'doc_type': u'Delivery Note Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Saved':1,'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Fiscal Year':''}",
-		'module': 'Selling',
+		'filters': u"{'Delivery Note\x01Saved':1,'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Fiscal Year':''}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Delivery Note',
-		'sort_by': '`tabDelivery Note`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Delivery Note',
+		'sort_by': u'`tabDelivery Note`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, delivered_items_to_be_install
 	{
 		'doctype': 'Search Criteria',
-		'name': 'delivered_items_to_be_install'
+		'name': u'delivered_items_to_be_install'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt b/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt
index 5351e4e..762aa9e 100644
--- a/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt
+++ b/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt
@@ -3,35 +3,35 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-04-06 17:22:13',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'jai@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': "SUM(`tabDelivery Note Detail`.`qty` - `tabDelivery Note Detail`.`billed_qty`) AS 'Pending Qty'\nSUM((`tabDelivery Note Detail`.`qty` - `tabDelivery Note Detail`.`billed_qty`) * `tabDelivery Note Detail`.`basic_rate`) AS 'Pending Amount'",
-		'add_cond': "`tabDelivery Note`.status != 'Stopped'\nCASE WHEN `tabDelivery Note`.`per_billed` IS NULL OR `tabDelivery Note`.per_billed = '' THEN 0 < 100 ELSE `tabDelivery Note`.per_billed <100 END",
-		'columns': 'Delivery Note\x01ID,Delivery Note\x01Owner,Delivery Note\x01Status,Delivery Note\x01Customer Name,Delivery Note\x01Voucher Date,Delivery Note\x01% Billed,Delivery Note\x01Posting Date,Delivery Note\x01Company Name,Delivery Note\x01Fiscal Year,Delivery Note Detail\x01Item Code,Delivery Note Detail\x01Against Document No,Delivery Note Detail\x01Document Type,Delivery Note Detail\x01Against Document Detail No',
-		'criteria_name': 'Delivery Note Itemwise Pending To Bill',
-		'doc_type': 'Delivery Note Detail',
+		'add_col': u"SUM(`tabDelivery Note Item`.`qty` - `tabDelivery Note Item`.`billed_qty`) AS 'Pending Qty'\nSUM((`tabDelivery Note Item`.`qty` - `tabDelivery Note Item`.`billed_qty`) * `tabDelivery Note Item`.`basic_rate`) AS 'Pending Amount'",
+		'add_cond': u"`tabDelivery Note`.status != 'Stopped'\nCASE WHEN `tabDelivery Note`.`per_billed` IS NULL OR `tabDelivery Note`.per_billed = '' THEN 0 < 100 ELSE `tabDelivery Note`.per_billed <100 END",
+		'columns': u'Delivery Note\x01ID,Delivery Note\x01Owner,Delivery Note\x01Status,Delivery Note\x01Customer Name,Delivery Note\x01Voucher Date,Delivery Note\x01% Billed,Delivery Note\x01Posting Date,Delivery Note\x01Company Name,Delivery Note\x01Fiscal Year,Delivery Note Item\x01Item Code,Delivery Note Item\x01Against Document No,Delivery Note Item\x01Document Type,Delivery Note Item\x01Against Document Detail No',
+		'criteria_name': u'Delivery Note Itemwise Pending To Bill',
+		'doc_type': u'Delivery Note Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Saved':1,'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Company Name':'','Delivery Note\x01Fiscal Year':''}",
-		'group_by': '`tabDelivery Note Detail`.item_code, `tabDelivery Note`.`name`',
-		'module': 'Selling',
+		'filters': u"{'Delivery Note\x01Saved':1,'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Company Name':'','Delivery Note\x01Fiscal Year':''}",
+		'group_by': u'`tabDelivery Note Item`.item_code, `tabDelivery Note`.`name`',
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Delivery Note',
-		'sort_by': '`tabDelivery Note`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Delivery Note',
+		'sort_by': u'`tabDelivery Note`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, delivery_note_itemwise_pending_to_bill
 	{
 		'doctype': 'Search Criteria',
-		'name': 'delivery_note_itemwise_pending_to_bill'
+		'name': u'delivery_note_itemwise_pending_to_bill'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/follow_up_report/follow_up_report.js b/erpnext/selling/search_criteria/follow_up_report/follow_up_report.js
index f9c3cba..2126d0b 100644
--- a/erpnext/selling/search_criteria/follow_up_report/follow_up_report.js
+++ b/erpnext/selling/search_criteria/follow_up_report/follow_up_report.js
@@ -19,38 +19,38 @@
   this.mytabs.items['More Filters'].hide()
   
   this.hide_all_filters();
-  this.add_filter({fieldname:'follow_up_on', label:'Follow up on', fieldtype:'Select', options:''+NEWLINE+'Lead'+NEWLINE+'Enquiry'+NEWLINE+'Quotation',ignore : 1,parent:'Follow up', in_first_page : 1, single_select :1});
-  this.add_filter({fieldname:'lead_name', label:'Lead', fieldtype:'Link', options:'Lead', report_default:'', ignore : 1, parent:'Follow up', in_first_page : 1});
-  this.add_filter({fieldname:'enq_name', label:'Enquiry', fieldtype:'Link', options:'Enquiry', report_default:'', ignore : 1, parent:'Follow up', in_first_page : 1});
-  this.add_filter({fieldname:'qtn_name', label:'Quotation', fieldtype:'Link', options:'Quotation', report_default:'', ignore : 1, parent:'Follow up', in_first_page : 1});
+  this.add_filter({fieldname:'follow_up_on', label:'Communication on', fieldtype:'Select', options:''+NEWLINE+'Lead'+NEWLINE+'Opportunity'+NEWLINE+'Quotation',ignore : 1,parent:'Communication Log', in_first_page : 1, single_select :1});
+  this.add_filter({fieldname:'lead_name', label:'Lead', fieldtype:'Link', options:'Lead', report_default:'', ignore : 1, parent:'Communication Log', in_first_page : 1});
+  this.add_filter({fieldname:'enq_name', label:'Opportunity', fieldtype:'Link', options:'Opportunity', report_default:'', ignore : 1, parent:'Communication Log', in_first_page : 1});
+  this.add_filter({fieldname:'qtn_name', label:'Quotation', fieldtype:'Link', options:'Quotation', report_default:'', ignore : 1, parent:'Communication Log', in_first_page : 1});
   
-  this.get_filter('Follow up', 'Follow up type').set_as_single();
-  this.set_filter_properties('Follow up', 'Follow up by', {filter_hide:0, in_first_page : 1});
-  this.set_filter_properties('Follow up', 'Follow up type', {filter_hide:0, in_first_page : 1});
-  this.set_filter_properties('Follow up', 'From Date', {filter_hide:0, in_first_page : 1});
-  this.set_filter_properties('Follow up', 'To Date', {filter_hide:0, in_first_page : 1});
+  this.get_filter('Communication Log', 'Communication type').set_as_single();
+  this.set_filter_properties('Communication Log', 'Communication by', {filter_hide:0, in_first_page : 1});
+  this.set_filter_properties('Communication Log', 'Communication type', {filter_hide:0, in_first_page : 1});
+  this.set_filter_properties('Communication Log', 'From Date', {filter_hide:0, in_first_page : 1});
+  this.set_filter_properties('Communication Log', 'To Date', {filter_hide:0, in_first_page : 1});
 
-  this.orig_sort_list = [['Date','`tabFollow up`.`date`'],['Document Type','`tabFollow up`.`parenttype`'],['Document','`tabFollow up`.`parent`'],['Follow Up By','`tabFollow up`.`follow_up_by`'],['Follow Up Type','`tabFollow up`.`follow_up_type`']];
+  this.orig_sort_list = [['Date','`tabCommunication Log`.`date`'],['Document Type','`tabCommunication Log`.`parenttype`'],['Document','`tabCommunication Log`.`parent`'],['Follow Up By','`tabCommunication Log`.`follow_up_by`'],['Follow Up Type','`tabCommunication Log`.`follow_up_type`']];
 }
 
 
 report.get_query = function() {
-  var lead_id = this.filter_fields_dict['Follow up'+FILTER_SEP+'Lead'].get_value();
-  var enq_id = this.filter_fields_dict['Follow up'+FILTER_SEP+'Enquiry'].get_value();
-  var quo_id = this.filter_fields_dict['Follow up'+FILTER_SEP+'Quotation'].get_value();
+  var lead_id = this.filter_fields_dict['Communication Log'+FILTER_SEP+'Lead'].get_value();
+  var enq_id = this.filter_fields_dict['Communication Log'+FILTER_SEP+'Opportunity'].get_value();
+  var quo_id = this.filter_fields_dict['Communication Log'+FILTER_SEP+'Quotation'].get_value();
 
-  var follow_up_on = this.filter_fields_dict['Follow up'+FILTER_SEP+'Follow up on'].get_value();
-  var follow_up_by = this.filter_fields_dict['Follow up'+FILTER_SEP+'Follow up by'].get_value();
+  var follow_up_on = this.filter_fields_dict['Communication Log'+FILTER_SEP+'Communication on'].get_value();
+  var follow_up_by = this.filter_fields_dict['Communication Log'+FILTER_SEP+'Communication by'].get_value();
 
-  var on_type = this.filter_fields_dict['Follow up'+FILTER_SEP+'Follow up type'].get_value();
-  var from_date = this.filter_fields_dict['Follow up'+FILTER_SEP+'From Date'].get_value();
-  var to_date = this.filter_fields_dict['Follow up'+FILTER_SEP+'To Date'].get_value();
+  var on_type = this.filter_fields_dict['Communication Log'+FILTER_SEP+'Communication type'].get_value();
+  var from_date = this.filter_fields_dict['Communication Log'+FILTER_SEP+'From Date'].get_value();
+  var to_date = this.filter_fields_dict['Communication Log'+FILTER_SEP+'To Date'].get_value();
   
-  var cond = 'parenttype IN ("Lead","Enquiry","Quotation")';
+  var cond = 'parenttype IN ("Lead","Opportunity","Quotation")';
   if(follow_up_on) cond = 'parenttype = "'+follow_up_on+'"';
 
   if((follow_up_on == 'Lead' && lead_id) || (lead_id && !follow_up_on)) cond +=' AND parent = "'+lead_id+'"';
-  if((follow_up_on == 'Enquiry' && enq_id) || (enq_id && !follow_up_on)) cond +=' AND parent = "'+enq_id+'"';
+  if((follow_up_on == 'Opportunity' && enq_id) || (enq_id && !follow_up_on)) cond +=' AND parent = "'+enq_id+'"';
   if((follow_up_on == 'Quotation' && quo_id) || (quo_id && !follow_up_on)) cond +=' AND parent = "'+quo_id+'"';
 
   if(on_type) cond += ' AND follow_up_type ="'+on_type+'"';
@@ -58,6 +58,6 @@
   if(to_date) cond += ' AND date <="'+to_date+'"';
   if(follow_up_by) cond += ' AND follow_up_by = "'+follow_up_by+'"';
 
-  var q ='SELECT distinct `tabFollow up`.`parenttype`, `tabFollow up`.`parent`, `tabFollow up`.`date`, `tabFollow up`.`notes`, `tabFollow up`.`follow_up_type`, `tabFollow up`.`follow_up_by` FROM `tabFollow up` WHERE '+cond+' ORDER BY '+sel_val(this.dt.sort_sel)+' '+this.dt.sort_order;
+  var q ='SELECT distinct `tabCommunication Log`.`parenttype`, `tabCommunication Log`.`parent`, `tabCommunication Log`.`date`, `tabCommunication Log`.`notes`, `tabCommunication Log`.`follow_up_type`, `tabCommunication Log`.`follow_up_by` FROM `tabCommunication Log` WHERE '+cond+' ORDER BY '+sel_val(this.dt.sort_sel)+' '+this.dt.sort_order;
   return q;
 }
diff --git a/erpnext/selling/search_criteria/follow_up_report/follow_up_report.txt b/erpnext/selling/search_criteria/follow_up_report/follow_up_report.txt
index 64271ac..56b547f 100644
--- a/erpnext/selling/search_criteria/follow_up_report/follow_up_report.txt
+++ b/erpnext/selling/search_criteria/follow_up_report/follow_up_report.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-08-12 16:33:19',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Lead\x01ID,Follow up\x01Date,Follow up\x01Notes,Follow up\x01Follow up type',
-		'criteria_name': 'Follow-up Report',
-		'doc_type': 'Follow up',
+		'columns': u'Lead\x01ID,Communication Log\x01Date,Communication Log\x01Notes,Communication Log\x01Communication Log type',
+		'criteria_name': u'Follow-up Report',
+		'doc_type': u'Communication Log',
 		'doctype': 'Search Criteria',
-		'filters': "{'Lead\x01Status':'','Lead\x01Source':'','Lead\x01Lead Type':'','Lead\x01Rating':'','Lead\x01Market Segment':'','Lead\x01Fiscal Year':''}",
-		'module': 'Selling',
+		'filters': u"{'Lead\x01Status':'','Lead\x01Source':'','Lead\x01Lead Type':'','Lead\x01Rating':'','Lead\x01Market Segment':'','Lead\x01Fiscal Year':''}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Lead',
-		'sort_by': '`tabLead`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Lead',
+		'sort_by': u'`tabLead`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, follow-up_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'follow-up_report'
+		'name': u'follow-up_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/gross_profit/gross_profit.js b/erpnext/selling/search_criteria/gross_profit/gross_profit.js
index d53c07d..4ad6735 100644
--- a/erpnext/selling/search_criteria/gross_profit/gross_profit.js
+++ b/erpnext/selling/search_criteria/gross_profit/gross_profit.js
@@ -21,12 +21,12 @@
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'ID'].df.filter_hide = 0;
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Delivery Note Detail'+FILTER_SEP +'Item Code'].df.filter_hide = 0;
+  this.filter_fields_dict['Delivery Note Item'+FILTER_SEP +'Item Code'].df.filter_hide = 0;
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'Project Name'].df.filter_hide = 0;
 
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'ID'].df.in_first_page = 1;
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Delivery Note Detail'+FILTER_SEP +'Item Code'].df.in_first_page = 1;
+  this.filter_fields_dict['Delivery Note Item'+FILTER_SEP +'Item Code'].df.in_first_page = 1;
   this.filter_fields_dict['Delivery Note'+FILTER_SEP +'Project Name'].df.in_first_page = 1;
 }
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/gross_profit/gross_profit.py b/erpnext/selling/search_criteria/gross_profit/gross_profit.py
index 47ca383..d1b0a86 100644
--- a/erpnext/selling/search_criteria/gross_profit/gross_profit.py
+++ b/erpnext/selling/search_criteria/gross_profit/gross_profit.py
@@ -39,7 +39,7 @@
 
 for r in res:
   tot_val_rate = 0
-  packing_list_items = sql("select item_code, warehouse, qty from `tabDelivery Note Packing Detail` where parent = %s and parent_item = %s", (r[col_idx['ID']], r[col_idx['Item Code']]))
+  packing_list_items = sql("select item_code, warehouse, qty from `tabDelivery Note Packing Item` where parent = %s and parent_item = %s", (r[col_idx['ID']], r[col_idx['Item Code']]))
   for d in packing_list_items:
     if d[1]:
       val_rate = sql("select valuation_rate from `tabStock Ledger Entry` where item_code = %s and warehouse = %s and voucher_type = 'Delivery Note' and voucher_no = %s and is_cancelled = 'No'", (d[0], d[1], r[col_idx['ID']]))
diff --git a/erpnext/selling/search_criteria/gross_profit/gross_profit.txt b/erpnext/selling/search_criteria/gross_profit/gross_profit.txt
index 7675319..b98ced6 100644
--- a/erpnext/selling/search_criteria/gross_profit/gross_profit.txt
+++ b/erpnext/selling/search_criteria/gross_profit/gross_profit.txt
@@ -3,33 +3,33 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:21',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-11-10 12:39:03',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Delivery Note\x01ID,Delivery Note\x01Posting Date,Delivery Note\x01Posting Time,Delivery Note Detail\x01Item Code,Delivery Note Detail\x01Item Name,Delivery Note Detail\x01Description,Delivery Note\x01Project Name,Delivery Note Detail\x01Quantity,Delivery Note Detail\x01Rate*,Delivery Note Detail\x01Amount*',
-		'criteria_name': 'Gross Profit',
-		'description': 'Invoice wise',
-		'doc_type': 'Delivery Note Detail',
+		'columns': u'Delivery Note\x01ID,Delivery Note\x01Posting Date,Delivery Note\x01Posting Time,Delivery Note Item\x01Item Code,Delivery Note Item\x01Item Name,Delivery Note Item\x01Description,Delivery Note\x01Project Name,Delivery Note Item\x01Quantity,Delivery Note Item\x01Rate*,Delivery Note Item\x01Amount*',
+		'criteria_name': u'Gross Profit',
+		'description': u'Invoice wise',
+		'doc_type': u'Delivery Note Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Fiscal Year':''}",
-		'module': 'Selling',
+		'filters': u"{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Fiscal Year':''}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Delivery Note',
-		'sort_by': '`tabDelivery Note`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Delivery Note',
+		'sort_by': u'`tabDelivery Note`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, gross_profit
 	{
 		'doctype': 'Search Criteria',
-		'name': 'gross_profit'
+		'name': u'gross_profit'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt
index fbba495..894aeee 100644
--- a/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt
+++ b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-11-10 15:04:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-10-26 09:10:53',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Delivery Note\x01ID,Delivery Note Detail\x01Item Code,Delivery Note Detail\x01Item Name,Delivery Note Detail\x01Quantity,Delivery Note Detail\x01Rate*,Delivery Note Detail\x01Amount*,Delivery Note Detail\x01Billed Qty,Delivery Note\x01Company',
-		'criteria_name': 'Itemwise Delivery Details',
-		'doc_type': 'Delivery Note Detail',
+		'columns': u'Delivery Note\x01ID,Delivery Note Item\x01Item Code,Delivery Note Item\x01Item Name,Delivery Note Item\x01Quantity,Delivery Note Item\x01Rate*,Delivery Note Item\x01Amount*,Delivery Note Item\x01Billed Qty,Delivery Note\x01Company',
+		'criteria_name': u'Itemwise Delivery Details',
+		'doc_type': u'Delivery Note Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01From Voucher Date\x01lower':'','Delivery Note\x01To Voucher Date\x01upper':'','Delivery Note\x01Fiscal Year':''}",
-		'module': 'Selling',
+		'filters': u"{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01From Voucher Date\x01lower':'','Delivery Note\x01To Voucher Date\x01upper':'','Delivery Note\x01Fiscal Year':''}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Delivery Note',
-		'sort_by': '`tabDelivery Note`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Delivery Note',
+		'sort_by': u'`tabDelivery Note`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, itemwise_delivery_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'itemwise_delivery_details'
+		'name': u'itemwise_delivery_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.js b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.js
index 05b2e75..7ff214a 100644
--- a/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.js
+++ b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.js
@@ -19,7 +19,7 @@
   this.filter_fields_dict['Sales Order'+FILTER_SEP +'From Sales Order Date'].df['report_default'] = sys_defaults.year_start_date;
   this.filter_fields_dict['Sales Order'+FILTER_SEP +'To Sales Order Date'].df['report_default'] = dateutil.obj_to_str(new Date());
   this.filter_fields_dict['Sales Order'+FILTER_SEP +'Company'].df['report_default'] = sys_defaults.company;
-  this.filter_fields_dict['Sales Order Detail'+FILTER_SEP +'Item Code'].df.in_first_page = 1;
+  this.filter_fields_dict['Sales Order Item'+FILTER_SEP +'Item Code'].df.in_first_page = 1;
   this.filter_fields_dict['Sales Order'+FILTER_SEP +'Status'].df.filter_hide = 1;
 }
 
diff --git a/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt
index d224693..3566ea9 100644
--- a/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt
+++ b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-08-30 12:22:47',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Sales Order\x01ID,Sales Order\x01Customer,Sales Order Detail\x01Item Code,Sales Order Detail\x01Item Name,Sales Order Detail\x01Quantity,Sales Order Detail\x01Basic Rate*,Sales Order Detail\x01Amount*,Sales Order Detail\x01Delivered Qty,Sales Order Detail\x01Billed Qty,Sales Order\x01Company',
-		'criteria_name': 'Itemwise Sales Details',
-		'doc_type': 'Sales Order Detail',
+		'columns': u'Sales Order\x01ID,Sales Order\x01Customer,Sales Order Item\x01Item Code,Sales Order Item\x01Item Name,Sales Order Item\x01Quantity,Sales Order Item\x01Basic Rate*,Sales Order Item\x01Amount*,Sales Order Item\x01Delivered Qty,Sales Order Item\x01Billed Qty,Sales Order\x01Company',
+		'criteria_name': u'Itemwise Sales Details',
+		'doc_type': u'Sales Order Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
-		'module': 'Selling',
+		'filters': u"{'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Sales Order',
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Order',
+		'sort_by': u'`tabSales Order`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, itemwise_sales_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'itemwise_sales_details'
+		'name': u'itemwise_sales_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/lead_to_follow_up/__init__.py b/erpnext/selling/search_criteria/lead_to_follow_up/__init__.py
similarity index 100%
rename from erpnext/home/search_criteria/lead_to_follow_up/__init__.py
rename to erpnext/selling/search_criteria/lead_to_follow_up/__init__.py
diff --git a/erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.js b/erpnext/selling/search_criteria/lead_to_follow_up/lead_to_follow_up.js
similarity index 100%
rename from erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.js
rename to erpnext/selling/search_criteria/lead_to_follow_up/lead_to_follow_up.js
diff --git a/erpnext/selling/search_criteria/lead_to_follow_up/lead_to_follow_up.txt b/erpnext/selling/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
new file mode 100644
index 0000000..3a5c983
--- /dev/null
+++ b/erpnext/selling/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
@@ -0,0 +1,34 @@
+# Search Criteria, lead-to_follow_up
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-04-03 12:49:51',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'add_cond': u"`tabLead`.status!='Converted' \n`tabLead`.status!='Lead Lost' \n`tabLead`.status!='Not Interested'",
+		'columns': u'Lead\x01ID,Lead\x01Status,Lead\x01Lead Name,Lead\x01Lead Date,Lead\x01Lead Owner,Lead\x01Next Contact Date',
+		'criteria_name': u'Lead-To follow up',
+		'doc_type': u'Lead',
+		'doctype': 'Search Criteria',
+		'filters': u"{'Lead\x01Status':'','Lead\x01Source':'','Lead\x01Expected Month':'','Lead\x01Industry':'','Lead\x01Market Segment':'','Lead\x01Rating':''}",
+		'module': u'Selling',
+		'name': '__common__',
+		'page_len': 50,
+		'sort_by': u'`tabLead`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
+	},
+
+	# Search Criteria, lead-to_follow_up
+	{
+		'doctype': 'Search Criteria',
+		'name': u'lead-to_follow_up'
+	}
+]
diff --git a/erpnext/home/search_criteria/lead_to_follow_up/sales_order_overdue.js b/erpnext/selling/search_criteria/lead_to_follow_up/sales_order_overdue.js
similarity index 100%
rename from erpnext/home/search_criteria/lead_to_follow_up/sales_order_overdue.js
rename to erpnext/selling/search_criteria/lead_to_follow_up/sales_order_overdue.js
diff --git a/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js
deleted file mode 100644
index ac04e28..0000000
--- a/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-this.mytabs.items['Select Columns'].hide();
-this.mytabs.items['More Filters'].hide();
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py
deleted file mode 100644
index f18ee15..0000000
--- a/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-total = 0.0
-monthlist = ['','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
-for r in res:
-  r[0] = monthlist[r[0]]
-  total += r[1]
-
-colwidths[col_idx['Total Despatched']] = '200px'
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt
deleted file mode 100644
index 51733dc..0000000
--- a/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-# Search Criteria, monthly_despatched_trend
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-06-07 15:19:13',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_col': "month(`tabDelivery Note`.posting_date) AS 'Sales Month'\nsum(`tabDelivery Note`.net_total) AS 'Total Despatched'",
-		'add_cond': '`tabDelivery Note`.net_total > 10',
-		'criteria_name': 'Monthly Despatched Trend',
-		'description': 'Monthly Despatched Trend',
-		'doc_type': 'Delivery Note',
-		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Chargeable':'Yes','Delivery Note\x01Department':'','Delivery Note\x01Type':'','Delivery Note\x01Company Name':'Janak Healthcare Pvt Ltd','Delivery Note\x01Fiscal Year':'2009-2010'}",
-		'graph_series': 'Despatched Month',
-		'graph_values': 'Total Despatched',
-		'group_by': 'month(`tabDelivery Note`.Posting_date)',
-		'module': 'Selling',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`Sales Month`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, monthly_despatched_trend
-	{
-		'doctype': 'Search Criteria',
-		'name': 'monthly_despatched_trend'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/monthly_despatched_trend/__init__.py b/erpnext/selling/search_criteria/opportunity_to_follow_up/__init__.py
similarity index 100%
rename from erpnext/selling/search_criteria/monthly_despatched_trend/__init__.py
rename to erpnext/selling/search_criteria/opportunity_to_follow_up/__init__.py
diff --git a/erpnext/selling/search_criteria/opportunity_to_follow_up/opportunity_to_follow_up.txt b/erpnext/selling/search_criteria/opportunity_to_follow_up/opportunity_to_follow_up.txt
new file mode 100644
index 0000000..3ca813b
--- /dev/null
+++ b/erpnext/selling/search_criteria/opportunity_to_follow_up/opportunity_to_follow_up.txt
@@ -0,0 +1,34 @@
+# Search Criteria, opportunity-to_follow_up
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-30 14:50:44',
+		'docstatus': 0,
+		'modified': '2012-03-30 14:50:44',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'add_cond': u"`tabOpportunity`.name=`tabQuotation`.enq_no\n`tabOpportunity`.docstatus=1\n`tabQuotation`.status='Submitted'",
+		'columns': u'Opportunity\x01ID,Opportunity\x01Owner,Opportunity\x01Company,Opportunity\x01Fiscal Year',
+		'criteria_name': u'Opportunity-To follow up',
+		'doc_type': u'Opportunity',
+		'doctype': 'Search Criteria',
+		'filters': u"{'Opportunity\x01Fiscal Year':''}",
+		'module': u'Selling',
+		'name': '__common__',
+		'page_len': 50,
+		'sort_by': u'`tabOpportunity`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
+	},
+
+	# Search Criteria, opportunity-to_follow_up
+	{
+		'doctype': 'Search Criteria',
+		'name': u'opportunity-to_follow_up'
+	}
+]
diff --git a/erpnext/selling/search_criteria/periodic_sales_summary/__init__.py b/erpnext/selling/search_criteria/periodic_sales_summary/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/selling/search_criteria/periodic_sales_summary/__init__.py
+++ /dev/null
diff --git a/erpnext/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.js b/erpnext/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.js
deleted file mode 100644
index ef3cef5..0000000
--- a/erpnext/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();
-  this.add_filter({fieldname:'transaction_date', label:'Sales Order Date', fieldtype:'Date', parent:'Sales Order', in_first_page : 1,default:''});
-  
-  //this.filter_fields_dict['Sales Order'+FILTER_SEP +'Territory'].df.filter_hide = 0;
-  //this.filter_fields_dict['Sales Order'+FILTER_SEP +'Sales Order Date'].df.filter_hide = 0;
-  //this.filter_fields_dict['Sales Order'+FILTER_SEP +'Sales Order Date'].df.in_first_page = 1;
-  
-  this.filter_fields_dict['Sales Order Detail'+FILTER_SEP +'Item Code'].df.filter_hide = 0;
-  this.filter_fields_dict['Sales Order Detail'+FILTER_SEP +'Item Code'].df.in_first_page = 1;
-
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Company'].df.filter_hide = 0;
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Company'].df.in_first_page = 1;
-
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Company'].df['report_default'] = sys_defaults.company;
-
-  //this.mytabs.items['Select Columns'].hide();
-  //this.mytabs.items['More Filters'].hide();
-}
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.txt b/erpnext/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.txt
deleted file mode 100644
index 4672949..0000000
--- a/erpnext/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-# Search Criteria, periodic_sales_summary
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:31',
-		'docstatus': 0,
-		'modified': '2010-06-03 13:09:00',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Sales Order Detail\x01Item Code,Sales Order Detail\x01Quantity,Sales Order Detail\x01Delivered Qty,Sales Order Detail\x01Billed Qty',
-		'criteria_name': 'Periodic Sales Summary',
-		'dis_filters': 'fiscal_year',
-		'disabled': 1,
-		'doc_type': 'Sales Order Detail',
-		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Submitted':1,'Sales Order\x01Company Name':'','Sales Order\x01Fiscal Year':''}",
-		'group_by': '`tabSales Order Detail`.`item_code`',
-		'module': 'Selling',
-		'name': '__common__',
-		'page_len': 50,
-		'parent_doc_type': 'Sales Order',
-		'sort_by': '`tabSales Order Detail`.`item_code`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, periodic_sales_summary
-	{
-		'doctype': 'Search Criteria',
-		'name': 'periodic_sales_summary'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/sales_agentwise_commission/__init__.py b/erpnext/selling/search_criteria/sales_agentwise_commission/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/selling/search_criteria/sales_agentwise_commission/__init__.py
+++ /dev/null
diff --git a/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.js b/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.js
deleted file mode 100644
index 049c597..0000000
--- a/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Sales Partner'].df.filter_hide = 0;
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Sales Partner'].df.in_first_page = 1;
-}
-
-
-this.mytabs.items['Select Columns'].hide();
-this.mytabs.items['More Filters'].hide();
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.py b/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.py
deleted file mode 100644
index 4958674..0000000
--- a/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-coltypes[col_idx['Average Commission Rate']] = 'Currency'
-colwidths[col_idx['Average Commission Rate']] = '200px'
-
-coltypes[col_idx['Net Total']] = 'Currency'
-colwidths[col_idx['Net Total']] = '150px'
-
-coltypes[col_idx['Total Commission']] = 'Currency'
-colwidths[col_idx['Total Commission']] = '150px'
diff --git a/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.txt b/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.txt
deleted file mode 100644
index 047a175..0000000
--- a/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-# Search Criteria, sales_agentwise_commission
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-26 11:52:28',
-		'docstatus': 0,
-		'modified': '2010-08-26 11:48:17',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_col': "SUM(`tabSales Order`.`total_commission`) AS 'Total Commission'\nSUM(`tabSales Order`.`net_total`) AS 'Net Total'\n((SUM(`tabSales Order`.`total_commission`) / SUM(`tabSales Order`.`net_total`)) * 100) AS 'Average Commission Rate'",
-		'add_cond': '`tabSales Order`.`net_total` > 0',
-		'columns': 'Sales Order\x01Business Associate',
-		'criteria_name': 'Sales Agentwise Commission',
-		'description': 'Sales Agentwise Commission',
-		'disabled': 1,
-		'doc_type': 'Sales Order',
-		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Submitted':1}",
-		'group_by': '`tabSales Order`.`sales_partner`',
-		'module': 'Selling',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, sales_agentwise_commission
-	{
-		'doctype': 'Search Criteria',
-		'name': 'sales_agentwise_commission'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/sales_order_pending_items1/__init__.py b/erpnext/selling/search_criteria/sales_order_pending_items/__init__.py
similarity index 100%
rename from erpnext/selling/search_criteria/sales_order_pending_items1/__init__.py
rename to erpnext/selling/search_criteria/sales_order_pending_items/__init__.py
diff --git a/erpnext/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.js b/erpnext/selling/search_criteria/sales_order_pending_items/sales_order_pending_items.js
similarity index 100%
rename from erpnext/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.js
rename to erpnext/selling/search_criteria/sales_order_pending_items/sales_order_pending_items.js
diff --git a/erpnext/selling/search_criteria/sales_order_pending_items/sales_order_pending_items.txt b/erpnext/selling/search_criteria/sales_order_pending_items/sales_order_pending_items.txt
new file mode 100644
index 0000000..036d689
--- /dev/null
+++ b/erpnext/selling/search_criteria/sales_order_pending_items/sales_order_pending_items.txt
@@ -0,0 +1,37 @@
+[
+	{
+		'add_col': '(`tabSales Order Item`.qty - ifnull(`tabSales Order Item`.delivered_qty, 0)) AS "Qty To Deliver"\n(`tabSales Order Item`.qty - ifnull(`tabSales Order Item`.billed_qty, 0)) AS "Qty To Bill"\n(`tabSales Order Item`.qty - ifnull(`tabSales Order Item`.delivered_qty, 0))*`tabSales Order Item`.basic_rate AS "Amount To Deliver"\n(`tabSales Order Item`.qty - ifnull(`tabSales Order Item`.billed_qty, 0))*`tabSales Order Item`.basic_rate AS "Amount To Bill"',
+		'add_cond': '(`tabSales Order Item`.qty - ifnull(`tabSales Order Item`.delivered_qty, 0) > 0 or `tabSales Order Item`.qty - ifnull(`tabSales Order Item`.billed_qty, 0) > 0)\n`tabSales Order`.status != "Stopped"',
+		'add_tab': None,
+		'columns': 'Sales Order\x01ID,Sales Order\x01Sales Order Date,Sales Order\x01Customer,Sales Order\x01Customer Name,Sales Order Item\x01Item Code,Sales Order Item\x01Item Name,Sales Order Item\x01Description,Sales Order Item\x01Quantity,Sales Order Item\x01Delivered Qty,Sales Order Item\x01Billed Qty',
+		'creation': '2011-05-09 11:04:19',
+		'criteria_name': 'Sales Order Pending Items',
+		'custom_query': '',
+		'description': 'Sales Order Pending Items',
+		'dis_filters': None,
+		'disabled': None,
+		'doc_type': 'Sales Order Item',
+		'docstatus': 0,
+		'doctype': 'Search Criteria',
+		'filters': "{'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
+		'graph_series': None,
+		'graph_values': None,
+		'group_by': None,
+		'idx': None,
+		'modified': '2011-05-09 11:08:05',
+		'modified_by': 'Administrator',
+		'module': 'CRM',
+		'name': 'sales_order_pending_items',
+		'owner': 'Administrator',
+		'page_len': 50,
+		'parent': None,
+		'parent_doc_type': 'Sales Order',
+		'parentfield': None,
+		'parenttype': None,
+		'report_script': None,
+		'server_script': None,
+		'sort_by': '`tabSales Order`.`name`',
+		'sort_order': 'DESC',
+		'standard': 'Yes'
+	}
+]
diff --git a/erpnext/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.txt b/erpnext/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.txt
deleted file mode 100644
index 1ea02d9..0000000
--- a/erpnext/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-[
-	{
-		'add_col': '(`tabSales Order Detail`.qty - ifnull(`tabSales Order Detail`.delivered_qty, 0)) AS "Qty To Deliver"\n(`tabSales Order Detail`.qty - ifnull(`tabSales Order Detail`.billed_qty, 0)) AS "Qty To Bill"\n(`tabSales Order Detail`.qty - ifnull(`tabSales Order Detail`.delivered_qty, 0))*`tabSales Order Detail`.basic_rate AS "Amount To Deliver"\n(`tabSales Order Detail`.qty - ifnull(`tabSales Order Detail`.billed_qty, 0))*`tabSales Order Detail`.basic_rate AS "Amount To Bill"',
-		'add_cond': '(`tabSales Order Detail`.qty - ifnull(`tabSales Order Detail`.delivered_qty, 0) > 0 or `tabSales Order Detail`.qty - ifnull(`tabSales Order Detail`.billed_qty, 0) > 0)\n`tabSales Order`.status != "Stopped"',
-		'add_tab': None,
-		'columns': 'Sales Order\x01ID,Sales Order\x01Sales Order Date,Sales Order\x01Customer,Sales Order\x01Customer Name,Sales Order Detail\x01Item Code,Sales Order Detail\x01Item Name,Sales Order Detail\x01Description,Sales Order Detail\x01Quantity,Sales Order Detail\x01Delivered Qty,Sales Order Detail\x01Billed Qty',
-		'creation': '2011-05-09 11:04:19',
-		'criteria_name': 'Sales Order Pending Items1',
-		'custom_query': '',
-		'description': 'Sales Order Pending Items',
-		'dis_filters': None,
-		'disabled': None,
-		'doc_type': 'Sales Order Detail',
-		'docstatus': 0,
-		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
-		'graph_series': None,
-		'graph_values': None,
-		'group_by': None,
-		'idx': None,
-		'modified': '2011-05-09 11:08:05',
-		'modified_by': 'Administrator',
-		'module': 'CRM',
-		'name': 'sales_order_pending_items1',
-		'owner': 'Administrator',
-		'page_len': 50,
-		'parent': None,
-		'parent_doc_type': 'Sales Order',
-		'parentfield': None,
-		'parenttype': None,
-		'report_script': None,
-		'server_script': None,
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/sales_orderwise_booking_ b/erpnext/selling/search_criteria/sales_orderwise_booking_
deleted file mode 100644
index 46a478c..0000000
--- a/erpnext/selling/search_criteria/sales_orderwise_booking_
+++ /dev/null
@@ -1,4 +0,0 @@
-report.customize_filters = function() {
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Company'].df['report_default'] = sys_defaults.company;
-  this.filter_fields_dict['Sales Order'+FILTER_SEP +'Fiscal Year'].df['report_default'] = sys_defaults.fiscal_year;
-}
diff --git a/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt b/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt
index 0ef2f07..fa03e9f 100644
--- a/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt
+++ b/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt
@@ -3,35 +3,35 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-08-30 12:48:21',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': "SUM(CASE WHEN `tabSales Order`.`status` = 'Stopped' THEN (`tabSales Order Detail`.`delivered_qty` * `tabSales Order Detail`.`basic_rate`) ELSE (`tabSales Order Detail`.`qty` * `tabSales Order Detail`.`basic_rate`) END) AS 'Booking Total'\nSUM(`tabSales Order Detail`.`delivered_qty` * `tabSales Order Detail`.`basic_rate`) AS 'Delivered Amount'",
-		'columns': 'Sales Order\x01ID,Sales Order\x01Status,Sales Order\x01% Billed,Sales Order\x01Sales Order Date,Sales Order\x01Customer,Sales Order\x01Customer Name,Sales Order\x01Territory',
-		'criteria_name': 'Sales Orderwise Booking & Delivery Summary',
-		'description': 'Sales Orderwise Booking & Delivery Summary',
-		'doc_type': 'Sales Order Detail',
+		'add_col': u"SUM(CASE WHEN `tabSales Order`.`status` = 'Stopped' THEN (`tabSales Order Item`.`delivered_qty` * `tabSales Order Item`.`basic_rate`) ELSE (`tabSales Order Item`.`qty` * `tabSales Order Item`.`basic_rate`) END) AS 'Booking Total'\nSUM(`tabSales Order Item`.`delivered_qty` * `tabSales Order Item`.`basic_rate`) AS 'Delivered Amount'",
+		'columns': u'Sales Order\x01ID,Sales Order\x01Status,Sales Order\x01% Billed,Sales Order\x01Sales Order Date,Sales Order\x01Customer,Sales Order\x01Customer Name,Sales Order\x01Territory',
+		'criteria_name': u'Sales Orderwise Booking & Delivery Summary',
+		'description': u'Sales Orderwise Booking & Delivery Summary',
+		'doc_type': u'Sales Order Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
-		'group_by': '`tabSales Order`.`name`',
-		'module': 'Selling',
+		'filters': u"{'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
+		'group_by': u'`tabSales Order`.`name`',
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Sales Order',
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Order',
+		'sort_by': u'`tabSales Order`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, sales_orderwise_booking_&_delivery_summary
 	{
 		'doctype': 'Search Criteria',
-		'name': 'sales_orderwise_booking_&_delivery_summary'
+		'name': u'sales_orderwise_booking_&_delivery_summary'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt b/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt
index e46e10d..6b61745 100644
--- a/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt
+++ b/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt
@@ -3,36 +3,36 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-03-30 11:03:20',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2011-03-29 14:06:13',
-		'modified_by': 'Administrator',
-		'owner': 'dhanalekshmi@webnotestech.com'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'dhanalekshmi@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': 'SUM((`tabSales Order Detail`.`qty` - ifnull(`tabSales Order Detail`.`billed_qty`, 0)) * `tabSales Order Detail`.`basic_rate`) AS "Pending Amount"',
-		'add_cond': '`tabSales Order`.status != "Stopped"\n`tabSales Order`.order_type!="Maintenance"',
-		'columns': 'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Customer Address,Sales Order\x01Status,Sales Order\x01%  Delivered,Sales Order\x01% Billed,Sales Order\x01Company Name,Sales Order\x01Sales Order Date,Sales Order\x01Net Total,Sales Order\x01Zone,Sales Order\x01Territory,Sales Order\x01Email Id',
-		'criteria_name': 'Sales Orderwise Pending Amount To Bill',
-		'description': 'Sales Orderwise Pending Amount To Bill',
-		'doc_type': 'Sales Order Detail',
+		'add_col': u'SUM((`tabSales Order Item`.`qty` - ifnull(`tabSales Order Item`.`billed_qty`, 0)) * `tabSales Order Item`.`basic_rate`) AS "Pending Amount"',
+		'add_cond': u'`tabSales Order`.status != "Stopped"\n`tabSales Order`.order_type!="Maintenance"',
+		'columns': u'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Customer Address,Sales Order\x01Status,Sales Order\x01%  Delivered,Sales Order\x01% Billed,Sales Order\x01Company Name,Sales Order\x01Sales Order Date,Sales Order\x01Net Total,Sales Order\x01Zone,Sales Order\x01Territory,Sales Order\x01Email Id',
+		'criteria_name': u'Sales Orderwise Pending Amount To Bill',
+		'description': u'Sales Orderwise Pending Amount To Bill',
+		'doc_type': u'Sales Order Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Company Name':'','Sales Order\x01Fiscal Year':''}",
-		'group_by': '`tabSales Order`.`name`',
-		'module': 'Selling',
+		'filters': u"{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Company Name':'','Sales Order\x01Fiscal Year':''}",
+		'group_by': u'`tabSales Order`.`name`',
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Sales Order',
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Order',
+		'sort_by': u'`tabSales Order`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, sales_orderwise_pending_amount_to_bill
 	{
 		'doctype': 'Search Criteria',
-		'name': 'sales_orderwise_pending_amount_to_bill'
+		'name': u'sales_orderwise_pending_amount_to_bill'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt b/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt
index 74fc106..7a73d4a 100644
--- a/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt
+++ b/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt
@@ -3,36 +3,36 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-03-30 11:03:20',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2011-03-29 14:02:58',
-		'modified_by': 'Administrator',
-		'owner': 'dhanalekshmi@webnotestech.com'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'dhanalekshmi@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': 'SUM(`tabSales Order Detail`.`qty` - ifnull(`tabSales Order Detail`.`delivered_qty`, 0)) AS "Pending Qty"',
-		'add_cond': '`tabSales Order`.status != "Stopped"\n`tabSales Order Detail`.`qty` > ifnull(`tabSales Order Detail`.`delivered_qty`, 0)',
-		'columns': 'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Customer Name,Sales Order\x01Customer Address,Sales Order\x01Status,Sales Order\x01%  Delivered,Sales Order\x01% Billed,Sales Order\x01Sales Order Date,Sales Order\x01Territory,Sales Order\x01Email Id',
-		'criteria_name': 'Sales Orderwise Pending Qty To Deliver',
-		'description': 'Sales Orderwise Pending Qty To Deliver',
-		'doc_type': 'Sales Order Detail',
+		'add_col': u'SUM(`tabSales Order Item`.`qty` - ifnull(`tabSales Order Item`.`delivered_qty`, 0)) AS "Pending Qty"',
+		'add_cond': u'`tabSales Order`.status != "Stopped"\n`tabSales Order Item`.`qty` > ifnull(`tabSales Order Item`.`delivered_qty`, 0)',
+		'columns': u'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Customer Name,Sales Order\x01Customer Address,Sales Order\x01Status,Sales Order\x01%  Delivered,Sales Order\x01% Billed,Sales Order\x01Sales Order Date,Sales Order\x01Territory,Sales Order\x01Email Id',
+		'criteria_name': u'Sales Orderwise Pending Qty To Deliver',
+		'description': u'Sales Orderwise Pending Qty To Deliver',
+		'doc_type': u'Sales Order Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
-		'group_by': '`tabSales Order`.`name`',
-		'module': 'Selling',
+		'filters': u"{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
+		'group_by': u'`tabSales Order`.`name`',
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Sales Order',
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Order',
+		'sort_by': u'`tabSales Order`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, sales_orderwise_pending_qty_to_deliver
 	{
 		'doctype': 'Search Criteria',
-		'name': 'sales_orderwise_pending_qty_to_deliver'
+		'name': u'sales_orderwise_pending_qty_to_deliver'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.js b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.js
index 135b68d..9491bbb 100644
--- a/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.js
+++ b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.js
@@ -35,7 +35,7 @@
   sales_person = this.filter_fields_dict['Target Detail'+FILTER_SEP+'Sales Person'].get_value();
   target_on = this.filter_fields_dict['Target Detail'+FILTER_SEP+'Target On'].get_value();   
   under = this.filter_fields_dict['Target Detail'+FILTER_SEP+'Under'].get_value();
-  if(under == 'Sales Invoice') under = 'Receivable Voucher';
+  if(under == 'Sales Invoice') under = 'Sales Invoice';
 
   if(target_on == 'Quantity'){
     q1 = 't1.target_qty AS "Target Quantity"';
@@ -49,7 +49,7 @@
     cond1 = 'ifnull(t1.target_amount,"")!=""';
     cond2 = 'ifnull(t6.target_amount,"")!=""';
   }
-  if(under =='Receivable Voucher')
+  if(under =='Sales Invoice')
     tab = 'RV';
   else
     tab = under;
diff --git a/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py
index 3375f08..83a6511 100644
--- a/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py
+++ b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py
@@ -25,7 +25,7 @@
 fiscal_year = filter_values.get('fiscal_year')
 period = filter_values.get('period')
 under = filter_values.get('under')
-if under == 'Sales Invoice': under = 'Receivable Voucher'
+if under == 'Sales Invoice': under = 'Sales Invoice'
 sales_person = filter_values.get('sales_person')
 target_on = filter_values.get('target_on')
 
@@ -124,12 +124,12 @@
     #----------------------------------------------------------    
     if target_on == "Quantity":
 
-      actual = sql("select sum(ifnull(t2.qty,0) * ifnull(t3.allocated_percentage,0) / 100) from `tab%s` t1, `tab%s Detail` t2, `tabSales Team` t3 where t2.parent = t1.name and t3.parent = t1.name and t3.%s = '%s' and t2.item_group = '%s' and t1.docstatus = 1 and t1.%s between '%s' and '%s' "%(under, (under == 'Receivable Voucher') and 'RV' or under, based_on_fn, sales_person, r[0].strip(), date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
+      actual = sql("select sum(ifnull(t2.qty,0) * ifnull(t3.allocated_percentage,0) / 100) from `tab%s` t1, `tab%s Detail` t2, `tabSales Team` t3 where t2.parent = t1.name and t3.parent = t1.name and t3.%s = '%s' and t2.item_group = '%s' and t1.docstatus = 1 and t1.%s between '%s' and '%s' "%(under, (under == 'Sales Invoice') and 'RV' or under, based_on_fn, sales_person, r[0].strip(), date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
     
     #----------------------------------------------------------  
     if target_on == "Amount":
 
-      actual = sql("select sum(ifnull(t2.amount,0) * ifnull(t3.allocated_percentage,0) / 100) from `tab%s` t1, `tab%s Detail` t2, `tabSales Team` t3 where t2.parent = t1.name and t3.parent = t1.name and t3.%s = '%s' and t2.item_group = '%s' and t1.docstatus = 1 and t1.%s between '%s' and '%s' "%(under, (under == 'Receivable Voucher') and 'RV' or under, based_on_fn, sales_person, r[0].strip(), date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
+      actual = sql("select sum(ifnull(t2.amount,0) * ifnull(t3.allocated_percentage,0) / 100) from `tab%s` t1, `tab%s Detail` t2, `tabSales Team` t3 where t2.parent = t1.name and t3.parent = t1.name and t3.%s = '%s' and t2.item_group = '%s' and t1.docstatus = 1 and t1.%s between '%s' and '%s' "%(under, (under == 'Sales Invoice') and 'RV' or under, based_on_fn, sales_person, r[0].strip(), date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
     #----------------------------------------------------------
 
     actual = actual and flt(actual[0][0]) or 0 
diff --git a/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt
index ec2b338..f001b70 100644
--- a/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt
+++ b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-10-12 15:19:31',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2010-09-25 17:22:58',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': 'Sales Persons Target Variance (Item Group wise)',
-		'doc_type': 'Target Detail',
+		'criteria_name': u'Sales Persons Target Variance (Item Group wise)',
+		'doc_type': u'Target Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Person\x01Country':'','Sales Person\x01State':'','Target Detail\x01Fiscal Year':''}",
-		'module': 'Selling',
+		'filters': u"{'Sales Person\x01Country':'','Sales Person\x01State':'','Target Detail\x01Fiscal Year':''}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Sales Person',
-		'sort_by': '`tabTarget Detail`.`target_amount`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Person',
+		'sort_by': u'`tabTarget Detail`.`target_amount`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, sales_persons_target_variance_item_group_wise
 	{
 		'doctype': 'Search Criteria',
-		'name': 'sales_persons_target_variance_item_group_wise'
+		'name': u'sales_persons_target_variance_item_group_wise'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js
index e1bd1d3..4879183 100755
--- a/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js
+++ b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js
@@ -40,7 +40,7 @@
 
   date_fld = 'transaction_date';
   if(based_on == 'Sales Invoice') {
-    based_on = 'Receivable Voucher';
+    based_on = 'Sales Invoice';
     date_fld = 'voucher_date';
   }
 
diff --git a/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py
index 83c61f4..7b1d6b9 100755
--- a/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py
+++ b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py
@@ -15,7 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 if filter_values.get('based_on') == 'Sales Invoice':
-  based_on_dt = 'Receivable Voucher'
+  based_on_dt = 'Sales Invoice'
 else:
   based_on_dt = filter_values.get('based_on')
 
diff --git a/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt
index 2e53d6f..2ca30f7 100755
--- a/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt
+++ b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-06-08 11:00:34',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2011-02-24 17:35:32',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Sales Person\x01ID',
-		'criteria_name': 'Sales Personwise Transaction Summary',
-		'doc_type': 'Sales Person',
+		'columns': u'Sales Person\x01ID',
+		'criteria_name': u'Sales Personwise Transaction Summary',
+		'doc_type': u'Sales Person',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Person\x01Saved':1,'Sales Person\x01Submitted':1,'Sales Person\x01Country':'','Sales Person\x01State':''}",
-		'module': 'Selling',
+		'filters': u"{'Sales Person\x01Saved':1,'Sales Person\x01Submitted':1,'Sales Person\x01Country':'','Sales Person\x01State':''}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabSales Person`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabSales Person`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, sales_personwise_transaction_summary
 	{
 		'doctype': 'Search Criteria',
-		'name': 'sales_personwise_transaction_summary'
+		'name': u'sales_personwise_transaction_summary'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/__init__.py b/erpnext/selling/search_criteria/serial_no_amc_expiring_this_month/__init__.py
similarity index 100%
rename from erpnext/home/search_criteria/serial_no_amc_expiring_this_month/__init__.py
rename to erpnext/selling/search_criteria/serial_no_amc_expiring_this_month/__init__.py
diff --git a/erpnext/selling/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt b/erpnext/selling/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
new file mode 100644
index 0000000..1f30322
--- /dev/null
+++ b/erpnext/selling/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
@@ -0,0 +1,34 @@
+# Search Criteria, serial_no-amc_expiring_this_month
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-04-03 12:49:52',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'add_cond': u'`tab Serial No`.month(amc_expiry_date)=month(now()) \n`tab Serial No`.year(amc_expiry_date)=year(now())',
+		'columns': u'Serial No\x01ID,Serial No\x01Status,Serial No\x01AMC Expiry Date,Serial No\x01Customer Name',
+		'criteria_name': u'Serial No-AMC expiring this month',
+		'doc_type': u'Serial No',
+		'doctype': 'Search Criteria',
+		'filters': u"{'Serial No\x01Saved':1,'Serial No\x01Submitted':1,'Serial No\x01Status':'','Serial No\x01Warranty Status':''}",
+		'module': u'Selling',
+		'name': '__common__',
+		'page_len': 50,
+		'sort_by': u'`tabSerial No`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
+	},
+
+	# Search Criteria, serial_no-amc_expiring_this_month
+	{
+		'doctype': 'Search Criteria',
+		'name': u'serial_no-amc_expiring_this_month'
+	}
+]
diff --git a/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py b/erpnext/selling/search_criteria/serial_no_warranty_expiring_this_month/__init__.py
similarity index 100%
rename from erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py
rename to erpnext/selling/search_criteria/serial_no_warranty_expiring_this_month/__init__.py
diff --git a/erpnext/selling/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt b/erpnext/selling/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
new file mode 100644
index 0000000..63c3e74
--- /dev/null
+++ b/erpnext/selling/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
@@ -0,0 +1,34 @@
+# Search Criteria, serial_no-warranty_expiring_this_month
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-04-03 12:49:52',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'add_cond': u"`tab Serial No`.docstatus!=2\n`tab Serial No`.maintenance_status='Under Warranty'\n`tab Serial No`.status!='Scrapped'\n`tab Serial No`.status!='Not in Use'\n`tab Serial No`.month(ifnull(warranty_expiry_date,0)) = month(now()) \n`tab Serial No`.yearmonth(ifnull(warranty_expiry_date,0)) = year(now())",
+		'columns': u'Serial No\x01ID,Serial No\x01Status,Serial No\x01Warranty Expiry Date,Serial No\x01Customer Name',
+		'criteria_name': u'Serial No-Warranty expiring this month',
+		'doc_type': u'Serial No',
+		'doctype': 'Search Criteria',
+		'filters': u"{'Serial No\x01Saved':1,'Serial No\x01Submitted':1,'Serial No\x01Status':'Issued','Serial No\x01Maintenance Status':''}",
+		'module': u'Selling',
+		'name': '__common__',
+		'page_len': 50,
+		'sort_by': u'`tabSerial No`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
+	},
+
+	# Search Criteria, serial_no-warranty_expiring_this_month
+	{
+		'doctype': 'Search Criteria',
+		'name': u'serial_no-warranty_expiring_this_month'
+	}
+]
diff --git a/erpnext/selling/search_criteria/target_variance_report/target_variance_report.js b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.js
index 155b98d..cc8e03e 100644
--- a/erpnext/selling/search_criteria/target_variance_report/target_variance_report.js
+++ b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.js
@@ -21,7 +21,7 @@
   this.add_filter({fieldname:'company', label:'Company', fieldtype:'Link', options:'Company',report_default:sys_defaults.company, ignore : 1, parent:'Target Detail'});
   this.add_filter({fieldname:'period', label:'Period', fieldtype:'Select', options:'Monthly'+NEWLINE+'Quarterly'+NEWLINE+'Half Yearly'+NEWLINE+'Annual',report_default:'Quarterly',ignore : 1, parent:'Target Detail'});
   this.add_filter({fieldname:'group_by', label:'Group By', fieldtype:'Select', options:NEWLINE+'Item Group',ignore : 1, parent:'Target Detail'});
-  this.add_filter({fieldname:'under', label:'Under',fieldtype:'Select', options:'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Receivable Voucher',report_default:'Sales Order',ignore : 1, parent:'Target Detail'});
+  this.add_filter({fieldname:'under', label:'Under',fieldtype:'Select', options:'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Sales Invoice',report_default:'Sales Order',ignore : 1, parent:'Target Detail'});
 
 }
 
diff --git a/erpnext/selling/search_criteria/target_variance_report/target_variance_report.py b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.py
index 771fd28..aa67355 100644
--- a/erpnext/selling/search_criteria/target_variance_report/target_variance_report.py
+++ b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.py
@@ -108,14 +108,14 @@
     actual = 0
     if based_on == 'Cost Center' or based_on == 'Sales Partner':
       if group_by =='Item Group':
-        actual = sql("select sum(ifnull(t2.amount,0)) from `tab%s` t1, `tab%s Detail` t2, `tabItem` t3 where t2.parenttype = '%s' and t2.parent = t1.name and t1.%s = '%s' and t3.name = t2.item_code and t3.item_group = '%s' and t1.docstatus = 1 and t1.%s between '%s' and '%s'" % (under, (under == 'Receivable Voucher') and 'RV' or under, under, based_on_fn, r[0], r[1], date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
+        actual = sql("select sum(ifnull(t2.amount,0)) from `tab%s` t1, `tab%s Detail` t2, `tabItem` t3 where t2.parenttype = '%s' and t2.parent = t1.name and t1.%s = '%s' and t3.name = t2.item_code and t3.item_group = '%s' and t1.docstatus = 1 and t1.%s between '%s' and '%s'" % (under, (under == 'Sales Invoice') and 'RV' or under, under, based_on_fn, r[0], r[1], date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
         actual = flt(actual[0][0])
       else:
         actual = sql("select sum(ifnull(net_total,0)) from `tab%s` where %s = '%s' and docstatus = 1 and %s between '%s' and '%s' " % (under, based_on_fn, r[0], date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
         actual = flt(actual[0][0])
     elif based_on == 'Sales Person':
       if group_by =='Item Group':
-        actual = sql("select sum(ifnull(t2.amount,0) * ifnull(t3.allocated_percentage,0) / 100) from `tab%s` t1, `tab%s Detail` t2, `tabSales Team` t3, `tabItem` t4 where t2.parent = t1.name and t3.parent = t1.name and t3.%s = '%s' and t4.name = t2.item_code and t4.item_group = '%s' and t1.docstatus != 2 and t1.docstatus = 1 and t1.%s between '%s' and '%s' "%(under, (under == 'Receivable Voucher') and 'RV' or under, based_on_fn, r[0], r[1], date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
+        actual = sql("select sum(ifnull(t2.amount,0) * ifnull(t3.allocated_percentage,0) / 100) from `tab%s` t1, `tab%s Detail` t2, `tabSales Team` t3, `tabItem` t4 where t2.parent = t1.name and t3.parent = t1.name and t3.%s = '%s' and t4.name = t2.item_code and t4.item_group = '%s' and t1.docstatus != 2 and t1.docstatus = 1 and t1.%s between '%s' and '%s' "%(under, (under == 'Sales Invoice') and 'RV' or under, based_on_fn, r[0], r[1], date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
         actual = flt(actual[0][0])
       else:
         actual = sql("select sum(ifnull(t2.allocated_amount,0)) from `tab%s` t1, `tabSales Team` t2 where t2.%s = '%s' and t2.parenttype='%s' and t1.docstatus != 2 and t2.parent = t1.name and t1.%s between '%s' and '%s'"%(under, based_on_fn, r[0], under, date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
diff --git a/erpnext/selling/search_criteria/target_variance_report/target_variance_report.txt b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.txt
index 7ffe1f3..06ed049 100644
--- a/erpnext/selling/search_criteria/target_variance_report/target_variance_report.txt
+++ b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:32',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-06-23 12:27:37',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Sales Person\x01ID,Sales Person\x01Owner,Sales Person\x01Sales Person,Sales Person\x01Country,Sales Person\x01State,Target Detail\x01Item Group,Target Detail\x01Fiscal Year,Target Detail\x01Target  Amount',
-		'criteria_name': 'Target Variance Report',
+		'columns': u'Sales Person\x01ID,Sales Person\x01Owner,Sales Person\x01Sales Person,Sales Person\x01Country,Sales Person\x01State,Target Detail\x01Item Group,Target Detail\x01Fiscal Year,Target Detail\x01Target  Amount',
+		'criteria_name': u'Target Variance Report',
 		'disabled': 0,
-		'doc_type': 'Target Detail',
+		'doc_type': u'Target Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Person\x01Saved':1,'Sales Person\x01Submitted':1,'Sales Person\x01Country':'','Sales Person\x01State':'','Target Detail\x01Fiscal Year':''}",
-		'module': 'Selling',
+		'filters': u"{'Sales Person\x01Saved':1,'Sales Person\x01Submitted':1,'Sales Person\x01Country':'','Sales Person\x01State':'','Target Detail\x01Fiscal Year':''}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Sales Person',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Person',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, target_variance_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'target_variance_report'
+		'name': u'target_variance_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.js b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.js
index 1afb7b1..d7dcf70 100644
--- a/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.js
+++ b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.js
@@ -35,7 +35,7 @@
   territory = this.filter_fields_dict['Target Detail'+FILTER_SEP+'Territory'].get_value();
   target_on = this.filter_fields_dict['Target Detail'+FILTER_SEP+'Target On'].get_value();   
   under = this.filter_fields_dict['Target Detail'+FILTER_SEP+'Under'].get_value();   
-  if(under == 'Sales Invoice') under = 'Receivable Voucher';
+  if(under == 'Sales Invoice') under = 'Sales Invoice';
 
   if(target_on == 'Quantity'){
     q1 = 't1.target_qty AS "Target Quantity"';
@@ -49,7 +49,7 @@
     cond1 = 'ifnull(t1.target_amount,"")!=""';
     cond2 = 'ifnull(t5.target_amount,"")!=""';
   }
-  if(under =='Receivable Voucher')
+  if(under =='Sales Invoice')
     tab = 'RV';
   else
     tab = under;
diff --git a/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py
index eacb606..85eb528 100644
--- a/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py
+++ b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py
@@ -25,7 +25,7 @@
 fiscal_year = filter_values.get('fiscal_year')
 period = filter_values.get('period')
 under = filter_values.get('under')
-if under == 'Sales Invoice': under = 'Receivable Voucher'
+if under == 'Sales Invoice': under = 'Sales Invoice'
 territory = filter_values.get('territory')
 target_on = filter_values.get('target_on')
 
@@ -124,13 +124,13 @@
     #----------------------------------------------------------    
     if target_on == "Quantity":
 
-      actual = sql("select sum(ifnull(t2.qty,0)) from `tab%s` t1, `tab%s Detail` t2 where t2.parenttype = '%s' and t2.parent = t1.name and t1.%s = '%s' and t1.docstatus = 1 and t2.item_group = '%s' and t1.%s between '%s' and '%s'" % (under, (under == 'Receivable Voucher') and 'RV' or under, under, based_on_fn, territory, r[0],date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
+      actual = sql("select sum(ifnull(t2.qty,0)) from `tab%s` t1, `tab%s Detail` t2 where t2.parenttype = '%s' and t2.parent = t1.name and t1.%s = '%s' and t1.docstatus = 1 and t2.item_group = '%s' and t1.%s between '%s' and '%s'" % (under, (under == 'Sales Invoice') and 'RV' or under, under, based_on_fn, territory, r[0],date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
       
     
     #----------------------------------------------------------  
     if target_on == "Amount":
 
-      actual = sql("select sum(ifnull(t2.amount,0)) from `tab%s` t1, `tab%s Detail` t2 where t2.parenttype = '%s' and t2.parent = t1.name and t1.%s = '%s' and t1.docstatus = 1 and t2.item_group = '%s' and t1.%s between '%s' and '%s'" % (under, (under == 'Receivable Voucher') and 'RV' or under, under, based_on_fn, territory, r[0],date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
+      actual = sql("select sum(ifnull(t2.amount,0)) from `tab%s` t1, `tab%s Detail` t2 where t2.parenttype = '%s' and t2.parent = t1.name and t1.%s = '%s' and t1.docstatus = 1 and t2.item_group = '%s' and t1.%s between '%s' and '%s'" % (under, (under == 'Sales Invoice') and 'RV' or under, under, based_on_fn, territory, r[0],date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
 
     #----------------------------------------------------------
 
diff --git a/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt
index 827230a..69bb310 100644
--- a/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt
+++ b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:21',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-11-25 13:18:22',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': 'Territories Target Variance (Item Group wise)',
-		'doc_type': 'Target Detail',
+		'criteria_name': u'Territories Target Variance (Item Group wise)',
+		'doc_type': u'Target Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Person\x01Country':'','Sales Person\x01State':'','Target Detail\x01Fiscal Year':''}",
-		'module': 'Selling',
+		'filters': u"{'Sales Person\x01Country':'','Sales Person\x01State':'','Target Detail\x01Fiscal Year':''}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Sales Person',
-		'sort_by': '`tabTarget Detail`.`target_amount`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Person',
+		'sort_by': u'`tabTarget Detail`.`target_amount`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, territories_target_variance_item_group_wise
 	{
 		'doctype': 'Search Criteria',
-		'name': 'territories_target_variance_item_group_wise'
+		'name': u'territories_target_variance_item_group_wise'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/territory_item_group_wise_gp/__init__.py b/erpnext/selling/search_criteria/territory_item_group_wise_gp/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/selling/search_criteria/territory_item_group_wise_gp/__init__.py
+++ /dev/null
diff --git a/erpnext/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.py b/erpnext/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.py
deleted file mode 100644
index cf1df24..0000000
--- a/erpnext/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.py
+++ /dev/null
@@ -1,123 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Add Columns
-# ------------
-based_on = filter_values.get('based_on')
-
-columns = [[based_on,'Data','150px',''],
-           ['Total Qty','Currency','150px',''],
-           ['Revenue','Currency','150px',''],
-           ['Valuation Amount','Currency','150px',''],
-           ['Gross Profit (%)','Currrency','150px',''],
-           ['Gross Profit','Currency','150px','']]           
-
-for c in columns:
-  colnames.append(c[0])
-  coltypes.append(c[1])
-  colwidths.append(c[2])
-  coloptions.append(c[3])
-  col_idx[c[0]] = len(colnames)-1
-
-
-
-def make_child_lst(based_on,name):
-  rg = sql("select lft, rgt from `tab%s` where name = '%s'"%(based_on,name))
-  ch_name = sql("select name from `tab%s` where lft between %d and %d"%(based_on,int(rg[0][0]),int(rg[0][1])))
-  chl ='('
-  flag = 1
-  for c in ch_name:
-    if flag == 1:
-     chl += "'%s'"%c[0]
-     flag = 2
-    else:
-      chl +=",'%s'"%c[0]
-
-  chl +=")"
-  return chl
-
-
-
-for r in res:
-
-  qty, rate, amt, tot_val_rate, val_amount = 0, 0, 0, 0,0
-  cn = make_child_lst(based_on,r[0].strip())
-
-
-
-  if based_on == 'Item Group':
-  
-    dn = sql("select name from `tabItem` where item_group in %s"%(cn))
-    for n in dn:
-      
-      dt = sql("select sum(qty),sum(amount) from `tabDelivery Note Detail` where item_code ='%s' and docstatus = 1"%n[0])  
-          
-      qty += dt[0][0] and dt[0][0] or 0
-      amt += dt[0][1] and dt[0][1] or 0  
-      prt = sql("select distinct t1.name from `tabDelivery Note` t1, `tabDelivery Note Detail` t2 where t1.name = t2.parent and t2.item_code = '%s' and t1.docstatus = 1 and t2.docstatus =1 order by t1.name"%n[0])
-      for p in prt:
-        d1 = sql("select qty from `tabDelivery Note Detail` where parent = '%s' and parenttype ='Delivery Note' and docstatus =1 and item_code = '%s'"%(p[0],n[0]))
-        for t in d1:
-          tot_val_rate = 0
-          packing_list_items = sql("select item_code, warehouse, qty from `tabDelivery Note Packing Detail` where parent = '%s' and parent_item = '%s' and docstatus = 1 order by item_code, warehouse, qty"%(p[0],n[0]))
-                           
-          for d in packing_list_items:
-            if d[1]:
-              val_rate = sql("select valuation_rate from `tabStock Ledger Entry` where item_code = '%s' and warehouse = '%s' and voucher_type = 'Delivery Note' and voucher_no = '%s' and is_cancelled = 'No'"%(d[0], d[1], p[0]))
-              
-              val_rate = val_rate and val_rate[0][0] or 0
-              
-              tot_val_rate += t[0] and (flt(val_rate) * flt(d[2]) / flt(t[0])) or 0
-          val_amount += flt(tot_val_rate) * flt(t[0])  
-  elif based_on == 'Territory':
-    
-
-    dn = sql("select name from `tabDelivery Note` where territory in %s and docstatus =1 order by name"%(cn))
-
-    for n in dn:
-
-      dt = sql("select sum(qty), sum(amount) from `tabDelivery Note Detail` where parent = '%s' and docstatus = 1"%n[0])
-      qty += dt[0][0] and dt[0][0] or 0
-      amt += dt[0][1] and dt[0][1] or 0
-
-      d1 = sql("select item_code,qty from `tabDelivery Note Detail` where parent = '%s' and parenttype ='Delivery Note' and docstatus =1"%n[0])
-
-      for t in d1:
-        tot_val_rate = 0
-        packing_list_items = sql("select item_code, warehouse, qty from `tabDelivery Note Packing Detail` where parent = '%s' and parent_item = '%s' and docstatus = 1 order by item_code, warehouse,qty"%(n[0],t[0]))
-       
-        for d in packing_list_items:
-          if d[1]:
-            
-            val_rate = sql("select valuation_rate from `tabStock Ledger Entry` where item_code = '%s' and warehouse = '%s' and voucher_type = 'Delivery Note' and voucher_no = '%s' and is_cancelled = 'No'"%(d[0], d[1], n[0]))
-            val_rate = val_rate and val_rate[0][0] or 0
-            
-            tot_val_rate += t[1] and (flt(val_rate) * flt(d[2]) / flt(t[1])) or 0
-        val_amount += flt(tot_val_rate) * flt(t[1])
-  r.append(fmt_money(qty))
-
-  r.append(fmt_money(amt))
-  gp = flt(r[col_idx['Revenue']]) - flt(val_amount)
-  
-  if val_amount: gp_percent = gp * 100 / flt(val_amount)
-  else: gp_percent = gp
-  gp_percent = '%0.2f'%gp_percent
-
-      
-
-  r.append(fmt_money(val_amount))
-  r.append(fmt_money(gp_percent))
-  r.append(fmt_money(gp))
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.txt b/erpnext/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.txt
deleted file mode 100644
index ff29d1d..0000000
--- a/erpnext/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-[
-	{
-		'add_col': None,
-		'add_cond': None,
-		'add_tab': None,
-		'columns': None,
-		'creation': '2010-12-14 17:52:48',
-		'criteria_name': 'Territory, Item Group wise GP',
-		'custom_query': '',
-		'description': None,
-		'dis_filters': None,
-		'disabled': None,
-		'doc_type': 'Delivery Note',
-		'docstatus': 0,
-		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Status':'','Delivery Note\x01Fiscal Year':''}",
-		'graph_series': None,
-		'graph_values': None,
-		'group_by': None,
-		'idx': None,
-		'modified': '2011-05-09 14:40:26',
-		'modified_by': 'Administrator',
-		'module': 'CRM',
-		'name': 'territory_item_group_wise_gp',
-		'owner': 'harshada@webnotestech.com',
-		'page_len': 50,
-		'parent': None,
-		'parent_doc_type': None,
-		'parentfield': None,
-		'parenttype': None,
-		'report_script': '',
-		'server_script': None,
-		'sort_by': None,
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.js b/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.js
index 2d725d2..aabd4e1 100644
--- a/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.js
+++ b/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.js
@@ -15,7 +15,7 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 report.customize_filters = function() {
-  this.add_filter({fieldname:'based_on', label:'Based On', fieldtype:'Select', options:'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Receivable Voucher',report_default:'Sales Order',ignore : 1, parent:'Territory'});
+  this.add_filter({fieldname:'based_on', label:'Based On', fieldtype:'Select', options:'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Sales Invoice',report_default:'Sales Order',ignore : 1, parent:'Territory'});
   this.add_filter({fieldname:'fiscal_year', label:'Fiscal Year', fieldtype:'Link', options:'Fiscal Year', report_default:sys_defaults.fiscal_year, ignore : 1, parent:'Territory'});
   this.add_filter({fieldname:'company', label:'Company', fieldtype:'Link', options:'Company',report_default:sys_defaults.company, ignore : 1, parent:'Territory'});
   this.add_filter({fieldname:'period', label:'Period', fieldtype:'Select', options:'Monthly'+NEWLINE+'Quarterly'+NEWLINE+'Half Yearly'+NEWLINE+'Annual',report_default:'Quarterly',ignore : 1, parent:'Territory'});
diff --git a/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt b/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt
index 9344df2..b895894 100644
--- a/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt
+++ b/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-03-30 16:48:42',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Territory\x01ID',
-		'criteria_name': 'Territory Sales - Variance Report',
-		'doc_type': 'Territory',
+		'columns': u'Territory\x01ID',
+		'criteria_name': u'Territory Sales - Variance Report',
+		'doc_type': u'Territory',
 		'doctype': 'Search Criteria',
-		'filters': "{'Territory\x01State':'','Territory\x01Based On':'Sales Order','Territory\x01Fiscal Year':'2009-2010','Territory\x01Company':'Alpha Company','Territory\x01Period':'Quarterly'}",
-		'module': 'Selling',
+		'filters': u"{'Territory\x01State':'','Territory\x01Based On':'Sales Order','Territory\x01Fiscal Year':'2009-2010','Territory\x01Company':'Alpha Company','Territory\x01Period':'Quarterly'}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': 'ID',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'ID',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, territory_sales_-_variance_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'territory_sales_-_variance_report'
+		'name': u'territory_sales_-_variance_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.py b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.py
index fb6dee1..fde7237 100644
--- a/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.py
+++ b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.py
@@ -25,7 +25,7 @@
 fiscal_year = filter_values.get('fiscal_year')
 period = filter_values.get('period')
 under = filter_values.get('under')
-if under == 'Sales Invoice': under = 'Receivable Voucher'
+if under == 'Sales Invoice': under = 'Sales Invoice'
 based_on = filter_values.get('based_on')
 target_on = filter_values.get('target_on')
 
@@ -201,10 +201,10 @@
     #----------------------------------------------------------    
     if target_on == "Quantity":
       if based_on == "Territory":
-        actual = sql("select sum(ifnull(t2.qty,0)) from `tab%s` t1, `tab%s Detail` t2 where t2.parenttype = '%s' and t2.parent = t1.name and t1.%s in %s and t1.docstatus = 1 and t1.%s between '%s' and '%s'" % (under, (under == 'Receivable Voucher') and 'RV' or under, under, based_on_fn, ch, date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
+        actual = sql("select sum(ifnull(t2.qty,0)) from `tab%s` t1, `tab%s Detail` t2 where t2.parenttype = '%s' and t2.parent = t1.name and t1.%s in %s and t1.docstatus = 1 and t1.%s between '%s' and '%s'" % (under, (under == 'Sales Invoice') and 'RV' or under, under, based_on_fn, ch, date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
       
       elif based_on == 'Sales Person':
-        actual = sql("select sum(ifnull(t2.qty,0) * ifnull(t3.allocated_percentage,0) / 100) from `tab%s` t1, `tab%s Detail` t2, `tabSales Team` t3 where t2.parent = t1.name and t3.parent = t1.name and t3.%s in %s and t1.docstatus != 2 and t1.docstatus = 1 and t1.%s between '%s' and '%s' "%(under, (under == 'Receivable Voucher') and 'RV' or under, based_on_fn, ch, date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
+        actual = sql("select sum(ifnull(t2.qty,0) * ifnull(t3.allocated_percentage,0) / 100) from `tab%s` t1, `tab%s Detail` t2, `tabSales Team` t3 where t2.parent = t1.name and t3.parent = t1.name and t3.%s in %s and t1.docstatus != 2 and t1.docstatus = 1 and t1.%s between '%s' and '%s' "%(under, (under == 'Sales Invoice') and 'RV' or under, based_on_fn, ch, date_fn, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
     
     #----------------------------------------------------------  
     if target_on == "Amount":
diff --git a/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt
index 6d679c3..510d81b 100644
--- a/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt
+++ b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:21',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-11-30 15:15:34',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Sales Person\x01ID,Sales Person\x01Owner,Sales Person\x01Sales Person,Sales Person\x01Country,Sales Person\x01State,Sales Person\x01lft,Sales Person\x01rgt,Target Detail\x01Item Group,Target Detail\x01Fiscal Year,Target Detail\x01Target  Amount',
-		'criteria_name': 'Total Target Variance Report',
-		'doc_type': 'Target Detail',
+		'columns': u'Sales Person\x01ID,Sales Person\x01Owner,Sales Person\x01Sales Person,Sales Person\x01Country,Sales Person\x01State,Sales Person\x01lft,Sales Person\x01rgt,Target Detail\x01Item Group,Target Detail\x01Fiscal Year,Target Detail\x01Target  Amount',
+		'criteria_name': u'Total Target Variance Report',
+		'doc_type': u'Target Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Person\x01Saved':1,'Sales Person\x01Submitted':1,'Sales Person\x01Country':'','Sales Person\x01State':'','Target Detail\x01Fiscal Year':''}",
-		'module': 'Selling',
+		'filters': u"{'Sales Person\x01Saved':1,'Sales Person\x01Submitted':1,'Sales Person\x01Country':'','Sales Person\x01State':'','Target Detail\x01Fiscal Year':''}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Sales Person',
-		'sort_by': '`tabSales Person`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Person',
+		'sort_by': u'`tabSales Person`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, total_target_variance_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'total_target_variance_report'
+		'name': u'total_target_variance_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/search_criteria/variance_report/variance_report.js b/erpnext/selling/search_criteria/variance_report/variance_report.js
index e4011e5..b5fe3fb 100644
--- a/erpnext/selling/search_criteria/variance_report/variance_report.js
+++ b/erpnext/selling/search_criteria/variance_report/variance_report.js
@@ -22,7 +22,7 @@
   this.add_filter({fieldname:'period', label:'Period', fieldtype:'Select', options:'Monthly'+NEWLINE+'Quarterly'+NEWLINE+'Half Yearly'+NEWLINE+'Annual',report_default:'Quarterly',ignore : 1, parent:'Target Detail'});
 //  this.add_filter({fieldname:'item_group', label:'Item Group', fieldtype:'Link', options:'Item Group', ignore : 1, parent:'Target Detail'});
   this.add_filter({fieldname:'group_by', label:'Group By', fieldtype:'Select', options:NEWLINE+'Item Group',ignore : 1, parent:'Target Detail'});
-  this.add_filter({fieldname:'under', label:'Under',fieldtype:'Select', options:'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Receivable Voucher',report_default:'Sales Order',ignore : 1, parent:'Target Detail'});
+  this.add_filter({fieldname:'under', label:'Under',fieldtype:'Select', options:'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Sales Invoice',report_default:'Sales Order',ignore : 1, parent:'Target Detail'});
 }  
 
 //this.mytabs.items['Select Columns'].hide()
diff --git a/erpnext/selling/search_criteria/variance_report/variance_report.py b/erpnext/selling/search_criteria/variance_report/variance_report.py
index 6948eac..f200f11 100644
--- a/erpnext/selling/search_criteria/variance_report/variance_report.py
+++ b/erpnext/selling/search_criteria/variance_report/variance_report.py
@@ -58,7 +58,7 @@
   based = 'sales_partner'
 
 
-if under == 'Receivable Voucher':
+if under == 'Sales Invoice':
   under_detail = 'RV'
   dt = 'posting_date'
 else:
diff --git a/erpnext/selling/search_criteria/variance_report/variance_report.txt b/erpnext/selling/search_criteria/variance_report/variance_report.txt
index 9e3cbb3..f45df2f 100644
--- a/erpnext/selling/search_criteria/variance_report/variance_report.txt
+++ b/erpnext/selling/search_criteria/variance_report/variance_report.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-05-05 11:13:12',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': 'Variance Report',
-		'doc_type': 'Target Detail',
+		'criteria_name': u'Variance Report',
+		'doc_type': u'Target Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Territory\x01State':'','Target Detail\x01Fiscal Year':'2009-2010','Target Detail\x01Based On':'Territory','Target Detail\x01Company':'Alpha Company','Target Detail\x01Period':'Quarterly','Target Detail\x01Under':'Sales Order'}",
-		'module': 'Selling',
+		'filters': u"{'Territory\x01State':'','Target Detail\x01Fiscal Year':'2009-2010','Target Detail\x01Based On':'Territory','Target Detail\x01Company':'Alpha Company','Target Detail\x01Period':'Quarterly','Target Detail\x01Under':'Sales Order'}",
+		'module': u'Selling',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Territory',
-		'sort_by': 'ID',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Territory',
+		'sort_by': u'ID',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, variance_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'variance_report'
+		'name': u'variance_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/Module Def/Setup/Setup.txt b/erpnext/setup/Module Def/Setup/Setup.txt
deleted file mode 100644
index 5a0dcf7..0000000
--- a/erpnext/setup/Module Def/Setup/Setup.txt
+++ /dev/null
@@ -1,652 +0,0 @@
-[
-	{
-		'_last_update': None,
-		'creation': '2010-11-30 22:43:08',
-		'disabled': 'No',
-		'docstatus': 0,
-		'doctype': 'Module Def',
-		'doctype_list': None,
-		'file_list': None,
-		'idx': None,
-		'is_hidden': 'No',
-		'last_updated_date': '2011-03-21 12:13:39',
-		'modified': '2010-09-25 00:00:00',
-		'modified_by': 'Administrator',
-		'module_desc': None,
-		'module_icon': 'wired.png',
-		'module_label': 'Setup',
-		'module_name': 'Setup',
-		'module_page': 'Setup',
-		'module_seq': 1,
-		'name': 'Setup',
-		'owner': 'Administrator',
-		'parent': None,
-		'parentfield': None,
-		'parenttype': None,
-		'trash_reason': None,
-		'widget_code': None
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': 'All important setup items in one place',
-		'display_name': 'Setup Wizard',
-		'doc_name': 'Setup Wizard',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'lightbulb.gif',
-		'idx': 1,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00221',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': 'Personalize settings like company banner, date format, print format header etc.',
-		'display_name': 'Personalize',
-		'doc_name': 'Personalize Page',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'star.gif',
-		'idx': 2,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00222',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': 'Enable / Disable users. Set user roles.',
-		'display_name': 'Manage Users',
-		'doc_name': 'Manage Users',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'group.gif',
-		'idx': 3,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00223',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': 'Set global default values and account settings',
-		'display_name': 'Setup Defaults',
-		'doc_name': 'Manage Account',
-		'doc_type': 'Single DocType',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'folder.gif',
-		'idx': 4,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00224',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': 'General Masters',
-		'display_name': 'Setup Masters',
-		'doc_name': 'Setup Masters',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'wrench.gif',
-		'idx': 5,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00225',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': None,
-		'display_name': 'Sales Browser',
-		'doc_name': 'Sales Browser',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 6,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00226',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': None,
-		'doc_name': None,
-		'doc_type': 'Separator',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 7,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': '000003107',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': "Import data like Customers, Items etc in 'CSV' format",
-		'display_name': 'Import Data',
-		'doc_name': 'Import Data',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'disk.gif',
-		'idx': 8,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00228',
-		'owner': 'nabin@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': 'Set series prefix for transactions',
-		'display_name': 'Setup Series',
-		'doc_name': 'Naming Series',
-		'doc_type': 'Single DocType',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': 'paperclip.gif',
-		'idx': 9,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00229',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': 'Set approval rights for transactions based on grand total and discount.',
-		'display_name': 'Authorization Rule',
-		'doc_name': 'Authorization Rule',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': 'transaction\nbased_on\nmaster_name\nsystem_user\nsystem_role\napproving_role\napproving_user\nvalue',
-		'hide': None,
-		'icon': 'accept.gif',
-		'idx': 10,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00230',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': 'Add fields in transactions, masters...',
-		'display_name': 'Custom Field',
-		'doc_name': 'Custom Field',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': 'dt\nlabel\nfieldtype\noptions',
-		'hide': None,
-		'icon': 'paperclip.gif',
-		'idx': 11,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00231',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:43:08',
-		'description': 'Contains records that you have trashed.',
-		'display_name': 'Trash',
-		'doc_name': 'Trash',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 12,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': 'MDI00232',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Price List',
-		'doc_name': 'Price List',
-		'doc_type': 'Setup Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 13,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': '000003108',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Warehouse Type',
-		'doc_name': 'Warehouse Type',
-		'doc_type': 'Setup Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 14,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': '000003109',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Warehouse',
-		'doc_name': 'Warehouse',
-		'doc_type': 'Setup Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 15,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': '000003110',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'UOM',
-		'doc_name': 'UOM',
-		'doc_type': 'Setup Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 16,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': '000003111',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Term',
-		'doc_name': 'Term',
-		'doc_type': 'Setup Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 17,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': '000003112',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Taxes and Charges',
-		'doc_name': 'Other Charges',
-		'doc_type': 'Setup Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 18,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': '000003113',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Business Letter Type',
-		'doc_name': 'Business Letter Type',
-		'doc_type': 'Setup Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 19,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': '000003114',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Business Letter Template',
-		'doc_name': 'Business Letter Template',
-		'doc_type': 'Setup Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 20,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': '000003115',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:47',
-		'description': None,
-		'display_name': 'Mode of Payment',
-		'doc_name': 'Mode of Payment',
-		'doc_type': 'Setup Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 21,
-		'modified': '2011-03-24 15:04:47',
-		'modified_by': 'Administrator',
-		'name': '000003116',
-		'owner': 'harshada@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 1,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00042',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Administrator'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 2,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00043',
-		'owner': 'Administrator',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'System Manager'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 3,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00044',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Sales User'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 4,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00045',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Sales Master Manager'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 5,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00046',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Sales Master Manager'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 6,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00047',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Purchase User'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 7,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00048',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Purchase Master Manager'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 8,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00049',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Purchase Manager'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 9,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00050',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Material User'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 10,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00051',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Material Master Manager'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 11,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00052',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Material Manager'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 12,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00053',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Accounts User'
-	},
-	{
-		'creation': '2010-11-30 22:43:08',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 13,
-		'modified': '2010-11-30 22:43:08',
-		'modified_by': 'Administrator',
-		'name': 'MDR00054',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Setup',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Accounts Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/Role/System Manager/System Manager.txt b/erpnext/setup/Role/System Manager/System Manager.txt
deleted file mode 100644
index 0918bc4..0000000
--- a/erpnext/setup/Role/System Manager/System Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, System Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2009-07-07 17:00:24',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Setup',
-		'name': '__common__',
-		'role_name': 'System Manager'
-	},
-
-	# Role, System Manager
-	{
-		'doctype': 'Role',
-		'name': 'System Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/__init__.py b/erpnext/setup/__init__.py
index e69de29..dad1873 100644
--- a/erpnext/setup/__init__.py
+++ b/erpnext/setup/__init__.py
@@ -0,0 +1,3 @@
+install_docs = [
+	{'doctype':'Role', 'name': 'System Manager'}
+]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/authorization_control/authorization_control.py b/erpnext/setup/doctype/authorization_control/authorization_control.py
index ddfca53..d3c89a8 100644
--- a/erpnext/setup/doctype/authorization_control/authorization_control.py
+++ b/erpnext/setup/doctype/authorization_control/authorization_control.py
@@ -102,7 +102,7 @@
 		if based_on == 'Grand Total': auth_value = total
 		elif based_on == 'Customerwise Discount':
 			if doc_obj:
-				if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer
+				if doc_obj.doc.doctype == 'Sales Invoice': customer = doc_obj.doc.customer
 				else: customer = doc_obj.doc.customer_name
 				add_cond = " and master_name = '"+make_esc("'")(cstr(customer))+"'"
 		if based_on == 'Itemwise Discount':
@@ -116,8 +116,8 @@
 	# Check Approving Authority for transactions other than expense voucher and Appraisal
 	# -------------------------
 	def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''):
-		if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice'
-		elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice'
+		if doctype_name == 'Purchase Invoice': doctype_name = 'Purchase Invoice'
+		elif doctype_name == 'Sales Invoice': doctype_name = 'Sales Invoice'
 		av_dis = 0
 		if doc_obj:
 			ref_rate, basic_rate = 0, 0
@@ -192,7 +192,7 @@
 		rule ={}
 		
 		if doc_obj:
-			if doctype_name == 'Expense Voucher':
+			if doctype_name == 'Expense Claim':
 				rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company)
 			elif doctype_name == 'Appraisal':
 				rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1)				
diff --git a/erpnext/setup/doctype/authorization_control/authorization_control.txt b/erpnext/setup/doctype/authorization_control/authorization_control.txt
index ce07175..bf204ce 100644
--- a/erpnext/setup/doctype/authorization_control/authorization_control.txt
+++ b/erpnext/setup/doctype/authorization_control/authorization_control.txt
@@ -3,28 +3,28 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:52',
+		'creation': '2012-03-27 14:36:18',
 		'docstatus': 0,
-		'modified': '2010-12-16 23:57:05',
-		'modified_by': 'nabin@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:18',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'version': 216
 	},
 
 	# DocType, Authorization Control
 	{
 		'doctype': 'DocType',
-		'name': 'Authorization Control'
+		'name': u'Authorization Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/authorization_rule/authorization_rule.js b/erpnext/setup/doctype/authorization_rule/authorization_rule.js
index 02bd653..8878358 100644
--- a/erpnext/setup/doctype/authorization_rule/authorization_rule.js
+++ b/erpnext/setup/doctype/authorization_rule/authorization_rule.js
@@ -32,7 +32,7 @@
   if(doc.based_on == 'Not Applicable') hide_field('value');
   else unhide_field('value');
   
-  if(doc.transaction == 'Expense Voucher' || doc.transaction == 'Appraisal'){
+  if(doc.transaction == 'Expense Claim' || doc.transaction == 'Appraisal'){
     hide_field(['master_name','system_role', 'system_user']);
     unhide_field(['to_emp','to_designation']);
     if(doc.transaction == 'Appraisal') hide_field('value');
@@ -63,7 +63,7 @@
 }
 
 cur_frm.cscript.transaction = function(doc,cdt,cdn){
-  if(doc.transaction == 'Expense Voucher' || doc.transaction == 'Appraisal'){
+  if(doc.transaction == 'Expense Claim' || doc.transaction == 'Appraisal'){
     doc.master_name = doc.system_role = doc.system_user = '';
     refresh_many(['master_name','system_role', 'system_user']);
     hide_field(['master_name','system_role', 'system_user']);
@@ -80,7 +80,7 @@
     hide_field(['to_emp','to_designation']);
   }
   
-  if(doc.transaction == 'Expense Voucher') doc.based_on = 'Total Claimed Amount';
+  if(doc.transaction == 'Expense Claim') doc.based_on = 'Total Claimed Amount';
   if(doc.transaction == 'Appraisal') doc.based_on == 'Not Applicable';
 }
 
diff --git a/erpnext/setup/doctype/authorization_rule/authorization_rule.py b/erpnext/setup/doctype/authorization_rule/authorization_rule.py
index 2c4a0dc..81ca202 100644
--- a/erpnext/setup/doctype/authorization_rule/authorization_rule.py
+++ b/erpnext/setup/doctype/authorization_rule/authorization_rule.py
@@ -69,7 +69,7 @@
   # Validate Rule
   # --------------
   def validate_rule(self):
-    if not self.doc.transaction == 'Expense Voucher' and not self.doc.transaction == 'Appraisal':
+    if not self.doc.transaction == 'Expense Claim' and not self.doc.transaction == 'Appraisal':
       if not self.doc.approving_role and not self.doc.approving_user:
         msgprint("Please enter Approving Role or Approving User")
         raise Exception
@@ -95,8 +95,8 @@
       if self.doc.transaction == 'Appraisal' and self.doc.based_on != 'Not Applicable':
         msgprint("Based on is 'Not Applicable' while setting authorization rule for 'Appraisal'")
         raise Exception
-      if self.doc.transaction == 'Expense Voucher' and self.doc.based_on != 'Total Claimed Amount':
-        msgprint("Authorization rule should be based on 'Total Calimed Amount' while setting authorization rule for 'Expense Voucher'")
+      if self.doc.transaction == 'Expense Claim' and self.doc.based_on != 'Total Claimed Amount':
+        msgprint("Authorization rule should be based on 'Total Calimed Amount' while setting authorization rule for 'Expense Claim'")
         raise Exception
 
 
diff --git a/erpnext/setup/doctype/authorization_rule/authorization_rule.txt b/erpnext/setup/doctype/authorization_rule/authorization_rule.txt
index a436495..e358544 100644
--- a/erpnext/setup/doctype/authorization_rule/authorization_rule.txt
+++ b/erpnext/setup/doctype/authorization_rule/authorization_rule.txt
@@ -3,36 +3,36 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:52',
+		'creation': '2012-03-27 14:36:18',
 		'docstatus': 0,
-		'modified': '2010-12-02 18:06:28',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:18',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1308741898',
+		'_last_update': u'1308741898',
 		'allow_trash': 1,
-		'autoname': 'AR.####',
-		'colour': 'White:FFF',
+		'autoname': u'AR.####',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
+		'document_type': u'Master',
+		'module': u'Setup',
 		'name': '__common__',
-		'search_fields': 'transaction,based_on,system_user,system_role,approving_user,approving_role',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'transaction,based_on,system_user,system_role,approving_user,approving_role',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 58
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Authorization Rule',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Authorization Rule',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
@@ -40,187 +40,173 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Authorization Rule',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Authorization Rule',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocType, Authorization Rule
 	{
 		'doctype': 'DocType',
-		'name': 'Authorization Rule'
+		'name': u'Authorization Rule'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1
+		'doctype': u'DocPerm'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'reqd': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'transaction',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'label': 'Transaction',
-		'oldfieldname': 'transaction',
-		'oldfieldtype': 'Select',
-		'options': '\nDelivery Note\nPurchase Invoice\nPurchase Order\nPurchase Receipt\nQuotation\nSales Invoice\nSales Order\nStock Entry\nExpense Voucher\nAppraisal',
+		'doctype': u'DocField',
+		'fieldname': u'transaction',
+		'fieldtype': u'Select',
+		'label': u'Transaction',
+		'oldfieldname': u'transaction',
+		'oldfieldtype': u'Select',
+		'options': u'\nDelivery Note\nPurchase Invoice\nPurchase Order\nPurchase Receipt\nQuotation\nSales Invoice\nSales Order\nStock Entry\nExpense Claim\nAppraisal',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'based_on',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'Based On',
-		'oldfieldname': 'based_on',
-		'oldfieldtype': 'Select',
-		'options': '\nGrand Total\nAverage Discount\nCustomerwise Discount\nItemwise Discount\nTotal Claimed Amount\nNot Applicable',
+		'doctype': u'DocField',
+		'fieldname': u'based_on',
+		'fieldtype': u'Select',
+		'label': u'Based On',
+		'oldfieldname': u'based_on',
+		'oldfieldtype': u'Select',
+		'options': u'\nGrand Total\nAverage Discount\nCustomerwise Discount\nItemwise Discount\nTotal Claimed Amount\nNot Applicable',
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'master_name',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Customer / Item Name',
-		'oldfieldname': 'master_name',
-		'oldfieldtype': 'Link',
-		'trigger': 'Client'
+		'doctype': u'DocField',
+		'fieldname': u'master_name',
+		'fieldtype': u'Link',
+		'label': u'Customer / Item Name',
+		'oldfieldname': u'master_name',
+		'oldfieldtype': u'Link',
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'system_role',
-		'fieldtype': 'Link',
-		'idx': 5,
-		'label': 'Applicable To (Role)',
-		'oldfieldname': 'system_role',
-		'oldfieldtype': 'Link',
-		'options': 'Role'
+		'doctype': u'DocField',
+		'fieldname': u'system_role',
+		'fieldtype': u'Link',
+		'label': u'Applicable To (Role)',
+		'oldfieldname': u'system_role',
+		'oldfieldtype': u'Link',
+		'options': u'Role'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'system_user',
-		'fieldtype': 'Link',
-		'idx': 6,
-		'label': 'Applicable To (User)',
-		'oldfieldname': 'system_user',
-		'oldfieldtype': 'Link',
-		'options': 'Profile'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'system_user',
+		'fieldtype': u'Link',
+		'label': u'Applicable To (User)',
+		'oldfieldname': u'system_user',
+		'oldfieldtype': u'Link',
+		'options': u'Profile'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'This will be used for setting rule in HR module',
-		'doctype': 'DocField',
-		'fieldname': 'to_emp',
-		'fieldtype': 'Link',
-		'idx': 7,
-		'label': 'Applicable To (Employee)',
-		'oldfieldname': 'to_emp',
-		'oldfieldtype': 'Link',
-		'options': 'Employee',
+		'colour': u'White:FFF',
+		'description': u'This will be used for setting rule in HR module',
+		'doctype': u'DocField',
+		'fieldname': u'to_emp',
+		'fieldtype': u'Link',
+		'label': u'Applicable To (Employee)',
+		'oldfieldname': u'to_emp',
+		'oldfieldtype': u'Link',
+		'options': u'Employee',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'This will be used for setting rule in HR module',
-		'doctype': 'DocField',
-		'fieldname': 'to_designation',
-		'fieldtype': 'Link',
-		'idx': 8,
-		'label': 'Applicable To (Designation)',
-		'oldfieldname': 'to_designation',
-		'oldfieldtype': 'Link',
-		'options': 'Designation',
+		'colour': u'White:FFF',
+		'description': u'This will be used for setting rule in HR module',
+		'doctype': u'DocField',
+		'fieldname': u'to_designation',
+		'fieldtype': u'Link',
+		'label': u'Applicable To (Designation)',
+		'oldfieldname': u'to_designation',
+		'oldfieldtype': u'Link',
+		'options': u'Designation',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'approving_role',
-		'fieldtype': 'Link',
-		'idx': 9,
-		'label': 'Approving Role',
-		'oldfieldname': 'approving_role',
-		'oldfieldtype': 'Link',
-		'options': 'Role'
+		'doctype': u'DocField',
+		'fieldname': u'approving_role',
+		'fieldtype': u'Link',
+		'label': u'Approving Role',
+		'oldfieldname': u'approving_role',
+		'oldfieldtype': u'Link',
+		'options': u'Role'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'approving_user',
-		'fieldtype': 'Link',
-		'idx': 10,
-		'label': 'Approving User',
-		'oldfieldname': 'approving_user',
-		'oldfieldtype': 'Link',
-		'options': 'Profile'
+		'doctype': u'DocField',
+		'fieldname': u'approving_user',
+		'fieldtype': u'Link',
+		'label': u'Approving User',
+		'oldfieldname': u'approving_user',
+		'oldfieldtype': u'Link',
+		'options': u'Profile'
 	},
 
 	# DocField
 	{
-		'default': '0.00',
-		'doctype': 'DocField',
-		'fieldname': 'value',
-		'fieldtype': 'Currency',
-		'idx': 11,
-		'label': 'Above Value',
-		'oldfieldname': 'value',
-		'oldfieldtype': 'Currency'
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'value',
+		'fieldtype': u'Currency',
+		'label': u'Above Value',
+		'oldfieldname': u'value',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 12,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text'
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/brand/brand.txt b/erpnext/setup/doctype/brand/brand.txt
index ccf2ca6..97ab298 100644
--- a/erpnext/setup/doctype/brand/brand.txt
+++ b/erpnext/setup/doctype/brand/brand.txt
@@ -3,113 +3,60 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:53',
+		'creation': '2012-03-27 14:36:19',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:19',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:brand',
-		'colour': 'White:FFF',
+		'autoname': u'field:brand',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
+		'document_type': u'Master',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 5
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Brand',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Brand',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Brand',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Brand',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Brand
 	{
 		'doctype': 'DocType',
-		'name': 'Brand'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
+		'name': u'Brand'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Master Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
@@ -117,48 +64,92 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'Material Master Manager',
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'brand',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Brand Name',
-		'oldfieldname': 'brand',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Data',
+		'label': u'Brand Name',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
 		'permlevel': 0,
-		'width': '300px'
+		'width': u'300px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index 9756583..e0c12d8 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -241,14 +241,14 @@
 			#update value as blank for tabDefaultValue defkey=company
 			sql("update `tabDefaultValue` set defvalue = '' where defkey='company' and defvalue = %s", self.doc.name)
 			
-			#update value as blank for tabSingles Manage Account
-			sql("update `tabSingles` set value = '' where doctype='Manage Account' and field = 'default_company' and value = %s", self.doc.name)
+			#update value as blank for tabSingles Global Defaults
+			sql("update `tabSingles` set value = '' where doctype='Global Defaults' and field = 'default_company' and value = %s", self.doc.name)
 
 		
 	# on rename
 	# ---------
 	def on_rename(self,newdn,olddn):		
 		sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn))	
-		sql("update `tabSingles` set value = %s where doctype='Manage Account' and field = 'default_company' and value = %s", (newdn, olddn))	
+		sql("update `tabSingles` set value = %s where doctype='Global Defaults' and field = 'default_company' and value = %s", (newdn, olddn))	
 		if get_defaults('company') == olddn:
 			set_default('company', newdn)
diff --git a/erpnext/setup/doctype/company/company.txt b/erpnext/setup/doctype/company/company.txt
index 11ad19c..17bd61b 100644
--- a/erpnext/setup/doctype/company/company.txt
+++ b/erpnext/setup/doctype/company/company.txt
@@ -3,52 +3,52 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:55',
+		'creation': '2012-03-27 14:36:19',
 		'docstatus': 0,
-		'modified': '2011-12-14 15:12:28',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:19',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1323855292',
+		'_last_update': u'1323855292',
 		'allow_trash': 1,
-		'autoname': 'field:company_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:company_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
+		'document_type': u'Master',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 96
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Company',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Company',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Company',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Company',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Company
 	{
 		'doctype': 'DocType',
-		'name': 'Company'
+		'name': u'Company'
 	},
 
 	# DocPerm
@@ -56,9 +56,9 @@
 		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 0,
 		'write': 1
 	},
@@ -68,9 +68,9 @@
 		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 0,
 		'write': 1
 	},
@@ -78,285 +78,291 @@
 	# DocPerm
 	{
 		'cancel': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All'
+		'role': u'All'
 	},
 
 	# DocField
 	{
-		'description': 'Please Enter Company Name and Abbr and save the document. Once saved Accounting Settings will be populated automatically',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Details',
-		'oldfieldtype': 'Section Break',
+		'description': u'Please Enter Company Name and Abbr and save the document. Once saved Accounting Settings will be populated automatically',
+		'doctype': u'DocField',
+		'fieldname': u'details',
+		'fieldtype': u'Section Break',
+		'label': u'Details',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'company_name',
-		'fieldtype': 'Data',
-		'label': 'Company',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'company_name',
+		'fieldtype': u'Data',
+		'label': u'Company',
 		'no_copy': 0,
-		'oldfieldname': 'company_name',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'company_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.',
-		'doctype': 'DocField',
-		'fieldname': 'abbr',
-		'fieldtype': 'Data',
-		'label': 'Abbr',
+		'colour': u'White:FFF',
+		'description': u'Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.',
+		'doctype': u'DocField',
+		'fieldname': u'abbr',
+		'fieldtype': u'Data',
+		'label': u'Abbr',
 		'no_copy': 0,
-		'oldfieldname': 'abbr',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'abbr',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Default Settings',
-		'oldfieldtype': 'Section Break',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'default_settings',
+		'fieldtype': u'Section Break',
+		'label': u'Default Settings',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'default_currency',
-		'fieldtype': 'Select',
-		'label': 'Default Currency',
-		'options': 'link:Currency',
+		'doctype': u'DocField',
+		'fieldname': u'default_currency',
+		'fieldtype': u'Select',
+		'label': u'Default Currency',
+		'options': u'link:Currency',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'default_bank_account',
-		'fieldtype': 'Link',
-		'label': 'Default Bank Account',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'default_bank_account',
+		'fieldtype': u'Link',
+		'label': u'Default Bank Account',
 		'no_copy': 1,
-		'oldfieldname': 'default_bank_account',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'oldfieldname': u'default_bank_account',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'receivables_group',
-		'fieldtype': 'Link',
-		'label': 'Receivables Group',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'receivables_group',
+		'fieldtype': u'Link',
+		'label': u'Receivables Group',
 		'no_copy': 1,
-		'oldfieldname': 'receivables_group',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'oldfieldname': u'receivables_group',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'payables_group',
-		'fieldtype': 'Link',
-		'label': 'Payables Group',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'payables_group',
+		'fieldtype': u'Link',
+		'label': u'Payables Group',
 		'no_copy': 1,
-		'oldfieldname': 'payables_group',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'oldfieldname': u'payables_group',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'credit_days',
-		'fieldtype': 'Int',
-		'label': 'Credit Days',
-		'oldfieldname': 'credit_days',
-		'oldfieldtype': 'Int',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'credit_days',
+		'fieldtype': u'Int',
+		'label': u'Credit Days',
+		'oldfieldname': u'credit_days',
+		'oldfieldtype': u'Int',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'credit_limit',
-		'fieldtype': 'Currency',
-		'label': 'Credit Limit',
-		'oldfieldname': 'credit_limit',
-		'oldfieldtype': 'Currency',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'credit_limit',
+		'fieldtype': u'Currency',
+		'label': u'Credit Limit',
+		'oldfieldname': u'credit_limit',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'yearly_bgt_flag',
-		'fieldtype': 'Select',
-		'label': 'If Yearly Budget Exceeded',
-		'oldfieldname': 'yearly_bgt_flag',
-		'oldfieldtype': 'Select',
-		'options': '\nWarn\nIgnore\nStop',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'yearly_bgt_flag',
+		'fieldtype': u'Select',
+		'label': u'If Yearly Budget Exceeded',
+		'oldfieldname': u'yearly_bgt_flag',
+		'oldfieldtype': u'Select',
+		'options': u'\nWarn\nIgnore\nStop',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'monthly_bgt_flag',
-		'fieldtype': 'Select',
-		'label': 'If Monthly Budget Exceeded',
-		'oldfieldname': 'monthly_bgt_flag',
-		'oldfieldtype': 'Select',
-		'options': '\nWarn\nIgnore\nStop',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'monthly_bgt_flag',
+		'fieldtype': u'Select',
+		'label': u'If Monthly Budget Exceeded',
+		'oldfieldname': u'monthly_bgt_flag',
+		'oldfieldtype': u'Select',
+		'options': u'\nWarn\nIgnore\nStop',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Company Info',
+		'doctype': u'DocField',
+		'fieldname': u'company_info',
+		'fieldtype': u'Section Break',
+		'label': u'Company Info',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address',
-		'fieldtype': 'Small Text',
-		'label': 'Address',
-		'oldfieldname': 'address',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'address',
+		'fieldtype': u'Small Text',
+		'label': u'Address',
+		'oldfieldname': u'address',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'phone_no',
-		'fieldtype': 'Data',
-		'label': 'Phone No',
-		'oldfieldname': 'phone_no',
-		'oldfieldtype': 'Data',
-		'options': 'Phone',
+		'doctype': u'DocField',
+		'fieldname': u'phone_no',
+		'fieldtype': u'Data',
+		'label': u'Phone No',
+		'oldfieldname': u'phone_no',
+		'oldfieldtype': u'Data',
+		'options': u'Phone',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fax',
-		'fieldtype': 'Data',
-		'label': 'Fax',
-		'oldfieldname': 'fax',
-		'oldfieldtype': 'Data',
-		'options': 'Phone',
+		'doctype': u'DocField',
+		'fieldname': u'fax',
+		'fieldtype': u'Data',
+		'label': u'Fax',
+		'oldfieldname': u'fax',
+		'oldfieldtype': u'Data',
+		'options': u'Phone',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'email',
-		'fieldtype': 'Data',
-		'label': 'Email',
-		'oldfieldname': 'email',
-		'oldfieldtype': 'Data',
-		'options': 'Email',
+		'doctype': u'DocField',
+		'fieldname': u'email',
+		'fieldtype': u'Data',
+		'label': u'Email',
+		'oldfieldname': u'email',
+		'oldfieldtype': u'Data',
+		'options': u'Email',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'website',
-		'fieldtype': 'Data',
-		'label': 'Website',
-		'oldfieldname': 'website',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'website',
+		'fieldtype': u'Data',
+		'label': u'Website',
+		'oldfieldname': u'website',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Company registration numbers for your reference. Example: VAT Registration Numbers etc.',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Registration Info',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'description': u'Company registration numbers for your reference. Example: VAT Registration Numbers etc.',
+		'doctype': u'DocField',
+		'fieldname': u'registration_info',
+		'fieldtype': u'Section Break',
+		'label': u'Registration Info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Company registration numbers for your reference. Tax numbers etc.',
-		'doctype': 'DocField',
-		'fieldname': 'registration_details',
-		'fieldtype': 'Code',
-		'label': 'Registration Details',
-		'oldfieldname': 'registration_details',
-		'oldfieldtype': 'Code',
+		'colour': u'White:FFF',
+		'description': u'Company registration numbers for your reference. Tax numbers etc.',
+		'doctype': u'DocField',
+		'fieldname': u'registration_details',
+		'fieldtype': u'Code',
+		'label': u'Registration Details',
+		'oldfieldname': u'registration_details',
+		'oldfieldtype': u'Code',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'label': 'Trash Reason',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
 		'no_copy': 1,
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/contact_control/contact_control.js b/erpnext/setup/doctype/contact_control/contact_control.js
index b6825eb..f58e75d 100755
--- a/erpnext/setup/doctype/contact_control/contact_control.js
+++ b/erpnext/setup/doctype/contact_control/contact_control.js
@@ -1,14 +1,6 @@
 // common partner functions
 // =========================
 
-/*
-// make shipping list body
-// ------------------------
-cur_frm.cscript.make_sl_body = function(){
-	cur_frm.fields_dict['Shipping HTML'].wrapper.innerHTML = '';
-	cur_frm.shipping_html = $a(cur_frm.fields_dict['Shipping HTML'].wrapper,'div');
-}
-*/
 
 // make history list body
 // -----------------------
@@ -18,35 +10,6 @@
 }
 
 
-/*
-// set shipping list message
-// --------------------------
-cur_frm.cscript.set_sl_msg = function(doc){
-	cur_frm.shipping_html.innerHTML = 'Shipping Address Details will appear only when you save the ' + doc.doctype.toLowerCase();
-}
-*/
-/*
-// set history list message
-// -------------------------
-cur_frm.cscript.set_hl_msg = function(doc){
-	cur_frm.history_html.innerHTML= 'History Details will appear only when you save the ' + doc.doctype.toLowerCase();
-}
-*/
-
-
-/*
-// make shipping address
-// -------------
-cur_frm.cscript.make_shipping_address = function(doc, dt, dn){
-  	cur_frm.shipping_html.innerHTML = '';
-
-	var dsn = cur_frm.doc.customer_name;
-	var dsa = cur_frm.doc.address;
-	cl = new AddressList(cur_frm.shipping_html,dt,dn,dsn,dsa);
-}
-*/
-
-
 // make history
 // -------------
 cur_frm.cscript.make_history = function(doc,dt,dn){
@@ -157,406 +120,4 @@
 	cur_frm.fields_dict['territory'].get_query = function(doc,dt,dn) {
 		return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"  ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
 	}
-}
-
-
-// =======================================================================================================
-
-// contact list
-// --------------
-ContactList = function(parent,dt,dn,dsn){
-	
-	var me = this;
-	
-	this.dt = dt;
-	this.dn = dn;
-	this.dsn = dsn ? dsn : dn;
-
-	this.wrapper = $a(parent,'div');
-	me.get_list();
-}
-
-// add contact
-// ------------
-ContactList.prototype.add_contact = function(){
-	var me = this;
-	
-	// onload - set default values
-	var cont = LocalDB.create('Contact');
-
-	var c = locals['Contact'][cont];
-	
-	if(me.dt == 'Customer')	{
-		c.is_customer = 1;
-		c.customer = me.dn;
-		c.customer_name = me.dsn;
-	}
-	else if(me.dt == 'Supplier'){
-		c.is_supplier = 1;
-		c.supplier = me.dn;
-		c.supplier_name = me.dsn;
-	}
-	else if(me.dt == 'Sales Partner'){
-		c.is_sales_partner = 1;
-		c.sales_partner = me.dn;
-		//c.sales_partner_name = me.dsn;
-	}
-	
-	loaddoc('Contact',c.name);
-}
-
-// get contact list
-// -----------------
-ContactList.prototype.get_list = function(){
-	var me = this;
-	
-	me.make_list();
-	
-	var dt = me.dt.toLowerCase().split(' ').join('_');
-	
-	// build query
-	me.lst.get_query = function(){
-		this.query = repl("select name, first_name, last_name, concat_ws(' ', first_name, last_name), email_id, contact_no, department, designation, is_primary_contact, has_login, disable_login from tabContact where %(dt)s = '%(dn)s' and docstatus != 2",{'dt':dt, 'dn':me.dn});
-
-		this.query_max = repl("select count(name) from tabContact where %(dt)s = '%(dn)s' and docstatus != 2",{'dt':dt, 'dn':me.dn});
-	}
-	
-	// render list ui
-	me.lst.show_cell = function(cell,ri,ci,d){
-		me.render_list(cell,ri,ci,d);
-	}
-	
-	// run query
-	me.lst.run();
-	
-	// onrun
-	me.lst.onrun = function(){
-		if(!this.has_data()){
-			this.rec_label.innerHTML = '';
-			
-			$a(this.rec_label,'span').innerHTML = "You do not have any contact. ";
-			$($a(this.rec_label,'span')).html('Add a new contact').addClass('link_type').click(function(){ me.add_contact(); });
-			
-			$dh(this.results);
-		}
-		else{
-			$ds(this.results);
-		}
-	}	
-}
-
-// make list
-// -----------
-ContactList.prototype.make_list = function(){
-	var me = this;
-	
-	var l = new Listing();
-	l.colwidths = ['5%','30%','30%','20%','20%'];
-	l.colnames = ['Sr.','Contact Name','Email Id','Contact No', 'Action'];
-	l.page_len = 10;
-  
-	me.lst = l;
-	
-	l.make(me.wrapper);
-	
-	// Add contact button
-	me.add_btn = $btn(l.btn_area,'+ Add Contact', function(){ me.add_contact();}, {fontWeight:'bold'});
-}
-
-// make contact cell
-// ------------------
-ContactList.prototype.render_list = function(cell,ri,ci,d){
-	var me = this;
-
-	// name
-	if(ci == 0){
-		var nm = $a($a(cell,'div'),'span','',{cursor:'pointer'});
-		nm.innerHTML = d[ri][3];
-		nm.id = d[ri][0];
-		
-		nm.onclick = function(){
-			loaddoc('Contact', this.id);
-			
-			// on save callback - refresh list
-		}
-
-		// department and designation
-		var des = d[ri][7] ? d[ri][7] : '';
-		var dep = d[ri][6] ? d[ri][6] : '';
-		
-		var sp = $a(cell,'div','comment');
-		sp.innerHTML = des + (dep ? (', ' + dep) : ''); 
-	}
-	
-	// email id, contact no, department, designation
-	// -----------------------------------------------------
-	if(ci == 1) cell.innerHTML = d[ri][4] ? d[ri][4] : '-';
-	if(ci == 2) cell.innerHTML = d[ri][5] ? d[ri][5] : '-';
-	
-	// actions
-	// --------------------------------------
-	if(ci== 3) me.make_actions(cell,ri,ci,d);
-}
-
-// make actions
-// ---------------
-ContactList.prototype.make_actions = function(cell,ri,ci,d){
-	var me = this;
-	
-	var tab = make_table(cell,1,2,'100%',['40%','60%']);
-
-	// Edit and Delete
-	var t = make_table($td(tab,0,0),1,2);
-	
-	var edit = $a($td(t,0,0),'div','wn-icon ic-doc_edit');
-	$(edit).click(function(){ loaddoc('Contact',d[ri][0]); });
-	
-	edit.setAttribute('title','Edit');
-
-// Below code should be uncommented once customer/venodr invitation process is stable
-// ===========================================================================
-/* 
-	var del = $a($td(t,0,1),'div','wn-icon ic-trash');
-	$(del).click(function(){ me.delete_contact(d[ri][0],d[ri][4]) });
-
-	set_custom_tooltip(del, 'Delete');
-	
-	//  Invite, Enable and Disable - Integrate after gateway logic incorporated
-
-	if(d[ri][9] == 'Yes')	{
-		if(d[ri][10] == 'Yes'){
-			var enb = $a($td(tab,0,1),'div','wn-icon ic-checkmark');
-			$(enb).click(function(){ me.enable_login(d[ri][0], d[ri][4]); });
-		}
-		else{
-			var dsb = $a($td(tab,0,1),'div','wn-icon ic-delete');
-			$(dsb).click(function(){ me.disable_login(d[ri][0], d[ri][4]) });
-		}
-	}
-	else{
-		var inv = $a($td(tab,0,1),'div','wn-icon ic-mail');
-		$(inv).click(function(){ me.invite_contact(d[ri][0], d[ri][4], d[ri][1], d[ri][2]) });
-	}*/
-}
-
-// enable login
-// ----------------------------------------------------------
-ContactList.prototype.enable_login = function(id, email_id){
-	var me = this;
-	
-	var callback = function(r,rt){
-		me.get_list();
-		
-		if(!r.exc) msgprint('Login for contact enabled',1);
-		else errprint(r.exc);
-	}
-	
-	var args = {};
-	args.contact = id;
-	args.email = email_id;
-	
-	$c_obj('Contact Control','enable_login',JSON.stringify(args),callback);
-}
-
-// disable login
-// -------------------------------------------------------------
-ContactList.prototype.disable_login = function(id, email_id){
-	var me = this;
-	
-	var callback = function(r,rt){
-		me.get_list();
-		
-		if(!r.exc) msgprint('Login for contact disabled',1);
-		else errprint(r.exc);
-	}
-
-	var args = {};
-	args.contact = id;
-	args.email = email_id;
-		
-	$c_obj('Contact Control','disable_login',JSON.stringify(args),callback);
-}
-
-// delete contact
-// -----------------
-ContactList.prototype.delete_contact = function(id,email_id,has_login){
-	var me = this;
-	
-	var callback = function(r,rt){
-		me.get_list();
-		
-		if(!r.exc) msgprint('Contact deleted successfully');
-		else errprint(r.exc);
-	}
-	
-	var args = {};
-	args.contact = id;
-	args.email = email_id;
-	args.has_login = has_login;
-	
-	$c_obj('Contact Control','delete_contact',JSON.stringify(args),callback);
-}
-
-// invite user
-// --------------------------------------------------------
-ContactList.prototype.invite_contact = function(id,email_id,first_name,last_name){
-	var me = this;
-
-	if(!email_id){
-		msgprint("Please add email id and save the contact first. You can then invite contact to view transactions.")
-	}
-	else{
-		var callback = function(r,rt){
-			if(!r.exc) msgprint('Invitation sent');
-			else errprint(r.exc);
-		}
-	
-		var args = {
-			'contact' : id,
-			'email' : email_id,
-			'first_name' : first_name ? first_name : '',
-			'last_name' : last_name ? last_name : '',
-			'usert_type' : 'Partner'
-		};
-		
-		$c_obj('Contact Control','invite_contact',JSON.stringify(args),callback);	
-	}
-}
-
-
-// address list
-// --------------
-AddressList = function(parent,dt,dn,dsn,dsa){
-	
-	var me = this;
-	
-	this.dt = dt;
-	this.dn = dn;
-	this.dsn = dsn ? dsn : dn;
-        this.dsa = dsa ? dsa : '';
-
-	this.wrapper = $a(parent,'div');
-	me.get_addr_list();
-}
-
-
-// add contact
-// ------------
-AddressList.prototype.add_address = function(){
-	var me = this;
-	
-	// onload - set default values
-	var addr = LocalDB.create('Shipping Address');
-
-	var a = locals['Shipping Address'][addr];
-	
-	a.customer = me.dn;
-	a.customer_name = me.dsn;
-        a.customer_address = me.dsa;	
-	loaddoc('Shipping Address',a.name);
-}
-
-
-// get address list
-// -----------------
-AddressList.prototype.get_addr_list = function(){
-	var me = this;
-	
-	me.make_addr_list();
-	
-	var dt = me.dt.toLowerCase().split(' ').join('_');
-	
-	// build query
-	me.lst.get_query = function(){
-		this.query = repl("select name, ship_to, shipping_address, is_primary_address, shipping_details from `tabShipping Address` where %(dt)s = '%(dn)s' and docstatus != 2",{'dt':dt, 'dn':me.dn});
-
-		this.query_max = repl("select count(name) from `tabShipping Address` where %(dt)s = '%(dn)s'",{'dt':dt, 'dn':me.dn});
-	}
-	
-	// render list ui
-	me.lst.show_cell = function(cell,ri,ci,d){
-		me.render_list(cell,ri,ci,d);
-	}
-	
-	// run query
-	me.lst.run();
-	
-	// onrun
-	me.lst.onrun = function(){
-		if(!this.has_data()){
-			this.rec_label.innerHTML = '';
-			
-			$a(this.rec_label,'span').innerHTML = "You do not have any shipping address.";
-			$($a(this.rec_label,'span')).html('Add a new address').addClass('link_type').click(function(){ me.add_address(); });
-			
-			$dh(this.results);
-		}
-		else{
-			$ds(this.results);
-		}
-	}	
-}
-
-
-// make list
-// -----------
-AddressList.prototype.make_addr_list = function(){
-	var me = this;
-	
-	var l = new Listing();
-	l.colwidths = ['5%', '15%', '25%','10%','35%','10%'];
-	l.colnames = ['Sr.', 'Ship To', 'Shipping Address','Primary Address', 'Shipping Details', 'Action'];
-    l.page_len = 10;
-  
-	me.lst = l;
-	
-	l.make(me.wrapper);
-	
-	// Add address button
-	me.add_btn = $btn(l.btn_area,'+ Add Address', function(){ me.add_address();}, {fontWeight:'bold'});
-}
-
-
-
-// make address cell
-// ------------------
-AddressList.prototype.render_list = function(cell,ri,ci,d){
-	var me = this;
-
-	// name
-	if(ci == 0){
-		var nm = $a($a(cell,'div'),'span','',{cursor:'pointer'});
-		nm.innerHTML = d[ri][1];
-		nm.id = d[ri][0];
-		
-		nm.onclick = function(){
-			loaddoc('Shipping Address', this.id);
-		}
-	}
-	
-	// shipping address, primary address, shipping details
-	// ----------------------------------------------------
-	if(ci == 1) cell.innerHTML = d[ri][2] ? d[ri][2] : '-';
-	if(ci == 2) cell.innerHTML = d[ri][3] ? d[ri][3] : '-';
-	if(ci == 3) cell.innerHTML = d[ri][4] ? d[ri][4] : '-';
-	
-	// actions
-	// --------------------------------------
-	if(ci== 4) me.make_actions(cell,ri,ci,d);
-}
-
-// make actions
-// ---------------
-AddressList.prototype.make_actions = function(cell,ri,ci,d){
-	var me = this;
-	
-	var tab = make_table(cell,1,2,'100%',['40%','60%']);
-
-	// Edit and Delete
-	var t = make_table($td(tab,0,0),1,2);
-	
-	var edit = $a($td(t,0,0),'div','wn-icon ic-doc_edit');
-	$(edit).click(function(){ loaddoc('Shipping Address',d[ri][0]); });
-	
-	edit.setAttribute('title','Edit');
-}
+}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/contact_control/contact_control.txt b/erpnext/setup/doctype/contact_control/contact_control.txt
index b9e84ad..c398190 100644
--- a/erpnext/setup/doctype/contact_control/contact_control.txt
+++ b/erpnext/setup/doctype/contact_control/contact_control.txt
@@ -3,86 +3,82 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:56',
+		'creation': '2012-03-27 14:36:19',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:19',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 1,
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 25
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldtype': u'Text',
 		'name': '__common__',
-		'parent': 'Contact Control',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Contact Control',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Contact Control',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Contact Control',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocType, Contact Control
 	{
 		'doctype': 'DocType',
-		'name': 'Contact Control'
+		'name': u'Contact Control'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'header',
-		'idx': 1,
-		'label': 'Header'
+		'doctype': u'DocField',
+		'fieldname': u'header',
+		'label': u'Header'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_intro',
-		'idx': 2,
-		'label': 'Customer Intro'
+		'doctype': u'DocField',
+		'fieldname': u'customer_intro',
+		'label': u'Customer Intro'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'supplier_intro',
-		'idx': 3,
-		'label': 'Supplier Intro'
+		'doctype': u'DocField',
+		'fieldname': u'supplier_intro',
+		'label': u'Supplier Intro'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/country/country.txt b/erpnext/setup/doctype/country/country.txt
index 089ceb3..bc3e9ed 100644
--- a/erpnext/setup/doctype/country/country.txt
+++ b/erpnext/setup/doctype/country/country.txt
@@ -3,42 +3,41 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:56',
+		'creation': '2012-03-27 14:36:19',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:19',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'field:country_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:country_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 0,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 0,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 11
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'country_name',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Country Name',
+		'doctype': u'DocField',
+		'fieldname': u'country_name',
+		'fieldtype': u'Data',
+		'label': u'Country Name',
 		'name': '__common__',
-		'oldfieldname': 'country_name',
-		'oldfieldtype': 'Data',
-		'parent': 'Country',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'oldfieldname': u'country_name',
+		'oldfieldtype': u'Data',
+		'parent': u'Country',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'reqd': 1
 	},
@@ -46,11 +45,11 @@
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Country',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Country',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -59,42 +58,38 @@
 	# DocType, Country
 	{
 		'doctype': 'DocType',
-		'name': 'Country'
+		'name': u'Country'
 	},
 
 	# DocPerm
 	{
 		'amend': 0,
 		'cancel': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'Sales Master Manager',
+		'doctype': u'DocPerm',
+		'role': u'Sales Master Manager',
 		'submit': 0
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Purchase Master Manager'
+		'doctype': u'DocPerm',
+		'role': u'Purchase Master Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'HR User'
+		'doctype': u'DocPerm',
+		'role': u'HR User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'role': 'HR Manager'
+		'doctype': u'DocPerm',
+		'role': u'HR Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField'
+		'doctype': u'DocField'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/currency/currency.txt b/erpnext/setup/doctype/currency/currency.txt
index d5d066c..5abf9c5 100644
--- a/erpnext/setup/doctype/currency/currency.txt
+++ b/erpnext/setup/doctype/currency/currency.txt
@@ -3,41 +3,40 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:56',
+		'creation': '2012-03-27 14:36:19',
 		'docstatus': 0,
-		'modified': '2010-11-18 16:00:32',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:19',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'field:currency_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:currency_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 0,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 0,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 3
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'currency_name',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Currency Name',
+		'doctype': u'DocField',
+		'fieldname': u'currency_name',
+		'fieldtype': u'Data',
+		'label': u'Currency Name',
 		'name': '__common__',
-		'oldfieldname': 'currency_name',
-		'oldfieldtype': 'Data',
-		'parent': 'Currency',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'oldfieldname': u'currency_name',
+		'oldfieldtype': u'Data',
+		'parent': u'Currency',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'reqd': 1
 	},
@@ -45,11 +44,11 @@
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Currency',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Currency',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -58,23 +57,15 @@
 	# DocType, Currency
 	{
 		'doctype': 'DocType',
-		'name': 'Currency'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'Accounts Manager'
+		'name': u'Currency'
 	},
 
 	# DocPerm
 	{
 		'amend': 0,
 		'cancel': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Sales Master Manager',
+		'doctype': u'DocPerm',
+		'role': u'Sales Master Manager',
 		'submit': 0
 	},
 
@@ -82,14 +73,19 @@
 	{
 		'amend': 0,
 		'cancel': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'Purchase Master Manager',
+		'doctype': u'DocPerm',
+		'role': u'Purchase Master Manager',
 		'submit': 0
 	},
 
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'Accounts Manager'
+	},
+
 	# DocField
 	{
-		'doctype': 'DocField'
+		'doctype': u'DocField'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/customer_group/customer_group.txt b/erpnext/setup/doctype/customer_group/customer_group.txt
index 6cffdd1..c5ee40e 100644
--- a/erpnext/setup/doctype/customer_group/customer_group.txt
+++ b/erpnext/setup/doctype/customer_group/customer_group.txt
@@ -3,47 +3,49 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:57',
+		'creation': '2012-03-27 14:36:19',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:19',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
+		'_last_update': u'1294214943',
 		'allow_trash': 1,
-		'autoname': 'field:customer_group_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:customer_group_name',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'search_fields': 'name,parent_customer_group',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'name,parent_customer_group',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 33
+		'version': 34
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Customer Group',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Customer Group',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'amend': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Customer Group',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Customer Group',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
 		'submit': 0
 	},
@@ -51,157 +53,145 @@
 	# DocType, Customer Group
 	{
 		'doctype': 'DocType',
-		'name': 'Customer Group'
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Sales Master Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 1,
-		'role': 'Sales User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 5,
-		'permlevel': 0,
-		'role': 'Sales User',
-		'write': 0
+		'name': u'Customer Group'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Master Manager',
+		'role': u'Sales Master Manager',
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Master Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'write': 0
+	},
+
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_group_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Customer Group Name',
+		'doctype': u'DocField',
+		'fieldname': u'customer_group_name',
+		'fieldtype': u'Data',
+		'label': u'Customer Group Name',
 		'no_copy': 1,
-		'oldfieldname': 'customer_group_name',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'customer_group_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
 		'permlevel': 0,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'parent_customer_group',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Parent Customer Group',
-		'oldfieldname': 'parent_customer_group',
-		'oldfieldtype': 'Link',
-		'options': 'Customer Group',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'parent_customer_group',
+		'fieldtype': u'Link',
+		'label': u'Parent Customer Group',
+		'oldfieldname': u'parent_customer_group',
+		'oldfieldtype': u'Link',
+		'options': u'Customer Group',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Only leaf nodes are allowed in transaction',
-		'doctype': 'DocField',
-		'fieldname': 'is_group',
-		'fieldtype': 'Select',
-		'idx': 5,
-		'label': 'Has Child Node',
-		'oldfieldname': 'is_group',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'colour': u'White:FFF',
+		'description': u'Only leaf nodes are allowed in transaction',
+		'doctype': u'DocField',
+		'fieldname': u'is_group',
+		'fieldtype': u'Select',
+		'label': u'Has Child Node',
+		'oldfieldname': u'is_group',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'lft',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'lft',
+		'fieldtype': u'Int',
 		'hidden': 1,
-		'idx': 6,
-		'label': 'lft',
+		'label': u'lft',
 		'no_copy': 1,
-		'oldfieldname': 'lft',
-		'oldfieldtype': 'Int',
+		'oldfieldname': u'lft',
+		'oldfieldtype': u'Int',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1,
@@ -210,15 +200,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rgt',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'rgt',
+		'fieldtype': u'Int',
 		'hidden': 1,
-		'idx': 7,
-		'label': 'rgt',
+		'label': u'rgt',
 		'no_copy': 1,
-		'oldfieldname': 'rgt',
-		'oldfieldtype': 'Int',
+		'oldfieldname': u'rgt',
+		'oldfieldtype': u'Int',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1,
@@ -227,15 +216,15 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'old_parent',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'old_parent',
+		'fieldtype': u'Link',
 		'hidden': 1,
-		'idx': 8,
-		'label': 'old_parent',
+		'label': u'old_parent',
 		'no_copy': 1,
-		'oldfieldname': 'old_parent',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'old_parent',
+		'oldfieldtype': u'Data',
+		'options': u'Customer Group',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
diff --git a/erpnext/setup/doctype/email_digest/email_digest.js b/erpnext/setup/doctype/email_digest/email_digest.js
index 67de256..1380e77 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.js
+++ b/erpnext/setup/doctype/email_digest/email_digest.js
@@ -60,7 +60,7 @@
 	}, 1);
 }
 
-cur_frm.cscript['Add/Remove Recipients'] = function(doc, dt, dn) {
+cur_frm.cscript.addremove_recipients = function(doc, dt, dn) {
 	// Get profile list
 	$c_obj(make_doclist(dt, dn), 'get_profiles', '', function(r, rt) {
 		if(r.exc) {
diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index fb3730c..b3ea118 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -99,7 +99,7 @@
 
 			'new_enquiries': self.generate_new_type_query({
 				'type': 'new_enquiries',
-				'doctype': 'Enquiry'
+				'doctype': 'Opportunity'
 			}),
 
 			'new_quotations': self.generate_new_type_query({
@@ -110,7 +110,7 @@
 
 			'new_sales_orders': self.generate_new_type_query({
 				'type': 'new_sales_orders',
-				'doctype': 'Receivable Voucher',
+				'doctype': 'Sales Invoice',
 				'sum_col': 'grand_total'
 			}),
 
diff --git a/erpnext/setup/doctype/email_digest/email_digest.txt b/erpnext/setup/doctype/email_digest/email_digest.txt
index 897adad..0a29a8c 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.txt
+++ b/erpnext/setup/doctype/email_digest/email_digest.txt
@@ -3,99 +3,101 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-12-14 12:15:09',
+		'creation': '2012-03-27 14:36:20',
 		'docstatus': 0,
-		'modified': '2011-12-22 19:01:33',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:20',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1324556758',
-		'autoname': 'Prompt',
-		'colour': 'White:FFF',
+		'_last_update': u'1324556758',
+		'autoname': u'Prompt',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'System',
-		'module': 'Setup',
+		'document_type': u'System',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 81
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Email Digest',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Email Digest',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Email Digest',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Email Digest',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, Email Digest
 	{
 		'doctype': 'DocType',
-		'name': 'Email Digest'
+		'name': u'Email Digest'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Settings',
+		'doctype': u'DocField',
+		'fieldname': u'settings',
+		'fieldtype': u'Section Break',
+		'label': u'Settings',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'enabled',
-		'fieldtype': 'Check',
-		'label': 'Enabled',
+		'doctype': u'DocField',
+		'fieldname': u'enabled',
+		'fieldtype': u'Check',
+		'label': u'Enabled',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'label': 'For Company',
-		'options': 'link:Company',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
+		'label': u'For Company',
+		'options': u'link:Company',
 		'permlevel': 0,
 		'reqd': 1
 	},
@@ -103,249 +105,253 @@
 	# DocField
 	{
 		'allow_on_submit': 0,
-		'doctype': 'DocField',
-		'fieldname': 'frequency',
-		'fieldtype': 'Select',
-		'label': 'How frequently?',
-		'options': '\nDaily\nWeekly\nMonthly',
+		'doctype': u'DocField',
+		'fieldname': u'frequency',
+		'fieldtype': u'Select',
+		'label': u'How frequently?',
+		'options': u'\nDaily\nWeekly\nMonthly',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.enabled',
-		'doctype': 'DocField',
-		'fieldname': 'next_send',
-		'fieldtype': 'Data',
-		'label': 'Next email will be sent on:',
+		'depends_on': u'eval:doc.enabled',
+		'doctype': u'DocField',
+		'fieldname': u'next_send',
+		'fieldtype': u'Data',
+		'label': u'Next email will be sent on:',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'default': '1',
-		'doctype': 'DocField',
-		'fieldname': 'use_standard',
-		'fieldtype': 'Check',
+		'default': u'1',
+		'doctype': u'DocField',
+		'fieldname': u'use_standard',
+		'fieldtype': u'Check',
 		'hidden': 1,
-		'label': 'Use standard?',
+		'label': u'Use standard?',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Add/Remove Recipients',
+		'doctype': u'DocField',
+		'fieldname': u'addremove_recipients',
+		'fieldtype': u'Button',
+		'label': u'Add/Remove Recipients',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'description': 'Note: Email will not be sent to disabled users',
-		'doctype': 'DocField',
-		'fieldname': 'recipient_list',
-		'fieldtype': 'Text',
-		'label': 'Recipients',
+		'description': u'Note: Email will not be sent to disabled users',
+		'doctype': u'DocField',
+		'fieldname': u'recipient_list',
+		'fieldtype': u'Text',
+		'label': u'Recipients',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Select Digest Content',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'select_digest_content',
+		'fieldtype': u'Section Break',
+		'label': u'Select Digest Content',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'new_leads',
-		'fieldtype': 'Check',
-		'label': 'New Leads',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'new_leads',
+		'fieldtype': u'Check',
+		'label': u'New Leads',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'new_enquiries',
-		'fieldtype': 'Check',
-		'label': 'New Enquiries',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'new_enquiries',
+		'fieldtype': u'Check',
+		'label': u'New Enquiries',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'new_quotations',
-		'fieldtype': 'Check',
-		'label': 'New Quotations',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'new_quotations',
+		'fieldtype': u'Check',
+		'label': u'New Quotations',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'new_sales_orders',
-		'fieldtype': 'Check',
-		'label': 'New Sales Orders',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'new_sales_orders',
+		'fieldtype': u'Check',
+		'label': u'New Sales Orders',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'new_purchase_orders',
-		'fieldtype': 'Check',
-		'label': 'New Purchase Orders',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'new_purchase_orders',
+		'fieldtype': u'Check',
+		'label': u'New Purchase Orders',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'new_transactions',
-		'fieldtype': 'Check',
-		'label': 'New Transactions',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'new_transactions',
+		'fieldtype': u'Check',
+		'label': u'New Transactions',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'payables',
-		'fieldtype': 'Check',
-		'label': 'Payables',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'payables',
+		'fieldtype': u'Check',
+		'label': u'Payables',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'payments',
-		'fieldtype': 'Check',
-		'label': 'Payments',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'payments',
+		'fieldtype': u'Check',
+		'label': u'Payments',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'expenses_booked',
-		'fieldtype': 'Check',
-		'label': 'Expenses Booked',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'expenses_booked',
+		'fieldtype': u'Check',
+		'label': u'Expenses Booked',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'invoiced_amount',
-		'fieldtype': 'Check',
-		'label': 'Invoiced Amount (Receivables)',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'invoiced_amount',
+		'fieldtype': u'Check',
+		'label': u'Invoiced Amount (Receivables)',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'collections',
-		'fieldtype': 'Check',
-		'label': 'Collections',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'collections',
+		'fieldtype': u'Check',
+		'label': u'Collections',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'income',
-		'fieldtype': 'Check',
-		'label': 'Income',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'income',
+		'fieldtype': u'Check',
+		'label': u'Income',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'income_year_to_date',
-		'fieldtype': 'Check',
-		'label': 'Income Year to Date',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'income_year_to_date',
+		'fieldtype': u'Check',
+		'label': u'Income Year to Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'bank_balance',
-		'fieldtype': 'Check',
-		'label': 'Bank Balance',
+		'depends_on': u'eval:doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'bank_balance',
+		'fieldtype': u'Check',
+		'label': u'Bank Balance',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_below_rl',
-		'fieldtype': 'Check',
+		'doctype': u'DocField',
+		'fieldname': u'stock_below_rl',
+		'fieldtype': u'Check',
 		'hidden': 1,
-		'label': 'Stock Items below re-order level',
+		'label': u'Stock Items below re-order level',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.use_standard',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Enter Custom Code',
+		'depends_on': u'eval:!doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'enter_custom_code',
+		'fieldtype': u'Section Break',
+		'label': u'Enter Custom Code',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'custom_code',
-		'fieldtype': 'Code',
-		'label': 'Custom Python Code',
+		'depends_on': u'eval:!doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'custom_code',
+		'fieldtype': u'Code',
+		'label': u'Custom Python Code',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.use_standard',
-		'doctype': 'DocField',
-		'fieldname': 'email_template',
-		'fieldtype': 'Code',
-		'label': 'Email Template',
+		'depends_on': u'eval:!doc.use_standard',
+		'doctype': u'DocField',
+		'fieldname': u'email_template',
+		'fieldtype': u'Code',
+		'label': u'Email Template',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/email_settings/email_settings.js b/erpnext/setup/doctype/email_settings/email_settings.js
deleted file mode 100644
index 599fbcc..0000000
--- a/erpnext/setup/doctype/email_settings/email_settings.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-cur_frm.cscript.refresh = function(doc,cdt,cdn){
-  if(!doc.outgoing_mail_server || !doc.mail_login || !doc.mail_password || !doc.auto_email_id || !doc.mail_port || !doc.use_ssl){
-    get_server_fields('set_vals','','',doc, cdt, cdn, 1);
-  }
-}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/email_settings/email_settings.py b/erpnext/setup/doctype/email_settings/email_settings.py
index c670b31..3e17636 100644
--- a/erpnext/setup/doctype/email_settings/email_settings.py
+++ b/erpnext/setup/doctype/email_settings/email_settings.py
@@ -23,21 +23,6 @@
 	def __init__(self,doc,doclist):
 		self.doc,self.doclist = doc,doclist
 
-	def set_vals(self):
-		res = sql("select field, value from `tabSingles` where doctype = 'Control Panel' and field IN ('outgoing_mail_server','mail_login','mail_password','auto_email_id','mail_port','use_ssl')")
-		ret = {}
-		for r in res:
-			ret[cstr(r[0])]=r[1] and cstr(r[1]) or ''
-				
-		return ret
-
-	def set_cp_value(self, key):
-		"""
-			Update value in control panel
-		"""
-		webnotes.conn.set_value('Control Panel', None, key,
-				self.doc.fields.get(key))
-
 	def validate(self):
 		"""
 			Checks connectivity to email servers before saving
@@ -113,11 +98,3 @@
 			except poplib.error_proto, e:
 				webnotes.msgprint('Invalid User Name or Support Password. Please rectify and try again.')
 				webnotes.msgprint(e)
-
-		
-	def on_update(self):
-		"""
-			update control panel
-		"""
-		for f in ('outgoing_mail_server', 'mail_login', 'mail_password', 'auto_email_id', 'mail_port', 'use_ssl'):
-			self.set_cp_value(f)
diff --git a/erpnext/setup/doctype/email_settings/email_settings.txt b/erpnext/setup/doctype/email_settings/email_settings.txt
index b6e52fc..fdf1cf0 100644
--- a/erpnext/setup/doctype/email_settings/email_settings.txt
+++ b/erpnext/setup/doctype/email_settings/email_settings.txt
@@ -3,234 +3,240 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:59',
+		'creation': '2012-03-27 14:36:20',
 		'docstatus': 0,
-		'modified': '2012-01-25 18:44:45',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-03-27 14:36:20',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1325570647',
+		'_last_update': u'1325570647',
 		'allow_copy': 1,
 		'allow_email': 1,
 		'allow_print': 1,
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'in_create': 1,
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 35
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Email Settings',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Email Settings',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Email Settings',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Email Settings',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocType, Email Settings
 	{
 		'doctype': 'DocType',
-		'name': 'Email Settings'
+		'name': u'Email Settings'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Outgoing Mails'
+		'doctype': u'DocField',
+		'fieldname': u'outgoing_mails',
+		'fieldtype': u'Section Break',
+		'label': u'Outgoing Mails'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': '1',
-		'options': '<div class="help_box">Set your outgoing mail settings here. All system generated notifications, emails will go from this mail server</div>'
+		'doctype': u'DocField',
+		'fieldname': u'html1',
+		'fieldtype': u'HTML',
+		'label': u'1',
+		'options': u'<div class="help_box">Set your outgoing mail settings here. All system generated notifications, emails will go from this mail server</div>'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'outgoing_mail_server',
-		'fieldtype': 'Data',
-		'label': 'Outgoing Mail Server'
+		'doctype': u'DocField',
+		'fieldname': u'outgoing_mail_server',
+		'fieldtype': u'Data',
+		'label': u'Outgoing Mail Server'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'mail_port',
-		'fieldtype': 'Int',
-		'label': 'Mail Port'
+		'doctype': u'DocField',
+		'fieldname': u'mail_port',
+		'fieldtype': u'Int',
+		'label': u'Mail Port'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'use_ssl',
-		'fieldtype': 'Check',
-		'label': 'Use SSL'
+		'doctype': u'DocField',
+		'fieldname': u'use_ssl',
+		'fieldtype': u'Check',
+		'label': u'Use SSL'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'mail_login',
-		'fieldtype': 'Data',
-		'label': 'Login Id'
+		'doctype': u'DocField',
+		'fieldname': u'mail_login',
+		'fieldtype': u'Data',
+		'label': u'Login Id'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'mail_password',
-		'fieldtype': 'Password',
-		'label': 'Mail Password'
+		'doctype': u'DocField',
+		'fieldname': u'mail_password',
+		'fieldtype': u'Password',
+		'label': u'Mail Password'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'auto_email_id',
-		'fieldtype': 'Data',
-		'label': 'Auto Email Id'
+		'doctype': u'DocField',
+		'fieldname': u'auto_email_id',
+		'fieldtype': u'Data',
+		'label': u'Auto Email Id'
 	},
 
 	# DocField
 	{
-		'description': 'Set the POP3 email settings to pull emails directly from a mailbox and create Support Tickets',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Support Ticket Mail Settings'
+		'description': u'Set the POP3 email settings to pull emails directly from a mailbox and create Support Tickets',
+		'doctype': u'DocField',
+		'fieldname': u'support_ticket_mail_settings',
+		'fieldtype': u'Section Break',
+		'label': u'Support Ticket Mail Settings'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': '2',
-		'options': '<div class="help_box">To automatically create Support Tickets from your incoming mail, set your pop3 settings here.</div>'
+		'doctype': u'DocField',
+		'fieldname': u'html2',
+		'fieldtype': u'HTML',
+		'label': u'2',
+		'options': u'<div class="help_box">To automatically create Support Tickets from your incoming mail, set your pop3 settings here.</div>'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'options': 'Simple'
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'options': u'Simple'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Check this to pull emails from your mailbox',
-		'doctype': 'DocField',
-		'fieldname': 'sync_support_mails',
-		'fieldtype': 'Check',
-		'label': 'Sync Support Mails'
+		'colour': u'White:FFF',
+		'description': u'Check this to pull emails from your mailbox',
+		'doctype': u'DocField',
+		'fieldname': u'sync_support_mails',
+		'fieldtype': u'Check',
+		'label': u'Sync Support Mails'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Your support email id - must be a valid email - this is where your emails will come!',
-		'doctype': 'DocField',
-		'fieldname': 'support_email',
-		'fieldtype': 'Data',
-		'label': 'Support Email'
+		'colour': u'White:FFF',
+		'description': u'Your support email id - must be a valid email - this is where your emails will come!',
+		'doctype': u'DocField',
+		'fieldname': u'support_email',
+		'fieldtype': u'Data',
+		'label': u'Support Email'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'POP3 mail server (e.g. pop.gmail.com)',
-		'doctype': 'DocField',
-		'fieldname': 'support_host',
-		'fieldtype': 'Data',
-		'label': 'POP3 Mail Server'
+		'colour': u'White:FFF',
+		'description': u'POP3 mail server (e.g. pop.gmail.com)',
+		'doctype': u'DocField',
+		'fieldname': u'support_host',
+		'fieldtype': u'Data',
+		'label': u'POP3 Mail Server'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'support_use_ssl',
-		'fieldtype': 'Check',
-		'label': 'Use SSL'
+		'doctype': u'DocField',
+		'fieldname': u'support_use_ssl',
+		'fieldtype': u'Check',
+		'label': u'Use SSL'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'support_username',
-		'fieldtype': 'Data',
-		'label': 'User Name'
+		'doctype': u'DocField',
+		'fieldname': u'support_username',
+		'fieldtype': u'Data',
+		'label': u'User Name'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'support_password',
-		'fieldtype': 'Password',
-		'label': 'Support Password'
+		'doctype': u'DocField',
+		'fieldname': u'support_password',
+		'fieldtype': u'Password',
+		'label': u'Support Password'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break'
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Signature to be appended at the end of every email',
-		'doctype': 'DocField',
-		'fieldname': 'support_signature',
-		'fieldtype': 'Text',
-		'label': 'Signature'
+		'colour': u'White:FFF',
+		'description': u'Signature to be appended at the end of every email',
+		'doctype': u'DocField',
+		'fieldname': u'support_signature',
+		'fieldtype': u'Text',
+		'label': u'Signature'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Autoreply when a new mail is received',
-		'doctype': 'DocField',
-		'fieldname': 'support_autoreply',
-		'fieldtype': 'Text',
-		'label': 'Autoreply'
+		'colour': u'White:FFF',
+		'description': u'Autoreply when a new mail is received',
+		'doctype': u'DocField',
+		'fieldname': u'support_autoreply',
+		'fieldtype': u'Text',
+		'label': u'Autoreply'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/features_setup/features_setup.txt b/erpnext/setup/doctype/features_setup/features_setup.txt
index eff542b..fdbf96d 100644
--- a/erpnext/setup/doctype/features_setup/features_setup.txt
+++ b/erpnext/setup/doctype/features_setup/features_setup.txt
@@ -3,46 +3,46 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-09-07 11:59:05',
+		'creation': '2012-03-27 14:36:21',
 		'docstatus': 0,
-		'modified': '2011-12-14 11:05:55',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:21',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1323840127',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'_last_update': u'1323840127',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'name_case': 'Title Case',
-		'section_style': 'Simple',
+		'name_case': u'Title Case',
+		'section_style': u'Simple',
 		'show_in_menu': 1,
 		'version': 26
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Features Setup',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Features Setup',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Features Setup',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Features Setup',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -51,272 +51,282 @@
 	# DocType, Features Setup
 	{
 		'doctype': 'DocType',
-		'name': 'Features Setup'
+		'name': u'Features Setup'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'Administrator'
+		'doctype': u'DocPerm',
+		'role': u'Administrator'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Materials'
+		'doctype': u'DocField',
+		'fieldname': u'materials',
+		'fieldtype': u'Section Break',
+		'label': u'Materials'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.',
-		'doctype': 'DocField',
-		'fieldname': 'fs_item_serial_nos',
-		'fieldtype': 'Check',
-		'label': 'Item Serial Nos'
+		'colour': u'White:FFF',
+		'description': u'To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.',
+		'doctype': u'DocField',
+		'fieldname': u'fs_item_serial_nos',
+		'fieldtype': u'Check',
+		'label': u'Item Serial Nos'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>',
-		'doctype': 'DocField',
-		'fieldname': 'fs_item_batch_nos',
-		'fieldtype': 'Check',
-		'label': 'Item Batch Nos'
+		'colour': u'White:FFF',
+		'description': u'To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>',
+		'doctype': u'DocField',
+		'fieldname': u'fs_item_batch_nos',
+		'fieldtype': u'Check',
+		'label': u'Item Batch Nos'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'To track brand name in the following documents<br>\nDelivery Note, Enuiry, Indent, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Receivable Voucher, Sales BOM, Sales Order, Serial No',
-		'doctype': 'DocField',
-		'fieldname': 'fs_brands',
-		'fieldtype': 'Check',
-		'label': 'Brands'
+		'colour': u'White:FFF',
+		'description': u'To track brand name in the following documents<br>\nDelivery Note, Enuiry, Purchase Request, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Sales Invoice, Sales BOM, Sales Order, Serial No',
+		'doctype': u'DocField',
+		'fieldname': u'fs_brands',
+		'fieldtype': u'Check',
+		'label': u'Brands'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break'
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': '1. To maintain the customer wise item code and to make them searchable based on their code use this option',
-		'doctype': 'DocField',
-		'fieldname': 'fs_item_advanced',
-		'fieldtype': 'Check',
-		'label': 'Item Advanced'
+		'colour': u'White:FFF',
+		'description': u'1. To maintain the customer wise item code and to make them searchable based on their code use this option',
+		'doctype': u'DocField',
+		'fieldname': u'fs_item_advanced',
+		'fieldtype': u'Check',
+		'label': u'Item Advanced'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'If Sale BOM is defined, the actual BOM of the Pack is displayed as table.\nAvailable in Delivery Note and Sales Order',
-		'doctype': 'DocField',
-		'fieldname': 'fs_packing_details',
-		'fieldtype': 'Check',
-		'label': 'Packing Detials'
+		'colour': u'White:FFF',
+		'description': u'If Sale BOM is defined, the actual BOM of the Pack is displayed as table.\nAvailable in Delivery Note and Sales Order',
+		'doctype': u'DocField',
+		'fieldname': u'fs_packing_details',
+		'fieldtype': u'Check',
+		'label': u'Packing Detials'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'To get Item Group in details table',
-		'doctype': 'DocField',
-		'fieldname': 'fs_item_group_in_details',
-		'fieldtype': 'Check',
-		'label': 'Item Groups in Details'
+		'colour': u'White:FFF',
+		'description': u'To get Item Group in details table',
+		'doctype': u'DocField',
+		'fieldname': u'fs_item_group_in_details',
+		'fieldtype': u'Check',
+		'label': u'Item Groups in Details'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Sales and Purchase'
+		'doctype': u'DocField',
+		'fieldname': u'sales_and_purchase',
+		'fieldtype': u'Section Break',
+		'label': u'Sales and Purchase'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'All export related fields like currency, conversion rate, export total, export grand total etc are available in <br>\nDelivery Note, POS, Quotation, Sales Invoice, Sales Order etc.',
-		'doctype': 'DocField',
-		'fieldname': 'fs_exports',
-		'fieldtype': 'Check',
-		'label': 'Exports'
+		'colour': u'White:FFF',
+		'description': u'All export related fields like currency, conversion rate, export total, export grand total etc are available in <br>\nDelivery Note, POS, Quotation, Sales Invoice, Sales Order etc.',
+		'doctype': u'DocField',
+		'fieldname': u'fs_exports',
+		'fieldtype': u'Check',
+		'label': u'Exports'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'All import related fields like currency, conversion rate, import total, import grand total etc are available in <br>\nPurchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.',
-		'doctype': 'DocField',
-		'fieldname': 'fs_imports',
-		'fieldtype': 'Check',
-		'label': 'Imports'
+		'colour': u'White:FFF',
+		'description': u'All import related fields like currency, conversion rate, import total, import grand total etc are available in <br>\nPurchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.',
+		'doctype': u'DocField',
+		'fieldname': u'fs_imports',
+		'fieldtype': u'Check',
+		'label': u'Imports'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break'
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Field available in Delivery Note, Quotation, Receivable Voucher, Sales Order',
-		'doctype': 'DocField',
-		'fieldname': 'fs_discounts',
-		'fieldtype': 'Check',
-		'label': 'Sales Discounts'
+		'colour': u'White:FFF',
+		'description': u'Field available in Delivery Note, Quotation, Sales Invoice, Sales Order',
+		'doctype': u'DocField',
+		'fieldname': u'fs_discounts',
+		'fieldtype': u'Check',
+		'label': u'Sales Discounts'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice',
-		'doctype': 'DocField',
-		'fieldname': 'fs_purchase_discounts',
-		'fieldtype': 'Check',
-		'label': 'Purchase Discounts'
+		'colour': u'White:FFF',
+		'description': u'Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice',
+		'doctype': u'DocField',
+		'fieldname': u'fs_purchase_discounts',
+		'fieldtype': u'Check',
+		'label': u'Purchase Discounts'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'To track any installation or commissioning related work after sales',
-		'doctype': 'DocField',
-		'fieldname': 'fs_after_sales_installations',
-		'fieldtype': 'Check',
-		'label': 'After Sale Installations'
+		'colour': u'White:FFF',
+		'description': u'To track any installation or commissioning related work after sales',
+		'doctype': u'DocField',
+		'fieldname': u'fs_after_sales_installations',
+		'fieldtype': u'Check',
+		'label': u'After Sale Installations'
 	},
 
 	# DocField
 	{
-		'description': 'Available in \nBill Of Materials, Delivery Note, Payable Voucher, Production Order, Purchase Order, Purchase Receipt, Receivable Voucher, Sales Order, Stock Entry, Timesheet',
-		'doctype': 'DocField',
-		'fieldname': 'fs_projects',
-		'fieldtype': 'Check',
-		'label': 'Projects'
+		'description': u'Available in \nBOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet',
+		'doctype': u'DocField',
+		'fieldname': u'fs_projects',
+		'fieldtype': u'Check',
+		'label': u'Projects'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'If you have Sales Team and Sale Partners (Channel Partners)  they can be tagged and maintain their contribution in the sales activity',
-		'doctype': 'DocField',
-		'fieldname': 'fs_sales_extras',
-		'fieldtype': 'Check',
-		'label': 'Sales Extras'
+		'colour': u'White:FFF',
+		'description': u'If you have Sales Team and Sale Partners (Channel Partners)  they can be tagged and maintain their contribution in the sales activity',
+		'doctype': u'DocField',
+		'fieldname': u'fs_sales_extras',
+		'fieldtype': u'Check',
+		'label': u'Sales Extras'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Accounts'
+		'doctype': u'DocField',
+		'fieldname': u'accounts',
+		'fieldtype': u'Section Break',
+		'label': u'Accounts'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.',
-		'doctype': 'DocField',
-		'fieldname': 'fs_recurring_invoice',
-		'fieldtype': 'Check',
-		'label': 'Recurring Invoice'
+		'colour': u'White:FFF',
+		'description': u'Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.',
+		'doctype': u'DocField',
+		'fieldname': u'fs_recurring_invoice',
+		'fieldtype': u'Check',
+		'label': u'Recurring Invoice'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break'
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'To enable <b>Point of Sale</b> features',
-		'doctype': 'DocField',
-		'fieldname': 'fs_pos',
-		'fieldtype': 'Check',
-		'label': 'Point of Sale'
+		'colour': u'White:FFF',
+		'description': u'To enable <b>Point of Sale</b> features',
+		'doctype': u'DocField',
+		'fieldname': u'fs_pos',
+		'fieldtype': u'Check',
+		'label': u'Point of Sale'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Production'
+		'doctype': u'DocField',
+		'fieldname': u'production',
+		'fieldtype': u'Section Break',
+		'label': u'Production'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'If you involve in manufacturing activity<br>\nEnables item <b>Is Manufactured</b>',
-		'doctype': 'DocField',
-		'fieldname': 'fs_manufacturing',
-		'fieldtype': 'Check',
-		'label': 'Manufacturing'
+		'colour': u'White:FFF',
+		'description': u'If you involve in manufacturing activity<br>\nEnables item <b>Is Manufactured</b>',
+		'doctype': u'DocField',
+		'fieldname': u'fs_manufacturing',
+		'fieldtype': u'Check',
+		'label': u'Manufacturing'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break'
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'If you follow Quality Inspection<br>\nEnables item QA Required and QA No in Purchase Receipt',
-		'doctype': 'DocField',
-		'fieldname': 'fs_quality',
-		'fieldtype': 'Check',
-		'label': 'Quality'
+		'colour': u'White:FFF',
+		'description': u'If you follow Quality Inspection<br>\nEnables item QA Required and QA No in Purchase Receipt',
+		'doctype': u'DocField',
+		'fieldname': u'fs_quality',
+		'fieldtype': u'Check',
+		'label': u'Quality'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Miscelleneous'
+		'doctype': u'DocField',
+		'fieldname': u'miscelleneous',
+		'fieldtype': u'Section Break',
+		'label': u'Miscelleneous'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page',
-		'doctype': 'DocField',
-		'fieldname': 'fs_page_break',
-		'fieldtype': 'Check',
-		'label': 'Page Break'
+		'colour': u'White:FFF',
+		'description': u'If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page',
+		'doctype': u'DocField',
+		'fieldname': u'fs_page_break',
+		'fieldtype': u'Check',
+		'label': u'Page Break'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break'
+		'doctype': u'DocField',
+		'fieldname': u'column_break4',
+		'fieldtype': u'Column Break'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Enables <b>More Info.</b> in all documents',
-		'doctype': 'DocField',
-		'fieldname': 'fs_more_info',
-		'fieldtype': 'Check',
-		'label': 'More Info'
+		'colour': u'White:FFF',
+		'description': u'Enables <b>More Info.</b> in all documents',
+		'doctype': u'DocField',
+		'fieldname': u'fs_more_info',
+		'fieldtype': u'Check',
+		'label': u'More Info'
 	}
-]
+]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/other_charges/__init__.py b/erpnext/setup/doctype/global_defaults/__init__.py
similarity index 100%
rename from erpnext/setup/doctype/other_charges/__init__.py
rename to erpnext/setup/doctype/global_defaults/__init__.py
diff --git a/erpnext/setup/doctype/manage_account/manage_account.js b/erpnext/setup/doctype/global_defaults/global_defaults.js
similarity index 100%
rename from erpnext/setup/doctype/manage_account/manage_account.js
rename to erpnext/setup/doctype/global_defaults/global_defaults.js
diff --git a/erpnext/setup/doctype/manage_account/manage_account.py b/erpnext/setup/doctype/global_defaults/global_defaults.py
similarity index 100%
rename from erpnext/setup/doctype/manage_account/manage_account.py
rename to erpnext/setup/doctype/global_defaults/global_defaults.py
diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.txt b/erpnext/setup/doctype/global_defaults/global_defaults.txt
new file mode 100644
index 0000000..4c37e52
--- /dev/null
+++ b/erpnext/setup/doctype/global_defaults/global_defaults.txt
@@ -0,0 +1,553 @@
+# DocType, Global Defaults
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:21',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:21',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1323855502',
+		'allow_copy': 1,
+		'allow_email': 1,
+		'allow_print': 1,
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'hide_toolbar': 0,
+		'in_create': 1,
+		'issingle': 1,
+		'module': u'Setup',
+		'name': '__common__',
+		'read_only': 1,
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
+		'show_in_menu': 1,
+		'version': 517
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Global Defaults',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Global Defaults',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Global Defaults
+	{
+		'doctype': 'DocType',
+		'name': u'Global Defaults'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'system',
+		'fieldtype': u'Section Break',
+		'label': u'System'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Example: http://frappe.erpnext.com',
+		'doctype': u'DocField',
+		'fieldname': u'account_url',
+		'fieldtype': u'Data',
+		'label': u'Account URL'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sms_sender_name',
+		'fieldtype': u'Data',
+		'label': u'SMS Sender Name'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Section Break',
+		'label': u'Company'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_company',
+		'fieldtype': u'Link',
+		'label': u'Default Company',
+		'options': u'Company',
+		'reqd': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'current_fiscal_year',
+		'fieldtype': u'Link',
+		'label': u'Current Fiscal Year',
+		'options': u'Fiscal Year',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'date_format',
+		'fieldtype': u'Select',
+		'label': u'Date Format',
+		'options': u'yyyy-mm-dd\ndd-mm-yyyy\ndd/mm/yyyy\nmm/dd/yyyy\nmm-dd-yyyy'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'default': u'INR',
+		'doctype': u'DocField',
+		'fieldname': u'default_currency',
+		'fieldtype': u'Select',
+		'label': u'Default Currency',
+		'options': u'link:Currency',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_currency_format',
+		'fieldtype': u'Select',
+		'label': u'Default Currency Format',
+		'options': u'Lacs\nMillions'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_currency_fraction',
+		'fieldtype': u'Data',
+		'label': u'Default Currency Fraction'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock',
+		'fieldtype': u'Section Break',
+		'label': u'Stock'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_item_group',
+		'fieldtype': u'Link',
+		'label': u'Default Item Group',
+		'options': u'Item Group'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'ighelp',
+		'fieldtype': u'HTML',
+		'label': u'IGHelp',
+		'options': u'<a href="#!Sales Browser/Item Group">To manage Item Groups, click here</a>'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_stock_uom',
+		'fieldtype': u'Link',
+		'label': u'Default Stock UOM',
+		'options': u'UOM'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_valuation_method',
+		'fieldtype': u'Select',
+		'label': u'Default Valuation Method',
+		'options': u'FIFO\nMoving Average'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_warehouse_type',
+		'fieldtype': u'Link',
+		'label': u'Default Warehouse Type',
+		'options': u'Warehouse Type'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'auto_indent',
+		'fieldtype': u'Check',
+		'label': u'Raise Purchase Request when stock reaches re-order level'
+	},
+
+	# DocField
+	{
+		'default': u'1',
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Percentage you are allowed to receive or deliver more against the quantity ordered. <p>For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units</p>',
+		'doctype': u'DocField',
+		'fieldname': u'tolerance',
+		'fieldtype': u'Currency',
+		'label': u'Allowance Percent'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Stock level frozen up to this date, nobody can do / modify entry except authorized person',
+		'doctype': u'DocField',
+		'fieldname': u'stock_frozen_upto',
+		'fieldtype': u'Date',
+		'label': u'Stock Frozen Upto'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Users with this role are allowed to do / modify stock entry before frozen date',
+		'doctype': u'DocField',
+		'fieldname': u'stock_auth_role',
+		'fieldtype': u'Link',
+		'label': u'Authorized Role (Frozen Entry)',
+		'options': u'Role'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'accounts',
+		'fieldtype': u'Section Break',
+		'label': u'Accounts'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Accounting entry frozen up to this date, nobody can do / modify entry except authorized person',
+		'doctype': u'DocField',
+		'fieldname': u'acc_frozen_upto',
+		'fieldtype': u'Date',
+		'label': u'Accounts Frozen Upto'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Users with this role are allowed to do / modify accounting entry before frozen date',
+		'doctype': u'DocField',
+		'fieldname': u'bde_auth_role',
+		'fieldtype': u'Link',
+		'label': u'Authourized Role (Frozen Entry)',
+		'options': u'Role'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'credit_controller',
+		'fieldtype': u'Link',
+		'label': u'Credit Controller',
+		'options': u'Role'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break4',
+		'fieldtype': u'Column Break'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'account_info',
+		'fieldtype': u'HTML',
+		'label': u'Account Info',
+		'options': u'<div class="help-box">For more accounting defaults, Open <a href="#!List/Company">Company</a></div>'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'selling',
+		'fieldtype': u'Section Break',
+		'label': u'Selling'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'Customer Name',
+		'doctype': u'DocField',
+		'fieldname': u'cust_master_name',
+		'fieldtype': u'Select',
+		'label': u'Customer Master created by ',
+		'options': u'Customer Name\nNaming Series'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_customer_group',
+		'fieldtype': u'Link',
+		'label': u'Default Customer Group',
+		'options': u'Customer Group'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'cghelp',
+		'fieldtype': u'HTML',
+		'label': u'CGHelp',
+		'options': u'<a href="#!Sales Browser/Customer Group">To manage Customer Groups, click here</a>'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_territory',
+		'fieldtype': u'Link',
+		'label': u'Default Territory',
+		'options': u'Territory'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'territoryhelp',
+		'fieldtype': u'HTML',
+		'label': u'TerritoryHelp',
+		'options': u'<a href="#!Sales Browser/Territory">To manage Territory, click here</a>'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break5',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_price_list',
+		'fieldtype': u'Link',
+		'label': u'Default Price List',
+		'options': u'Price List'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_price_list_currency',
+		'fieldtype': u'Link',
+		'label': u'Default Price List Currency',
+		'options': u'Currency'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'No',
+		'doctype': u'DocField',
+		'fieldname': u'so_required',
+		'fieldtype': u'Select',
+		'label': u'Sales Order Required',
+		'options': u'No\nYes'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'No',
+		'doctype': u'DocField',
+		'fieldname': u'dn_required',
+		'fieldtype': u'Select',
+		'label': u'Delivery Note Required',
+		'options': u'No\nYes'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'buying',
+		'fieldtype': u'Section Break',
+		'label': u'Buying'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'default_supplier_type',
+		'fieldtype': u'Link',
+		'label': u'Default Supplier Type',
+		'options': u'Supplier Type'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'Supplier Name',
+		'doctype': u'DocField',
+		'fieldname': u'supp_master_name',
+		'fieldtype': u'Select',
+		'label': u'Supplier Master created by ',
+		'options': u'Supplier Name\nNaming Series'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'column_break6',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'No',
+		'doctype': u'DocField',
+		'fieldname': u'po_required',
+		'fieldtype': u'Select',
+		'label': u'Purchase Order Required',
+		'options': u'No\nYes'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'No',
+		'doctype': u'DocField',
+		'fieldname': u'pr_required',
+		'fieldtype': u'Select',
+		'label': u'Purchase Receipt Required',
+		'options': u'No\nYes'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'hr',
+		'fieldtype': u'Section Break',
+		'label': u'HR',
+		'options': u'<div style="padding-top: 8px;" class="columnHeading">HR</div>'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Employee record is created using selected field. ',
+		'doctype': u'DocField',
+		'fieldname': u'emp_created_by',
+		'fieldtype': u'Select',
+		'label': u'Employee Records to be created by ',
+		'options': u'\nNaming Series\nEmployee Number'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/import_data_control/import_data_control.txt b/erpnext/setup/doctype/import_data_control/import_data_control.txt
index 06787e0..fa19e10 100644
--- a/erpnext/setup/doctype/import_data_control/import_data_control.txt
+++ b/erpnext/setup/doctype/import_data_control/import_data_control.txt
@@ -3,28 +3,28 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-10-04 16:30:30',
+		'creation': '2012-03-27 14:36:21',
 		'docstatus': 0,
-		'modified': '2010-12-24 11:43:03',
-		'modified_by': 'abhishek@webnotestech.com',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-03-27 14:36:21',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 12
 	},
 
 	# DocType, Import Data Control
 	{
 		'doctype': 'DocType',
-		'name': 'Import Data Control'
+		'name': u'Import Data Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/item_group/item_group.txt b/erpnext/setup/doctype/item_group/item_group.txt
index 7c3e928..b56b8da 100644
--- a/erpnext/setup/doctype/item_group/item_group.txt
+++ b/erpnext/setup/doctype/item_group/item_group.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:06',
+		'creation': '2012-03-27 14:36:21',
 		'docstatus': 0,
-		'modified': '2012-02-06 17:38:00',
+		'modified': '2012-03-27 14:36:21',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -27,7 +27,7 @@
 		'section_style': u'Simple',
 		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 58
+		'version': 59
 	},
 
 	# These values are common for all DocField
@@ -57,54 +57,6 @@
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
 		'cancel': 1,
 		'create': 1,
 		'doctype': u'DocPerm',
@@ -123,16 +75,66 @@
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
 	# DocField
 	{
 		'doctype': u'DocField',
 		'fieldname': u'item_group_name',
 		'fieldtype': u'Data',
 		'label': u'Item Group Name',
+		'no_copy': 0,
 		'oldfieldname': u'item_group_name',
 		'oldfieldtype': u'Data',
 		'permlevel': 0,
-		'reqd': 1
+		'reqd': 1,
+		'search_index': 0
 	},
 
 	# DocField
@@ -141,9 +143,11 @@
 		'fieldname': u'description',
 		'fieldtype': u'Text',
 		'label': u'Description',
+		'no_copy': 0,
 		'oldfieldname': u'description',
 		'oldfieldtype': u'Text',
 		'permlevel': 0,
+		'search_index': 0,
 		'width': u'300px'
 	},
 
@@ -155,7 +159,22 @@
 		'fieldname': u'show_in_website',
 		'fieldtype': u'Check',
 		'label': u'Show in Website',
-		'permlevel': 0
+		'no_copy': 0,
+		'permlevel': 0,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'show_in_catalogue',
+		'fieldtype': u'Check',
+		'label': u'Show in catalogue',
+		'no_copy': 0,
+		'oldfieldname': u'show_in_catalogue',
+		'oldfieldtype': u'Check',
+		'permlevel': 0,
+		'search_index': 0
 	},
 
 	# DocField
@@ -164,11 +183,13 @@
 		'fieldname': u'parent_item_group',
 		'fieldtype': u'Link',
 		'label': u'Parent Item Group',
+		'no_copy': 0,
 		'oldfieldname': u'parent_item_group',
 		'oldfieldtype': u'Link',
 		'options': u'Item Group',
 		'permlevel': 0,
 		'reqd': 1,
+		'search_index': 0,
 		'trigger': u'Client'
 	},
 
@@ -180,11 +201,13 @@
 		'fieldname': u'is_group',
 		'fieldtype': u'Select',
 		'label': u'Has Child Node',
+		'no_copy': 0,
 		'oldfieldname': u'is_group',
 		'oldfieldtype': u'Select',
 		'options': u'\nYes\nNo',
 		'permlevel': 0,
-		'reqd': 1
+		'reqd': 1,
+		'search_index': 0
 	},
 
 	# DocField
@@ -193,9 +216,11 @@
 		'fieldname': u'trash_reason',
 		'fieldtype': u'Small Text',
 		'label': u'Trash Reason',
+		'no_copy': 0,
 		'oldfieldname': u'trash_reason',
 		'oldfieldtype': u'Small Text',
-		'permlevel': 1
+		'permlevel': 1,
+		'search_index': 0
 	},
 
 	# DocField
@@ -245,6 +270,7 @@
 		'options': u'Item Group',
 		'permlevel': 0,
 		'print_hide': 1,
-		'report_hide': 1
+		'report_hide': 1,
+		'search_index': 0
 	}
-]
+]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/manage_account/manage_account.txt b/erpnext/setup/doctype/manage_account/manage_account.txt
deleted file mode 100644
index 4077afe..0000000
--- a/erpnext/setup/doctype/manage_account/manage_account.txt
+++ /dev/null
@@ -1,535 +0,0 @@
-# DocType, Manage Account
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:09',
-		'docstatus': 0,
-		'modified': '2012-01-20 11:25:18',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1323855502',
-		'allow_copy': 1,
-		'allow_email': 1,
-		'allow_print': 1,
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'hide_toolbar': 0,
-		'in_create': 1,
-		'issingle': 1,
-		'module': 'Setup',
-		'name': '__common__',
-		'read_only': 1,
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
-		'show_in_menu': 1,
-		'version': 517
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Manage Account',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Manage Account',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Manage Account
-	{
-		'doctype': 'DocType',
-		'name': 'Manage Account'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'System Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'All'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 2,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'System'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Example: http://frappe.erpnext.com',
-		'doctype': 'DocField',
-		'fieldname': 'account_url',
-		'fieldtype': 'Data',
-		'label': 'Account URL'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'sms_sender_name',
-		'fieldtype': 'Data',
-		'label': 'SMS Sender Name'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Company'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_company',
-		'fieldtype': 'Link',
-		'label': 'Default Company',
-		'options': 'Company',
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'current_fiscal_year',
-		'fieldtype': 'Link',
-		'label': 'Current Fiscal Year',
-		'options': 'Fiscal Year',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'date_format',
-		'fieldtype': 'Select',
-		'label': 'Date Format',
-		'options': 'yyyy-mm-dd\ndd-mm-yyyy\ndd/mm/yyyy\nmm/dd/yyyy\nmm-dd-yyyy'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'default': 'INR',
-		'doctype': 'DocField',
-		'fieldname': 'default_currency',
-		'fieldtype': 'Select',
-		'label': 'Default Currency',
-		'options': 'link:Currency',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_currency_format',
-		'fieldtype': 'Select',
-		'label': 'Default Currency Format',
-		'options': 'Lacs\nMillions'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_currency_fraction',
-		'fieldtype': 'Data',
-		'label': 'Default Currency Fraction'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Stock'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_item_group',
-		'fieldtype': 'Link',
-		'label': 'Default Item Group',
-		'options': 'Item Group'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'IGHelp',
-		'options': '<a href="#!Sales Browser/Item Group">To manage Item Groups, click here</a>'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_stock_uom',
-		'fieldtype': 'Link',
-		'label': 'Default Stock UOM',
-		'options': 'UOM'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_valuation_method',
-		'fieldtype': 'Select',
-		'label': 'Default Valuation Method',
-		'options': 'FIFO\nMoving Average'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_warehouse_type',
-		'fieldtype': 'Link',
-		'label': 'Default Warehouse Type',
-		'options': 'Warehouse Type'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'auto_indent',
-		'fieldtype': 'Check',
-		'label': 'Raise Indent when stock reaches re-order level'
-	},
-
-	# DocField
-	{
-		'default': '1',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Percentage you are allowed to receive or deliver more against the quantity ordered. <p>For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units</p>',
-		'doctype': 'DocField',
-		'fieldname': 'tolerance',
-		'fieldtype': 'Currency',
-		'label': 'Allowance Percent'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Stock level frozen up to this date, nobody can do / modify entry except authorized person',
-		'doctype': 'DocField',
-		'fieldname': 'stock_frozen_upto',
-		'fieldtype': 'Date',
-		'label': 'Stock Frozen Upto'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Users with this role are allowed to do / modify stock entry before frozen date',
-		'doctype': 'DocField',
-		'fieldname': 'stock_auth_role',
-		'fieldtype': 'Link',
-		'label': 'Authorized Role (Frozen Entry)',
-		'options': 'Role'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Accounts'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Accounting entry frozen up to this date, nobody can do / modify entry except authorized person',
-		'doctype': 'DocField',
-		'fieldname': 'acc_frozen_upto',
-		'fieldtype': 'Date',
-		'label': 'Accounts Frozen Upto'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Users with this role are allowed to do / modify accounting entry before frozen date',
-		'doctype': 'DocField',
-		'fieldname': 'bde_auth_role',
-		'fieldtype': 'Link',
-		'label': 'Authourized Role (Frozen Entry)',
-		'options': 'Role'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'credit_controller',
-		'fieldtype': 'Link',
-		'label': 'Credit Controller',
-		'options': 'Role'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'Account Info',
-		'options': '<div class="help-box">For more accounting defaults, Open <a href="#!List/Company">Company</a></div>'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Selling'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'Customer Name',
-		'doctype': 'DocField',
-		'fieldname': 'cust_master_name',
-		'fieldtype': 'Select',
-		'label': 'Customer Master created by ',
-		'options': 'Customer Name\nNaming Series'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_customer_group',
-		'fieldtype': 'Link',
-		'label': 'Default Customer Group',
-		'options': 'Customer Group'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'CGHelp',
-		'options': '<a href="#!Sales Browser/Customer Group">To manage Customer Groups, click here</a>'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_territory',
-		'fieldtype': 'Link',
-		'label': 'Default Territory',
-		'options': 'Territory'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'TerritoryHelp',
-		'options': '<a href="#!Sales Browser/Territory">To manage Territory, click here</a>'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_price_list',
-		'fieldtype': 'Link',
-		'label': 'Default Price List',
-		'options': 'Price List'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_price_list_currency',
-		'fieldtype': 'Link',
-		'label': 'Default Price List Currency',
-		'options': 'Currency'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'No',
-		'doctype': 'DocField',
-		'fieldname': 'so_required',
-		'fieldtype': 'Select',
-		'label': 'Sales Order Required',
-		'options': 'No\nYes'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'No',
-		'doctype': 'DocField',
-		'fieldname': 'dn_required',
-		'fieldtype': 'Select',
-		'label': 'Delivery Note Required',
-		'options': 'No\nYes'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Buying'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_supplier_type',
-		'fieldtype': 'Link',
-		'label': 'Default Supplier Type',
-		'options': 'Supplier Type'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'Supplier Name',
-		'doctype': 'DocField',
-		'fieldname': 'supp_master_name',
-		'fieldtype': 'Select',
-		'label': 'Supplier Master created by ',
-		'options': 'Supplier Name\nNaming Series'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'No',
-		'doctype': 'DocField',
-		'fieldname': 'po_required',
-		'fieldtype': 'Select',
-		'label': 'Purchase Order Required',
-		'options': 'No\nYes'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'No',
-		'doctype': 'DocField',
-		'fieldname': 'pr_required',
-		'fieldtype': 'Select',
-		'label': 'Purchase Receipt Required',
-		'options': 'No\nYes'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'HR',
-		'options': '<div style="padding-top: 8px;" class="columnHeading">HR</div>'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Employee record is created using selected field. ',
-		'doctype': 'DocField',
-		'fieldname': 'emp_created_by',
-		'fieldtype': 'Select',
-		'label': 'Employee Records to be created by ',
-		'options': '\nNaming Series\nEmployee Number'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/market_segment/market_segment.txt b/erpnext/setup/doctype/market_segment/market_segment.txt
index 6ecdb25..64832d2 100644
--- a/erpnext/setup/doctype/market_segment/market_segment.txt
+++ b/erpnext/setup/doctype/market_segment/market_segment.txt
@@ -3,78 +3,75 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:10',
+		'creation': '2012-03-27 14:36:21',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:21',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:segment_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:segment_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'name_case': 'Title Case',
+		'name_case': u'Title Case',
 		'read_only': 0,
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Market Segment',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Market Segment',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# DocType, Market Segment
 	{
 		'doctype': 'DocType',
-		'name': 'Market Segment'
+		'name': u'Market Segment'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'segment_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Segment Name',
-		'oldfieldname': 'segment_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'segment_name',
+		'fieldtype': u'Data',
+		'label': u'Segment Name',
+		'oldfieldname': u'segment_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'details',
-		'fieldtype': 'Text',
-		'idx': 3,
-		'label': 'Details',
-		'oldfieldname': 'details',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'details',
+		'fieldtype': u'Text',
+		'label': u'Details',
+		'oldfieldname': u'details',
+		'oldfieldtype': u'Text',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/naming_series/naming_series.txt b/erpnext/setup/doctype/naming_series/naming_series.txt
index a02d5b7..dd3a0ef 100644
--- a/erpnext/setup/doctype/naming_series/naming_series.txt
+++ b/erpnext/setup/doctype/naming_series/naming_series.txt
@@ -3,62 +3,61 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-10-27 14:29:55',
+		'creation': '2012-03-27 14:36:21',
 		'docstatus': 0,
-		'modified': '2010-11-26 18:45:26',
-		'modified_by': 'sneha@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:21',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'hide_heading': 1,
 		'hide_toolbar': 1,
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 58
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Naming Series',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Naming Series',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Naming Series',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Naming Series',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Naming Series
 	{
 		'doctype': 'DocType',
-		'name': 'Naming Series'
+		'name': u'Naming Series'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
@@ -67,20 +66,18 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
@@ -88,119 +85,112 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 0,
 		'write': 0
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Guest'
+		'role': u'Guest'
 	},
 
 	# DocField
 	{
-		'description': 'Set prefix for numbering series on your transactions',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Setup Series'
+		'description': u'Set prefix for numbering series on your transactions',
+		'doctype': u'DocField',
+		'fieldname': u'setup_series',
+		'fieldtype': u'Section Break',
+		'label': u'Setup Series'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 2,
-		'label': 'Head HTML'
+		'doctype': u'DocField',
+		'fieldname': u'head_html',
+		'fieldtype': u'HTML',
+		'label': u'Head HTML'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'select_doc_for_series',
-		'fieldtype': 'Select',
-		'idx': 3,
-		'label': 'Select Transaction'
+		'doctype': u'DocField',
+		'fieldname': u'select_doc_for_series',
+		'fieldtype': u'Select',
+		'label': u'Select Transaction'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 4,
-		'label': 'Help HTML',
-		'options': '<div style="padding: 8px; background-color: #FFD; margin: 8px 0px;">\nWrite the list of series options in the list below. Each on a new line<br>\nAllowed special characters are "/" and "-"<br>\nExamples:<br>\nINV-<br>\nINV-10-<br>\nINVK-<br>\n</div>'
+		'doctype': u'DocField',
+		'fieldname': u'help_html',
+		'fieldtype': u'HTML',
+		'label': u'Help HTML',
+		'options': u'<div style="padding: 8px; background-color: #FFD; margin: 8px 0px;">\nWrite the list of series options in the list below. Each on a new line<br>\nAllowed special characters are "/" and "-"<br>\nExamples:<br>\nINV-<br>\nINV-10-<br>\nINVK-<br>\n</div>'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'set_options',
-		'fieldtype': 'Text',
-		'idx': 5,
-		'label': 'Set Series'
+		'doctype': u'DocField',
+		'fieldname': u'set_options',
+		'fieldtype': u'Text',
+		'label': u'Set Series'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Check this if you want to force the user to select a series before saving. There will be no default if you check this.',
-		'doctype': 'DocField',
-		'fieldname': 'user_must_always_select',
-		'fieldtype': 'Check',
-		'idx': 6,
-		'label': 'User must always select'
+		'colour': u'White:FFF',
+		'description': u'Check this if you want to force the user to select a series before saving. There will be no default if you check this.',
+		'doctype': u'DocField',
+		'fieldname': u'user_must_always_select',
+		'fieldtype': u'Check',
+		'label': u'User must always select'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 7,
-		'label': 'Update',
-		'options': 'update_series'
+		'doctype': u'DocField',
+		'fieldname': u'update',
+		'fieldtype': u'Button',
+		'label': u'Update',
+		'options': u'update_series'
 	},
 
 	# DocField
 	{
-		'description': 'Set starting number for series of your transactions',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 8,
-		'label': 'Update Series'
+		'description': u'Set starting number for series of your transactions',
+		'doctype': u'DocField',
+		'fieldname': u'update_series',
+		'fieldtype': u'Section Break',
+		'label': u'Update Series'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'prefix',
-		'fieldtype': 'Data',
-		'idx': 9,
-		'label': 'Prefix'
+		'doctype': u'DocField',
+		'fieldname': u'prefix',
+		'fieldtype': u'Data',
+		'label': u'Prefix'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'starts_from',
-		'fieldtype': 'Int',
-		'idx': 10,
-		'label': 'Starts From'
+		'doctype': u'DocField',
+		'fieldname': u'starts_from',
+		'fieldtype': u'Int',
+		'label': u'Starts From'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 11,
-		'label': 'Update Series Start',
-		'options': 'update_series_start'
+		'doctype': u'DocField',
+		'fieldname': u'update_series_start',
+		'fieldtype': u'Button',
+		'label': u'Update Series Start',
+		'options': u'update_series_start'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/naming_series_options/naming_series_options.txt b/erpnext/setup/doctype/naming_series_options/naming_series_options.txt
index b964556..88554ec 100644
--- a/erpnext/setup/doctype/naming_series_options/naming_series_options.txt
+++ b/erpnext/setup/doctype/naming_series_options/naming_series_options.txt
@@ -3,81 +3,80 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:17',
+		'creation': '2012-03-27 14:36:21',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:21',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': '__NSO.#####',
-		'colour': 'White:FFF',
+		'autoname': u'__NSO.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'in_create': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 0,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 4
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 5
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Naming Series Options',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Naming Series Options',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Naming Series Options',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Naming Series Options',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, Naming Series Options
 	{
 		'doctype': 'DocType',
-		'name': 'Naming Series Options'
+		'name': u'Naming Series Options'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'doc_type',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Doc Type',
-		'oldfieldname': 'doc_type',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'doc_type',
+		'fieldtype': u'Data',
+		'label': u'Doc Type',
+		'oldfieldname': u'doc_type',
+		'oldfieldtype': u'Data',
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'series_options',
-		'fieldtype': 'Text',
-		'idx': 2,
-		'label': 'Series Options',
-		'oldfieldname': 'series_options',
-		'oldfieldtype': 'Text'
+		'doctype': u'DocField',
+		'fieldname': u'series_options',
+		'fieldtype': u'Text',
+		'label': u'Series Options',
+		'oldfieldname': u'series_options',
+		'oldfieldtype': u'Text'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/notification_control/notification_control.py b/erpnext/setup/doctype/notification_control/notification_control.py
index 9dc0076..650486e 100644
--- a/erpnext/setup/doctype/notification_control/notification_control.py
+++ b/erpnext/setup/doctype/notification_control/notification_control.py
@@ -99,7 +99,7 @@
 		"""
 			Get default print format from doclayer
 		"""
-		doclayer = get_obj('DocLayer', 'DocLayer')
+		doclayer = get_obj('Customize Form', 'Customize Form')
 		doclayer.doc.doc_type = args.get('doctype')
 		doclayer.get()
 		if doclayer.doc.default_print_format:
diff --git a/erpnext/setup/doctype/notification_control/notification_control.txt b/erpnext/setup/doctype/notification_control/notification_control.txt
index e93408c..49526ca 100644
--- a/erpnext/setup/doctype/notification_control/notification_control.txt
+++ b/erpnext/setup/doctype/notification_control/notification_control.txt
@@ -3,11 +3,11 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:07',
+		'creation': '2012-03-27 14:36:22',
 		'docstatus': 0,
-		'modified': '2010-10-14 10:48:02',
-		'modified_by': 'nabin@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:22',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
@@ -15,33 +15,33 @@
 		'allow_copy': 1,
 		'allow_email': 1,
 		'allow_print': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 79
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Notification Control',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Notification Control',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Notification Control',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Notification Control',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1
 	},
@@ -49,282 +49,259 @@
 	# DocType, Notification Control
 	{
 		'doctype': 'DocType',
-		'name': 'Notification Control'
+		'name': u'Notification Control'
 	},
 
 	# DocPerm
 	{
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'Guest',
+		'doctype': u'DocPerm',
+		'role': u'Guest',
 		'write': 0
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'System Manager',
+		'doctype': u'DocPerm',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Send Auto-notification for'
+		'doctype': u'DocField',
+		'fieldname': u'send_autonotification_for',
+		'fieldtype': u'Section Break',
+		'label': u'Send Auto-notification for'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 2,
-		'label': 'Sales',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'sales',
+		'fieldtype': u'Column Break',
+		'label': u'Sales',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'enquiry',
-		'fieldtype': 'Check',
+		'doctype': u'DocField',
+		'fieldname': u'enquiry',
+		'fieldtype': u'Check',
 		'hidden': 1,
-		'idx': 3,
-		'label': 'Enquiry',
+		'label': u'Opportunity',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'quotation',
-		'fieldtype': 'Check',
-		'idx': 4,
-		'label': 'Quotation'
+		'doctype': u'DocField',
+		'fieldname': u'quotation',
+		'fieldtype': u'Check',
+		'label': u'Quotation'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_order',
-		'fieldtype': 'Check',
-		'idx': 5,
-		'label': 'Sales Order'
+		'doctype': u'DocField',
+		'fieldname': u'sales_order',
+		'fieldtype': u'Check',
+		'label': u'Sales Order'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_note',
-		'fieldtype': 'Check',
-		'idx': 6,
-		'label': 'Delivery Note'
+		'doctype': u'DocField',
+		'fieldname': u'delivery_note',
+		'fieldtype': u'Check',
+		'label': u'Delivery Note'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'receivable_voucher',
-		'fieldtype': 'Check',
-		'idx': 7,
-		'label': 'Sales Invoice'
+		'doctype': u'DocField',
+		'fieldname': u'receivable_voucher',
+		'fieldtype': u'Check',
+		'label': u'Sales Invoice'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 8,
-		'label': 'Purchase',
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'purchase',
+		'fieldtype': u'Column Break',
+		'label': u'Purchase',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_order',
-		'fieldtype': 'Check',
-		'idx': 9,
-		'label': 'Purchase Order'
+		'doctype': u'DocField',
+		'fieldname': u'purchase_order',
+		'fieldtype': u'Check',
+		'label': u'Purchase Order'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_receipt',
-		'fieldtype': 'Check',
-		'idx': 10,
-		'label': 'Purchase Receipt'
+		'doctype': u'DocField',
+		'fieldname': u'purchase_receipt',
+		'fieldtype': u'Check',
+		'label': u'Purchase Receipt'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'payable_voucher',
-		'fieldtype': 'Check',
-		'idx': 11,
-		'label': 'Purchase Invoice',
+		'doctype': u'DocField',
+		'fieldname': u'payable_voucher',
+		'fieldtype': u'Check',
+		'label': u'Purchase Invoice',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'expense_voucher',
-		'fieldtype': 'Check',
-		'idx': 12,
-		'label': 'Expense Voucher'
+		'doctype': u'DocField',
+		'fieldname': u'expense_voucher',
+		'fieldtype': u'Check',
+		'label': u'Expense Claim'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 13,
-		'label': 'Customize the Notification'
+		'doctype': u'DocField',
+		'fieldname': u'customize_the_notification',
+		'fieldtype': u'Section Break',
+		'label': u'Customize the Notification'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'select_transaction',
-		'fieldtype': 'Select',
-		'idx': 14,
-		'label': 'Select Transaction',
-		'options': '\nQuotation\nSales Order\nDelivery Note\nSales Invoice\nPayment Received\nPurchase Order\nPurchase Receipt\nPayment Sent',
-		'trigger': 'Client'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'select_transaction',
+		'fieldtype': u'Select',
+		'label': u'Select Transaction',
+		'options': u'\nQuotation\nSales Order\nDelivery Note\nSales Invoice\nPayment Received\nPurchase Order\nPurchase Receipt\nPayment Sent',
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'custom_message',
-		'fieldtype': 'Text Editor',
-		'idx': 15,
-		'label': 'Custom Message'
+		'doctype': u'DocField',
+		'fieldname': u'custom_message',
+		'fieldtype': u'Text Editor',
+		'label': u'Custom Message'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 16,
-		'label': 'Update',
-		'options': 'set_message'
+		'doctype': u'DocField',
+		'fieldname': u'update',
+		'fieldtype': u'Button',
+		'label': u'Update',
+		'options': u'set_message'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'quotation_message',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'quotation_message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 17,
-		'label': 'Quotation Message',
+		'label': u'Quotation Message',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_order_message',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'sales_order_message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 18,
-		'label': 'Sales Order Message',
+		'label': u'Sales Order Message',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_note_message',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_note_message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 19,
-		'label': 'Delivery Note Message',
+		'label': u'Delivery Note Message',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_invoice_message',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'sales_invoice_message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 20,
-		'label': 'Sales Invoice Message',
+		'label': u'Sales Invoice Message',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'payment_received_message',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'payment_received_message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 21,
-		'label': 'Payment Received Message',
+		'label': u'Payment Received Message',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_order_message',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_order_message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 22,
-		'label': 'Purchase Order Message',
+		'label': u'Purchase Order Message',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_receipt_message',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_receipt_message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 23,
-		'label': 'Purchase Receipt Message',
+		'label': u'Purchase Receipt Message',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'payment_sent_message',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'payment_sent_message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 24,
-		'label': 'Payment Sent Message',
+		'label': u'Payment Sent Message',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'expense_voucher_approved_message',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'expense_voucher_approved_message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 25,
-		'label': 'Expense Voucher Approved Message',
+		'label': u'Expense Claim Approved Message',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'expense_voucher_rejected_message',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'expense_voucher_rejected_message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 26,
-		'label': 'Expense Voucher Rejected Message',
+		'label': u'Expense Claim Rejected Message',
 		'print_hide': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/order_lost_reason/order_lost_reason.txt b/erpnext/setup/doctype/order_lost_reason/order_lost_reason.txt
deleted file mode 100644
index d1ef5a8..0000000
--- a/erpnext/setup/doctype/order_lost_reason/order_lost_reason.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-# DocType, Order Lost Reason
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:10',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'allow_trash': 1,
-		'autoname': 'field:order_lost_reason',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 4
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Order Lost Reason',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Order Lost Reason',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'write': 1
-	},
-
-	# DocType, Order Lost Reason
-	{
-		'doctype': 'DocType',
-		'name': 'Order Lost Reason'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Sales Master Manager',
-		'submit': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'order_lost_reason',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Order Lost Reason',
-		'oldfieldname': 'order_lost_reason',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/other_charges/other_charges.js b/erpnext/setup/doctype/other_charges/other_charges.js
deleted file mode 100644
index 85bdb79..0000000
--- a/erpnext/setup/doctype/other_charges/other_charges.js
+++ /dev/null
@@ -1,187 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-//--------- ONLOAD -------------
-cur_frm.cscript.onload = function(doc, cdt, cdn) {
-  // 
-}
-
-/*cur_frm.cscript.refresh = function(doc, cdt, cdn) {
-   
-}*/
-
-// For customizing print
-cur_frm.pformat.net_total = function(doc) {
-	return '';
-}
-
-cur_frm.pformat.grand_total_export = function(doc) {
-	return '';
-}
-
-cur_frm.pformat.rounded_total_export = function(doc) {
-	return '';
-}
-
-cur_frm.pformat.in_words_export = function(doc) {
-	return '';
-}
-
-cur_frm.pformat.other_charges= function(doc){
-  //function to make row of table
-	var make_row = function(title,val,bold){
-		var bstart = '<b>'; var bend = '</b>';
-		return '<tr><td style="width:50%;">'+(bold?bstart:'')+title+(bold?bend:'')+'</td>'
-		 +'<td style="width:25%;text-align:right;">'+doc.currency+'</td>'
-		 +'<td style="width:25%;text-align:right;">'+val+'</td>'
-		 +'</tr>'
-	}
-
-	function convert_rate(val){
-		var new_val = flt(val)/flt(doc.conversion_rate);
-		return new_val;
-	}
-	out ='';
-	if (!doc.print_without_amount) {
-		print_hide_dict = {};
-		for(var i in locals['DocField']) {
-			var doc_field = locals['DocField'][i];
-			if(doc_field.fieldname) {
-				print_hide_dict[doc_field.fieldname] = doc_field.print_hide;
-			}
-		}
-
-		var cl = getchildren('RV Tax Detail',doc.name,'other_charges');
-
-		// outer table  
-		var out='<div><table class="noborder" style="width:100%"><tr><td style="width: 60%"></td><td>';
-
-		// main table
-
-		out +='<table class="noborder" style="width:100%">';
-		if(!print_hide_dict['net_total']) {
-			out +=make_row('Net Total',fmt_money(convert_rate(doc.net_total)),1);
-		}
-
-		// add rows
-		if(cl.length){
-			for(var i=0;i<cl.length;i++){
-				if(fmt_money(convert_rate(cl[i].tax_amount))!=0 && !cl[i].included_in_print_rate)
-				  out += make_row(cl[i].description,fmt_money(convert_rate(cl[i].tax_amount)),0);
-			}
-		}
-
-		// grand total
-		if(!print_hide_dict['grand_total_export']) {
-			out += make_row('Grand Total',fmt_money(doc.grand_total_export),1);
-		}
-		
-		if(!print_hide_dict['rounded_total_export']) {
-			out += make_row('Rounded Total',fmt_money(doc.rounded_total_export),1);
-		}
-
-		if(doc.in_words_export && !print_hide_dict['in_words_export']){
-			out +='</table></td></tr>';
-			out += '<tr><td colspan = "2">';
-			out += '<table><tr><td style="width:25%;"><b>In Words</b></td>'
-			out+= '<td style="width:50%;">'+doc.in_words_export+'</td></tr>'
-		}
-		out +='</table></td></tr></table></div>';   
-	}
-	return out;
-}
-
-cur_frm.cscript.charge_type = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(d.idx == 1 && (d.charge_type == 'On Previous Row Amount' || d.charge_type == 'On Previous Row Total')){
-    alert("You cannot select Charge Type as 'On Previous Row Amount' or 'On Previous Row Total' for first row");
-    d.charge_type = '';
-  }
-  validated = false;
-  refresh_field('charge_type',d.name,'other_charges');
-  cur_frm.cscript.row_id(doc, cdt, cdn);
-  cur_frm.cscript.rate(doc, cdt, cdn);
-  cur_frm.cscript.tax_amount(doc, cdt, cdn);
-}
-
-cur_frm.cscript.row_id = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(!d.charge_type && d.row_id){
-    alert("Please select Charge Type first");
-    d.row_id = '';
-  }
-  else if((d.charge_type == 'Actual' || d.charge_type == 'On Net Total') && d.row_id) {
-    alert("You can Enter Row only if your Charge Type is 'On Previous Row Amount' or ' Previous Row Total'");
-    d.row_id = '';
-  }
-  else if((d.charge_type == 'On Previous Row Amount' || d.charge_type == 'On Previous Row Total') && d.row_id){
-    if(d.row_id >= d.idx){
-      alert("You cannot Enter Row no. greater than or equal to current row no. for this Charge type");
-      d.row_id = '';
-    }
-  }
-  validated = false;
-  refresh_field('row_id',d.name,'other_charges');
-}
-
-/*---------------------- Get rate if account_head has account_type as TAX or CHARGEABLE-------------------------------------*/
-
-cur_frm.fields_dict['other_charges'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
-  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND (tabAccount.account_type = "Tax" OR tabAccount.account_type = "Chargeable") AND tabAccount.company = "'+doc.company+'" AND  tabAccount.name LIKE "%s"'
-}
-
-cur_frm.fields_dict['other_charges'].grid.get_field("cost_center_other_charges").get_query = function(doc) {
-	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
-}
-
-
-cur_frm.cscript.account_head = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(!d.charge_type && d.account_head){
-    alert("Please select Charge Type first");
-    validated = false;
-    d.account_head = '';
-  }
-  else if(d.account_head && d.charge_type) {
-    arg = "{'charge_type' : '" + d.charge_type +"', 'account_head' : '" + d.account_head + "'}";
-    get_server_fields('get_rate', arg, 'other_charges', doc, cdt, cdn, 1);
-  }
-  refresh_field('account_head',d.name,'other_charges');
-}
-
-cur_frm.cscript.rate = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(!d.charge_type && d.rate) {
-    alert("Please select Charge Type first");
-    d.rate = '';
-  }
-  validated = false;
-  refresh_field('rate',d.name,'other_charges');
-}
-
-cur_frm.cscript.tax_amount = function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  if(!d.charge_type && d.tax_amount){
-    alert("Please select Charge Type first");
-    d.tax_amount = '';
-  }
-  else if(d.charge_type && d.tax_amount) {
-    alert("You cannot directly enter Amount and if your Charge Type is Actual enter your amount in Rate");
-    d.tax_amount = '';
-  }
-  validated = false;
-  refresh_field('tax_amount',d.name,'other_charges');
-}
diff --git a/erpnext/setup/doctype/other_charges/other_charges.py b/erpnext/setup/doctype/other_charges/other_charges.py
deleted file mode 100644
index eb9ebb5..0000000
--- a/erpnext/setup/doctype/other_charges/other_charges.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self, doc, doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-
-  # Get Tax Rate if account type is Tax
-  # ===================================================================
-  def get_rate(self, arg):
-    get_obj('Sales Common').get_rate(arg, self)
-
-  def update_other_default_charges(self):
-    sql("update `tabOther Charges` set is_default = 0 where ifnull(is_default,0) = 1 and name != '%s' and company = '%s'" % (self.doc.name, self.doc.company))
-
-  def on_update(self):
-    self.update_other_default_charges()
diff --git a/erpnext/setup/doctype/other_charges/other_charges.txt b/erpnext/setup/doctype/other_charges/other_charges.txt
deleted file mode 100644
index ac9c6c5..0000000
--- a/erpnext/setup/doctype/other_charges/other_charges.txt
+++ /dev/null
@@ -1,204 +0,0 @@
-# DocType, Other Charges
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:11',
-		'docstatus': 0,
-		'modified': '2011-01-07 11:04:07',
-		'modified_by': 'rakesh@iwebnotes.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'allow_trash': 1,
-		'autoname': 'field:title',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
-		'name': '__common__',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 56
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Other Charges',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Other Charges',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Other Charges
-	{
-		'doctype': 'DocType',
-		'name': 'Other Charges'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Sales Master Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 1,
-		'role': 'Sales User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 0,
-		'role': 'Sales User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'Accounts Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
-		'permlevel': 0,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 6,
-		'permlevel': 0,
-		'role': 'Sales Master Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 2,
-		'label': 'Other Charges Details',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'title',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'in_filter': 1,
-		'label': 'Title',
-		'oldfieldname': 'title',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'is_default',
-		'fieldtype': 'Check',
-		'idx': 4,
-		'label': 'Default',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 5,
-		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'other_charges',
-		'fieldtype': 'Table',
-		'idx': 6,
-		'label': 'Other Charges',
-		'oldfieldname': 'other_charges',
-		'oldfieldtype': 'Table',
-		'options': 'RV Tax Detail',
-		'permlevel': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/period/period.txt b/erpnext/setup/doctype/period/period.txt
index 15941a5..77ee019 100644
--- a/erpnext/setup/doctype/period/period.txt
+++ b/erpnext/setup/doctype/period/period.txt
@@ -3,120 +3,113 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:12',
+		'creation': '2012-03-27 14:36:22',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'nabin@webnotestech.com'
+		'modified': '2012-03-27 14:36:22',
+		'modified_by': u'Administrator',
+		'owner': u'nabin@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'field:period_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:period_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 5
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Period',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Period',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Period',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Period',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 0
 	},
 
 	# DocType, Period
 	{
 		'doctype': 'DocType',
-		'name': 'Period'
+		'name': u'Period'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1
+		'doctype': u'DocPerm'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'period_name',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Period Name',
-		'oldfieldname': 'period_name',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'period_name',
+		'fieldtype': u'Data',
+		'label': u'Period Name',
+		'oldfieldname': u'period_name',
+		'oldfieldtype': u'Data'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'start_date',
-		'fieldtype': 'Date',
-		'idx': 2,
-		'label': 'Start Date',
-		'oldfieldname': 'start_date',
-		'oldfieldtype': 'Date'
+		'doctype': u'DocField',
+		'fieldname': u'start_date',
+		'fieldtype': u'Date',
+		'label': u'Start Date',
+		'oldfieldname': u'start_date',
+		'oldfieldtype': u'Date'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'end_date',
-		'fieldtype': 'Date',
-		'idx': 3,
-		'label': 'End Date',
-		'oldfieldname': 'end_date',
-		'oldfieldtype': 'Date'
+		'doctype': u'DocField',
+		'fieldname': u'end_date',
+		'fieldtype': u'Date',
+		'label': u'End Date',
+		'oldfieldname': u'end_date',
+		'oldfieldtype': u'Date'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'period_type',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Period Type',
-		'oldfieldname': 'period_type',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'period_type',
+		'fieldtype': u'Data',
+		'label': u'Period Type',
+		'oldfieldname': u'period_type',
+		'oldfieldtype': u'Data'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Data',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Data'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/period_control/period_control.txt b/erpnext/setup/doctype/period_control/period_control.txt
index 5a4117e..420b319 100644
--- a/erpnext/setup/doctype/period_control/period_control.txt
+++ b/erpnext/setup/doctype/period_control/period_control.txt
@@ -3,30 +3,30 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:12',
+		'creation': '2012-03-27 14:36:22',
 		'docstatus': 0,
-		'modified': '2011-01-03 17:46:14',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'nabin@webnotestech.com'
+		'modified': '2012-03-27 14:36:22',
+		'modified_by': u'Administrator',
+		'owner': u'nabin@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 1,
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 36
 	},
 
 	# DocType, Period Control
 	{
 		'doctype': 'DocType',
-		'name': 'Period Control'
+		'name': u'Period Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/permission_control/permission_control.py b/erpnext/setup/doctype/permission_control/permission_control.py
index bb05bec..41f3a48 100644
--- a/erpnext/setup/doctype/permission_control/permission_control.py
+++ b/erpnext/setup/doctype/permission_control/permission_control.py
@@ -57,25 +57,32 @@
 	# Get Perm Level, Perm type of Doctypes of Module and Role Selected
 	# -------------------------------------------------------------------
 	def get_permissions(self,doctype):
-		ret = []
-			
-		# Get permtype for the role selected
-		ptype = sql("select `role`,`permlevel`,`read`,`write`,`create`,`submit`,`cancel`,`amend` from tabDocPerm where `parent` = %s order by `permlevel` ASC",doctype,as_dict = 1)
+		import webnotes.model.doctype
+		doclist = webnotes.model.doctype.get(doctype, form=0)
+		
+		ptype = [{
+				'role': perm.role,
+				'permlevel': cint(perm.permlevel),
+				'read': cint(perm.read),
+				'write': cint(perm.write),
+				'create': cint(perm.create),
+				'cancel': cint(perm.cancel),
+				'submit': cint(perm.submit),
+				'amend': cint(perm.amend)
+				} for perm in sorted(doclist,
+					key=lambda d: [d.fields.get('permlevel'),
+						d.fields.get('role')]) if perm.doctype=='DocPerm']
 
-		# to convert 0L in 0 in values of dictionary
-		for p in ptype:
-			for key in p:
-				if key!='role':
-					p[key] = cint(p[key])
-			ret.append(p)
-						
-		# fields list
-		fl = ['', 'owner'] + [l[0] for l in sql("""\
-			select fieldname from tabDocField where parent=%s
-			and ((fieldtype='Link' and ifnull(options,'')!='') or
-			(fieldtype='Select') and lcase(ifnull(options,'')) like 'link:%%')""", doctype)]
-						
-		return {'perms':ret, 'fields':fl}
+		fl = ['', 'owner'] + [d.fieldname for d in doclist \
+				if d.doctype=='DocField' and ((d.fieldtype=='Link' \
+				and cstr(d.options)!='') or (d.fieldtype=='Select' and
+					'link:' in cstr(d.options).lower()))]
+
+		return {
+			'perms':ptype,
+			'fields':fl,
+			'is_submittable': doclist[0].fields.get('is_submittable')
+		}
 		
 	# get default values
 	# ------------------
@@ -148,7 +155,7 @@
 	def update_permissions(self,args=''):
 		args = eval(args)
 		di = args['perm_dict']
-		doctype_keys = di.keys()	# ['Enquiry','Competitor','Zone','State']
+		doctype_keys = di.keys()	# ['Opportunity','Competitor','Zone','State']
 		for parent in doctype_keys:
 			for permlevel in di[parent].keys():
 				for role in di[parent][permlevel].keys(): 
@@ -183,6 +190,11 @@
 							sql("delete from tabDocPerm where parent = %s and role = %s and ifnull(permlevel,0) = %s",(parent, role, cint(permlevel)))
 						
 						sql("update tabDocType set modified = %s where name = %s",(now(), parent))
+
+
+		from webnotes.utils.cache import CacheItem
+		CacheItem(parent).clear()		
+
 		msgprint("Permissions Updated")
 				
 	# Get Fields based on DocType and Permlevel
diff --git a/erpnext/setup/doctype/permission_control/permission_control.txt b/erpnext/setup/doctype/permission_control/permission_control.txt
index 397d6c7..dd95608 100644
--- a/erpnext/setup/doctype/permission_control/permission_control.txt
+++ b/erpnext/setup/doctype/permission_control/permission_control.txt
@@ -3,24 +3,24 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:12',
+		'creation': '2012-03-27 14:36:22',
 		'docstatus': 0,
-		'modified': '2010-12-20 15:09:18',
-		'modified_by': 'sneha@webnotestech.com',
-		'owner': 'saumil@webnotestech.com'
+		'modified': '2012-03-27 14:36:22',
+		'modified_by': u'Administrator',
+		'owner': u'saumil@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 1,
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 15
 	},
@@ -28,6 +28,6 @@
 	# DocType, Permission Control
 	{
 		'doctype': 'DocType',
-		'name': 'Permission Control'
+		'name': u'Permission Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/personalize/__init__.py b/erpnext/setup/doctype/personalize/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/doctype/personalize/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/personalize/personalize.py b/erpnext/setup/doctype/personalize/personalize.py
deleted file mode 100644
index acf71e5..0000000
--- a/erpnext/setup/doctype/personalize/personalize.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import webnotes
-
-class DocType:
-	def __init__(self, d, dl):
-		self.doc, self.doclist = d, dl
-	
-	#
-	# load current banner
-	#
-	def onload(self):
-		self.doc.header_html = webnotes.conn.get_value('Control Panel', None, 'client_name')
-	
-	#
-	# on update
-	#
-	def validate(self):
-		from webnotes.utils import cint
-		if self.doc.file_list and cint(self.doc.set_from_attachment):
-			self.set_html_from_image()
-
-		# update control panel - so it loads new letter directly
-		webnotes.conn.set_value('Control Panel', None, 'client_name', self.doc.header_html)
-		 
-		# clear the cache so that the new letter head is uploaded
-		webnotes.conn.sql("delete from __SessionCache")
-
-	#
-	# set html for image
-	#
-	def set_html_from_image(self):
-		file_name = self.doc.file_list.split(',')[0]
-		self.doc.header_html = """<div>
-<img style="max-height: 120px; max-width: 600px" src="files/%s"/>
-</div>""" % file_name
diff --git a/erpnext/setup/doctype/personalize/personalize.txt b/erpnext/setup/doctype/personalize/personalize.txt
deleted file mode 100644
index bd4e1a2..0000000
--- a/erpnext/setup/doctype/personalize/personalize.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-# DocType, Personalize
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-03-22 16:06:53',
-		'docstatus': 0,
-		'modified': '2011-03-17 12:20:29',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1303277497',
-		'allow_attach': 1,
-		'allow_copy': 1,
-		'allow_email': 1,
-		'allow_print': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'document_type': 'Other',
-		'in_create': 1,
-		'issingle': 1,
-		'max_attachments': 1,
-		'module': 'Setup',
-		'name': '__common__',
-		'read_only': 1,
-		'section_style': 'Simple',
-		'version': 4
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Personalize',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Personalize',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocType, Personalize
-	{
-		'doctype': 'DocType',
-		'name': 'Personalize'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 1,
-		'label': 'Help HTML',
-		'options': '<div class="help_box">You can edit HTML for your banner or add an attachment and click on "Set from Attachment"</div>'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'header_html',
-		'fieldtype': 'Code',
-		'idx': 2,
-		'label': 'Banner HTML'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'set_from_attachment',
-		'fieldtype': 'Check',
-		'idx': 3,
-		'label': 'Set from attachment'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
-		'hidden': 1,
-		'idx': 4,
-		'label': 'File List'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/price_list/price_list.js b/erpnext/setup/doctype/price_list/price_list.js
index 173e42f..67caaf1 100644
--- a/erpnext/setup/doctype/price_list/price_list.js
+++ b/erpnext/setup/doctype/price_list/price_list.js
@@ -30,7 +30,7 @@
 	}
 }
 
-cur_frm.cscript['Clear Prices'] = function(doc, cdt, cdn) {
+cur_frm.cscript.clear_prices = function(doc, cdt, cdn) {
 	if(confirm("This action will clear all rates for '"+ doc.name +"' from the Item Master and cannot be un-done. Are you sure you want to continue?")) {
 		$c_obj([doc], 'clear_prices', '', function(r, rt) { });
 	}
diff --git a/erpnext/setup/doctype/price_list/price_list.py b/erpnext/setup/doctype/price_list/price_list.py
index ec1a7c2..1c6959c 100644
--- a/erpnext/setup/doctype/price_list/price_list.py
+++ b/erpnext/setup/doctype/price_list/price_list.py
@@ -62,12 +62,12 @@
 				if sql("select name from tabItem where name=%s", line[0]):
 					if self.is_currency_valid(line[2]):
 						# if price exists
-						ref_ret_detail = sql("select name from `tabRef Rate Detail` where parent=%s and price_list_name=%s and ref_currency=%s", \
+						ref_ret_detail = sql("select name from `tabItem Price` where parent=%s and price_list_name=%s and ref_currency=%s", \
 							(line[0], self.doc.name, line[2]))
 						if ref_ret_detail:
-							sql("update `tabRef Rate Detail` set ref_rate=%s where name=%s", (line[1], ref_ret_detail[0][0]))
+							sql("update `tabItem Price` set ref_rate=%s where name=%s", (line[1], ref_ret_detail[0][0]))
 						else:
-							d = Document('Ref Rate Detail')
+							d = Document('Item Price')
 							d.parent = line[0]
 							d.parentfield = 'ref_rate_details'
 							d.parenttype = 'Item'
@@ -87,8 +87,8 @@
 
 	# clear prices
 	def clear_prices(self):
-		cnt = sql("select count(*) from `tabRef Rate Detail` where price_list_name = %s", self.doc.name)
-		sql("delete from `tabRef Rate Detail` where price_list_name = %s", self.doc.name)
+		cnt = sql("select count(*) from `tabItem Price` where price_list_name = %s", self.doc.name)
+		sql("delete from `tabItem Price` where price_list_name = %s", self.doc.name)
 		msgprint("%s prices cleared" % cnt[0][0])
 
 	# Update CSV data
diff --git a/erpnext/setup/doctype/price_list/price_list.txt b/erpnext/setup/doctype/price_list/price_list.txt
index 5185a63..5d7e57e 100644
--- a/erpnext/setup/doctype/price_list/price_list.txt
+++ b/erpnext/setup/doctype/price_list/price_list.txt
@@ -3,47 +3,47 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:13',
+		'creation': '2012-03-27 14:36:22',
 		'docstatus': 0,
-		'modified': '2011-04-18 10:01:48',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:22',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1303100817',
+		'_last_update': u'1303100817',
 		'allow_attach': 1,
 		'allow_trash': 1,
-		'autoname': 'field:price_list_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:price_list_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
+		'document_type': u'Master',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 6
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Price List',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Price List',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'amend': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Price List',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Price List',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
 		'submit': 0
 	},
@@ -51,135 +51,127 @@
 	# DocType, Price List
 	{
 		'doctype': 'DocType',
-		'name': 'Price List'
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Sales User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'Sales User',
-		'write': 0
+		'name': u'Price List'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Master Manager',
+		'role': u'Sales Master Manager',
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'write': 0
+	},
+
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'price_list_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Price List Name',
-		'oldfieldname': 'price_list_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'price_list_name',
+		'fieldtype': u'Data',
+		'label': u'Price List Name',
+		'oldfieldname': u'price_list_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 3,
-		'label': 'Price Help',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'price_help',
+		'fieldtype': u'HTML',
+		'label': u'Price Help',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'description': 'Click on this button to clear prices for this list in all items',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 4,
-		'label': 'Clear Prices',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'description': u'Click on this button to clear prices for this list in all items',
+		'doctype': u'DocField',
+		'fieldname': u'clear_prices',
+		'fieldtype': u'Button',
+		'label': u'Clear Prices',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 5,
-		'label': 'File List',
+		'label': u'File List',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'description': 'Update prices from the attachment',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 6,
-		'label': 'Update Prices',
-		'options': 'update_prices',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'description': u'Update prices from the attachment',
+		'doctype': u'DocField',
+		'fieldname': u'update_prices',
+		'fieldtype': u'Button',
+		'label': u'Update Prices',
+		'options': u'update_prices',
 		'permlevel': 0,
-		'trigger': 'Server'
+		'trigger': u'Server'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/print_heading/print_heading.txt b/erpnext/setup/doctype/print_heading/print_heading.txt
index db4c07a..a2de331 100644
--- a/erpnext/setup/doctype/print_heading/print_heading.txt
+++ b/erpnext/setup/doctype/print_heading/print_heading.txt
@@ -3,101 +3,97 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:13',
+		'creation': '2012-03-27 14:36:22',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:22',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1294312215',
+		'_last_update': u'1294312215',
 		'allow_trash': 1,
-		'autoname': 'field:print_heading',
-		'colour': 'White:FFF',
+		'autoname': u'field:print_heading',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
+		'document_type': u'Master',
+		'module': u'Setup',
 		'name': '__common__',
-		'search_fields': 'print_heading',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'print_heading',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 27
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Print Heading',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Print Heading',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Print Heading',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Print Heading',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'All',
+		'role': u'All',
 		'write': 1
 	},
 
 	# DocType, Print Heading
 	{
 		'doctype': 'DocType',
-		'name': 'Print Heading'
+		'name': u'Print Heading'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'print_heading',
-		'fieldtype': 'Data',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'print_heading',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Print Heading',
-		'oldfieldname': 'print_heading',
-		'oldfieldtype': 'Data',
+		'label': u'Print Heading',
+		'oldfieldname': u'print_heading',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0,
-		'width': '300px'
+		'width': u'300px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/order_lost_reason/__init__.py b/erpnext/setup/doctype/quotation_lost_reason/__init__.py
similarity index 100%
rename from erpnext/setup/doctype/order_lost_reason/__init__.py
rename to erpnext/setup/doctype/quotation_lost_reason/__init__.py
diff --git a/erpnext/setup/doctype/order_lost_reason/order_lost_reason.js b/erpnext/setup/doctype/quotation_lost_reason/quotation_lost_reason.js
similarity index 100%
rename from erpnext/setup/doctype/order_lost_reason/order_lost_reason.js
rename to erpnext/setup/doctype/quotation_lost_reason/quotation_lost_reason.js
diff --git a/erpnext/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt b/erpnext/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt
new file mode 100644
index 0000000..959745a
--- /dev/null
+++ b/erpnext/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt
@@ -0,0 +1,93 @@
+# DocType, Quotation Lost Reason
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:22',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:22',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'allow_trash': 1,
+		'autoname': u'field:order_lost_reason',
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'document_type': u'Master',
+		'module': u'Setup',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 4
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Quotation Lost Reason',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Quotation Lost Reason',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'write': 1
+	},
+
+	# DocType, Quotation Lost Reason
+	{
+		'doctype': 'DocType',
+		'name': u'Quotation Lost Reason'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'doctype': u'DocPerm',
+		'role': u'Sales Master Manager',
+		'submit': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'order_lost_reason',
+		'fieldtype': u'Data',
+		'label': u'Quotation Lost Reason',
+		'oldfieldname': u'order_lost_reason',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/sales_browser_control/sales_browser_control.py b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.py
index 3d820e1..76f26da 100644
--- a/erpnext/setup/doctype/sales_browser_control/sales_browser_control.py
+++ b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.py
@@ -82,7 +82,7 @@
     #validation for trash of default record
     if not type == 'Sales Person':
       field = 'default_'+type.lower().replace(' ','_')
-      chk = sql("select value from `tabSingles` where doctype = 'Manage Account' and field = '%s' and value = '%s'"%(field,name))
+      chk = sql("select value from `tabSingles` where doctype = 'Global Defaults' and field = '%s' and value = '%s'"%(field,name))
       if chk:
         msgprint("'%s' record is set as a default %s in Global Defaults. Please change default %s then try to trash '%s' record."%(name,type.lower(), type.lower(), name))
         raise Exception
diff --git a/erpnext/setup/doctype/sales_browser_control/sales_browser_control.txt b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.txt
index ce635f4..3370b9e 100644
--- a/erpnext/setup/doctype/sales_browser_control/sales_browser_control.txt
+++ b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.txt
@@ -3,28 +3,28 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:21',
+		'creation': '2012-03-27 14:36:23',
 		'docstatus': 0,
-		'modified': '2010-12-24 11:56:36',
-		'modified_by': 'abhishek@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:23',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 159
 	},
 
 	# DocType, Sales Browser Control
 	{
 		'doctype': 'DocType',
-		'name': 'Sales Browser Control'
+		'name': u'Sales Browser Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/sales_partner/sales_partner.js b/erpnext/setup/doctype/sales_partner/sales_partner.js
index 1194756..77da493 100644
--- a/erpnext/setup/doctype/sales_partner/sales_partner.js
+++ b/erpnext/setup/doctype/sales_partner/sales_partner.js
@@ -14,7 +14,7 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-$import(Contact Control)
+wn.require('erpnext/setup/doctype/contact_control/contact_control.js');
 
 cur_frm.cscript.onload = function(doc,dt,dn){
 	// history doctypes and scripts
@@ -48,18 +48,10 @@
 
 cur_frm.cscript.make_address = function() {
 	if(!cur_frm.address_list) {
-		cur_frm.address_list = new wn.widgets.Listing({
+		cur_frm.address_list = new wn.ui.Listing({
 			parent: cur_frm.fields_dict['Address HTML'].wrapper,
 			page_length: 2,
-			new_doctype: "Address",
-			new_doc_onload: function(dn) {
-				ndoc = locals["Address"][dn];
-				ndoc.sales_partner = cur_frm.doc.name;
-				ndoc.address_type = 'Office';				
-			},
-			new_doc_onsave: function(dn) {				
-				cur_frm.address_list.run()
-			},			
+			new_doctype: "Address",			
 			get_query: function() {
 				return "select name, address_type, address_line1, address_line2, city, state, country, pincode, fax, email_id, phone, is_primary_address, is_shipping_address from tabAddress where sales_partner='"+cur_frm.docname+"' and docstatus != 2 order by is_primary_address desc"
 			},
@@ -80,17 +72,10 @@
 
 cur_frm.cscript.make_contact = function() {
 	if(!cur_frm.contact_list) {
-		cur_frm.contact_list = new wn.widgets.Listing({
+		cur_frm.contact_list = new wn.ui.Listing({
 			parent: cur_frm.fields_dict['Contact HTML'].wrapper,
 			page_length: 2,
 			new_doctype: "Contact",
-			new_doc_onload: function(dn) {
-				ndoc = locals["Contact"][dn];
-				ndoc.sales_partner = cur_frm.doc.name;				
-			},
-			new_doc_onsave: function(dn) {				
-				cur_frm.contact_list.run()
-			},
 			get_query: function() {
 				return "select name, first_name, last_name, email_id, phone, mobile_no, department, designation, is_primary_contact from tabContact where sales_partner='"+cur_frm.docname+"' and docstatus != 2 order by is_primary_contact desc"
 			},
@@ -153,12 +138,12 @@
 	lst.colwidths = ['5%','25%','20%','25%','25%'];
 	lst.colnames = ['Sr.','Id','Invoice Date','Total Commission','Grand Total'];
 	lst.coltypes = ['Data','Link','Data','Data','Currency','Currency'];
-	lst.coloptions = ['','Receivable Voucher','','','',''];
+	lst.coloptions = ['','Sales Invoice','','','',''];
 
 	cur_frm.cscript.set_list_opts(lst);
 
-	var q = repl("select name,posting_date, total_commission,grand_total from `tabReceivable Voucher` where sales_partner='%(sp)s'", {'sp':doc.name});
-	var q_max = repl("select count(name) from `tabReceivable Voucher` where sales_partner='%(cust)s'", {'sp':doc.name});
+	var q = repl("select name,posting_date, total_commission,grand_total from `tabSales Invoice` where sales_partner='%(sp)s'", {'sp':doc.name});
+	var q_max = repl("select count(name) from `tabSales Invoice` where sales_partner='%(cust)s'", {'sp':doc.name});
 	
-	cur_frm.cscript.run_list(lst,parent,q,q_max,doc,'Sales Invoice','Receivable Voucher');	
+	cur_frm.cscript.run_list(lst,parent,q,q_max,doc,'Sales Invoice','Sales Invoice');	
 }
diff --git a/erpnext/setup/doctype/sales_partner/sales_partner.txt b/erpnext/setup/doctype/sales_partner/sales_partner.txt
index 18b3abb..0aa2de7 100644
--- a/erpnext/setup/doctype/sales_partner/sales_partner.txt
+++ b/erpnext/setup/doctype/sales_partner/sales_partner.txt
@@ -3,106 +3,55 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:22',
+		'creation': '2012-03-27 14:36:23',
 		'docstatus': 0,
-		'modified': '2011-05-17 14:32:10',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 18:49:33',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1307707462',
+		'_last_update': u'1322549700',
 		'allow_trash': 1,
-		'autoname': 'field:partner_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:partner_name',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 0,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 0,
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 72
+		'version': 74
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Sales Partner',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Sales Partner',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Sales Partner',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Sales Partner',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Sales Partner
 	{
 		'doctype': 'DocType',
-		'name': 'Sales Partner'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Sales Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Sales Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Sales User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'Sales User',
-		'submit': 0,
-		'write': 0
+		'name': u'Sales Partner'
 	},
 
 	# DocPerm
@@ -110,10 +59,9 @@
 		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Master Manager',
+		'role': u'Sales Master Manager',
 		'submit': 0,
 		'write': 1
 	},
@@ -123,10 +71,9 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Sales Master Manager',
+		'role': u'Sales Master Manager',
 		'submit': 0,
 		'write': 0
 	},
@@ -135,45 +82,90 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 7,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 8,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'submit': 0,
 		'write': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Basic Info',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'description': u'Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts',
+		'doctype': u'DocField',
+		'fieldname': u'basic_info',
+		'fieldtype': u'Section Break',
+		'label': u'Basic Info',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'partner_name',
-		'fieldtype': 'Data',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'partner_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Sales Partner Name',
-		'oldfieldname': 'partner_name',
-		'oldfieldtype': 'Data',
+		'label': u'Sales Partner Name',
+		'oldfieldname': u'partner_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -181,193 +173,187 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'partner_type',
-		'fieldtype': 'Select',
-		'idx': 3,
+		'doctype': u'DocField',
+		'fieldname': u'partner_type',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Partner Type',
-		'oldfieldname': 'partner_type',
-		'oldfieldtype': 'Select',
-		'options': '\nChannel Partner\nDistributor\nDealer\nAgent\nRetailer\nImplementation Partner\nReseller',
+		'label': u'Partner Type',
+		'oldfieldname': u'partner_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nChannel Partner\nDistributor\nDealer\nAgent\nRetailer\nImplementation Partner\nReseller',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 4,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'commission_rate',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Commission Rate',
-		'oldfieldname': 'commission_rate',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'commission_rate',
+		'fieldtype': u'Currency',
+		'label': u'Commission Rate',
+		'oldfieldname': u'commission_rate',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
-		'idx': 6,
-		'label': 'Territory',
-		'options': 'Territory',
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
+		'label': u'Territory',
+		'options': u'Territory',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 7,
-		'label': 'Address & Contacts',
+		'doctype': u'DocField',
+		'fieldname': u'address_contacts',
+		'fieldtype': u'Section Break',
+		'label': u'Address & Contacts',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 8,
-		'label': 'Address Desc',
-		'options': '<em>Addresses will appear only when you save the customer</em>',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'address_desc',
+		'fieldtype': u'HTML',
+		'label': u'Address Desc',
+		'options': u'<em>Addresses will appear only when you save the customer</em>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 9,
-		'label': 'Address HTML',
+		'doctype': u'DocField',
+		'fieldname': u'address_html',
+		'fieldtype': u'HTML',
+		'label': u'Address HTML',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 10,
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 11,
-		'label': 'Contact Desc',
-		'options': '<em>Contact Details will appear only when you save the customer</em>',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'contact_desc',
+		'fieldtype': u'HTML',
+		'label': u'Contact Desc',
+		'options': u'<em>Contact Details will appear only when you save the customer</em>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 12,
-		'label': 'Contact HTML',
+		'doctype': u'DocField',
+		'fieldname': u'contact_html',
+		'fieldtype': u'HTML',
+		'label': u'Contact HTML',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 13,
-		'label': 'Partner Target Details',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'partner_target_details_section_break',
+		'fieldtype': u'Section Break',
+		'label': u'Partner Target Details',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'distribution_id',
-		'fieldtype': 'Link',
-		'idx': 14,
-		'label': 'Distribution Id',
-		'oldfieldname': 'distribution_id',
-		'oldfieldtype': 'Link',
-		'options': 'Budget Distribution',
+		'doctype': u'DocField',
+		'fieldname': u'distribution_id',
+		'fieldtype': u'Link',
+		'label': u'Distribution Id',
+		'oldfieldname': u'distribution_id',
+		'oldfieldtype': u'Link',
+		'options': u'Budget Distribution',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'partner_target_details',
-		'fieldtype': 'Table',
-		'idx': 15,
-		'label': 'Partner Target Detail',
-		'oldfieldname': 'partner_target_details',
-		'oldfieldtype': 'Table',
-		'options': 'Target Detail',
+		'doctype': u'DocField',
+		'fieldname': u'partner_target_details',
+		'fieldtype': u'Table',
+		'label': u'Partner Target Detail',
+		'oldfieldname': u'partner_target_details',
+		'oldfieldtype': u'Table',
+		'options': u'Target Detail',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
+		'doctype': u'DocField',
+		'fieldname': u'manage_html',
+		'fieldtype': u'HTML',
 		'hidden': 1,
-		'idx': 16,
-		'label': 'Manage HTML',
-		'oldfieldtype': 'HTML',
+		'label': u'Manage HTML',
+		'oldfieldtype': u'HTML',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 17,
-		'label': 'Transaction History',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_history',
+		'fieldtype': u'Section Break',
+		'label': u'Transaction History',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 18,
-		'label': 'History HTML',
-		'oldfieldtype': 'HTML',
+		'doctype': u'DocField',
+		'fieldname': u'history_html',
+		'fieldtype': u'HTML',
+		'label': u'History HTML',
+		'oldfieldtype': u'HTML',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 19,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/sales_person/sales_person.txt b/erpnext/setup/doctype/sales_person/sales_person.txt
index 9ae96bf..45769e1 100644
--- a/erpnext/setup/doctype/sales_person/sales_person.txt
+++ b/erpnext/setup/doctype/sales_person/sales_person.txt
@@ -3,48 +3,48 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:22',
+		'creation': '2012-03-27 14:36:23',
 		'docstatus': 0,
-		'modified': '2011-02-23 15:11:46',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 18:49:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1302765705',
+		'_last_update': u'1302765705',
 		'allow_trash': 1,
-		'autoname': 'field:sales_person_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:sales_person_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'search_fields': 'name,parent_sales_person',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'name,parent_sales_person',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 131
+		'version': 132
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Sales Person',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Sales Person',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'amend': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Sales Person',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Sales Person',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
 		'submit': 0
 	},
@@ -52,61 +52,16 @@
 	# DocType, Sales Person
 	{
 		'doctype': 'DocType',
-		'name': 'Sales Person'
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Sales User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'Sales User',
-		'write': 0
+		'name': u'Sales Person'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Master Manager',
+		'role': u'Sales Master Manager',
 		'write': 1
 	},
 
@@ -114,46 +69,83 @@
 	{
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Sales Master Manager',
+		'role': u'Sales Master Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
 		'write': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 2,
-		'label': 'General Info',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'general_info',
+		'fieldtype': u'Section Break',
+		'label': u'General Info',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_person_name',
-		'fieldtype': 'Data',
-		'idx': 3,
+		'doctype': u'DocField',
+		'fieldname': u'sales_person_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Sales Person Name',
-		'oldfieldname': 'sales_person_name',
-		'oldfieldtype': 'Data',
+		'label': u'Sales Person Name',
+		'oldfieldname': u'sales_person_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -161,196 +153,184 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Select company name first.',
-		'doctype': 'DocField',
-		'fieldname': 'parent_sales_person',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Parent Sales Person',
-		'oldfieldname': 'parent_sales_person',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Person',
+		'colour': u'White:FFF',
+		'description': u'Select company name first.',
+		'doctype': u'DocField',
+		'fieldname': u'parent_sales_person',
+		'fieldtype': u'Link',
+		'label': u'Parent Sales Person',
+		'oldfieldname': u'parent_sales_person',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Person',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 5,
-		'label': 'SPHelp',
-		'oldfieldtype': 'HTML',
-		'options': '<a href="#!Sales Browser/Sales Person">To manage Sales Person, click here</a>',
+		'doctype': u'DocField',
+		'fieldname': u'sphelp',
+		'fieldtype': u'HTML',
+		'label': u'SPHelp',
+		'oldfieldtype': u'HTML',
+		'options': u'<a href="#!Sales Browser/Sales Person">To manage Sales Person, click here</a>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_group',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Has Child Node',
-		'oldfieldname': 'is_group',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'doctype': u'DocField',
+		'fieldname': u'is_group',
+		'fieldtype': u'Select',
+		'label': u'Has Child Node',
+		'oldfieldname': u'is_group',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'employee',
-		'fieldtype': 'Link',
-		'idx': 7,
-		'label': 'Employee',
-		'options': 'Employee',
+		'doctype': u'DocField',
+		'fieldname': u'employee',
+		'fieldtype': u'Link',
+		'label': u'Employee',
+		'options': u'Employee',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Data',
-		'idx': 8,
-		'label': 'Department',
-		'oldfieldname': 'department',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'department',
+		'fieldtype': u'Data',
+		'label': u'Department',
+		'oldfieldname': u'department',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Data',
-		'idx': 9,
-		'label': 'Designation',
-		'oldfieldname': 'designation',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Data',
+		'label': u'Designation',
+		'oldfieldname': u'designation',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'mobile_no',
-		'fieldtype': 'Data',
-		'idx': 10,
-		'label': 'Mobile No',
-		'oldfieldname': 'mobile_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'mobile_no',
+		'fieldtype': u'Data',
+		'label': u'Mobile No',
+		'oldfieldname': u'mobile_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 11,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'email_id',
-		'fieldtype': 'Data',
-		'idx': 12,
-		'label': 'Email Id',
-		'oldfieldname': 'email_id',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'email_id',
+		'fieldtype': u'Data',
+		'label': u'Email Id',
+		'oldfieldname': u'email_id',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'country',
-		'fieldtype': 'Select',
-		'idx': 13,
+		'doctype': u'DocField',
+		'fieldname': u'country',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Country',
-		'oldfieldname': 'country',
-		'oldfieldtype': 'Select',
-		'options': 'link:Country',
+		'label': u'Country',
+		'oldfieldname': u'country',
+		'oldfieldtype': u'Select',
+		'options': u'link:Country',
 		'permlevel': 0,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'state',
-		'fieldtype': 'Select',
-		'idx': 14,
+		'doctype': u'DocField',
+		'fieldname': u'state',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'State',
-		'oldfieldname': 'state',
-		'oldfieldtype': 'Select',
-		'options': 'link:State',
+		'label': u'State',
+		'oldfieldname': u'state',
+		'oldfieldtype': u'Select',
+		'options': u'link:State',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'city',
-		'fieldtype': 'Data',
-		'idx': 15,
-		'label': 'City',
-		'oldfieldname': 'city',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'city',
+		'fieldtype': u'Data',
+		'label': u'City',
+		'oldfieldname': u'city',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
 		'hidden': 0,
-		'idx': 16,
-		'label': 'Territory',
-		'oldfieldname': 'territory',
-		'oldfieldtype': 'Link',
-		'options': 'Territory',
+		'label': u'Territory',
+		'oldfieldname': u'territory',
+		'oldfieldtype': u'Link',
+		'options': u'Territory',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 17,
-		'label': 'Territory Help',
-		'oldfieldtype': 'HTML',
-		'options': '<a href="javascript:cur_frm.cscript.TreePage(\'Territory\');">To manage Territory, click here</a>',
+		'doctype': u'DocField',
+		'fieldname': u'territory_help',
+		'fieldtype': u'HTML',
+		'label': u'Territory Help',
+		'oldfieldtype': u'HTML',
+		'options': u'<a href="javascript:cur_frm.cscript.TreePage(\'Territory\');">To manage Territory, click here</a>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'lft',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'lft',
+		'fieldtype': u'Int',
 		'hidden': 1,
-		'idx': 18,
 		'in_filter': 1,
-		'label': 'lft',
+		'label': u'lft',
 		'no_copy': 1,
-		'oldfieldname': 'lft',
-		'oldfieldtype': 'Int',
+		'oldfieldname': u'lft',
+		'oldfieldtype': u'Int',
 		'permlevel': 0,
 		'print_hide': 1,
 		'search_index': 1
@@ -358,16 +338,15 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rgt',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'rgt',
+		'fieldtype': u'Int',
 		'hidden': 1,
-		'idx': 19,
 		'in_filter': 1,
-		'label': 'rgt',
+		'label': u'rgt',
 		'no_copy': 1,
-		'oldfieldname': 'rgt',
-		'oldfieldtype': 'Int',
+		'oldfieldname': u'rgt',
+		'oldfieldtype': u'Int',
 		'permlevel': 0,
 		'print_hide': 1,
 		'search_index': 1
@@ -375,54 +354,51 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'old_parent',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'old_parent',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'idx': 20,
-		'label': 'old_parent',
+		'label': u'old_parent',
 		'no_copy': 1,
-		'oldfieldname': 'old_parent',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'old_parent',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'distribution_id',
-		'fieldtype': 'Link',
-		'idx': 21,
-		'label': 'Distribution Id',
-		'oldfieldname': 'distribution_id',
-		'oldfieldtype': 'Link',
-		'options': 'Budget Distribution',
+		'doctype': u'DocField',
+		'fieldname': u'distribution_id',
+		'fieldtype': u'Link',
+		'label': u'Distribution Id',
+		'oldfieldname': u'distribution_id',
+		'oldfieldtype': u'Link',
+		'options': u'Budget Distribution',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 22,
-		'label': 'Target Details',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'target_details_section_break',
+		'fieldtype': u'Section Break',
+		'label': u'Target Details',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'target_details',
-		'fieldtype': 'Table',
-		'idx': 23,
-		'label': 'Target Details1',
-		'oldfieldname': 'target_details',
-		'oldfieldtype': 'Table',
-		'options': 'Target Detail',
+		'doctype': u'DocField',
+		'fieldname': u'target_details',
+		'fieldtype': u'Table',
+		'label': u'Target Details1',
+		'oldfieldname': u'target_details',
+		'oldfieldtype': u'Table',
+		'options': u'Target Detail',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/series_detail/series_detail.txt b/erpnext/setup/doctype/series_detail/series_detail.txt
index a6df55d..f7411c5 100644
--- a/erpnext/setup/doctype/series_detail/series_detail.txt
+++ b/erpnext/setup/doctype/series_detail/series_detail.txt
@@ -3,61 +3,59 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-07-08 13:20:10',
+		'creation': '2012-03-27 14:36:25',
 		'docstatus': 0,
-		'modified': '2011-07-08 13:20:34',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:25',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Tray',
+		'section_style': u'Tray',
 		'show_in_menu': 0,
 		'version': 3
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Series Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Series Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Series Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Series Detail'
+		'name': u'Series Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'series',
-		'fieldtype': 'Read Only',
-		'idx': 1,
-		'label': 'Series',
-		'oldfieldname': 'series',
-		'oldfieldtype': 'Read Only'
+		'doctype': u'DocField',
+		'fieldname': u'series',
+		'fieldtype': u'Read Only',
+		'label': u'Series',
+		'oldfieldname': u'series',
+		'oldfieldtype': u'Read Only'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'remove',
-		'fieldtype': 'Check',
-		'idx': 2,
-		'label': 'Remove',
-		'oldfieldname': 'remove',
-		'oldfieldtype': 'Check',
-		'trigger': 'Client'
+		'doctype': u'DocField',
+		'fieldname': u'remove',
+		'fieldtype': u'Check',
+		'label': u'Remove',
+		'oldfieldname': u'remove',
+		'oldfieldtype': u'Check',
+		'trigger': u'Client'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/setup_control/setup_control.py b/erpnext/setup/doctype/setup_control/setup_control.py
index 50b9bb0..ba39358 100644
--- a/erpnext/setup/doctype/setup_control/setup_control.py
+++ b/erpnext/setup/doctype/setup_control/setup_control.py
@@ -30,7 +30,7 @@
 	#Default Naming Series
 	#---------------------------------------------------
 	def naming_series(self):
-		ns = [['TDS Payment', 'TDSP'], ['Payable Voucher', 'BILL'], ['Journal Voucher', 'JV'], ['Receivable Voucher', 'INV'], ['Lead', 'Lead'], ['Indent', 'IDT'], ['Enquiry', 'Enquiry'], ['Purchase Order', 'PO'], ['Quotation', 'QTN'], ['Purchase Receipt', 'GRN'], ['Stock Entry', 'STE'], ['Sales Order', 'SO'], ['Delivery Note', 'DN'], ['Employee', 'EMP/']]
+		ns = [['TDS Payment', 'TDSP'], ['Purchase Invoice', 'BILL'], ['Journal Voucher', 'JV'], ['Sales Invoice', 'INV'], ['Lead', 'Lead'], ['Purchase Request', 'IDT'], ['Opportunity', 'Opportunity'], ['Purchase Order', 'PO'], ['Quotation', 'QTN'], ['Purchase Receipt', 'GRN'], ['Stock Entry', 'STE'], ['Sales Order', 'SO'], ['Delivery Note', 'DN'], ['Employee', 'EMP/']]
 		for r in ns: 
 			rec = Document('Naming Series')
 			rec.select_doc_for_series = r[0]
@@ -131,25 +131,25 @@
 	def create_feed_and_todo(self):
 		"""update activty feed and create todo for creation of item, customer, vendor"""
 		import home
-		home.make_feed('Comment', 'ToDo Item', '', webnotes.session['user'],
+		home.make_feed('Comment', 'ToDo', '', webnotes.session['user'],
 			'<i>"' + 'Setup Complete. Please check your <a href="#!todo">\
 			To Do List</a>' + '"</i>', '#6B24B3')
 
-		d = Document('ToDo Item')
+		d = Document('ToDo')
 		d.description = 'Create your first Customer'
 		d.priority = 'High'
 		d.date = nowdate()
 		d.reference_type = 'Customer'
 		d.save(1)
 
-		d = Document('ToDo Item')
+		d = Document('ToDo')
 		d.description = 'Create your first Item'
 		d.priority = 'High'
 		d.date = nowdate()
 		d.reference_type = 'Item'
 		d.save(1)
 
-		d = Document('ToDo Item')
+		d = Document('ToDo')
 		d.description = 'Create your first Supplier'
 		d.priority = 'High'
 		d.date = nowdate()
@@ -195,7 +195,7 @@
 	# Set System Defaults
 	# --------------------
 	def set_defaults(self, def_args):
-		ma_obj = get_obj('Manage Account','Manage Account')
+		ma_obj = get_obj('Global Defaults','Global Defaults')
 		for d in def_args.keys():
 			ma_obj.doc.fields[d] = def_args[d]
 		ma_obj.doc.save()
diff --git a/erpnext/setup/doctype/setup_control/setup_control.txt b/erpnext/setup/doctype/setup_control/setup_control.txt
index 5ded66b..58ad5f3 100644
--- a/erpnext/setup/doctype/setup_control/setup_control.txt
+++ b/erpnext/setup/doctype/setup_control/setup_control.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:24',
+		'creation': '2012-03-27 14:36:25',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:25',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 1,
 		'issingle': 1,
 		'istable': 0,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 73
 	},
 
 	# DocType, Setup Control
 	{
 		'doctype': 'DocType',
-		'name': 'Setup Control'
+		'name': u'Setup Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/setup_wizard_control/__init__.py b/erpnext/setup/doctype/setup_wizard_control/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/doctype/setup_wizard_control/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/setup_wizard_control/setup_wizard_control.py b/erpnext/setup/doctype/setup_wizard_control/setup_wizard_control.py
deleted file mode 100644
index ec54f54..0000000
--- a/erpnext/setup/doctype/setup_wizard_control/setup_wizard_control.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-sql = webnotes.conn.sql
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-
-  def __init__(self, doc, doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-  #=======================================================================================================
-  def get_master_lists(self):
-    ret = convert_to_lists(sql("select name from `tabWarehouse Type`"))
-    ret = ret and ret or []
-    return ret
-      
-  #=======================================================================================================
-  def create_record(self,dict_val):
-    obj_dict = eval(dict_val)
-    
-    for d in obj_dict:
-      if not obj_dict[d] == '' and not d =='Doctype':
-        
-        ret =sql("select name from `tab%s` where name = '%s'" %(obj_dict['Doctype'],obj_dict[d]))
-        if ret:
-          return "Record already exist."
-          raise Exception
-        rec = Document(obj_dict['Doctype'])
-    for i in obj_dict:
-      if not obj_dict[i] == '' and not i == 'Doctype':
-        rec.fields[i] = obj_dict[i]
-      
-    rec.save(1)
-    return "Record created."
-
-  #=======================================================================================================
-  def get_page_lst(self,nm):
-    ret = sql("select parent from `tabPage Role` where role in ('%s') and parent = '%s'" % ("','".join(webnotes.user.get_roles()),nm))
-    return ret and True or False
-    
-  #=======================================================================================================
-  #------------------------get contry--------------------------------
-  def get_country(self):
-    cty = sql("select value from `tabSingles` where field = 'country' and doctype = 'Control Panel'")
-
-    return cty and cty[0][0] or ''
diff --git a/erpnext/setup/doctype/setup_wizard_control/setup_wizard_control.txt b/erpnext/setup/doctype/setup_wizard_control/setup_wizard_control.txt
deleted file mode 100644
index 5f432ad..0000000
--- a/erpnext/setup/doctype/setup_wizard_control/setup_wizard_control.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-# DocType, Setup Wizard Control
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:24',
-		'docstatus': 0,
-		'modified': '2011-07-04 17:10:23',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'module': 'Setup',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 110
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Setup Wizard Control',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'All',
-		'write': 1
-	},
-
-	# DocType, Setup Wizard Control
-	{
-		'doctype': 'DocType',
-		'name': 'Setup Wizard Control'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/manage_account/__init__.py b/erpnext/setup/doctype/sms_parameter/__init__.py
old mode 100644
new mode 100755
similarity index 100%
rename from erpnext/setup/doctype/manage_account/__init__.py
rename to erpnext/setup/doctype/sms_parameter/__init__.py
diff --git a/erpnext/setup/doctype/sms_parameter/sms_parameter.txt b/erpnext/setup/doctype/sms_parameter/sms_parameter.txt
new file mode 100755
index 0000000..fd6a225
--- /dev/null
+++ b/erpnext/setup/doctype/sms_parameter/sms_parameter.txt
@@ -0,0 +1,57 @@
+# DocType, SMS Parameter
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:25',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:25',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Setup',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'show_in_menu': 0,
+		'version': 4
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'fieldtype': u'Data',
+		'name': '__common__',
+		'parent': u'SMS Parameter',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'150px'
+	},
+
+	# DocType, SMS Parameter
+	{
+		'doctype': 'DocType',
+		'name': u'SMS Parameter'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'parameter',
+		'label': u'Parameter'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'value',
+		'label': u'Value'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/sms_settings/sms_settings.txt b/erpnext/setup/doctype/sms_settings/sms_settings.txt
index f4bddd6..e54f436 100755
--- a/erpnext/setup/doctype/sms_settings/sms_settings.txt
+++ b/erpnext/setup/doctype/sms_settings/sms_settings.txt
@@ -3,137 +3,131 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-05-24 18:21:16',
+		'creation': '2012-03-27 14:36:25',
 		'docstatus': 0,
-		'modified': '2011-05-25 11:59:34',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:25',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1306304974',
+		'_last_update': u'1306304974',
 		'allow_copy': 1,
 		'allow_email': 1,
 		'allow_print': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 0,
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 0,
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 16
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'SMS Settings',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'SMS Settings',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'SMS Settings',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'SMS Settings',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, SMS Settings
 	{
 		'doctype': 'DocType',
-		'name': 'SMS Settings'
+		'name': u'SMS Settings'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 1,
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Eg. smsgateway.com/api/send_sms.cgi',
-		'doctype': 'DocField',
-		'fieldname': 'sms_gateway_url',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'SMS Gateway URL',
+		'colour': u'White:FFF',
+		'description': u'Eg. smsgateway.com/api/send_sms.cgi',
+		'doctype': u'DocField',
+		'fieldname': u'sms_gateway_url',
+		'fieldtype': u'Data',
+		'label': u'SMS Gateway URL',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Enter url parameter for message',
-		'doctype': 'DocField',
-		'fieldname': 'message_parameter',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Message Parameter',
+		'colour': u'White:FFF',
+		'description': u'Enter url parameter for message',
+		'doctype': u'DocField',
+		'fieldname': u'message_parameter',
+		'fieldtype': u'Data',
+		'label': u'Message Parameter',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Enter url parameter for receiver nos',
-		'doctype': 'DocField',
-		'fieldname': 'receiver_parameter',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Receiver Parameter',
+		'colour': u'White:FFF',
+		'description': u'Enter url parameter for receiver nos',
+		'doctype': u'DocField',
+		'fieldname': u'receiver_parameter',
+		'fieldtype': u'Data',
+		'label': u'Receiver Parameter',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 5,
-		'label': 'Static Parameters',
-		'width': '50%'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'static_parameters',
+		'fieldtype': u'Column Break',
+		'label': u'Static Parameters',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)',
-		'doctype': 'DocField',
-		'fieldname': 'static_parameter_details',
-		'fieldtype': 'Table',
-		'idx': 6,
-		'label': 'Static Parameter Details',
-		'options': 'Static Parameter Detail'
+		'colour': u'White:FFF',
+		'description': u'Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)',
+		'doctype': u'DocField',
+		'fieldname': u'static_parameter_details',
+		'fieldtype': u'Table',
+		'label': u'SMS Parameters',
+		'options': u'SMS Parameter'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/state/state.txt b/erpnext/setup/doctype/state/state.txt
index 09e186b..b07bb67 100644
--- a/erpnext/setup/doctype/state/state.txt
+++ b/erpnext/setup/doctype/state/state.txt
@@ -3,36 +3,36 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:25',
+		'creation': '2012-03-27 14:36:25',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:25',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'field:state_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:state_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 0,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
 		'read_only': 0,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 14
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'State',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'State',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'reqd': 1
 	},
@@ -40,11 +40,11 @@
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'State',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'State',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -53,53 +53,48 @@
 	# DocType, State
 	{
 		'doctype': 'DocType',
-		'name': 'State'
+		'name': u'State'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
 		'amend': 0,
 		'cancel': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Sales Master Manager',
+		'doctype': u'DocPerm',
+		'role': u'Sales Master Manager',
 		'submit': 0
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'role': 'Purchase Master Manager'
+		'doctype': u'DocPerm',
+		'role': u'Purchase Master Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'state_name',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'State Name',
-		'oldfieldname': 'state_name',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'state_name',
+		'fieldtype': u'Data',
+		'label': u'State Name',
+		'oldfieldname': u'state_name',
+		'oldfieldtype': u'Data'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'country',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'label': 'Country',
-		'oldfieldname': 'country',
-		'oldfieldtype': 'Select',
-		'options': 'link:Country'
+		'doctype': u'DocField',
+		'fieldname': u'country',
+		'fieldtype': u'Select',
+		'label': u'Country',
+		'oldfieldname': u'country',
+		'oldfieldtype': u'Select',
+		'options': u'link:Country'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/static_parameter_detail/__init__.py b/erpnext/setup/doctype/static_parameter_detail/__init__.py
deleted file mode 100755
index e69de29..0000000
--- a/erpnext/setup/doctype/static_parameter_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/static_parameter_detail/static_parameter_detail.txt b/erpnext/setup/doctype/static_parameter_detail/static_parameter_detail.txt
deleted file mode 100755
index 587a716..0000000
--- a/erpnext/setup/doctype/static_parameter_detail/static_parameter_detail.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-# DocType, Static Parameter Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-05-24 18:22:22',
-		'docstatus': 0,
-		'modified': '2011-05-24 18:42:30',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Setup',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 4
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Data',
-		'name': '__common__',
-		'parent': 'Static Parameter Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': '150px'
-	},
-
-	# DocType, Static Parameter Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Static Parameter Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'parameter',
-		'idx': 1,
-		'label': 'Parameter'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'value',
-		'idx': 2,
-		'label': 'Value'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/supplier_type/supplier_type.txt b/erpnext/setup/doctype/supplier_type/supplier_type.txt
index e608e6c..41f76e2 100644
--- a/erpnext/setup/doctype/supplier_type/supplier_type.txt
+++ b/erpnext/setup/doctype/supplier_type/supplier_type.txt
@@ -3,45 +3,45 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:26',
+		'creation': '2012-03-27 14:36:25',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:25',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:supplier_type',
-		'colour': 'White:FFF',
+		'autoname': u'field:supplier_type',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
+		'document_type': u'Master',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 3
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Supplier Type',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Supplier Type',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'amend': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Supplier Type',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Supplier Type',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
 		'submit': 0
 	},
@@ -49,85 +49,78 @@
 	# DocType, Supplier Type
 	{
 		'doctype': 'DocType',
-		'name': 'Supplier Type'
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Purchase Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Purchase Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Purchase User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'Purchase User',
-		'write': 0
+		'name': u'Supplier Type'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Purchase Master Manager',
+		'role': u'Purchase Master Manager',
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase User',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase User',
+		'write': 0
+	},
+
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'supplier_type',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Supplier Type',
-		'oldfieldname': 'supplier_type',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'supplier_type',
+		'fieldtype': u'Data',
+		'label': u'Supplier Type',
+		'oldfieldname': u'supplier_type',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	}
diff --git a/erpnext/setup/doctype/target_detail/target_detail.txt b/erpnext/setup/doctype/target_detail/target_detail.txt
index 43f1d6e..171f443 100644
--- a/erpnext/setup/doctype/target_detail/target_detail.txt
+++ b/erpnext/setup/doctype/target_detail/target_detail.txt
@@ -3,93 +3,89 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:26',
+		'creation': '2012-03-27 14:36:25',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'abhishek@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:25',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 15
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Target Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Target Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Target Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Target Detail'
+		'name': u'Target Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_group',
-		'fieldtype': 'Link',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Item Group',
-		'oldfieldname': 'item_group',
-		'oldfieldtype': 'Link',
-		'options': 'Item Group',
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
 		'reqd': 0,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'reqd': 1,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'target_qty',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Target Qty',
-		'oldfieldname': 'target_qty',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'target_qty',
+		'fieldtype': u'Currency',
+		'label': u'Target Qty',
+		'oldfieldname': u'target_qty',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'target_amount',
-		'fieldtype': 'Currency',
-		'idx': 4,
+		'doctype': u'DocField',
+		'fieldname': u'target_amount',
+		'fieldtype': u'Currency',
 		'in_filter': 1,
-		'label': 'Target  Amount',
-		'oldfieldname': 'target_amount',
-		'oldfieldtype': 'Currency',
+		'label': u'Target  Amount',
+		'oldfieldname': u'target_amount',
+		'oldfieldtype': u'Currency',
 		'reqd': 0,
 		'search_index': 1
 	}
diff --git a/erpnext/setup/doctype/term/term.txt b/erpnext/setup/doctype/term/term.txt
deleted file mode 100644
index fe3bd75..0000000
--- a/erpnext/setup/doctype/term/term.txt
+++ /dev/null
@@ -1,172 +0,0 @@
-# DocType, Term
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:27',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'allow_trash': 1,
-		'autoname': 'field:title',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 10
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Term',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Term',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Term
-	{
-		'doctype': 'DocType',
-		'name': 'Term'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Sales Master Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Sales Master Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Sales User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'Sales User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 5,
-		'permlevel': 1,
-		'role': 'All'
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 6,
-		'permlevel': 0,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 7,
-		'permlevel': 0,
-		'role': 'Accounts User',
-		'write': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'title',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'in_filter': 1,
-		'label': 'Title',
-		'oldfieldname': 'title',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'terms',
-		'fieldtype': 'Text Editor',
-		'idx': 3,
-		'label': 'Terms',
-		'oldfieldname': 'terms',
-		'oldfieldtype': 'Text Editor',
-		'permlevel': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/term/__init__.py b/erpnext/setup/doctype/terms_and_conditions/__init__.py
similarity index 100%
rename from erpnext/setup/doctype/term/__init__.py
rename to erpnext/setup/doctype/terms_and_conditions/__init__.py
diff --git a/erpnext/setup/doctype/term/term.js b/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.js
similarity index 100%
rename from erpnext/setup/doctype/term/term.js
rename to erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.js
diff --git a/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.txt b/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.txt
new file mode 100644
index 0000000..09d71f4
--- /dev/null
+++ b/erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.txt
@@ -0,0 +1,165 @@
+# DocType, Terms and Conditions
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:25',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:25',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1322549700',
+		'allow_trash': 1,
+		'autoname': u'field:title',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'document_type': u'Master',
+		'module': u'Setup',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 11
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Terms and Conditions',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Terms and Conditions',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Terms and Conditions
+	{
+		'doctype': 'DocType',
+		'name': u'Terms and Conditions'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Master Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Master Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'title',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Title',
+		'oldfieldname': u'title',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'terms',
+		'fieldtype': u'Text Editor',
+		'label': u'Terms and Conditions',
+		'oldfieldname': u'terms',
+		'oldfieldtype': u'Text Editor',
+		'permlevel': 0
+	}
+]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/territory/territory.txt b/erpnext/setup/doctype/territory/territory.txt
index a4de2d6..2a1cc4d 100644
--- a/erpnext/setup/doctype/territory/territory.txt
+++ b/erpnext/setup/doctype/territory/territory.txt
@@ -3,49 +3,50 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:28',
+		'creation': '2012-03-27 14:36:25',
 		'docstatus': 0,
-		'modified': '2010-12-24 12:09:17',
-		'modified_by': 'abhishek@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 18:50:08',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1307707462',
+		'_last_update': u'1311621379',
 		'allow_trash': 1,
-		'autoname': 'field:territory_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:territory_name',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'name_case': 'Title Case',
-		'search_fields': 'name,parent_territory,territory_manager',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'name_case': u'Title Case',
+		'search_fields': u'name,parent_territory,territory_manager',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 85
+		'version': 87
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Territory',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Territory',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'amend': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Territory',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Territory',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
 		'submit': 0
 	},
@@ -53,170 +54,158 @@
 	# DocType, Territory
 	{
 		'doctype': 'DocType',
-		'name': 'Territory'
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Sales Master Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 1,
-		'role': 'Sales User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 5,
-		'permlevel': 0,
-		'role': 'Sales User',
-		'write': 0
+		'name': u'Territory'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Master Manager',
+		'role': u'Sales Master Manager',
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Master Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'write': 0
+	},
+
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'territory_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Territory Name',
+		'doctype': u'DocField',
+		'fieldname': u'territory_name',
+		'fieldtype': u'Data',
+		'label': u'Territory Name',
 		'no_copy': 1,
-		'oldfieldname': 'territory_name',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'territory_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'territory_manager',
-		'fieldtype': 'Link',
-		'idx': 3,
+		'doctype': u'DocField',
+		'fieldname': u'territory_manager',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Territory Manager',
-		'oldfieldname': 'territory_manager',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Person',
+		'label': u'Territory Manager',
+		'oldfieldname': u'territory_manager',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Person',
 		'permlevel': 0,
-		'search_index': 0
+		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'parent_territory',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Parent Territory',
-		'oldfieldname': 'parent_territory',
-		'oldfieldtype': 'Link',
-		'options': 'Territory',
+		'doctype': u'DocField',
+		'fieldname': u'parent_territory',
+		'fieldtype': u'Link',
+		'label': u'Parent Territory',
+		'oldfieldname': u'parent_territory',
+		'oldfieldtype': u'Link',
+		'options': u'Territory',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 5,
-		'label': 'TerritoryHelp',
-		'oldfieldtype': 'HTML',
-		'options': '<a href="javascript:cur_frm.cscript.TerritoryHelp();">To manage Territory, click here</a>',
+		'doctype': u'DocField',
+		'fieldname': u'territoryhelp',
+		'fieldtype': u'HTML',
+		'label': u'TerritoryHelp',
+		'oldfieldtype': u'HTML',
+		'options': u'<a href="javascript:cur_frm.cscript.TerritoryHelp();">To manage Territory, click here</a>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Only leaf nodes are allowed in transaction',
-		'doctype': 'DocField',
-		'fieldname': 'is_group',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Has Child Node',
-		'oldfieldname': 'is_group',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'colour': u'White:FFF',
+		'description': u'Only leaf nodes are allowed in transaction',
+		'doctype': u'DocField',
+		'fieldname': u'is_group',
+		'fieldtype': u'Select',
+		'label': u'Has Child Node',
+		'oldfieldname': u'is_group',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'lft',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'lft',
+		'fieldtype': u'Int',
 		'hidden': 1,
-		'idx': 7,
 		'in_filter': 1,
-		'label': 'lft',
+		'label': u'lft',
 		'no_copy': 1,
-		'oldfieldname': 'lft',
-		'oldfieldtype': 'Int',
+		'oldfieldname': u'lft',
+		'oldfieldtype': u'Int',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 0,
@@ -225,16 +214,15 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rgt',
-		'fieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'rgt',
+		'fieldtype': u'Int',
 		'hidden': 1,
-		'idx': 8,
 		'in_filter': 1,
-		'label': 'rgt',
+		'label': u'rgt',
 		'no_copy': 1,
-		'oldfieldname': 'rgt',
-		'oldfieldtype': 'Int',
+		'oldfieldname': u'rgt',
+		'oldfieldtype': u'Int',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 0,
@@ -243,15 +231,15 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'old_parent',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'old_parent',
+		'fieldtype': u'Link',
 		'hidden': 1,
-		'idx': 9,
-		'label': 'old_parent',
+		'label': u'old_parent',
 		'no_copy': 1,
-		'oldfieldname': 'old_parent',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'old_parent',
+		'oldfieldtype': u'Data',
+		'options': u'Territory',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -259,38 +247,35 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'distribution_id',
-		'fieldtype': 'Link',
-		'idx': 10,
-		'label': 'Distribution Id',
-		'oldfieldname': 'distribution_id',
-		'oldfieldtype': 'Link',
-		'options': 'Budget Distribution',
-		'permlevel': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 11,
-		'label': 'Target Details',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'distribution_id',
+		'fieldtype': u'Link',
+		'label': u'Distribution Id',
+		'oldfieldname': u'distribution_id',
+		'oldfieldtype': u'Link',
+		'options': u'Budget Distribution',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'target_details',
-		'fieldtype': 'Table',
-		'idx': 12,
-		'label': 'Target Details1',
-		'oldfieldname': 'target_details',
-		'oldfieldtype': 'Table',
-		'options': 'Target Detail',
+		'doctype': u'DocField',
+		'fieldname': u'target_details_section_break',
+		'fieldtype': u'Section Break',
+		'label': u'Target Details',
+		'oldfieldtype': u'Section Break',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'target_details',
+		'fieldtype': u'Table',
+		'label': u'Target Details1',
+		'oldfieldname': u'target_details',
+		'oldfieldtype': u'Table',
+		'options': u'Target Detail',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/uom/uom.txt b/erpnext/setup/doctype/uom/uom.txt
index 7918322..93b5ff9 100644
--- a/erpnext/setup/doctype/uom/uom.txt
+++ b/erpnext/setup/doctype/uom/uom.txt
@@ -3,46 +3,46 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:29',
+		'creation': '2012-03-27 14:36:26',
 		'docstatus': 0,
-		'modified': '2010-12-24 15:14:23',
-		'modified_by': 'abhishek@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:26',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1307707462',
+		'_last_update': u'1307707462',
 		'allow_trash': 1,
-		'autoname': 'field:uom_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:uom_name',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
+		'document_type': u'Master',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 5
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'UOM',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'UOM',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'amend': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'UOM',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'UOM',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
 		'submit': 0
 	},
@@ -50,95 +50,88 @@
 	# DocType, UOM
 	{
 		'doctype': 'DocType',
-		'name': 'UOM'
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Material Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Material Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Material User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'Material User',
-		'write': 0
+		'name': u'UOM'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Master Manager',
+		'role': u'Material Master Manager',
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'write': 0
+	},
+
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 2,
-		'label': 'UOM Details',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'uom_details',
+		'fieldtype': u'Section Break',
+		'label': u'UOM Details',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'uom_name',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'UOM Name',
-		'oldfieldname': 'uom_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'uom_name',
+		'fieldtype': u'Data',
+		'label': u'UOM Name',
+		'oldfieldname': u'uom_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	}
diff --git a/erpnext/setup/doctype/update_series/__init__.py b/erpnext/setup/doctype/update_series/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/doctype/update_series/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/update_series/update_series.py b/erpnext/setup/doctype/update_series/update_series.py
deleted file mode 100644
index b8a0477..0000000
--- a/erpnext/setup/doctype/update_series/update_series.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-
-# -----------------------------------------------------------------------------------------
-
-class DocType:
-  def __init__(self, doc, doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-
-  def update_series(self):
-    series = sql("select name,current from `tabSeries` where name = %s", self.doc.prefix,as_dict = 1)
-    if series:
-      msgprint("This is going to update Series with Prefix : " + series[0]['name'] + " from Current : " + cstr(series[0]['current']) + " to Current : "+ cstr(self.doc.current))
-      sql("update `tabSeries` set current = '%s' where name = '%s'" % (self.doc.current,series[0]['name']))
-      msgprint("Series Updated Successfully")
-    else:
-      msgprint("Please Check Prefix as there is no such Prefix : "+ self.doc.prefix +" Or Try Insert Button")
-
-  def insert_series(self):
-    #sql("start transaction")
-    series = sql("select name,current from `tabSeries` where name = %s", self.doc.prefix, as_dict = 1)
-    if series:
-      msgprint("Series with Prefix : " + series[0]['name'] + "already in the system . Try Update Button")
-    else:
-      msgprint("This is going to Insert Series with Prefix : " + cstr(self.doc.prefix) + " Current: " + cstr(self.doc.current))
-      sql("insert into `tabSeries` (name,current) values ('%s','%s')" % (self.doc.prefix, self.doc.current))
-      msgprint("Series Inserted Successfully")
diff --git a/erpnext/setup/doctype/update_series/update_series.txt b/erpnext/setup/doctype/update_series/update_series.txt
deleted file mode 100644
index b3203be..0000000
--- a/erpnext/setup/doctype/update_series/update_series.txt
+++ /dev/null
@@ -1,104 +0,0 @@
-# DocType, Update Series
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:29',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'allow_copy': 1,
-		'allow_email': 1,
-		'allow_print': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'hide_toolbar': 0,
-		'in_create': 1,
-		'issingle': 1,
-		'module': 'Setup',
-		'name': '__common__',
-		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code': 'class DocType:\n  def __init__(self, doc, doclist=[]):\n    self.doc = doc\n    self.doclist = doclist\n\n  def update_series(self):\n    series = sql("select name,current from `tabSeries` where name = %s", self.doc.prefix,as_dict = 1)\n    if series:\n      msgprint("This is going to update Series with Prefix : " + series[0][\'name\'] + " from Current : " + cstr(series[0][\'current\']) + " to Current : "+ cstr(self.doc.current))\n      sql("update `tabSeries` set current = \'%s\' where name = \'%s\'" % (self.doc.current,series[0][\'name\']))\n      msgprint("Series Updated Successfully")\n    else:\n      msgprint("Please Check Prefix as there is no such Prefix : "+ self.doc.prefix +" Or Try Insert Button")\n\n  def insert_series(self):\n    #sql("start transaction")\n    series = sql("select name,current from `tabSeries` where name = %s", self.doc.prefix, as_dict = 1)\n    if series:\n      msgprint("Series with Prefix : " + series[0][\'name\'] + "already in the system . Try Update Button")\n    else:\n      msgprint("This is going to Insert Series with Prefix : " + cstr(self.doc.prefix) + " Current: " + cstr(self.doc.current))\n      sql("insert into `tabSeries` (name,current) values (\'%s\',\'%s\')" % (self.doc.prefix, self.doc.current))\n      msgprint("Series Inserted Successfully")',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Update Series',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Update Series',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocType, Update Series
-	{
-		'doctype': 'DocType',
-		'name': 'Update Series'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'prefix',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Prefix'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'current',
-		'fieldtype': 'Int',
-		'idx': 2,
-		'label': 'Current'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 3,
-		'label': 'Update',
-		'options': 'update_series'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 4,
-		'label': 'Insert',
-		'options': 'insert_series'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/upload_accounts_transactions/__init__.py b/erpnext/setup/doctype/upload_accounts_transactions/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/doctype/upload_accounts_transactions/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.js b/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.js
deleted file mode 100644
index 4f46546..0000000
--- a/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-
-//--------- ONLOAD -------------
-cur_frm.cscript.onload = function(doc, cdt, cdn) {
-}
-
-cur_frm.cscript.refresh = function(doc, cdt, cdn) {
-	if(!doc.file_list) {
-		set_field_options('Upload Accounts Transactions Help', '<div class="help_box">To upload transactions, please attach a (.csv) file with 5 columns - <b>Date, Transaction Number, Account, Debit Amount, Credit Amount</b> (no headings necessary). See attachments box in the right column</div>')
-	} else {
-		set_field_options('Upload Accounts Transactions Help', '<div class="help_box">To update transactions from the attachment, please click on "Upload Accounts Transactions"</div>')
-	}
-}
-
-cur_frm.cscript['Upload Accounts Transactions'] = function(doc, cdt, cdn) {
-	if(confirm("This action will append all transactions and cannot be un-done. Are you sure you want to continue?")) {
-		$c_obj([doc], 'upload_accounts_transactions', '', function(r, rt) { });
-	}
-}
diff --git a/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.py b/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.py
deleted file mode 100644
index 2d695f3d..0000000
--- a/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.py
+++ /dev/null
@@ -1,120 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-
-# -----------------------------------------------------------------------------------------
-
-class DocType:
-	def __init__(self, d, dl):
-		self.doc, self.doclist = d, dl
-		self.cl = []
-
-	# upload transactions
-	def upload_accounts_transactions(self):
-		import csv
-		data = csv.reader(self.get_csv_data().splitlines())
-
-		abbr = sql("select concat(' - ',abbr) as abbr from tabCompany where name=%s",self.doc.company)
-		updated = 0
-		jv_name=''
-#		jv = Document('Journal Voucher')
-		global line,jv,name,jv_go
-		for line in data:
-			if len(line)>=7: #Minimum no of fields
-				if line[3]!=jv_name: #Create JV
-					if jv_name!='':
-						jv_go = get_obj('Journal Voucher',name, with_children=1)
-						jv_go.validate()
-						jv_go.on_submit()
-
-					jv_name=line[3]
-					jv = Document('Journal Voucher')
-					jv.voucher_type = line[0]
-					jv.naming_series = line[1]
-					jv.voucher_date = formatdate(line[2])
-					jv.posting_date = formatdate(line[2])
-#					jv.name = line[3]
-					jv.fiscal_year = self.doc.fiscal_year
-					jv.company = self.doc.company
-					jv.remark = len(line)==8 and line[3]+' '+line[7] or line[3]+' Uploaded Record'
-					jv.docstatus=1
-					jv.save(1)
-					name=jv.name
-
-					jc = addchild(jv,'entries','Journal Voucher Detail',0)
-					jc.account = line[4]+abbr[0][0]
-					jc.cost_center=len(line)==9 and line[8] or self.doc.default_cost_center
-					if line[5]!='':
-						jc.debit = line[5]
-					else:
-						jc.credit = line[6]
-					jc.save()
-
-				else: #Create JV Child
-					jc = addchild(jv,'entries','Journal Voucher Detail',0)
-					jc.account = line[4]+abbr[0][0]
-					jc.cost_center=len(line)==9 and line[8] or self.doc.default_cost_center
-					if line[5]!='':
-						jc.debit = line[5]
-					else:
-						jc.credit = line[6]
-					jc.save()
-			else:
-				msgprint("[Ignored] Incorrect format: %s" % str(line))
-		if jv_name!='':
-			jv_go = get_obj('Journal Voucher',name, with_children=1)
-			jv_go.validate()
-			jv_go.on_submit()
-
-		msgprint("<b>%s</b> items updated" % updated)
-
-	# clear prices
-	def clear_prices(self):
-		cnt = sql("select count(*) from `tabRef Rate Detail` where price_list_name = %s", self.doc.name)
-		sql("delete from `tabRef Rate Detail` where price_list_name = %s", self.doc.name)
-		msgprint("%s prices cleared" % cnt[0][0])
-
-	# Update CSV data
-	def get_csv_data(self):
-		if not self.doc.file_list:
-		  msgprint("File not attached!")
-		  raise Exception
-
-		fid = self.doc.file_list.split(',')[1]
-
-		from webnotes.utils import file_manager
-		fn, content = file_manager.get_file(fid)
-		
-		# NOTE: Don't know why this condition exists
-		if not isinstance(content, basestring) and hasattr(content, 'tostring'):
-		  content = content.tostring()
-
-		return content
diff --git a/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.txt b/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.txt
deleted file mode 100644
index d637a88..0000000
--- a/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.txt
+++ /dev/null
@@ -1,126 +0,0 @@
-# DocType, Upload Accounts Transactions
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-18 14:56:48',
-		'docstatus': 0,
-		'modified': '2011-07-19 12:19:13',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1310985428',
-		'allow_attach': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'max_attachments': 1,
-		'module': 'Setup',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 1,
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Upload Accounts Transactions',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'execute': 1,
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Upload Accounts Transactions',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'Accounts Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocType, Upload Accounts Transactions
-	{
-		'doctype': 'DocType',
-		'name': 'Upload Accounts Transactions'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 1,
-		'label': 'Usage',
-		'options': '<div class="help_box">\n<b>Upload Account Transactions Help</b>\n<p>To update the account transactions, upload a CSV file with five columns Date, Transaction Number, Account Name, Credit and Debit amount and click on the "Upload Account Transactions" button. The system will add the transactions.\n</div>'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'label': 'Fiscal Year',
-		'options': 'Fiscal Year',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'Company',
-		'options': 'Company',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'default_cost_center',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Default Cost Center',
-		'options': 'Cost Center',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Small Text',
-		'hidden': 1,
-		'idx': 5,
-		'label': 'File List'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 6,
-		'label': 'Upload Accounts Transactions'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/warehouse_type/warehouse_type.txt b/erpnext/setup/doctype/warehouse_type/warehouse_type.txt
index c843838..6015752 100644
--- a/erpnext/setup/doctype/warehouse_type/warehouse_type.txt
+++ b/erpnext/setup/doctype/warehouse_type/warehouse_type.txt
@@ -3,45 +3,45 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:30',
+		'creation': '2012-03-27 14:36:26',
 		'docstatus': 0,
-		'modified': '2010-09-22 10:52:43',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:26',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:warehouse_type',
-		'colour': 'White:FFF',
+		'autoname': u'field:warehouse_type',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 0,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 6
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Warehouse Type',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Warehouse Type',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'amend': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Warehouse Type',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Warehouse Type',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
 		'submit': 0
 	},
@@ -49,86 +49,79 @@
 	# DocType, Warehouse Type
 	{
 		'doctype': 'DocType',
-		'name': 'Warehouse Type'
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Material Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Material Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Material User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'Material User',
-		'write': 0
+		'name': u'Warehouse Type'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Master Manager',
+		'role': u'Material Master Manager',
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'write': 0
+	},
+
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse_type',
-		'fieldtype': 'Data',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'warehouse_type',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Warehouse Type',
-		'oldfieldname': 'warehouse_type',
-		'oldfieldtype': 'Data',
+		'label': u'Warehouse Type',
+		'oldfieldname': u'warehouse_type',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
diff --git a/erpnext/setup/doctype/workflow_action_detail/workflow_action_detail.txt b/erpnext/setup/doctype/workflow_action_detail/workflow_action_detail.txt
index 26028af..660eb11 100644
--- a/erpnext/setup/doctype/workflow_action_detail/workflow_action_detail.txt
+++ b/erpnext/setup/doctype/workflow_action_detail/workflow_action_detail.txt
@@ -3,61 +3,59 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:30',
+		'creation': '2012-03-27 14:36:26',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'swarnalata@webnotestech.com'
+		'modified': '2012-03-27 14:36:26',
+		'modified_by': u'Administrator',
+		'owner': u'swarnalata@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 5
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Workflow Action Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Workflow Action Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
-		'width': '200px'
+		'width': u'200px'
 	},
 
 	# DocType, Workflow Action Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Workflow Action Detail'
+		'name': u'Workflow Action Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'action_field',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Field',
-		'oldfieldname': 'action_field',
-		'oldfieldtype': 'Select'
+		'doctype': u'DocField',
+		'fieldname': u'action_field',
+		'fieldtype': u'Select',
+		'label': u'Field',
+		'oldfieldname': u'action_field',
+		'oldfieldtype': u'Select'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'action_value',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Value',
-		'oldfieldname': 'action_value',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'action_value',
+		'fieldtype': u'Data',
+		'label': u'Value',
+		'oldfieldname': u'action_value',
+		'oldfieldtype': u'Data'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/workflow_engine/workflow_engine.txt b/erpnext/setup/doctype/workflow_engine/workflow_engine.txt
index 5b090c8..f6e3ce7 100644
--- a/erpnext/setup/doctype/workflow_engine/workflow_engine.txt
+++ b/erpnext/setup/doctype/workflow_engine/workflow_engine.txt
@@ -3,22 +3,22 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-03-27 14:36:26',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'swarnalata@webnotestech.com'
+		'modified': '2012-03-27 14:36:26',
+		'modified_by': u'Administrator',
+		'owner': u'swarnalata@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 4
 	},
@@ -26,6 +26,6 @@
 	# DocType, Workflow Engine
 	{
 		'doctype': 'DocType',
-		'name': 'Workflow Engine'
+		'name': u'Workflow Engine'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/workflow_rule/workflow_rule.txt b/erpnext/setup/doctype/workflow_rule/workflow_rule.txt
index 7c35826..93f1c40 100644
--- a/erpnext/setup/doctype/workflow_rule/workflow_rule.txt
+++ b/erpnext/setup/doctype/workflow_rule/workflow_rule.txt
@@ -3,255 +3,245 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-03-27 14:36:26',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'swarnalata@webnotestech.com'
+		'modified': '2012-03-27 14:36:26',
+		'modified_by': u'Administrator',
+		'owner': u'swarnalata@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1308741898',
-		'autoname': 'field:rule_name',
-		'colour': 'White:FFF',
+		'autoname': u'field:rule_name',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Setup',
+		'document_type': u'Master',
+		'module': u'Setup',
 		'name': '__common__',
-		'search_fields': 'select_form,rule_status',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'search_fields': u'select_form,rule_status',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 30
+		'version': 31
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Workflow Rule',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Workflow Rule',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Workflow Rule',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Workflow Rule',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocType, Workflow Rule
 	{
 		'doctype': 'DocType',
-		'name': 'Workflow Rule'
+		'name': u'Workflow Rule'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Rule Definition',
-		'oldfieldtype': 'Section Break'
+		'doctype': u'DocField',
+		'fieldname': u'rule_definition',
+		'fieldtype': u'Section Break',
+		'label': u'Rule Definition',
+		'oldfieldtype': u'Section Break'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 2,
-		'label': 'Intro HTML',
-		'oldfieldtype': 'HTML',
-		'options': '<b>Select form for which you want to define rules,set priority & status.</b>'
+		'doctype': u'DocField',
+		'fieldname': u'intro_html',
+		'fieldtype': u'HTML',
+		'label': u'Intro HTML',
+		'oldfieldtype': u'HTML',
+		'options': u'<b>Select form for which you want to define rules,set priority & status.</b>'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rule_name',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Rule Name',
-		'oldfieldname': 'rule_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'rule_name',
+		'fieldtype': u'Data',
+		'label': u'Rule Name',
+		'oldfieldname': u'rule_name',
+		'oldfieldtype': u'Data',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'rule_status',
-		'fieldtype': 'Select',
-		'idx': 4,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'rule_status',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Rule Status',
-		'oldfieldname': 'rule_status',
-		'oldfieldtype': 'Select',
-		'options': '\nActive\nInactive',
+		'label': u'Rule Status',
+		'oldfieldname': u'rule_status',
+		'oldfieldtype': u'Select',
+		'options': u'\nActive\nInactive',
 		'reqd': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'select_form',
-		'fieldtype': 'Link',
-		'idx': 5,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'select_form',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Select Form',
-		'oldfieldname': 'select_form',
-		'oldfieldtype': 'Link',
-		'options': 'DocType',
+		'label': u'Select Form',
+		'oldfieldname': u'select_form',
+		'oldfieldtype': u'Link',
+		'options': u'DocType',
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rule_priority',
-		'fieldtype': 'Int',
-		'idx': 6,
-		'label': 'Rule Priority',
-		'oldfieldname': 'rule_priority',
-		'oldfieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'rule_priority',
+		'fieldtype': u'Int',
+		'label': u'Rule Priority',
+		'oldfieldname': u'rule_priority',
+		'oldfieldtype': u'Int',
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 7,
-		'label': 'Define Rule',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'define_rule',
+		'fieldtype': u'Section Break',
+		'label': u'Define Rule',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'workflow_rule_details',
-		'fieldtype': 'Table',
-		'idx': 8,
-		'label': 'Workflow Rule Details',
-		'oldfieldname': 'workflow_rule_details',
-		'oldfieldtype': 'Table',
-		'options': 'Workflow Rule Detail',
-		'width': '100px'
+		'doctype': u'DocField',
+		'fieldname': u'workflow_rule_details',
+		'fieldtype': u'Table',
+		'label': u'Workflow Rule Details',
+		'oldfieldname': u'workflow_rule_details',
+		'oldfieldtype': u'Table',
+		'options': u'Workflow Rule Detail',
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'extra_condition',
-		'fieldtype': 'Code',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'extra_condition',
+		'fieldtype': u'Code',
 		'hidden': 1,
-		'idx': 9,
-		'label': 'Extra Condition',
-		'oldfieldname': 'extra_condition',
-		'oldfieldtype': 'Code',
+		'label': u'Extra Condition',
+		'oldfieldname': u'extra_condition',
+		'oldfieldtype': u'Code',
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 10,
-		'label': 'Action Detail',
-		'oldfieldtype': 'Section Break'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'action_detail',
+		'fieldtype': u'Section Break',
+		'label': u'Action Detail',
+		'oldfieldtype': u'Section Break'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'idx': 11,
-		'label': 'Action html',
-		'oldfieldtype': 'HTML',
-		'options': '<b>Specify actions to be taken  when conditions hold satisfied</b>'
+		'doctype': u'DocField',
+		'fieldname': u'action_html',
+		'fieldtype': u'HTML',
+		'label': u'Action html',
+		'oldfieldtype': u'HTML',
+		'options': u'<b>Specify actions to be taken  when conditions hold satisfied</b>'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'workflow_action_details',
-		'fieldtype': 'Table',
-		'idx': 12,
-		'label': 'Workflow Action Details',
-		'oldfieldname': 'workflow_action_details',
-		'oldfieldtype': 'Table',
-		'options': 'Workflow Action Detail'
+		'doctype': u'DocField',
+		'fieldname': u'workflow_action_details',
+		'fieldtype': u'Table',
+		'label': u'Workflow Action Details',
+		'oldfieldname': u'workflow_action_details',
+		'oldfieldtype': u'Table',
+		'options': u'Workflow Action Detail'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'reject_html',
+		'fieldtype': u'HTML',
 		'hidden': 1,
-		'idx': 13,
-		'label': 'Reject HTML',
+		'label': u'Reject HTML',
 		'no_copy': 1,
-		'oldfieldtype': 'HTML',
-		'options': "<b>If any condition holds false the following message will be displayed . If you wish to stop rule engine when condition holds false then set 'Raise Exception' as 'Yes' otherwise keep this field blank or 'No'.</b>",
+		'oldfieldtype': u'HTML',
+		'options': u"<b>If any condition holds false the following message will be displayed . If you wish to stop rule engine when condition holds false then set 'Raise Exception' as 'Yes' otherwise keep this field blank or 'No'.</b>",
 		'print_hide': 1,
 		'report_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'message',
-		'fieldtype': 'Text',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'message',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'idx': 14,
-		'label': 'Enter message',
+		'label': u'Enter message',
 		'no_copy': 1,
-		'oldfieldname': 'message',
-		'oldfieldtype': 'Text',
+		'oldfieldname': u'message',
+		'oldfieldtype': u'Text',
 		'print_hide': 1,
 		'report_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'raise_exception',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'raise_exception',
+		'fieldtype': u'Select',
 		'hidden': 1,
-		'idx': 15,
-		'label': 'Raise Exception',
+		'label': u'Raise Exception',
 		'no_copy': 1,
-		'oldfieldname': 'raise_exception',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'oldfieldname': u'raise_exception',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'print_hide': 1,
 		'report_hide': 1
 	}
diff --git a/erpnext/setup/doctype/workflow_rule_detail/workflow_rule_detail.txt b/erpnext/setup/doctype/workflow_rule_detail/workflow_rule_detail.txt
index 3f22040..dbdb04b 100644
--- a/erpnext/setup/doctype/workflow_rule_detail/workflow_rule_detail.txt
+++ b/erpnext/setup/doctype/workflow_rule_detail/workflow_rule_detail.txt
@@ -3,110 +3,104 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:31',
+		'creation': '2012-03-27 14:36:26',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'swarnalata@webnotestech.com'
+		'modified': '2012-03-27 14:36:26',
+		'modified_by': u'Administrator',
+		'owner': u'swarnalata@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Setup',
+		'module': u'Setup',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 9
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Workflow Rule Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Workflow Rule Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Workflow Rule Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Workflow Rule Detail'
+		'name': u'Workflow Rule Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rule_field',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Field',
-		'oldfieldname': 'rule_field',
-		'oldfieldtype': 'Select',
-		'options': '[]',
-		'width': '200px'
+		'doctype': u'DocField',
+		'fieldname': u'rule_field',
+		'fieldtype': u'Select',
+		'label': u'Field',
+		'oldfieldname': u'rule_field',
+		'oldfieldtype': u'Select',
+		'options': u'[]',
+		'width': u'200px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'operator',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'label': 'Operator',
-		'oldfieldname': 'operator',
-		'oldfieldtype': 'Select',
-		'options': '\nequal\nnot equal\ngreater than\ngreater than equal\nless than\nless than equal'
+		'doctype': u'DocField',
+		'fieldname': u'operator',
+		'fieldtype': u'Select',
+		'label': u'Operator',
+		'oldfieldname': u'operator',
+		'oldfieldtype': u'Select',
+		'options': u'\nequal\nnot equal\ngreater than\ngreater than equal\nless than\nless than equal'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'value',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Value',
-		'oldfieldname': 'value',
-		'oldfieldtype': 'Data',
-		'width': '100px'
+		'doctype': u'DocField',
+		'fieldname': u'value',
+		'fieldtype': u'Data',
+		'label': u'Value',
+		'oldfieldname': u'value',
+		'oldfieldtype': u'Data',
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'comparing_field',
-		'fieldtype': 'Select',
-		'idx': 4,
-		'label': 'Field from other forms',
-		'oldfieldname': 'comparing_field',
-		'oldfieldtype': 'Select'
+		'doctype': u'DocField',
+		'fieldname': u'comparing_field',
+		'fieldtype': u'Select',
+		'label': u'Field from other forms',
+		'oldfieldname': u'comparing_field',
+		'oldfieldtype': u'Select'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'message',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Message when Cond. False',
-		'oldfieldname': 'message',
-		'oldfieldtype': 'Data',
-		'width': '200px'
+		'doctype': u'DocField',
+		'fieldname': u'message',
+		'fieldtype': u'Data',
+		'label': u'Message when Cond. False',
+		'oldfieldname': u'message',
+		'oldfieldtype': u'Data',
+		'width': u'200px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'exception',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Raise Exception',
-		'oldfieldname': 'exception',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo'
+		'doctype': u'DocField',
+		'fieldname': u'exception',
+		'fieldtype': u'Select',
+		'label': u'Raise Exception',
+		'oldfieldname': u'exception',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/setup/page/import_data/import_data.js b/erpnext/setup/page/import_data/import_data.js
index aeb7dad..734c16d 100644
--- a/erpnext/setup/page/import_data/import_data.js
+++ b/erpnext/setup/page/import_data/import_data.js
@@ -47,7 +47,7 @@
 								
 								dt.onclick = function(){ 
 									var ovr = $('input[name="overwrite"]:checked').length;
-										window.location = outUrl + '?cmd=get_template&dt=' + this.nm + (ovr ? '&overwrite=1' : '');
+										window.location = wn.request.url + '?cmd=get_template&dt=' + this.nm + (ovr ? '&overwrite=1' : '');
 								}
 							}
 						}	
diff --git a/erpnext/setup/page/modules_setup/modules_setup.js b/erpnext/setup/page/modules_setup/modules_setup.js
index af7522f..c7f80fc 100644
--- a/erpnext/setup/page/modules_setup/modules_setup.js
+++ b/erpnext/setup/page/modules_setup/modules_setup.js
@@ -1,4 +1,4 @@
-wn.require('lib/js/lib/jquery-ui-sortable.min.js');
+wn.require('lib/js/lib/jquery/jquery.ui.sortable.js');
 
 $.extend(wn.pages.modules_setup, {
 	modules: ['Activity', 'Accounts', 'Selling', 'Buying', 'Stock', 'Production', 'Projects', 
diff --git a/erpnext/setup/page/permission_engine/permission_engine.js b/erpnext/setup/page/permission_engine/permission_engine.js
index 1d77e51..5f5630c 100644
--- a/erpnext/setup/page/permission_engine/permission_engine.js
+++ b/erpnext/setup/page/permission_engine/permission_engine.js
@@ -148,9 +148,13 @@
 		 // Get permissions
 		if(r.message.perms.length) {
 			me.get_results(r.message);
+			pscript.is_submittable = cint(r.message.is_submittable);
 		}
-		else me.body.innerHTML = '<div style = "color : red; margin:8px 0px;">No Records Found</div>'
-		pscript.show_submittable();
+		else {
+			me.body.innerHTML = '<div style = "color : red; margin:8px 0px;">No Records Found</div>'
+			pscript.is_submittable = 0;
+		}
+		pscript.hide_submit_amend()
 	});
 }
 
@@ -171,6 +175,7 @@
 	
 	var head = $a(this.body, 'h3'); head.innerHTML = 'Rules for ' + doctype;				
 	var permt = make_table(me.body, perms.length+1,9,'80%',[],{border:'1px solid #AAA', padding:'3px', verticalAlign:'middle', height:'30px'});
+	$(permt).attr('id', 'perm_table');
 		
 	// Create Grid for particular DocType
 	// ------------------------------------
@@ -203,9 +208,7 @@
 			var val = perms[l][$td(permt,0,m+2).fieldname];
 			if(val == 1) chk.checked = 1;
 			else chk.checked = 0;
-
-			if(m==3) { chk.onclick = pscript.show_submittable }
-
+			//if(m==3) { chk.onclick = pscript.show_submittable }
 			chk.doctype = doctype;
 			chk.permlevel = perms[l].permlevel; chk.perm_type = col_labels[m+2].toLowerCase(); chk.role = perms[l].role;
 			pscript.all_checkboxes.push(chk);
@@ -214,21 +217,18 @@
 	
 	// add selects for match
 	me.add_match_select(r, perms, permt, doctype);
+
 }
 
-// Show submittable warning
-pscript.show_submittable = function() {
-	var submittable = 0;
-	for(i in pscript.all_checkboxes) {
-		c = pscript.all_checkboxes[i];
-		if(c.perm_type=='submit' && c.checked) {
-			submittable = 1;
-			break;
-		}
-	}
-	if(submittable) {
+pscript.hide_submit_amend = function() {
+	var perm_table = $('#perm_table');
+	if (pscript.is_submittable) {
+		perm_table.find('td:nth-child(6)').each(function() { $(this).toggle(true); });
+		perm_table.find('td:nth-child(8)').each(function() { $(this).toggle(true); });
 		$('#submittable_warning').toggle(true);
 	} else {
+		perm_table.find('td:nth-child(6)').each(function() { $(this).toggle(false); });
+		perm_table.find('td:nth-child(8)').each(function() { $(this).toggle(false); });
 		$('#submittable_warning').toggle(false);
 	}
 }
@@ -538,6 +538,22 @@
 		if(sel_val(s))
 			add_to_out(s.details.parent, s.details.permlevel, s.details.role, 'match', sel_val(s));
 	}
+
+	if(pscript.is_submittable) {
+		var doctype = sel_val(me.type_select);
+		var validated = false;
+		for(var role in out[doctype][0]) {
+			if(out[doctype][0][role]['submit']) {
+				validated = true;
+				break;
+			};
+		}
+		if(!validated) {
+			msgprint("Atleast one Role at Level 0 needs to have submit permission. \
+					 Please rectify and try again.")
+			return;
+		}
+	}
 	
 	var args = "{'perm_dict': "+JSON.stringify(out)+"}"
 	$c_obj('Permission Control','update_permissions', args, function(r,rt) {});
diff --git a/erpnext/setup/page/setup/setup.html b/erpnext/setup/page/setup/setup.html
index 50ef112..6e177c2 100644
--- a/erpnext/setup/page/setup/setup.html
+++ b/erpnext/setup/page/setup/setup.html
@@ -31,10 +31,6 @@
 			<b><a href="#!List/Authorization Rule">Amount based Authorization Rules</a></b><br>
 			<span class="help">Restrict submission rights based on amount</span>
 		</p>
-		<p>
-			<b><a href="#!modules_setup">Modules Setup</a></b><br>
-			<span class="help">Show, hide modules</span>
-		</p>
 	</div>
 	<div class="setup-column">
 		<h3>Data</h3>
@@ -43,7 +39,7 @@
 			<span class="help">Import data from spreadsheet (csv) files</span>
 		</p>
 		<p>
-			<b><a href="#!Form/Manage Account/Manage Account">Global Defaults</a></b><br>
+			<b><a href="#!Form/Global Defaults/Global Defaults">Global Defaults</a></b><br>
 			<span class="help">Set default values for entry</span>
 		</p>
 		<p>
@@ -85,21 +81,29 @@
 	<div class="setup-column">
 		<h3>Customize ERPNext</h3>
 		<p>
+			<b><a href="#!Form/Customize Form/Customize Form">Customize Forms</a></b><br>
+			<span class="help">Change entry properties (hide fields, make mandatory etc)</span>
+		</p>
+		<p>
 			<b><a href="#!List/Custom Field">Custom Fields</a></b><br>
 			<span class="help">Add fields to forms</span>
 		</p>
 		<p>
-			<b><a href="#!Form/DocLayer/DocLayer">Customize Forms</a></b><br>
-			<span class="help">Change entry properties (hide fields, make mandatory etc)</span>
-		</p>
-		<p>
-			<b><a href="#!Form/Naming Series/Naming Series">Numbering Series</a></b><br>
-			<span class="help">Set multiple numbering series for transactions</span>
+			<b><a href="#!List/Custom Script">Custom Scripts</a></b><br>
+			<span class="help">Add custom code to forms</span>
 		</p>
 		<p>
 			<b><a href="#!Form/Features Setup/Features Setup">Disable Features</a></b><br>
 			<span class="help">Simplify entry forms by disabling features</span>
 		</p>
+		<p>
+			<b><a href="#!modules_setup">Modules Setup</a></b><br>
+			<span class="help">Show, hide modules</span>
+		</p>
+		<p>
+			<b><a href="#!Form/Naming Series/Naming Series">Numbering Series</a></b><br>
+			<span class="help">Set multiple numbering series for transactions</span>
+		</p>
 	</div>
 	<div class="setup-column">
 		<h3>Branding and Printing</h3>
@@ -115,14 +119,16 @@
 			<b><a href="#!List/Print Heading">Print Headings</a></b><br>
 			<span class="help">Add headers for standard print formats</span>
 		</p>
+		<!--
 		<p>
 			<b><a href="#!Form/Personalize/Personalize">Home Banner</a></b><br>
 			<span class="help">Add a home page banner</span>
 		</p>
+		-->
 		<p>
 			<b><a href="#!Form/Style Settings/Style Settings">Style Settings</a></b><br>
 			<span class="help">Change background fonts etc</span>
 		</p>
 	</div>
 	<div style="clear: both"></div>
-</div>
\ No newline at end of file
+</div>
diff --git a/erpnext/setup/page/setup_wizard/__init__.py b/erpnext/setup/page/setup_wizard/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/page/setup_wizard/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.html b/erpnext/setup/page/setup_wizard/setup_wizard.html
deleted file mode 100644
index 1f5547e..0000000
--- a/erpnext/setup/page/setup_wizard/setup_wizard.html
+++ /dev/null
@@ -1 +0,0 @@
-<div id="setup_wizard_wrapper" class="layout_wrapper"></div>
\ No newline at end of file
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.js b/erpnext/setup/page/setup_wizard/setup_wizard.js
deleted file mode 100644
index 053330b..0000000
--- a/erpnext/setup/page/setup_wizard/setup_wizard.js
+++ /dev/null
@@ -1,183 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-pscript['onload_Setup Wizard'] = function()
-{   
-
-  // header and toolbar
-  var h = new PageHeader('setup_wizard_wrapper','Setup Wizard','All important setup items in one place');
-
-  pscript.setup_wizard_callback();
-}
-
-// ==================================================================================================
-
-pscript.setup_wizard_callback = function(){
-    var items = {};
-    items['Customer'] = new pscript.Setup_Wizard_Obj('Customer', 'customer_name', 0, '', 'Customer', 'Manage your customers',1);
-    items['Supplier'] = new pscript.Setup_Wizard_Obj('Supplier', 'supplier_name', 0, '', 'Supplier', 'Manage your supplier',1);
-    items['Item'] = new pscript.Setup_Wizard_Obj('Item', 'item_name', 0, '', 'Item', 'Create your items',1);
-    //items['Customer Group'] = new pscript.Setup_Wizard_Obj('Customer Group', 'group_name', 0, '', 'Customer Group', 'Organizes your customers for better analysis');
-    items['Price List'] = new pscript.Setup_Wizard_Obj('Price List', 'price_list_name', 0, '', 'Price List', 'Helps you maintain different prices for different customers, currencies etc.');
-    items['Supplier Type'] = new pscript.Setup_Wizard_Obj('Supplier Type', 'supplier_type', 0, '', 'Supplier Type', 'Organizes your suppliers for better analysis');
-    //items['Item Group'] = new pscript.Setup_Wizard_Obj('Item Group', 'group_name', 0, '', 'Item Group', 'Organizes your items for better analysis');
-    items['UoM'] = new pscript.Setup_Wizard_Obj('UOM', 'uom_name', 0, '', 'UOM', 'Maintain multiple Units of Measure (UOM)');
-    items['Warehouse Type'] = new pscript.Setup_Wizard_Obj('Warehouse Type', 'warehouse_type', 0, '', 'Warehouse Type', 'Define types of warehouses');
-    items['Warehouse'] = new pscript.Setup_Wizard_Obj('Warehouse', 'warehouse_name', 'warehouse_type', 'Warehouse Type', 'Warehouse', 'Manage stock across different warehouses');
-    items['Print Heading'] = new pscript.Setup_Wizard_Obj('Print Heading', 'print_heading', 'transaction', 'Transaction', 'Print Heading', 'Define print heading for various transaction.');
-    items['Warehouse Type'].onmake = function(){
-       items['Warehouse'].refresh_select('warehouse_type', 'Warehouse Type', 'Warehouse');
-    }
-    items['Print Heading'].onmake = function(){
-       items['Print Heading'].refresh_select('transaction', 'Transaction', 'Print Heading');
-    }
-}
-
-// ==================================================================================================
-pscript.Setup_Wizard_Obj = function(lbl, name_field, opt_fieldname, opt_field_tbl, dt, desc, important) 
-{
-    this.lbl = lbl;
-    this.make_body(lbl, important);
-    if(lbl != 'Item')
-      this.make_input(name_field);
-    if(opt_fieldname){
-      this.make_select(opt_fieldname, opt_field_tbl, dt);
-    }
-   
-    this.show_description(desc);
-    this.make_button();
-    this.create_doc_link(dt);
-
-}
-
-pscript.Setup_Wizard_Obj.prototype.make_body = function(lbl, important) {
-    var wrapper = $a($i('setup_wizard_wrapper'), 'div', '', {padding:'8px', borderBottom: '1px solid #AAA'});
-    if(important)$y(wrapper, {backgroundColor:'#FFD'});
-    this.tab = make_table(wrapper,1,3,'90%',['20%','50%','30%'], {padding:'2px 0px', verticalAlign:'middle'});
-    this.desc_area = $a(wrapper,'div','comment');
-    
-    $td(this.tab,0,0).innerHTML = lbl.bold();
-}
-
-pscript.Setup_Wizard_Obj.prototype.make_input = function(name_field){
-    this.input = $a_input($td(this.tab,0,1), 'text');
-    this.name_field = name_field;
-}
-
-pscript.Setup_Wizard_Obj.prototype.make_select = function(fn, ft, dt){
-    this.select = $a($td(this.tab,0,1), 'select', '', {width:'120px', marginLeft:'8px'});
-    this.opt_field = fn;
-    this.sel_field = 'Select ' + ft + '...';
-    this.refresh_select(fn, ft, dt);
-}                
-
-pscript.Setup_Wizard_Obj.prototype.refresh_select = function(fn, ft, dt){
-  var me = this;
-  if(ft == 'Transaction'){
-    empty_select(me.select);
-    add_sel_options(me.select, ['Select Transaction ...','Purchase Order','Sales Order','Service Order','Purchase Receipt','Delivery Note','Receivable Voucher','Payable Voucher','Journal Voucher']);
-  }
-  else{
-    $c_obj('Setup Wizard Control', 'get_master_lists','', function(r,rt){
-      var ft_lst = [];
-      if(r.message) ft_lst = r.message;
-      ft_lst.push('Select Warehouse Type ...');
-      empty_select(me.select);
-      add_sel_options(me.select, ft_lst.reverse(), 'Warehouse Type');
-    });
-  }
-}  
- 
-pscript.Setup_Wizard_Obj.prototype.make_button = function(){   
-    var me = this;
-
-    var create = $a($td(this.tab,0,1), 'button', '', {marginLeft:'8px'});
-    create.innerHTML = 'Create';
-    
-    create.onclick = function(){
-        me.create_record(this);
-    }
-}
-
-// show description
-pscript.Setup_Wizard_Obj.prototype.show_description=function(desc){ 
-    this.desc_area.innerHTML = desc;
-}
-
-// create link to show listing of all records
-pscript.Setup_Wizard_Obj.prototype.create_doc_link = function(doc_link){  
-    this.obj_link = $a($td(this.tab,0,2), 'span', 'link_type',{marginLeft:'8px'});
-    this.obj_link.innerHTML = 'View ' + doc_link + ' list';
-    this.dt = doc_link;
-
-    this.obj_link.onclick = function(){
-      if(doc_link == 'Customer') doc_lst = 'customer_group'+NEWLINE+'country';
-      else if(doc_link == 'Supplier') doc_lst = 'supplier_type'+NEWLINE+'supplier_status'+NEWLINE+'company';
-      else if(doc_link == 'Item') doc_lst = 'item_group'+NEWLINE+'description';
-        
-      if(doc_link == 'Customer' || doc_link == 'Supplier' || doc_link == 'Item')
-        loaddocbrowser(doc_link,doc_link, doc_lst);
-      else
-        loaddocbrowser(doc_link);
-    }
-}    
-pscript.Setup_Wizard_Obj.prototype.create_record = function(cur_obj)
-{   
-    var me = this;
-    if(me.lbl == 'Item'){ me.create_master_rec(); }
-    else{
-      if(this.input.value) { //check for input value
-        
-        if (this.select && (this.sel_field == this.select.value)){ //check for value is selected or not
-          alert('Please select '+this.select.value);  
-          this.input.value = '';
-        }
-        else{
-          args = {};
-          args['Doctype'] = this.dt;
-          if(strip(this.input.value) == ''){ alert("Please enter proper name."); me.input.value = '';}
-          else{
-            if(me.lbl == 'Customer' || me.lbl == 'Supplier'){ this.create_master_rec(); }
-            else{
-              args[this.name_field] = this.input.value;
-              args[this.opt_field] = this.opt_field ? this.select.value : '';
-              
-              $c_obj('Setup Wizard Control', 'create_record', JSON.stringify(args), function(r,rt){        
-                alert(r.message);
-                me.input.value = '';
-                if(me.onmake) me.onmake();  
-              });
-            }
-          }
-        }
-      }
-      else
-        alert("Please enter " +this.dt);
-    }
-}
-
-pscript.Setup_Wizard_Obj.prototype.create_master_rec = function(){
-  var me = this;
-  var fn = function(new_docname) {
-    var new_doc = locals[me.lbl][new_docname];
-    if(me.lbl == 'Customer')
-      new_doc.customer_name = me.input.value;
-    else if(me.lbl == 'Supplier')
-      new_doc.supplier_name = me.input.value;
-  }
-  new_doc(me.lbl, fn);
-  
-}
\ No newline at end of file
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.txt b/erpnext/setup/page/setup_wizard/setup_wizard.txt
deleted file mode 100644
index 4017586..0000000
--- a/erpnext/setup/page/setup_wizard/setup_wizard.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-# Page, Setup Wizard
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-10-12 15:19:32',
-		'docstatus': 0,
-		'modified': '2010-09-25 00:00:00',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Page
-	{
-		'doctype': 'Page',
-		'module': 'Setup',
-		'name': '__common__',
-		'page_name': 'Setup Wizard',
-		'show_in_menu': 0,
-		'standard': 'Yes'
-	},
-
-	# These values are common for all Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Setup Wizard',
-		'parentfield': 'roles',
-		'parenttype': 'Page',
-		'role': 'System Manager'
-	},
-
-	# Page, Setup Wizard
-	{
-		'doctype': 'Page',
-		'name': 'Setup Wizard'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard_static.html b/erpnext/setup/page/setup_wizard/setup_wizard_static.html
deleted file mode 100644
index 281c686..0000000
--- a/erpnext/setup/page/setup_wizard/setup_wizard_static.html
+++ /dev/null
@@ -1 +0,0 @@
-<div></div>
\ No newline at end of file
diff --git a/erpnext/setup_masters/Module Def/Setup Masters/Setup Masters.txt b/erpnext/setup_masters/Module Def/Setup Masters/Setup Masters.txt
deleted file mode 100644
index fe1a048..0000000
--- a/erpnext/setup_masters/Module Def/Setup Masters/Setup Masters.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# Module Def, Setup Masters
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:35:42',
-		'docstatus': 0,
-		'modified': '2012-01-23 17:04:53',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Module Def
-	{
-		'disabled': 'No',
-		'doctype': u'Module Def',
-		'is_hidden': 'No',
-		'last_updated_date': '2010-11-29 12:02:02',
-		'module_label': 'Setup Masters',
-		'module_name': 'Setup Masters',
-		'name': '__common__'
-	},
-
-	# Module Def, Setup Masters
-	{
-		'doctype': u'Module Def',
-		'name': 'Setup Masters'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/startup/event_handlers.py b/erpnext/startup/event_handlers.py
index 703399a..e5846b5 100644
--- a/erpnext/startup/event_handlers.py
+++ b/erpnext/startup/event_handlers.py
@@ -26,9 +26,11 @@
 	if login_manager.user not in ('Guest', None, '') and webnotes.conn.cur_db_name!='accounts' and webnotes.conn.get_value('Control Panel', 'Control Panel', 'account_id')!='s5u011':
 		try:
 			login_manager = login_as(login_manager)
-			update_account_details()
-			import server_tools.gateway_utils
-			server_tools.gateway_utils.check_login(login_manager.user)
+			if hasattr(webnotes.defs, 'sync_with_gateway') and \
+					cint(webnotes.defs.sync_with_gateway) or 0:
+				update_account_details()
+				import server_tools.gateway_utils
+				server_tools.gateway_utils.check_login(login_manager.user)
 			
 		except ImportError:
 			pass
@@ -158,6 +160,8 @@
 # logout the user from SSO
 #
 def on_logout(login_manager):
-	if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')):
+	import webnotes.defs
+	if hasattr(webnotes.defs, 'sync_with_gateway') and \
+			cint(webnotes.defs.sync_with_gateway) or 0:
 		from server_tools.gateway_utils import logout_sso
 		logout_sso(user=login_manager.user)
diff --git a/erpnext/startup/js/complete_setup.js b/erpnext/startup/js/complete_setup.js
index ac89aff..c643813 100644
--- a/erpnext/startup/js/complete_setup.js
+++ b/erpnext/startup/js/complete_setup.js
@@ -85,7 +85,7 @@
 			wn.boot.user_info[user].fullname = user_fullname;
 			d.hide();
 			$('header').toggle(true);
-			page_body.wntoolbar.set_user_name();
+			wn.container.wntoolbar.set_user_name();
 		});
 	}
 	
diff --git a/erpnext/startup/js/feature_setup.js b/erpnext/startup/js/feature_setup.js
index 8006dca..4a7ebfe 100644
--- a/erpnext/startup/js/feature_setup.js
+++ b/erpnext/startup/js/feature_setup.js
@@ -28,13 +28,13 @@
 // ====================================================================*/
 pscript.feature_dict = {
 	'fs_projects': {
-		'Bill Of Materials': {'fields':['project_name']},
+		'BOM': {'fields':['project_name']},
 		'Delivery Note': {'fields':['project_name']},
-		'Payable Voucher': {'fields':['project_name']},
+		'Purchase Invoice': {'fields':['project_name']},
 		'Production Order': {'fields':['project_name']},
 		'Purchase Order': {'fields':['project_name']},
 		'Purchase Receipt': {'fields':['project_name']},
-		'Receivable Voucher': {'fields':['project_name']},
+		'Sales Invoice': {'fields':['project_name']},
 		'Sales Order': {'fields':['project_name']},
 		'Stock Entry': {'fields':['project_name']},
 		'Timesheet': {'timesheet_details':['project_name']}
@@ -46,22 +46,22 @@
 	'fs_discounts': {
 		'Delivery Note': {'delivery_note_details':['adj_rate']},
 		'Quotation': {'quotation_details':['adj_rate']},
-		'Receivable Voucher': {'entries':['adj_rate']},
+		'Sales Invoice': {'entries':['adj_rate']},
 		'Sales Order': {'sales_order_details':['adj_rate','ref_rate']}
 	},
 	'fs_purchase_discounts': {
 		'Purchase Order': {'po_details':['purchase_ref_rate', 'discount_rate', 'import_ref_rate']},
 		'Purchase Receipt': {'purchase_receipt_details':['purchase_ref_rate', 'discount_rate', 'import_ref_rate']},
-		'Payable Voucher': {'entries':['purchase_ref_rate', 'discount_rate', 'import_ref_rate']}
+		'Purchase Invoice': {'entries':['purchase_ref_rate', 'discount_rate', 'import_ref_rate']}
 	},
 	'fs_brands': {
 		'Delivery Note': {'delivery_note_details':['brand']},
-		'Indent': {'indent_details':['brand']},
+		'Purchase Request': {'indent_details':['brand']},
 		'Item': {'fields':['brand']},
 		'Purchase Order': {'po_details':['brand']},
-		'Payable Voucher': {'entries':['brand']},
+		'Purchase Invoice': {'entries':['brand']},
 		'Quotation': {'quotation_details':['brand']},
-		'Receivable Voucher': {'entries':['brand']},
+		'Sales Invoice': {'entries':['brand']},
 		'Sales BOM': {'fields':['new_item_brand']},
 		'Sales Order': {'sales_order_details':['brand']},
 		'Serial No': {'fields':['brand']}
@@ -73,9 +73,9 @@
 		'Delivery Note': {'delivery_note_details':['batch_no']},
 		'Item': {'fields':['has_batch_no']},
 		'Purchase Receipt': {'purchase_receipt_details':['batch_no']},
-		'QA Inspection Report': {'fields':['batch_no']},
+		'Quality Inspection': {'fields':['batch_no']},
 		'Sales and Pruchase Return Wizard': {'return_details':['batch_no']},
-		'Receivable Voucher': {'entries':['batch_no']},
+		'Sales Invoice': {'entries':['batch_no']},
 		'Stock Entry': {'mtn_details':['batch_no']},
 		'Stock Ledger Entry': {'fields':['batch_no']}
 	},
@@ -87,23 +87,23 @@
 		'Maintenance Schedule': {'item_maintenance_details':['serial_no'],'maintenance_schedule_details':['serial_no']},
 		'Maintenance Visit': {'maintenance_visit_details':['serial_no']},
 		'Purchase Receipt': {'purchase_receipt_details':['serial_no']},
-		'QA Inspection Report': {'fields':['item_serial_no']},
+		'Quality Inspection': {'fields':['item_serial_no']},
 		'Sales and Pruchase Return Wizard': {'return_details':['serial_no']},
-		'Receivable Voucher': {'entries':['serial_no']},
+		'Sales Invoice': {'entries':['serial_no']},
 		'Stock Entry': {'mtn_details':['serial_no']},
 		'Stock Ledger Entry': {'fields':['serial_no']}
 	},
 	'fs_item_group_in_details': {
 		'Delivery Note': {'delivery_note_details':['item_group']},
-		'Enquiry': {'enquiry_details':['item_group']},
-		'Indent': {'indent_details':['item_group']},
+		'Opportunity': {'enquiry_details':['item_group']},
+		'Purchase Request': {'indent_details':['item_group']},
 		'Item': {'fields':['item_group']},
-		'Manage Account': {'fields':['default_item_group']},
+		'Global Defaults': {'fields':['default_item_group']},
 		'Purchase Order': {'po_details':['item_group']},
 		'Purchase Receipt': {'purchase_receipt_details':['item_group']},
 		'Purchase Voucher': {'entries':['item_group']},
 		'Quotation': {'quotation_details':['item_group']},
-		'Receivable Voucher': {'entries':['item_group']},
+		'Sales Invoice': {'entries':['item_group']},
 		'Sales BOM': {'fields':['serial_no']},
 		'Sales Order': {'sales_order_details':['item_group']},
 		'Serial No': {'fields':['item_group']},
@@ -113,25 +113,25 @@
 	},
 	'fs_page_break': {
 		'Delivery Note': {'delivery_note_details':['page_break'],'packing_details':['page_break']},
-		'Indent': {'indent_details':['page_break']},
+		'Purchase Request': {'indent_details':['page_break']},
 		'Purchase Order': {'po_details':['page_break']},
 		'Purchase Receipt': {'purchase_receipt_details':['page_break']},
 		'Purchase Voucher': {'entries':['page_break']},
 		'Quotation': {'quotation_details':['page_break']},
-		'Receivable Voucher': {'entries':['page_break']},
+		'Sales Invoice': {'entries':['page_break']},
 		'Sales Order': {'sales_order_details':['page_break']}
 	},
 	'fs_exports': {
 		'Delivery Note': {'fields':['Note','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'delivery_note_details':['base_ref_rate','amount','basic_rate']},
 		'POS Setting': {'fields':['conversion_rate','currency']},
 		'Quotation': {'fields':['Note HTML','OT Notes','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'quotation_details':['base_ref_rate','amount','basic_rate']},
-		'Receivable Voucher': {'fields':['conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'entries':['base_ref_rate','amount','basic_rate']},
+		'Sales Invoice': {'fields':['conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'entries':['base_ref_rate','amount','basic_rate']},
 		'Item': {'ref_rate_details':['ref_currency']},
 		'Sales BOM': {'fields':['currency']},
 		'Sales Order': {'fields':['Note1','OT Notes','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'sales_order_details':['base_ref_rate','amount','basic_rate']}
 	},
 	'fs_imports': {
-		'Payable Voucher': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'entries':['purchase_ref_rate', 'amount','rate']},
+		'Purchase Invoice': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'entries':['purchase_ref_rate', 'amount','rate']},
 		'Purchase Order': {'fields':['Note HTML','conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'po_details':['purchase_ref_rate', 'amount','purchase_rate']},
 		'Purchase Receipt': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'purchase_receipt_details':['purchase_ref_rate','amount','purchase_rate']},
 		'Supplier Quotation': {'fields':['conversion_rate','currency']}
@@ -145,19 +145,19 @@
 		'Customer': {'fields':['sales_team']},
 		'Delivery Note': {'fields':['sales_team','Packing List']},
 		'Item': {'fields':['item_customer_details']},
-		'Receivable Voucher': {'fields':['sales_team']},
+		'Sales Invoice': {'fields':['sales_team']},
 		'Sales Order': {'fields':['sales_team','Packing List']}
 	},
 	'fs_more_info': {
 		'Delivery Note': {'fields':['More Info']},
-		'Enquiry': {'fields':['More Info']},
-		'Indent': {'fields':['More Info']},
+		'Opportunity': {'fields':['More Info']},
+		'Purchase Request': {'fields':['More Info']},
 		'Lead': {'fields':['More Info']},
-		'Payable Voucher': {'fields':['More Info']},
+		'Purchase Invoice': {'fields':['More Info']},
 		'Purchase Order': {'fields':['More Info']},
 		'Purchase Receipt': {'fields':['More Info']},
 		'Quotation': {'fields':['More Info']},
-		'Receivable Voucher': {'fields':['More Info']},
+		'Sales Invoice': {'fields':['More Info']},
 		'Sales Order': {'fields':['More Info']},
 	},
 	'fs_quality': {
@@ -168,10 +168,10 @@
 		'Item': {'fields':['Manufacturing']}
 	},
 	'fs_pos': {
-		'Receivable Voucher': {'fields':['is_pos']}
+		'Sales Invoice': {'fields':['is_pos']}
 	},
 	'fs_recurring_invoice': {
-		'Receivable Voucher': {'fields': ['Recurring Invoice']}
+		'Sales Invoice': {'fields': ['Recurring Invoice']}
 	}
 }
 
diff --git a/erpnext/startup/js/modules.js b/erpnext/startup/js/modules.js
index d43b021..2e0e701 100644
--- a/erpnext/startup/js/modules.js
+++ b/erpnext/startup/js/modules.js
@@ -61,7 +61,7 @@
 
 erpnext.module_page.make_list = function(module, wrapper) {
 	// make project listing
-	wrapper.list = new wn.widgets.Listing({
+	wrapper.list = new wn.ui.Listing({
 		parent: $(wrapper).find('.reports-list').get(0),
 		method: 'utilities.get_report_list',
 		render_row: function(row, data) {
diff --git a/erpnext/startup/js/toolbar.js b/erpnext/startup/js/toolbar.js
index 7bf9c6a..eb3bff8 100644
--- a/erpnext/startup/js/toolbar.js
+++ b/erpnext/startup/js/toolbar.js
@@ -48,7 +48,7 @@
 		$('#toolbar-user').append('<li><a href="#billing">Billing</a></li>')
 	}
 
-	$.extend(page_body.wntoolbar, {
+	$.extend(wn.container.wntoolbar, {
 		set_new_comments: function(new_comments) {
 			var navbar_nc = $('.navbar-new-comments');
 			if(new_comments && new_comments.length>0) {
@@ -66,7 +66,7 @@
 		}
 	});
 
-	page_body.wntoolbar.set_new_comments();
+	wn.container.wntoolbar.set_new_comments();
 }
 
 erpnext.toolbar.add_modules = function() {
diff --git a/erpnext/startup/startup.css b/erpnext/startup/startup.css
index 225e444..a6f4e92 100644
--- a/erpnext/startup/startup.css
+++ b/erpnext/startup/startup.css
@@ -1,11 +1,11 @@
 h1, h2, h3, h4, h5 {
-	font-family: Tahoma, Arial, Verdana, sans-serif;
+	font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif;
 	font-weight: bold;
 }
 
 body {
-	font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
-	font-size: 12px;
+	font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif;
+	font-size: 13px;
 }
 
 span, div, td, input, textarea, button, select {
@@ -13,7 +13,11 @@
 }
 
 body {
-	background: url(../images/stripedbg.png) repeat;
+	background: url(../images/redbeech.jpg) repeat;
+}
+
+.small {
+	font-size: 11.5px;
 }
 
 .erpnext-footer {
diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js
index c00770c..5d7e663 100644
--- a/erpnext/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -49,14 +49,14 @@
 	
 	erpnext.startup.set_globals();
 
-	if(wn.boot.custom_css) {
-		set_style(wn.boot.custom_css);
-	}
 	if(wn.boot.user_background) {
 		erpnext.set_user_background(wn.boot.user_background);
 	}
 		
 	if(user == 'Guest'){
+		if(wn.boot.custom_css) {
+			set_style(wn.boot.custom_css);
+		}
 		if(wn.boot.website_settings.title_prefix) {
 			wn.title_prefix = wn.boot.website_settings.title_prefix;
 		}
@@ -64,6 +64,10 @@
 		// always allow apps
 		wn.boot.profile.allow_modules = wn.boot.profile.allow_modules.concat(
 			['To Do', 'Knowledge Base', 'Calendar', 'Activity', 'Messages'])
+		// allow dashboard to accounts manager
+		if(user_roles.indexOf('Accounts Manager')!=-1) {
+			wn.boot.profile.allow_modules.push('Dashboard');
+		}
 		
 		// setup toolbar
 		erpnext.toolbar.setup();
@@ -73,8 +77,8 @@
 
 		// border to the body
 		// ------------------
-		$('footer').html('<div class="web-footer erpnext-footer">\
-			<a href="#!attributions">ERPNext | Attributions and License</a></div>');
+		//$('footer').html('<div class="web-footer erpnext-footer">\
+		//	<a href="#!attributions">ERPNext | Attributions and License</a></div>');
 
 		// complete registration
 		if(in_list(user_roles,'System Manager') && (wn.boot.setup_complete=='No')) { 
@@ -107,39 +111,43 @@
 var update_messages = function(reset) {
 	// Updates Team Messages
 	
-	if(inList(['Guest'], user)) { return; }
+	if(inList(['Guest'], user) || !wn.session_alive) { return; }
 
 	if(!reset) {
-		$c_page('home', 'event_updates', 'get_global_status_messages', null,
-			function(r,rt) {
-				if(!r.exc) {
-					// This function is defined in toolbar.js
-					page_body.wntoolbar.set_new_comments(r.message.unread_messages);
-					
-					var show_in_circle = function(parent_id, msg) {
-						var parent = $('#'+parent_id);
-						if(parent) {
-							if(msg) {
-								parent.find('span:first').text(msg);
-								parent.toggle(true);
-							} else {
-								parent.toggle(false);
-							}
+		var set_messages = function(r) {
+			if(!r.exc) {
+				// This function is defined in toolbar.js
+				wn.container.wntoolbar.set_new_comments(r.message.unread_messages);
+				
+				var show_in_circle = function(parent_id, msg) {
+					var parent = $('#'+parent_id);
+					if(parent) {
+						if(msg) {
+							parent.find('span:first').text(msg);
+							parent.toggle(true);
+						} else {
+							parent.toggle(false);
 						}
 					}
-
-					show_in_circle('unread_messages', r.message.unread_messages.length);
-					show_in_circle('open_support_tickets', r.message.open_support_tickets);
-					show_in_circle('things_todo', r.message.things_todo);
-					show_in_circle('todays_events', r.message.todays_events);
-
-				} else {
-					clearInterval(wn.updates.id);
 				}
+				
+				show_in_circle('unread_messages', r.message.unread_messages.length);
+				show_in_circle('open_support_tickets', r.message.open_support_tickets);
+				show_in_circle('things_todo', r.message.things_todo);
+				show_in_circle('todays_events', r.message.todays_events);
+
+			} else {
+				clearInterval(wn.updates.id);
 			}
-		);
+		}
+
+		wn.call({
+			method: 'startup.startup.get_global_status_messages',
+			callback: set_messages
+		});
+	
 	} else {
-		page_body.wntoolbar.set_new_comments(0);
+		wn.container.wntoolbar.set_new_comments(0);
 		$('#unread_messages').toggle(false);
 	}
 }
diff --git a/erpnext/startup/startup.py b/erpnext/startup/startup.py
new file mode 100644
index 0000000..8bc13f8
--- /dev/null
+++ b/erpnext/startup/startup.py
@@ -0,0 +1,54 @@
+import webnotes
+
+def get_unread_messages():
+	"returns unread (docstatus-0 messages for a user)"
+	return webnotes.conn.sql("""\
+		SELECT name, comment
+		FROM `tabComment`
+		WHERE comment_doctype IN ('My Company', 'Message')
+		AND comment_docname = %s
+		AND ifnull(docstatus,0)=0
+		""", webnotes.user.name, as_list=1)
+
+def get_open_support_tickets():
+	"""
+		Returns a count of open support tickets
+	"""
+	from webnotes.utils import cint
+	open_support_tickets = webnotes.conn.sql("""\
+		SELECT COUNT(*) FROM `tabSupport Ticket`
+		WHERE status = 'Open'""")
+	return open_support_tickets and cint(open_support_tickets[0][0]) or 0
+
+def get_things_todo():
+	"""
+		Returns a count of incomplete todos
+	"""
+	from webnotes.utils import cint
+	incomplete_todos = webnotes.conn.sql("""\
+		SELECT COUNT(*) FROM `tabToDo`
+		WHERE IFNULL(checked, 0) = 0
+		AND owner = %s""", webnotes.session.get('user'))
+	return incomplete_todos and cint(incomplete_todos[0][0]) or 0
+
+def get_todays_events():
+	"""
+		Returns a count of todays events in calendar
+	"""
+	from webnotes.utils import nowdate, cint
+	todays_events = webnotes.conn.sql("""\
+		SELECT COUNT(*) FROM `tabEvent`
+		WHERE owner = %s
+		AND event_type != 'Cancel'
+		AND event_date = %s""", (
+		webnotes.session.get('user'), nowdate()))
+	return todays_events and cint(todays_events[0][0]) or 0
+
+@webnotes.whitelist()
+def get_global_status_messages(arg=None):
+	return {
+		'unread_messages': get_unread_messages(),
+		'open_support_tickets': get_open_support_tickets(),
+		'things_todo': get_things_todo(),
+		'todays_events': get_todays_events(),
+	}
diff --git a/erpnext/stock/DocType Label/QA Inspection Report/QA Inspection Report.txt b/erpnext/stock/DocType Label/QA Inspection Report/QA Inspection Report.txt
deleted file mode 100644
index a4d266f..0000000
--- a/erpnext/stock/DocType Label/QA Inspection Report/QA Inspection Report.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'modified_by': 'Administrator', 'name': 'QA Inspection Report', 'parent': None, 'dt_label': 'Quality Inspection', 'creation': '2010-06-28 12:56:06', 'modified': '2010-06-28 12:56:06', 'module': 'Accounts', 'doctype': 'DocType Label', 'idx': None, 'parenttype': None, 'owner': 'Administrator', 'docstatus': 0, 'dt': 'QA Inspection Report', 'parentfield': None}]
\ No newline at end of file
diff --git a/erpnext/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt b/erpnext/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt
index 7cc2350..42ba6f0 100644
--- a/erpnext/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt
+++ b/erpnext/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt
@@ -84,10 +84,10 @@
 	{
 		'doctype': u'Table Mapper Detail',
 		'from_field': u'delivery_note_details',
-		'from_table': u'Delivery Note Detail',
+		'from_table': u'Delivery Note Item',
 		'match_id': 1,
 		'to_field': u'item_details',
-		'to_table': u'Packing Slip Detail',
+		'to_table': u'Packing Slip Item',
 		'validation_logic': u'IFNULL(packed_qty, 0) < IFNULL(qty, 0)'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
index d628495..745ef1f 100644
--- a/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
+++ b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2012-03-20 14:24:12',
+		'modified': '2012-04-02 14:03:39',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -189,12 +189,25 @@
 	{
 		'doctype': u'Table Mapper Detail',
 		'from_field': u'po_details',
-		'from_table': u'PO Detail',
+		'from_table': u'Purchase Order Item',
 		'match_id': 1,
 		'reference_doctype_key': u'prevdoc_doctype',
 		'reference_key': u'prevdoc_detail_docname',
 		'to_field': u'purchase_receipt_details',
-		'to_table': u'Purchase Receipt Detail',
+		'to_table': u'Purchase Receipt Item',
+		'validation_logic': u'docstatus=1 and qty > ifnull(received_qty,0)'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'po_details',
+		'from_table': u'Purchase Order Item',
+		'match_id': 1,
+		'reference_doctype_key': u'prevdoc_doctype',
+		'reference_key': u'prevdoc_detail_docname',
+		'to_field': u'purchase_receipt_details',
+		'to_table': u'Purchase Receipt Item',
 		'validation_logic': u'docstatus=1 and qty > ifnull(received_qty,0)'
 	},
 
@@ -212,10 +225,21 @@
 	{
 		'doctype': u'Table Mapper Detail',
 		'from_field': u'purchase_tax_details',
-		'from_table': u'Purchase Tax Detail',
+		'from_table': u'Purchase Taxes and Charges',
 		'match_id': 2,
 		'to_field': u'purchase_tax_details',
-		'to_table': u'Purchase Tax Detail',
+		'to_table': u'Purchase Taxes and Charges',
+		'validation_logic': u'docstatus = 1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'purchase_tax_details',
+		'from_table': u'Purchase Taxes and Charges',
+		'match_id': 2,
+		'to_field': u'purchase_tax_details',
+		'to_table': u'Purchase Taxes and Charges',
 		'validation_logic': u'docstatus = 1'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt b/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt
deleted file mode 100755
index 61b33ee..0000000
--- a/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt
+++ /dev/null
@@ -1,169 +0,0 @@
-# DocType Mapper, Receivable Voucher-Delivery Note
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-12-14 17:56:41',
-		'docstatus': 0,
-		'modified': '2011-09-15 15:04:44',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'name': '__common__',
-		'parent': 'Receivable Voucher-Delivery Note',
-		'parentfield': 'table_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'name': '__common__',
-		'parent': 'Receivable Voucher-Delivery Note',
-		'parentfield': 'field_mapper_details',
-		'parenttype': 'DocType Mapper'
-	},
-
-	# These values are common for all DocType Mapper
-	{
-		'doctype': u'DocType Mapper',
-		'from_doctype': 'Receivable Voucher',
-		'module': 'Stock',
-		'name': '__common__',
-		'ref_doc_submitted': 1,
-		'to_doctype': 'Delivery Note'
-	},
-
-	# DocType Mapper, Receivable Voucher-Delivery Note
-	{
-		'doctype': u'DocType Mapper',
-		'name': 'Receivable Voucher-Delivery Note'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval: flt(obj.qty) - flt(obj.delivered_qty)',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'qty'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parent',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'prevdoc_docname'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'parenttype',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'prevdoc_doctype'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'name',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'prevdoc_detail_docname'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'amount'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'export_amount'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'naming_series',
-		'map': 'No',
-		'match_id': 0,
-		'to_field': 'naming_series'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'customer_address',
-		'map': 'Yes',
-		'match_id': 0,
-		'to_field': 'delivery_address'
-	},
-
-	# Field Mapper Detail
-	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'serial_no',
-		'map': 'Yes',
-		'match_id': 1,
-		'to_field': 'serial_no'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_table': 'Receivable Voucher',
-		'match_id': 0,
-		'to_table': 'Delivery Note',
-		'validation_logic': 'docstatus=1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'entries',
-		'from_table': 'RV Detail',
-		'match_id': 1,
-		'to_field': 'delivery_note_details',
-		'to_table': 'Delivery Note Detail',
-		'validation_logic': 'docstatus = 1'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'other_charges',
-		'from_table': 'RV Tax Detail',
-		'match_id': 2,
-		'to_field': 'other_charges',
-		'to_table': 'RV Tax Detail',
-		'validation_logic': 'name is not null'
-	},
-
-	# Table Mapper Detail
-	{
-		'doctype': 'Table Mapper Detail',
-		'from_field': 'sales_team',
-		'from_table': 'Sales Team',
-		'match_id': 3,
-		'to_field': 'sales_team',
-		'to_table': 'Sales Team',
-		'validation_logic': 'name is not null'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/DocType Mapper/Sales Invoice-Delivery Note/Sales Invoice-Delivery Note.txt b/erpnext/stock/DocType Mapper/Sales Invoice-Delivery Note/Sales Invoice-Delivery Note.txt
new file mode 100755
index 0000000..608a1d7
--- /dev/null
+++ b/erpnext/stock/DocType Mapper/Sales Invoice-Delivery Note/Sales Invoice-Delivery Note.txt
@@ -0,0 +1,169 @@
+# DocType Mapper, Sales Invoice-Delivery Note
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2010-12-14 17:56:41',
+		'docstatus': 0,
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'name': '__common__',
+		'parent': u'Sales Invoice-Delivery Note',
+		'parentfield': u'table_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'name': '__common__',
+		'parent': u'Sales Invoice-Delivery Note',
+		'parentfield': u'field_mapper_details',
+		'parenttype': u'DocType Mapper'
+	},
+
+	# These values are common for all DocType Mapper
+	{
+		'doctype': u'DocType Mapper',
+		'from_doctype': u'Sales Invoice',
+		'module': u'Stock',
+		'name': '__common__',
+		'ref_doc_submitted': 1,
+		'to_doctype': u'Delivery Note'
+	},
+
+	# DocType Mapper, Sales Invoice-Delivery Note
+	{
+		'doctype': u'DocType Mapper',
+		'name': u'Sales Invoice-Delivery Note'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: flt(obj.qty) - flt(obj.delivered_qty)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'qty'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parent',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'prevdoc_docname'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'parenttype',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'prevdoc_doctype'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'name',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'prevdoc_detail_docname'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'amount'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'export_amount'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'naming_series',
+		'map': u'No',
+		'match_id': 0,
+		'to_field': u'naming_series'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'customer_address',
+		'map': u'Yes',
+		'match_id': 0,
+		'to_field': u'delivery_address'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'serial_no',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'serial_no'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_table': u'Sales Invoice',
+		'match_id': 0,
+		'to_table': u'Delivery Note',
+		'validation_logic': u'docstatus=1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'entries',
+		'from_table': u'Sales Invoice Item',
+		'match_id': 1,
+		'to_field': u'delivery_note_details',
+		'to_table': u'Delivery Note Item',
+		'validation_logic': u'docstatus = 1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'other_charges',
+		'from_table': u'Sales Taxes and Charges',
+		'match_id': 2,
+		'to_field': u'other_charges',
+		'to_table': u'Sales Taxes and Charges',
+		'validation_logic': u'name is not null'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'sales_team',
+		'from_table': u'Sales Team',
+		'match_id': 3,
+		'to_field': u'sales_team',
+		'to_table': u'Sales Team',
+		'validation_logic': u'name is not null'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt b/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt
index 43e800f..3024da5 100644
--- a/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt
+++ b/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2012-03-01 17:58:16',
+		'modified': '2012-04-02 13:05:03',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -131,6 +131,16 @@
 	{
 		'checking_operator': u'=',
 		'doctype': u'Field Mapper Detail',
+		'from_field': u'basic_rate',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'basic_rate'
+	},
+
+	# Field Mapper Detail
+	{
+		'checking_operator': u'=',
+		'doctype': u'Field Mapper Detail',
 		'from_field': u'export_rate',
 		'map': u'Yes',
 		'match_id': 1,
@@ -139,6 +149,16 @@
 
 	# Field Mapper Detail
 	{
+		'checking_operator': u'=',
+		'doctype': u'Field Mapper Detail',
+		'from_field': u'basic_rate',
+		'map': u'Yes',
+		'match_id': 1,
+		'to_field': u'basic_rate'
+	},
+
+	# Field Mapper Detail
+	{
 		'doctype': u'Field Mapper Detail',
 		'from_field': u'eval: flt(obj.qty) - flt(obj.delivered_qty)',
 		'map': u'Yes',
@@ -235,10 +255,21 @@
 	{
 		'doctype': u'Table Mapper Detail',
 		'from_field': u'other_charges',
-		'from_table': u'RV Tax Detail',
+		'from_table': u'Sales Taxes and Charges',
 		'match_id': 2,
 		'to_field': u'other_charges',
-		'to_table': u'RV Tax Detail',
+		'to_table': u'Sales Taxes and Charges',
+		'validation_logic': u'name is not null'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'other_charges',
+		'from_table': u'Sales Taxes and Charges',
+		'match_id': 2,
+		'to_field': u'other_charges',
+		'to_table': u'Sales Taxes and Charges',
 		'validation_logic': u'name is not null'
 	},
 
@@ -246,12 +277,25 @@
 	{
 		'doctype': u'Table Mapper Detail',
 		'from_field': u'sales_order_details',
-		'from_table': u'Sales Order Detail',
+		'from_table': u'Sales Order Item',
 		'match_id': 1,
 		'reference_doctype_key': u'prevdoc_doctype',
 		'reference_key': u'prevdoc_detail_docname',
 		'to_field': u'delivery_note_details',
-		'to_table': u'Delivery Note Detail',
+		'to_table': u'Delivery Note Item',
+		'validation_logic': u'qty > ifnull(delivered_qty,0) and docstatus = 1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': u'Table Mapper Detail',
+		'from_field': u'sales_order_details',
+		'from_table': u'Sales Order Item',
+		'match_id': 1,
+		'reference_doctype_key': u'prevdoc_doctype',
+		'reference_key': u'prevdoc_detail_docname',
+		'to_field': u'delivery_note_details',
+		'to_table': u'Delivery Note Item',
 		'validation_logic': u'qty > ifnull(delivered_qty,0) and docstatus = 1'
 	},
 
@@ -264,4 +308,4 @@
 		'to_table': u'Delivery Note',
 		'validation_logic': u'docstatus = 1'
 	}
-]
+]
\ No newline at end of file
diff --git a/erpnext/stock/Module Def/Stock/Stock.txt b/erpnext/stock/Module Def/Stock/Stock.txt
deleted file mode 100644
index 991d410..0000000
--- a/erpnext/stock/Module Def/Stock/Stock.txt
+++ /dev/null
@@ -1,242 +0,0 @@
-# Module Def, Stock
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-01 17:40:49',
-		'docstatus': 0,
-		'modified': '2012-02-01 15:43:00',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'name': '__common__',
-		'parent': 'Stock',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def Item
-	{
-		'doctype': 'Module Def Item',
-		'name': '__common__',
-		'parent': 'Stock',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def
-	{
-		'disabled': 'No',
-		'doctype': u'Module Def',
-		'doctype_list': 'DocType Label, QA Inspection Report',
-		'is_hidden': 'No',
-		'module_desc': 'Material Management',
-		'module_icon': 'Stock.gif',
-		'module_label': 'Stock',
-		'module_name': 'Stock',
-		'module_seq': 7,
-		'name': '__common__'
-	},
-
-	# Module Def, Stock
-	{
-		'doctype': u'Module Def',
-		'name': 'Stock'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Item master',
-		'display_name': 'Item',
-		'doc_name': 'Item',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'name\nitem_group\ndescription'
-	},
-
-	# Module Def Item
-	{
-		'description': 'A unique number identifying each entity of an item',
-		'display_name': 'Serial No',
-		'doc_name': 'Serial No',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'item_code\nstatus\nwarehouse\npr_no\ndelivery_note_no\ncustomer'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Record of items added, removed or moved from one warehouse to another.',
-		'display_name': 'Stock Entry',
-		'doc_name': 'Stock Entry',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'transfer_date\npurpose\nfrom_warehouse\nto_warehouse\nremarks'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Record of items delivered to your customers along with the Printed Note',
-		'display_name': 'Delivery Note',
-		'doc_name': 'Delivery Note',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\ntransaction_date\ncustomer\nterritory\ngrand_total\nper_billed'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Generate Packing Slips based on a Delivery Note',
-		'display_name': 'Packing Slip',
-		'doc_name': 'Packing Slip',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'delivery_note\nfrom_case_no\nto_case_no\nnet_weight_pkg\ngross_weight_pkg'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Record of incoming material from your suppliers',
-		'display_name': 'Purchase Receipt',
-		'doc_name': 'Purchase Receipt',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\ntransaction_date\nsupplier\ngrand_total\nper_billed'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Details of Installation done after delivery',
-		'display_name': 'Installation Note',
-		'doc_name': 'Installation Note',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Create Quality Inspection Report for any item',
-		'display_name': 'Inspection Report',
-		'doc_name': 'QA Inspection Report',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'inspection_type\nitem_code\nreport_date\npurchase_receipt_no\ndelivery_note_no'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Reconcile your stock by uploading it form an excel file',
-		'display_name': 'Stock Reconciliation',
-		'doc_name': 'Stock Reconciliation',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'reconciliation_date\nreconciliation_time\nremark'
-	},
-
-	# Module Def Item
-	{
-		'description': 'This utility tool will update Stock UOM in Item and will respectively update Actual Qty in Stock Ledger as per Conversion Factor.',
-		'display_name': 'Stock UOM Replace Utility',
-		'doc_name': 'Stock UOM Replace Utility',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'This utility will help in tracking stock for Sales Return and Purchase Return.',
-		'display_name': 'Sales and Purchase Return Wizard',
-		'doc_name': 'Sales and Purchase Return Wizard',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'You can create master template for landed cost wizard',
-		'display_name': 'Landed Cost Master',
-		'doc_name': 'Landed Cost Master',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'icon': 'accept.gif'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Add extra expenses into Purchase Receipt which should be consider for item valuation. The cost will be added proportionately as per purchase receipt value.',
-		'display_name': 'Landed Cost Wizard',
-		'doc_name': 'Landed Cost Wizard',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'icon': 'accept.gif'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Stock Ledger',
-		'doc_name': 'Stock Ledger Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Stock Level',
-		'doc_name': 'Bin',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Shortage To Indent',
-		'doc_name': 'Item',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Stock Value as per Item and Warehouse',
-		'display_name': 'Stock Report',
-		'doc_name': 'Stock Ledger Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Stock Aging Report',
-		'doc_name': 'Serial No',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Material User'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Material Master Manager'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Material Manager'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Quality Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt b/erpnext/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt
index b33b28d..30181e3 100644
--- a/erpnext/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt
+++ b/erpnext/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Delivery Note',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Georgia", serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Georgia", serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table thead {\n\t\tborder-bottom: 1px solid black;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px 0px;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Delivery Note\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'delivery_note_details\',\n\t\t\t\t\'Delivery Note Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tvar to_append = \'\'\n\t\t\t\t\t\tif(data_row.adj_rate){\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(data_row.serial_no) {\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Serial No.:\' + \n\t\t\t\t\t\t\t\t((data_row.serial_no.indexOf(\'\\n\')>-1)?\'<br />\':\'&nbsp;\') + \n\t\t\t\t\t\t\t\tdata_row.serial_no + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td><script>\'<h1>\' + (doc.select_print_heading || \'Delivery Note\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Delivery Note Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Sales Order No.</b></td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<script>doc.sales_order_no</script><br />\n\t\t\t\t\t\t\t<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Georgia", serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Georgia", serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table thead {\n\t\tborder-bottom: 1px solid black;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px 0px;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Delivery Note\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'delivery_note_details\',\n\t\t\t\t\'Delivery Note Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tvar to_append = \'\'\n\t\t\t\t\t\tif(data_row.adj_rate){\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(data_row.serial_no) {\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Serial No.:\' + \n\t\t\t\t\t\t\t\t((data_row.serial_no.indexOf(\'\\n\')>-1)?\'<br />\':\'&nbsp;\') + \n\t\t\t\t\t\t\t\tdata_row.serial_no + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td><script>\'<h1>\' + (doc.select_print_heading || \'Delivery Note\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Delivery Note Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Sales Order No.</b></td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<script>doc.sales_order_no</script><br />\n\t\t\t\t\t\t\t<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Stock',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt b/erpnext/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt
index 065f3f4..8da9cb7 100644
--- a/erpnext/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt
+++ b/erpnext/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Delivery Note',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Helvetica", "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Helvetica", "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t\tborder-style: none !important;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t\tborder-style: none !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h1 {\n\t\ttext-transform: uppercase;\n\t\tcolor: white;\n\t\tfont-size: 55px;\n\t\tfont-style: italic;\n\t}\n\n\ttable.header-table thead tr:nth-child(1) div {\n\t\theight: 24px;\n\t\tbackground-color: #696969;\n\t\tvertical-align: middle;\n\t\tpadding: 12px 0px 0px 0px;\n\t\twidth: 100%;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body table tr td {\n\t\tbackground-color: #DCDCDC !important;\n\t}\n\n\tdiv.page-body table tr:nth-child(1) td {\n\t\tbackground-color: #696969 !important;\n\t\tcolor: white !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table tfoot td {\n\t\tbackground-color: #696969;\n\t\theight: 10px;\n\t}\n\n\t.imp-details {\n\t\tbackground-color: #DCDCDC;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Delivery Note\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'delivery_note_details\',\n\t\t\t\t\'Delivery Note Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tvar to_append = \'\'\n\t\t\t\t\t\tif(data_row.adj_rate){\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(data_row.serial_no) {\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Serial No.:\' + \n\t\t\t\t\t\t\t\t((data_row.serial_no.indexOf(\'\\n\')>-1)?\'<br />\':\'&nbsp;\') + \n\t\t\t\t\t\t\t\tdata_row.serial_no + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><div><script>\'<h1>\' + (doc.select_print_heading || \'Delivery Note\') + \'</h1>\'</script></div></td></tr>\n\t\t\t<tr><td colspan=2><div style="height:15px"></div></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr class=\'imp-details\'>\n\t\t\t\t\t\t<td><b>Delivery Note No.</b></td>\n\t\t\t\t\t\t<td><script>cur_frm.docname</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Delivery Note Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Sales Order No.</b></td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<script>doc.sales_order_no</script><br />\n\t\t\t\t\t\t\t<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\' class=\'imp-details\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\t<tr><td colspan=2><div></div></td><tr>\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Helvetica", "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Helvetica", "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 10px 0px;\n\t}\n\n\ttable {\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t\tvertical-align: top;\n\t\tborder-style: none !important;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t\tborder-style: none !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h1 {\n\t\ttext-transform: uppercase;\n\t\tcolor: white;\n\t\tfont-size: 55px;\n\t\tfont-style: italic;\n\t}\n\n\ttable.header-table thead tr:nth-child(1) div {\n\t\theight: 24px;\n\t\tbackground-color: #696969;\n\t\tvertical-align: middle;\n\t\tpadding: 12px 0px 0px 0px;\n\t\twidth: 100%;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body table tr td {\n\t\tbackground-color: #DCDCDC !important;\n\t}\n\n\tdiv.page-body table tr:nth-child(1) td {\n\t\tbackground-color: #696969 !important;\n\t\tcolor: white !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n\n\ttable.footer-table tfoot td {\n\t\tbackground-color: #696969;\n\t\theight: 10px;\n\t}\n\n\t.imp-details {\n\t\tbackground-color: #DCDCDC;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Delivery Note\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'delivery_note_details\',\n\t\t\t\t\'Delivery Note Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tvar to_append = \'\'\n\t\t\t\t\t\tif(data_row.adj_rate){\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(data_row.serial_no) {\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Serial No.:\' + \n\t\t\t\t\t\t\t\t((data_row.serial_no.indexOf(\'\\n\')>-1)?\'<br />\':\'&nbsp;\') + \n\t\t\t\t\t\t\t\tdata_row.serial_no + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><div><script>\'<h1>\' + (doc.select_print_heading || \'Delivery Note\') + \'</h1>\'</script></div></td></tr>\n\t\t\t<tr><td colspan=2><div style="height:15px"></div></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr class=\'imp-details\'>\n\t\t\t\t\t\t<td><b>Delivery Note No.</b></td>\n\t\t\t\t\t\t<td><script>cur_frm.docname</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Delivery Note Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Sales Order No.</b></td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<script>doc.sales_order_no</script><br />\n\t\t\t\t\t\t\t<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\' class=\'imp-details\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\t<tr><td colspan=2><div></div></td><tr>\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Stock',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt b/erpnext/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt
index 1309b5c..7e5fd31 100644
--- a/erpnext/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt
+++ b/erpnext/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt
@@ -14,7 +14,7 @@
 	{
 		'doc_type': 'Delivery Note',
 		'doctype': 'Print Format',
-		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 0px;\n\t}\n\n\ttable {\n\t\twidth: 100% !important;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\n\ttable, td {\n\t\tborder-collapse: collapse !important;\n\t\tpadding: 0px;\n\t\tmargin: 0px !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px;\n\t}\n\n\ttable.header-table > thead,\n\ttable.header-table > tbody > tr > td,\n\ttable.footer-table > tbody > tr > td {\n\t\tborder: 1px solid black;\n\t\tpadding: 5px;\n\t}\n\n\ttable.footer-table > tbody,\n\ttable.header-table > thead {\n\t\tborder-bottom: 3px solid black;\n\t}\n\n\ttable.header-table > thead {\n\t\tborder-top: 3px solid black;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body td {\n\t\tbackground-color: white !important;\n\t\tborder: 1px solid black !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Delivery Note\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'delivery_note_details\',\n\t\t\t\t\'Delivery Note Detail\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tvar to_append = \'\'\n\t\t\t\t\t\tif(data_row.adj_rate){\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(data_row.serial_no) {\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Serial No.:\' + \n\t\t\t\t\t\t\t\t((data_row.serial_no.indexOf(\'\\n\')>-1)?\'<br />\':\'&nbsp;\') + \n\t\t\t\t\t\t\t\tdata_row.serial_no + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'RV Tax Detail\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><script>\'<h1>\' + (doc.select_print_heading || \'Delivery Note\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Delivery Note Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Sales Order No.</b></td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<script>doc.sales_order_no</script><br />\n\t\t\t\t\t\t\t<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
+		'html': '<!--\n\tSample Print Format for ERPNext\n\tPlease use at your own discretion\n\tFor suggestions and contributions:\n\t\thttps://github.com/webnotes/erpnext-print-templates\n\n\tFreely usable under MIT license\n-->\n\n<!-- Style Settings -->\n<style>\n\t/*\n\t\tcommon style for whole page\n\t\tThis should include:\n\t\t+ page size related settings\n\t\t+ font family settings\n\t\t+ line spacing settings\n\t*/\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 8.3in;\n\t\t}\n\t}\n\n\thtml, body, div, span, td {\n\t\tfont-family: "Arial", sans-serif;\n\t\tfont-size: 12px;\n\t}\n\n\tbody {\n\t\tpadding: 10px;\n\t\tmargin: auto;\n\t\tfont-size: 12px;\n\t\tline-height: 150%;\n\t}\n\n\t.common {\n\t\tfont-family: "Arial", sans-serif !important;\n\t\tfont-size: 12px;\n\t\tpadding: 0px;\n\t}\n\n\ttable {\n\t\twidth: 100% !important;\n\t\tvertical-align: top;\n\t}\n\n\ttable td {\n\t\tpadding: 2px 0px;\n\t}\n\n\ttable, td {\n\t\tborder-collapse: collapse !important;\n\t\tpadding: 0px;\n\t\tmargin: 0px !important;\n\t}\n\t\n\ttable h1, h2, h3, h4, h5, h6 {\n\t\tpadding: 0px;\n\t\tmargin: 0px;\n\t}\n\n\ttable.header-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.header-table h3 {\n\t\tcolor: gray;\n\t}\n\n\ttable.header-table thead td {\n\t\tpadding: 5px;\n\t}\n\n\ttable.header-table > thead,\n\ttable.header-table > tbody > tr > td,\n\ttable.footer-table > tbody > tr > td {\n\t\tborder: 1px solid black;\n\t\tpadding: 5px;\n\t}\n\n\ttable.footer-table > tbody,\n\ttable.header-table > thead {\n\t\tborder-bottom: 3px solid black;\n\t}\n\n\ttable.header-table > thead {\n\t\tborder-top: 3px solid black;\n\t}\n\n\tdiv.page-body table td:nth-child(6),\n\tdiv.page-body table td:nth-child(7) {\n\t\ttext-align: right;\n\t}\n\n\tdiv.page-body td {\n\t\tbackground-color: white !important;\n\t\tborder: 1px solid black !important;\n\t}\n\n\ttable.footer-table td {\n\t\tvertical-align: top;\n\t}\n\n\ttable.footer-table td table td:nth-child(2),\n\ttable.footer-table td table td:nth-child(3) {\n\t\ttext-align: right;\n\t}\n</style>\n\n\n<!-- Javascript -->\n<script>\n\tsi_std = {\n\t\tprint_item_table: function() {\n\t\t\tvar table = print_table(\n\t\t\t\t\'Delivery Note\',\n\t\t\t\tdoc.name,\n\t\t\t\t\'delivery_note_details\',\n\t\t\t\t\'Delivery Note Item\',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t\'SR\', \'item_code\', \'item_name\', \'description\', \'qty\', \'stock_uom\',\n\t\t\t\t\t\'basic_rate\', \'amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t\'Sr\', \'Item Code\', \'Item Name\', \'Description\', \'Qty\',\n\t\t\t\t\t\'UoM\', \'Basic Rate\', \'Amount\'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t\'3%\', \'10%\', \'15%\', \'32%\', \'5%\',\n\t\t\t\t\t\'5%\', \'15%\', \'15%\'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\t{\n\t\t\t\t\t\'description\' : function(data_row) {\n\t\t\t\t\t\tvar to_append = \'\'\n\t\t\t\t\t\tif(data_row.adj_rate){\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Discount: \' + \n\t\t\t\t\t\t\t\tdata_row.adj_rate + \'% on \' + doc.currency + \' \' +\n\t\t\t\t\t\t\t\tfmt_money(data_row.ref_rate) + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(data_row.serial_no) {\n\t\t\t\t\t\t\tto_append = \'<div style="padding-left: 15px;"><i>Serial No.:\' + \n\t\t\t\t\t\t\t\t((data_row.serial_no.indexOf(\'\\n\')>-1)?\'<br />\':\'&nbsp;\') + \n\t\t\t\t\t\t\t\tdata_row.serial_no + \'</i></div>\';\n\t\t\t\t\t\t\tif(data_row.description.indexOf(to_append)==-1) {\n\t\t\t\t\t\t\t\tdata_row.description = data_row.description + to_append;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn data_row.description;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// This code takes care of page breaks\n\t\t\tif(table.appendChild) {\n\t\t\t\tout = table.innerHTML;\n\t\t\t} else {\n\t\t\t\tout = \'\';\n\t\t\t\tfor(var i=0; i < (table.length-1); i++) {\n\t\t\t\t\tout += table[i].innerHTML + \n\t\t\t\t\t\t\'<div style = "page-break-after: always;" \\\n\t\t\t\t\t\tclass = "page_break"></div>\\\n\t\t\t\t\t\t<div class="page-settings"></div>\';\n\t\t\t\t}\n\t\t\t\tout += table[table.length-1].innerHTML;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\n\n\t\tprint_other_charges: function(parent) {\n\t\t\tvar oc = getchildren(\'Sales Taxes and Charges\', doc.name, \'other_charges\');\n\t\t\tvar rows = \'<table width=100%>\\n\';\n\t\t\tfor(var i=0; i<oc.length; i++) {\n\t\t\t\tif(!oc[i].included_in_print_rate) {\n\t\t\t\t\trows +=\n\t\t\t\t\t\t\'<tr>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td>\' + oc[i].description + \'</td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td></td>\\n\' +\n\t\t\t\t\t\t\t\'\\t<td width=38%>\' + fmt_money(oc[i].tax_amount) + \'</td>\\n\' +\n\t\t\t\t\t\t\'</tr>\\n\';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rows + \'</table>\\n\';\n\t\t}\n\t};\n</script>\n\n\n<!-- Page Layout Settings -->\n<div class=\'common page-header\'>\n\t<!-- \n\t\tPage Header will contain\n\t\t\t+ table 1\n\t\t\t\t+ table 1a\n\t\t\t\t\t- Name\n\t\t\t\t\t- Address\n\t\t\t\t\t- Contact\n\t\t\t\t\t- Mobile No\n\t\t\t\t+ table 1b\n\t\t\t\t\t- Voucher Date\n\t\t\t\t\t- Due Date\n\t-->\n\t<table class=\'header-table\' cellspacing=0>\n\t\t<thead>\n\t\t\t<tr><td colspan=2><script>\'<h1>\' + (doc.select_print_heading || \'Delivery Note\') + \'</h1>\'</script></td></tr>\n\t\t\t<tr><td colspan=2><h3><script>cur_frm.docname</script></h3></td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60%><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=22%><b>Name</b></td>\n\t\t\t\t\t\t<td><script>doc.customer_name</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Address</b></td>\n\t\t\t\t\t\t<td><script>replace_newlines(doc.address_display)</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Contact</b></td>\n\t\t\t\t\t\t<td><script>doc.contact_display</script></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody></table></td>\n\t\t\t\t<td><table width=100% cellspacing=0><tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td width=63%><b>Delivery Note Date</b></td>\n\t\t\t\t\t\t<td><script>date.str_to_user(doc.transaction_date)</script></td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><b>Sales Order No.</b></td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<script>doc.sales_order_no</script><br />\n\t\t\t\t\t\t\t<i>(<script>date.str_to_user(doc.posting_date)</script>)</i>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t<tr>\t\t\t\t\t\n\t\t\t\t</tbody></table></td>\n\t\t\t</tr>\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n<div class=\'common page-body\'>\n\t<!-- \n\t\tPage Body will contain\n\t\t\t+ table 2\n\t\t\t\t- Sales Invoice Data\n\t-->\n\t<script>si_std.print_item_table()</script>\n</div>\n<div class=\'common page-footer\'>\n\t<!-- \n\t\tPage Footer will contain\n\t\t\t+ table 3\n\t\t\t\t- Terms and Conditions\n\t\t\t\t- Total Rounded Amount Calculation\n\t\t\t\t- Total Rounded Amount in Words\n\t-->\n\t<table class=\'footer-table\' width=100% cellspacing=0>\n\t\t<thead>\n\t\t\t\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td width=60% style=\'padding-right: 10px;\'>\n\t\t\t\t\t<b>Terms, Conditions &amp; Other Information:</b><br />\n\t\t\t\t\t<script>doc.terms</script>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<table cellspacing=0 width=100%><tbody>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Net Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td width=38%><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.net_total)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr><td colspan=3><script>si_std.print_other_charges()</script></td></tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Grand Total</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.grand_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr style=\'font-weight: bold\'>\n\t\t\t\t\t\t\t<td>Rounded Total</td>\n\t\t\t\t\t\t\t<td><script>doc.currency</script></td>\n\t\t\t\t\t\t\t<td><script>\n\t\t\t\t\t\t\t\tfmt_money(doc.rounded_total_export)\n\t\t\t\t\t\t\t</script></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</tbody></table>\n\t\t\t\t\t<br /><b>In Words</b><br />\n\t\t\t\t\t<i><script>doc.in_words_export</script></i>\n\t\t\t\t</td>\n\t\t\t</tr>\t\t\n\t\t</tbody>\n\t\t<tfoot>\n\t\t\n\t\t</tfoot>\n\t</table>\n</div>\n',
 		'module': 'Stock',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/stock/Print Format/Purchase Receipt Format/Purchase Receipt Format.txt b/erpnext/stock/Print Format/Purchase Receipt Format/Purchase Receipt Format.txt
index 8ffb83e..4cfaeb9 100644
--- a/erpnext/stock/Print Format/Purchase Receipt Format/Purchase Receipt Format.txt
+++ b/erpnext/stock/Print Format/Purchase Receipt Format/Purchase Receipt Format.txt
@@ -13,7 +13,7 @@
 	# These values are common for all Print Format
 	{
 		'doctype': 'Print Format',
-		'html': '<html>\n<head>\n<!--Other charges function-->\n<script>\n    var make_row = function(title,val,bold){\n    var bstart = \'<b>\'; var bend = \'</b>\';\n    return \'<tr><td style="width:50%">\'+(bold?bstart:\'\')+title+(bold?bend:\'\')+\'</td>\'\n              +\'<td style="width:20%;text-align:right">\'+doc.currency+\'</td>\'\n              +\'<td style="width:30%;text-align:right">\'+(val?val:\'0.00\')+\'</td>\'\n              +\'</tr>\'\n  }\n\n  function get_other_charges(){\n    var out =\'\';\n    out += \'<div><table class="noborder" style="width:100%">\';\n    out += make_row(\'Total Amount\',fmt_money(convert_rate(doc.total_amount)),1)\n          +make_row(\'Grand Total\',fmt_money(convert_rate(doc.grand_total)),1);\n    out += \'</table></div>\';\n    return out;\n  }\n\n  function get_buying_costs(){\n    var out =\'\';\n    if(doc.buying_cost_transport || doc.buying_cost_taxes || doc.buying_cost_other){\n      out += \'<div><table class="noborder" style="width:100%">\'\n            + \'<tr><td style="width:100%"><b>\'+\'Buying Cost Details\'+\'</b></td></tr>\';\n      if(doc.buying_cost_transport){ out += make_row(\'Transport Cost\',fmt_money(convert_rate(doc.buying_cost_transport)),0)}\n      if(doc.buying_cost_taxes){ out += make_row(\'Taxes\',fmt_money(convert_rate(doc.buying_cost_taxes)),0)}\n      if(doc.buying_cost_other){ out += make_row(\'Other Cost\',fmt_money(convert_rate(doc.buying_cost_other)),0)}\n      out += \'</table></div>\';\n    }\n    return out;\n  }\n\nfunction get_letter_head() {\n\t// add letter head\n\tvar cp = locals[\'Control Panel\'][\'Control Panel\'];\n\tif(doc.letter_head)\n\t\tvar lh= cstr(_p.letter_heads[doc.letter_head]);\n\telse if(cp.letter_head)\n\t\tvar lh= cp.letter_head;\n\telse \n\t\tvar lh= \'\';\n\t\t\n\treturn lh;\n}\n\n  \n  function convert_rate(val){\n    var new_val = flt(val)/flt(doc.conversion_rate);\n    return new_val;\n  }\n  \n    function get_transport_details(){\n    var out = \'\';\n    if(doc.transporter_name || doc.lr_no || doc.lr_date){\n     out += \'<div><table class="noborder" style="width:40%">\'\n            +\'<tr><td style="width:80%"><b>\' + \'Transporter Details\'+\'</b></td><td style="width:20%"></td></tr>\'\n\n     if(doc.transporter_name){ out += \'<tr><td style="width:40%">\' + \'Transporter Name\'+\'</td><td style="width:60%">\'+doc.transporter_name+\'</td></tr>\'}\n     if(doc.lr_no){ out += \'<tr><td style="width:40%">\' + \'LR No\'+\'</td><td style="width:60%">\'+doc.lr_no+\'</td></tr>\'}\n     if(doc.lr_date){ out += \'<tr><td style="width:40%">\' + \'LR Date\'+\'</td><td style="width:60%">\'+doc.lr_date+\'</td></tr>\'}\n     out += \'</table></div>\'\n    }\n    return out;\n  }\n\n</script>\n</head>\n<body>\n<div style="border:1px solid black;padding:15px">\n<!--header-->\n<div><script>get_letter_head()</script></div>\n<div style="border-bottom: 1px solid; padding-bottom: 5px;">\n <div><br><b>Purchase Receipt: <script>doc.name</script></b></div>\n <div>Date: <script>date.str_to_user(doc.transaction_date)</script></div>\n</div>\n\n<div style="padding-top:15px">\n<div><script>doc.supplier</script></div>\n<div><br><script>replace_newlines(doc.address_display)</script></div>\n</div>\n\n<div>\n<br>\n    <script>\n    var t = print_table(\'Purchase Receipt\', doc.name, \'purchase_receipt_details\', \'Purchase Receipt Detail\', [\'SR\', \'item_code\',\'description\',\'received_qty\',\'qty\',\'rejected_qty\',\'po_rate\',\'amount\',\'billed_qty\'], [\'Sr\', \'Item Code\', \'Description\',\'Received Quantity\',\'Accepted Qty\',\'Rejected Qty\',\'Rate\',\'Amount\',\'Billed Qty\'], [\'4%\',\'12%\', \'24%\', \'10%\',\'10%\',\'10%\',\'10%\',\'10%\',\'10%\'])\n    if(t.appendChild) {\n      // single\n      out = t.innerHTML;\n    } \n    else {//multiple\n      out = \'\'\n      for(var i=0;i<t.length;i++) {\n        if(i!=t.length-1){\n          out += \'<div style:"padding-top:5px;"></div>\' + t[i].innerHTML +\'<div style="page-break-after:always"></div>\';\n        }\n        else out += \'<div style:"padding-top:5px;"></div>\' + t[i].innerHTML;\n      }\n    }\n    out;\n    </script>\n\n</div>\n\n<!--Other charges table-->\n<div>\n<table style="width:100%">\n  <tr><td style="width:40%"><script>get_buying_costs()</script></td>\n  <td style="width:20%"></td><td style="width:40%"><script>get_other_charges()</script></td></tr>\n</table>\n</div>\n<div><script>get_transport_details()</script></div>\n<div><br>Payment Terms</div>\n<div><br><script>replace_newlines(doc.payment_terms)</script></div>\n<div><br>For NCSCI</div>\n<div><br><br>(Authorised Signatory)</div>\n</div></body>\n</html>',
+		'html': '<html>\n<head>\n<!--Other charges function-->\n<script>\n    var make_row = function(title,val,bold){\n    var bstart = \'<b>\'; var bend = \'</b>\';\n    return \'<tr><td style="width:50%">\'+(bold?bstart:\'\')+title+(bold?bend:\'\')+\'</td>\'\n              +\'<td style="width:20%;text-align:right">\'+doc.currency+\'</td>\'\n              +\'<td style="width:30%;text-align:right">\'+(val?val:\'0.00\')+\'</td>\'\n              +\'</tr>\'\n  }\n\n  function get_other_charges(){\n    var out =\'\';\n    out += \'<div><table class="noborder" style="width:100%">\';\n    out += make_row(\'Total Amount\',fmt_money(convert_rate(doc.total_amount)),1)\n          +make_row(\'Grand Total\',fmt_money(convert_rate(doc.grand_total)),1);\n    out += \'</table></div>\';\n    return out;\n  }\n\n  function get_buying_costs(){\n    var out =\'\';\n    if(doc.buying_cost_transport || doc.buying_cost_taxes || doc.buying_cost_other){\n      out += \'<div><table class="noborder" style="width:100%">\'\n            + \'<tr><td style="width:100%"><b>\'+\'Buying Cost Details\'+\'</b></td></tr>\';\n      if(doc.buying_cost_transport){ out += make_row(\'Transport Cost\',fmt_money(convert_rate(doc.buying_cost_transport)),0)}\n      if(doc.buying_cost_taxes){ out += make_row(\'Taxes\',fmt_money(convert_rate(doc.buying_cost_taxes)),0)}\n      if(doc.buying_cost_other){ out += make_row(\'Other Cost\',fmt_money(convert_rate(doc.buying_cost_other)),0)}\n      out += \'</table></div>\';\n    }\n    return out;\n  }\n\nfunction get_letter_head() {\n\t// add letter head\n\tvar cp = locals[\'Control Panel\'][\'Control Panel\'];\n\tif(doc.letter_head)\n\t\tvar lh= cstr(_p.letter_heads[doc.letter_head]);\n\telse if(cp.letter_head)\n\t\tvar lh= cp.letter_head;\n\telse \n\t\tvar lh= \'\';\n\t\t\n\treturn lh;\n}\n\n  \n  function convert_rate(val){\n    var new_val = flt(val)/flt(doc.conversion_rate);\n    return new_val;\n  }\n  \n    function get_transport_details(){\n    var out = \'\';\n    if(doc.transporter_name || doc.lr_no || doc.lr_date){\n     out += \'<div><table class="noborder" style="width:40%">\'\n            +\'<tr><td style="width:80%"><b>\' + \'Transporter Details\'+\'</b></td><td style="width:20%"></td></tr>\'\n\n     if(doc.transporter_name){ out += \'<tr><td style="width:40%">\' + \'Transporter Name\'+\'</td><td style="width:60%">\'+doc.transporter_name+\'</td></tr>\'}\n     if(doc.lr_no){ out += \'<tr><td style="width:40%">\' + \'LR No\'+\'</td><td style="width:60%">\'+doc.lr_no+\'</td></tr>\'}\n     if(doc.lr_date){ out += \'<tr><td style="width:40%">\' + \'LR Date\'+\'</td><td style="width:60%">\'+doc.lr_date+\'</td></tr>\'}\n     out += \'</table></div>\'\n    }\n    return out;\n  }\n\n</script>\n</head>\n<body>\n<div style="border:1px solid black;padding:15px">\n<!--header-->\n<div><script>get_letter_head()</script></div>\n<div style="border-bottom: 1px solid; padding-bottom: 5px;">\n <div><br><b>Purchase Receipt: <script>doc.name</script></b></div>\n <div>Date: <script>date.str_to_user(doc.transaction_date)</script></div>\n</div>\n\n<div style="padding-top:15px">\n<div><script>doc.supplier</script></div>\n<div><br><script>replace_newlines(doc.address_display)</script></div>\n</div>\n\n<div>\n<br>\n    <script>\n    var t = print_table(\'Purchase Receipt\', doc.name, \'purchase_receipt_details\', \'Purchase Receipt Item\', [\'SR\', \'item_code\',\'description\',\'received_qty\',\'qty\',\'rejected_qty\',\'po_rate\',\'amount\',\'billed_qty\'], [\'Sr\', \'Item Code\', \'Description\',\'Received Quantity\',\'Accepted Qty\',\'Rejected Qty\',\'Rate\',\'Amount\',\'Billed Qty\'], [\'4%\',\'12%\', \'24%\', \'10%\',\'10%\',\'10%\',\'10%\',\'10%\',\'10%\'])\n    if(t.appendChild) {\n      // single\n      out = t.innerHTML;\n    } \n    else {//multiple\n      out = \'\'\n      for(var i=0;i<t.length;i++) {\n        if(i!=t.length-1){\n          out += \'<div style:"padding-top:5px;"></div>\' + t[i].innerHTML +\'<div style="page-break-after:always"></div>\';\n        }\n        else out += \'<div style:"padding-top:5px;"></div>\' + t[i].innerHTML;\n      }\n    }\n    out;\n    </script>\n\n</div>\n\n<!--Other charges table-->\n<div>\n<table style="width:100%">\n  <tr><td style="width:40%"><script>get_buying_costs()</script></td>\n  <td style="width:20%"></td><td style="width:40%"><script>get_other_charges()</script></td></tr>\n</table>\n</div>\n<div><script>get_transport_details()</script></div>\n<div><br>Payment Terms</div>\n<div><br><script>replace_newlines(doc.payment_terms)</script></div>\n<div><br>For NCSCI</div>\n<div><br><br>(Authorised Signatory)</div>\n</div></body>\n</html>',
 		'module': 'Stock',
 		'name': '__common__',
 		'standard': 'Yes'
diff --git a/erpnext/stock/Role/Material Manager/Material Manager.txt b/erpnext/stock/Role/Material Manager/Material Manager.txt
deleted file mode 100644
index 1d6369b..0000000
--- a/erpnext/stock/Role/Material Manager/Material Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Material Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2009-03-19 14:56:51',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Stock',
-		'name': '__common__',
-		'role_name': 'Material Manager'
-	},
-
-	# Role, Material Manager
-	{
-		'doctype': 'Role',
-		'name': 'Material Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/Role/Material Master Manager/Material Master Manager.txt b/erpnext/stock/Role/Material Master Manager/Material Master Manager.txt
deleted file mode 100644
index 10fac2c..0000000
--- a/erpnext/stock/Role/Material Master Manager/Material Master Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Material Master Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-08 13:49:58',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Stock',
-		'name': '__common__',
-		'role_name': 'Material Master Manager'
-	},
-
-	# Role, Material Master Manager
-	{
-		'doctype': 'Role',
-		'name': 'Material Master Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/Role/Material User/Material User.txt b/erpnext/stock/Role/Material User/Material User.txt
deleted file mode 100644
index 1436ccb..0000000
--- a/erpnext/stock/Role/Material User/Material User.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Material User
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-04-08 12:08:13',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Stock',
-		'name': '__common__',
-		'role_name': 'Material User'
-	},
-
-	# Role, Material User
-	{
-		'doctype': 'Role',
-		'name': 'Material User'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/Role/Quality Manager/Quality Manager.txt b/erpnext/stock/Role/Quality Manager/Quality Manager.txt
deleted file mode 100644
index 226e9aa..0000000
--- a/erpnext/stock/Role/Quality Manager/Quality Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Quality Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-05-04 13:12:27',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Stock',
-		'name': '__common__',
-		'role_name': 'Quality Manager'
-	},
-
-	# Role, Quality Manager
-	{
-		'doctype': 'Role',
-		'name': 'Quality Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/__init__.py b/erpnext/stock/__init__.py
index e69de29..ee2b061 100644
--- a/erpnext/stock/__init__.py
+++ b/erpnext/stock/__init__.py
@@ -0,0 +1,6 @@
+install_docs = [
+	{"doctype":"Role", "name":"Material Manager"},
+	{"doctype":"Role", "name":"Material Master Manager"},
+	{"doctype":"Role", "name":"Material User"},
+	{"doctype":"Role", "name":"Quality Manager"},
+]
diff --git a/erpnext/stock/doctype/batch/batch.txt b/erpnext/stock/doctype/batch/batch.txt
index f589b12..85dbef3 100644
--- a/erpnext/stock/doctype/batch/batch.txt
+++ b/erpnext/stock/doctype/batch/batch.txt
@@ -3,155 +3,146 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:52',
+		'creation': '2012-03-27 14:36:26',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-03-27 14:36:26',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
 		'allow_trash': 1,
-		'autoname': 'field:batch_id',
-		'colour': 'White:FFF',
+		'autoname': u'field:batch_id',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Stock',
+		'document_type': u'Master',
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 12
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Batch',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Batch',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Batch',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Batch',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'Material Master Manager'
+		'role': u'Material Master Manager'
 	},
 
 	# DocType, Batch
 	{
 		'doctype': 'DocType',
-		'name': 'Batch'
+		'name': u'Batch'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'batch_id',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Batch ID',
+		'doctype': u'DocField',
+		'fieldname': u'batch_id',
+		'fieldtype': u'Data',
+		'label': u'Batch ID',
 		'no_copy': 1,
-		'oldfieldname': 'batch_id',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'batch_id',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'start_date',
-		'fieldtype': 'Date',
-		'idx': 4,
-		'label': 'Batch Started Date',
-		'oldfieldname': 'start_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'start_date',
+		'fieldtype': u'Date',
+		'label': u'Batch Started Date',
+		'oldfieldname': u'start_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'finished_date',
-		'fieldtype': 'Date',
-		'idx': 5,
-		'label': 'Batch Finished Date',
-		'oldfieldname': 'finished_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'finished_date',
+		'fieldtype': u'Date',
+		'label': u'Batch Finished Date',
+		'oldfieldname': u'finished_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'expiry_date',
-		'fieldtype': 'Date',
-		'idx': 6,
-		'label': 'Expiry Date',
-		'oldfieldname': 'expiry_date',
-		'oldfieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'expiry_date',
+		'fieldtype': u'Date',
+		'label': u'Expiry Date',
+		'oldfieldname': u'expiry_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item',
-		'fieldtype': 'Link',
-		'idx': 7,
-		'label': 'Item',
-		'oldfieldname': 'item',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
+		'doctype': u'DocField',
+		'fieldname': u'item',
+		'fieldtype': u'Link',
+		'label': u'Item',
+		'oldfieldname': u'item',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
 		'permlevel': 0,
 		'reqd': 1
 	}
diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py
index de2d131..2499f91 100644
--- a/erpnext/stock/doctype/bin/bin.py
+++ b/erpnext/stock/doctype/bin/bin.py
@@ -324,7 +324,7 @@
 	def reorder_item(self,doc_type,doc_name):
 		""" Reorder item if stock reaches reorder level"""
 
-		if get_value('Manage Account', None, 'auto_indent'):
+		if get_value('Global Defaults', None, 'auto_indent'):
 			#check if re-order is required
 			ret = sql("select re_order_level, item_name, description, brand, item_group, lead_time_days, min_order_qty, email_notify, re_order_qty from tabItem where item_code = %s", (self.doc.item_code), as_dict=1)
 			
@@ -345,15 +345,15 @@
 	def create_auto_indent(self, i , doc_type, doc_name, cur_qty):
 		"""	Create indent on reaching reorder level	"""
 
-		indent = Document('Indent')
+		indent = Document('Purchase Request')
 		indent.transaction_date = nowdate()
 		indent.naming_series = 'IDT'
 		indent.company = get_defaults()['company']
 		indent.fiscal_year = get_defaults()['fiscal_year']
-		indent.remark = "This is an auto generated Indent. It was raised because the (actual + ordered + indented - reserved) quantity reaches re-order level when %s %s was created"%(doc_type,doc_name)
+		indent.remark = "This is an auto generated Purchase Request. It was raised because the (actual + ordered + indented - reserved) quantity reaches re-order level when %s %s was created"%(doc_type,doc_name)
 		indent.save(1)
-		indent_obj = get_obj('Indent',indent.name,with_children=1)
-		indent_details_child = addchild(indent_obj.doc,'indent_details','Indent Detail',0)
+		indent_obj = get_obj('Purchase Request',indent.name,with_children=1)
+		indent_details_child = addchild(indent_obj.doc,'indent_details','Purchase Request Item',0)
 		indent_details_child.item_code = self.doc.item_code
 		indent_details_child.uom = self.doc.stock_uom
 		indent_details_child.warehouse = self.doc.warehouse
@@ -364,11 +364,11 @@
 		indent_details_child.qty = i['re_order_qty'] or (flt(i['re_order_level']) - flt(cur_qty))
 		indent_details_child.brand = i['brand']
 		indent_details_child.save()
-		indent_obj = get_obj('Indent',indent.name,with_children=1)
+		indent_obj = get_obj('Purchase Request',indent.name,with_children=1)
 		indent_obj.validate()
 		set(indent_obj.doc,'docstatus',1)
 		indent_obj.on_submit()
-		msgprint("Item: " + self.doc.item_code + " is to be re-ordered. Indent %s raised. It was generated from %s %s"%(indent.name,doc_type, doc_name ))
+		msgprint("Item: " + self.doc.item_code + " is to be re-ordered. Purchase Request %s raised. It was generated from %s %s"%(indent.name,doc_type, doc_name ))
 		if(i['email_notify']):
 			send_email_notification(doc_type,doc_name)
 			
@@ -378,9 +378,9 @@
 		""" Notify user about auto creation of indent"""
 
 		email_list=[d for d in sql("select parent from tabUserRole where role in ('Purchase Manager','Material Manager') ")]
-		msg1='An Indent has been raised for item %s: %s on %s '%(doc_type, doc_name, nowdate())
+		msg1='A Purchase Request has been raised for item %s: %s on %s '%(doc_type, doc_name, nowdate())
 		sendmail(email_list, sender='automail@webnotestech.com', \
-		subject='Auto Indent Generation Notification', parts=[['text/plain',msg1]])	
+		subject='Auto Purchase Request Generation Notification', parts=[['text/plain',msg1]])	
 
 
 
diff --git a/erpnext/stock/doctype/bin/bin.txt b/erpnext/stock/doctype/bin/bin.txt
index 6a40297..7956e67 100644
--- a/erpnext/stock/doctype/bin/bin.txt
+++ b/erpnext/stock/doctype/bin/bin.txt
@@ -3,87 +3,84 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:52',
+		'creation': '2012-03-27 14:36:27',
 		'docstatus': 0,
-		'modified': '2010-12-16 23:57:05',
-		'modified_by': 'nabin@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:27',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1308741898',
-		'autoname': 'BIN/.#######',
-		'colour': 'White:FFF',
+		'_last_update': u'1322549701',
+		'autoname': u'BIN/.#######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'hide_toolbar': 1,
 		'in_create': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
 		'read_only': 0,
-		'search_fields': 'item_code,warehouse',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'item_code,warehouse',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 114
+		'version': 115
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Bin',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Bin',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 1
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Bin',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Bin',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Bin
 	{
 		'doctype': 'DocType',
-		'name': 'Bin'
+		'name': u'Bin'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Sales Manager'
+		'role': u'Sales Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Sales User'
+		'role': u'Sales User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Purchase Manager'
+		'role': u'Purchase Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Purchase User'
+		'role': u'Purchase User'
 	},
 
 	# DocPerm
@@ -91,10 +88,9 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Material User',
+		'role': u'Material User',
 		'submit': 0,
 		'write': 0
 	},
@@ -104,145 +100,134 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Manager',
+		'role': u'Material Manager',
 		'submit': 0,
 		'write': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse',
-		'fieldtype': 'Link',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Warehouse',
-		'oldfieldname': 'warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
+		'label': u'Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse_type',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Warehouse Type',
-		'oldfieldname': 'warehouse_type',
-		'oldfieldtype': 'Data'
+		'doctype': u'DocField',
+		'fieldname': u'warehouse_type',
+		'fieldtype': u'Data',
+		'label': u'Warehouse Type',
+		'oldfieldname': u'warehouse_type',
+		'oldfieldtype': u'Data'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 3,
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'default': '0.00',
-		'doctype': 'DocField',
-		'fieldname': 'reserved_qty',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'in_filter': 1,
-		'label': 'Reserved Quantity',
-		'oldfieldname': 'reserved_qty',
-		'oldfieldtype': 'Currency',
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'default': '0.00',
-		'doctype': 'DocField',
-		'fieldname': 'actual_qty',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'in_filter': 1,
-		'label': 'Actual Quantity',
-		'oldfieldname': 'actual_qty',
-		'oldfieldtype': 'Currency',
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'default': '0.00',
-		'doctype': 'DocField',
-		'fieldname': 'ordered_qty',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'in_filter': 1,
-		'label': 'Ordered Quantity',
-		'oldfieldname': 'ordered_qty',
-		'oldfieldtype': 'Currency',
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'default': '0.00',
-		'doctype': 'DocField',
-		'fieldname': 'indented_qty',
-		'fieldtype': 'Currency',
-		'idx': 8,
-		'in_filter': 1,
-		'label': 'Indented Quantity',
-		'oldfieldname': 'indented_qty',
-		'oldfieldtype': 'Currency',
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'planned_qty',
-		'fieldtype': 'Currency',
-		'idx': 9,
-		'in_filter': 1,
-		'label': 'Planned Qty',
-		'oldfieldname': 'planned_qty',
-		'oldfieldtype': 'Currency',
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'projected_qty',
-		'fieldtype': 'Currency',
-		'idx': 10,
-		'in_filter': 1,
-		'label': 'Projected Qty',
-		'oldfieldname': 'projected_qty',
-		'oldfieldtype': 'Currency'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'ma_rate',
-		'fieldtype': 'Currency',
-		'hidden': 1,
-		'idx': 11,
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'reserved_qty',
+		'fieldtype': u'Currency',
 		'in_filter': 0,
-		'label': 'Moving Average Rate',
-		'oldfieldname': 'ma_rate',
-		'oldfieldtype': 'Currency',
+		'label': u'Reserved Quantity',
+		'oldfieldname': u'reserved_qty',
+		'oldfieldtype': u'Currency',
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'actual_qty',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Actual Quantity',
+		'oldfieldname': u'actual_qty',
+		'oldfieldtype': u'Currency',
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'ordered_qty',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Ordered Quantity',
+		'oldfieldname': u'ordered_qty',
+		'oldfieldtype': u'Currency',
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'indented_qty',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Quantity Requested for Purchase',
+		'oldfieldname': u'indented_qty',
+		'oldfieldtype': u'Currency',
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'planned_qty',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Planned Qty',
+		'oldfieldname': u'planned_qty',
+		'oldfieldtype': u'Currency',
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'projected_qty',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Projected Qty',
+		'oldfieldname': u'projected_qty',
+		'oldfieldtype': u'Currency'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'ma_rate',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'in_filter': 0,
+		'label': u'Moving Average Rate',
+		'oldfieldname': u'ma_rate',
+		'oldfieldtype': u'Currency',
 		'print_hide': 1,
 		'report_hide': 1,
 		'search_index': 0
@@ -250,50 +235,46 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'idx': 12,
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
+		'label': u'UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fcfs_rate',
-		'fieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'fcfs_rate',
+		'fieldtype': u'Currency',
 		'hidden': 1,
-		'idx': 12,
-		'label': 'FCFS Rate',
-		'oldfieldname': 'fcfs_rate',
-		'oldfieldtype': 'Currency',
+		'label': u'FCFS Rate',
+		'oldfieldname': u'fcfs_rate',
+		'oldfieldtype': u'Currency',
 		'print_hide': 1,
 		'report_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'valuation_rate',
-		'fieldtype': 'Currency',
-		'idx': 13,
-		'label': 'Valuation Rate',
-		'oldfieldname': 'valuation_rate',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'valuation_rate',
+		'fieldtype': u'Currency',
+		'label': u'Valuation Rate',
+		'oldfieldname': u'valuation_rate',
+		'oldfieldtype': u'Currency'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_value',
-		'fieldtype': 'Currency',
-		'idx': 14,
-		'label': 'Stock Value',
-		'oldfieldname': 'stock_value',
-		'oldfieldtype': 'Currency'
+		'doctype': u'DocField',
+		'fieldname': u'stock_value',
+		'fieldtype': u'Currency',
+		'label': u'Stock Value',
+		'oldfieldname': u'stock_value',
+		'oldfieldtype': u'Currency'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index d2b58f8..8e15897 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -15,14 +15,15 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 // Module Material Management
-cur_frm.cscript.tname = "Delivery Note Detail";
+cur_frm.cscript.tname = "Delivery Note Item";
 cur_frm.cscript.fname = "delivery_note_details";
 cur_frm.cscript.other_fname = "other_charges";
 cur_frm.cscript.sales_team_fname = "sales_team";
 
-$import(Sales Common)
-$import(Other Charges)
-$import(SMS Control)
+wn.require('erpnext/selling/doctype/sales_common/sales_common.js');
+wn.require('erpnext/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js');
+wn.require('erpnext/utilities/doctype/sms_control/sms_control.js');
+wn.require('erpnext/setup/doctype/notification_control/notification_control.js');
 
 // ONLOAD
 // ================================================================================================
@@ -65,7 +66,7 @@
 	if (doc.docstatus!=1) {
 		hide_field(['SMS', 'Send SMS', 'message', 'customer_mobile_no', 'Repair Delivery Note']);
 	} else {
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 		unhide_field(['SMS','Send SMS', 'message', 'customer_mobile_no', 'Repair Delivery Note']);
 	}
 
@@ -110,7 +111,7 @@
 	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
 }
 
-cur_frm.cscript['Get Items'] = function(doc,dt,dn) {
+cur_frm.cscript.get_items = function(doc,dt,dn) {
 	var callback = function(r,rt){
 		var doc = locals[cur_frm.doctype][cur_frm.docname];					
 		if(r.message){							
@@ -202,15 +203,15 @@
 //-----------------------------------Make Sales Invoice----------------------------------------------
 cur_frm.cscript['Make Sales Invoice'] = function() {
 	var doc = cur_frm.doc
-	n = createLocal('Receivable Voucher');
+	n = createLocal('Sales Invoice');
 	$c('dt_map', args={
-		'docs':compress_doclist([locals['Receivable Voucher'][n]]),
+		'docs':compress_doclist([locals['Sales Invoice'][n]]),
 		'from_doctype':doc.doctype,
-		'to_doctype':'Receivable Voucher',
+		'to_doctype':'Sales Invoice',
 		'from_docname':doc.name,
-		'from_to_list':"[['Delivery Note','Receivable Voucher'],['Delivery Note Detail','RV Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team']]"
+		'from_to_list':"[['Delivery Note','Sales Invoice'],['Delivery Note Item','Sales Invoice Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team']]"
 		}, function(r,rt) {
-			 loaddoc('Receivable Voucher', n);
+			 loaddoc('Sales Invoice', n);
 		}
 	);
 }
@@ -225,7 +226,7 @@
 			'from_doctype':doc.doctype,
 			'to_doctype':'Installation Note',
 			'from_docname':doc.name,
-			'from_to_list':"[['Delivery Note','Installation Note'],['Delivery Note Detail','Installed Item Details']]"
+			'from_to_list':"[['Delivery Note','Installation Note'],['Delivery Note Item','Installation Note Item']]"
 			}, function(r,rt) {
 				 loaddoc('Installation Note', n);
 			}
@@ -244,7 +245,7 @@
 		'from_doctype':doc.doctype,
 		'to_doctype':'Packing Slip',
 		'from_docname':doc.name,
-		'from_to_list':"[['Delivery Note','Packing Slip'],['Delivery Note Detail','Packing Slip Detail']]"
+		'from_to_list':"[['Delivery Note','Packing Slip'],['Delivery Note Item','Packing Slip Item']]"
 		}, function(r,rt) {
 			 loaddoc('Packing Slip', n);
 		}
@@ -263,16 +264,16 @@
 var set_print_hide= function(doc, cdt, cdn){
 	if (doc.print_without_amount) {
 		fields['Delivery Note']['currency'].print_hide = 1;
-		fields['Delivery Note Detail']['export_rate'].print_hide = 1;
-		fields['Delivery Note Detail']['adj_rate'].print_hide = 1;
-		fields['Delivery Note Detail']['ref_rate'].print_hide = 1;
-		fields['Delivery Note Detail']['export_amount'].print_hide = 1;
+		fields['Delivery Note Item']['export_rate'].print_hide = 1;
+		fields['Delivery Note Item']['adj_rate'].print_hide = 1;
+		fields['Delivery Note Item']['ref_rate'].print_hide = 1;
+		fields['Delivery Note Item']['export_amount'].print_hide = 1;
 	} else {
 		fields['Delivery Note']['currency'].print_hide = 0;
-		fields['Delivery Note Detail']['export_rate'].print_hide = 0;
-		fields['Delivery Note Detail']['adj_rate'].print_hide = 0;
-		fields['Delivery Note Detail']['ref_rate'].print_hide = 0;
-		fields['Delivery Note Detail']['export_amount'].print_hide = 0;
+		fields['Delivery Note Item']['export_rate'].print_hide = 0;
+		fields['Delivery Note Item']['adj_rate'].print_hide = 0;
+		fields['Delivery Note Item']['ref_rate'].print_hide = 0;
+		fields['Delivery Note Item']['export_amount'].print_hide = 0;
 	}
 }
 
@@ -295,7 +296,7 @@
 
 	out ='';
 	
-	var cl = getchildren('Delivery Note Detail',doc.name,'delivery_note_details');
+	var cl = getchildren('Delivery Note Item',doc.name,'delivery_note_details');
 
 	// outer table	
 	var out='<div><table class="noborder" style="width:100%"><tr><td style="width: 50%"></td><td>';
@@ -322,7 +323,6 @@
 	return out;
 }
 
-$import(Notification Control)
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	var args = {
 		type: 'Delivery Note',
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index 3d8a101..49d7032 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -38,7 +38,7 @@
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
 		self.doclist = doclist
-		self.tname = 'Delivery Note Detail'
+		self.tname = 'Delivery Note Item'
 		self.fname = 'delivery_note_details'
 
 	# Autoname
@@ -62,13 +62,13 @@
 	def get_comm_rate(self, sales_partner):
 		return get_obj('Sales Common').get_comm_rate(sales_partner, self)
 
-	# *************** Pull Sales Order Details ************************
+	# *************** Pull Sales Order Items ************************
 	def pull_sales_order_details(self):
 		self.validate_prev_docname()
 		self.doc.clear_table(self.doclist,'other_charges')
 
 		if self.doc.sales_order_no:
-			get_obj('DocType Mapper', 'Sales Order-Delivery Note').dt_map('Sales Order', 'Delivery Note', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Delivery Note'],['Sales Order Detail', 'Delivery Note Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team']]")
+			get_obj('DocType Mapper', 'Sales Order-Delivery Note').dt_map('Sales Order', 'Delivery Note', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Delivery Note'],['Sales Order Item', 'Delivery Note Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team']]")
 		else:
 			msgprint("Please select Sales Order No. whose details need to be pulled")
 
@@ -107,7 +107,8 @@
 
 	# ***************** Get Item Details ******************************
 	def get_item_details(self, args=None):
-		args = args and eval(args) or {}
+		import json
+		args = args and json.loads(args) or {}
 		if args.get('item_code'):
 			return get_obj('Sales Common').get_item_details(args, self)
 		else:
@@ -150,7 +151,7 @@
 		return get_obj('Sales Common').load_default_taxes(self)
 
 
-	# **** Pull details from other charges master (Get Other Charges) ****
+	# **** Pull details from other charges master (Get Sales Taxes and Charges Master) ****
 	def get_other_charges(self):
 		return get_obj('Sales Common').get_other_charges(self)
 
@@ -158,7 +159,7 @@
 	#check in manage account if sales order required or not.
 	# ====================================================================================
 	def so_required(self):
-		res = sql("select value from `tabSingles` where doctype = 'Manage Account' and field = 'so_required'")
+		res = sql("select value from `tabSingles` where doctype = 'Global Defaults' and field = 'so_required'")
 		if res and res[0][0] == 'Yes':
 			 for d in getlist(self.doclist,'delivery_note_details'):
 				 if not d.prevdoc_docname:
@@ -296,9 +297,9 @@
 	# ------------------------------------------------------------------
 	def validate_items_with_prevdoc(self, d):
 		if d.prevdoc_doctype == 'Sales Order':
-			data = sql("select item_code, reserved_warehouse from `tabSales Order Detail` where parent = '%s' and name = '%s'" % (d.prevdoc_docname, d.prevdoc_detail_docname))
+			data = sql("select item_code, reserved_warehouse from `tabSales Order Item` where parent = '%s' and name = '%s'" % (d.prevdoc_docname, d.prevdoc_detail_docname))
 		if d.prevdoc_doctype == 'Purchase Receipt':
-			data = sql("select item_code, rejected_warehouse from `tabPurchase Receipt Detail` where parent = '%s' and name = '%s'" % (d.prevdoc_docname, d.prevdoc_detail_docname))
+			data = sql("select item_code, rejected_warehouse from `tabPurchase Receipt Item` where parent = '%s' and name = '%s'" % (d.prevdoc_docname, d.prevdoc_detail_docname))
 		if not data or data[0][0] != d.item_code or data[0][1] != d.warehouse:
 			msgprint("Item: %s / Warehouse: %s is not matching with Sales Order: %s. Sales Order might be modified after fetching data from it. Please delete items and fetch again." % (d.item_code, d.warehouse, d.prevdoc_docname))
 			raise Exception
@@ -342,11 +343,11 @@
 			Validate that if packed qty exists, it should be equal to qty
 		"""
 		if not any([flt(d.fields.get('packed_qty')) for d in self.doclist if
-				d.doctype=='Delivery Note Detail']):
+				d.doctype=='Delivery Note Item']):
 			return
 		packing_error_list = []
 		for d in self.doclist:
-			if d.doctype != 'Delivery Note Detail': continue
+			if d.doctype != 'Delivery Note Item': continue
 			if flt(d.fields.get('qty')) != flt(d.fields.get('packed_qty')):
 				packing_error_list.append([
 					d.fields.get('item_code', ''),
@@ -386,12 +387,12 @@
 
 	# ******************** Check Next DocStatus **************************
 	def check_next_docstatus(self):
-		submit_rv = sql("select t1.name from `tabReceivable Voucher` t1,`tabRV Detail` t2 where t1.name = t2.parent and t2.delivery_note = '%s' and t1.docstatus = 1" % (self.doc.name))
+		submit_rv = sql("select t1.name from `tabSales Invoice` t1,`tabSales Invoice Item` t2 where t1.name = t2.parent and t2.delivery_note = '%s' and t1.docstatus = 1" % (self.doc.name))
 		if submit_rv:
 			msgprint("Sales Invoice : " + cstr(submit_rv[0][0]) + " has already been submitted !")
 			raise Exception , "Validation Error."
 
-		submit_in = sql("select t1.name from `tabInstallation Note` t1, `tabInstalled Item Details` t2 where t1.name = t2.parent and t2.prevdoc_docname = '%s' and t1.docstatus = 1" % (self.doc.name))
+		submit_in = sql("select t1.name from `tabInstallation Note` t1, `tabInstallation Note Item` t2 where t1.name = t2.parent and t2.prevdoc_docname = '%s' and t1.docstatus = 1" % (self.doc.name))
 		if submit_in:
 			msgprint("Installation Note : "+cstr(submit_in[0][0]) +" has already been submitted !")
 			raise Exception , "Validation Error."
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.txt b/erpnext/stock/doctype/delivery_note/delivery_note.txt
index 7bbd7d5..9c536cc 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.txt
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.txt
@@ -3,22 +3,13 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-04-18 15:58:20',
+		'creation': '2012-03-27 14:36:28',
 		'docstatus': 0,
-		'modified': '2012-03-02 12:15:44',
+		'modified': '2012-03-27 18:50:57',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
 
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Delivery Note',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
 	# These values are common for all DocType
 	{
 		'_last_update': u'1330593645',
@@ -27,6 +18,7 @@
 		'doctype': 'DocType',
 		'document_type': u'Transaction',
 		'in_create': 0,
+		'is_submittable': 1,
 		'is_transaction_doc': 1,
 		'module': u'Stock',
 		'name': '__common__',
@@ -37,15 +29,15 @@
 		'show_in_menu': 0,
 		'subject': u'To %(customer_name)s on %(posting_date)s | %(per_billed)s% billed',
 		'tag_fields': u'billing_status',
-		'version': 475
+		'version': 476
 	},
 
-	# These values are common for all DocFormat
+	# These values are common for all DocField
 	{
-		'doctype': u'DocFormat',
+		'doctype': u'DocField',
 		'name': '__common__',
 		'parent': u'Delivery Note',
-		'parentfield': u'formats',
+		'parentfield': u'fields',
 		'parenttype': u'DocType'
 	},
 
@@ -67,14 +59,20 @@
 
 	# DocPerm
 	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
+		'cancel': 0,
+		'create': 0,
 		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': u'Material User',
-		'submit': 1,
-		'write': 1
+		'role': u'Accounts User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts User'
 	},
 
 	# DocPerm
@@ -91,18 +89,46 @@
 
 	# DocPerm
 	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
 		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'match': u'customer_name',
 		'permlevel': 0,
-		'role': u'Material Master Manager',
-		'submit': 1,
+		'role': u'Customer'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'All',
 		'write': 1
 	},
 
 	# DocPerm
 	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
@@ -115,53 +141,33 @@
 
 	# DocPerm
 	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
 		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': u'All',
+		'role': u'Material User',
+		'submit': 0,
 		'write': 0
 	},
 
 	# DocPerm
 	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
 		'doctype': u'DocPerm',
-		'permlevel': 2,
-		'role': u'All'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Delivery Note Classic'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Delivery Note Modern'
-	},
-
-	# DocFormat
-	{
-		'doctype': u'DocFormat',
-		'format': u'Delivery Note Spartan'
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 1,
+		'write': 1
 	},
 
 	# DocField
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'basic_info',
 		'fieldtype': u'Section Break',
 		'label': u'Basic Info',
 		'oldfieldtype': u'Section Break',
@@ -171,6 +177,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -313,6 +320,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break1',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0
@@ -516,6 +524,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'items',
 		'fieldtype': u'Section Break',
 		'label': u'Items',
 		'oldfieldtype': u'Section Break',
@@ -569,6 +578,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break2',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -626,6 +636,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_items',
 		'fieldtype': u'Button',
 		'hidden': 0,
 		'label': u'Get Items',
@@ -638,6 +649,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'section_break0',
 		'fieldtype': u'Section Break',
 		'permlevel': 0
 	},
@@ -648,11 +660,11 @@
 		'doctype': u'DocField',
 		'fieldname': u'delivery_note_details',
 		'fieldtype': u'Table',
-		'label': u'Delivery Note Details',
+		'label': u'Delivery Note Items',
 		'no_copy': 0,
 		'oldfieldname': u'delivery_note_details',
 		'oldfieldtype': u'Table',
-		'options': u'Delivery Note Detail',
+		'options': u'Delivery Note Item',
 		'permlevel': 0,
 		'print_hide': 0
 	},
@@ -675,6 +687,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'recalculate_values',
 		'fieldtype': u'Button',
 		'label': u'Re-Calculate Values',
 		'oldfieldtype': u'Button',
@@ -686,6 +699,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'taxes',
 		'fieldtype': u'Section Break',
 		'label': u'Taxes',
 		'oldfieldtype': u'Section Break',
@@ -695,14 +709,14 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'description': u'If you have created a standard template in Other Charges master, select one and click on the button below.',
+		'description': u'If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.',
 		'doctype': u'DocField',
 		'fieldname': u'charge',
 		'fieldtype': u'Link',
-		'label': u'Charge',
+		'label': u'Taxes and Charges',
 		'oldfieldname': u'charge',
 		'oldfieldtype': u'Link',
-		'options': u'Other Charges',
+		'options': u'Sales Taxes and Charges Master',
 		'permlevel': 0,
 		'print_hide': 1
 	},
@@ -710,8 +724,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_charges',
 		'fieldtype': u'Button',
-		'label': u'Get Charges',
+		'label': u'Get Taxes and Charges',
 		'oldfieldtype': u'Button',
 		'permlevel': 0,
 		'print_hide': 1,
@@ -723,11 +738,11 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges',
 		'fieldtype': u'Table',
-		'label': u'Other Charges',
+		'label': u'Sales Taxes and Charges',
 		'no_copy': 0,
 		'oldfieldname': u'other_charges',
 		'oldfieldtype': u'Table',
-		'options': u'RV Tax Detail',
+		'options': u'Sales Taxes and Charges',
 		'permlevel': 0
 	},
 
@@ -736,7 +751,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_total',
 		'fieldtype': u'Currency',
-		'label': u'Charges Total',
+		'label': u'Taxes and Charges Total',
 		'oldfieldname': u'other_charges_total',
 		'oldfieldtype': u'Currency',
 		'permlevel': 1,
@@ -747,6 +762,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'calculate_charges',
 		'fieldtype': u'Button',
 		'label': u'Calculate Charges',
 		'oldfieldtype': u'Button',
@@ -758,8 +774,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'other_charges_calculation',
 		'fieldtype': u'HTML',
-		'label': u'Other Charges Calculation',
+		'label': u'Taxes and Charges Calculation',
 		'oldfieldtype': u'HTML',
 		'permlevel': 0
 	},
@@ -768,6 +785,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'totals',
 		'fieldtype': u'Section Break',
 		'label': u'Totals',
 		'oldfieldtype': u'Section Break',
@@ -823,6 +841,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break3',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0
@@ -876,8 +895,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'terms_section_break',
 		'fieldtype': u'Section Break',
-		'label': u'Terms',
+		'label': u'Terms and Conditions',
 		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
@@ -887,10 +907,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'tc_name',
 		'fieldtype': u'Link',
-		'label': u'Select Terms',
+		'label': u'Select Terms and Conditions',
 		'oldfieldname': u'tc_name',
 		'oldfieldtype': u'Link',
-		'options': u'Term',
+		'options': u'Terms and Conditions',
 		'permlevel': 0,
 		'print_hide': 1
 	},
@@ -899,8 +919,9 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'get_terms',
 		'fieldtype': u'Button',
-		'label': u'Get Terms',
+		'label': u'Get Terms and Conditions',
 		'oldfieldtype': u'Button',
 		'options': u'get_tc_details',
 		'permlevel': 0,
@@ -912,8 +933,9 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'terms_html',
 		'fieldtype': u'HTML',
-		'label': u'Terms HTML',
+		'label': u'Terms and Conditions HTML',
 		'oldfieldtype': u'HTML',
 		'options': u'You can add Terms and Notes that will be printed in the Transaction',
 		'permlevel': 0,
@@ -926,7 +948,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'terms',
 		'fieldtype': u'Text Editor',
-		'label': u'Term Details',
+		'label': u'Terms and Conditions Details',
 		'oldfieldname': u'terms',
 		'oldfieldtype': u'Text Editor',
 		'permlevel': 0
@@ -935,6 +957,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'transporter_info',
 		'fieldtype': u'Section Break',
 		'label': u'Transporter Info',
 		'permlevel': 0,
@@ -944,6 +967,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break4',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'print_hide': 1,
@@ -1006,6 +1030,7 @@
 		'colour': u'White:FFF',
 		'description': u'Filling in Additional Information about the Delivery Note will help you analyze your data better.',
 		'doctype': u'DocField',
+		'fieldname': u'more_info',
 		'fieldtype': u'Section Break',
 		'label': u'More Info',
 		'oldfieldtype': u'Section Break',
@@ -1052,6 +1077,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break5',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -1218,6 +1244,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'packing_list',
 		'fieldtype': u'Section Break',
 		'label': u'Packing List',
 		'oldfieldtype': u'Section Break',
@@ -1233,7 +1260,7 @@
 		'label': u'Packing Details',
 		'oldfieldname': u'packing_details',
 		'oldfieldtype': u'Table',
-		'options': u'Delivery Note Packing Detail',
+		'options': u'Delivery Note Packing Item',
 		'permlevel': 1,
 		'print_hide': 1
 	},
@@ -1242,6 +1269,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'sales_team_section_break',
 		'fieldtype': u'Section Break',
 		'label': u'Sales Team',
 		'oldfieldtype': u'Section Break',
@@ -1252,6 +1280,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break6',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'print_hide': 1,
@@ -1277,6 +1306,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break7',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'print_hide': 1,
@@ -1316,6 +1346,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'section_break1',
 		'fieldtype': u'Section Break',
 		'options': u'Simple',
 		'permlevel': 0,
@@ -1339,6 +1370,7 @@
 	{
 		'allow_on_submit': 1,
 		'doctype': u'DocField',
+		'fieldname': u'repair_delivery_note',
 		'fieldtype': u'Button',
 		'label': u'Repair Delivery Note',
 		'oldfieldtype': u'Button',
diff --git a/erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt b/erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt
deleted file mode 100644
index c4bacb3..0000000
--- a/erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt
+++ /dev/null
@@ -1,437 +0,0 @@
-# DocType, Delivery Note Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:58',
-		'docstatus': 0,
-		'modified': '2012-03-05 15:00:39',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1311621379',
-		'autoname': u'DND/.#######',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': u'Stock',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 56
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Delivery Note Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, Delivery Note Detail
-	{
-		'doctype': 'DocType',
-		'name': u'Delivery Note Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item Code',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client',
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'item_name',
-		'fieldtype': u'Data',
-		'label': u'Item Name',
-		'oldfieldname': u'item_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Small Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'qty',
-		'fieldtype': u'Currency',
-		'label': u'Quantity',
-		'oldfieldname': u'qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'stock_uom',
-		'fieldtype': u'Data',
-		'label': u'UOM',
-		'oldfieldname': u'stock_uom',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 0,
-		'reqd': 1,
-		'width': u'50px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Price List Rate',
-		'no_copy': 0,
-		'oldfieldname': u'ref_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'adj_rate',
-		'fieldtype': u'Float',
-		'label': u'Discount (%)',
-		'oldfieldname': u'adj_rate',
-		'oldfieldtype': u'Float',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'export_rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate',
-		'oldfieldname': u'export_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'export_amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount',
-		'oldfieldname': u'export_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 0,
-		'reqd': 0,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'base_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Price List Rate*',
-		'oldfieldname': u'base_ref_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'basic_rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate*',
-		'oldfieldname': u'basic_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount*',
-		'oldfieldname': u'amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'warehouse',
-		'fieldtype': u'Link',
-		'label': u'Warehouse',
-		'oldfieldname': u'warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'serial_no',
-		'fieldtype': u'Text',
-		'in_filter': 1,
-		'label': u'Serial No',
-		'no_copy': 1,
-		'oldfieldname': u'serial_no',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'print_hide': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'batch_no',
-		'fieldtype': u'Link',
-		'label': u'Batch No',
-		'oldfieldname': u'batch_no',
-		'oldfieldtype': u'Link',
-		'options': u'Batch',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_group',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'label': u'Item Group',
-		'oldfieldname': u'item_group',
-		'oldfieldtype': u'Link',
-		'options': u'Item Group',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'brand',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'label': u'Brand Name',
-		'oldfieldname': u'brand',
-		'oldfieldtype': u'Link',
-		'options': u'Brand',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'actual_qty',
-		'fieldtype': u'Currency',
-		'label': u'Available Qty at Warehouse',
-		'no_copy': 1,
-		'oldfieldname': u'actual_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'billed_amt',
-		'fieldtype': u'Currency',
-		'label': u'Billed Amt',
-		'no_copy': 1,
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'installed_qty',
-		'fieldtype': u'Currency',
-		'label': u'Installed Qty',
-		'no_copy': 1,
-		'oldfieldname': u'installed_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': u'White:FFF',
-		'default': u'0',
-		'doctype': u'DocField',
-		'fieldname': u'packed_qty',
-		'fieldtype': u'Currency',
-		'label': u'Packed Quantity',
-		'no_copy': 1,
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_doctype',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Document Type',
-		'oldfieldname': u'prevdoc_doctype',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_docname',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'Against Document No',
-		'no_copy': 1,
-		'oldfieldname': u'prevdoc_docname',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_date',
-		'fieldtype': u'Date',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Against Document Date',
-		'oldfieldname': u'prevdoc_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_detail_docname',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Against Document Detail No',
-		'oldfieldname': u'prevdoc_detail_docname',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 0,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_tax_rate',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'label': u'Item Tax Rate',
-		'oldfieldname': u'item_tax_rate',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldname': u'page_break',
-		'fieldtype': u'Check',
-		'label': u'Page Break',
-		'oldfieldname': u'page_break',
-		'oldfieldtype': u'Check',
-		'permlevel': 0,
-		'print_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/delivery_note_detail/__init__.py b/erpnext/stock/doctype/delivery_note_item/__init__.py
similarity index 100%
rename from erpnext/stock/doctype/delivery_note_detail/__init__.py
rename to erpnext/stock/doctype/delivery_note_item/__init__.py
diff --git a/erpnext/stock/doctype/delivery_note_item/delivery_note_item.txt b/erpnext/stock/doctype/delivery_note_item/delivery_note_item.txt
new file mode 100644
index 0000000..c1ea5d1
--- /dev/null
+++ b/erpnext/stock/doctype/delivery_note_item/delivery_note_item.txt
@@ -0,0 +1,437 @@
+# DocType, Delivery Note Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:29',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:29',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': u'1311621379',
+		'autoname': u'DND/.#######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Stock',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 56
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Delivery Note Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Delivery Note Item
+	{
+		'doctype': 'DocType',
+		'name': u'Delivery Note Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client',
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Quantity',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 0,
+		'reqd': 1,
+		'width': u'50px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Price List Rate',
+		'no_copy': 0,
+		'oldfieldname': u'ref_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'adj_rate',
+		'fieldtype': u'Float',
+		'label': u'Discount (%)',
+		'oldfieldname': u'adj_rate',
+		'oldfieldtype': u'Float',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'export_rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'export_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 0,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'export_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'export_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 0,
+		'reqd': 0,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'base_ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Price List Rate*',
+		'oldfieldname': u'base_ref_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'basic_rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate*',
+		'oldfieldname': u'basic_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount*',
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 0,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
+		'label': u'Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Text',
+		'in_filter': 1,
+		'label': u'Serial No',
+		'no_copy': 1,
+		'oldfieldname': u'serial_no',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'print_hide': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'batch_no',
+		'fieldtype': u'Link',
+		'label': u'Batch No',
+		'oldfieldname': u'batch_no',
+		'oldfieldtype': u'Link',
+		'options': u'Batch',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Brand Name',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Link',
+		'options': u'Brand',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'actual_qty',
+		'fieldtype': u'Currency',
+		'label': u'Available Qty at Warehouse',
+		'no_copy': 1,
+		'oldfieldname': u'actual_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'billed_amt',
+		'fieldtype': u'Currency',
+		'label': u'Billed Amt',
+		'no_copy': 1,
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'installed_qty',
+		'fieldtype': u'Currency',
+		'label': u'Installed Qty',
+		'no_copy': 1,
+		'oldfieldname': u'installed_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': u'White:FFF',
+		'default': u'0',
+		'doctype': u'DocField',
+		'fieldname': u'packed_qty',
+		'fieldtype': u'Currency',
+		'label': u'Packed Quantity',
+		'no_copy': 1,
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_doctype',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Document Type',
+		'oldfieldname': u'prevdoc_doctype',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_docname',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'Against Document No',
+		'no_copy': 1,
+		'oldfieldname': u'prevdoc_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_date',
+		'fieldtype': u'Date',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Against Document Date',
+		'oldfieldname': u'prevdoc_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_detail_docname',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Against Document Detail No',
+		'oldfieldname': u'prevdoc_detail_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 0,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_tax_rate',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Item Tax Rate',
+		'oldfieldname': u'item_tax_rate',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'page_break',
+		'fieldtype': u'Check',
+		'label': u'Page Break',
+		'oldfieldname': u'page_break',
+		'oldfieldtype': u'Check',
+		'permlevel': 0,
+		'print_hide': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/delivery_note_packing_detail/delivery_note_packing_detail.txt b/erpnext/stock/doctype/delivery_note_packing_detail/delivery_note_packing_detail.txt
deleted file mode 100644
index 3924c13..0000000
--- a/erpnext/stock/doctype/delivery_note_packing_detail/delivery_note_packing_detail.txt
+++ /dev/null
@@ -1,286 +0,0 @@
-# DocType, Delivery Note Packing Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:58',
-		'docstatus': 0,
-		'modified': '2011-03-14 14:50:55',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Stock',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 17
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Delivery Note Packing Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Delivery Note Packing Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Delivery Note Packing Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'parent_item',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Parent Item',
-		'oldfieldname': 'parent_item',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_name',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'in_filter': 1,
-		'label': 'Item Name',
-		'oldfieldname': 'item_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'parent_detail_docname',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 4,
-		'label': 'Parent Detail docname',
-		'no_copy': 1,
-		'oldfieldname': 'parent_detail_docname',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'idx': 5,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'permlevel': 1,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse',
-		'fieldtype': 'Link',
-		'idx': 6,
-		'label': 'Warehouse',
-		'oldfieldname': 'warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'idx': 7,
-		'label': 'Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no',
-		'fieldtype': 'Text',
-		'idx': 8,
-		'label': 'Serial No',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'actual_qty',
-		'fieldtype': 'Currency',
-		'idx': 9,
-		'label': 'Actual Qty',
-		'no_copy': 1,
-		'oldfieldname': 'actual_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'projected_qty',
-		'fieldtype': 'Currency',
-		'idx': 10,
-		'label': 'Projected Qty',
-		'no_copy': 1,
-		'oldfieldname': 'projected_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'uom',
-		'fieldtype': 'Link',
-		'idx': 11,
-		'label': 'UOM',
-		'oldfieldname': 'uom',
-		'oldfieldtype': 'Link',
-		'options': 'UOM',
-		'permlevel': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'planned_qty',
-		'fieldtype': 'Currency',
-		'hidden': 1,
-		'idx': 12,
-		'label': 'Planned Qty ',
-		'no_copy': 1,
-		'oldfieldname': 'planned_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'produced_qty',
-		'fieldtype': 'Currency',
-		'hidden': 1,
-		'idx': 13,
-		'label': 'Produced Qty',
-		'no_copy': 1,
-		'oldfieldname': 'produced_qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'prevdoc_doctype',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 14,
-		'label': 'Prevdoc DocType',
-		'oldfieldname': 'prevdoc_doctype',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'description': 'The date at which current entry is made in system.',
-		'doctype': 'DocField',
-		'fieldname': 'transaction_date',
-		'fieldtype': 'Date',
-		'hidden': 0,
-		'idx': 15,
-		'label': 'Sales Order Date',
-		'oldfieldname': 'transaction_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_date',
-		'fieldtype': 'Date',
-		'hidden': 0,
-		'idx': 16,
-		'label': 'Expected Delivery Date',
-		'oldfieldname': 'delivery_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'confirmation_date',
-		'fieldtype': 'Date',
-		'hidden': 1,
-		'idx': 17,
-		'label': 'Confirmed delivery date',
-		'no_copy': 1,
-		'oldfieldname': 'confirmation_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldname': 'page_break',
-		'fieldtype': 'Check',
-		'idx': 18,
-		'label': 'Page Break',
-		'oldfieldname': 'page_break',
-		'oldfieldtype': 'Check',
-		'permlevel': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/delivery_note_packing_detail/__init__.py b/erpnext/stock/doctype/delivery_note_packing_item/__init__.py
similarity index 100%
rename from erpnext/stock/doctype/delivery_note_packing_detail/__init__.py
rename to erpnext/stock/doctype/delivery_note_packing_item/__init__.py
diff --git a/erpnext/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.txt b/erpnext/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.txt
new file mode 100644
index 0000000..4299fcc
--- /dev/null
+++ b/erpnext/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.txt
@@ -0,0 +1,268 @@
+# DocType, Delivery Note Packing Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:30',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:30',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Stock',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 17
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Delivery Note Packing Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Delivery Note Packing Item
+	{
+		'doctype': 'DocType',
+		'name': u'Delivery Note Packing Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'parent_item',
+		'fieldtype': u'Link',
+		'label': u'Parent Item',
+		'oldfieldname': u'parent_item',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'parent_detail_docname',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Parent Detail docname',
+		'no_copy': 1,
+		'oldfieldname': u'parent_detail_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'permlevel': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
+		'label': u'Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Text',
+		'label': u'Serial No',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'actual_qty',
+		'fieldtype': u'Currency',
+		'label': u'Actual Qty',
+		'no_copy': 1,
+		'oldfieldname': u'actual_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'projected_qty',
+		'fieldtype': u'Currency',
+		'label': u'Projected Qty',
+		'no_copy': 1,
+		'oldfieldname': u'projected_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'uom',
+		'fieldtype': u'Link',
+		'label': u'UOM',
+		'oldfieldname': u'uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM',
+		'permlevel': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'planned_qty',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Planned Qty ',
+		'no_copy': 1,
+		'oldfieldname': u'planned_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'produced_qty',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Produced Qty',
+		'no_copy': 1,
+		'oldfieldname': u'produced_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_doctype',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Prevdoc DocType',
+		'oldfieldname': u'prevdoc_doctype',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'description': u'The date at which current entry is made in system.',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_date',
+		'fieldtype': u'Date',
+		'hidden': 0,
+		'label': u'Sales Order Date',
+		'oldfieldname': u'transaction_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'delivery_date',
+		'fieldtype': u'Date',
+		'hidden': 0,
+		'label': u'Expected Delivery Date',
+		'oldfieldname': u'delivery_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'confirmation_date',
+		'fieldtype': u'Date',
+		'hidden': 1,
+		'label': u'Confirmed delivery date',
+		'no_copy': 1,
+		'oldfieldname': u'confirmation_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'page_break',
+		'fieldtype': u'Check',
+		'label': u'Page Break',
+		'oldfieldname': u'page_break',
+		'oldfieldtype': u'Check',
+		'permlevel': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 59235ab..97be19a 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -34,7 +34,7 @@
 
 cur_frm.fields_dict['default_bom'].get_query = function(doc) {
    //var d = locals[this.doctype][this.docname];
-   return 'SELECT DISTINCT `tabBill Of Materials`.`name` FROM `tabBill Of Materials` WHERE `tabBill Of Materials`.`item` = "' + doc.item_code + '"  AND `tabBill Of Materials`.`is_active` = "No" and `tabBill Of Materials`.docstatus != 2 AND `tabBill Of Materials`.%(key)s LIKE "%s" ORDER BY `tabBill Of Materials`.`name` LIMIT 50'
+   return 'SELECT DISTINCT `tabBOM`.`name` FROM `tabBOM` WHERE `tabBOM`.`item` = "' + doc.item_code + '"  AND `tabBOM`.`is_active` = "No" and `tabBOM`.docstatus != 2 AND `tabBOM`.%(key)s LIKE "%s" ORDER BY `tabBOM`.`name` LIMIT 50'
 }
 
 
@@ -93,7 +93,7 @@
 // takes the first attachment and creates
 // a table with both image and attachment in HTML
 // in the "alternate_description" field
-cur_frm.cscript['Add Image'] = function(doc, dt, dn) {
+cur_frm.cscript.add_image = function(doc, dt, dn) {
 	if(!doc.file_list) {
 		msgprint('Please attach a file first!');
 	}
@@ -127,7 +127,7 @@
   cur_frm.cscript.weight_to_validate(doc,cdt,cdn);
 }
 
-//===========Fill Default Currency in "Ref Rate Details====================
+//===========Fill Default Currency in "Item Prices====================
 cur_frm.fields_dict['ref_rate_details'].grid.onrowadd = function(doc, cdt, cdn){
 	locals[cdt][cdn].ref_currency = sys_defaults.currency;
 	refresh_field('ref_currency',cdn,'ref_rate_details');
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index 64cb0c9..ab61f28 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -118,12 +118,12 @@
 
 	def check_for_active_boms(self, check):
 		if check in ['Is Active', 'Is Purchase Item']:
-			bom_mat = sql("select distinct t1.parent from `tabBOM Material` t1, `tabBill Of Materials` t2 where t1.item_code ='%s' and (t1.bom_no = '' or t1.bom_no is NULL) and t2.name = t1.parent and t2.is_active = 'Yes' and t2.docstatus = 1 and t1.docstatus =1 " % self.doc.name )
+			bom_mat = sql("select distinct t1.parent from `tabBOM Item` t1, `tabBOM` t2 where t1.item_code ='%s' and (t1.bom_no = '' or t1.bom_no is NULL) and t2.name = t1.parent and t2.is_active = 'Yes' and t2.docstatus = 1 and t1.docstatus =1 " % self.doc.name )
 			if bom_mat and bom_mat[0][0]:
 				msgprint("%s should be 'Yes'. As Item %s is present in one or many Active BOMs." % (cstr(check), cstr(self.doc.name)))
 				raise Exception
 		if check == 'Is Active' or ( check == 'Is Manufactured Item' and self.doc.is_sub_contracted_item != 'Yes') or (check ==	'Is Sub Contracted Item' and self.doc.is_manufactured_item != 'Yes') :
-			bom = sql("select name from `tabBill Of Materials` where item = '%s' and is_active ='Yes'" % cstr(self.doc.name))
+			bom = sql("select name from `tabBOM` where item = '%s' and is_active ='Yes'" % cstr(self.doc.name))
 			if bom and bom[0][0]:
 				msgprint("%s should be 'Yes'. As Item %s is present in one or many Active BOMs." % (cstr(check), cstr(self.doc.name)))
 				raise Exception
diff --git a/erpnext/stock/doctype/item/item.txt b/erpnext/stock/doctype/item/item.txt
index 682b69c..28efdf8 100644
--- a/erpnext/stock/doctype/item/item.txt
+++ b/erpnext/stock/doctype/item/item.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:05',
+		'creation': '2012-03-27 14:36:31',
 		'docstatus': 0,
-		'modified': '2012-02-21 12:40:01',
+		'modified': '2012-03-27 18:51:27',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -29,7 +29,7 @@
 		'show_in_menu': 0,
 		'subject': u'%(item_name)s',
 		'tag_fields': u'item_group',
-		'version': 171
+		'version': 172
 	},
 
 	# These values are common for all DocField
@@ -59,73 +59,6 @@
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Master Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material Master Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
 		'cancel': 1,
 		'create': 1,
 		'doctype': u'DocPerm',
@@ -136,14 +69,82 @@
 
 	# DocPerm
 	{
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Master Manager',
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Master Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
 		'doctype': u'DocPerm',
 		'permlevel': 1,
 		'role': u'System Manager'
 	},
 
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'item',
 		'fieldtype': u'Section Break',
 		'label': u'Item',
 		'no_copy': 0,
@@ -211,6 +212,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'ighelp',
 		'fieldtype': u'HTML',
 		'label': u'IGHelp',
 		'oldfieldtype': u'HTML',
@@ -236,6 +238,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
@@ -269,6 +272,7 @@
 		'colour': u'White:FFF',
 		'description': u'Generates HTML to include image (1st attachment) in the description',
 		'doctype': u'DocField',
+		'fieldname': u'add_image',
 		'fieldtype': u'Button',
 		'label': u'Add Image',
 		'permlevel': 0
@@ -277,6 +281,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'inventory',
 		'fieldtype': u'Section Break',
 		'label': u'Inventory',
 		'oldfieldtype': u'Section Break',
@@ -402,6 +407,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break1',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -502,6 +508,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'purchase_details',
 		'fieldtype': u'Section Break',
 		'label': u'Purchase Details',
 		'oldfieldtype': u'Section Break',
@@ -527,7 +534,7 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'description': u'Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Indent when you select this item.',
+		'description': u'Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Purchase Request when you select this item.',
 		'doctype': u'DocField',
 		'fieldname': u'lead_time_days',
 		'fieldtype': u'Int',
@@ -608,6 +615,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break2',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -657,6 +665,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'sales_details',
 		'fieldtype': u'Section Break',
 		'label': u'Sales Details',
 		'oldfieldtype': u'Section Break',
@@ -759,6 +768,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break3',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -772,10 +782,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'ref_rate_details',
 		'fieldtype': u'Table',
-		'label': u'Ref Rate Details',
+		'label': u'Item Prices',
 		'oldfieldname': u'ref_rate_details',
 		'oldfieldtype': u'Table',
-		'options': u'Ref Rate Detail',
+		'options': u'Item Price',
 		'permlevel': 0
 	},
 
@@ -793,6 +803,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'item_tax_section_break',
 		'fieldtype': u'Section Break',
 		'label': u'Item Tax',
 		'oldfieldtype': u'Section Break',
@@ -814,6 +825,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'inspection_criteria',
 		'fieldtype': u'Section Break',
 		'label': u'Inspection Criteria',
 		'oldfieldtype': u'Section Break',
@@ -840,16 +852,17 @@
 		'doctype': u'DocField',
 		'fieldname': u'item_specification_details',
 		'fieldtype': u'Table',
-		'label': u'Item Specification Detail',
+		'label': u'Item Quality Inspection Parameter',
 		'oldfieldname': u'item_specification_details',
 		'oldfieldtype': u'Table',
-		'options': u'Item Specification Detail',
+		'options': u'Item Quality Inspection Parameter',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'manufacturing',
 		'fieldtype': u'Section Break',
 		'label': u'Manufacturing',
 		'oldfieldtype': u'Section Break',
@@ -882,7 +895,7 @@
 		'no_copy': 1,
 		'oldfieldname': u'default_bom',
 		'oldfieldtype': u'Link',
-		'options': u'Bill Of Materials',
+		'options': u'BOM',
 		'permlevel': 1
 	},
 
diff --git a/erpnext/stock/doctype/item/listview.js b/erpnext/stock/doctype/item/listview.js
new file mode 100644
index 0000000..7f0dbc8
--- /dev/null
+++ b/erpnext/stock/doctype/item/listview.js
@@ -0,0 +1,23 @@
+// render
+wn.doclistviews['Item'] = wn.views.ListView.extend({
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			"`tabItem`.item_name",
+			"`tabItem`.description",
+		]);
+		this.stats = this.stats.concat(['default_warehouse', 'brand']);
+	},
+
+	prepare_data: function(data) {
+		this._super(data);
+		data.description = repl("%(item_name)s | %(description)s", data);
+	},
+	
+	columns: [
+		{width: '5%', content:'avatar'},
+		{width: '20%', content:'name'},
+		{width: '63%', content:'tags+description', css: {'color': '#aaa'}},
+		{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+});
diff --git a/erpnext/stock/doctype/item_customer_detail/item_customer_detail.txt b/erpnext/stock/doctype/item_customer_detail/item_customer_detail.txt
index f53f18e..d41c927 100644
--- a/erpnext/stock/doctype/item_customer_detail/item_customer_detail.txt
+++ b/erpnext/stock/doctype/item_customer_detail/item_customer_detail.txt
@@ -3,38 +3,38 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-08-18 11:38:43',
+		'creation': '2012-03-27 14:36:33',
 		'docstatus': 0,
-		'modified': '2011-08-18 11:54:36',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:33',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'ITEMCUST/.#####',
-		'colour': 'White:FFF',
-		'description': 'For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes',
+		'autoname': u'ITEMCUST/.#####',
+		'colour': u'White:FFF',
+		'description': u'For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes',
 		'doctype': 'DocType',
 		'in_create': 1,
 		'istable': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
 		'read_only': 0,
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 7
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'in_filter': 1,
 		'name': '__common__',
-		'parent': 'Item Customer Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Item Customer Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -43,31 +43,29 @@
 	# DocType, Item Customer Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Item Customer Detail'
+		'name': u'Item Customer Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Customer Name',
-		'oldfieldname': 'price_list_name',
-		'oldfieldtype': 'Select',
-		'options': 'Customer',
-		'width': '180px'
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Link',
+		'label': u'Customer Name',
+		'oldfieldname': u'price_list_name',
+		'oldfieldtype': u'Select',
+		'options': u'Customer',
+		'width': u'180px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'ref_code',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Ref Code',
-		'oldfieldname': 'ref_rate',
-		'oldfieldtype': 'Currency',
-		'width': '120px'
+		'doctype': u'DocField',
+		'fieldname': u'ref_code',
+		'fieldtype': u'Data',
+		'label': u'Ref Code',
+		'oldfieldname': u'ref_rate',
+		'oldfieldtype': u'Currency',
+		'width': u'120px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/lc_pr_detail/__init__.py b/erpnext/stock/doctype/item_price/__init__.py
similarity index 100%
rename from erpnext/stock/doctype/lc_pr_detail/__init__.py
rename to erpnext/stock/doctype/item_price/__init__.py
diff --git a/erpnext/stock/doctype/item_price/item_price.txt b/erpnext/stock/doctype/item_price/item_price.txt
new file mode 100644
index 0000000..a48f8d1
--- /dev/null
+++ b/erpnext/stock/doctype/item_price/item_price.txt
@@ -0,0 +1,82 @@
+# DocType, Item Price
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:36',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:36',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'RFD/.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'in_create': 1,
+		'istable': 1,
+		'module': u'Stock',
+		'name': '__common__',
+		'read_only': 0,
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 3
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'in_filter': 1,
+		'name': '__common__',
+		'parent': u'Item Price',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'search_index': 1
+	},
+
+	# DocType, Item Price
+	{
+		'doctype': 'DocType',
+		'name': u'Item Price'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'price_list_name',
+		'fieldtype': u'Select',
+		'label': u'Price List Name',
+		'oldfieldname': u'price_list_name',
+		'oldfieldtype': u'Select',
+		'options': u'link:Price List',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Ref Rate',
+		'oldfieldname': u'ref_rate',
+		'oldfieldtype': u'Currency',
+		'reqd': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'ref_currency',
+		'fieldtype': u'Select',
+		'label': u'Currency',
+		'oldfieldname': u'ref_currency',
+		'oldfieldtype': u'Select',
+		'options': u'link:Currency',
+		'reqd': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item_specification_detail/__init__.py b/erpnext/stock/doctype/item_quality_inspection_parameter/__init__.py
similarity index 100%
rename from erpnext/stock/doctype/item_specification_detail/__init__.py
rename to erpnext/stock/doctype/item_quality_inspection_parameter/__init__.py
diff --git a/erpnext/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.txt b/erpnext/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.txt
new file mode 100644
index 0000000..1ab6d06
--- /dev/null
+++ b/erpnext/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.txt
@@ -0,0 +1,64 @@
+# DocType, Item Quality Inspection Parameter
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:33',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:33',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'IISD/.#####',
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Stock',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 1
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'fieldtype': u'Data',
+		'name': '__common__',
+		'oldfieldtype': u'Data',
+		'parent': u'Item Quality Inspection Parameter',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Item Quality Inspection Parameter
+	{
+		'doctype': 'DocType',
+		'name': u'Item Quality Inspection Parameter'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'specification',
+		'in_filter': 0,
+		'label': u'Parameter',
+		'oldfieldname': u'specification',
+		'reqd': 1,
+		'search_index': 0,
+		'width': u'200px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'value',
+		'label': u'Acceptance Criteria',
+		'oldfieldname': u'value'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item_specification_detail/item_specification_detail.txt b/erpnext/stock/doctype/item_specification_detail/item_specification_detail.txt
deleted file mode 100644
index 7173b09..0000000
--- a/erpnext/stock/doctype/item_specification_detail/item_specification_detail.txt
+++ /dev/null
@@ -1,66 +0,0 @@
-# DocType, Item Specification Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:06',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'IISD/.#####',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Stock',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Data',
-		'name': '__common__',
-		'oldfieldtype': 'Data',
-		'parent': 'Item Specification Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Item Specification Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Item Specification Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'specification',
-		'idx': 1,
-		'in_filter': 0,
-		'label': 'Parameter',
-		'oldfieldname': 'specification',
-		'reqd': 1,
-		'search_index': 0,
-		'width': '200px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'value',
-		'idx': 2,
-		'label': 'Acceptance Criteria',
-		'oldfieldname': 'value'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item_supplier/item_supplier.txt b/erpnext/stock/doctype/item_supplier/item_supplier.txt
index 609c1e9..e7806b3 100644
--- a/erpnext/stock/doctype/item_supplier/item_supplier.txt
+++ b/erpnext/stock/doctype/item_supplier/item_supplier.txt
@@ -3,56 +3,56 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-17 18:36:35',
+		'creation': '2012-03-27 14:36:33',
 		'docstatus': 0,
-		'modified': '2012-01-17 18:40:37',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:33',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 3
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Item Supplier',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Item Supplier',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Item Supplier
 	{
 		'doctype': 'DocType',
-		'name': 'Item Supplier'
+		'name': u'Item Supplier'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'supplier',
-		'fieldtype': 'Link',
-		'label': 'Supplier',
-		'options': 'Supplier'
+		'doctype': u'DocField',
+		'fieldname': u'supplier',
+		'fieldtype': u'Link',
+		'label': u'Supplier',
+		'options': u'Supplier'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'supplier_part_no',
-		'fieldtype': 'Data',
-		'label': 'Supplier Part Number',
-		'width': '200px'
+		'doctype': u'DocField',
+		'fieldname': u'supplier_part_no',
+		'fieldtype': u'Data',
+		'label': u'Supplier Part Number',
+		'width': u'200px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item_tax/item_tax.txt b/erpnext/stock/doctype/item_tax/item_tax.txt
index 1d4adb7..1ceffdb 100644
--- a/erpnext/stock/doctype/item_tax/item_tax.txt
+++ b/erpnext/stock/doctype/item_tax/item_tax.txt
@@ -3,64 +3,62 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:06',
+		'creation': '2012-03-27 14:36:33',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:33',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Item Tax',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Item Tax',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Item Tax
 	{
 		'doctype': 'DocType',
-		'name': 'Item Tax'
+		'name': u'Item Tax'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tax_type',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Tax',
-		'oldfieldname': 'tax_type',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
+		'doctype': u'DocField',
+		'fieldname': u'tax_type',
+		'fieldtype': u'Link',
+		'label': u'Tax',
+		'oldfieldname': u'tax_type',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'tax_rate',
-		'fieldtype': 'Currency',
-		'idx': 2,
-		'label': 'Tax Rate',
-		'oldfieldname': 'tax_rate',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'tax_rate',
+		'fieldtype': u'Currency',
+		'label': u'Tax Rate',
+		'oldfieldname': u'tax_rate',
+		'oldfieldtype': u'Currency',
 		'reqd': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_detail/landed_cost_detail.txt b/erpnext/stock/doctype/landed_cost_detail/landed_cost_detail.txt
deleted file mode 100644
index 57c7370..0000000
--- a/erpnext/stock/doctype/landed_cost_detail/landed_cost_detail.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-# DocType, Landed Cost Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:06',
-		'docstatus': 0,
-		'modified': '2011-06-30 18:47:46',
-		'modified_by': 'Administrator',
-		'owner': 'wasim@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Stock',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 2
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Landed Cost Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocType, Landed Cost Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Landed Cost Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'account_head',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Account Head',
-		'oldfieldname': 'account_head',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Data',
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amount',
-		'fieldtype': 'Currency',
-		'idx': 3,
-		'label': 'Amount',
-		'oldfieldname': 'amount',
-		'oldfieldtype': 'Currency'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_detail/__init__.py b/erpnext/stock/doctype/landed_cost_item/__init__.py
similarity index 100%
rename from erpnext/stock/doctype/landed_cost_detail/__init__.py
rename to erpnext/stock/doctype/landed_cost_item/__init__.py
diff --git a/erpnext/stock/doctype/landed_cost_item/landed_cost_item.txt b/erpnext/stock/doctype/landed_cost_item/landed_cost_item.txt
new file mode 100644
index 0000000..4157039
--- /dev/null
+++ b/erpnext/stock/doctype/landed_cost_item/landed_cost_item.txt
@@ -0,0 +1,76 @@
+# DocType, Landed Cost Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:33',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:33',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Stock',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 2
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Landed Cost Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocType, Landed Cost Item
+	{
+		'doctype': 'DocType',
+		'name': u'Landed Cost Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'account_head',
+		'fieldtype': u'Link',
+		'label': u'Account Head',
+		'oldfieldname': u'account_head',
+		'oldfieldtype': u'Link',
+		'options': u'Account',
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Data',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Data',
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_master/landed_cost_master.txt b/erpnext/stock/doctype/landed_cost_master/landed_cost_master.txt
index 71374f8..f84eafe 100644
--- a/erpnext/stock/doctype/landed_cost_master/landed_cost_master.txt
+++ b/erpnext/stock/doctype/landed_cost_master/landed_cost_master.txt
@@ -3,166 +3,155 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:07',
+		'creation': '2012-03-27 14:36:34',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:34',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1309508838',
-		'autoname': 'field:title',
-		'colour': 'White:FFF',
+		'_last_update': u'1309508838',
+		'autoname': u'field:title',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Stock',
+		'document_type': u'Master',
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 2
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Landed Cost Master',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Landed Cost Master',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Landed Cost Master',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Landed Cost Master',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Landed Cost Master
 	{
 		'doctype': 'DocType',
-		'name': 'Landed Cost Master'
+		'name': u'Landed Cost Master'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'All'
+		'role': u'All'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Purchase Manager',
+		'role': u'Purchase Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Purchase User',
+		'role': u'Purchase User',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All'
+		'role': u'All'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 7,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Purchase User'
+		'role': u'Purchase User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 8,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Purchase Manager'
+		'role': u'Purchase Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'title',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Title',
-		'oldfieldname': 'title',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'title',
+		'fieldtype': u'Data',
+		'label': u'Title',
+		'oldfieldname': u'title',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 3,
-		'label': 'Landed Cost Details',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'landed_cost_details',
+		'fieldtype': u'Section Break',
+		'label': u'Landed Cost Items',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'landed_cost',
-		'fieldtype': 'Table',
-		'idx': 4,
-		'label': 'Landed Cost',
-		'oldfieldname': 'landed_cost',
-		'oldfieldtype': 'Table',
-		'options': 'Landed Cost Master Detail',
+		'doctype': u'DocField',
+		'fieldname': u'landed_cost',
+		'fieldtype': u'Table',
+		'label': u'Landed Cost',
+		'oldfieldname': u'landed_cost',
+		'oldfieldtype': u'Table',
+		'options': u'Landed Cost Master Detail',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_master_detail/landed_cost_master_detail.txt b/erpnext/stock/doctype/landed_cost_master_detail/landed_cost_master_detail.txt
index bc752d9..1beccea 100644
--- a/erpnext/stock/doctype/landed_cost_master_detail/landed_cost_master_detail.txt
+++ b/erpnext/stock/doctype/landed_cost_master_detail/landed_cost_master_detail.txt
@@ -3,59 +3,57 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:07',
+		'creation': '2012-03-27 14:36:34',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:34',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 2
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldtype': u'Data',
 		'name': '__common__',
-		'oldfieldtype': 'Data',
-		'parent': 'Landed Cost Master Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'oldfieldtype': u'Data',
+		'parent': u'Landed Cost Master Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Landed Cost Master Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Landed Cost Master Detail'
+		'name': u'Landed Cost Master Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'account_head',
-		'idx': 1,
-		'label': 'Account Head',
-		'oldfieldname': 'account_head'
+		'doctype': u'DocField',
+		'fieldname': u'account_head',
+		'label': u'Account Head',
+		'oldfieldname': u'account_head'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'idx': 2,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'width': '300px'
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'width': u'300px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_detail/__init__.py b/erpnext/stock/doctype/landed_cost_purchase_receipt/__init__.py
similarity index 100%
copy from erpnext/stock/doctype/landed_cost_detail/__init__.py
copy to erpnext/stock/doctype/landed_cost_purchase_receipt/__init__.py
diff --git a/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.txt b/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.txt
new file mode 100644
index 0000000..ada4fef
--- /dev/null
+++ b/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.txt
@@ -0,0 +1,65 @@
+# DocType, Landed Cost Purchase Receipt
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:34',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:34',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Stock',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 5
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Landed Cost Purchase Receipt',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, Landed Cost Purchase Receipt
+	{
+		'doctype': 'DocType',
+		'name': u'Landed Cost Purchase Receipt'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'purchase_receipt',
+		'fieldtype': u'Link',
+		'label': u'Purchase Receipt',
+		'oldfieldname': u'purchase_receipt_no',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Receipt',
+		'width': u'220px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'select_pr',
+		'fieldtype': u'Check',
+		'label': u'Select PR',
+		'oldfieldname': u'include_in_landed_cost',
+		'oldfieldtype': u'Check',
+		'width': u'120px'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
index 2468247..6123ac2 100644
--- a/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
+++ b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
@@ -51,7 +51,7 @@
 			msgprint("Please enter date of shorter duration as there are too many purchase receipt, hence it cannot be loaded.", raise_exception=1)
 			
 		for i in pr:
-			ch = addchild(self.doc, 'lc_pr_details', 'LC PR Detail', 1, self.doclist)
+			ch = addchild(self.doc, 'lc_pr_details', 'Landed Cost Purchase Receipt', 1, self.doclist)
 			ch.purchase_receipt = i and i['name'] or ''
 			ch.save()
 
@@ -62,7 +62,7 @@
 		idx = 0
 		landed_cost = sql("select account_head, description from `tabLanded Cost Master Detail` where parent=%s", (self.doc.landed_cost), as_dict = 1)
 		for cost in landed_cost:
-			lct = addchild(self.doc, 'landed_cost_details', 'Landed Cost Detail', 1, self.doclist)
+			lct = addchild(self.doc, 'landed_cost_details', 'Landed Cost Item', 1, self.doclist)
 			lct.account_head = cost['account_head']
 			lct.description = cost['description']
 
@@ -98,9 +98,9 @@
 				self.prwise_cost[pr] = self.prwise_cost.get(pr, 0) + amt
 				cumulative_grand_total += amt
 				
-				pr_oc_row = sql("select name from `tabPurchase Tax Detail` where parent = %s and category = 'For Valuation' and add_deduct_tax = 'Add' and charge_type = 'Actual' and account_head = %s",(pr, lc.account_head))
+				pr_oc_row = sql("select name from `tabPurchase Taxes and Charges` where parent = %s and category = 'For Valuation' and add_deduct_tax = 'Add' and charge_type = 'Actual' and account_head = %s",(pr, lc.account_head))
 				if not pr_oc_row:	# add if not exists
-					ch = addchild(pr_obj.doc, 'purchase_tax_details', 'Purchase Tax Detail', 1)
+					ch = addchild(pr_obj.doc, 'purchase_tax_details', 'Purchase Taxes and Charges', 1)
 					ch.category = 'For Valuation'
 					ch.add_deduct_tax = 'Add'
 					ch.charge_type = 'Actual'
@@ -113,7 +113,7 @@
 					ch.idx = 500 # add at the end
 					ch.save(1)
 				else:	# overwrite if exists
-					sql("update `tabPurchase Tax Detail` set rate = %s, tax_amount = %s where name = %s and parent = %s ", (amt, amt, pr_oc_row[0][0], pr))
+					sql("update `tabPurchase Taxes and Charges` set rate = %s, tax_amount = %s where name = %s and parent = %s ", (amt, amt, pr_oc_row[0][0], pr))
 		
 		
 	def reset_other_charges(self, pr_obj):
diff --git a/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt
index 1e12afa..c8db02e 100644
--- a/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt
+++ b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt
@@ -3,59 +3,59 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-11-16 16:17:22',
+		'creation': '2012-03-27 14:36:34',
 		'docstatus': 0,
-		'modified': '2011-11-16 16:32:18',
-		'modified_by': 'Administrator',
-		'owner': 'wasim@webnotestech.com'
+		'modified': '2012-03-27 14:36:34',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1321441191',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'_last_update': u'1321441191',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 1,
 		'version': 35
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Landed Cost Wizard',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Landed Cost Wizard',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Landed Cost Wizard',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Landed Cost Wizard',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Landed Cost Wizard
 	{
 		'doctype': 'DocType',
-		'name': 'Landed Cost Wizard'
+		'name': u'Landed Cost Wizard'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'All',
+		'role': u'All',
 		'write': 0
 	},
 
@@ -64,9 +64,9 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Purchase Manager',
+		'role': u'Purchase Manager',
 		'submit': 0,
 		'write': 1
 	},
@@ -74,148 +74,154 @@
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Purchase User',
+		'role': u'Purchase User',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All'
+		'role': u'All'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Purchase User'
+		'role': u'Purchase User'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Purchase Manager'
+		'role': u'Purchase Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'Process',
-		'options': '<div class="field_description"><b>Process:</b><br>1. Fetch and select Purchase Receipt<br>2. Enter extra costs<br>3. Click on Update Landed Cost button<br> 4. Cost will be added into other charges table of selected PR proportionately based on net total<br>5. Item Valuation Rate will be recalculated</div>'
+		'doctype': u'DocField',
+		'fieldname': u'process',
+		'fieldtype': u'HTML',
+		'label': u'Process',
+		'options': u'<div class="field_description"><b>Process:</b><br>1. Fetch and select Purchase Receipt<br>2. Enter extra costs<br>3. Click on Update Landed Cost button<br> 4. Cost will be added into other charges table of selected PR proportionately based on net total<br>5. Item Valuation Rate will be recalculated</div>'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'options': 'Simple'
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'options': u'Simple'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'from_pr_date',
-		'fieldtype': 'Date',
-		'label': 'From PR Date',
+		'doctype': u'DocField',
+		'fieldname': u'from_pr_date',
+		'fieldtype': u'Date',
+		'label': u'From PR Date',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'to_pr_date',
-		'fieldtype': 'Date',
-		'label': 'To PR Date',
+		'doctype': u'DocField',
+		'fieldname': u'to_pr_date',
+		'fieldtype': u'Date',
+		'label': u'To PR Date',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'currency',
-		'fieldtype': 'Select',
-		'label': 'Currency',
-		'options': 'link:Currency',
+		'doctype': u'DocField',
+		'fieldname': u'currency',
+		'fieldtype': u'Select',
+		'label': u'Currency',
+		'options': u'link:Currency',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Get Purchase Receipt',
-		'options': 'get_purchase_receipts'
+		'doctype': u'DocField',
+		'fieldname': u'get_purchase_receipt',
+		'fieldtype': u'Button',
+		'label': u'Get Purchase Receipt',
+		'options': u'get_purchase_receipts'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'lc_pr_details',
-		'fieldtype': 'Table',
-		'label': 'LC PR Details',
-		'options': 'LC PR Detail'
+		'doctype': u'DocField',
+		'fieldname': u'lc_pr_details',
+		'fieldtype': u'Table',
+		'label': u'Landed Cost Purchase Receipts',
+		'options': u'Landed Cost Purchase Receipt'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'options': 'Simple'
+		'doctype': u'DocField',
+		'fieldname': u'section_break1',
+		'fieldtype': u'Section Break',
+		'options': u'Simple'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'landed_cost',
-		'fieldtype': 'Link',
-		'label': 'Select Landed Cost Details Master',
-		'options': 'Landed Cost Master'
+		'doctype': u'DocField',
+		'fieldname': u'landed_cost',
+		'fieldtype': u'Link',
+		'label': u'Select Landed Cost Items Master',
+		'options': u'Landed Cost Master'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Get Details',
-		'options': 'get_landed_cost_master_details'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'get_details',
+		'fieldtype': u'Button',
+		'label': u'Get Details',
+		'options': u'get_landed_cost_master_details'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'landed_cost_details',
-		'fieldtype': 'Table',
-		'label': 'Landed Cost Details',
-		'options': 'Landed Cost Detail'
+		'doctype': u'DocField',
+		'fieldname': u'landed_cost_details',
+		'fieldtype': u'Table',
+		'label': u'Landed Cost Items',
+		'options': u'Landed Cost Item'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Update PR',
-		'options': 'update_landed_cost'
+		'doctype': u'DocField',
+		'fieldname': u'update_pr',
+		'fieldtype': u'Button',
+		'label': u'Update PR',
+		'options': u'update_landed_cost'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/lc_pr_detail/lc_pr_detail.txt b/erpnext/stock/doctype/lc_pr_detail/lc_pr_detail.txt
deleted file mode 100644
index b6bcb42..0000000
--- a/erpnext/stock/doctype/lc_pr_detail/lc_pr_detail.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-# DocType, LC PR Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:07',
-		'docstatus': 0,
-		'modified': '2011-11-16 16:10:00',
-		'modified_by': 'Administrator',
-		'owner': 'wasim@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Stock',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'LC PR Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, LC PR Detail
-	{
-		'doctype': 'DocType',
-		'name': 'LC PR Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_receipt',
-		'fieldtype': 'Link',
-		'label': 'Purchase Receipt',
-		'oldfieldname': 'purchase_receipt_no',
-		'oldfieldtype': 'Link',
-		'options': 'Purchase Receipt',
-		'width': '220px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'select_pr',
-		'fieldtype': 'Check',
-		'label': 'Select PR',
-		'oldfieldname': 'include_in_landed_cost',
-		'oldfieldtype': 'Check',
-		'width': '120px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/packing_slip/packing_slip.js b/erpnext/stock/doctype/packing_slip/packing_slip.js
index d3f4fb4..559f027 100644
--- a/erpnext/stock/doctype/packing_slip/packing_slip.js
+++ b/erpnext/stock/doctype/packing_slip/packing_slip.js
@@ -21,7 +21,7 @@
 
 cur_frm.fields_dict['item_details'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
 	return 'SELECT name, description FROM `tabItem` WHERE name IN ( \
-		SELECT item_code FROM `tabDelivery Note Detail` dnd \
+		SELECT item_code FROM `tabDelivery Note Item` dnd \
 		WHERE parent="'	+ doc.delivery_note + '" AND qty > packed_qty) AND %(key)s LIKE "%s" LIMIT 50';
 }
 
@@ -42,7 +42,7 @@
 
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
 	if(doc.delivery_note) {
-		var ps_detail = getchildren('Packing Slip Detail', doc.name, 'item_details');
+		var ps_detail = getchildren('Packing Slip Item', doc.name, 'item_details');
 		if(!(flt(ps_detail[0].net_weight) && cstr(ps_detail[0].weight_uom))) {
 			cur_frm.cscript.update_item_details(doc);
 		}
@@ -85,7 +85,7 @@
 
 cur_frm.cscript.validate_calculate_item_details = function(doc) {
 	doc = locals[doc.doctype][doc.name];
-	var ps_detail = getchildren('Packing Slip Detail', doc.name, 'item_details');
+	var ps_detail = getchildren('Packing Slip Item', doc.name, 'item_details');
 
 	cur_frm.cscript.validate_duplicate_items(doc, ps_detail);
 	cur_frm.cscript.calc_net_total_pkg(doc, ps_detail);
diff --git a/erpnext/stock/doctype/packing_slip/packing_slip.py b/erpnext/stock/doctype/packing_slip/packing_slip.py
index 90a1d71..74c8036 100644
--- a/erpnext/stock/doctype/packing_slip/packing_slip.py
+++ b/erpnext/stock/doctype/packing_slip/packing_slip.py
@@ -72,7 +72,7 @@
 		"""
 			Check packed qty across packing slips and delivery note
 		"""
-		# Get Delivery Note Details, Item Quantity Dict and No. of Cases for this Packing slip
+		# Get Delivery Note Items, Item Quantity Dict and No. of Cases for this Packing slip
 		dn_details, ps_item_qty, no_of_cases = self.get_details_for_packing()
 
 		for item in dn_details:
@@ -84,7 +84,7 @@
 	def get_details_for_packing(self):
 		"""
 			Returns
-			* 'Delivery Note Details' query result as a list of dict
+			* 'Delivery Note Items' query result as a list of dict
 			* Item Quantity dict of current packing slip doc
 			* No. of Cases of this packing slip
 		"""
@@ -96,7 +96,7 @@
 
 		res = webnotes.conn.sql("""\
 			SELECT item_code, IFNULL(SUM(qty), 0) as qty, IFNULL(packed_qty, 0) as packed_qty, stock_uom
-			FROM `tabDelivery Note Detail`
+			FROM `tabDelivery Note Item`
 			WHERE parent = "%s" AND item_code IN (%s)
 			GROUP BY item_code""" % (self.doc.delivery_note, item_codes),
 			as_dict=1)
@@ -143,7 +143,7 @@
 		if event not in ['submit', 'cancel']:
 			raise Exception('update_packed_quantity can only be called on submit or cancel')
 
-		# Get Delivery Note Details, Item Quantity Dict and No. of Cases for this Packing slip
+		# Get Delivery Note Items, Item Quantity Dict and No. of Cases for this Packing slip
 		dn_details, ps_item_qty, no_of_cases = self.get_details_for_packing()
 
 		for item in dn_details:
@@ -158,7 +158,7 @@
 					Please try again or contact support@erpnext.com" % item['item_code'], raise_exception=1)
 
 			webnotes.conn.sql("""\
-				UPDATE `tabDelivery Note Detail`
+				UPDATE `tabDelivery Note Item`
 				SET packed_qty = %s
 				WHERE parent = %s AND item_code = %s""",
 				(new_packed_qty, self.doc.delivery_note, item['item_code']))			
@@ -166,7 +166,7 @@
 
 	def update_item_details(self):
 		"""
-			Fill empty columns in Packing Slip Detail
+			Fill empty columns in Packing Slip Item
 		"""
 		self.doc.from_case_no = self.get_recommended_case_no()
 
diff --git a/erpnext/stock/doctype/packing_slip/packing_slip.txt b/erpnext/stock/doctype/packing_slip/packing_slip.txt
index 6c54a9d..e380122 100644
--- a/erpnext/stock/doctype/packing_slip/packing_slip.txt
+++ b/erpnext/stock/doctype/packing_slip/packing_slip.txt
@@ -3,54 +3,55 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-30 12:13:10',
+		'creation': '2012-03-27 14:36:34',
 		'docstatus': 0,
-		'modified': '2012-02-02 10:37:15',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:45:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1328091392',
-		'autoname': 'PS.#######',
-		'colour': 'White:FFF',
+		'_last_update': u'1328091392',
+		'autoname': u'PS.#######',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Transaction',
+		'document_type': u'Transaction',
+		'is_submittable': 1,
 		'is_transaction_doc': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
 		'read_only_onload': 1,
-		'search_fields': 'delivery_note',
-		'section_style': 'Simple',
+		'search_fields': u'delivery_note',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
-		'subject': '[%(delivery_note)s] Case Nos: %(from_case_no)s - %(to_case_no)s  |  Net Weight: %(net_weight_pkg)s %(net_weight_uom)s  |  Gross Weight: %(gross_weight_pkg)s %(gross_weight_uom)s',
+		'subject': u'[%(delivery_note)s] Case Nos: %(from_case_no)s - %(to_case_no)s  |  Net Weight: %(net_weight_pkg)s %(net_weight_uom)s  |  Gross Weight: %(gross_weight_pkg)s %(gross_weight_uom)s',
 		'version': 40
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Packing Slip',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Packing Slip',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Packing Slip',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Packing Slip',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Packing Slip
 	{
 		'doctype': 'DocType',
-		'name': 'Packing Slip'
+		'name': u'Packing Slip'
 	},
 
 	# DocPerm
@@ -58,9 +59,9 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material User',
+		'role': u'Material User',
 		'submit': 1,
 		'write': 1
 	},
@@ -70,9 +71,9 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales User',
+		'role': u'Sales User',
 		'submit': 1,
 		'write': 1
 	},
@@ -82,9 +83,9 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Master Manager',
+		'role': u'Material Master Manager',
 		'submit': 1,
 		'write': 1
 	},
@@ -94,9 +95,9 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Manager',
+		'role': u'Material Manager',
 		'submit': 1,
 		'write': 1
 	},
@@ -106,61 +107,64 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Manager',
+		'role': u'Sales Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All'
+		'role': u'All'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Packing Slip Details',
+		'doctype': u'DocField',
+		'fieldname': u'packing_slip_details',
+		'fieldtype': u'Section Break',
+		'label': u'Packing Slip Items',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_note',
-		'fieldtype': 'Link',
-		'label': 'Delivery Note',
-		'options': 'Delivery Note',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_note',
+		'fieldtype': u'Link',
+		'label': u'Delivery Note',
+		'options': u'Delivery Note',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'label': 'Series',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
+		'label': u'Series',
 		'no_copy': 0,
-		'options': 'PS',
+		'options': u'PS',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1
@@ -168,147 +172,167 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'from_case_no',
-		'fieldtype': 'Data',
-		'label': 'From Case No.',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'from_case_no',
+		'fieldtype': u'Data',
+		'label': u'From Case No.',
 		'no_copy': 1,
 		'permlevel': 0,
 		'reqd': 1,
-		'width': '50px'
+		'width': u'50px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'to_case_no',
-		'fieldtype': 'Data',
-		'label': 'To Case No.',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'to_case_no',
+		'fieldtype': u'Data',
+		'label': u'To Case No.',
 		'no_copy': 1,
 		'permlevel': 0,
-		'width': '50px'
+		'width': u'50px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Package Item Details',
+		'doctype': u'DocField',
+		'fieldname': u'package_item_details',
+		'fieldtype': u'Section Break',
+		'label': u'Package Item Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_details',
-		'fieldtype': 'Table',
-		'label': 'Items',
-		'options': 'Packing Slip Detail',
+		'doctype': u'DocField',
+		'fieldname': u'item_details',
+		'fieldtype': u'Table',
+		'label': u'Items',
+		'options': u'Packing Slip Item',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Package Weight Details',
+		'doctype': u'DocField',
+		'fieldname': u'package_weight_details',
+		'fieldtype': u'Section Break',
+		'label': u'Package Weight Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'net_weight_pkg',
-		'fieldtype': 'Currency',
-		'label': 'Net Weight',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'net_weight_pkg',
+		'fieldtype': u'Currency',
+		'label': u'Net Weight',
 		'no_copy': 1,
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'net_weight_uom',
-		'fieldtype': 'Data',
-		'label': 'Net Weight UOM',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'net_weight_uom',
+		'fieldtype': u'Data',
+		'label': u'Net Weight UOM',
 		'no_copy': 1,
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break4',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'gross_weight_pkg',
-		'fieldtype': 'Currency',
-		'label': 'Gross Weight',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'gross_weight_pkg',
+		'fieldtype': u'Currency',
+		'label': u'Gross Weight',
 		'no_copy': 1,
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'gross_weight_uom',
-		'fieldtype': 'Link',
-		'label': 'Gross Weight UOM',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'gross_weight_uom',
+		'fieldtype': u'Link',
+		'label': u'Gross Weight UOM',
 		'no_copy': 1,
-		'options': 'UOM',
+		'options': u'UOM',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.amended_from',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Misc Details',
+		'depends_on': u'eval:doc.amended_from',
+		'doctype': u'DocField',
+		'fieldname': u'misc_details',
+		'fieldtype': u'Section Break',
+		'label': u'Misc Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Link',
-		'label': 'Amended From',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Link',
+		'label': u'Amended From',
 		'no_copy': 1,
-		'options': 'Packing Slip',
+		'options': u'Packing Slip',
 		'permlevel': 1,
 		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'depends_on': u'eval:doc.amended_from',
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/packing_slip_detail/packing_slip_detail.py b/erpnext/stock/doctype/packing_slip_detail/packing_slip_detail.py
deleted file mode 100644
index 2b48ed0..0000000
--- a/erpnext/stock/doctype/packing_slip_detail/packing_slip_detail.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import webnotes
-
-class DocType:
-	def __init__(self, d, dl):
-		self.doc, self.doclist = d, dl
-
-	def get_item_details(self, delivery_note):
-		res = webnotes.conn.sql("""\
-			SELECT item_name, SUM(IFNULL(qty, 0)) as total_qty,
-			IFNULL(packed_qty,	0) as packed_qty, stock_uom
-			FROM `tabDelivery Note Detail`
-			WHERE parent=%s AND item_code=%s GROUP BY item_code""",
-			(delivery_note, self.doc.item_code), as_dict=1)
-
-		if res and len(res)>0:
-			res = res[0]
-			res['qty'] = res['total_qty'] - res['packed_qty']
-			res['qty'] = self.doc.qty or (res['qty']>=0 and res['qty'] or 0)
-			del res['total_qty']
-			del res['packed_qty']
-			self.doc.fields.update(res)
-
-		res = webnotes.conn.sql("""\
-			SELECT net_weight, weight_uom FROM `tabItem`
-			WHERE name=%s""", self.doc.item_code, as_dict=1)
-
-		if res and len(res)>0:
-			res = res[0]
-			self.doc.fields.update(res)
diff --git a/erpnext/stock/doctype/packing_slip_detail/packing_slip_detail.txt b/erpnext/stock/doctype/packing_slip_detail/packing_slip_detail.txt
deleted file mode 100644
index 5a83b6f..0000000
--- a/erpnext/stock/doctype/packing_slip_detail/packing_slip_detail.txt
+++ /dev/null
@@ -1,113 +0,0 @@
-# DocType, Packing Slip Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-01-30 17:40:50',
-		'docstatus': 0,
-		'modified': '2012-01-31 13:15:40',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'PSD/.#######',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Stock',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'show_in_menu': 0,
-		'version': 9
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Packing Slip Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Packing Slip Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Packing Slip Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'label': 'Item Code',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_name',
-		'fieldtype': 'Data',
-		'label': 'Item Name',
-		'permlevel': 1,
-		'width': '200px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'label': 'Quantity',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'label': 'UOM',
-		'permlevel': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'net_weight',
-		'fieldtype': 'Float',
-		'label': 'Net Weight',
-		'permlevel': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'weight_uom',
-		'fieldtype': 'Link',
-		'label': 'Weight UOM',
-		'options': 'UOM',
-		'permlevel': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'page_break',
-		'fieldtype': 'Check',
-		'label': 'Page Break',
-		'permlevel': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/packing_slip_detail/__init__.py b/erpnext/stock/doctype/packing_slip_item/__init__.py
similarity index 100%
rename from erpnext/stock/doctype/packing_slip_detail/__init__.py
rename to erpnext/stock/doctype/packing_slip_item/__init__.py
diff --git a/erpnext/stock/doctype/packing_slip_item/packing_slip_item.py b/erpnext/stock/doctype/packing_slip_item/packing_slip_item.py
new file mode 100644
index 0000000..761c572
--- /dev/null
+++ b/erpnext/stock/doctype/packing_slip_item/packing_slip_item.py
@@ -0,0 +1,45 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import webnotes
+
+class DocType:
+	def __init__(self, d, dl):
+		self.doc, self.doclist = d, dl
+
+	def get_item_details(self, delivery_note):
+		res = webnotes.conn.sql("""\
+			SELECT item_name, SUM(IFNULL(qty, 0)) as total_qty,
+			IFNULL(packed_qty,	0) as packed_qty, stock_uom
+			FROM `tabDelivery Note Item`
+			WHERE parent=%s AND item_code=%s GROUP BY item_code""",
+			(delivery_note, self.doc.item_code), as_dict=1)
+
+		if res and len(res)>0:
+			res = res[0]
+			res['qty'] = res['total_qty'] - res['packed_qty']
+			res['qty'] = self.doc.qty or (res['qty']>=0 and res['qty'] or 0)
+			del res['total_qty']
+			del res['packed_qty']
+			self.doc.fields.update(res)
+
+		res = webnotes.conn.sql("""\
+			SELECT net_weight, weight_uom FROM `tabItem`
+			WHERE name=%s""", self.doc.item_code, as_dict=1)
+
+		if res and len(res)>0:
+			res = res[0]
+			self.doc.fields.update(res)
diff --git a/erpnext/stock/doctype/packing_slip_item/packing_slip_item.txt b/erpnext/stock/doctype/packing_slip_item/packing_slip_item.txt
new file mode 100644
index 0000000..66376a4
--- /dev/null
+++ b/erpnext/stock/doctype/packing_slip_item/packing_slip_item.txt
@@ -0,0 +1,113 @@
+# DocType, Packing Slip Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:34',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:34',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'PSD/.#######',
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Stock',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'show_in_menu': 0,
+		'version': 9
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Packing Slip Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Packing Slip Item
+	{
+		'doctype': 'DocType',
+		'name': u'Packing Slip Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'label': u'Item Code',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'label': u'Item Name',
+		'permlevel': 1,
+		'width': u'200px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Quantity',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'UOM',
+		'permlevel': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'net_weight',
+		'fieldtype': u'Float',
+		'label': u'Net Weight',
+		'permlevel': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'weight_uom',
+		'fieldtype': u'Link',
+		'label': u'Weight UOM',
+		'options': u'UOM',
+		'permlevel': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'page_break',
+		'fieldtype': u'Check',
+		'label': u'Page Break',
+		'permlevel': 0
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index 7ad9d91..7e81b88 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -14,13 +14,14 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-cur_frm.cscript.tname = "Purchase Receipt Detail";
+cur_frm.cscript.tname = "Purchase Receipt Item";
 cur_frm.cscript.fname = "purchase_receipt_details";
 cur_frm.cscript.other_fname = "purchase_tax_details";
 
-$import(Purchase Common)
-$import(Purchase Other Charges)
-$import(SMS Control)
+wn.require('erpnext/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js');
+wn.require('erpnext/buying/doctype/purchase_common/purchase_common.js');
+wn.require('erpnext/utilities/doctype/sms_control/sms_control.js');
+wn.require('erpnext/setup/doctype/notification_control/notification_control.js');
 
 //========================== On Load ================================================================
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
@@ -62,13 +63,13 @@
 
 
 	if(doc.docstatus == 1){
-		var ch = getchildren('Purchase Receipt Detail',doc.name,'purchase_receipt_details');
+		var ch = getchildren('Purchase Receipt Item',doc.name,'purchase_receipt_details');
 		allow_billing = 0;
 		for(var i in ch){
 			if(ch[i].qty > ch[i].billed_qty) allow_billing = 1;
 		}
 	 cur_frm.add_custom_button('Make Purchase Invoice', cur_frm.cscript['Make Purchase Invoice']);
-	 cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+	 cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 	}
 	else{
 		hide_field(['Repair Purchase Receipt']);
@@ -108,7 +109,7 @@
 
 // Get Purchase Order Button
 // -----------------
-cur_frm.cscript['Pull Purchase Order Details'] = function(doc, dt, dn) {
+cur_frm.cscript.pull_purchase_order_details = function(doc, dt, dn) {
 	var callback = function(r,rt) { 
 		unhide_field(['supplier_address','contact_person','supplier_name','address_display', 'contact_display', 'contact_mobile','contact_email']);				
 		refresh_many(['supplier','supplier_address','contact_person', 'supplier_name', 'address_display', 'contact_display','contact_mobile', 'contact_email', 'purchase_receipt_details', 'purchase_tax_details']);
@@ -172,7 +173,7 @@
 			'stock_qty': 0,
 			'rejected_qty' : 0
 		}
-	set_multiple('Purchase Receipt Detail', cdn, ret, 'purchase_receipt_details');
+	set_multiple('Purchase Receipt Item', cdn, ret, 'purchase_receipt_details');
 	cur_frm.cscript.calc_amount(doc, 2);
 }
 
@@ -189,7 +190,7 @@
 			'rejected_qty' : 0
 		}
 		// => Set Qty = 0 and rejected_qty = 0
-		set_multiple('Purchase Receipt Detail', cdn, ret, 'purchase_receipt_details');
+		set_multiple('Purchase Receipt Item', cdn, ret, 'purchase_receipt_details');
 		cur_frm.cscript.calc_amount(doc, 2);
 		// => Return
 		return
@@ -200,7 +201,7 @@
 			'rejected_qty':flt(d.received_qty) - flt(d.qty)
 		}
 		// => Set Rejected Qty = Received Qty - Qty
-		set_multiple('Purchase Receipt Detail', cdn, ret, 'purchase_receipt_details');
+		set_multiple('Purchase Receipt Item', cdn, ret, 'purchase_receipt_details');
 		// => Calculate Amount
 		cur_frm.cscript.calc_amount(doc, 2);
 		cur_frm.cscript.update_stock_qty(doc,cdt,cdn);
@@ -219,7 +220,7 @@
 			'rejected_qty' : 0
 		}
 		// => Set Qty = 0 and rejected_qty = 0
-		set_multiple('Purchase Receipt Detail', cdn, ret, 'purchase_receipt_details');
+		set_multiple('Purchase Receipt Item', cdn, ret, 'purchase_receipt_details');
 		cur_frm.cscript.calc_amount(doc, 2);
 		// => Return
 		return
@@ -230,7 +231,7 @@
 			'qty':flt(d.received_qty) - flt(d.rejected_qty)
 		}
 		// => Set Qty = Received Qty - Rejected Qty
-		set_multiple('Purchase Receipt Detail', cdn, ret, 'purchase_receipt_details');
+		set_multiple('Purchase Receipt Item', cdn, ret, 'purchase_receipt_details');
 		// Calculate Amount
 		cur_frm.cscript.calc_amount(doc, 2);
 		cur_frm.cscript.update_stock_qty(doc,cdt,cdn);
@@ -249,7 +250,7 @@
 //---------------------------------
 
 cur_frm.fields_dict.purchase_receipt_details.grid.get_field("qa_no").get_query = function(doc) {
-	return 'SELECT `tabQA Inspection Report`.name FROM `tabQA Inspection Report` WHERE `tabQA Inspection Report`.docstatus = 1 AND `tabQA Inspection Report`.%(key)s LIKE "%s"';
+	return 'SELECT `tabQuality Inspection`.name FROM `tabQuality Inspection` WHERE `tabQuality Inspection`.docstatus = 1 AND `tabQuality Inspection`.%(key)s LIKE "%s"';
 }
 
 // On Button Click Functions
@@ -258,15 +259,15 @@
 
 // ================================ Make Purchase Invoice ==========================================
 cur_frm.cscript['Make Purchase Invoice'] = function() {
-	n = createLocal('Payable Voucher');
+	n = createLocal('Purchase Invoice');
 	$c('dt_map', args={
-		'docs':compress_doclist([locals['Payable Voucher'][n]]),
+		'docs':compress_doclist([locals['Purchase Invoice'][n]]),
 		'from_doctype': cur_frm.doc.doctype,
-		'to_doctype':'Payable Voucher',
+		'to_doctype':'Purchase Invoice',
 		'from_docname': cur_frm.doc.name,
-		'from_to_list':"[['Purchase Receipt','Payable Voucher'],['Purchase Receipt Detail','PV Detail'],['Purchase Tax Detail','Purchase Tax Detail']]"
+		'from_to_list':"[['Purchase Receipt','Purchase Invoice'],['Purchase Receipt Item','Purchase Invoice Item'],['Purchase Taxes and Charges','Purchase Taxes and Charges']]"
 		}, function(r,rt) {
-			loaddoc('Payable Voucher', n);
+			loaddoc('Purchase Invoice', n);
 		}
 	);
 }
@@ -288,7 +289,7 @@
 
 	out ='';
 	
-	var cl = getchildren('Purchase Receipt Detail',doc.name,'purchase_receipt_details');
+	var cl = getchildren('Purchase Receipt Item',doc.name,'purchase_receipt_details');
 
 	// outer table	
 	var out='<div><table class="noborder" style="width:100%"><tr><td style="width: 50%"></td><td>';
@@ -315,7 +316,6 @@
 	return out;
 }
 
-$import(Notification Control)
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	var args = {
 		type: 'Purchase Receipt',
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index 88cfbe3..c723494 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -39,7 +39,7 @@
 		self.doc = doc
 		self.doclist = doclist
 		self.defaults = get_defaults()
-		self.tname = 'Purchase Receipt Detail'
+		self.tname = 'Purchase Receipt Item'
 		self.fname = 'purchase_receipt_details'
 		self.count = 0
 
@@ -96,7 +96,7 @@
 	# Pull Purchase Order
 	def get_po_details(self):
 		self.validate_prev_docname()
-		get_obj('DocType Mapper', 'Purchase Order-Purchase Receipt').dt_map('Purchase Order', 'Purchase Receipt', self.doc.purchase_order_no, self.doc, self.doclist, "[['Purchase Order','Purchase Receipt'],['PO Detail', 'Purchase Receipt Detail'],['Purchase Tax Detail','Purchase Tax Detail']]")
+		get_obj('DocType Mapper', 'Purchase Order-Purchase Receipt').dt_map('Purchase Order', 'Purchase Receipt', self.doc.purchase_order_no, self.doc, self.doclist, "[['Purchase Order','Purchase Receipt'],['Purchase Order Item', 'Purchase Receipt Item'],['Purchase Taxes and Charges','Purchase Taxes and Charges']]")
 
 	# validate if PO has been pulled twice
 	def validate_prev_docname(self):
@@ -155,7 +155,7 @@
 	#check in manage account if purchase order required or not.
 	# ====================================================================================
 	def po_required(self):
-		res = sql("select value from `tabSingles` where doctype = 'Manage Account' and field = 'po_required'")
+		res = sql("select value from `tabSingles` where doctype = 'Global Defaults' and field = 'po_required'")
 		if res and res[0][0]== 'Yes':
 			 for d in getlist(self.doclist,'purchase_receipt_details'):
 				 if not d.prevdoc_docname:
@@ -216,7 +216,7 @@
 				# Check If Prevdoc Doctype is Purchase Order
 				if cstr(d.prevdoc_doctype) == 'Purchase Order':
 					# get qty and pending_qty of prevdoc
-					curr_ref_qty = pc_obj.get_qty( d.doctype, 'prevdoc_detail_docname', d.prevdoc_detail_docname, 'PO Detail', 'Purchase Order - Purchase Receipt', self.doc.name)
+					curr_ref_qty = pc_obj.get_qty( d.doctype, 'prevdoc_detail_docname', d.prevdoc_detail_docname, 'Purchase Order Item', 'Purchase Order - Purchase Receipt', self.doc.name)
 					max_qty, qty, curr_qty = flt(curr_ref_qty.split('~~~')[1]), flt(curr_ref_qty.split('~~~')[0]), 0
 
 					if flt(qty) + flt(pr_qty) > flt(max_qty):
@@ -267,7 +267,7 @@
 			ins_reqd = sql("select inspection_required from `tabItem` where name = %s", (d.item_code), as_dict = 1)
 			ins_reqd = ins_reqd and ins_reqd[0]['inspection_required'] or 'No'
 			if ins_reqd == 'Yes' and not d.qa_no:
-				msgprint("Item: " + d.item_code + " requires QA Inspection. Please enter QA No or report to authorized person to create QA Inspection Report")
+				msgprint("Item: " + d.item_code + " requires QA Inspection. Please enter QA No or report to authorized person to create Quality Inspection")
 
 	# Check for Stopped status
 	def check_for_stopped_status(self, pc_obj):
@@ -304,7 +304,7 @@
 	#On Cancel
 	#----------------------------------------------------------------------------------------------------
 	def check_next_docstatus(self):
-		submit_rv = sql("select t1.name from `tabPayable Voucher` t1,`tabPV Detail` t2 where t1.name = t2.parent and t2.purchase_receipt = '%s' and t1.docstatus = 1" % (self.doc.name))
+		submit_rv = sql("select t1.name from `tabPurchase Invoice` t1,`tabPurchase Invoice Item` t2 where t1.name = t2.parent and t2.purchase_receipt = '%s' and t1.docstatus = 1" % (self.doc.name))
 		if submit_rv:
 			msgprint("Purchase Invoice : " + cstr(self.submit_rv[0][0]) + " has already been submitted !")
 			raise Exception , "Validation Error."
@@ -314,10 +314,10 @@
 		pc_obj = get_obj('Purchase Common')
 
 		self.check_for_stopped_status(pc_obj)
-		# 1.Check if Payable Voucher has been submitted against current Purchase Order
-		# pc_obj.check_docstatus(check = 'Next', doctype = 'Payable Voucher', docname = self.doc.name, detail_doctype = 'PV Detail')
+		# 1.Check if Purchase Invoice has been submitted against current Purchase Order
+		# pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Invoice', docname = self.doc.name, detail_doctype = 'Purchase Invoice Item')
 
-		submitted = sql("select t1.name from `tabPayable Voucher` t1,`tabPV Detail` t2 where t1.name = t2.parent and t2.purchase_receipt = '%s' and t1.docstatus = 1" % self.doc.name)
+		submitted = sql("select t1.name from `tabPurchase Invoice` t1,`tabPurchase Invoice Item` t2 where t1.name = t2.parent and t2.purchase_receipt = '%s' and t1.docstatus = 1" % self.doc.name)
 		if submitted:
 			msgprint("Purchase Invoice : " + cstr(submitted[0][0]) + " has already been submitted !")
 			raise Exception
@@ -331,7 +331,7 @@
 		# 4.Update Bin
 		self.update_stock(is_submit = 0)
 
-		# 5.Update Indents Pending Qty and accordingly it's Status
+		# 5.Update Purchase Requests Pending Qty and accordingly it's Status
 		pc_obj.update_prevdoc_detail(self, is_submit = 0)
 
 		# 6. Update last purchase rate
@@ -365,13 +365,13 @@
 					self.add_bom(d)
 
 			self.delete_irrelevant_raw_material()
-			#---------------calculate amt in	PR Raw Material Detail-------------
+			#---------------calculate amt in	Purchase Receipt Item Supplied-------------
 			self.calculate_amount(d)
 
 
 	def add_bom(self, d):
 		#----- fetching default bom from Bill of Materials instead of Item Master --
-		bom_det = sql("select t1.item, t2.item_code, t2.qty_consumed_per_unit, t2.moving_avg_rate, t2.value_as_per_mar, t2.stock_uom, t2.name, t2.description from `tabBill Of Materials` t1, `tabBOM Material` t2 where t2.parent = t1.name and t1.item = '%s' and ifnull(t1.is_default,0) = 1 and t1.docstatus = 1 and t2.docstatus =1" % d.item_code)
+		bom_det = sql("select t1.item, t2.item_code, t2.qty_consumed_per_unit, t2.moving_avg_rate, t2.value_as_per_mar, t2.stock_uom, t2.name, t2.description from `tabBOM` t1, `tabBOM Item` t2 where t2.parent = t1.name and t1.item = '%s' and ifnull(t1.is_default,0) = 1 and t1.docstatus = 1 and t2.docstatus =1" % d.item_code)
 		if not bom_det:
 			msgprint("No default BOM exists for item: %s" % d.item_code)
 			raise Exception
@@ -380,9 +380,9 @@
 			chgd_rqd_qty = []
 			for i in bom_det:
 
-				if i and not sql("select name from `tabPR Raw Material Detail` where reference_name = '%s' and bom_detail_no = '%s' and parent = '%s' " %(d.name, i[6], self.doc.name)):
+				if i and not sql("select name from `tabPurchase Receipt Item Supplied` where reference_name = '%s' and bom_detail_no = '%s' and parent = '%s' " %(d.name, i[6], self.doc.name)):
 
-					rm_child = addchild(self.doc, 'pr_raw_material_details', 'PR Raw Material Detail', 1, self.doclist)
+					rm_child = addchild(self.doc, 'pr_raw_material_details', 'Purchase Receipt Item Supplied', 1, self.doclist)
 
 					rm_child.reference_name = d.name
 					rm_child.bom_detail_no = i and i[6] or ''
@@ -419,7 +419,7 @@
 	#--------------------------------------------------------------
 	def delete_irrelevant_raw_material(self):
 		for d in getlist(self.doclist,'pr_raw_material_details'):
-			if not sql("select name from `tabPurchase Receipt Detail` where name = '%s' and parent = '%s' and item_code = '%s'" % (d.reference_name, self.doc.name, d.main_item_code)):
+			if not sql("select name from `tabPurchase Receipt Item` where name = '%s' and parent = '%s' and item_code = '%s'" % (d.reference_name, self.doc.name, d.main_item_code)):
 				d.parent = 'old_par:'+self.doc.name
 				d.save()
 
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.txt b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.txt
index 6724b69..cb66d6f 100755
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.txt
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:15',
+		'creation': '2012-03-27 14:36:34',
 		'docstatus': 0,
-		'modified': '2012-03-02 12:26:39',
+		'modified': '2012-03-27 18:51:48',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -17,6 +17,7 @@
 		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'document_type': u'Transaction',
+		'is_submittable': 1,
 		'is_transaction_doc': 1,
 		'module': u'Stock',
 		'name': '__common__',
@@ -26,7 +27,7 @@
 		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'subject': u'From %(supplier_name)s against %(purchase_order)s on %(posting_date)s',
-		'version': 325
+		'version': 326
 	},
 
 	# These values are common for all DocField
@@ -56,54 +57,6 @@
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
@@ -137,11 +90,60 @@
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 1,
+		'write': 1
+	},
+
 	# DocField
 	{
 		'colour': u'White:FFF',
 		'description': u'Enter Basic Information about the Purchase Receipt',
 		'doctype': u'DocField',
+		'fieldname': u'basic_info',
 		'fieldtype': u'Section Break',
 		'label': u'Basic Info',
 		'oldfieldtype': u'Section Break',
@@ -151,6 +153,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -296,6 +299,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break1',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -435,6 +439,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'items',
 		'fieldtype': u'Section Break',
 		'label': u'Items',
 		'oldfieldtype': u'Section Break',
@@ -511,6 +516,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break2',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0
@@ -536,6 +542,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'pull_purchase_order_details',
 		'fieldtype': u'Button',
 		'label': u'Pull Purchase Order Details',
 		'oldfieldtype': u'Button',
@@ -548,6 +555,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'section_break0',
 		'fieldtype': u'Section Break',
 		'oldfieldtype': u'Section Break',
 		'options': u'Simple',
@@ -560,10 +568,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'purchase_receipt_details',
 		'fieldtype': u'Table',
-		'label': u'Purchase Receipt Details',
+		'label': u'Purchase Receipt Items',
 		'oldfieldname': u'purchase_receipt_details',
 		'oldfieldtype': u'Table',
-		'options': u'Purchase Receipt Detail',
+		'options': u'Purchase Receipt Item',
 		'permlevel': 0,
 		'print_hide': 0,
 		'reqd': 0
@@ -586,6 +594,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'recalculate_values',
 		'fieldtype': u'Button',
 		'label': u'Re-Calculate Values',
 		'oldfieldtype': u'Button',
@@ -596,8 +605,9 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'description': u'Add / Edit taxes and other charges',
+		'description': u'Add / Edit Taxes and Charges',
 		'doctype': u'DocField',
+		'fieldname': u'taxes',
 		'fieldtype': u'Section Break',
 		'label': u'Taxes',
 		'oldfieldtype': u'Section Break',
@@ -607,14 +617,14 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'description': u'If you have created a standard template in Other Charges master, select one and click on the button below.',
+		'description': u'If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.',
 		'doctype': u'DocField',
 		'fieldname': u'purchase_other_charges',
 		'fieldtype': u'Link',
-		'label': u'Purchase Other Charges',
+		'label': u'Purchase Taxes and Charges',
 		'oldfieldname': u'purchase_other_charges',
 		'oldfieldtype': u'Link',
-		'options': u'Purchase Other Charges',
+		'options': u'Purchase Taxes and Charges Master',
 		'permlevel': 0,
 		'print_hide': 1
 	},
@@ -622,6 +632,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_tax_detail',
 		'fieldtype': u'Button',
 		'label': u'Get Tax Detail',
 		'oldfieldtype': u'Button',
@@ -635,16 +646,17 @@
 		'doctype': u'DocField',
 		'fieldname': u'purchase_tax_details',
 		'fieldtype': u'Table',
-		'label': u'Purchase Tax Details',
+		'label': u'Purchase Taxes and Charges',
 		'oldfieldname': u'purchase_tax_details',
 		'oldfieldtype': u'Table',
-		'options': u'Purchase Tax Detail',
+		'options': u'Purchase Taxes and Charges',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'calculate_tax',
 		'fieldtype': u'Button',
 		'label': u'Calculate Tax',
 		'oldfieldtype': u'Button',
@@ -668,6 +680,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'tax_calculation',
 		'fieldtype': u'HTML',
 		'label': u'Tax Calculation',
 		'oldfieldtype': u'HTML',
@@ -680,6 +693,7 @@
 		'colour': u'White:FFF',
 		'description': u'Detailed Breakup of the totals',
 		'doctype': u'DocField',
+		'fieldname': u'totals',
 		'fieldtype': u'Section Break',
 		'label': u'Totals',
 		'oldfieldtype': u'Section Break',
@@ -730,7 +744,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_added',
 		'fieldtype': u'Currency',
-		'label': u'Other Charges Added',
+		'label': u'Taxes and Charges Added',
 		'oldfieldname': u'other_charges_added',
 		'oldfieldtype': u'Currency',
 		'permlevel': 1,
@@ -742,7 +756,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_deducted',
 		'fieldtype': u'Currency',
-		'label': u'Other Charges Deducted',
+		'label': u'Taxes and Charges Deducted',
 		'oldfieldname': u'other_charges_deducted',
 		'oldfieldtype': u'Currency',
 		'permlevel': 1,
@@ -752,6 +766,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break3',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -799,7 +814,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_added_import',
 		'fieldtype': u'Currency',
-		'label': u'Other Charges Added (Import)',
+		'label': u'Taxes and Charges Added (Import)',
 		'oldfieldname': u'other_charges_added_import',
 		'oldfieldtype': u'Currency',
 		'permlevel': 1,
@@ -811,7 +826,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'other_charges_deducted_import',
 		'fieldtype': u'Currency',
-		'label': u'Other Charges Deducted (Import)',
+		'label': u'Taxes and Charges Deducted (Import)',
 		'oldfieldname': u'other_charges_deducted_import',
 		'oldfieldtype': u'Currency',
 		'permlevel': 1,
@@ -821,10 +836,11 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'description': u'Add Terms and Conditions for the Purchase Receipt. You can also prepare a master Term Sheet and use the Template.',
+		'description': u'Add Terms and Conditions for the Purchase Receipt. You can also prepare a Terms and Conditions Master and use the Template.',
 		'doctype': u'DocField',
+		'fieldname': u'terms_section_break',
 		'fieldtype': u'Section Break',
-		'label': u'Terms',
+		'label': u'Terms and Conditions',
 		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
@@ -834,10 +850,10 @@
 		'doctype': u'DocField',
 		'fieldname': u'tc_name',
 		'fieldtype': u'Link',
-		'label': u'Select Terms',
+		'label': u'Select Terms and Conditions',
 		'oldfieldname': u'tc_name',
 		'oldfieldtype': u'Link',
-		'options': u'Term',
+		'options': u'Terms and Conditions',
 		'permlevel': 0,
 		'print_hide': 1
 	},
@@ -845,8 +861,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_terms',
 		'fieldtype': u'Button',
-		'label': u'Get Terms',
+		'label': u'Get Terms and Conditions',
 		'oldfieldtype': u'Button',
 		'options': u'get_tc_details',
 		'permlevel': 0
@@ -855,8 +872,9 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'terms_html',
 		'fieldtype': u'HTML',
-		'label': u'Terms HTML',
+		'label': u'Terms and Conditions HTML',
 		'oldfieldtype': u'HTML',
 		'options': u'You can add Terms and Notes that will be printed in the Transaction',
 		'permlevel': 0,
@@ -868,7 +886,7 @@
 		'doctype': u'DocField',
 		'fieldname': u'terms',
 		'fieldtype': u'Text Editor',
-		'label': u'Terms1',
+		'label': u'Terms and Conditions1',
 		'oldfieldname': u'terms',
 		'oldfieldtype': u'Text Editor',
 		'permlevel': 0
@@ -879,6 +897,7 @@
 		'colour': u'White:FFF',
 		'description': u'Filing in Additional Information about the Purchase Receipt will help you analyze your data better.',
 		'doctype': u'DocField',
+		'fieldname': u'more_info',
 		'fieldtype': u'Section Break',
 		'label': u'More Info',
 		'oldfieldtype': u'Section Break',
@@ -926,6 +945,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break4',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -937,6 +957,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'other_details',
 		'fieldtype': u'HTML',
 		'hidden': 1,
 		'label': u'Other Details',
@@ -1006,6 +1027,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'transporter_info',
 		'fieldtype': u'Section Break',
 		'label': u'Transporter Info',
 		'permlevel': 0
@@ -1057,6 +1079,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break5',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'width': u'50%'
@@ -1099,6 +1122,7 @@
 		'colour': u'White:FFF',
 		'description': u'Following table will show values if items are sub - contracted. These values will be fetched from the master of "Bill of Materials" of sub - contracted items.',
 		'doctype': u'DocField',
+		'fieldname': u'raw_material_details',
 		'fieldtype': u'Section Break',
 		'label': u'Raw Material Details',
 		'oldfieldtype': u'Section Break',
@@ -1109,6 +1133,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_current_stock',
 		'fieldtype': u'Button',
 		'label': u'Get Current Stock',
 		'oldfieldtype': u'Button',
@@ -1122,11 +1147,11 @@
 		'doctype': u'DocField',
 		'fieldname': u'pr_raw_material_details',
 		'fieldtype': u'Table',
-		'label': u'PR Raw Material Details',
+		'label': u'Purchase Receipt Item Supplieds',
 		'no_copy': 1,
 		'oldfieldname': u'pr_raw_material_details',
 		'oldfieldtype': u'Table',
-		'options': u'PR Raw Material Detail',
+		'options': u'Purchase Receipt Item Supplied',
 		'permlevel': 1,
 		'print_hide': 1
 	},
@@ -1136,6 +1161,7 @@
 		'allow_on_submit': 1,
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'repair_purchase_receipt',
 		'fieldtype': u'Button',
 		'label': u'Repair Purchase Receipt',
 		'oldfieldtype': u'Button',
@@ -1143,4 +1169,4 @@
 		'permlevel': 0,
 		'print_hide': 1
 	}
-]
\ No newline at end of file
+]
diff --git a/erpnext/stock/doctype/purchase_receipt_detail/purchase_receipt_detail.txt b/erpnext/stock/doctype/purchase_receipt_detail/purchase_receipt_detail.txt
deleted file mode 100755
index 815864f..0000000
--- a/erpnext/stock/doctype/purchase_receipt_detail/purchase_receipt_detail.txt
+++ /dev/null
@@ -1,582 +0,0 @@
-# DocType, Purchase Receipt Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:16',
-		'docstatus': 0,
-		'modified': '2012-03-05 17:44:23',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': u'GRND/.#######',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': u'Stock',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 78
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Purchase Receipt Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, Purchase Receipt Detail
-	{
-		'doctype': 'DocType',
-		'name': u'Purchase Receipt Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item Code',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_name',
-		'fieldtype': u'Data',
-		'in_filter': 0,
-		'label': u'Item Name',
-		'oldfieldname': u'item_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'received_qty',
-		'fieldtype': u'Currency',
-		'label': u'Recd Quantity',
-		'oldfieldname': u'received_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'qty',
-		'fieldtype': u'Currency',
-		'label': u'Accepted Quantity',
-		'oldfieldname': u'qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'rejected_qty',
-		'fieldtype': u'Currency',
-		'in_filter': 0,
-		'label': u'Rejected Quantity',
-		'oldfieldname': u'rejected_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'import_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Ref Rate ',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'discount_rate',
-		'fieldtype': u'Currency',
-		'label': u'Discount  %',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'import_rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate',
-		'oldfieldname': u'import_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'import_amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount',
-		'oldfieldname': u'import_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Ref Rate *',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'purchase_rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate *(Default Curr.)',
-		'oldfieldname': u'purchase_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount (Default Curr.)',
-		'oldfieldname': u'amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'warehouse',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'label': u'Accepted Warehouse',
-		'oldfieldname': u'warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'uom',
-		'fieldtype': u'Link',
-		'label': u'UOM',
-		'oldfieldname': u'uom',
-		'oldfieldtype': u'Link',
-		'options': u'UOM',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'conversion_factor',
-		'fieldtype': u'Currency',
-		'label': u'Conversion Factor',
-		'oldfieldname': u'conversion_factor',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'stock_uom',
-		'fieldtype': u'Data',
-		'label': u'Stock UOM',
-		'oldfieldname': u'stock_uom',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'serial_no',
-		'fieldtype': u'Text',
-		'in_filter': 1,
-		'label': u'Serial No',
-		'no_copy': 1,
-		'oldfieldname': u'serial_no',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'print_hide': 0,
-		'report_hide': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'batch_no',
-		'fieldtype': u'Link',
-		'label': u'Batch No',
-		'oldfieldname': u'batch_no',
-		'oldfieldtype': u'Link',
-		'options': u'Batch',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'rejected_warehouse',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'label': u'Rejected Warehouse',
-		'no_copy': 1,
-		'oldfieldname': u'rejected_warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'schedule_date',
-		'fieldtype': u'Date',
-		'label': u'Schedule date',
-		'no_copy': 1,
-		'oldfieldname': u'schedule_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'project_name',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Project Name',
-		'options': u'Project',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'qa_no',
-		'fieldtype': u'Link',
-		'label': u'QA No',
-		'no_copy': 1,
-		'oldfieldname': u'qa_no',
-		'oldfieldtype': u'Link',
-		'options': u'QA Inspection Report',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'brand',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'label': u'Brand',
-		'oldfieldname': u'brand',
-		'oldfieldtype': u'Link',
-		'options': u'Brand',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_group',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Item Group',
-		'oldfieldname': u'item_group',
-		'oldfieldtype': u'Link',
-		'options': u'Item Group',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'stock_qty',
-		'fieldtype': u'Currency',
-		'label': u'Stock Qty',
-		'oldfieldname': u'stock_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_doctype',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'label': u'Prevdoc Doctype',
-		'oldfieldname': u'prevdoc_doctype',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_docname',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'PO No',
-		'no_copy': 0,
-		'oldfieldname': u'prevdoc_docname',
-		'oldfieldtype': u'Link',
-		'options': u'Purchase Order',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_date',
-		'fieldtype': u'Date',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'PO Date',
-		'oldfieldname': u'prevdoc_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'rm_supp_cost',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'in_filter': 0,
-		'label': u'Raw Materials Supplied Cost',
-		'oldfieldname': u'rm_supp_cost',
-		'oldfieldtype': u'Currency',
-		'permlevel': 2,
-		'print_hide': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'item_tax_amount',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Item Tax Amount',
-		'no_copy': 1,
-		'oldfieldname': u'item_tax_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_detail_docname',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'PO Detail No',
-		'no_copy': 0,
-		'oldfieldname': u'prevdoc_detail_docname',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'billed_qty',
-		'fieldtype': u'Currency',
-		'label': u'Billed Quantity',
-		'no_copy': 1,
-		'oldfieldname': u'billed_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'valuation_rate',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'in_filter': 0,
-		'label': u'Valuation Rate',
-		'no_copy': 1,
-		'oldfieldname': u'valuation_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'80px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Tax detail table fetched from item master as a string and stored in this field.\nUsed for Purchase Other Charges',
-		'doctype': u'DocField',
-		'fieldname': u'item_tax_rate',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'in_filter': 0,
-		'label': u'Item Tax Rate',
-		'oldfieldname': u'item_tax_rate',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldname': u'page_break',
-		'fieldtype': u'Check',
-		'label': u'Page Break',
-		'oldfieldname': u'page_break',
-		'oldfieldtype': u'Check',
-		'permlevel': 0,
-		'print_hide': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/purchase_receipt_detail/__init__.py b/erpnext/stock/doctype/purchase_receipt_item/__init__.py
similarity index 100%
rename from erpnext/stock/doctype/purchase_receipt_detail/__init__.py
rename to erpnext/stock/doctype/purchase_receipt_item/__init__.py
diff --git a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
new file mode 100755
index 0000000..1a2c383
--- /dev/null
+++ b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
@@ -0,0 +1,582 @@
+# DocType, Purchase Receipt Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:35',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:35',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'GRND/.#######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Stock',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 78
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Purchase Receipt Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Purchase Receipt Item
+	{
+		'doctype': 'DocType',
+		'name': u'Purchase Receipt Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'in_filter': 0,
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'received_qty',
+		'fieldtype': u'Currency',
+		'label': u'Recd Quantity',
+		'oldfieldname': u'received_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Accepted Quantity',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'rejected_qty',
+		'fieldtype': u'Currency',
+		'in_filter': 0,
+		'label': u'Rejected Quantity',
+		'oldfieldname': u'rejected_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'search_index': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'import_ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Ref Rate ',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'discount_rate',
+		'fieldtype': u'Currency',
+		'label': u'Discount  %',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'import_rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'import_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'import_amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'import_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'purchase_ref_rate',
+		'fieldtype': u'Currency',
+		'label': u'Ref Rate *',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate *(Default Curr.)',
+		'oldfieldname': u'purchase_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount (Default Curr.)',
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 0,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'label': u'Accepted Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
+		'permlevel': 0,
+		'print_hide': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'uom',
+		'fieldtype': u'Link',
+		'label': u'UOM',
+		'oldfieldname': u'uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'conversion_factor',
+		'fieldtype': u'Currency',
+		'label': u'Conversion Factor',
+		'oldfieldname': u'conversion_factor',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'reqd': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'Stock UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Text',
+		'in_filter': 1,
+		'label': u'Serial No',
+		'no_copy': 1,
+		'oldfieldname': u'serial_no',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'print_hide': 0,
+		'report_hide': 0
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'batch_no',
+		'fieldtype': u'Link',
+		'label': u'Batch No',
+		'oldfieldname': u'batch_no',
+		'oldfieldtype': u'Link',
+		'options': u'Batch',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'rejected_warehouse',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Rejected Warehouse',
+		'no_copy': 1,
+		'oldfieldname': u'rejected_warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'schedule_date',
+		'fieldtype': u'Date',
+		'label': u'Schedule date',
+		'no_copy': 1,
+		'oldfieldname': u'schedule_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'print_hide': 1,
+		'report_hide': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'project_name',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Project Name',
+		'options': u'Project',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'qa_no',
+		'fieldtype': u'Link',
+		'label': u'QA No',
+		'no_copy': 1,
+		'oldfieldname': u'qa_no',
+		'oldfieldtype': u'Link',
+		'options': u'Quality Inspection',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Brand',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Link',
+		'options': u'Brand',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'stock_qty',
+		'fieldtype': u'Currency',
+		'label': u'Stock Qty',
+		'oldfieldname': u'stock_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'print_hide': 1,
+		'trigger': u'Client',
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_doctype',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Prevdoc Doctype',
+		'oldfieldname': u'prevdoc_doctype',
+		'oldfieldtype': u'Data',
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_docname',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 1,
+		'label': u'PO No',
+		'no_copy': 0,
+		'oldfieldname': u'prevdoc_docname',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Order',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 0,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_date',
+		'fieldtype': u'Date',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'PO Date',
+		'oldfieldname': u'prevdoc_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rm_supp_cost',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'in_filter': 0,
+		'label': u'Raw Materials Supplied Cost',
+		'oldfieldname': u'rm_supp_cost',
+		'oldfieldtype': u'Currency',
+		'permlevel': 2,
+		'print_hide': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_tax_amount',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'label': u'Item Tax Amount',
+		'no_copy': 1,
+		'oldfieldname': u'item_tax_amount',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'reqd': 0,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_detail_docname',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'in_filter': 1,
+		'label': u'Purchase Order Item No',
+		'no_copy': 0,
+		'oldfieldname': u'prevdoc_detail_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'default': u'0.00',
+		'doctype': u'DocField',
+		'fieldname': u'billed_qty',
+		'fieldtype': u'Currency',
+		'label': u'Billed Quantity',
+		'no_copy': 1,
+		'oldfieldname': u'billed_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'100px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'valuation_rate',
+		'fieldtype': u'Currency',
+		'hidden': 1,
+		'in_filter': 0,
+		'label': u'Valuation Rate',
+		'no_copy': 1,
+		'oldfieldname': u'valuation_rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': u'80px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'description': u'Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges',
+		'doctype': u'DocField',
+		'fieldname': u'item_tax_rate',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'in_filter': 0,
+		'label': u'Item Tax Rate',
+		'oldfieldname': u'item_tax_rate',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'doctype': u'DocField',
+		'fieldname': u'page_break',
+		'fieldtype': u'Check',
+		'label': u'Page Break',
+		'oldfieldname': u'page_break',
+		'oldfieldtype': u'Check',
+		'permlevel': 0,
+		'print_hide': 1
+	}
+]
diff --git a/erpnext/stock/doctype/ref_rate_detail/__init__.py b/erpnext/stock/doctype/ref_rate_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/stock/doctype/ref_rate_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/stock/doctype/ref_rate_detail/ref_rate_detail.txt b/erpnext/stock/doctype/ref_rate_detail/ref_rate_detail.txt
deleted file mode 100644
index 3f9b5a7..0000000
--- a/erpnext/stock/doctype/ref_rate_detail/ref_rate_detail.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-# DocType, Ref Rate Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:19',
-		'docstatus': 0,
-		'modified': '2011-08-31 11:36:41',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'RFD/.#####',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'in_create': 1,
-		'istable': 1,
-		'module': 'Stock',
-		'name': '__common__',
-		'read_only': 0,
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 3
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'in_filter': 1,
-		'name': '__common__',
-		'parent': 'Ref Rate Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'search_index': 1
-	},
-
-	# DocType, Ref Rate Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Ref Rate Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'price_list_name',
-		'fieldtype': 'Select',
-		'label': 'Price List Name',
-		'oldfieldname': 'price_list_name',
-		'oldfieldtype': 'Select',
-		'options': 'link:Price List',
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'ref_rate',
-		'fieldtype': 'Currency',
-		'label': 'Ref Rate',
-		'oldfieldname': 'ref_rate',
-		'oldfieldtype': 'Currency',
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'ref_currency',
-		'fieldtype': 'Select',
-		'label': 'Currency',
-		'oldfieldname': 'ref_currency',
-		'oldfieldtype': 'Select',
-		'options': 'link:Currency',
-		'reqd': 1
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/sales_and_purchase_return_wizard/__init__.py b/erpnext/stock/doctype/sales_and_purchase_return_tool/__init__.py
similarity index 100%
rename from erpnext/stock/doctype/sales_and_purchase_return_wizard/__init__.py
rename to erpnext/stock/doctype/sales_and_purchase_return_tool/__init__.py
diff --git a/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.js b/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.js
new file mode 100644
index 0000000..771cb82
--- /dev/null
+++ b/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.js
@@ -0,0 +1,229 @@
+// ERPNext - web based ERP (http://erpnext.com)
+// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+// Onload
+//-------------------------------
+cur_frm.cscript.onload = function(doc,dt,dn){
+	if(!doc.return_date) set_multiple(dt,dn,{return_date:get_today()});
+	doc.delivery_note_no = '';
+	doc.purchase_receipt_no = '';
+	doc.sales_invoice_no = '';
+	doc.return_type ='';
+	refresh_many(['delivery_note_no', 'sales_invoice_no', 'purchase_receipt_no', 'return_type']);
+}
+
+// Link field query
+//--------------------------------
+cur_frm.fields_dict.delivery_note_no.get_query = function(doc) {
+	return 'SELECT DISTINCT `tabDelivery Note`.name FROM `tabDelivery Note` WHERE `tabDelivery Note`.docstatus = 1 AND `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.name desc LIMIT 50';
+}
+
+cur_frm.fields_dict.sales_invoice_no.get_query = function(doc) {
+	return 'SELECT DISTINCT `tabSales Invoice`.name FROM `tabSales Invoice` WHERE `tabSales Invoice`.docstatus = 1 AND `tabSales Invoice`.%(key)s LIKE "%s" ORDER BY `tabSales Invoice`.name desc LIMIT 50';
+}
+
+cur_frm.fields_dict.purchase_receipt_no.get_query = function(doc) {
+	return 'SELECT DISTINCT `tabPurchase Receipt`.name FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.docstatus = 1 AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.name desc LIMIT 50';
+}
+
+// Hide/unhide based on return type
+//----------------------------------
+cur_frm.cscript.return_type = function(doc, cdt, cdn) {
+	var cp = wn.control_panel;
+	hide_field(['purchase_receipt_no', 'delivery_note_no', 'sales_invoice_no',
+		'return_details', 'Get Items', 'Make Excise Invoice', 'Make Stock Entry',
+		'Make Debit Note', 'Make Credit Note']);
+
+	if(doc.return_type == 'Sales Return') {
+		unhide_field(['delivery_note_no', 'sales_invoice_no', 'Get Items',
+			'return_details', 'Make Credit Note', 'Make Stock Entry']);
+		
+		if(cp.country == 'India') {	unhide_field(['Make Excise Invoice']); }
+
+	} else if(doc.return_type == 'Purchase Return') {
+		unhide_field(['purchase_receipt_no', 'Get Items', 'return_details',
+			'Make Debit Note', 'Make Stock Entry']);
+
+		if(cp.country == 'India') {	unhide_field(['Make Excise Invoice']); }
+	}
+	
+	cur_frm.cscript.clear_fields(doc);
+}
+
+// Create item table
+//-------------------------------
+cur_frm.cscript.get_items = function(doc, cdt, cdn) {
+	flag = 0
+	if(doc.return_type == 'Sales Return') {
+		if (doc.delivery_note_no && doc.sales_invoice_no) {
+			msgprint("You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.");
+			flag = 1;
+		} else if (!doc.delivery_note_no && !doc.sales_invoice_no) {
+			msgprint("Please enter Delivery Note No or Sales Invoice No to proceed");
+			flag = 1;
+		}
+	} else if (doc.return_type == 'Purchase Return' && !doc.purchase_receipt_no) {
+		msgprint("Please enter Purchase Receipt No to proceed");
+		flag = 1;
+	}
+	if (!flag)
+		$c_obj(make_doclist(doc.doctype, doc.name),'pull_item_details','', function(r, rt) {
+			refresh_many(['return_details', 'cust_supp', 'cust_supp_name', 'cust_supp_address']);
+		});
+}
+
+// Clear fields
+//-------------------------------
+cur_frm.cscript.clear_fields = function(doc) {
+	doc.purchase_receipt_no, doc.delivery_note_no, doc.sales_invoice_no = '', '', '';
+	var cl = getchildren('Sales and Purchase Return Item', doc.name, 'return_details')
+	if(cl.length) $c_obj(make_doclist(doc.doctype, doc.name),'clear_return_table','', function(r, rt) {refresh_field('return_details')});
+	refresh_many(['delivery_note_no', 'sales_invoice_no', 'purchase_receipt_no', 'return_details']);
+}
+
+// Make Stock Entry
+//-------------------------------
+cur_frm.cscript.make_stock_entry = function(doc, cdt, cdn) {
+	var cl = getchildren('Sales and Purchase Return Item', doc.name, 'return_details');
+	if (!cl.length)
+		msgprint("Item table can not be blank. Please click on 'Get Items'.");
+	else if (!cur_frm.cscript.validate_returned_qty(cl)) {
+		se = cur_frm.cscript.map_parent_fields(doc,cdt,cdn);
+		cur_frm.cscript.map_child_fields(cl, se);
+		loaddoc('Stock Entry', se.name);
+	}
+}
+
+// Validate returned qty
+//---------------------------
+cur_frm.cscript.validate_returned_qty = function(cl) {
+	flag = 0
+	for(var i = 0; i<cl.length; i++){
+		if(cl[i].returned_qty > cl[i].qty) {
+			msgprint("Returned Qty can not be greater than qty. Please check for item: " + cl[i].item_code);
+			flag = 1
+		}
+	}
+	return flag
+}
+
+
+// map parent fields of stock entry
+//----------------------------------
+cur_frm.cscript.map_parent_fields = function(doc, cdt, cdn) {
+	var se = LocalDB.create('Stock Entry');
+	se = locals['Stock Entry'][se];
+	se.posting_date = dateutil.obj_to_str(new Date());
+	se.transfer_date = dateutil.obj_to_str(new Date());
+	se.fiscal_year = sys_defaults.fiscal_year;
+	se.purpose = doc.return_type;
+	se.remarks = doc.return_type + ' of ' + (doc.delivery_note_no || doc.sales_invoice_no || doc.purchase_receipt_no);
+	if(doc.return_type == 'Sales Return'){
+		se.delivery_note_no = doc.delivery_note_no;
+		se.sales_invoice_no = doc.sales_invoice_no;
+		se.customer = doc.cust_supp_name;
+		se.customer_name = doc.cust_supp_name;
+		se.customer_address = doc.cust_supp_address;
+	}
+	else if(doc.return_type == 'Purchase Return'){
+		se.purchase_receipt_no = doc.purchase_receipt_no;
+		se.supplier = doc.cust_supp_name;
+		se.supplier_name = doc.cust_supp_name;
+		se.supplier_address = doc.cust_supp_address;
+	}
+	return se
+}
+
+// map child fields of stock entry
+//---------------------------------
+cur_frm.cscript.map_child_fields = function(cl, se) {
+	for(var i = 0; i<cl.length; i++){
+		if (cl[i].returned_qty) {
+			var d1 = LocalDB.add_child(se, 'Stock Entry Detail', 'mtn_details');
+			d1.detail_name = cl[i].detail_name;
+			d1.item_code = cl[i].item_code;
+			d1.description = cl[i].description;
+			d1.transfer_qty = cl[i].returned_qty;
+			d1.qty = cl[i].returned_qty;
+			d1.stock_uom = cl[i].uom;
+			d1.uom = cl[i].uom;
+			d1.conversion_factor = 1;
+			d1.incoming_rate = cl[i].rate;
+			d1.serial_no = cl[i].serial_no;
+			d1.batch_no = cl[i].batch_no;
+		}
+	}
+}
+
+// Make excise voucher
+//-------------------------------
+cur_frm.cscript.make_excise_invoice = function(doc) {
+	var excise = LocalDB.create('Journal Voucher');
+	excise = locals['Journal Voucher'][excise];
+	excise.voucher_type = 'Excise Voucher';
+	loaddoc('Journal Voucher',excise.name);
+}
+// Make debit note
+//------------------------------
+cur_frm.cscript.make_debit_note = function(doc) {
+	var doclist = make_doclist(doc.doctype, doc.name);
+	$c('accounts.get_new_jv_details', {
+			doclist: JSON.stringify(doclist),
+			fiscal_year: sys_defaults.fiscal_year
+		}, function(r, rt) {
+		if(!r.exc) {
+			cur_frm.cscript.make_jv(doc, 'Debit Note', r.message);
+		}
+	});
+}
+// Make credit note
+//------------------------------
+cur_frm.cscript.make_credit_note = function(doc) {
+	var doclist = make_doclist(doc.doctype, doc.name);
+	$c('accounts.get_new_jv_details', {
+			doclist: JSON.stringify(doclist),
+			fiscal_year: sys_defaults.fiscal_year
+		}, function(r, rt) {
+		if(!r.exc) {
+			cur_frm.cscript.make_jv(doc, 'Credit Note', r.message);
+		}
+	});
+}
+
+
+// Make JV
+//--------------------------------
+cur_frm.cscript.make_jv = function(doc, dr_or_cr, children) {
+	var jv = LocalDB.create('Journal Voucher');
+	jv = locals['Journal Voucher'][jv];
+	
+	jv.voucher_type = dr_or_cr;
+	jv.company = sys_defaults.company;
+	jv.fiscal_year = sys_defaults.fiscal_year;
+	jv.is_opening = 'No';
+	jv.posting_date = dateutil.obj_to_str(new Date());
+	jv.voucher_date = dateutil.obj_to_str(new Date());
+
+	// Add children
+	if(children) {
+		for(var i=0; i<children.length; i++) {
+			var ch = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
+			$.extend(ch, children[i]);
+		}
+	}
+
+	loaddoc('Journal Voucher', jv.name);
+}
diff --git a/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.py b/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.py
new file mode 100644
index 0000000..fbeb4a5
--- /dev/null
+++ b/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.py
@@ -0,0 +1,77 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+class DocType :
+  def __init__(self, doc, doclist=[]):
+    self.doc = doc
+    self.doclist = doclist
+
+  # Pull Item Details
+  # ---------------------------
+  def pull_item_details(self):
+    if self.doc.return_type == 'Sales Return':
+      if self.doc.delivery_note_no:
+        det = sql("select t1.name, t1.item_code, t1.description, t1.qty, t1.uom, t2.basic_rate, t3.customer, t3.customer_name, t3.customer_address, t2.serial_no, t2.batch_no from `tabDelivery Note Packing Item` t1, `tabDelivery Note Item` t2, `tabDelivery Note` t3 where t1.parent = t3.name and t2.parent = t3.name and t1.parent_detail_docname = t2.name and t3.name = '%s' and t3.docstatus = 1" % self.doc.delivery_note_no)
+      elif self.doc.sales_invoice_no:
+        det = sql("select t1.name, t1.item_code, t1.description, t1.qty, t1.stock_uom, t1.basic_rate, t2.customer, t2.customer_name, t2.customer_address, t1.serial_no from `tabSales Invoice Item` t1, `tabSales Invoice` t2 where t1.parent = t2.name and t2.name = '%s' and t2.docstatus = 1" % self.doc.sales_invoice_no)
+    elif self.doc.return_type == 'Purchase Return' and self.doc.purchase_receipt_no:
+      det = sql("select t1.name, t1.item_code, t1.description, t1.received_qty, t1.uom, t1.purchase_rate, t2.supplier, t2.supplier_name, t2.supplier_address, t1.serial_no, t1.batch_no from `tabPurchase Receipt Item` t1, `tabPurchase Receipt` t2 where t1.parent = t2.name and t2.name = '%s' and t2.docstatus = 1" % self.doc.purchase_receipt_no)
+
+    self.doc.cust_supp = det and det[0][6] or ''
+    self.doc.cust_supp_name = det and det[0][7] or ''
+    self.doc.cust_supp_address = det and det[0][8] or ''
+    self.create_item_table(det)
+    self.doc.save()
+ 
+  # Create Item Table
+  # -----------------------------
+  def create_item_table(self, det):
+    self.doc.clear_table(self.doclist, 'return_details', 1)
+    for i in det:
+      ch = addchild(self.doc, 'return_details', 'Sales and Purchase Return Item', 1, self.doclist)
+      ch.detail_name = i and i[0] or ''
+      ch.item_code = i and i[1] or ''
+      ch.description = i and i[2] or ''
+      ch.qty = i and flt(i[3]) or 0
+      ch.uom = i and i[4] or ''
+      ch.rate = i and flt(i[5]) or 0
+      ch.serial_no = i and i[9] or ''
+      ch.batch_no = (len(i) == 11) and i[10] or ''
+      ch.save()
+
+  # Clear return table
+  # --------------------------------
+  def clear_return_table(self):
+    self.doc.clear_table(self.doclist, 'return_details', 1)
+    self.doc.save()
diff --git a/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.txt b/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.txt
new file mode 100644
index 0000000..c5d4d6d
--- /dev/null
+++ b/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.txt
@@ -0,0 +1,414 @@
+# DocType, Sales and Purchase Return Tool
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:36',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:36',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'is_transaction_doc': 0,
+		'issingle': 1,
+		'istable': 0,
+		'menu_index': 1,
+		'module': u'Stock',
+		'name': '__common__',
+		'parent_node': u'Materials',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 1,
+		'version': 46
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Sales and Purchase Return Tool',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'Sales and Purchase Return Tool',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'read': 1
+	},
+
+	# DocType, Sales and Purchase Return Tool
+	{
+		'doctype': 'DocType',
+		'name': u'Sales and Purchase Return Tool'
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'All',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'System Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts Manager'
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts User'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase User'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase Manager'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'return_date',
+		'fieldtype': u'Date',
+		'label': u'Return Date',
+		'no_copy': 1,
+		'oldfieldname': u'return_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'return_type',
+		'fieldtype': u'Select',
+		'label': u'Return Type',
+		'no_copy': 1,
+		'oldfieldname': u'return_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nSales Return\nPurchase Return',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'delivery_note_no',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Delivery Note No',
+		'no_copy': 1,
+		'oldfieldname': u'delivery_note_no',
+		'oldfieldtype': u'Link',
+		'options': u'Delivery Note',
+		'permlevel': 0,
+		'reqd': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'sales_invoice_no',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Sales Invoice No',
+		'options': u'Sales Invoice',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'purchase_receipt_no',
+		'fieldtype': u'Link',
+		'hidden': 1,
+		'label': u'Purchase Receipt No',
+		'no_copy': 1,
+		'oldfieldname': u'purchase_receipt_no',
+		'oldfieldtype': u'Link',
+		'options': u'Purchase Receipt',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'cust_supp',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Customer/Supplier',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'cust_supp_name',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Cust/Supp Name',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'cust_supp_address',
+		'fieldtype': u'Small Text',
+		'hidden': 1,
+		'label': u'Cust/Supp Address',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'get_items',
+		'fieldtype': u'Button',
+		'hidden': 1,
+		'label': u'Get Items',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'return_details',
+		'fieldtype': u'Table',
+		'hidden': 1,
+		'label': u'Sales and Purchase Return Items',
+		'no_copy': 1,
+		'oldfieldname': u'return_details',
+		'oldfieldtype': u'Table',
+		'options': u'Sales and Purchase Return Item',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'make_stock_entry',
+		'fieldtype': u'Button',
+		'hidden': 1,
+		'label': u'Make Stock Entry',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'make_excise_invoice',
+		'fieldtype': u'Button',
+		'hidden': 1,
+		'label': u'Make Excise Invoice',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'make_credit_note',
+		'fieldtype': u'Button',
+		'hidden': 1,
+		'label': u'Make Credit Note',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'make_debit_note',
+		'fieldtype': u'Button',
+		'hidden': 1,
+		'label': u'Make Debit Note',
+		'oldfieldtype': u'Button',
+		'permlevel': 0,
+		'trigger': u'Client'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.js b/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.js
deleted file mode 100644
index 2320f00..0000000
--- a/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.js
+++ /dev/null
@@ -1,229 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// Onload
-//-------------------------------
-cur_frm.cscript.onload = function(doc,dt,dn){
-	if(!doc.return_date) set_multiple(dt,dn,{return_date:get_today()});
-	doc.delivery_note_no = '';
-	doc.purchase_receipt_no = '';
-	doc.sales_invoice_no = '';
-	doc.return_type ='';
-	refresh_many(['delivery_note_no', 'sales_invoice_no', 'purchase_receipt_no', 'return_type']);
-}
-
-// Link field query
-//--------------------------------
-cur_frm.fields_dict.delivery_note_no.get_query = function(doc) {
-	return 'SELECT DISTINCT `tabDelivery Note`.name FROM `tabDelivery Note` WHERE `tabDelivery Note`.docstatus = 1 AND `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.name desc LIMIT 50';
-}
-
-cur_frm.fields_dict.sales_invoice_no.get_query = function(doc) {
-	return 'SELECT DISTINCT `tabReceivable Voucher`.name FROM `tabReceivable Voucher` WHERE `tabReceivable Voucher`.docstatus = 1 AND `tabReceivable Voucher`.%(key)s LIKE "%s" ORDER BY `tabReceivable Voucher`.name desc LIMIT 50';
-}
-
-cur_frm.fields_dict.purchase_receipt_no.get_query = function(doc) {
-	return 'SELECT DISTINCT `tabPurchase Receipt`.name FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.docstatus = 1 AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.name desc LIMIT 50';
-}
-
-// Hide/unhide based on return type
-//----------------------------------
-cur_frm.cscript.return_type = function(doc, cdt, cdn) {
-	var cp = wn.control_panel;
-	hide_field(['purchase_receipt_no', 'delivery_note_no', 'sales_invoice_no',
-		'return_details', 'Get Items', 'Make Excise Invoice', 'Make Stock Entry',
-		'Make Debit Note', 'Make Credit Note']);
-
-	if(doc.return_type == 'Sales Return') {
-		unhide_field(['delivery_note_no', 'sales_invoice_no', 'Get Items',
-			'return_details', 'Make Credit Note', 'Make Stock Entry']);
-		
-		if(cp.country == 'India') {	unhide_field(['Make Excise Invoice']); }
-
-	} else if(doc.return_type == 'Purchase Return') {
-		unhide_field(['purchase_receipt_no', 'Get Items', 'return_details',
-			'Make Debit Note', 'Make Stock Entry']);
-
-		if(cp.country == 'India') {	unhide_field(['Make Excise Invoice']); }
-	}
-	
-	cur_frm.cscript.clear_fields(doc);
-}
-
-// Create item table
-//-------------------------------
-cur_frm.cscript['Get Items'] = function(doc, cdt, cdn) {
-	flag = 0
-	if(doc.return_type == 'Sales Return') {
-		if (doc.delivery_note_no && doc.sales_invoice_no) {
-			msgprint("You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.");
-			flag = 1;
-		} else if (!doc.delivery_note_no && !doc.sales_invoice_no) {
-			msgprint("Please enter Delivery Note No or Sales Invoice No to proceed");
-			flag = 1;
-		}
-	} else if (doc.return_type == 'Purchase Return' && !doc.purchase_receipt_no) {
-		msgprint("Please enter Purchase Receipt No to proceed");
-		flag = 1;
-	}
-	if (!flag)
-		$c_obj(make_doclist(doc.doctype, doc.name),'pull_item_details','', function(r, rt) {
-			refresh_many(['return_details', 'cust_supp', 'cust_supp_name', 'cust_supp_address']);
-		});
-}
-
-// Clear fields
-//-------------------------------
-cur_frm.cscript.clear_fields = function(doc) {
-	doc.purchase_receipt_no, doc.delivery_note_no, doc.sales_invoice_no = '', '', '';
-	var cl = getchildren('Return Detail', doc.name, 'return_details')
-	if(cl.length) $c_obj(make_doclist(doc.doctype, doc.name),'clear_return_table','', function(r, rt) {refresh_field('return_details')});
-	refresh_many(['delivery_note_no', 'sales_invoice_no', 'purchase_receipt_no', 'return_details']);
-}
-
-// Make Stock Entry
-//-------------------------------
-cur_frm.cscript['Make Stock Entry'] = function(doc, cdt, cdn) {
-	var cl = getchildren('Return Detail', doc.name, 'return_details');
-	if (!cl.length)
-		msgprint("Item table can not be blank. Please click on 'Get Items'.");
-	else if (!cur_frm.cscript.validate_returned_qty(cl)) {
-		se = cur_frm.cscript.map_parent_fields(doc,cdt,cdn);
-		cur_frm.cscript.map_child_fields(cl, se);
-		loaddoc('Stock Entry', se.name);
-	}
-}
-
-// Validate returned qty
-//---------------------------
-cur_frm.cscript.validate_returned_qty = function(cl) {
-	flag = 0
-	for(var i = 0; i<cl.length; i++){
-		if(cl[i].returned_qty > cl[i].qty) {
-			msgprint("Returned Qty can not be greater than qty. Please check for item: " + cl[i].item_code);
-			flag = 1
-		}
-	}
-	return flag
-}
-
-
-// map parent fields of stock entry
-//----------------------------------
-cur_frm.cscript.map_parent_fields = function(doc, cdt, cdn) {
-	var se = LocalDB.create('Stock Entry');
-	se = locals['Stock Entry'][se];
-	se.posting_date = dateutil.obj_to_str(new Date());
-	se.transfer_date = dateutil.obj_to_str(new Date());
-	se.fiscal_year = sys_defaults.fiscal_year;
-	se.purpose = doc.return_type;
-	se.remarks = doc.return_type + ' of ' + (doc.delivery_note_no || doc.sales_invoice_no || doc.purchase_receipt_no);
-	if(doc.return_type == 'Sales Return'){
-		se.delivery_note_no = doc.delivery_note_no;
-		se.sales_invoice_no = doc.sales_invoice_no;
-		se.customer = doc.cust_supp_name;
-		se.customer_name = doc.cust_supp_name;
-		se.customer_address = doc.cust_supp_address;
-	}
-	else if(doc.return_type == 'Purchase Return'){
-		se.purchase_receipt_no = doc.purchase_receipt_no;
-		se.supplier = doc.cust_supp_name;
-		se.supplier_name = doc.cust_supp_name;
-		se.supplier_address = doc.cust_supp_address;
-	}
-	return se
-}
-
-// map child fields of stock entry
-//---------------------------------
-cur_frm.cscript.map_child_fields = function(cl, se) {
-	for(var i = 0; i<cl.length; i++){
-		if (cl[i].returned_qty) {
-			var d1 = LocalDB.add_child(se, 'Stock Entry Detail', 'mtn_details');
-			d1.detail_name = cl[i].detail_name;
-			d1.item_code = cl[i].item_code;
-			d1.description = cl[i].description;
-			d1.transfer_qty = cl[i].returned_qty;
-			d1.qty = cl[i].returned_qty;
-			d1.stock_uom = cl[i].uom;
-			d1.uom = cl[i].uom;
-			d1.conversion_factor = 1;
-			d1.incoming_rate = cl[i].rate;
-			d1.serial_no = cl[i].serial_no;
-			d1.batch_no = cl[i].batch_no;
-		}
-	}
-}
-
-// Make excise voucher
-//-------------------------------
-cur_frm.cscript['Make Excise Invoice'] = function(doc) {
-	var excise = LocalDB.create('Journal Voucher');
-	excise = locals['Journal Voucher'][excise];
-	excise.voucher_type = 'Excise Voucher';
-	loaddoc('Journal Voucher',excise.name);
-}
-// Make debit note
-//------------------------------
-cur_frm.cscript['Make Debit Note'] = function(doc) {
-	var doclist = make_doclist(doc.doctype, doc.name);
-	$c('accounts.get_new_jv_details', {
-			doclist: JSON.stringify(doclist),
-			fiscal_year: sys_defaults.fiscal_year
-		}, function(r, rt) {
-		if(!r.exc) {
-			cur_frm.cscript.make_jv(doc, 'Debit Note', r.message);
-		}
-	});
-}
-// Make credit note
-//------------------------------
-cur_frm.cscript['Make Credit Note'] = function(doc) {
-	var doclist = make_doclist(doc.doctype, doc.name);
-	$c('accounts.get_new_jv_details', {
-			doclist: JSON.stringify(doclist),
-			fiscal_year: sys_defaults.fiscal_year
-		}, function(r, rt) {
-		if(!r.exc) {
-			cur_frm.cscript.make_jv(doc, 'Credit Note', r.message);
-		}
-	});
-}
-
-
-// Make JV
-//--------------------------------
-cur_frm.cscript.make_jv = function(doc, dr_or_cr, children) {
-	var jv = LocalDB.create('Journal Voucher');
-	jv = locals['Journal Voucher'][jv];
-	
-	jv.voucher_type = dr_or_cr;
-	jv.company = sys_defaults.company;
-	jv.fiscal_year = sys_defaults.fiscal_year;
-	jv.is_opening = 'No';
-	jv.posting_date = dateutil.obj_to_str(new Date());
-	jv.voucher_date = dateutil.obj_to_str(new Date());
-
-	// Add children
-	if(children) {
-		for(var i=0; i<children.length; i++) {
-			var ch = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
-			$.extend(ch, children[i]);
-		}
-	}
-
-	loaddoc('Journal Voucher', jv.name);
-}
diff --git a/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.py b/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.py
deleted file mode 100644
index 9b421d3..0000000
--- a/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-class DocType :
-  def __init__(self, doc, doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-
-  # Pull Item Details
-  # ---------------------------
-  def pull_item_details(self):
-    if self.doc.return_type == 'Sales Return':
-      if self.doc.delivery_note_no:
-        det = sql("select t1.name, t1.item_code, t1.description, t1.qty, t1.uom, t2.basic_rate, t3.customer, t3.customer_name, t3.customer_address, t2.serial_no, t2.batch_no from `tabDelivery Note Packing Detail` t1, `tabDelivery Note Detail` t2, `tabDelivery Note` t3 where t1.parent = t3.name and t2.parent = t3.name and t1.parent_detail_docname = t2.name and t3.name = '%s' and t3.docstatus = 1" % self.doc.delivery_note_no)
-      elif self.doc.sales_invoice_no:
-        det = sql("select t1.name, t1.item_code, t1.description, t1.qty, t1.stock_uom, t1.basic_rate, t2.customer, t2.customer_name, t2.customer_address, t1.serial_no from `tabRV Detail` t1, `tabReceivable Voucher` t2 where t1.parent = t2.name and t2.name = '%s' and t2.docstatus = 1" % self.doc.sales_invoice_no)
-    elif self.doc.return_type == 'Purchase Return' and self.doc.purchase_receipt_no:
-      det = sql("select t1.name, t1.item_code, t1.description, t1.received_qty, t1.uom, t1.purchase_rate, t2.supplier, t2.supplier_name, t2.supplier_address, t1.serial_no, t1.batch_no from `tabPurchase Receipt Detail` t1, `tabPurchase Receipt` t2 where t1.parent = t2.name and t2.name = '%s' and t2.docstatus = 1" % self.doc.purchase_receipt_no)
-
-    self.doc.cust_supp = det and det[0][6] or ''
-    self.doc.cust_supp_name = det and det[0][7] or ''
-    self.doc.cust_supp_address = det and det[0][8] or ''
-    self.create_item_table(det)
-    self.doc.save()
- 
-  # Create Item Table
-  # -----------------------------
-  def create_item_table(self, det):
-    self.doc.clear_table(self.doclist, 'return_details', 1)
-    for i in det:
-      ch = addchild(self.doc, 'return_details', 'Return Detail', 1, self.doclist)
-      ch.detail_name = i and i[0] or ''
-      ch.item_code = i and i[1] or ''
-      ch.description = i and i[2] or ''
-      ch.qty = i and flt(i[3]) or 0
-      ch.uom = i and i[4] or ''
-      ch.rate = i and flt(i[5]) or 0
-      ch.serial_no = i and i[9] or ''
-      ch.batch_no = (len(i) == 11) and i[10] or ''
-      ch.save()
-
-  # Clear return table
-  # --------------------------------
-  def clear_return_table(self):
-    self.doc.clear_table(self.doclist, 'return_details', 1)
-    self.doc.save()
diff --git a/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.txt b/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.txt
deleted file mode 100644
index bc6d6fa..0000000
--- a/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.txt
+++ /dev/null
@@ -1,443 +0,0 @@
-# DocType, Sales and Purchase Return Wizard
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:21',
-		'docstatus': 0,
-		'modified': '2011-02-23 19:09:18',
-		'modified_by': 'Administrator',
-		'owner': 'wasim@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'is_transaction_doc': 0,
-		'issingle': 1,
-		'istable': 0,
-		'menu_index': 1,
-		'module': 'Stock',
-		'name': '__common__',
-		'parent_node': 'Materials',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 1,
-		'version': 46
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Sales and Purchase Return Wizard',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Sales and Purchase Return Wizard',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Sales and Purchase Return Wizard
-	{
-		'doctype': 'DocType',
-		'name': 'Sales and Purchase Return Wizard'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 0,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 1,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 0,
-		'role': 'Material Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 1,
-		'role': 'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
-		'permlevel': 0,
-		'role': 'All',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 6,
-		'permlevel': 0,
-		'role': 'System Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 7,
-		'permlevel': 0,
-		'role': 'Accounts Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 8,
-		'permlevel': 0,
-		'role': 'Accounts User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 9,
-		'permlevel': 0,
-		'role': 'Sales User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 10,
-		'permlevel': 0,
-		'role': 'Sales Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 11,
-		'permlevel': 0,
-		'role': 'Purchase User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 12,
-		'permlevel': 0,
-		'role': 'Purchase Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 13,
-		'permlevel': 1,
-		'role': 'All'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 14,
-		'permlevel': 1,
-		'role': 'System Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 15,
-		'permlevel': 1,
-		'role': 'Accounts Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 16,
-		'permlevel': 1,
-		'role': 'Accounts User'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 17,
-		'permlevel': 1,
-		'role': 'Sales User'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 18,
-		'permlevel': 1,
-		'role': 'Sales Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 19,
-		'permlevel': 1,
-		'role': 'Purchase User'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 20,
-		'permlevel': 1,
-		'role': 'Purchase Manager'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'return_date',
-		'fieldtype': 'Date',
-		'idx': 1,
-		'label': 'Return Date',
-		'no_copy': 1,
-		'oldfieldname': 'return_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'return_type',
-		'fieldtype': 'Select',
-		'idx': 2,
-		'label': 'Return Type',
-		'no_copy': 1,
-		'oldfieldname': 'return_type',
-		'oldfieldtype': 'Select',
-		'options': '\nSales Return\nPurchase Return',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_note_no',
-		'fieldtype': 'Link',
-		'hidden': 1,
-		'idx': 3,
-		'label': 'Delivery Note No',
-		'no_copy': 1,
-		'oldfieldname': 'delivery_note_no',
-		'oldfieldtype': 'Link',
-		'options': 'Delivery Note',
-		'permlevel': 0,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_invoice_no',
-		'fieldtype': 'Link',
-		'hidden': 1,
-		'idx': 4,
-		'label': 'Sales Invoice No',
-		'options': 'Receivable Voucher',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_receipt_no',
-		'fieldtype': 'Link',
-		'hidden': 1,
-		'idx': 5,
-		'label': 'Purchase Receipt No',
-		'no_copy': 1,
-		'oldfieldname': 'purchase_receipt_no',
-		'oldfieldtype': 'Link',
-		'options': 'Purchase Receipt',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'cust_supp',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 6,
-		'label': 'Customer/Supplier',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'cust_supp_name',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 7,
-		'label': 'Cust/Supp Name',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'cust_supp_address',
-		'fieldtype': 'Small Text',
-		'hidden': 1,
-		'idx': 8,
-		'label': 'Cust/Supp Address',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'hidden': 1,
-		'idx': 9,
-		'label': 'Get Items',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'return_details',
-		'fieldtype': 'Table',
-		'hidden': 1,
-		'idx': 10,
-		'label': 'Return Details',
-		'no_copy': 1,
-		'oldfieldname': 'return_details',
-		'oldfieldtype': 'Table',
-		'options': 'Return Detail',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'hidden': 1,
-		'idx': 11,
-		'label': 'Make Stock Entry',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'hidden': 1,
-		'idx': 12,
-		'label': 'Make Excise Invoice',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'hidden': 1,
-		'idx': 13,
-		'label': 'Make Credit Note',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'hidden': 1,
-		'idx': 14,
-		'label': 'Make Debit Note',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'trigger': 'Client'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/sales_bom/sales_bom.js b/erpnext/stock/doctype/sales_bom/sales_bom.js
index be159e7..f7f6e4d 100644
--- a/erpnext/stock/doctype/sales_bom/sales_bom.js
+++ b/erpnext/stock/doctype/sales_bom/sales_bom.js
@@ -41,6 +41,6 @@
   $c_obj(make_doclist(cdt,cdn), 'get_rates', '', function(r,rt){refresh_field('sales_bom_items');});
 }
 
-cur_frm.cscript['Find Sales BOM'] = function(doc, dt, dn) {
+cur_frm.cscript.find_sales_bom = function(doc, dt, dn) {
   $c_obj(make_doclist(dt,dn), 'check_duplicate', 1, '');
 }
\ No newline at end of file
diff --git a/erpnext/stock/doctype/sales_bom/sales_bom.py b/erpnext/stock/doctype/sales_bom/sales_bom.py
index 39fa2cd..bfb5cee 100644
--- a/erpnext/stock/doctype/sales_bom/sales_bom.py
+++ b/erpnext/stock/doctype/sales_bom/sales_bom.py
@@ -45,7 +45,7 @@
   # --------------
   def get_rates(self):
     for d in getlist(self.doclist, "sales_bom_items"):
-      r = sql("select ref_rate from `tabRef Rate Detail` where price_list_name=%s and parent=%s and ref_currency = %s", (self.doc.price_list, d.item_code, self.doc.currency))
+      r = sql("select ref_rate from `tabItem Price` where price_list_name=%s and parent=%s and ref_currency = %s", (self.doc.price_list, d.item_code, self.doc.currency))
       d.rate = r and flt(r[0][0]) or 0.00
 
 
@@ -53,7 +53,7 @@
   # -----------------
   def get_item_details(self, name):
     det = sql("select description, stock_uom from `tabItem` where name = '%s' " % cstr(name))
-    rate = sql("select ref_rate from `tabRef Rate Detail` where price_list_name = %s and parent = %s and ref_currency = %s", (self.doc.price_list, name, self.doc.currency))
+    rate = sql("select ref_rate from `tabItem Price` where price_list_name = %s and parent = %s and ref_currency = %s", (self.doc.price_list, name, self.doc.currency))
     return {'description' : det and det[0][0] or '', 'uom': det and det[0][1] or '', 'rate': rate and flt(rate[0][0]) or 0.00}
 
 
@@ -107,7 +107,7 @@
       msgprint("Please enter Currency.")
       raise Exception
     for d in getlist(self.doclist, "sales_bom_items"):
-      item_rate = sql("select ref_rate,ref_currency from `tabRef Rate Detail` where price_list_name=%s and parent=%s", (p, d.item_code))      
+      item_rate = sql("select ref_rate,ref_currency from `tabItem Price` where price_list_name=%s and parent=%s", (p, d.item_code))      
       if not item_rate:
         msgprint("Item %s does not have a rate for Price List %s. Did not update rates for this Price List" % (d.item_code, p))
         raise Exception
@@ -118,7 +118,7 @@
       count += 1
       ref_rate += (flt(d.qty) * flt(item_rate[0][0]))
       
-    pld = addchild(i,"ref_rate_details", "Ref Rate Detail")
+    pld = addchild(i,"ref_rate_details", "Item Price")
     pld.price_list_name = p
     pld.ref_rate = flt(ref_rate)
     pld.ref_currency = currency
@@ -136,7 +136,7 @@
     i.item_group = self.doc.item_group
 	
     # clear old rates
-    sql("delete from `tabRef Rate Detail` where parent=%s", i.name)
+    sql("delete from `tabItem Price` where parent=%s", i.name)
     
     # update rates
     new_rates = {}
@@ -193,14 +193,14 @@
       return
     
     # get all Sales BOM that have the first item  
-    sbl = sql("select distinct parent from `tabSales BOM Detail` where item_code=%s", il[0].item_code)
+    sbl = sql("select distinct parent from `tabSales BOM Item` where item_code=%s", il[0].item_code)
     
     # check all siblings
     sub_items = [[d.item_code, flt(d.qty)] for d in il]
     
     for s in sbl:
       if not cstr(s[0]) == cstr(self.doc.name) :
-        t = sql("select item_code, qty from `tabSales BOM Detail` where parent=%s", s[0])
+        t = sql("select item_code, qty from `tabSales BOM Item` where parent=%s", s[0])
         t = [[d[0], flt(d[1])] for d in t]
   
         if self.has_same_items(sub_items, t):
diff --git a/erpnext/stock/doctype/sales_bom/sales_bom.txt b/erpnext/stock/doctype/sales_bom/sales_bom.txt
index b97458a..6eb726a 100644
--- a/erpnext/stock/doctype/sales_bom/sales_bom.txt
+++ b/erpnext/stock/doctype/sales_bom/sales_bom.txt
@@ -3,50 +3,65 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:21',
+		'creation': '2012-03-27 14:36:36',
 		'docstatus': 0,
-		'modified': '2010-12-23 11:43:34',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:45:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
+		'_last_update': u'1322549701',
 		'allow_trash': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Stock',
+		'document_type': u'Master',
+		'is_submittable': 1,
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 37
+		'version': 40
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Sales BOM',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Sales BOM',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Sales BOM',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Sales BOM',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Sales BOM
 	{
 		'doctype': 'DocType',
-		'name': 'Sales BOM'
+		'name': u'Sales BOM'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 1
 	},
 
 	# DocPerm
@@ -54,10 +69,21 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Material Manager',
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
 		'submit': 0,
 		'write': 0
 	},
@@ -67,10 +93,9 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Manager',
+		'role': u'Material Manager',
 		'submit': 1,
 		'write': 1
 	},
@@ -80,10 +105,9 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Material User',
+		'role': u'Material User',
 		'submit': 0,
 		'write': 0
 	},
@@ -93,182 +117,169 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
-		'permlevel': 0,
-		'role': 'Sales User',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 6,
-		'permlevel': 1,
-		'role': 'Sales User',
+		'role': u'Material User',
 		'submit': 0,
 		'write': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'new_item_code',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'New Item Code',
+		'doctype': u'DocField',
+		'fieldname': u'new_item_code',
+		'fieldtype': u'Data',
+		'label': u'New Item Code',
 		'no_copy': 1,
-		'oldfieldname': 'new_item_code',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'new_item_code',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'new_item_name',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'New Item Name',
-		'oldfieldname': 'new_item_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'new_item_name',
+		'fieldtype': u'Data',
+		'label': u'New Item Name',
+		'oldfieldname': u'new_item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'new_item_brand',
+		'fieldtype': u'Data',
+		'label': u'New Item Brand',
+		'oldfieldname': u'new_item_brand',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'new_item_brand',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'New Item Brand',
-		'oldfieldname': 'new_item_brand',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'idx': 5,
-		'label': 'New Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'New Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
 		'permlevel': 1,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_group',
-		'fieldtype': 'Link',
-		'idx': 7,
-		'label': 'Item Group',
-		'oldfieldname': 'item_group',
-		'oldfieldtype': 'Link',
-		'options': 'Item Group',
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'price_list',
-		'fieldtype': 'Select',
-		'idx': 8,
-		'label': 'Price List',
-		'oldfieldname': 'price_list',
-		'oldfieldtype': 'Select',
-		'options': 'link:Price List',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'price_list',
+		'fieldtype': u'Select',
+		'label': u'Price List',
+		'oldfieldname': u'price_list',
+		'oldfieldtype': u'Select',
+		'options': u'link:Price List',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'currency',
-		'fieldtype': 'Select',
-		'idx': 9,
-		'label': 'Currency',
-		'oldfieldname': 'currency',
-		'oldfieldtype': 'Select',
-		'options': 'link:Currency',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'currency',
+		'fieldtype': u'Select',
+		'label': u'Currency',
+		'oldfieldname': u'currency',
+		'oldfieldtype': u'Select',
+		'options': u'link:Currency',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 10,
-		'label': 'Find Sales BOM',
-		'oldfieldtype': 'Button',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'find_sales_bom',
+		'fieldtype': u'Button',
+		'label': u'Find Sales BOM',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'sales_bom_items',
-		'fieldtype': 'Table',
-		'idx': 11,
-		'label': 'Sales BOM Items',
-		'oldfieldname': 'sales_bom_items',
-		'oldfieldtype': 'Table',
-		'options': 'Sales BOM Detail',
+		'doctype': u'DocField',
+		'fieldname': u'sales_bom_items',
+		'fieldtype': u'Table',
+		'label': u'Sales BOM Items',
+		'oldfieldname': u'sales_bom_items',
+		'oldfieldtype': u'Table',
+		'options': u'Sales BOM Item',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Link',
-		'idx': 12,
-		'label': 'Stock UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Link',
-		'options': 'UOM',
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Link',
+		'label': u'Stock UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'depends_on': u'eval:doc.amended_from',
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
 		'permlevel': 0,
-		'search_index': 0
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Link',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'options': u'Sales Invoice',
+		'permlevel': 1,
+		'print_hide': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/sales_bom_detail/sales_bom_detail.txt b/erpnext/stock/doctype/sales_bom_detail/sales_bom_detail.txt
deleted file mode 100644
index 3b104e7..0000000
--- a/erpnext/stock/doctype/sales_bom_detail/sales_bom_detail.txt
+++ /dev/null
@@ -1,120 +0,0 @@
-# DocType, Sales BOM Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:21',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Stock',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 3
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Sales BOM Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Sales BOM Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Sales BOM Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'is_main_item',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Is Main Item',
-		'oldfieldname': 'is_main_item',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'label': 'Item',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
-		'permlevel': 0,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rate',
-		'fieldtype': 'Currency',
-		'idx': 6,
-		'label': 'Rate',
-		'oldfieldname': 'rate',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'idx': 9,
-		'label': 'Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'uom',
-		'fieldtype': 'Link',
-		'idx': 10,
-		'label': 'UOM',
-		'oldfieldname': 'uom',
-		'oldfieldtype': 'Link',
-		'options': 'UOM',
-		'permlevel': 1,
-		'search_index': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/sales_bom_detail/__init__.py b/erpnext/stock/doctype/sales_bom_item/__init__.py
similarity index 100%
rename from erpnext/stock/doctype/sales_bom_detail/__init__.py
rename to erpnext/stock/doctype/sales_bom_item/__init__.py
diff --git a/erpnext/stock/doctype/sales_bom_item/sales_bom_item.txt b/erpnext/stock/doctype/sales_bom_item/sales_bom_item.txt
new file mode 100644
index 0000000..8cf93f5
--- /dev/null
+++ b/erpnext/stock/doctype/sales_bom_item/sales_bom_item.txt
@@ -0,0 +1,114 @@
+# DocType, Sales BOM Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:37',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:37',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Stock',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 3
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Sales BOM Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Sales BOM Item
+	{
+		'doctype': 'DocType',
+		'name': u'Sales BOM Item'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'is_main_item',
+		'fieldtype': u'Select',
+		'label': u'Is Main Item',
+		'oldfieldname': u'is_main_item',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'label': u'Item',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'permlevel': 0,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'rate',
+		'fieldtype': u'Currency',
+		'label': u'Rate',
+		'oldfieldname': u'rate',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'uom',
+		'fieldtype': u'Link',
+		'label': u'UOM',
+		'oldfieldname': u'uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM',
+		'permlevel': 1,
+		'search_index': 0
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/serial_no/serial_no.txt b/erpnext/stock/doctype/serial_no/serial_no.txt
index df42c7f..aa0ea66 100644
--- a/erpnext/stock/doctype/serial_no/serial_no.txt
+++ b/erpnext/stock/doctype/serial_no/serial_no.txt
@@ -3,113 +3,65 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:23',
+		'creation': '2012-03-27 14:36:37',
 		'docstatus': 0,
-		'modified': '2012-01-31 15:53:38',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:37',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1325570647',
+		'_last_update': u'1325570647',
 		'allow_trash': 1,
-		'autoname': 'field:serial_no',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'autoname': u'field:serial_no',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Stock',
+		'document_type': u'Master',
+		'module': u'Stock',
 		'name': '__common__',
-		'search_fields': 'item_code,status',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'search_fields': u'item_code,status',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': 'Item Code: %(item_code)s, Warehouse: %(warehouse)s',
-		'tag_fields': 'status',
+		'subject': u'Item Code: %(item_code)s, Warehouse: %(warehouse)s',
+		'tag_fields': u'status',
 		'version': 191
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Serial No',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Serial No',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Serial No',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Serial No',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Serial No
 	{
 		'doctype': 'DocType',
-		'name': 'Serial No'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
+		'name': u'Serial No'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
@@ -117,54 +69,104 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Master Manager',
+		'role': u'Material Master Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Sales Master Manager'
+		'role': u'Sales Master Manager'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Details',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'details',
+		'fieldtype': u'Section Break',
+		'label': u'Details',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'default': 'In Store',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
+		'default': u'In Store',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Status',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nIn Store\nDelivered\nNot in Use\nPurchase Returned',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nIn Store\nDelivered\nNot in Use\nPurchase Returned',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 1
@@ -172,14 +174,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Data',
 		'in_filter': 0,
-		'label': 'Serial No',
+		'label': u'Serial No',
 		'no_copy': 1,
-		'oldfieldname': 'serial_no',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'serial_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -187,61 +189,62 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_name',
-		'fieldtype': 'Data',
-		'label': 'Item Name',
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'label': u'Item Name',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
 		'in_filter': 1,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
 		'permlevel': 1,
 		'search_index': 0,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_group',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
 		'in_filter': 0,
-		'label': 'Item Group',
-		'oldfieldname': 'item_group',
-		'oldfieldtype': 'Link',
-		'options': 'Item Group',
+		'label': u'Item Group',
+		'oldfieldname': u'item_group',
+		'oldfieldtype': u'Link',
+		'options': u'Item Group',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 0
@@ -249,14 +252,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'brand',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'brand',
+		'fieldtype': u'Link',
 		'in_filter': 0,
-		'label': 'Brand',
-		'oldfieldname': 'brand',
-		'oldfieldtype': 'Link',
-		'options': 'Brand',
+		'label': u'Brand',
+		'oldfieldname': u'brand',
+		'oldfieldtype': u'Link',
+		'options': u'Brand',
 		'permlevel': 1,
 		'reqd': 0,
 		'search_index': 0
@@ -264,65 +267,67 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Purchase Details',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_details',
+		'fieldtype': u'Section Break',
+		'label': u'Purchase Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_document_type',
-		'fieldtype': 'Select',
-		'label': 'Purchase Document Type',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_document_type',
+		'fieldtype': u'Select',
+		'label': u'Purchase Document Type',
 		'no_copy': 1,
-		'options': '\nPurchase Receipt\nStock Entry',
+		'options': u'\nPurchase Receipt\nStock Entry',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_document_no',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_document_no',
+		'fieldtype': u'Data',
 		'hidden': 0,
-		'label': 'Purchase Document No',
+		'label': u'Purchase Document No',
 		'no_copy': 1,
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'purchase_date',
-		'fieldtype': 'Date',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Purchase Date',
+		'label': u'Purchase Date',
 		'no_copy': 1,
-		'oldfieldname': 'purchase_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'purchase_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 0,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_time',
-		'fieldtype': 'Time',
-		'label': 'Incoming Time',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_time',
+		'fieldtype': u'Time',
+		'label': u'Incoming Time',
 		'no_copy': 1,
 		'permlevel': 0,
 		'reqd': 1
@@ -330,14 +335,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'purchase_rate',
-		'fieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'purchase_rate',
+		'fieldtype': u'Currency',
 		'in_filter': 0,
-		'label': 'Incoming Rate',
+		'label': u'Incoming Rate',
 		'no_copy': 1,
-		'oldfieldname': 'purchase_rate',
-		'oldfieldtype': 'Currency',
+		'oldfieldname': u'purchase_rate',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -345,23 +350,24 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break3',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Warehouse',
+		'label': u'Warehouse',
 		'no_copy': 1,
-		'oldfieldname': 'warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
 		'permlevel': 0,
 		'reqd': 0,
 		'search_index': 1
@@ -369,186 +375,189 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'supplier',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'supplier',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Supplier',
+		'label': u'Supplier',
 		'no_copy': 1,
-		'options': 'Supplier',
+		'options': u'Supplier',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'supplier_name',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'supplier_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Supplier Name',
+		'label': u'Supplier Name',
 		'no_copy': 1,
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_display',
-		'fieldtype': 'Text',
-		'label': 'Supplier Address',
+		'doctype': u'DocField',
+		'fieldname': u'address_display',
+		'fieldtype': u'Text',
+		'label': u'Supplier Address',
 		'no_copy': 1,
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Delivery Details',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_details',
+		'fieldtype': u'Section Break',
+		'label': u'Delivery Details',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break4',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_document_type',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_document_type',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Delivery Document Type',
+		'label': u'Delivery Document Type',
 		'no_copy': 1,
-		'options': '\nDelivery Note\nReceivable Voucher\nStock Entry',
+		'options': u'\nDelivery Note\nSales Invoice\nStock Entry',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_document_no',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_document_no',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Delivery Document No',
+		'label': u'Delivery Document No',
 		'no_copy': 1,
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_address',
-		'fieldtype': 'Text',
-		'label': 'Customer Address',
-		'oldfieldname': 'customer_address',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'customer_address',
+		'fieldtype': u'Text',
+		'label': u'Customer Address',
+		'oldfieldname': u'customer_address',
+		'oldfieldtype': u'Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_date',
-		'fieldtype': 'Date',
-		'label': 'Delivery Date',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_date',
+		'fieldtype': u'Date',
+		'label': u'Delivery Date',
 		'no_copy': 1,
-		'oldfieldname': 'delivery_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'delivery_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_time',
-		'fieldtype': 'Time',
-		'label': 'Delivery Time',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_time',
+		'fieldtype': u'Time',
+		'label': u'Delivery Time',
 		'no_copy': 1,
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_cancelled',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'is_cancelled',
+		'fieldtype': u'Select',
 		'hidden': 1,
-		'label': 'Is Cancelled',
-		'oldfieldname': 'is_cancelled',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'label': u'Is Cancelled',
+		'oldfieldname': u'is_cancelled',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 0,
 		'report_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break5',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Customer',
+		'label': u'Customer',
 		'no_copy': 1,
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Link',
-		'options': 'Customer',
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
 		'permlevel': 1,
 		'print_hide': 1,
 		'search_index': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Customer Name',
+		'label': u'Customer Name',
 		'no_copy': 1,
-		'oldfieldname': 'customer_name',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'customer_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'delivery_address',
-		'fieldtype': 'Text',
-		'label': 'Delivery Address',
+		'doctype': u'DocField',
+		'fieldname': u'delivery_address',
+		'fieldtype': u'Text',
+		'label': u'Delivery Address',
 		'no_copy': 1,
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Territory',
+		'label': u'Territory',
 		'no_copy': 1,
-		'oldfieldname': 'territory',
-		'oldfieldtype': 'Link',
-		'options': 'Territory',
+		'oldfieldname': u'territory',
+		'oldfieldtype': u'Link',
+		'options': u'Territory',
 		'permlevel': 1,
 		'print_hide': 1,
 		'report_hide': 0
@@ -556,110 +565,114 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Warranty / AMC Details',
+		'doctype': u'DocField',
+		'fieldname': u'warranty_amc_details',
+		'fieldtype': u'Section Break',
+		'label': u'Warranty / AMC Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break6',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'maintenance_status',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'maintenance_status',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Maintenance Status',
+		'label': u'Maintenance Status',
 		'no_copy': 0,
-		'oldfieldname': 'maintenance_status',
-		'oldfieldtype': 'Select',
-		'options': '\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC',
+		'oldfieldname': u'maintenance_status',
+		'oldfieldtype': u'Select',
+		'options': u'\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC',
 		'permlevel': 0,
 		'search_index': 1,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'warranty_period',
-		'fieldtype': 'Int',
-		'label': 'Warranty Period (Days)',
-		'oldfieldname': 'warranty_period',
-		'oldfieldtype': 'Int',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'warranty_period',
+		'fieldtype': u'Int',
+		'label': u'Warranty Period (Days)',
+		'oldfieldname': u'warranty_period',
+		'oldfieldtype': u'Int',
 		'permlevel': 0,
-		'trigger': 'Client',
-		'width': '150px'
+		'trigger': u'Client',
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break7',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warranty_expiry_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'warranty_expiry_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Warranty Expiry Date',
-		'oldfieldname': 'warranty_expiry_date',
-		'oldfieldtype': 'Date',
+		'label': u'Warranty Expiry Date',
+		'oldfieldname': u'warranty_expiry_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amc_expiry_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'amc_expiry_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'AMC Expiry Date',
-		'oldfieldname': 'amc_expiry_date',
-		'oldfieldtype': 'Date',
+		'label': u'AMC Expiry Date',
+		'oldfieldname': u'amc_expiry_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'search_index': 0,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'More Info',
+		'doctype': u'DocField',
+		'fieldname': u'more_info',
+		'fieldtype': u'Section Break',
+		'label': u'More Info',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no_details',
-		'fieldtype': 'Text Editor',
-		'label': 'Serial No Details',
+		'doctype': u'DocField',
+		'fieldname': u'serial_no_details',
+		'fieldtype': u'Text Editor',
+		'label': u'Serial No Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Company',
-		'options': 'link:Company',
+		'label': u'Company',
+		'options': u'link:Company',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -667,12 +680,12 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -680,12 +693,12 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 96642d0..d7c2a13 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -123,7 +123,7 @@
 		if fg_item and bom_no:
 			# re-calculate cost for production item from bom
 			get_obj('BOM Control').calculate_cost(bom_no)
-			bom_obj = get_obj('Bill Of Materials', bom_no)
+			bom_obj = get_obj('BOM', bom_no)
 			in_rate = flt(bom_obj.doc.total_cost) / (flt(bom_obj.doc.quantity) or 1)
 		elif wh:
 			in_rate = get_obj('Valuation Control').get_incoming_rate(dt, tm, item, wh, qty, serial_no)
@@ -168,7 +168,7 @@
 			# so no childs of SA items
 			fl_bom_sa_items = sql("""
 				select item_code, ifnull(sum(qty_consumed_per_unit), 0) * '%s', description, stock_uom 
-				from `tabBOM Material` 
+				from `tabBOM Item` 
 				where parent = '%s' and docstatus < 2 
 				group by item_code
 			""" % (fg_qty, bom_no))
@@ -183,7 +183,7 @@
 				from 
 					( 
 						select distinct fb.name, fb.description, fb.item_code, fb.qty_consumed_per_unit, fb.stock_uom 
-						from `tabFlat BOM Detail` fb,`tabItem` it 
+						from `tabBOM Explosion Item` fb,`tabItem` it 
 						where it.name = fb.item_code and ifnull(it.is_pro_applicable, 'No') = 'No'
 						and ifnull(it.is_sub_contracted_item, 'No') = 'No' and fb.docstatus<2 and fb.parent=%s
 					) a
@@ -251,7 +251,7 @@
 			fg_item_dict = {cstr(pro_obj.doc.production_item) : [self.doc.fg_completed_qty, pro_obj.doc.description, pro_obj.doc.stock_uom]}
 		elif self.doc.purpose == 'Other' and self.doc.bom_no:
 			sw, tw = '', ''
-			item = sql("select item, description, uom from `tabBill Of Materials` where name = %s", self.doc.bom_no, as_dict=1)
+			item = sql("select item, description, uom from `tabBOM` where name = %s", self.doc.bom_no, as_dict=1)
 			fg_item_dict = {item[0]['item'] : [self.doc.fg_completed_qty, item[0]['description'], item[0]['uom']]}
 
 		if fg_item_dict:
@@ -357,7 +357,7 @@
 	def validate_bom_belongs_to_item(self):
 		for d in getlist(self.doclist, 'mtn_details'):
 			if d.bom_no and not webnotes.conn.sql("""\
-					SELECT name FROM `tabBill Of Materials`
+					SELECT name FROM `tabBOM`
 					WHERE item = %s and name = %s
 				""", (d.item_code, d.bom_no)):
 				msgprint("BOM %s does not belong to Item: %s at row %s" % (d.bom_no, d.item_code, d.idx), raise_exception=1)
@@ -498,7 +498,7 @@
 		
 
 	def get_cust_values(self):
-		tbl = self.doc.delivery_note_no and 'Delivery Note' or 'Receivable Voucher'
+		tbl = self.doc.delivery_note_no and 'Delivery Note' or 'Sales Invoice'
 		record_name = self.doc.delivery_note_no or self.doc.sales_invoice_no
 		res = sql("select customer,customer_name, customer_address from `tab%s` where name = '%s'" % (tbl, record_name))
 		ret = {
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.txt b/erpnext/stock/doctype/stock_entry/stock_entry.txt
index 9792fc9..475d2f2 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.txt
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:25',
+		'creation': '2012-03-27 14:36:37',
 		'docstatus': 0,
-		'modified': '2012-03-21 11:00:48',
+		'modified': '2012-03-27 14:45:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -26,6 +26,7 @@
 		'hide_toolbar': 0,
 		'in_create': 0,
 		'in_dialog': 0,
+		'is_submittable': 1,
 		'is_transaction_doc': 0,
 		'issingle': 0,
 		'max_attachments': 0,
@@ -71,14 +72,14 @@
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
 		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 0
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 1,
+		'write': 1
 	},
 
 	# DocPerm
@@ -95,6 +96,23 @@
 
 	# DocPerm
 	{
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'Production User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'Production Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
@@ -107,26 +125,9 @@
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
 		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': u'Production User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 2,
-		'role': u'Production User',
-		'submit': 0,
-		'write': 1
+		'role': u'Production User'
 	},
 
 	# DocPerm
@@ -143,14 +144,9 @@
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
 		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': u'Production Manager',
-		'submit': 0,
-		'write': 0
+		'role': u'Production Manager'
 	},
 
 	# DocPerm
@@ -159,15 +155,28 @@
 		'cancel': 0,
 		'create': 0,
 		'doctype': u'DocPerm',
-		'permlevel': 2,
-		'role': u'Production Manager',
+		'permlevel': 1,
+		'role': u'Material Manager',
 		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 1,
+		'cancel': 1,
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'submit': 1,
 		'write': 1
 	},
 
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'warehouse',
 		'fieldtype': u'Section Break',
 		'label': u'Warehouse',
 		'oldfieldtype': u'Section Break',
@@ -177,6 +186,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -291,7 +301,7 @@
 		'fieldtype': u'Link',
 		'hidden': 1,
 		'label': u'Sales Invoice No',
-		'options': u'Receivable Voucher',
+		'options': u'Sales Invoice',
 		'permlevel': 0,
 		'print_hide': 1
 	},
@@ -456,7 +466,7 @@
 		'fieldname': u'bom_no',
 		'fieldtype': u'Link',
 		'label': u'BOM No',
-		'options': u'Bill Of Materials',
+		'options': u'BOM',
 		'permlevel': 0
 	},
 
@@ -495,6 +505,7 @@
 	{
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'warehouse_html',
 		'fieldtype': u'HTML',
 		'label': u'Warehouse HTML',
 		'no_copy': 0,
@@ -563,6 +574,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break1',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
@@ -755,6 +767,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'items',
 		'fieldtype': u'Section Break',
 		'label': u'Items',
 		'oldfieldtype': u'Section Break',
@@ -764,6 +777,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'get_stock_and_rate',
 		'fieldtype': u'Button',
 		'label': u'Get Stock and Rate',
 		'oldfieldtype': u'Button',
@@ -775,6 +789,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break2',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
 		'permlevel': 0
@@ -785,6 +800,7 @@
 		'allow_on_submit': 0,
 		'colour': u'White:FFF',
 		'doctype': u'DocField',
+		'fieldname': u'get_items',
 		'fieldtype': u'Button',
 		'hidden': 0,
 		'in_filter': 0,
@@ -801,6 +817,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'section_break0',
 		'fieldtype': u'Section Break',
 		'oldfieldtype': u'Section Break',
 		'options': u'Simple',
@@ -846,6 +863,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'other_details',
 		'fieldtype': u'Section Break',
 		'label': u'Other Details',
 		'oldfieldtype': u'Section Break',
diff --git a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.txt b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.txt
index 03ee1af..9b0170f 100644
--- a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.txt
+++ b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.txt
@@ -3,134 +3,134 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:25',
+		'creation': '2012-03-27 14:36:38',
 		'docstatus': 0,
-		'modified': '2012-01-12 11:51:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:38',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'MTND/.######',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'autoname': u'MTND/.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 26
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Stock Entry Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Stock Entry Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# DocType, Stock Entry Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Stock Entry Detail'
+		'name': u'Stock Entry Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 's_warehouse',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u's_warehouse',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Source Warehouse',
-		'oldfieldname': 's_warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
+		'label': u'Source Warehouse',
+		'oldfieldname': u's_warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 't_warehouse',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u't_warehouse',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Target Warehouse',
-		'oldfieldname': 't_warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
+		'label': u'Target Warehouse',
+		'oldfieldname': u't_warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fg_item',
-		'fieldtype': 'Check',
+		'doctype': u'DocField',
+		'fieldname': u'fg_item',
+		'fieldtype': u'Check',
 		'in_filter': 1,
-		'label': 'FG Item',
-		'oldfieldname': 'fg_item',
-		'oldfieldtype': 'Check',
+		'label': u'FG Item',
+		'oldfieldname': u'fg_item',
+		'oldfieldtype': u'Check',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
 		'permlevel': 0,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'batch_no',
-		'fieldtype': 'Link',
-		'label': 'Batch No',
-		'oldfieldname': 'batch_no',
-		'oldfieldtype': 'Link',
-		'options': 'Batch',
+		'doctype': u'DocField',
+		'fieldname': u'batch_no',
+		'fieldtype': u'Link',
+		'label': u'Batch No',
+		'oldfieldname': u'batch_no',
+		'oldfieldtype': u'Link',
+		'options': u'Batch',
 		'permlevel': 0,
 		'print_hide': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'actual_qty',
-		'fieldtype': 'Read Only',
+		'doctype': u'DocField',
+		'fieldname': u'actual_qty',
+		'fieldtype': u'Read Only',
 		'in_filter': 1,
-		'label': 'Actual Qty (at source)',
+		'label': u'Actual Qty (at source)',
 		'no_copy': 1,
-		'oldfieldname': 'actual_qty',
-		'oldfieldtype': 'Read Only',
+		'oldfieldname': u'actual_qty',
+		'oldfieldtype': u'Read Only',
 		'permlevel': 1,
 		'print_hide': 1,
 		'reqd': 0,
@@ -139,67 +139,67 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'label': 'Qty',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'qty',
+		'fieldtype': u'Currency',
+		'label': u'Qty',
+		'oldfieldname': u'qty',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'reqd_qty',
-		'fieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'reqd_qty',
+		'fieldtype': u'Currency',
 		'in_filter': 0,
-		'label': 'Reqd Qty',
-		'oldfieldname': 'reqd_qty',
-		'oldfieldtype': 'Currency',
+		'label': u'Reqd Qty',
+		'oldfieldname': u'reqd_qty',
+		'oldfieldtype': u'Currency',
 		'permlevel': 3,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'uom',
-		'fieldtype': 'Link',
-		'label': 'UOM',
-		'oldfieldname': 'uom',
-		'oldfieldtype': 'Link',
-		'options': 'UOM',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'uom',
+		'fieldtype': u'Link',
+		'label': u'UOM',
+		'oldfieldname': u'uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM',
 		'permlevel': 0,
 		'reqd': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'conversion_factor',
-		'fieldtype': 'Currency',
-		'label': 'Conversion Factor',
-		'oldfieldname': 'conversion_factor',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'conversion_factor',
+		'fieldtype': u'Currency',
+		'label': u'Conversion Factor',
+		'oldfieldname': u'conversion_factor',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Link',
 		'in_filter': 0,
-		'label': 'Stock UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Link',
-		'options': 'UOM',
+		'label': u'Stock UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 0
@@ -207,60 +207,60 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'transfer_qty',
-		'fieldtype': 'Currency',
-		'label': 'Stock Qty',
-		'oldfieldname': 'transfer_qty',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'transfer_qty',
+		'fieldtype': u'Currency',
+		'label': u'Stock Qty',
+		'oldfieldname': u'transfer_qty',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no',
-		'fieldtype': 'Text',
-		'label': 'Serial No',
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Text',
+		'label': u'Serial No',
 		'no_copy': 1,
-		'oldfieldname': 'serial_no',
-		'oldfieldtype': 'Text',
+		'oldfieldname': u'serial_no',
+		'oldfieldtype': u'Text',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'incoming_rate',
-		'fieldtype': 'Currency',
-		'label': 'Incoming Rate',
-		'oldfieldname': 'incoming_rate',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'incoming_rate',
+		'fieldtype': u'Currency',
+		'label': u'Incoming Rate',
+		'oldfieldname': u'incoming_rate',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amount',
-		'fieldtype': 'Currency',
-		'label': 'Amount',
-		'oldfieldname': 'amount',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'amount',
+		'fieldtype': u'Currency',
+		'label': u'Amount',
+		'oldfieldname': u'amount',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'description': 'BOM No. for a Finished Good Item',
-		'doctype': 'DocField',
-		'fieldname': 'bom_no',
-		'fieldtype': 'Link',
-		'label': 'BOM No.',
-		'options': 'Bill Of Materials',
+		'description': u'BOM No. for a Finished Good Item',
+		'doctype': u'DocField',
+		'fieldname': u'bom_no',
+		'fieldtype': u'Link',
+		'label': u'BOM No.',
+		'options': u'BOM',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/stock_ledger/stock_ledger.txt b/erpnext/stock/doctype/stock_ledger/stock_ledger.txt
index 2bbfbb9..cebe0d0 100644
--- a/erpnext/stock/doctype/stock_ledger/stock_ledger.txt
+++ b/erpnext/stock/doctype/stock_ledger/stock_ledger.txt
@@ -3,36 +3,36 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:25',
+		'creation': '2012-03-27 14:36:38',
 		'docstatus': 0,
-		'modified': '2010-12-16 23:57:05',
-		'modified_by': 'nabin@webnotestech.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:38',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'hide_toolbar': 1,
 		'in_create': 1,
 		'issingle': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 10
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Stock Ledger',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Stock Ledger',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 1,
 		'read': 1
 	},
@@ -40,20 +40,18 @@
 	# DocType, Stock Ledger
 	{
 		'doctype': 'DocType',
-		'name': 'Stock Ledger'
+		'name': u'Stock Ledger'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'All'
+		'doctype': u'DocPerm',
+		'role': u'All'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'Material User'
+		'doctype': u'DocPerm',
+		'role': u'Material User'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index c9d23c6..bb23226 100644
--- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -83,9 +83,9 @@
 	# Nobody can do SL Entries where posting date is before freezing date except authorized person
 	#----------------------------------------------------------------------------------------------
 	def check_stock_frozen_date(self):
-		stock_frozen_upto = get_value('Manage Account', None, 'stock_frozen_upto') or ''
+		stock_frozen_upto = get_value('Global Defaults', None, 'stock_frozen_upto') or ''
 		if stock_frozen_upto:
-			stock_auth_role = get_value('Manage Account', None,'stock_auth_role')
+			stock_auth_role = get_value('Global Defaults', None,'stock_auth_role')
 			if getdate(self.doc.posting_date) <= getdate(stock_frozen_upto) and not stock_auth_role in webnotes.user.get_roles():
 				msgprint("You are not authorized to do / modify back dated stock entries before %s" % getdate(stock_frozen_upto).strftime('%d-%m-%Y'), raise_exception=1)
 
diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
index 823837a..d5ea870 100644
--- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
+++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
@@ -3,52 +3,60 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:25',
+		'creation': '2012-03-27 14:36:38',
 		'docstatus': 0,
-		'modified': '2011-06-02 15:42:37',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:38',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1309508840',
-		'autoname': 'SLE/.########',
-		'colour': 'White:FFF',
+		'_last_update': u'1322549701',
+		'autoname': u'SLE/.########',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'hide_toolbar': 1,
 		'in_create': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 53
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Stock Ledger Entry',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Stock Ledger Entry',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Stock Ledger Entry',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Stock Ledger Entry',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Stock Ledger Entry
 	{
 		'doctype': 'DocType',
-		'name': 'Stock Ledger Entry'
+		'name': u'Stock Ledger Entry'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
 	},
 
 	# DocPerm
@@ -56,271 +64,244 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material User',
+		'role': u'Material User',
 		'submit': 0,
 		'write': 0
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 1,
-		'role': 'All'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 1,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 2,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
 		'permlevel': 1,
 		'reqd': 0,
 		'search_index': 1,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no',
-		'fieldtype': 'Text',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Text',
 		'in_filter': 0,
-		'label': 'Serial No',
+		'label': u'Serial No',
 		'permlevel': 0,
 		'search_index': 0,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'batch_no',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Batch No',
-		'oldfieldname': 'batch_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'batch_no',
+		'fieldtype': u'Data',
+		'label': u'Batch No',
+		'oldfieldname': u'batch_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse',
-		'fieldtype': 'Link',
-		'idx': 4,
+		'doctype': u'DocField',
+		'fieldname': u'warehouse',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Warehouse',
-		'oldfieldname': 'warehouse',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse',
+		'label': u'Warehouse',
+		'oldfieldname': u'warehouse',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse',
 		'permlevel': 1,
 		'search_index': 1,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse_type',
-		'fieldtype': 'Select',
-		'idx': 5,
+		'doctype': u'DocField',
+		'fieldname': u'warehouse_type',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Warehouse Type',
-		'oldfieldname': 'warehouse_type',
-		'oldfieldtype': 'Select',
-		'options': 'link:Warehouse Type',
+		'label': u'Warehouse Type',
+		'oldfieldname': u'warehouse_type',
+		'oldfieldtype': u'Select',
+		'options': u'link:Warehouse Type',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'description': 'The date at which current entry will get or has actually executed.',
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
-		'idx': 6,
+		'description': u'The date at which current entry will get or has actually executed.',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Posting Date',
-		'oldfieldname': 'posting_date',
-		'oldfieldtype': 'Date',
+		'label': u'Posting Date',
+		'oldfieldname': u'posting_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'reqd': 0,
 		'search_index': 1,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'posting_time',
-		'fieldtype': 'Time',
-		'idx': 7,
+		'doctype': u'DocField',
+		'fieldname': u'posting_time',
+		'fieldtype': u'Time',
 		'in_filter': 0,
-		'label': 'Posting Time',
-		'oldfieldname': 'posting_time',
-		'oldfieldtype': 'Time',
-		'permlevel': 1,
-		'search_index': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'description': 'The date at which current entry is made in system.',
-		'doctype': 'DocField',
-		'fieldname': 'transaction_date',
-		'fieldtype': 'Date',
-		'idx': 8,
-		'in_filter': 1,
-		'label': 'Transaction Date',
-		'oldfieldname': 'transaction_date',
-		'oldfieldtype': 'Date',
+		'label': u'Posting Time',
+		'oldfieldname': u'posting_time',
+		'oldfieldtype': u'Time',
 		'permlevel': 1,
 		'search_index': 0,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_type',
-		'fieldtype': 'Data',
-		'idx': 9,
+		'description': u'The date at which current entry is made in system.',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Voucher Type',
-		'oldfieldname': 'voucher_type',
-		'oldfieldtype': 'Data',
+		'label': u'Transaction Date',
+		'oldfieldname': u'transaction_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'search_index': 0,
-		'width': '150px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_no',
-		'fieldtype': 'Data',
-		'idx': 10,
+		'doctype': u'DocField',
+		'fieldname': u'voucher_type',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Voucher No',
-		'oldfieldname': 'voucher_no',
-		'oldfieldtype': 'Data',
+		'label': u'Voucher Type',
+		'oldfieldname': u'voucher_type',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'search_index': 0,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_detail_no',
-		'fieldtype': 'Data',
-		'idx': 11,
-		'label': 'Voucher Detail No',
-		'oldfieldname': 'voucher_detail_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'width': '150px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'actual_qty',
-		'fieldtype': 'Currency',
-		'idx': 12,
+		'doctype': u'DocField',
+		'fieldname': u'voucher_no',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Actual Quantity',
-		'oldfieldname': 'actual_qty',
-		'oldfieldtype': 'Currency',
+		'label': u'Voucher No',
+		'oldfieldname': u'voucher_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
-		'width': '150px'
+		'search_index': 0,
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'incoming_rate',
-		'fieldtype': 'Currency',
-		'idx': 13,
-		'label': 'Incoming Rate',
-		'oldfieldname': 'incoming_rate',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'voucher_detail_no',
+		'fieldtype': u'Data',
+		'label': u'Voucher Detail No',
+		'oldfieldname': u'voucher_detail_no',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'actual_qty',
+		'fieldtype': u'Currency',
+		'in_filter': 1,
+		'label': u'Actual Quantity',
+		'oldfieldname': u'actual_qty',
+		'oldfieldtype': u'Currency',
+		'permlevel': 1,
+		'width': u'150px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'incoming_rate',
+		'fieldtype': u'Currency',
+		'label': u'Incoming Rate',
+		'oldfieldname': u'incoming_rate',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_uom',
-		'fieldtype': 'Data',
-		'idx': 14,
-		'label': 'Stock UOM',
-		'oldfieldname': 'stock_uom',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'stock_uom',
+		'fieldtype': u'Data',
+		'label': u'Stock UOM',
+		'oldfieldname': u'stock_uom',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'bin_aqat',
-		'fieldtype': 'Currency',
-		'idx': 15,
+		'doctype': u'DocField',
+		'fieldname': u'bin_aqat',
+		'fieldtype': u'Currency',
 		'in_filter': 1,
-		'label': 'Bin Actual Qty After Transaction',
-		'oldfieldname': 'bin_aqat',
-		'oldfieldtype': 'Currency',
+		'label': u'Bin Actual Qty After Transaction',
+		'oldfieldname': u'bin_aqat',
+		'oldfieldtype': u'Currency',
 		'permlevel': 1,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'ma_rate',
-		'fieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'ma_rate',
+		'fieldtype': u'Currency',
 		'hidden': 1,
-		'idx': 16,
-		'label': 'Moving Average Rate',
-		'oldfieldname': 'ma_rate',
-		'oldfieldtype': 'Currency',
+		'label': u'Moving Average Rate',
+		'oldfieldname': u'ma_rate',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -328,14 +309,13 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fcfs_rate',
-		'fieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'fcfs_rate',
+		'fieldtype': u'Currency',
 		'hidden': 1,
-		'idx': 17,
-		'label': 'FIFO Rate',
-		'oldfieldname': 'fcfs_rate',
-		'oldfieldtype': 'Currency',
+		'label': u'FIFO Rate',
+		'oldfieldname': u'fcfs_rate',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -343,105 +323,99 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'valuation_rate',
-		'fieldtype': 'Currency',
-		'idx': 18,
-		'label': 'Valuation Rate',
-		'oldfieldname': 'valuation_rate',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'valuation_rate',
+		'fieldtype': u'Currency',
+		'label': u'Valuation Rate',
+		'oldfieldname': u'valuation_rate',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'stock_value',
-		'fieldtype': 'Currency',
-		'idx': 19,
-		'label': 'Stock Value',
-		'oldfieldname': 'stock_value',
-		'oldfieldtype': 'Currency',
+		'doctype': u'DocField',
+		'fieldname': u'stock_value',
+		'fieldtype': u'Currency',
+		'label': u'Stock Value',
+		'oldfieldname': u'stock_value',
+		'oldfieldtype': u'Currency',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fcfs_stack',
-		'fieldtype': 'Text',
-		'hidden': 0,
-		'idx': 20,
+		'doctype': u'DocField',
+		'fieldname': u'fcfs_stack',
+		'fieldtype': u'Text',
+		'hidden': 1,
 		'in_filter': 0,
-		'label': 'FIFO Stack',
-		'oldfieldname': 'fcfs_stack',
-		'oldfieldtype': 'Text',
-		'permlevel': 0,
+		'label': u'FIFO Stack',
+		'oldfieldname': u'fcfs_stack',
+		'oldfieldtype': u'Text',
+		'permlevel': 2,
 		'print_hide': 1,
-		'report_hide': 0,
+		'report_hide': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Data',
-		'idx': 21,
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Data',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Data',
+		'options': u'link:Company',
 		'permlevel': 1,
 		'search_index': 0,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Data',
-		'idx': 22,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Data',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'search_index': 0,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_cancelled',
-		'fieldtype': 'Select',
-		'idx': 23,
+		'doctype': u'DocField',
+		'fieldname': u'is_cancelled',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Is Cancelled',
-		'oldfieldname': 'is_cancelled',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'label': u'Is Cancelled',
+		'oldfieldname': u'is_cancelled',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 1,
 		'search_index': 0,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_stock_entry',
-		'fieldtype': 'Select',
-		'idx': 24,
+		'doctype': u'DocField',
+		'fieldname': u'is_stock_entry',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Is Stock Entry',
-		'oldfieldname': 'is_stock_entry',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
+		'label': u'Is Stock Entry',
+		'oldfieldname': u'is_stock_entry',
+		'oldfieldtype': u'Select',
+		'options': u'\nYes\nNo',
 		'permlevel': 1,
 		'search_index': 0,
-		'width': '100px'
+		'width': u'100px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js
index 613c230..a297e0b 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js
@@ -18,6 +18,6 @@
 	if (doc.docstatus) hide_field('Steps');
 }
 
-cur_frm.cscript['Download Template'] = function(doc, cdt, cdn) {
+cur_frm.cscript.download_template = function(doc, cdt, cdn) {
 	$c_obj_csv(make_doclist(cdt, cdn), 'get_template', '');
 }
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.txt b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.txt
index 9a21130..c2fe30a 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.txt
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.txt
@@ -3,76 +3,78 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:26',
+		'creation': '2012-03-27 14:36:40',
 		'docstatus': 0,
-		'modified': '2011-11-24 12:04:03',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:45:52',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1321617741',
+		'_last_update': u'1321617741',
 		'allow_attach': 1,
-		'autoname': 'SR/.######',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'autoname': u'SR/.######',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
+		'is_submittable': 1,
 		'max_attachments': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
-		'search_fields': 'reconciliation_date',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'search_fields': u'reconciliation_date',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': 'Date: %(reconciliation_date)s, Time: %(reconciliation_time)s',
+		'subject': u'Date: %(reconciliation_date)s, Time: %(reconciliation_time)s',
 		'version': 107
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Stock Reconciliation',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Stock Reconciliation',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'amend': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Stock Reconciliation',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Stock Reconciliation',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Stock Reconciliation
 	{
 		'doctype': 'DocType',
-		'name': 'Stock Reconciliation'
+		'name': u'Stock Reconciliation'
 	},
 
 	# DocPerm
 	{
+		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Manager',
+		'role': u'Material Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
+		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Material Manager',
+		'role': u'Material Manager',
 		'submit': 0,
 		'write': 0
 	},
@@ -81,77 +83,104 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'Steps',
-		'options': '<div class="field_description"><b>Steps:</b><br>1. Enter Reconciliation Date and Time<br>2. Save the document<br>3. Attach csv file as per template.<br>4. Submit the document<br>5. Enter tilde (~) sign if no difference in qty or valuation rate</div>',
+		'doctype': u'DocField',
+		'fieldname': u'steps',
+		'fieldtype': u'HTML',
+		'label': u'Steps',
+		'options': u'<div class="field_description"><b>Steps:</b><br>1. Enter Reconciliation Date and Time<br>2. Save the document<br>3. Attach csv file as per template.<br>4. Submit the document<br>5. Enter tilde (~) sign if no difference in qty or valuation rate</div>',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'reconciliation_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'reconciliation_date',
+		'fieldtype': u'Date',
 		'in_filter': 0,
-		'label': 'Reconciliation Date',
-		'oldfieldname': 'reconciliation_date',
-		'oldfieldtype': 'Date',
+		'label': u'Reconciliation Date',
+		'oldfieldname': u'reconciliation_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'reconciliation_time',
-		'fieldtype': 'Time',
+		'doctype': u'DocField',
+		'fieldname': u'reconciliation_time',
+		'fieldtype': u'Time',
 		'in_filter': 0,
-		'label': 'Reconciliation Time',
-		'oldfieldname': 'reconciliation_time',
-		'oldfieldtype': 'Time',
+		'label': u'Reconciliation Time',
+		'oldfieldname': u'reconciliation_time',
+		'oldfieldtype': u'Time',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'remark',
-		'fieldtype': 'Text',
-		'label': 'Remark',
-		'oldfieldname': 'remark',
-		'oldfieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'remark',
+		'fieldtype': u'Text',
+		'label': u'Remark',
+		'oldfieldname': u'remark',
+		'oldfieldtype': u'Text',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Download Template',
+		'doctype': u'DocField',
+		'fieldname': u'download_template',
+		'fieldtype': u'Button',
+		'label': u'Download Template',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'label': 'File List',
+		'label': u'File List',
 		'no_copy': 1,
-		'oldfieldname': 'file_list',
-		'oldfieldtype': 'Text',
+		'oldfieldname': u'file_list',
+		'oldfieldtype': u'Text',
+		'permlevel': 1,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'depends_on': u'eval:doc.amended_from',
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Link',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'options': u'Sales Invoice',
 		'permlevel': 1,
 		'print_hide': 1
 	}
diff --git a/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt
index 7818530..87241b5 100644
--- a/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt
+++ b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt
@@ -3,159 +3,149 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:26',
+		'creation': '2012-03-27 14:36:40',
 		'docstatus': 0,
-		'modified': '2010-12-23 14:40:02',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:40',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 0,
 		'issingle': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
 		'read_only': 0,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 25
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Stock UOM Replace Utility',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Stock UOM Replace Utility',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Stock UOM Replace Utility',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Stock UOM Replace Utility',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Stock UOM Replace Utility
 	{
 		'doctype': 'DocType',
-		'name': 'Stock UOM Replace Utility'
+		'name': u'Stock UOM Replace Utility'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 0
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Master Manager',
+		'role': u'Material Master Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Manager',
+		'role': u'Material Manager',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Material Master Manager'
+		'role': u'Material Master Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Material Manager'
+		'role': u'Material Manager'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'label': 'Item',
-		'options': 'Item',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'label': u'Item',
+		'options': u'Item',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'current_stock_uom',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'label': 'Current Stock UOM',
-		'options': 'UOM',
+		'doctype': u'DocField',
+		'fieldname': u'current_stock_uom',
+		'fieldtype': u'Link',
+		'label': u'Current Stock UOM',
+		'options': u'UOM',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'new_stock_uom',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'New Stock UOM',
-		'options': 'UOM',
+		'doctype': u'DocField',
+		'fieldname': u'new_stock_uom',
+		'fieldtype': u'Link',
+		'label': u'New Stock UOM',
+		'options': u'UOM',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 5,
-		'label': 'Update',
-		'options': 'update_stock_uom',
+		'doctype': u'DocField',
+		'fieldname': u'update',
+		'fieldtype': u'Button',
+		'label': u'Update',
+		'options': u'update_stock_uom',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'conversion_factor',
-		'fieldtype': 'Currency',
-		'idx': 11,
-		'label': 'Conversion Factor',
+		'doctype': u'DocField',
+		'fieldname': u'conversion_factor',
+		'fieldtype': u'Currency',
+		'label': u'Conversion Factor',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt b/erpnext/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt
index 14608be..e3ee023 100644
--- a/erpnext/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt
+++ b/erpnext/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt
@@ -3,63 +3,61 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:29',
+		'creation': '2012-03-27 14:36:40',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:40',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'UCDD/.#####',
-		'colour': 'White:FFF',
+		'autoname': u'UCDD/.#####',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'UOM Conversion Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'UOM Conversion Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, UOM Conversion Detail
 	{
 		'doctype': 'DocType',
-		'name': 'UOM Conversion Detail'
+		'name': u'UOM Conversion Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'uom',
-		'fieldtype': 'Link',
-		'idx': 10,
-		'label': 'UOM',
-		'oldfieldname': 'uom',
-		'oldfieldtype': 'Link',
-		'options': 'UOM'
+		'doctype': u'DocField',
+		'fieldname': u'uom',
+		'fieldtype': u'Link',
+		'label': u'UOM',
+		'oldfieldname': u'uom',
+		'oldfieldtype': u'Link',
+		'options': u'UOM'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'conversion_factor',
-		'fieldtype': 'Float',
-		'idx': 11,
-		'label': 'Conversion Factor',
-		'oldfieldname': 'conversion_factor',
-		'oldfieldtype': 'Float'
+		'doctype': u'DocField',
+		'fieldname': u'conversion_factor',
+		'fieldtype': u'Float',
+		'label': u'Conversion Factor',
+		'oldfieldname': u'conversion_factor',
+		'oldfieldtype': u'Float'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/valuation_control/valuation_control.txt b/erpnext/stock/doctype/valuation_control/valuation_control.txt
index c2a2935..abaaa7b 100644
--- a/erpnext/stock/doctype/valuation_control/valuation_control.txt
+++ b/erpnext/stock/doctype/valuation_control/valuation_control.txt
@@ -3,29 +3,29 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:30',
+		'creation': '2012-03-27 14:36:40',
 		'docstatus': 0,
-		'modified': '2010-12-23 11:18:22',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:40',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 1,
 		'issingle': 1,
-		'module': 'Stock',
+		'module': u'Stock',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 4
 	},
 
 	# DocType, Valuation Control
 	{
 		'doctype': 'DocType',
-		'name': 'Valuation Control'
+		'name': u'Valuation Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/warehouse/warehouse.txt b/erpnext/stock/doctype/warehouse/warehouse.txt
index 87b0eda..2af4eac 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.txt
+++ b/erpnext/stock/doctype/warehouse/warehouse.txt
@@ -3,133 +3,61 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:30',
+		'creation': '2012-03-27 14:36:40',
 		'docstatus': 0,
-		'modified': '2011-11-15 15:06:24',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:40',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1319016431',
+		'_last_update': u'1319016431',
 		'allow_trash': 1,
-		'autoname': 'field:warehouse_name',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'autoname': u'field:warehouse_name',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
-		'module': 'Stock',
+		'document_type': u'Master',
+		'module': u'Stock',
 		'name': '__common__',
-		'search_fields': 'warehouse_type',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'search_fields': u'warehouse_type',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 58
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Warehouse',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Warehouse',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Warehouse',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Warehouse',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Warehouse
 	{
 		'doctype': 'DocType',
-		'name': 'Warehouse'
+		'name': u'Warehouse'
 	},
 
 	# DocPerm
 	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 2,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 2,
-		'role': 'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 1,
-		'role': 'All'
+		'role': u'All'
 	},
 
 	# DocPerm
@@ -137,239 +65,315 @@
 		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Material Master Manager',
+		'role': u'Material Master Manager',
 		'submit': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Material Master Manager'
+		'role': u'Material Master Manager'
+	},
+
+	# DocPerm
+	{
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 0,
-		'doctype': 'DocPerm',
-		'permlevel': 2,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Warehouse Detail',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'warehouse_detail',
+		'fieldtype': u'Section Break',
+		'label': u'Warehouse Detail',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warehouse_name',
-		'fieldtype': 'Data',
-		'label': 'Warehouse Name',
-		'oldfieldname': 'warehouse_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'warehouse_name',
+		'fieldtype': u'Data',
+		'label': u'Warehouse Name',
+		'oldfieldname': u'warehouse_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'warehouse_type',
-		'fieldtype': 'Link',
-		'label': 'Warehouse Type',
-		'oldfieldname': 'warehouse_type',
-		'oldfieldtype': 'Link',
-		'options': 'Warehouse Type',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'warehouse_type',
+		'fieldtype': u'Link',
+		'label': u'Warehouse Type',
+		'oldfieldname': u'warehouse_type',
+		'oldfieldtype': u'Link',
+		'options': u'Warehouse Type',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'The valuation of items in this warehouse will be considered for the company that is specified',
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'description': u'The valuation of items in this warehouse will be considered for the company that is specified',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'email_id',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'email_id',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'label': 'Email Id',
-		'oldfieldname': 'email_id',
-		'oldfieldtype': 'Data',
+		'label': u'Email Id',
+		'oldfieldname': u'email_id',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'print_hide': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'auto_indent_mail',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'auto_indent_mail',
+		'fieldtype': u'Select',
 		'hidden': 1,
-		'label': 'Send Reorder Alert Mail ',
+		'label': u'Send Reorder Alert Mail ',
 		'no_copy': 1,
-		'oldfieldname': 'auto_indent_mail',
-		'oldfieldtype': 'Select',
-		'options': 'No\nYes',
+		'oldfieldname': u'auto_indent_mail',
+		'oldfieldtype': u'Select',
+		'options': u'No\nYes',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1,
 		'reqd': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'phone_no',
-		'fieldtype': 'Int',
-		'label': 'Phone No',
-		'oldfieldname': 'phone_no',
-		'oldfieldtype': 'Int',
-		'options': 'Phone',
+		'doctype': u'DocField',
+		'fieldname': u'phone_no',
+		'fieldtype': u'Int',
+		'label': u'Phone No',
+		'oldfieldname': u'phone_no',
+		'oldfieldtype': u'Int',
+		'options': u'Phone',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'mobile_no',
-		'fieldtype': 'Int',
-		'label': 'Mobile No',
-		'oldfieldname': 'mobile_no',
-		'oldfieldtype': 'Int',
-		'options': 'Phone',
+		'doctype': u'DocField',
+		'fieldname': u'mobile_no',
+		'fieldtype': u'Int',
+		'label': u'Mobile No',
+		'oldfieldname': u'mobile_no',
+		'oldfieldtype': u'Int',
+		'options': u'Phone',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_line_1',
-		'fieldtype': 'Data',
-		'label': 'Address Line 1',
-		'oldfieldname': 'address_line_1',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'address_line_1',
+		'fieldtype': u'Data',
+		'label': u'Address Line 1',
+		'oldfieldname': u'address_line_1',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_line_2',
-		'fieldtype': 'Data',
-		'label': 'Address Line 2',
-		'oldfieldname': 'address_line_2',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'address_line_2',
+		'fieldtype': u'Data',
+		'label': u'Address Line 2',
+		'oldfieldname': u'address_line_2',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'state',
-		'fieldtype': 'Select',
-		'label': 'State',
-		'oldfieldname': 'state',
-		'oldfieldtype': 'Select',
-		'options': '\nSelect country first',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'state',
+		'fieldtype': u'Select',
+		'label': u'State',
+		'oldfieldname': u'state',
+		'oldfieldtype': u'Select',
+		'options': u'\nSelect country first',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'city',
-		'fieldtype': 'Data',
-		'label': 'City',
-		'oldfieldname': 'city',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'city',
+		'fieldtype': u'Data',
+		'label': u'City',
+		'oldfieldname': u'city',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'pin',
-		'fieldtype': 'Int',
-		'label': 'PIN',
-		'oldfieldname': 'pin',
-		'oldfieldtype': 'Int',
+		'doctype': u'DocField',
+		'fieldname': u'pin',
+		'fieldtype': u'Int',
+		'label': u'PIN',
+		'oldfieldname': u'pin',
+		'oldfieldtype': u'Int',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Repost Stock',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'repost_stock',
+		'fieldtype': u'Section Break',
+		'label': u'Repost Stock',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 2
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
+		'doctype': u'DocField',
+		'fieldname': u'repost_stock_ledger',
+		'fieldtype': u'Button',
 		'hidden': 0,
-		'label': 'Repost Stock Ledger',
-		'oldfieldtype': 'Button',
-		'options': 'repost_stock',
+		'label': u'Repost Stock Ledger',
+		'oldfieldtype': u'Button',
+		'options': u'repost_stock',
 		'permlevel': 2
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/page/stock_home/stock_home.html b/erpnext/stock/page/stock_home/stock_home.html
index 03c5fab..0ae70dc 100644
--- a/erpnext/stock/page/stock_home/stock_home.html
+++ b/erpnext/stock/page/stock_home/stock_home.html
@@ -49,7 +49,7 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title = "Readings of incoming quality inspections"
-							href="#!List/QA Inspection Report">Incoming Inspection</a>
+							href="#!List/Quality Inspection">Incoming Inspection</a>
 					</div>
 					<div class="section-item">
 						<a class="section-link" 
@@ -69,7 +69,7 @@
 					<div class="section-item">
 						<a class="section-link" 
 							title = "Helper for managing return of goods (sales or purchase)"
-							href="#!Form/Sales and Purchase Return Wizard/Sales and Purchase Return Wizard">Sales or Purchase Returns</a>
+							href="#!Form/Sales and Purchase Return Tool/Sales and Purchase Return Tool">Sales or Purchase Returns</a>
 					</div>
 				</div>
 			</div>
diff --git a/erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt b/erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt
index 0e029cb..d9e9973 100644
--- a/erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt
+++ b/erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-20 12:20:56',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-08-20 12:15:17',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Item\x01Item Name,Item\x01Item Group,Ref Rate Detail\x01Price List Name,Ref Rate Detail\x01Ref Rate,Ref Rate Detail\x01Currency',
-		'criteria_name': 'Itemwise Price List',
-		'doc_type': 'Ref Rate Detail',
+		'columns': u'Item\x01Item Name,Item\x01Item Group,Item Price\x01Price List Name,Item Price\x01Ref Rate,Item Price\x01Currency',
+		'criteria_name': u'Itemwise Price List',
+		'doc_type': u'Item Price',
 		'doctype': 'Search Criteria',
-		'filters': "{'Item\x01Saved':1,'Ref Rate Detail\x01Price List Name':'','Ref Rate Detail\x01Currency':''}",
-		'module': 'Stock',
+		'filters': u"{'Item\x01Saved':1,'Item Price\x01Price List Name':'','Item Price\x01Currency':''}",
+		'module': u'Stock',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Item',
-		'sort_by': '`tabItem`.`item_name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Item',
+		'sort_by': u'`tabItem`.`item_name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, itemwise_price_list
 	{
 		'doctype': 'Search Criteria',
-		'name': 'itemwise_price_list'
+		'name': u'itemwise_price_list'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.js b/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.js
deleted file mode 100644
index d9cf4d4..0000000
--- a/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-
-  this.add_filter({fieldname:'posting_date', label:'Posting Date', fieldtype:'Date', ignore : 1, parent:'Item'});
-  //this.add_filter({fieldname:'weekly_working_days', label:'Weekly Working Days', fieldtype:'Select', options:NEWLINE+1+NEWLINE+2+NEWLINE+3+NEWLINE+4+NEWLINE+5+NEWLINE+6+NEWLINE+7, ignore : 1, parent:'Item'});
-
-  this.filter_fields_dict['Item'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Item'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
-  //this.filter_fields_dict['Item'+FILTER_SEP +'Weekly Working Days'].df.in_first_page = 1;
-
-
-}
\ No newline at end of file
diff --git a/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.py b/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.py
deleted file mode 100644
index 2645d50..0000000
--- a/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.py
+++ /dev/null
@@ -1,148 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-mon_list = []
-data = {'start_date':0, 'end_date':1, 'working_days': 2}
-
-def make_month_list(start_date, end_date, mon_list, colnames, coltypes, colwidths, coloptions, col_idx):
-
-  # get period between from date and to date
-
-  period_diff = sql("select PERIOD_DIFF('%s','%s')"% (('').join( end_date.split('-')[i] for i in range(len(end_date.split('-')) - 1)),('').join(start_date.split('-')[i] for i in range(len(start_date.split('-')) - 1))))
-  period_diff = period_diff and int(period_diff[0][0])
-
-  for pd in range(int(period_diff) + 1):
-    # get last date
-    last_date = str(sql("select LAST_DAY('%s')" % start_date)[0][0])
-      
-    # get no of days in the month            
-    if not int(sql("select DATEDIFF('%s','%s')" % (end_date, last_date))[0][0]) >0:
-      last_date = end_date
-    diff = int(sql("select DATEDIFF('%s','%s')" % (last_date, start_date))[0][0]) + 1
-      
-    # make mon_list
-    mon_list.append([start_date, last_date, (diff > 26) and 26 or diff])
-           
-    # add months as Column names
-    month_name = sql("select MONTHNAME('%s')" % start_date)[0][0]
-  
-    colnames.append(str(str(month_name)[:3])+ '-'+ str(start_date[:4]))
-    coltypes.append('Currency')
-    colwidths.append('150px')
-    coloptions.append('')
-    col_idx[str(str(month_name)[:3])+ '-'+ str(start_date[:4])] = len(colnames) - 1
-
-    # get start date
-    start_date = str(sql("select DATE_ADD('%s',INTERVAL 1 DAY)" % last_date)[0][0])
-
-# Validation for 'ID' and 'Lead Time Days' Column Name
-if 'ID' not in colnames or 'Lead Time Days' not in colnames:
-  msgprint("Please select Id and Lead Time Days in 'Select Columns' tab Else Report will not be generated")
-  raise Exception
-
-# Validation for Posting Date Filters
-if not filter_values.get('posting_date') or not filter_values.get('posting_date1'):
-  msgprint("Please select From Posting Date and To Posting Date")
-  raise Exception
-else:
-  from_date = str(filter_values.get('posting_date'))
-  to_date = str(filter_values.get('posting_date1'))
-
-
-# Call Make Month List Function
-make_month_list(from_date, to_date, mon_list, colnames, coltypes, colwidths, coloptions, col_idx)
-
-
-# Add Column names 
-col = [['Total Daily Consumption','Currency','150px','']
-      ,['MIL(Min Inv. Level)','Currency','150px','']
-      ,['ROL(Re-Order Level)','Currency','150px','']
-      ,['Actual Quantity','Currency','150px','']
-      ,['Indented Quantity','Currency','150px','']
-      ,['Ordered Quantity','Currency','150px','']
-      ,['Shortage To Indent','Currency','150px','']
-      ,['MAR','Currency','100px','']
-      ,['LPR','Currency','100px','']]
-
-for c in col:
-  colnames.append(c[0])
-  coltypes.append(c[1])
-  colwidths.append(c[2])
-  coloptions.append(c[3])
-  col_idx[c[0]] = len(colnames) - 1
-
-for r in res:
-
-  # calculate Total Daily Consumption Monthly
-  count, tot_consumption, tot_days = 0, 0, 1
-  #for idx in range(col_idx['Stock Unit of Measurement'] + 1 , col_idx['Total Daily Consumption'] ):
-  for idx in range(col_idx['Lead Time Days'] + 1 , col_idx['Total Daily Consumption'] ):
-  
-    # As Consumption Means:= Adding Qty Transfered to WIP Warehouse ++ Qty Issued directly warehouse whose waraehouse_type != WIP Warehouse and Subtracting Qty Issued from WIP Warehouse
-    #Capture item qty coming to WIP Warehouse for production purpose which means consuming that items
-    add_con = sql("select ifnull(sum(t1.actual_qty),0)  from `tabStock Ledger Entry` t1 where t1.item_code = '%s' and t1.is_cancelled = 'No'  and t1.posting_date >= '%s' and t1.posting_date <= '%s' and t1.warehouse_type = 'WIP Warehouse' and t1.actual_qty > 0 " % (r[col_idx['ID']],mon_list[count][data['start_date']],mon_list[count][data['end_date']]))
-    
-    # This is Stock Entry which is of Type Material Issue also to mention that Source Warehouse should not be WIP WArehouse
-    #Transfering items to Internal Other Warehouse but not to WIP Warehouse
-    dir_con = sql("select ifnull(sum(t1.actual_qty),0) from `tabStock Ledger Entry` t1, `tabStock Entry Detail` t2 where t1.item_code = '%s' and t1.is_cancelled = 'No' and t1.posting_date >= '%s' and t1.posting_date <= '%s' and t1.warehouse_type != 'WIP Warehouse' and t1.actual_qty < 0 and t1.voucher_type = 'Stock Entry' and t1.voucher_detail_no = t2.name and ifnull(t2.t_warehouse, '') = ''"%(r[col_idx['ID']],mon_list[count][data['start_date']],mon_list[count][data['end_date']]))
-    
-    # This is Stock Entry which is of Type MAterial TRansfer also to mention that Source Warehouse should be WIP WArhouse
-    #like, transfering items from internal warehouse to customer
-    red_con = sql("select ifnull(sum(t1.actual_qty),0) from `tabStock Ledger Entry` t1, `tabStock Entry Detail` t2 where t1.item_code = '%s' and t1.is_cancelled = 'No'  and t1.posting_date >= '%s' and t1.posting_date <= '%s' and t1.warehouse_type = 'WIP Warehouse' and t1.actual_qty < 0 and t1.voucher_type = 'Stock Entry' and t1.voucher_detail_no = t2.name and ifnull(t2.t_warehouse, '') != ''"%(r[col_idx['ID']],mon_list[count][data['start_date']],mon_list[count][data['end_date']]))
-    #msgprint(str(add_con[0][0]) + "~~~" + str(dir_con[0][0]) + "~~~" + str(red_con[0][0]))
-
-    add_con = add_con and add_con[0][0] or 0.00
-    dir_con = dir_con and ((-1) * dir_con[0][0]) or 0.00
-    red_con = red_con and red_con[0][0] or 0.00
-    tot_con = flt(add_con) + flt(dir_con) + flt(red_con)
-    #tot_con = add_con and add_con[0][0] or 0 + dir_con and (-1) * dir_con[0][0] or 0 +  red_con and red_con[0][0] or 0
-    tot_con = flt(r[col_idx['Lead Time Days']] and tot_con  or 0)
-
-
-    # monthly avg consumption
-    r.append(flt(tot_con / mon_list[count][data['working_days']]))
-
-    # calculate tot_consumption and tot_days   
-    tot_consumption = flt(tot_consumption) + flt(tot_con)
-    tot_days = (tot_days == 1) and flt(mon_list[count][data['working_days']]) or (flt(tot_days) + flt(mon_list[count][data['working_days']]))
-    count = count + 1  
-
-  # Calculate Daily Consumption
-  r.append(tot_consumption and flt(tot_consumption /tot_days) or 0)
-
-  # Calculate Minimum Inventory Level
-  r.append(flt(r[col_idx['Total Daily Consumption']]) * flt(r[col_idx['Lead Time Days']]))
- 
-  # Calculate Re-Order Level
-  r.append(flt(r[col_idx['MIL(Min Inv. Level)']] * 2))
-
-  # get stock level
-  stock_level = sql("select sum(t1.actual_qty), sum(t1.indented_qty), sum(t1.ordered_qty) from `tabBin` t1, `tabWarehouse` t2 where t1.warehouse = t2.name and t2.warehouse_type != 'WIP Warehouse' and t1.item_code = '%s'"%(r[col_idx['ID']]))
- 
-  r.append(stock_level and flt(stock_level[0][0]) or 0) # Actual Qty
-  r.append(stock_level and flt(stock_level[0][1]) or 0) # Indented Qty
-  r.append(stock_level and flt(stock_level[0][2]) or 0) # Ordered Qty
-  
-  # calculate shortage
-  r.append((r[col_idx['ROL(Re-Order Level)']] > 0) and flt(flt(r[col_idx['ROL(Re-Order Level)']]) - flt(r[col_idx['Actual Quantity']]) - flt(r[col_idx['Indented Quantity']]) - flt(r[col_idx['Ordered Quantity']])) or 0)
-
-  # get moving average rate
-  m_a_r = sql("select ifnull(sum(t1.ma_rate), 0)/ ifnull(count(t1.name),1) from `tabBin` t1, `tabWarehouse` t2 where t1.item_code = '%s' and ifnull(t1.ma_rate, 0) > 0 and t1.warehouse = t2.name and t2.warehouse_type != 'WIP Warehouse'" % r[col_idx['ID']])
-  r.append(m_a_r and flt(m_a_r[0][0]) or 0)
-    
-  # get recent last purchase rate 
-  lpr_rate = flt(sql("select last_purchase_rate from `tabItem` where name = '%s'" %r[col_idx['ID']])[0][0]) or 0.00
-  r.append(lpr_rate)
diff --git a/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.txt b/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.txt
deleted file mode 100644
index 4b3e396..0000000
--- a/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, shortage_to_indent
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-05-18 11:48:54',
-		'docstatus': 0,
-		'modified': '2011-05-18 11:52:59',
-		'modified_by': 'Administrator',
-		'owner': 'wasim@webnotestech.com'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Item\x01ID,Item\x01Item Name,Item\x01Description,Item\x01Lead Time Days',
-		'criteria_name': 'Shortage To Indent',
-		'doc_type': 'Item',
-		'doctype': 'Search Criteria',
-		'filters': "{'Item\x01Saved':1}",
-		'module': 'Stock',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabItem`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, shortage_to_indent
-	{
-		'doctype': 'Search Criteria',
-		'name': 'shortage_to_indent'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/search_criteria/shortage_to_indent/__init__.py b/erpnext/stock/search_criteria/shortage_to_purchase_request/__init__.py
similarity index 100%
rename from erpnext/stock/search_criteria/shortage_to_indent/__init__.py
rename to erpnext/stock/search_criteria/shortage_to_purchase_request/__init__.py
diff --git a/erpnext/stock/search_criteria/shortage_to_purchase_request/shortage_to_purchase_request.txt b/erpnext/stock/search_criteria/shortage_to_purchase_request/shortage_to_purchase_request.txt
new file mode 100644
index 0000000..91700ac
--- /dev/null
+++ b/erpnext/stock/search_criteria/shortage_to_purchase_request/shortage_to_purchase_request.txt
@@ -0,0 +1,33 @@
+# Search Criteria, shortage_to_purchase_request
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-30 14:50:44',
+		'docstatus': 0,
+		'modified': '2012-03-30 14:50:44',
+		'modified_by': u'Administrator',
+		'owner': u'wasim@webnotestech.com'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'columns': u'Item\x01ID,Item\x01Item Name,Item\x01Description,Item\x01Lead Time Days',
+		'criteria_name': u'Shortage To Purchase Request',
+		'doc_type': u'Item',
+		'doctype': 'Search Criteria',
+		'filters': u"{'Item\x01Saved':1}",
+		'module': u'Stock',
+		'name': '__common__',
+		'page_len': 50,
+		'sort_by': u'`tabItem`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
+	},
+
+	# Search Criteria, shortage_to_purchase_request
+	{
+		'doctype': 'Search Criteria',
+		'name': u'shortage_to_purchase_request'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.txt b/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.txt
index bbc8b5c..f2b0306 100644
--- a/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.txt
+++ b/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-08-16 13:42:24',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_cond': "`tabSerial No`.status = 'In Store'",
-		'columns': 'Serial No\x01ID,Serial No\x01Item Code,Serial No\x01Description,Serial No\x01Item Group,Serial No\x01Purchase Date',
-		'criteria_name': 'Stock Aging Report',
-		'doc_type': 'Serial No',
+		'add_cond': u"`tabSerial No`.status = 'In Store'",
+		'columns': u'Serial No\x01ID,Serial No\x01Item Code,Serial No\x01Description,Serial No\x01Item Group,Serial No\x01Purchase Date',
+		'criteria_name': u'Stock Aging Report',
+		'doc_type': u'Serial No',
 		'doctype': 'Search Criteria',
-		'filters': "{'Serial No\x01Saved':1,'Serial No\x01Submitted':1,'Serial No\x01Status':'In Store','Serial No\x01Maintenance Status':''}",
-		'module': 'Stock',
+		'filters': u"{'Serial No\x01Saved':1,'Serial No\x01Submitted':1,'Serial No\x01Status':'In Store','Serial No\x01Maintenance Status':''}",
+		'module': u'Stock',
 		'name': '__common__',
 		'page_len': 1000,
-		'sort_by': '`tabSerial No`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabSerial No`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, stock_aging_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'stock_aging_report'
+		'name': u'stock_aging_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/search_criteria/stock_ledger/stock_ledger.txt b/erpnext/stock/search_criteria/stock_ledger/stock_ledger.txt
index 34dd521..d7ede00 100644
--- a/erpnext/stock/search_criteria/stock_ledger/stock_ledger.txt
+++ b/erpnext/stock/search_criteria/stock_ledger/stock_ledger.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-10-14 08:43:05',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-10-14 08:31:40',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': '`tabItem`.`item_name`\n`tabItem`.`description`',
-		'add_cond': '`tabItem`.`name` = `tabStock Ledger Entry`.`item_code`',
-		'add_tab': '`tabItem`',
-		'columns': 'Stock Ledger Entry\x01Item Code,Stock Ledger Entry\x01Warehouse,Stock Ledger Entry\x01Posting Date,Stock Ledger Entry\x01Voucher Detail No,Stock Ledger Entry\x01Actual Quantity,Stock Ledger Entry\x01Bin Actual Qty After Transaction',
-		'criteria_name': 'Stock Ledger',
-		'doc_type': 'Stock Ledger Entry',
+		'add_col': u'`tabItem`.`item_name`\n`tabItem`.`description`',
+		'add_cond': u'`tabItem`.`name` = `tabStock Ledger Entry`.`item_code`',
+		'add_tab': u'`tabItem`',
+		'columns': u'Stock Ledger Entry\x01Item Code,Stock Ledger Entry\x01Warehouse,Stock Ledger Entry\x01Posting Date,Stock Ledger Entry\x01Voucher Detail No,Stock Ledger Entry\x01Actual Quantity,Stock Ledger Entry\x01Bin Actual Qty After Transaction',
+		'criteria_name': u'Stock Ledger',
+		'doc_type': u'Stock Ledger Entry',
 		'doctype': 'Search Criteria',
-		'filters': "{'Stock Ledger Entry\x01Is Cancelled':'','Stock Ledger Entry\x01Is Stock Entry':''}",
-		'module': 'Stock',
+		'filters': u"{'Stock Ledger Entry\x01Is Cancelled':'','Stock Ledger Entry\x01Is Stock Entry':''}",
+		'module': u'Stock',
 		'name': '__common__',
-		'standard': 'Yes'
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, stock_ledger
 	{
 		'doctype': 'Search Criteria',
-		'name': 'stock_ledger'
+		'name': u'stock_ledger'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/search_criteria/stock_level/stock_level.txt b/erpnext/stock/search_criteria/stock_level/stock_level.txt
index 252cdff..f19016e 100644
--- a/erpnext/stock/search_criteria/stock_level/stock_level.txt
+++ b/erpnext/stock/search_criteria/stock_level/stock_level.txt
@@ -3,34 +3,34 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:23',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-10-20 16:51:11',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': '`tabItem`.`item_name`\n`tabItem`.`description`',
-		'add_cond': '`tabItem`.name = `tabBin`.item_code',
-		'add_tab': '`tabItem`',
-		'columns': 'Bin\x01Warehouse,Bin\x01Item Code,Bin\x01UOM,Bin\x01Reserved Quantity,Bin\x01Actual Quantity,Bin\x01Ordered Quantity,Bin\x01Planned Qty,Bin\x01Projected Qty,Bin\x01Indented Quantity,Bin\x01Valuation Rate,Bin\x01Stock Value',
-		'criteria_name': 'Stock Level',
-		'doc_type': 'Bin',
+		'add_col': u'`tabItem`.`item_name`\n`tabItem`.`description`',
+		'add_cond': u'`tabItem`.name = `tabBin`.item_code',
+		'add_tab': u'`tabItem`',
+		'columns': u'Bin\x01Warehouse,Bin\x01Item Code,Bin\x01UOM,Bin\x01Reserved Quantity,Bin\x01Actual Quantity,Bin\x01Ordered Quantity,Bin\x01Planned Qty,Bin\x01Projected Qty,Bin\x01Quantity Requested for Purchase,Bin\x01Valuation Rate,Bin\x01Stock Value',
+		'criteria_name': u'Stock Level',
+		'doc_type': u'Bin',
 		'doctype': 'Search Criteria',
-		'filters': '{}',
-		'module': 'Stock',
+		'filters': u'{}',
+		'module': u'Stock',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabBin`.`warehouse`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabBin`.`warehouse`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, stock_level
 	{
 		'doctype': 'Search Criteria',
-		'name': 'stock_level'
+		'name': u'stock_level'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/search_criteria/stock_report/stock_report.txt b/erpnext/stock/search_criteria/stock_report/stock_report.txt
index df73fba..8a92201 100644
--- a/erpnext/stock/search_criteria/stock_report/stock_report.txt
+++ b/erpnext/stock/search_criteria/stock_report/stock_report.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-11-02 15:37:37',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-11-02 15:35:12',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Stock Ledger Entry\x01ID',
-		'criteria_name': 'Stock Report',
-		'doc_type': 'Stock Ledger Entry',
+		'columns': u'Stock Ledger Entry\x01ID',
+		'criteria_name': u'Stock Report',
+		'doc_type': u'Stock Ledger Entry',
 		'doctype': 'Search Criteria',
-		'filters': "{'Stock Ledger Entry\x01Is Cancelled':'','Stock Ledger Entry\x01Is Stock Entry':''}",
-		'module': 'Stock',
+		'filters': u"{'Stock Ledger Entry\x01Is Cancelled':'','Stock Ledger Entry\x01Is Stock Entry':''}",
+		'module': u'Stock',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabStock Ledger Entry`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabStock Ledger Entry`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, stock_report
 	{
 		'doctype': 'Search Criteria',
-		'name': 'stock_report'
+		'name': u'stock_report'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/DocType Label/Ticket/Ticket.txt b/erpnext/support/DocType Label/Ticket/Ticket.txt
deleted file mode 100644
index 8707e8f..0000000
--- a/erpnext/support/DocType Label/Ticket/Ticket.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'modified_by': 'Administrator', 'name': 'Ticket', 'parent': None, 'dt_label': 'Task', 'creation': '2010-06-28 12:55:47', 'modified': '2010-06-28 12:55:47', 'module': 'Accounts', 'doctype': 'DocType Label', 'idx': None, 'parenttype': None, 'owner': 'Administrator', 'docstatus': 0, 'dt': 'Ticket', 'parentfield': None}]
\ No newline at end of file
diff --git a/erpnext/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt b/erpnext/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt
index 55060ea..8bb3fa1 100644
--- a/erpnext/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt
+++ b/erpnext/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt
@@ -96,7 +96,7 @@
 		'match_id': 1,
 		'reference_doctype_key': 'prevdoc_doctype',
 		'to_field': 'maintenance_visit_details',
-		'to_table': 'Maintenance Visit Detail'
+		'to_table': 'Maintenance Visit Purpose'
 	},
 
 	# Table Mapper Detail
diff --git a/erpnext/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt b/erpnext/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt
index ccd0e60..b22ca54 100644
--- a/erpnext/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt
+++ b/erpnext/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt
@@ -83,10 +83,10 @@
 	{
 		'doctype': 'Table Mapper Detail',
 		'from_field': 'sales_order_details',
-		'from_table': 'Sales Order Detail',
+		'from_table': 'Sales Order Item',
 		'match_id': 1,
 		'to_field': 'item_maintenance_detail',
-		'to_table': 'Item Maintenance Detail',
+		'to_table': 'Maintenance Schedule Item',
 		'validation_logic': 'docstatus =1'
 	},
 
diff --git a/erpnext/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt b/erpnext/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt
index e4bd45b..6ef99b4 100644
--- a/erpnext/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt
+++ b/erpnext/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt
@@ -83,10 +83,10 @@
 	{
 		'doctype': 'Table Mapper Detail',
 		'from_field': 'sales_order_details',
-		'from_table': 'Sales Order Detail',
+		'from_table': 'Sales Order Item',
 		'match_id': 1,
 		'to_field': 'maintenance_visit_details',
-		'to_table': 'Maintenance Visit Detail'
+		'to_table': 'Maintenance Visit Purpose'
 	},
 
 	# Table Mapper Detail
diff --git a/erpnext/support/Module Def/Support/Support.txt b/erpnext/support/Module Def/Support/Support.txt
deleted file mode 100644
index 9c66c3d..0000000
--- a/erpnext/support/Module Def/Support/Support.txt
+++ /dev/null
@@ -1,149 +0,0 @@
-# Module Def, Support
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-01 17:42:15',
-		'docstatus': 0,
-		'modified': '2011-10-10 16:59:49',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'name': '__common__',
-		'parent': 'Support',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def Item
-	{
-		'doctype': 'Module Def Item',
-		'name': '__common__',
-		'parent': 'Support',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def
-	{
-		'disabled': 'No',
-		'doctype': u'Module Def',
-		'doctype_list': 'DocType Label, Ticket',
-		'is_hidden': 'No',
-		'module_desc': 'Manage maintenance quotes, orders, schedule etc.',
-		'module_icon': 'Maintenance.gif',
-		'module_label': 'Support',
-		'module_name': 'Support',
-		'module_seq': 8,
-		'name': '__common__'
-	},
-
-	# Module Def, Support
-	{
-		'doctype': u'Module Def',
-		'name': 'Support'
-	},
-
-	# Module Def Item
-	{
-		'description': "Database of Support Ticket's raised by Customers",
-		'display_name': 'Support Ticket',
-		'doc_name': 'Support Ticket',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\nopening_date\ncustomer\nallocated_to'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Create schedule based on maintenance order',
-		'display_name': 'Maintenance Schedule',
-		'doc_name': 'Maintenance Schedule',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\ntransaction_date\ncustomer\nsales_order_no'
-	},
-
-	# Module Def Item
-	{
-		'description': 'Database of issues raised your Customers',
-		'display_name': 'Customer Issue',
-		'doc_name': 'Customer Issue',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\ncomplaint_date\ncustomer\nallocated_to\nallocated_on'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Maintenance Visit',
-		'doc_name': 'Maintenance Visit',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'fields': 'status\nmntc_date\ncustomer\nmaintenance_type\ncompletion_status'
-	},
-
-	# Module Def Item
-	{
-		'description': 'List of all scheduled mainteance. You can filter by sales person, date, serial no etc. ',
-		'display_name': 'Maintenance Schedule Details',
-		'doc_name': 'Maintenance Schedule Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'description': 'List of all issues raised by customer',
-		'display_name': 'Customer Issues',
-		'doc_name': 'Customer Issue',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Warranty/AMC Expiry Details',
-		'doc_name': 'Serial No',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Warranty/AMC Summary',
-		'doc_name': 'Serial No',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Maintenance Orderwise Pending Amount To Bill',
-		'doc_name': 'Sales Order Detail',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Administrator'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Maintenance User'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Maintenance Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/support/Role/Maintenance Manager/Maintenance Manager.txt b/erpnext/support/Role/Maintenance Manager/Maintenance Manager.txt
deleted file mode 100644
index 291a52c..0000000
--- a/erpnext/support/Role/Maintenance Manager/Maintenance Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Maintenance Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-07-22 15:19:33',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Support',
-		'name': '__common__',
-		'role_name': 'Maintenance Manager'
-	},
-
-	# Role, Maintenance Manager
-	{
-		'doctype': 'Role',
-		'name': 'Maintenance Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/support/Role/Maintenance User/Maintenance User.txt b/erpnext/support/Role/Maintenance User/Maintenance User.txt
deleted file mode 100644
index c0a9e4e..0000000
--- a/erpnext/support/Role/Maintenance User/Maintenance User.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Maintenance User
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-07-22 15:19:19',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Support',
-		'name': '__common__',
-		'role_name': 'Maintenance User'
-	},
-
-	# Role, Maintenance User
-	{
-		'doctype': 'Role',
-		'name': 'Maintenance User'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/support/Role/Support Manager/Support Manager.txt b/erpnext/support/Role/Support Manager/Support Manager.txt
deleted file mode 100644
index 409280f..0000000
--- a/erpnext/support/Role/Support Manager/Support Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Support Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-12-28 17:02:39',
-		'docstatus': 0,
-		'modified': '2010-12-28 15:17:40',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Support',
-		'name': '__common__',
-		'role_name': 'Support Manager'
-	},
-
-	# Role, Support Manager
-	{
-		'doctype': 'Role',
-		'name': 'Support Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/support/Role/Support Team/Support Team.txt b/erpnext/support/Role/Support Team/Support Team.txt
deleted file mode 100644
index f5bcca6..0000000
--- a/erpnext/support/Role/Support Team/Support Team.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Support Team
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-12-28 17:02:39',
-		'docstatus': 0,
-		'modified': '2010-12-28 15:19:11',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': 'Support',
-		'name': '__common__',
-		'role_name': 'Support Team'
-	},
-
-	# Role, Support Team
-	{
-		'doctype': 'Role',
-		'name': 'Support Team'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/support/__init__.py b/erpnext/support/__init__.py
index e69de29..b94538b 100644
--- a/erpnext/support/__init__.py
+++ b/erpnext/support/__init__.py
@@ -0,0 +1,6 @@
+install_docs = [
+	{'doctype':'Role', 'name':'Support Team'},
+	{'doctype':'Role', 'name':'Support Manager'},
+	{'doctype':'Role', 'name':'Maintenance User'},
+	{'doctype':'Role', 'name':'Maintenance Manager'}
+]
\ No newline at end of file
diff --git a/erpnext/support/doctype/customer_issue/customer_issue.js b/erpnext/support/doctype/customer_issue/customer_issue.js
index 3890cb7..cb909ac 100644
--- a/erpnext/support/doctype/customer_issue/customer_issue.js
+++ b/erpnext/support/doctype/customer_issue/customer_issue.js
@@ -63,7 +63,7 @@
 
 
 
-cur_frm.cscript['Make Maintenance Visit'] = function(doc, cdt, cdn) {
+cur_frm.cscript.make_maintenance_visit = function(doc, cdt, cdn) {
   if (doc.docstatus == 1) { 
     $c_obj(make_doclist(doc.doctype, doc.name),'check_maintenance_visit','',
       function(r,rt){
@@ -74,7 +74,7 @@
                   'from_doctype':'Customer Issue',
                   'to_doctype':'Maintenance Visit',
                   'from_docname':doc.name,
-            'from_to_list':"[['Customer Issue', 'Maintenance Visit'], ['Customer Issue', 'Maintenance Visit Detail']]"
+            'from_to_list':"[['Customer Issue', 'Maintenance Visit'], ['Customer Issue', 'Maintenance Visit Purpose']]"
           }
           , function(r,rt) {
             loaddoc("Maintenance Visit", n);
diff --git a/erpnext/support/doctype/customer_issue/customer_issue.py b/erpnext/support/doctype/customer_issue/customer_issue.py
index af839cf..096d688 100644
--- a/erpnext/support/doctype/customer_issue/customer_issue.py
+++ b/erpnext/support/doctype/customer_issue/customer_issue.py
@@ -48,7 +48,7 @@
 #check if maintenance schedule already generated
 #============================================
   def check_maintenance_visit(self):
-    nm = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Detail` t2 where t2.parent=t1.name and t2.prevdoc_docname=%s and t1.docstatus=1 and t1.completion_status='Fully Completed'", self.doc.name)
+    nm = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent=t1.name and t2.prevdoc_docname=%s and t1.docstatus=1 and t1.completion_status='Fully Completed'", self.doc.name)
     nm = nm and nm[0][0] or ''
     
     if not nm:
@@ -72,7 +72,7 @@
     #  raise Exception
   
   def on_cancel(self):
-    lst = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Detail` t2 where t2.parent = t1.name and t2.prevdoc_docname = '%s' and  t1.docstatus!=2"%(self.doc.name))
+    lst = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent = t1.name and t2.prevdoc_docname = '%s' and  t1.docstatus!=2"%(self.doc.name))
     if lst:
       lst1 = ','.join([x[0] for x in lst])
       msgprint("Maintenance Visit No. "+lst1+" already created against this customer issue. So can not be Cancelled")
diff --git a/erpnext/support/doctype/customer_issue/customer_issue.txt b/erpnext/support/doctype/customer_issue/customer_issue.txt
index b19a1a8..2c27735 100644
--- a/erpnext/support/doctype/customer_issue/customer_issue.txt
+++ b/erpnext/support/doctype/customer_issue/customer_issue.txt
@@ -3,62 +3,54 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:57',
+		'creation': '2012-03-27 14:36:40',
 		'docstatus': 0,
-		'modified': '2012-01-19 12:29:40',
-		'modified_by': 'Administrator',
-		'owner': 'harshada@webnotestech.com'
+		'modified': '2012-03-27 14:45:47',
+		'modified_by': u'Administrator',
+		'owner': u'harshada@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1325570647',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'_last_update': u'1325570647',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Support',
+		'is_submittable': 1,
+		'module': u'Support',
 		'name': '__common__',
-		'search_fields': 'status,customer,customer_name,allocated_to,allocated_on, territory',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
+		'search_fields': u'status,customer,customer_name,allocated_to,allocated_on, territory',
+		'section_style': u'Tabbed',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': '%(complaint)s By %(complaint_raised_by)s on %(issue_date)s',
-		'tag_fields': 'status',
+		'subject': u'%(complaint)s By %(complaint_raised_by)s on %(issue_date)s',
+		'tag_fields': u'status',
 		'version': 97
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Customer Issue',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Customer Issue',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Customer Issue',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Customer Issue',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Customer Issue
 	{
 		'doctype': 'DocType',
-		'name': 'Customer Issue'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Guest',
-		'write': 1
+		'name': u'Customer Issue'
 	},
 
 	# DocPerm
@@ -66,18 +58,18 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
@@ -85,18 +77,18 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Maintenance Manager',
+		'role': u'Maintenance Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Maintenance Manager'
+		'role': u'Maintenance Manager'
 	},
 
 	# DocPerm
@@ -104,40 +96,50 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Maintenance User',
+		'role': u'Maintenance User',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Maintenance User'
+		'role': u'Maintenance User'
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Guest',
+		'write': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Customer Issue',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'customer_issue',
+		'fieldtype': u'Section Break',
+		'label': u'Customer Issue',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
 		'in_filter': 0,
-		'label': 'Series',
+		'label': u'Series',
 		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
-		'options': '\nCI/2010-2011/',
+		'oldfieldname': u'naming_series',
+		'oldfieldtype': u'Select',
+		'options': u'\nCI/2010-2011/',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -145,17 +147,17 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Open',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'default': u'Open',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Status',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nOpen\nClosed\nWork In Progress\nCancelled',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nOpen\nClosed\nWork In Progress\nCancelled',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -163,14 +165,14 @@
 
 	# DocField
 	{
-		'default': 'Today',
-		'doctype': 'DocField',
-		'fieldname': 'complaint_date',
-		'fieldtype': 'Date',
+		'default': u'Today',
+		'doctype': u'DocField',
+		'fieldname': u'complaint_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Issue Date',
-		'oldfieldname': 'complaint_date',
-		'oldfieldtype': 'Date',
+		'label': u'Issue Date',
+		'oldfieldname': u'complaint_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -178,142 +180,143 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'complaint_raised_by',
-		'fieldtype': 'Data',
-		'label': 'Raised By',
-		'oldfieldname': 'complaint_raised_by',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'complaint_raised_by',
+		'fieldtype': u'Data',
+		'label': u'Raised By',
+		'oldfieldname': u'complaint_raised_by',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'from_company',
-		'fieldtype': 'Data',
-		'label': 'From Company',
-		'oldfieldname': 'from_company',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'from_company',
+		'fieldtype': u'Data',
+		'label': u'From Company',
+		'oldfieldname': u'from_company',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'service_address',
-		'fieldtype': 'Small Text',
-		'label': 'Service Address',
-		'oldfieldname': 'service_address',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'service_address',
+		'fieldtype': u'Small Text',
+		'label': u'Service Address',
+		'oldfieldname': u'service_address',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Customer',
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Link',
-		'options': 'Customer',
+		'label': u'Customer',
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_address',
-		'fieldtype': 'Link',
-		'label': 'Customer Address',
-		'options': 'Address',
+		'doctype': u'DocField',
+		'fieldname': u'customer_address',
+		'fieldtype': u'Link',
+		'label': u'Customer Address',
+		'options': u'Address',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_person',
-		'fieldtype': 'Link',
-		'label': 'Contact Person',
-		'options': 'Contact',
+		'doctype': u'DocField',
+		'fieldname': u'contact_person',
+		'fieldtype': u'Link',
+		'label': u'Contact Person',
+		'options': u'Contact',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
-		'label': 'Name',
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
+		'label': u'Name',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_display',
-		'fieldtype': 'Small Text',
-		'label': 'Address',
+		'doctype': u'DocField',
+		'fieldname': u'address_display',
+		'fieldtype': u'Small Text',
+		'label': u'Address',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_display',
-		'fieldtype': 'Small Text',
-		'label': 'Contact',
+		'doctype': u'DocField',
+		'fieldname': u'contact_display',
+		'fieldtype': u'Small Text',
+		'label': u'Contact',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_mobile',
-		'fieldtype': 'Data',
-		'label': 'Mobile No',
+		'doctype': u'DocField',
+		'fieldname': u'contact_mobile',
+		'fieldtype': u'Data',
+		'label': u'Mobile No',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_email',
-		'fieldtype': 'Data',
-		'label': 'Contact Email',
+		'doctype': u'DocField',
+		'fieldname': u'contact_email',
+		'fieldtype': u'Data',
+		'label': u'Contact Email',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Territory',
-		'oldfieldname': 'territory',
-		'oldfieldtype': 'Link',
-		'options': 'Territory',
+		'label': u'Territory',
+		'oldfieldname': u'territory',
+		'oldfieldtype': u'Link',
+		'options': u'Territory',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 0,
@@ -322,11 +325,11 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_group',
-		'fieldtype': 'Link',
-		'label': 'Customer Group',
-		'options': 'Customer Group',
+		'doctype': u'DocField',
+		'fieldname': u'customer_group',
+		'fieldtype': u'Link',
+		'label': u'Customer Group',
+		'options': u'Customer Group',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 0
@@ -334,32 +337,32 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
@@ -368,235 +371,239 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'label': 'Amended From',
+		'label': u'Amended From',
 		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'print_hide': 1,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
 		'hidden': 1,
-		'label': 'Amendment Date',
+		'label': u'Amendment Date',
 		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'print_hide': 1,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Issue Details',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'issue_details',
+		'fieldtype': u'Section Break',
+		'label': u'Issue Details',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no',
-		'fieldtype': 'Link',
-		'label': 'Serial No',
-		'options': 'Serial No',
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Link',
+		'label': u'Serial No',
+		'options': u'Serial No',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
 		'permlevel': 0,
 		'reqd': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:doc.item_code',
-		'doctype': 'DocField',
-		'fieldname': 'item_name',
-		'fieldtype': 'Data',
-		'label': 'Item Name',
-		'oldfieldname': 'item_name',
-		'oldfieldtype': 'Data',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.item_code',
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:doc.item_code',
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:doc.item_code',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1,
-		'width': '300px'
+		'width': u'300px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'complaint',
-		'fieldtype': 'Small Text',
-		'label': 'Issue',
+		'doctype': u'DocField',
+		'fieldname': u'complaint',
+		'fieldtype': u'Small Text',
+		'label': u'Issue',
 		'no_copy': 1,
-		'oldfieldname': 'complaint',
-		'oldfieldtype': 'Small Text',
+		'oldfieldname': u'complaint',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'warranty_amc_status',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'warranty_amc_status',
+		'fieldtype': u'Select',
 		'hidden': 0,
 		'in_filter': 1,
-		'label': 'Warranty / AMC Status',
-		'options': '\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC',
+		'label': u'Warranty / AMC Status',
+		'options': u'\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'warranty_expiry_date',
-		'fieldtype': 'Date',
-		'label': 'Warranty Expiry Date',
+		'doctype': u'DocField',
+		'fieldname': u'warranty_expiry_date',
+		'fieldtype': u'Date',
+		'label': u'Warranty Expiry Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amc_expiry_date',
-		'fieldtype': 'Date',
-		'label': 'AMC Expiry Date',
+		'doctype': u'DocField',
+		'fieldname': u'amc_expiry_date',
+		'fieldtype': u'Date',
+		'label': u'AMC Expiry Date',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'allocated_on',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'allocated_on',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Allocated On',
-		'oldfieldname': 'allocated_on',
-		'oldfieldtype': 'Date',
+		'label': u'Allocated On',
+		'oldfieldname': u'allocated_on',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'allocated_to',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'allocated_to',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Allocated To',
-		'oldfieldname': 'allocated_to',
-		'oldfieldtype': 'Link',
-		'options': 'Profile',
+		'label': u'Allocated To',
+		'oldfieldname': u'allocated_to',
+		'oldfieldtype': u'Link',
+		'options': u'Profile',
 		'permlevel': 0,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Resolution Detail',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'resolution_detail',
+		'fieldtype': u'Section Break',
+		'label': u'Resolution Detail',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'resolution_details',
-		'fieldtype': 'Text',
-		'label': 'Resolution Details',
+		'doctype': u'DocField',
+		'fieldname': u'resolution_details',
+		'fieldtype': u'Text',
+		'label': u'Resolution Details',
 		'no_copy': 1,
-		'oldfieldname': 'resolution_details',
-		'oldfieldtype': 'Text',
+		'oldfieldname': u'resolution_details',
+		'oldfieldtype': u'Text',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'resolution_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'resolution_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Resolution Date',
+		'label': u'Resolution Date',
 		'no_copy': 1,
-		'oldfieldname': 'resolution_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'resolution_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'resolved_by',
-		'fieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'resolved_by',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Resolved By',
+		'label': u'Resolved By',
 		'no_copy': 1,
-		'oldfieldname': 'resolved_by',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Person',
+		'oldfieldname': u'resolved_by',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Person',
 		'permlevel': 0,
 		'search_index': 1
 	},
@@ -604,24 +611,26 @@
 	# DocField
 	{
 		'allow_on_submit': 0,
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Next Steps',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'next_steps',
+		'fieldtype': u'Section Break',
+		'label': u'Next Steps',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Make Maintenance Visit',
-		'oldfieldtype': 'Button',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'make_maintenance_visit',
+		'fieldtype': u'Button',
+		'label': u'Make Maintenance Visit',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/doctype/item_maintenance_detail/__init__.py b/erpnext/support/doctype/item_maintenance_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/support/doctype/item_maintenance_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/support/doctype/item_maintenance_detail/item_maintenance_detail.txt b/erpnext/support/doctype/item_maintenance_detail/item_maintenance_detail.txt
deleted file mode 100644
index 4d4e26a..0000000
--- a/erpnext/support/doctype/item_maintenance_detail/item_maintenance_detail.txt
+++ /dev/null
@@ -1,184 +0,0 @@
-# DocType, Item Maintenance Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:06',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'IMD.#####',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Support',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 8
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Item Maintenance Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Item Maintenance Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Item Maintenance Detail'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 1,
-		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Item Name',
-		'oldfieldname': 'item_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'start_date',
-		'fieldtype': 'Date',
-		'idx': 4,
-		'in_filter': 1,
-		'label': 'Start Date',
-		'oldfieldname': 'start_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'end_date',
-		'fieldtype': 'Date',
-		'idx': 5,
-		'in_filter': 1,
-		'label': 'End Date',
-		'oldfieldname': 'end_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'periodicity',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Periodicity',
-		'oldfieldname': 'periodicity',
-		'oldfieldtype': 'Select',
-		'options': '\nWeekly\nMonthly\nQuarterly\nHalf Yearly\nYearly\nRandom',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'no_of_visits',
-		'fieldtype': 'Int',
-		'idx': 7,
-		'label': 'No of Visits',
-		'oldfieldname': 'no_of_visits',
-		'oldfieldtype': 'Int',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'incharge_name',
-		'fieldtype': 'Link',
-		'idx': 8,
-		'in_filter': 1,
-		'label': 'Incharge Name',
-		'oldfieldname': 'incharge_name',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Person',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no',
-		'fieldtype': 'Small Text',
-		'idx': 9,
-		'label': 'Serial No',
-		'oldfieldname': 'serial_no',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'prevdoc_docname',
-		'fieldtype': 'Data',
-		'idx': 10,
-		'in_filter': 1,
-		'label': 'Against Docname',
-		'no_copy': 1,
-		'oldfieldname': 'prevdoc_docname',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1,
-		'width': '150px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
index 51853a6..efa3eac 100644
--- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
@@ -63,7 +63,7 @@
 }
 
 // Get Items based on SO Selected
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
+cur_frm.cscript.get_items = function(doc, dt, dn) {
   var callback = function(r,rt) { 
 	  unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
 	  cur_frm.refresh();
@@ -97,7 +97,7 @@
   if(doc.customer) {
     cond = '`tabSales Order`.customer = "'+doc.customer+'" AND';
   }
-  return repl('SELECT DISTINCT `tabSales Order`.name FROM `tabSales Order`, `tabSales Order Detail`, `tabItem` WHERE `tabSales Order`.company = "%(company)s" AND `tabSales Order`.docstatus = 1 AND `tabSales Order Detail`.parent = `tabSales Order`.name AND `tabSales Order Detail`.item_code = `tabItem`.name AND `tabItem`.is_service_item = "Yes" AND %(cond)s `tabSales Order`.name LIKE "%s" ORDER BY `tabSales Order`.name DESC LIMIT 50', {company:doc.company, cond:cond});
+  return repl('SELECT DISTINCT `tabSales Order`.name FROM `tabSales Order`, `tabSales Order Item`, `tabItem` WHERE `tabSales Order`.company = "%(company)s" AND `tabSales Order`.docstatus = 1 AND `tabSales Order Item`.parent = `tabSales Order`.name AND `tabSales Order Item`.item_code = `tabItem`.name AND `tabItem`.is_service_item = "Yes" AND %(cond)s `tabSales Order`.name LIKE "%s" ORDER BY `tabSales Order`.name DESC LIMIT 50', {company:doc.company, cond:cond});
 }
 
 cur_frm.cscript.periodicity = function(doc, cdt, cdn){
@@ -114,7 +114,7 @@
   }
 }
 
-cur_frm.cscript['Generate Schedule'] = function(doc, cdt, cdn) {
+cur_frm.cscript.generate_schedule = function(doc, cdt, cdn) {
   if (!doc.__islocal) {
     $c('runserverobj', args={'method':'generate_schedule', 'docs':compress_doclist(make_doclist(cdt,cdn))},
       function(r,rt){
diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py
index 30083da..9aee9ff 100644
--- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py
+++ b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py
@@ -44,7 +44,7 @@
   def pull_sales_order_detail(self):
     self.doc.clear_table(self.doclist, 'item_maintenance_detail')
     self.doc.clear_table(self.doclist, 'maintenance_schedule_detail')
-    self.doclist = get_obj('DocType Mapper', 'Sales Order-Maintenance Schedule').dt_map('Sales Order', 'Maintenance Schedule', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Maintenance Schedule'],['Sales Order Detail', 'Item Maintenance Detail']]")
+    self.doclist = get_obj('DocType Mapper', 'Sales Order-Maintenance Schedule').dt_map('Sales Order', 'Maintenance Schedule', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Maintenance Schedule'],['Sales Order Item', 'Maintenance Schedule Item']]")
   
   #pull item details 
   #-------------------
@@ -213,7 +213,7 @@
   def validate_sales_order(self):
     for d in getlist(self.doclist, 'item_maintenance_detail'):
       if d.prevdoc_docname:
-        chk = sql("select t1.name from `tabMaintenance Schedule` t1, `tabItem Maintenance Detail` t2 where t2.parent=t1.name and t2.prevdoc_docname=%s and t1.docstatus=1", d.prevdoc_docname)
+        chk = sql("select t1.name from `tabMaintenance Schedule` t1, `tabMaintenance Schedule Item` t2 where t2.parent=t1.name and t2.prevdoc_docname=%s and t1.docstatus=1", d.prevdoc_docname)
         if chk:
           msgprint("Maintenance Schedule against "+d.prevdoc_docname+" already exist")
           raise Exception
diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.txt b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.txt
index a053cf9..4662ce9 100644
--- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.txt
+++ b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.txt
@@ -3,51 +3,53 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:09',
+		'creation': '2012-03-27 14:36:41',
 		'docstatus': 0,
-		'modified': '2011-05-17 17:13:43',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:45:49',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1305632624',
-		'autoname': 'MS.#####',
-		'colour': 'White:FFF',
+		'_last_update': u'1322549701',
+		'autoname': u'MS.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Support',
+		'is_submittable': 1,
+		'module': u'Support',
 		'name': '__common__',
-		'search_fields': 'status,customer,customer_name, sales_order_no',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'status,customer,customer_name, sales_order_no',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 155
+		'version': 156
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Maintenance Schedule',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Maintenance Schedule',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Maintenance Schedule',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Maintenance Schedule',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Maintenance Schedule
 	{
 		'doctype': 'DocType',
-		'name': 'Maintenance Schedule'
+		'name': u'Maintenance Schedule'
 	},
 
 	# DocPerm
@@ -55,20 +57,18 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
@@ -76,95 +76,89 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Maintenance Manager',
+		'role': u'Maintenance Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Maintenance Manager'
+		'role': u'Maintenance Manager'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Customer Details',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'customer_details',
+		'fieldtype': u'Section Break',
+		'label': u'Customer Details',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 2,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'idx': 3,
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Customer',
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Link',
-		'options': 'Customer',
+		'label': u'Customer',
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_address',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Customer Address',
-		'options': 'Address',
+		'doctype': u'DocField',
+		'fieldname': u'customer_address',
+		'fieldtype': u'Link',
+		'label': u'Customer Address',
+		'options': u'Address',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_person',
-		'fieldtype': 'Link',
-		'idx': 5,
-		'label': 'Contact Person',
-		'options': 'Contact',
+		'doctype': u'DocField',
+		'fieldname': u'contact_person',
+		'fieldtype': u'Link',
+		'label': u'Contact Person',
+		'options': u'Contact',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
-		'idx': 6,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Name',
-		'oldfieldname': 'customer_name',
-		'oldfieldtype': 'Data',
+		'label': u'Name',
+		'oldfieldname': u'customer_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'reqd': 0,
 		'search_index': 0
@@ -172,65 +166,60 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_display',
-		'fieldtype': 'Small Text',
-		'idx': 7,
-		'label': 'Address',
+		'doctype': u'DocField',
+		'fieldname': u'address_display',
+		'fieldtype': u'Small Text',
+		'label': u'Address',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_display',
-		'fieldtype': 'Small Text',
-		'idx': 8,
-		'label': 'Contact',
+		'doctype': u'DocField',
+		'fieldname': u'contact_display',
+		'fieldtype': u'Small Text',
+		'label': u'Contact',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_mobile',
-		'fieldtype': 'Text',
-		'idx': 9,
-		'label': 'Mobile No',
+		'doctype': u'DocField',
+		'fieldname': u'contact_mobile',
+		'fieldtype': u'Text',
+		'label': u'Mobile No',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_email',
-		'fieldtype': 'Text',
-		'idx': 10,
-		'label': 'Contact Email',
+		'doctype': u'DocField',
+		'fieldname': u'contact_email',
+		'fieldtype': u'Text',
+		'label': u'Contact Email',
 		'permlevel': 1,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 11,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'transaction_date',
-		'fieldtype': 'Date',
-		'idx': 12,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Transaction Date',
-		'oldfieldname': 'transaction_date',
-		'oldfieldtype': 'Date',
+		'label': u'Transaction Date',
+		'oldfieldname': u'transaction_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -238,18 +227,17 @@
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Draft',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
-		'idx': 13,
+		'colour': u'White:FFF',
+		'default': u'Draft',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Status',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nDraft\nSubmitted\nCancelled',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nDraft\nSubmitted\nCancelled',
 		'permlevel': 1,
 		'reqd': 1,
 		'search_index': 0
@@ -257,28 +245,26 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'idx': 14,
-		'label': 'Amended From',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
 		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
 		'hidden': 1,
-		'idx': 15,
-		'label': 'Amendment Date',
+		'label': u'Amendment Date',
 		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'print_hide': 1,
 		'report_hide': 1
@@ -286,15 +272,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 16,
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Link',
+		'options': u'Company',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -302,15 +287,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
-		'idx': 17,
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Territory',
-		'oldfieldname': 'territory',
-		'oldfieldtype': 'Link',
-		'options': 'Territory',
+		'label': u'Territory',
+		'oldfieldname': u'territory',
+		'oldfieldtype': u'Link',
+		'options': u'Territory',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -318,102 +302,98 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_group',
-		'fieldtype': 'Link',
-		'idx': 18,
-		'label': 'Customer Group',
-		'options': 'Customer Group',
+		'doctype': u'DocField',
+		'fieldname': u'customer_group',
+		'fieldtype': u'Link',
+		'label': u'Customer Group',
+		'options': u'Customer Group',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 19,
-		'label': 'Items',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'items',
+		'fieldtype': u'Section Break',
+		'label': u'Items',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'sales_order_no',
-		'fieldtype': 'Link',
-		'idx': 20,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'sales_order_no',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Sales Order No',
-		'oldfieldname': 'sales_order_no',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Order',
+		'label': u'Sales Order No',
+		'oldfieldname': u'sales_order_no',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Order',
 		'permlevel': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 21,
-		'label': 'Get Items',
-		'oldfieldtype': 'Button',
-		'options': 'pull_sales_order_detail',
+		'doctype': u'DocField',
+		'fieldname': u'get_items',
+		'fieldtype': u'Button',
+		'label': u'Get Items',
+		'oldfieldtype': u'Button',
+		'options': u'pull_sales_order_detail',
 		'permlevel': 0,
 		'report_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_maintenance_detail',
-		'fieldtype': 'Table',
-		'idx': 22,
-		'label': 'Item Maintenance Detail',
-		'oldfieldname': 'item_maintenance_detail',
-		'oldfieldtype': 'Table',
-		'options': 'Item Maintenance Detail',
+		'doctype': u'DocField',
+		'fieldname': u'item_maintenance_detail',
+		'fieldtype': u'Table',
+		'label': u'Maintenance Schedule Item',
+		'oldfieldname': u'item_maintenance_detail',
+		'oldfieldtype': u'Table',
+		'options': u'Maintenance Schedule Item',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 23,
-		'label': 'Schedule',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'schedule',
+		'fieldtype': u'Section Break',
+		'label': u'Schedule',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 24,
-		'label': 'Generate Schedule',
-		'oldfieldtype': 'Button',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'generate_schedule',
+		'fieldtype': u'Button',
+		'label': u'Generate Schedule',
+		'oldfieldtype': u'Button',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'maintenance_schedule_detail',
-		'fieldtype': 'Table',
-		'idx': 25,
-		'label': 'Maintenance Schedule Detail',
-		'oldfieldname': 'maintenance_schedule_detail',
-		'oldfieldtype': 'Table',
-		'options': 'Maintenance Schedule Detail',
+		'doctype': u'DocField',
+		'fieldname': u'maintenance_schedule_detail',
+		'fieldtype': u'Table',
+		'label': u'Maintenance Schedule Detail',
+		'oldfieldname': u'maintenance_schedule_detail',
+		'oldfieldtype': u'Table',
+		'options': u'Maintenance Schedule Detail',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt b/erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt
index edd8091..8dc9b91 100644
--- a/erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt
+++ b/erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt
@@ -3,52 +3,53 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:09',
+		'creation': '2012-03-27 14:36:42',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:42',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'MSD.#####',
-		'colour': 'White:FFF',
+		'autoname': u'MSD.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Support',
+		'module': u'Support',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 12
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 13
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Maintenance Schedule Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Maintenance Schedule Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# DocType, Maintenance Schedule Detail
 	{
 		'doctype': 'DocType',
-		'name': 'Maintenance Schedule Detail'
+		'name': u'Maintenance Schedule Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 1,
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
 		'permlevel': 1,
 		'reqd': 0,
 		'search_index': 1
@@ -56,28 +57,26 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_name',
-		'fieldtype': 'Data',
-		'idx': 2,
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
 		'in_filter': 0,
-		'label': 'Item Name',
-		'oldfieldname': 'item_name',
-		'oldfieldtype': 'Data',
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'scheduled_date',
-		'fieldtype': 'Date',
-		'idx': 3,
+		'doctype': u'DocField',
+		'fieldname': u'scheduled_date',
+		'fieldtype': u'Date',
 		'in_filter': 1,
-		'label': 'Scheduled Date',
-		'oldfieldname': 'scheduled_date',
-		'oldfieldtype': 'Date',
+		'label': u'Scheduled Date',
+		'oldfieldname': u'scheduled_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -85,15 +84,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'actual_date',
-		'fieldtype': 'Date',
+		'doctype': u'DocField',
+		'fieldname': u'actual_date',
+		'fieldtype': u'Date',
 		'hidden': 1,
-		'idx': 4,
-		'label': 'Actual Date',
+		'label': u'Actual Date',
 		'no_copy': 1,
-		'oldfieldname': 'actual_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'actual_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'print_hide': 1,
 		'report_hide': 1
@@ -101,15 +99,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'incharge_name',
-		'fieldtype': 'Link',
-		'idx': 5,
+		'doctype': u'DocField',
+		'fieldname': u'incharge_name',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Incharge Name',
-		'oldfieldname': 'incharge_name',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Person',
+		'label': u'Incharge Name',
+		'oldfieldname': u'incharge_name',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Person',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -117,17 +114,16 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no',
-		'fieldtype': 'Small Text',
-		'idx': 6,
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Small Text',
 		'in_filter': 1,
-		'label': 'Serial No',
+		'label': u'Serial No',
 		'no_copy': 0,
-		'oldfieldname': 'serial_no',
-		'oldfieldtype': 'Small Text',
+		'oldfieldname': u'serial_no',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1,
-		'search_index': 1,
-		'width': '160px'
+		'search_index': 0,
+		'width': u'160px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/doctype/maintenance_visit_detail/__init__.py b/erpnext/support/doctype/maintenance_schedule_item/__init__.py
similarity index 100%
copy from erpnext/support/doctype/maintenance_visit_detail/__init__.py
copy to erpnext/support/doctype/maintenance_schedule_item/__init__.py
diff --git a/erpnext/support/doctype/maintenance_schedule_item/maintenance_schedule_item.txt b/erpnext/support/doctype/maintenance_schedule_item/maintenance_schedule_item.txt
new file mode 100644
index 0000000..7e815f5
--- /dev/null
+++ b/erpnext/support/doctype/maintenance_schedule_item/maintenance_schedule_item.txt
@@ -0,0 +1,176 @@
+# DocType, Maintenance Schedule Item
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:41',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:41',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'IMD.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Support',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'version': 9
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Maintenance Schedule Item',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Maintenance Schedule Item
+	{
+		'doctype': 'DocType',
+		'name': u'Maintenance Schedule Item'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Data',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'start_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'Start Date',
+		'oldfieldname': u'start_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'end_date',
+		'fieldtype': u'Date',
+		'in_filter': 1,
+		'label': u'End Date',
+		'oldfieldname': u'end_date',
+		'oldfieldtype': u'Date',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'periodicity',
+		'fieldtype': u'Select',
+		'label': u'Periodicity',
+		'oldfieldname': u'periodicity',
+		'oldfieldtype': u'Select',
+		'options': u'\nWeekly\nMonthly\nQuarterly\nHalf Yearly\nYearly\nRandom',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'no_of_visits',
+		'fieldtype': u'Int',
+		'label': u'No of Visits',
+		'oldfieldname': u'no_of_visits',
+		'oldfieldtype': u'Int',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'incharge_name',
+		'fieldtype': u'Link',
+		'in_filter': 1,
+		'label': u'Incharge Name',
+		'oldfieldname': u'incharge_name',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Person',
+		'permlevel': 0,
+		'reqd': 1,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Small Text',
+		'label': u'Serial No',
+		'oldfieldname': u'serial_no',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_docname',
+		'fieldtype': u'Data',
+		'in_filter': 1,
+		'label': u'Against Docname',
+		'no_copy': 1,
+		'oldfieldname': u'prevdoc_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'search_index': 1,
+		'width': u'150px'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
index df976d1..a2c0772 100644
--- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
+++ b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
@@ -60,7 +60,7 @@
   return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
 }
 
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
+cur_frm.cscript.get_items = function(doc, dt, dn) {
   var callback = function(r,rt) { 
 	  unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
 	  cur_frm.refresh();
@@ -110,8 +110,8 @@
   if(doc.customer) {
     cond = '`tabSales Order`.customer = "'+doc.customer+'" AND';
   }
-  //return repl('SELECT DISTINCT `tabSales Order`.name FROM `tabSales Order`, `tabSales Order Detail` WHERE `tabSales Order`.company = "%(company)s" AND `tabSales Order`.docstatus = 1 AND %(cond)s `tabSales Order`.name LIKE "%s" ORDER BY `tabSales Order`.name DESC LIMIT 50', {company:doc.company, cond:cond});
-  return repl('SELECT DISTINCT `tabSales Order`.name FROM `tabSales Order`, `tabSales Order Detail`, `tabItem` WHERE `tabSales Order`.company = "%(company)s" AND `tabSales Order`.docstatus = 1 AND `tabSales Order Detail`.parent = `tabSales Order`.name AND `tabSales Order Detail`.item_code = `tabItem`.name AND `tabItem`.is_service_item = "Yes" AND %(cond)s `tabSales Order`.name LIKE "%s" ORDER BY `tabSales Order`.name DESC LIMIT 50', {company:doc.company, cond:cond});
+  //return repl('SELECT DISTINCT `tabSales Order`.name FROM `tabSales Order`, `tabSales Order Item` WHERE `tabSales Order`.company = "%(company)s" AND `tabSales Order`.docstatus = 1 AND %(cond)s `tabSales Order`.name LIKE "%s" ORDER BY `tabSales Order`.name DESC LIMIT 50', {company:doc.company, cond:cond});
+  return repl('SELECT DISTINCT `tabSales Order`.name FROM `tabSales Order`, `tabSales Order Item`, `tabItem` WHERE `tabSales Order`.company = "%(company)s" AND `tabSales Order`.docstatus = 1 AND `tabSales Order Item`.parent = `tabSales Order`.name AND `tabSales Order Item`.item_code = `tabItem`.name AND `tabItem`.is_service_item = "Yes" AND %(cond)s `tabSales Order`.name LIKE "%s" ORDER BY `tabSales Order`.name DESC LIMIT 50', {company:doc.company, cond:cond});
 }
 
 cur_frm.fields_dict['customer_issue_no'].get_query = function(doc) {
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.py b/erpnext/support/doctype/maintenance_visit/maintenance_visit.py
index 902b92a..1786afc 100644
--- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.py
+++ b/erpnext/support/doctype/maintenance_visit/maintenance_visit.py
@@ -59,10 +59,10 @@
     self.doc.clear_table(self.doclist, 'maintenance_visit_details')
     
     if self.doc.sales_order_no:
-      self.doclist = get_obj('DocType Mapper', 'Sales Order-Maintenance Visit').dt_map('Sales Order', 'Maintenance Visit', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Maintenance Visit'],['Sales Order Detail', 'Maintenance Visit Detail']]")
+      self.doclist = get_obj('DocType Mapper', 'Sales Order-Maintenance Visit').dt_map('Sales Order', 'Maintenance Visit', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Maintenance Visit'],['Sales Order Item', 'Maintenance Visit Purpose']]")
     
     elif self.doc.customer_issue_no:      
-      self.doclist = get_obj('DocType Mapper', 'Customer Issue-Maintenance Visit').dt_map('Customer Issue', 'Maintenance Visit', self.doc.customer_issue_no, self.doc, self.doclist, "[['Customer Issue', 'Maintenance Visit'],['Customer Issue', 'Maintenance Visit Detail']]")
+      self.doclist = get_obj('DocType Mapper', 'Customer Issue-Maintenance Visit').dt_map('Customer Issue', 'Maintenance Visit', self.doc.customer_issue_no, self.doc, self.doclist, "[['Customer Issue', 'Maintenance Visit'],['Customer Issue', 'Maintenance Visit Purpose']]")
   
   #validate reference value using doctype mapper
   #-----------------------------------------------------
@@ -117,7 +117,7 @@
           elif self.doc.completion_status == 'Partially Completed':
             status = 'Work In Progress'
         else:
-          nm = sql("select t1.name, t1.mntc_date, t2.service_person, t2.work_done from `tabMaintenance Visit` t1, `tabMaintenance Visit Detail` t2 where t2.parent = t1.name and t1.completion_status = 'Partially Completed' and t2.prevdoc_docname = %s and t1.name!=%s and t1.docstatus = 1 order by t1.name desc limit 1", (d.prevdoc_docname, self.doc.name))
+          nm = sql("select t1.name, t1.mntc_date, t2.service_person, t2.work_done from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent = t1.name and t1.completion_status = 'Partially Completed' and t2.prevdoc_docname = %s and t1.name!=%s and t1.docstatus = 1 order by t1.name desc limit 1", (d.prevdoc_docname, self.doc.name))
           
           if nm:
             status = 'Work In Progress'
@@ -141,7 +141,7 @@
         check_for_doctype = d.prevdoc_doctype
     
     if check_for_docname:
-      check = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Detail` t2 where t2.parent = t1.name and t1.name!=%s and t2.prevdoc_docname=%s and t1.docstatus = 1 and (t1.mntc_date > %s or (t1.mntc_date = %s and t1.mntc_time > %s))", (self.doc.name, check_for_docname, self.doc.mntc_date, self.doc.mntc_date, self.doc.mntc_time))
+      check = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent = t1.name and t1.name!=%s and t2.prevdoc_docname=%s and t1.docstatus = 1 and (t1.mntc_date > %s or (t1.mntc_date = %s and t1.mntc_time > %s))", (self.doc.name, check_for_docname, self.doc.mntc_date, self.doc.mntc_date, self.doc.mntc_time))
       
       if check:
         check_lst = [x[0] for x in check]
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.txt b/erpnext/support/doctype/maintenance_visit/maintenance_visit.txt
index 76cf56f..93ed656 100644
--- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.txt
+++ b/erpnext/support/doctype/maintenance_visit/maintenance_visit.txt
@@ -3,53 +3,55 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:09',
+		'creation': '2012-03-27 14:36:42',
 		'docstatus': 0,
-		'modified': '2011-07-01 11:20:38',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-03-27 14:45:49',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1305704021',
-		'autoname': 'MV.#####',
-		'colour': 'White:FFF',
+		'_last_update': u'1322549701',
+		'autoname': u'MV.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Support',
+		'is_submittable': 1,
+		'module': u'Support',
 		'name': '__common__',
-		'search_fields': 'status,maintenance_type,customer,customer_name, address,mntc_date,company,fiscal_year',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'search_fields': u'status,maintenance_type,customer,customer_name, address,mntc_date,company,fiscal_year',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': 'To %(customer_name)s on %(mntc_date)s',
-		'tag_fields': 'completion_status,maintenance_type',
-		'version': 101
+		'subject': u'To %(customer_name)s on %(mntc_date)s',
+		'tag_fields': u'completion_status,maintenance_type',
+		'version': 95
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Maintenance Visit',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Maintenance Visit',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Maintenance Visit',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Maintenance Visit',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Maintenance Visit
 	{
 		'doctype': 'DocType',
-		'name': 'Maintenance Visit'
+		'name': u'Maintenance Visit'
 	},
 
 	# DocPerm
@@ -57,20 +59,18 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocPerm
@@ -78,20 +78,18 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Maintenance Manager',
+		'role': u'Maintenance Manager',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 4,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Maintenance Manager'
+		'role': u'Maintenance Manager'
 	},
 
 	# DocPerm
@@ -99,145 +97,134 @@
 		'amend': 1,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 5,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Maintenance User',
+		'role': u'Maintenance User',
 		'submit': 1,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 6,
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Maintenance User'
+		'role': u'Maintenance User'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Customer Details',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'customer_details',
+		'fieldtype': u'Section Break',
+		'label': u'Customer Details',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 2,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'idx': 3,
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Customer',
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Link',
-		'options': 'Customer',
+		'label': u'Customer',
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_address',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Customer Address',
-		'options': 'Address',
+		'doctype': u'DocField',
+		'fieldname': u'customer_address',
+		'fieldtype': u'Link',
+		'label': u'Customer Address',
+		'options': u'Address',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_person',
-		'fieldtype': 'Link',
-		'idx': 5,
-		'label': 'Contact Person',
-		'options': 'Contact',
+		'doctype': u'DocField',
+		'fieldname': u'contact_person',
+		'fieldtype': u'Link',
+		'label': u'Contact Person',
+		'options': u'Contact',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
-		'idx': 6,
-		'label': 'Name',
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
+		'label': u'Name',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_display',
-		'fieldtype': 'Small Text',
-		'idx': 7,
-		'label': 'Address',
+		'doctype': u'DocField',
+		'fieldname': u'address_display',
+		'fieldtype': u'Small Text',
+		'label': u'Address',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_display',
-		'fieldtype': 'Small Text',
-		'idx': 8,
-		'label': 'Contact',
+		'doctype': u'DocField',
+		'fieldname': u'contact_display',
+		'fieldtype': u'Small Text',
+		'label': u'Contact',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_mobile',
-		'fieldtype': 'Data',
-		'idx': 9,
-		'label': 'Mobile No',
+		'doctype': u'DocField',
+		'fieldname': u'contact_mobile',
+		'fieldtype': u'Data',
+		'label': u'Mobile No',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_email',
-		'fieldtype': 'Data',
-		'idx': 10,
-		'label': 'Contact Email',
+		'doctype': u'DocField',
+		'fieldname': u'contact_email',
+		'fieldtype': u'Data',
+		'label': u'Contact Email',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 11,
+		'doctype': u'DocField',
+		'fieldname': u'company',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Select',
-		'options': 'link:Company',
+		'label': u'Company',
+		'oldfieldname': u'company',
+		'oldfieldtype': u'Select',
+		'options': u'link:Company',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
@@ -246,15 +233,14 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 12,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
+		'oldfieldtype': u'Select',
+		'options': u'link:Fiscal Year',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 1,
@@ -263,151 +249,142 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 13,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'default': 'Today',
-		'doctype': 'DocField',
-		'fieldname': 'mntc_date',
-		'fieldtype': 'Date',
-		'idx': 14,
-		'label': 'Maintenance Date',
+		'default': u'Today',
+		'doctype': u'DocField',
+		'fieldname': u'mntc_date',
+		'fieldtype': u'Date',
+		'label': u'Maintenance Date',
 		'no_copy': 1,
-		'oldfieldname': 'mntc_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'mntc_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'mntc_time',
-		'fieldtype': 'Time',
-		'idx': 15,
-		'label': 'Maintenance Time',
+		'doctype': u'DocField',
+		'fieldname': u'mntc_time',
+		'fieldtype': u'Time',
+		'label': u'Maintenance Time',
 		'no_copy': 1,
-		'oldfieldname': 'mntc_time',
-		'oldfieldtype': 'Time',
+		'oldfieldname': u'mntc_time',
+		'oldfieldtype': u'Time',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Draft',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Data',
-		'idx': 16,
-		'label': 'Status',
+		'colour': u'White:FFF',
+		'default': u'Draft',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Data',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Data',
-		'options': '\nDraft\nCancelled\nSubmitted',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Data',
+		'options': u'\nDraft\nCancelled\nSubmitted',
 		'permlevel': 1,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'idx': 17,
-		'label': 'Amended From',
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Data',
+		'label': u'Amended From',
 		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
+		'oldfieldname': u'amended_from',
+		'oldfieldtype': u'Data',
 		'permlevel': 1,
 		'print_hide': 1,
-		'width': '150px'
+		'width': u'150px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'idx': 18,
-		'label': 'Amendment Date',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
 		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'amendment_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 0,
 		'print_hide': 1,
-		'width': '100px'
+		'width': u'100px'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'territory',
-		'fieldtype': 'Link',
-		'idx': 19,
-		'label': 'Territory',
-		'options': 'Territory',
+		'doctype': u'DocField',
+		'fieldname': u'territory',
+		'fieldtype': u'Link',
+		'label': u'Territory',
+		'options': u'Territory',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_group',
-		'fieldtype': 'Link',
-		'idx': 20,
-		'label': 'Customer Group',
-		'options': 'Customer Group',
+		'doctype': u'DocField',
+		'fieldname': u'customer_group',
+		'fieldtype': u'Link',
+		'label': u'Customer Group',
+		'options': u'Customer Group',
 		'permlevel': 0,
 		'print_hide': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 21,
-		'label': 'Maintenance Details',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'maintenance_details',
+		'fieldtype': u'Section Break',
+		'label': u'Maintenance Details',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'completion_status',
-		'fieldtype': 'Select',
-		'idx': 22,
-		'label': 'Completion Status',
-		'oldfieldname': 'completion_status',
-		'oldfieldtype': 'Select',
-		'options': '\nPartially Completed\nFully Completed',
+		'doctype': u'DocField',
+		'fieldname': u'completion_status',
+		'fieldtype': u'Select',
+		'label': u'Completion Status',
+		'oldfieldname': u'completion_status',
+		'oldfieldtype': u'Select',
+		'options': u'\nPartially Completed\nFully Completed',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Unscheduled',
-		'doctype': 'DocField',
-		'fieldname': 'maintenance_type',
-		'fieldtype': 'Select',
-		'idx': 23,
+		'colour': u'White:FFF',
+		'default': u'Unscheduled',
+		'doctype': u'DocField',
+		'fieldname': u'maintenance_type',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Maintenance Type',
-		'oldfieldname': 'maintenance_type',
-		'oldfieldtype': 'Select',
-		'options': '\nScheduled\nUnscheduled\nBreakdown',
+		'label': u'Maintenance Type',
+		'oldfieldname': u'maintenance_type',
+		'oldfieldtype': u'Select',
+		'options': u'\nScheduled\nUnscheduled\nBreakdown',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 0
@@ -415,56 +392,54 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 24,
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break2',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'sales_order_no',
-		'fieldtype': 'Link',
-		'idx': 25,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'sales_order_no',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Sales Order No',
-		'oldfieldname': 'sales_order_no',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Order',
+		'label': u'Sales Order No',
+		'oldfieldname': u'sales_order_no',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Order',
 		'permlevel': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'customer_issue_no',
-		'fieldtype': 'Link',
-		'idx': 26,
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'customer_issue_no',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Customer Issue No',
-		'oldfieldname': 'customer_issue_no',
-		'oldfieldtype': 'Link',
-		'options': 'Customer Issue',
+		'label': u'Customer Issue No',
+		'oldfieldname': u'customer_issue_no',
+		'oldfieldtype': u'Link',
+		'options': u'Customer Issue',
 		'permlevel': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 27,
-		'label': 'Get Items',
-		'oldfieldtype': 'Button',
-		'options': 'fetch_items',
+		'doctype': u'DocField',
+		'fieldname': u'get_items',
+		'fieldtype': u'Button',
+		'label': u'Get Items',
+		'oldfieldtype': u'Button',
+		'options': u'fetch_items',
 		'permlevel': 0,
 		'print_hide': 1,
 		'report_hide': 1
@@ -472,46 +447,44 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 28,
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
+		'doctype': u'DocField',
+		'fieldname': u'section_break0',
+		'fieldtype': u'Section Break',
+		'oldfieldtype': u'Section Break',
+		'options': u'Simple',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'maintenance_visit_details',
-		'fieldtype': 'Table',
-		'idx': 29,
-		'label': 'Maintenance Visit Detail',
-		'oldfieldname': 'maintenance_visit_details',
-		'oldfieldtype': 'Table',
-		'options': 'Maintenance Visit Detail',
+		'doctype': u'DocField',
+		'fieldname': u'maintenance_visit_details',
+		'fieldtype': u'Table',
+		'label': u'Maintenance Visit Purpose',
+		'oldfieldname': u'maintenance_visit_details',
+		'oldfieldtype': u'Table',
+		'options': u'Maintenance Visit Purpose',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 30,
-		'label': 'Feedback',
-		'oldfieldtype': 'Section Break',
+		'doctype': u'DocField',
+		'fieldname': u'feedback',
+		'fieldtype': u'Section Break',
+		'label': u'Feedback',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_feedback',
-		'fieldtype': 'Small Text',
-		'idx': 31,
-		'label': 'Customer Feedback',
-		'oldfieldname': 'customer_feedback',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'customer_feedback',
+		'fieldtype': u'Small Text',
+		'label': u'Customer Feedback',
+		'oldfieldname': u'customer_feedback',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt b/erpnext/support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt
deleted file mode 100644
index df72e47..0000000
--- a/erpnext/support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt
+++ /dev/null
@@ -1,172 +0,0 @@
-# DocType, Maintenance Visit Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:09',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'MVD.#####',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Support',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 13
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Maintenance Visit Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# DocType, Maintenance Visit Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Maintenance Visit Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Small Text',
-		'idx': 1,
-		'label': 'Description',
-		'oldfieldname': 'description',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'service_person',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'label': 'Service Person',
-		'oldfieldname': 'service_person',
-		'oldfieldtype': 'Link',
-		'options': 'Sales Person',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'work_done',
-		'fieldtype': 'Small Text',
-		'idx': 3,
-		'label': 'Work Done',
-		'oldfieldname': 'work_done',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'item_code',
-		'fieldtype': 'Link',
-		'idx': 4,
-		'label': 'Item Code',
-		'oldfieldname': 'item_code',
-		'oldfieldtype': 'Link',
-		'options': 'Item',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'item_name',
-		'fieldtype': 'Data',
-		'idx': 5,
-		'label': 'Item Name',
-		'oldfieldname': 'item_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'serial_no',
-		'fieldtype': 'Small Text',
-		'idx': 6,
-		'label': 'Serial No',
-		'oldfieldname': 'serial_no',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'prevdoc_docname',
-		'fieldtype': 'Data',
-		'hidden': 0,
-		'idx': 7,
-		'label': 'Against Document No',
-		'no_copy': 1,
-		'oldfieldname': 'prevdoc_docname',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1,
-		'width': '160px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'prevdoc_detail_docname',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 8,
-		'label': 'Against Document Detail No',
-		'no_copy': 1,
-		'oldfieldname': 'prevdoc_detail_docname',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1,
-		'width': '160px'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'prevdoc_doctype',
-		'fieldtype': 'Data',
-		'hidden': 0,
-		'idx': 9,
-		'label': 'Document Type',
-		'no_copy': 1,
-		'oldfieldname': 'prevdoc_doctype',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1,
-		'width': '150px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/support/doctype/maintenance_visit_detail/__init__.py b/erpnext/support/doctype/maintenance_visit_purpose/__init__.py
similarity index 100%
rename from erpnext/support/doctype/maintenance_visit_detail/__init__.py
rename to erpnext/support/doctype/maintenance_visit_purpose/__init__.py
diff --git a/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.txt b/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.txt
new file mode 100644
index 0000000..cd25bff
--- /dev/null
+++ b/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.txt
@@ -0,0 +1,163 @@
+# DocType, Maintenance Visit Purpose
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:43',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:43',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
+	},
+
+	# These values are common for all DocType
+	{
+		'autoname': u'MVD.#####',
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Support',
+		'name': '__common__',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'version': 13
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'Maintenance Visit Purpose',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
+	},
+
+	# DocType, Maintenance Visit Purpose
+	{
+		'doctype': 'DocType',
+		'name': u'Maintenance Visit Purpose'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Small Text',
+		'label': u'Description',
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'reqd': 1,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'service_person',
+		'fieldtype': u'Link',
+		'label': u'Service Person',
+		'oldfieldname': u'service_person',
+		'oldfieldtype': u'Link',
+		'options': u'Sales Person',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'work_done',
+		'fieldtype': u'Small Text',
+		'label': u'Work Done',
+		'oldfieldname': u'work_done',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0,
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'item_code',
+		'fieldtype': u'Link',
+		'label': u'Item Code',
+		'oldfieldname': u'item_code',
+		'oldfieldtype': u'Link',
+		'options': u'Item',
+		'permlevel': 0,
+		'trigger': u'Client'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'item_name',
+		'fieldtype': u'Data',
+		'label': u'Item Name',
+		'oldfieldname': u'item_name',
+		'oldfieldtype': u'Data',
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'serial_no',
+		'fieldtype': u'Small Text',
+		'label': u'Serial No',
+		'oldfieldname': u'serial_no',
+		'oldfieldtype': u'Small Text',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_docname',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'label': u'Against Document No',
+		'no_copy': 1,
+		'oldfieldname': u'prevdoc_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1,
+		'width': u'160px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_detail_docname',
+		'fieldtype': u'Data',
+		'hidden': 1,
+		'label': u'Against Document Detail No',
+		'no_copy': 1,
+		'oldfieldname': u'prevdoc_detail_docname',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1,
+		'width': u'160px'
+	},
+
+	# DocField
+	{
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'prevdoc_doctype',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'label': u'Document Type',
+		'no_copy': 1,
+		'oldfieldname': u'prevdoc_doctype',
+		'oldfieldtype': u'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'report_hide': 1,
+		'width': u'150px'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/support/doctype/support_ticket/listview.js b/erpnext/support/doctype/support_ticket/listview.js
new file mode 100644
index 0000000..67ba9ea
--- /dev/null
+++ b/erpnext/support/doctype/support_ticket/listview.js
@@ -0,0 +1,52 @@
+// render
+wn.doclistviews['Support Ticket'] = wn.views.ListView.extend({
+	me: this,
+
+	init: function(d) {
+		this._super(d)
+		this.fields = this.fields.concat([
+			"`tabSupport Ticket`.status", 
+			"`tabSupport Ticket`.subject",
+			"`tabSupport Ticket`.description"
+		]);
+		this.stats = this.stats.concat(['status']);
+	},
+	
+	prepare_data: function(data) {
+		this._super(data);
+		if(data.status=='Open' || data.status=='To Reply') {
+			data.label_type = 'important'
+		}
+		else if(data.status=='Closed') {
+			data.label_type = 'success'
+		}
+		else if(data.status=='Hold') {
+			data.label_type = 'info'
+		}
+		else if(data.status=='Waiting for Customer') {
+			data.label_type = 'info'
+			data.status = 'Waiting'
+		}
+		data.status_html = repl('<span class="label label-%(label_type)s">%(status)s</span>', data);
+		var a = $(data.status_html).click(function() {
+			me.set_filter('status', $(this).text());
+		});
+		
+		// replace double quote with blank string
+		data.description = cstr(data.subject).replace(/"/gi, '')
+			+ " | " + cstr(data.description).replace(/"/gi, '');
+		
+		// description
+		if(data.description && data.description.length > 50) {
+			data.description = '<span title="'+data.description+'">' + data.description.substr(0,50) + '...</span>';
+		}
+	},
+	
+	columns: [
+		{width: '20%', content:'name'},
+		{width: '10%', content:'status_html'},		
+		{width: '56%', content:'tags+description', css: {color:'#aaa'}},
+		{width: '14%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
+	]
+
+});
diff --git a/erpnext/support/doctype/support_ticket/support_ticket.js b/erpnext/support/doctype/support_ticket/support_ticket.js
index 86264a6..a51b83a 100644
--- a/erpnext/support/doctype/support_ticket/support_ticket.js
+++ b/erpnext/support/doctype/support_ticket/support_ticket.js
@@ -73,7 +73,7 @@
 		cur_frm.fields_dict['Thread HTML'].wrapper.innerHTML = '';
 		
 		// render first message
-		new EmailMessage(cur_frm.fields_dict['Thread HTML'].wrapper, {
+		new EmailMessage($a(cur_frm.fields_dict['Thread HTML'].wrapper, 'div'), {
 			from_email: doc.raised_by,
 			creation: doc.creation,
 			mail: doc.description,
@@ -81,8 +81,8 @@
 		}, null, -1)
 		
 		// render thread		
-		cs.thread_list = new wn.widgets.Listing({
-			parent: cur_frm.fields_dict['Thread HTML'].wrapper,
+		cs.thread_list = new wn.ui.Listing({
+			parent: $a(cur_frm.fields_dict['Thread HTML'].wrapper, 'div'),
 			no_result_message: 'No responses yet',
 			get_query: function() {
 				return 'select mail, from_email, creation, content_type '+
@@ -188,7 +188,7 @@
 		);
 		
 		// show only first and last message
-		if(idx==-1 || list && list.values.length-1==idx) {
+		if(idx==-1 || list && list.data.length-1==idx) {
 			$ds(this.message)
 		}
 		
diff --git a/erpnext/support/doctype/support_ticket/support_ticket.txt b/erpnext/support/doctype/support_ticket/support_ticket.txt
index bcdda14..67e60c2 100644
--- a/erpnext/support/doctype/support_ticket/support_ticket.txt
+++ b/erpnext/support/doctype/support_ticket/support_ticket.txt
@@ -3,50 +3,49 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-05-23 12:37:01',
+		'creation': '2012-03-27 14:36:43',
 		'docstatus': 0,
-		'modified': '2012-01-05 16:29:45',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:43',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1311584009',
+		'_last_update': u'1311584009',
 		'allow_attach': 1,
 		'allow_trash': 1,
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Support',
+		'module': u'Support',
 		'name': '__common__',
-		'search_fields': 'status,customer,allocated_to,subject,raised_by',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'search_fields': u'status,customer,allocated_to,subject,raised_by',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': '%(subject)s',
-		'tag_fields': 'status,allocated_to',
+		'subject': u'%(subject)s',
+		'tag_fields': u'status,allocated_to',
 		'version': 153
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Support Ticket',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Support Ticket',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'amend': 0,
-		'cancel': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Support Ticket',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Support Ticket',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
 		'submit': 0
 	},
@@ -54,67 +53,72 @@
 	# DocType, Support Ticket
 	{
 		'doctype': 'DocType',
-		'name': 'Support Ticket'
+		'name': u'Support Ticket'
 	},
 
 	# DocPerm
 	{
+		'cancel': 0,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Guest',
+		'role': u'Guest',
 		'write': 1
 	},
 
 	# DocPerm
 	{
+		'cancel': 0,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Customer',
+		'role': u'Customer',
 		'write': 1
 	},
 
 	# DocPerm
 	{
+		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Support Team',
+		'role': u'Support Team',
 		'write': 1
 	},
 
 	# DocPerm
 	{
+		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'Support Team',
+		'role': u'Support Team',
 		'write': 1
 	},
 
 	# DocPerm
 	{
+		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 2,
-		'role': 'Support Team',
+		'role': u'Support Team',
 		'write': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': 'Open',
-		'doctype': 'DocField',
-		'fieldname': 'status',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'default': u'Open',
+		'doctype': u'DocField',
+		'fieldname': u'status',
+		'fieldtype': u'Select',
 		'in_filter': 0,
-		'label': 'Status',
+		'label': u'Status',
 		'no_copy': 1,
-		'oldfieldname': 'status',
-		'oldfieldtype': 'Select',
-		'options': '\nOpen\nTo Reply\nWaiting for Customer\nHold\nClosed',
+		'oldfieldname': u'status',
+		'oldfieldtype': u'Select',
+		'options': u'\nOpen\nTo Reply\nWaiting for Customer\nHold\nClosed',
 		'permlevel': 1,
 		'reqd': 0,
 		'search_index': 1
@@ -122,116 +126,120 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'subject',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'subject',
+		'fieldtype': u'Text',
 		'in_filter': 1,
-		'label': 'Subject',
+		'label': u'Subject',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'raised_by',
-		'fieldtype': 'Data',
+		'depends_on': u'eval:doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'raised_by',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Raised By (Email)',
-		'oldfieldname': 'raised_by',
-		'oldfieldtype': 'Data',
+		'label': u'Raised By (Email)',
+		'oldfieldname': u'raised_by',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text',
-		'label': 'Description',
-		'oldfieldname': 'problem_description',
-		'oldfieldtype': 'Text',
+		'depends_on': u'eval:doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'label': u'Description',
+		'oldfieldname': u'problem_description',
+		'oldfieldtype': u'Text',
 		'permlevel': 0,
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'HTML',
-		'label': 'Thread HTML',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'thread_html',
+		'fieldtype': u'HTML',
+		'label': u'Thread HTML',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'new_response',
-		'fieldtype': 'Text',
-		'label': 'New Response',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'new_response',
+		'fieldtype': u'Text',
+		'label': u'New Response',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'label': 'Send',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'send',
+		'fieldtype': u'Button',
+		'label': u'Send',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Additional Info',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'additional_info',
+		'fieldtype': u'Section Break',
+		'label': u'Additional Info',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 1,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Customer',
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Link',
-		'options': 'Customer',
+		'label': u'Customer',
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
 		'permlevel': 1,
 		'print_hide': 1,
 		'reqd': 0,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Customer Name',
-		'oldfieldname': 'customer_name',
-		'oldfieldtype': 'Data',
+		'label': u'Customer Name',
+		'oldfieldname': u'customer_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 2,
 		'reqd': 0,
 		'search_index': 0
@@ -239,151 +247,152 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_display',
-		'fieldtype': 'Small Text',
-		'label': 'Address',
+		'doctype': u'DocField',
+		'fieldname': u'address_display',
+		'fieldtype': u'Small Text',
+		'label': u'Address',
 		'permlevel': 2
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_display',
-		'fieldtype': 'Data',
-		'label': 'Contact Name',
+		'doctype': u'DocField',
+		'fieldname': u'contact_display',
+		'fieldtype': u'Data',
+		'label': u'Contact Name',
 		'permlevel': 2
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_mobile',
-		'fieldtype': 'Data',
-		'label': 'Mobile No',
+		'doctype': u'DocField',
+		'fieldname': u'contact_mobile',
+		'fieldtype': u'Data',
+		'label': u'Mobile No',
 		'permlevel': 2
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_email',
-		'fieldtype': 'Data',
-		'label': 'Contact Email',
-		'oldfieldname': 'contact_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'contact_email',
+		'fieldtype': u'Data',
+		'label': u'Contact Email',
+		'oldfieldname': u'contact_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 2
 	},
 
 	# DocField
 	{
-		'default': 'Today',
-		'doctype': 'DocField',
-		'fieldname': 'opening_date',
-		'fieldtype': 'Date',
-		'label': 'Opening Date',
+		'default': u'Today',
+		'doctype': u'DocField',
+		'fieldname': u'opening_date',
+		'fieldtype': u'Date',
+		'label': u'Opening Date',
 		'no_copy': 1,
-		'oldfieldname': 'opening_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'opening_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'opening_time',
-		'fieldtype': 'Time',
-		'label': 'Opening Time',
+		'doctype': u'DocField',
+		'fieldname': u'opening_time',
+		'fieldtype': u'Time',
+		'label': u'Opening Time',
 		'no_copy': 1,
-		'oldfieldname': 'opening_time',
-		'oldfieldtype': 'Time',
+		'oldfieldname': u'opening_time',
+		'oldfieldtype': u'Time',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'allocated_to',
-		'fieldtype': 'Link',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'allocated_to',
+		'fieldtype': u'Link',
 		'in_filter': 1,
-		'label': 'Allocated To',
-		'oldfieldname': 'allocated_to',
-		'oldfieldtype': 'Link',
-		'options': 'Profile',
+		'label': u'Allocated To',
+		'oldfieldname': u'allocated_to',
+		'oldfieldtype': u'Link',
+		'options': u'Profile',
 		'permlevel': 1,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'resolution_details',
-		'fieldtype': 'Text',
-		'label': 'Resolution Details',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'resolution_details',
+		'fieldtype': u'Text',
+		'label': u'Resolution Details',
 		'no_copy': 1,
-		'oldfieldname': 'resolution_details',
-		'oldfieldtype': 'Text',
+		'oldfieldname': u'resolution_details',
+		'oldfieldtype': u'Text',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'resolution_date',
-		'fieldtype': 'Date',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'resolution_date',
+		'fieldtype': u'Date',
 		'in_filter': 0,
-		'label': 'Resolution Date',
+		'label': u'Resolution Date',
 		'no_copy': 1,
-		'oldfieldname': 'resolution_date',
-		'oldfieldtype': 'Date',
+		'oldfieldname': u'resolution_date',
+		'oldfieldtype': u'Date',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'depends_on': 'eval:!doc.__islocal',
-		'doctype': 'DocField',
-		'fieldname': 'resolution_time',
-		'fieldtype': 'Time',
-		'label': 'Resolution Time',
-		'oldfieldname': 'resolution_time',
-		'oldfieldtype': 'Time',
+		'depends_on': u'eval:!doc.__islocal',
+		'doctype': u'DocField',
+		'fieldname': u'resolution_time',
+		'fieldtype': u'Time',
+		'label': u'Resolution Time',
+		'oldfieldname': u'resolution_time',
+		'oldfieldtype': u'Time',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'content_type',
-		'fieldtype': 'Data',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'content_type',
+		'fieldtype': u'Data',
 		'hidden': 1,
-		'label': 'Content Type',
+		'label': u'Content Type',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'label': 'File List',
+		'label': u'File List',
 		'no_copy': 1,
 		'permlevel': 0,
 		'print_hide': 1
@@ -391,13 +400,13 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
+		'doctype': u'DocField',
+		'fieldname': u'naming_series',
+		'fieldtype': u'Select',
 		'hidden': 1,
-		'label': 'Series',
+		'label': u'Series',
 		'no_copy': 1,
-		'options': 'SUP',
+		'options': u'SUP',
 		'permlevel': 0,
 		'print_hide': 1,
 		'reqd': 0,
diff --git a/erpnext/support/doctype/support_ticket_response/support_ticket_response.txt b/erpnext/support/doctype/support_ticket_response/support_ticket_response.txt
index 036601f..7209264 100644
--- a/erpnext/support/doctype/support_ticket_response/support_ticket_response.txt
+++ b/erpnext/support/doctype/support_ticket_response/support_ticket_response.txt
@@ -3,65 +3,62 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-05-23 14:50:48',
+		'creation': '2012-03-27 14:36:44',
 		'docstatus': 0,
-		'modified': '2011-05-24 10:17:30',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:44',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Support',
+		'module': u'Support',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 4
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Support Ticket Response',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Support Ticket Response',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Support Ticket Response
 	{
 		'doctype': 'DocType',
-		'name': 'Support Ticket Response'
+		'name': u'Support Ticket Response'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'mail',
-		'fieldtype': 'Text',
-		'idx': 1,
-		'label': 'Mail'
+		'doctype': u'DocField',
+		'fieldname': u'mail',
+		'fieldtype': u'Text',
+		'label': u'Mail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'from_email',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'From Email'
+		'doctype': u'DocField',
+		'fieldname': u'from_email',
+		'fieldtype': u'Data',
+		'label': u'From Email'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'content_type',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Content Type'
+		'doctype': u'DocField',
+		'fieldname': u'content_type',
+		'fieldtype': u'Data',
+		'label': u'Content Type'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/search_criteria/amc_summary/amc_summary.txt b/erpnext/support/search_criteria/amc_summary/amc_summary.txt
index 008efb4..e650095 100644
--- a/erpnext/support/search_criteria/amc_summary/amc_summary.txt
+++ b/erpnext/support/search_criteria/amc_summary/amc_summary.txt
@@ -3,33 +3,33 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:32',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2010-07-15 16:00:11',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:50',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_cond': "`tabSerial No`.`territory` is not null\n`tabSerial No`.`territory` != ''\n`tabSerial No`.`status` not in ('In Store', 'Scrapped')",
-		'columns': 'Serial No\x01Territory',
-		'criteria_name': 'AMC Summary',
-		'doc_type': 'Serial No',
+		'add_cond': u"`tabSerial No`.`territory` is not null\n`tabSerial No`.`territory` != ''\n`tabSerial No`.`status` not in ('In Store', 'Scrapped')",
+		'columns': u'Serial No\x01Territory',
+		'criteria_name': u'AMC Summary',
+		'doc_type': u'Serial No',
 		'doctype': 'Search Criteria',
-		'filters': "{'Serial No\x01Saved':1,'Serial No\x01Status':''}",
-		'group_by': '`tabSerial No`.`cost_center`',
-		'module': 'Support',
+		'filters': u"{'Serial No\x01Saved':1,'Serial No\x01Status':''}",
+		'group_by': u'`tabSerial No`.`cost_center`',
+		'module': u'Support',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabSerial No`.`cost_center`',
-		'sort_order': 'ASC',
-		'standard': 'Yes'
+		'sort_by': u'`tabSerial No`.`cost_center`',
+		'sort_order': u'ASC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, amc_summary
 	{
 		'doctype': 'Search Criteria',
-		'name': 'amc_summary'
+		'name': u'amc_summary'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/search_criteria/customer_issues/customer_issues.txt b/erpnext/support/search_criteria/customer_issues/customer_issues.txt
index 652d1fb..c313235 100644
--- a/erpnext/support/search_criteria/customer_issues/customer_issues.txt
+++ b/erpnext/support/search_criteria/customer_issues/customer_issues.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-08-30 13:21:32',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Customer Issue\x01ID,Customer Issue\x01Status,Customer Issue\x01Complaint Date,Customer Issue\x01Complaint,Customer Issue\x01Item Code,Customer Issue\x01Item Name,Customer Issue\x01Allocated To,Customer Issue\x01Allocated On,Customer Issue\x01Resolved By,Customer Issue\x01Resolution Date,Customer Issue\x01Customer Name,Customer Issue\x01Fiscal Year',
-		'criteria_name': 'Customer Issues',
-		'doc_type': 'Customer Issue',
+		'columns': u'Customer Issue\x01ID,Customer Issue\x01Status,Customer Issue\x01Complaint Date,Customer Issue\x01Complaint,Customer Issue\x01Item Code,Customer Issue\x01Item Name,Customer Issue\x01Allocated To,Customer Issue\x01Allocated On,Customer Issue\x01Resolved By,Customer Issue\x01Resolution Date,Customer Issue\x01Customer Name,Customer Issue\x01Fiscal Year',
+		'criteria_name': u'Customer Issues',
+		'doc_type': u'Customer Issue',
 		'doctype': 'Search Criteria',
-		'filters': "{'Customer Issue\x01Saved':1,'Customer Issue\x01Submitted':1,'Customer Issue\x01Status':'','Customer Issue\x01Fiscal Year':''}",
-		'module': 'Support',
+		'filters': u"{'Customer Issue\x01Saved':1,'Customer Issue\x01Submitted':1,'Customer Issue\x01Status':'','Customer Issue\x01Fiscal Year':''}",
+		'module': u'Support',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabCustomer Issue`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabCustomer Issue`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, customer_issues
 	{
 		'doctype': 'Search Criteria',
-		'name': 'customer_issues'
+		'name': u'customer_issues'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt b/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt
index d0c3578..2e6e11d 100644
--- a/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt
+++ b/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt
@@ -3,34 +3,34 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-08-30 13:40:44',
-		'modified_by': 'Administrator',
-		'owner': 'ashwini@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'ashwini@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': "SUM((`tabSales Order Detail`.`qty` - `tabSales Order Detail`.`billed_qty`) * `tabSales Order Detail`.`basic_rate`) AS 'Pending Amount'",
-		'add_cond': "`tabSales Order`.status != 'Stopped'\n`tabSales Order`.order_type='Maintenance'",
-		'columns': 'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Customer Name,Sales Order\x01Customer Address,Sales Order\x01Status,Sales Order\x01% Billed,Sales Order\x01Sales Order Date',
-		'criteria_name': 'Maintenance Orderwise Pending Amount To Bill',
-		'doc_type': 'Sales Order Detail',
+		'add_col': u"SUM((`tabSales Order Item`.`qty` - `tabSales Order Item`.`billed_qty`) * `tabSales Order Item`.`basic_rate`) AS 'Pending Amount'",
+		'add_cond': u"`tabSales Order`.status != 'Stopped'\n`tabSales Order`.order_type='Maintenance'",
+		'columns': u'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Customer Name,Sales Order\x01Customer Address,Sales Order\x01Status,Sales Order\x01% Billed,Sales Order\x01Sales Order Date',
+		'criteria_name': u'Maintenance Orderwise Pending Amount To Bill',
+		'doc_type': u'Sales Order Item',
 		'doctype': 'Search Criteria',
-		'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
-		'module': 'Support',
+		'filters': u"{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Status':'','Sales Order\x01Fiscal Year':''}",
+		'module': u'Support',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Sales Order',
-		'sort_by': '`tabSales Order`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Sales Order',
+		'sort_by': u'`tabSales Order`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, maintenance_orderwise_pending_amount_to_bill
 	{
 		'doctype': 'Search Criteria',
-		'name': 'maintenance_orderwise_pending_amount_to_bill'
+		'name': u'maintenance_orderwise_pending_amount_to_bill'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt b/erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt
index b1ae15f..a81b187 100644
--- a/erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt
+++ b/erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt
@@ -3,32 +3,32 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2010-08-30 13:18:23',
-		'modified_by': 'Administrator',
-		'owner': 'nabin@webnotestech.com'
+		'modified': '2012-04-03 12:49:51',
+		'modified_by': u'Administrator',
+		'owner': u'nabin@webnotestech.com'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Maintenance Schedule Detail\x01Item Code,Maintenance Schedule Detail\x01Item Name,Maintenance Schedule Detail\x01Serial No,Maintenance Schedule Detail\x01Incharge Name,Maintenance Schedule Detail\x01Scheduled Date,Maintenance Schedule\x01Customer Name,Maintenance Schedule\x01Address,Maintenance Schedule\x01Sales Order No',
-		'criteria_name': 'Maintenance Schedule Details',
-		'doc_type': 'Maintenance Schedule Detail',
+		'columns': u'Maintenance Schedule Detail\x01Item Code,Maintenance Schedule Detail\x01Item Name,Maintenance Schedule Detail\x01Serial No,Maintenance Schedule Detail\x01Incharge Name,Maintenance Schedule Detail\x01Scheduled Date,Maintenance Schedule\x01Customer Name,Maintenance Schedule\x01Address,Maintenance Schedule\x01Sales Order No',
+		'criteria_name': u'Maintenance Schedule Details',
+		'doc_type': u'Maintenance Schedule Detail',
 		'doctype': 'Search Criteria',
-		'filters': "{'Maintenance Schedule\x01Submitted':1,'Maintenance Schedule\x01Status':''}",
-		'module': 'Support',
+		'filters': u"{'Maintenance Schedule\x01Submitted':1,'Maintenance Schedule\x01Status':''}",
+		'module': u'Support',
 		'name': '__common__',
 		'page_len': 50,
-		'parent_doc_type': 'Maintenance Schedule',
-		'sort_by': '`tabMaintenance Schedule Detail`.`item_code`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'parent_doc_type': u'Maintenance Schedule',
+		'sort_by': u'`tabMaintenance Schedule Detail`.`item_code`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, maintenance_schedule_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'maintenance_schedule_details'
+		'name': u'maintenance_schedule_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt b/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt
index 89b5797..a80ee64 100644
--- a/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt
+++ b/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt
@@ -3,31 +3,31 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:09',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-08-30 13:32:21',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Serial No\x01ID,Serial No\x01Item Code,Serial No\x01Description,Serial No\x01Status,Serial No\x01Item Group,Serial No\x01Purchase Receipt No,Serial No\x01Delivery Note No,Serial No\x01Customer,Serial No\x01Customer Name,Serial No\x01AMC Expiry Date,Serial No\x01Warranty Expiry Date',
-		'criteria_name': 'Warranty/AMC Expiry Details',
-		'doc_type': 'Serial No',
+		'columns': u'Serial No\x01ID,Serial No\x01Item Code,Serial No\x01Description,Serial No\x01Status,Serial No\x01Item Group,Serial No\x01Purchase Receipt No,Serial No\x01Delivery Note No,Serial No\x01Customer,Serial No\x01Customer Name,Serial No\x01AMC Expiry Date,Serial No\x01Warranty Expiry Date',
+		'criteria_name': u'Warranty/AMC Expiry Details',
+		'doc_type': u'Serial No',
 		'doctype': 'Search Criteria',
-		'filters': "{'Serial No\x01Saved':1,'Serial No\x01Status':'','Serial No\x01Maintenance Status':''}",
-		'module': 'Support',
+		'filters': u"{'Serial No\x01Saved':1,'Serial No\x01Status':'','Serial No\x01Maintenance Status':''}",
+		'module': u'Support',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabSerial No`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabSerial No`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, warranty-amc_expiry_details
 	{
 		'doctype': 'Search Criteria',
-		'name': 'warranty-amc_expiry_details'
+		'name': u'warranty-amc_expiry_details'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt
index 02aa84c..cdc76d2 100644
--- a/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt
+++ b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt
@@ -3,30 +3,30 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-10-12 15:19:31',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2010-09-25 12:14:49',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'criteria_name': 'Warranty/AMC Summary',
-		'doc_type': 'Serial No',
+		'criteria_name': u'Warranty/AMC Summary',
+		'doc_type': u'Serial No',
 		'doctype': 'Search Criteria',
-		'filters': "{'Serial No\x01Saved':1,'Serial No\x01Status':''}",
-		'module': 'Support',
+		'filters': u"{'Serial No\x01Saved':1,'Serial No\x01Status':''}",
+		'module': u'Support',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': 'name',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'name',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, warranty-amc_summary
 	{
 		'doctype': 'Search Criteria',
-		'name': 'warranty-amc_summary'
+		'name': u'warranty-amc_summary'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/Module Def/Utilities/Utilities.txt b/erpnext/utilities/Module Def/Utilities/Utilities.txt
deleted file mode 100644
index 98b4d0f..0000000
--- a/erpnext/utilities/Module Def/Utilities/Utilities.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-# Module Def, Utilities
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-01 17:46:25',
-		'docstatus': 0,
-		'modified': '2011-07-01 17:47:34',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Module Def
-	{
-		'disabled': 'No',
-		'doctype': 'Module Def',
-		'is_hidden': 'No',
-		'module_label': 'Utilities',
-		'module_name': 'Utilities',
-		'name': '__common__'
-	},
-
-	# Module Def, Utilities
-	{
-		'doctype': 'Module Def',
-		'name': 'Utilities'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/activity_dashboard_control/__init__.py b/erpnext/utilities/doctype/activity_dashboard_control/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/doctype/activity_dashboard_control/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.py b/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.py
deleted file mode 100644
index e3063e9..0000000
--- a/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.py
+++ /dev/null
@@ -1,111 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-    def __init__(self, doc, doclist=[]):
-        self.doc = doc
-        self.doclist = doclist
-    
-    
-    # get dashboard counts
-    # --------------------
-    def get_dashboard_counts(self, dt):
-        dtl = eval(dt)
-        dt = {}
-        
-        for d in dtl:
-            # if Lead
-            if d=='Lead':
-                dt[d] = {'To follow up':sql("select count(name) from tabLead where status!='Converted' and docstatus=1")[0][0] or 0}
-                
-            # if Enquiry
-            elif d=='Enquiries':
-                args = {}
-                args['Quotations to be sent'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabEnquiry`t2 where t1.enq_no!=t2.name and t2.docstatus=1")[0][0] or 0
-                args['To follow up'] = sql("select count(name) from `tabQuotation` where docstatus=0")[0][0] or 0       #Draft
-                dt[d] = args
-                
-            # if Sales Order
-            elif d=='Sales Order':
-                args = {}
-                args['To be delivered'] = sql("select count(name) from `tabSales Order` where per_delivered<100 and delivery_date>now() and docstatus=1")[0][0] or 0
-                args['To be billed'] = sql("select count(name) from `tabSales Order` where per_billed<100 and docstatus=1")[0][0] or 0  
-                args['Overdue'] = sql("select count(name) from `tabSales Order` where per_delivered<100 and delivery_date<now() and docstatus=1")[0][0] or 0
-                args['To be submitted'] = sql("select count(name) from `tabSales Order` where status='Draft'")[0][0] or 0       #Draft
-                dt[d] = args
-            
-            # if Invoice
-            elif d=='Invoices':
-                args = {}
-                args['To receive payment'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=1 and due_date>now() and outstanding_amount!=0")[0][0] or 0
-                args['Overdue'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=1 and due_date<now() and outstanding_amount!=0")[0][0] or 0  
-                args['To be submitted'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=0")[0][0] or 0       #Draft
-                dt[d] = args
-            
-            # if Indent 
-            elif d=='Indent':
-                args = {}
-                args['Purchase Order to be made'] = sql("select count(name) from `tabIndent` where per_ordered<100 and docstatus=1")[0][0] or 0
-                args['To be submitted'] = sql("select count(name) from `tabIndent` where status='Draft'")[0][0] or 0       #Draft
-                dt[d] = args
-                
-            # if Purchase Order    
-            elif d=='Purchase Order':
-                args = {}
-                args['To receive items'] = sql("select count(name) from `tabPurchase Order` where per_received<100 and docstatus=1")[0][0] or 0
-                args['To be billed'] = sql("select count(name) from `tabPurchase Order` where per_billed<100 and docstatus=1")[0][0] or 0
-                args['To be submitted'] = sql("select count(name) from `tabPurchase Order` where status='Draft'")[0][0] or 0        #Draft
-                dt[d] = args
-            
-            # if Bills
-            elif d=='Bills':
-                args = {}
-                args['To be payed'] = sql("select count(name) from `tabPayable Voucher` where docstatus=1 and outstanding_amount!=0")[0][0] or 0
-                args['To be submitted'] = sql("select count(name) from `tabPayable Voucher` where docstatus=0")[0][0] or 0       #Draft
-                dt[d] = args
-                
-            # if Tasks
-            elif d=='Tasks':
-                dt[d] = {'Open': sql("select count(name) from `tabTicket` where status='Open'")[0][0] or 0}
-                
-            # if Maintenance
-            elif d=='Serial No':
-              args = {}
-              args['AMC to expire this month'] = sql("select count(name) from `tabSerial No` where docstatus=1 and month(getdate()) = month(amc_expiry_date) and year(getdate()) = year(amc_expiry_date)")[0][0] or 0
-              args['Warranty to expire this month'] = ql("select count(name) from `tabSerial No` where docstatus=1 and month(getdate()) = month(warranty_expiry_date) and year(getdate())=year(warranty_expiry_date)")[0][0] or 0
-              dt[d] = args
-              
-        msgprint(dt)
-        return dt
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.txt b/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.txt
deleted file mode 100644
index 58f489e..0000000
--- a/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# DocType, Activity Dashboard Control
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:51',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'module': 'Utilities',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 42
-	},
-
-	# DocType, Activity Dashboard Control
-	{
-		'doctype': 'DocType',
-		'name': 'Activity Dashboard Control'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/address/address.js b/erpnext/utilities/doctype/address/address.js
index fc274ef..8949c5a 100644
--- a/erpnext/utilities/doctype/address/address.js
+++ b/erpnext/utilities/doctype/address/address.js
@@ -17,5 +17,28 @@
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
 	if(doc.customer) cur_frm.add_fetch('customer', 'customer_name', 'customer_name');
 	if(doc.supplier) cur_frm.add_fetch('supplier', 'supplier_name', 'supplier_name');
+	
+	var route = wn.get_route();
+	if(route[1]=='Supplier') {
+		var supplier = locals.Supplier[route[2]]
+		doc.supplier = supplier.name;
+		doc.supplier_name = supplier.supplier_name;
+		doc.address_type = 'Office';
+	} else if(route[1]=='Customer') {
+		var customer = locals.Customer[route[2]]
+		doc.customer = customer.name;
+		doc.customer_name = customer.customer_name;
+		doc.address_type = 'Office';
+	} else if(route[1]=='Sales Partner') {
+		var sp = locals['Sales Partner'][route[2]];
+		doc.sales_partner = sp.name;
+		doc.address_type = 'Office';				
+	}
 }
 
+cur_frm.cscript.hide_dialog = function() {
+	if(cur_frm.address_list)
+		cur_frm.address_list.run();
+}
+
+
diff --git a/erpnext/utilities/doctype/address/address.txt b/erpnext/utilities/doctype/address/address.txt
index 776321b..56bbbe5 100644
--- a/erpnext/utilities/doctype/address/address.txt
+++ b/erpnext/utilities/doctype/address/address.txt
@@ -3,114 +3,115 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-05-24 14:57:59',
+		'creation': '2012-03-27 14:36:45',
 		'docstatus': 0,
-		'modified': '2011-11-23 13:21:00',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:45',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1319016431',
+		'_last_update': u'1319016431',
 		'allow_trash': 1,
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_dialog': 1,
-		'module': 'Utilities',
+		'module': u'Utilities',
 		'name': '__common__',
-		'search_fields': 'customer, supplier, sales_partner, country, state',
-		'section_style': 'Simple',
+		'search_fields': u'customer, supplier, sales_partner, country, state',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 43
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Address',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Address',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Address',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Address',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'All',
+		'role': u'All',
 		'write': 1
 	},
 
 	# DocType, Address
 	{
 		'doctype': 'DocType',
-		'name': 'Address'
+		'name': u'Address'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Address Details',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'address_details',
+		'fieldtype': u'Section Break',
+		'label': u'Address Details',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': '<em>e.g. Office, Billing, Shipping</em>',
-		'doctype': 'DocField',
-		'fieldname': 'address_type',
-		'fieldtype': 'Data',
-		'label': 'Address Type',
+		'colour': u'White:FFF',
+		'description': u'<em>e.g. Office, Billing, Shipping</em>',
+		'doctype': u'DocField',
+		'fieldname': u'address_type',
+		'fieldtype': u'Data',
+		'label': u'Address Type',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'address_line1',
-		'fieldtype': 'Data',
-		'label': 'Address Line1',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'address_line1',
+		'fieldtype': u'Data',
+		'label': u'Address Line1',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'address_line2',
-		'fieldtype': 'Data',
-		'label': 'Address Line2',
+		'doctype': u'DocField',
+		'fieldname': u'address_line2',
+		'fieldtype': u'Data',
+		'label': u'Address Line2',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'city',
-		'fieldtype': 'Data',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'city',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'City/Town',
+		'label': u'City/Town',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1
@@ -118,172 +119,173 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'pincode',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'pincode',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Pincode',
+		'label': u'Pincode',
 		'permlevel': 0,
 		'search_index': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'country',
-		'fieldtype': 'Select',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'country',
+		'fieldtype': u'Select',
 		'in_filter': 1,
-		'label': 'Country',
-		'options': 'link:Country',
+		'label': u'Country',
+		'options': u'link:Country',
 		'permlevel': 0,
 		'reqd': 1,
 		'search_index': 1,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'state',
-		'fieldtype': 'Data',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'state',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'State',
-		'options': 'Suggest',
+		'label': u'State',
+		'options': u'Suggest',
 		'permlevel': 0,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
 		'permlevel': 0,
 		'print_hide': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'phone',
-		'fieldtype': 'Data',
-		'label': 'Phone',
+		'doctype': u'DocField',
+		'fieldname': u'phone',
+		'fieldtype': u'Data',
+		'label': u'Phone',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'email_id',
-		'fieldtype': 'Data',
-		'label': 'Email Id',
+		'doctype': u'DocField',
+		'fieldname': u'email_id',
+		'fieldtype': u'Data',
+		'label': u'Email Id',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fax',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'fax',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Fax',
+		'label': u'Fax',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.supplier && !doc.sales_partner',
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'label': 'Customer',
-		'options': 'Customer',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.supplier && !doc.sales_partner',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
+		'label': u'Customer',
+		'options': u'Customer',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.supplier && !doc.sales_partner',
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.supplier && !doc.sales_partner',
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Customer Name',
+		'label': u'Customer Name',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.customer && !doc.sales_partner',
-		'doctype': 'DocField',
-		'fieldname': 'supplier',
-		'fieldtype': 'Link',
-		'label': 'Supplier',
-		'options': 'Supplier',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.customer && !doc.sales_partner',
+		'doctype': u'DocField',
+		'fieldname': u'supplier',
+		'fieldtype': u'Link',
+		'label': u'Supplier',
+		'options': u'Supplier',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.customer && !doc.sales_partner',
-		'doctype': 'DocField',
-		'fieldname': 'supplier_name',
-		'fieldtype': 'Data',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.customer && !doc.sales_partner',
+		'doctype': u'DocField',
+		'fieldname': u'supplier_name',
+		'fieldtype': u'Data',
 		'in_filter': 1,
-		'label': 'Supplier Name',
+		'label': u'Supplier Name',
 		'permlevel': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.customer && !doc.supplier',
-		'doctype': 'DocField',
-		'fieldname': 'sales_partner',
-		'fieldtype': 'Link',
-		'label': 'Sales Partner',
-		'options': 'Sales Partner',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.customer && !doc.supplier',
+		'doctype': u'DocField',
+		'fieldname': u'sales_partner',
+		'fieldtype': u'Link',
+		'label': u'Sales Partner',
+		'options': u'Sales Partner',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': '0',
-		'description': 'Check to make primary address',
-		'doctype': 'DocField',
-		'fieldname': 'is_primary_address',
-		'fieldtype': 'Check',
-		'label': 'Is Primary Address',
+		'colour': u'White:FFF',
+		'default': u'0',
+		'description': u'Check to make primary address',
+		'doctype': u'DocField',
+		'fieldname': u'is_primary_address',
+		'fieldtype': u'Check',
+		'label': u'Is Primary Address',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': '0',
-		'description': 'Check to make Shipping Address',
-		'doctype': 'DocField',
-		'fieldname': 'is_shipping_address',
-		'fieldtype': 'Check',
-		'label': 'Is Shipping Address',
+		'colour': u'White:FFF',
+		'default': u'0',
+		'description': u'Check to make Shipping Address',
+		'doctype': u'DocField',
+		'fieldname': u'is_shipping_address',
+		'fieldtype': u'Check',
+		'label': u'Is Shipping Address',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'label': 'Trash Reason',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
 		'permlevel': 0
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt b/erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt
index 16058e7..d8f9c00 100644
--- a/erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt
+++ b/erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt
@@ -3,59 +3,59 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-07-08 11:14:15',
+		'creation': '2012-03-27 14:36:46',
 		'docstatus': 0,
-		'modified': '2011-07-26 00:59:27',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:45:46',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1311622167',
+		'_last_update': u'1322549701',
 		'allow_attach': 1,
-		'autoname': 'field:rename_doctype',
-		'colour': 'White:FFF',
+		'autoname': u'field:rename_doctype',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Utilities',
+		'is_submittable': 1,
+		'module': u'Utilities',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
-		'version': 7
+		'version': 8
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Bulk Rename Tool',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
+		'parent': u'Bulk Rename Tool',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Bulk Rename Tool',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Bulk Rename Tool',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, Bulk Rename Tool
 	{
 		'doctype': 'DocType',
-		'name': 'Bulk Rename Tool'
+		'name': u'Bulk Rename Tool'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'submit': 1,
 		'write': 1
@@ -63,37 +63,64 @@
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'rename_doctype',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Rename DocType',
-		'options': 'Suggest',
+		'doctype': u'DocField',
+		'fieldname': u'rename_doctype',
+		'fieldtype': u'Data',
+		'label': u'Rename DocType',
+		'options': u'Suggest',
+		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
-		'idx': 2,
-		'label': 'File List'
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
+		'hidden': 1,
+		'label': u'File List',
+		'no_copy': 1,
+		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 3,
-		'label': 'Rename',
-		'options': 'do_rename'
+		'doctype': u'DocField',
+		'fieldname': u'rename',
+		'fieldtype': u'Button',
+		'label': u'Rename',
+		'options': u'do_rename',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'depends_on': u'eval:doc.amended_from',
+		'description': u'The date at which current entry is corrected in the system.',
+		'doctype': u'DocField',
+		'fieldname': u'amendment_date',
+		'fieldtype': u'Date',
+		'label': u'Amendment Date',
+		'no_copy': 1,
+		'permlevel': 0,
+		'print_hide': 1
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'amended_from',
+		'fieldtype': u'Link',
+		'label': u'Amended From',
+		'no_copy': 1,
+		'options': u'Sales Invoice',
+		'permlevel': 1,
+		'print_hide': 1
 	}
-]
+]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/contact/contact.js b/erpnext/utilities/doctype/contact/contact.js
index 2aa89c1..9244b79 100644
--- a/erpnext/utilities/doctype/contact/contact.js
+++ b/erpnext/utilities/doctype/contact/contact.js
@@ -18,54 +18,28 @@
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
 	if(doc.customer) cur_frm.add_fetch('customer', 'customer_name', 'customer_name');
 	if(doc.supplier) cur_frm.add_fetch('supplier', 'supplier_name', 'supplier_name');
-}
 
-/*
-//---------- on refresh ----------------------
-cur_frm.cscript.refresh = function(doc,cdt,cdn){
-	
-}
-
-
-//------------- Trigger on customer ---------------------
-cur_frm.cscript.is_customer = function(doc,cdt,cdn){
-	if(!doc.is_customer){
-		doc.customer = doc.customer_name = doc.customer_address = doc.customer_group = '';
-		refresh_many(['customer','customer_name','customer_address','customer_group']);
+	var route = wn.get_route();
+	if(route[1]=='Supplier') {
+		var supplier = locals.Supplier[route[2]]
+		doc.supplier = supplier.name;
+		doc.supplier_name = supplier.supplier_name;
+	} else if(route[1]=='Customer') {
+		var customer = locals.Customer[route[2]];
+		doc.customer = customer.name;
+		doc.customer_name = customer.customer_name;
+		if(customer.customer_type == 'Individual') {
+			doc.first_name = customer.customer_name;
+		}		
+	} else if(route[1]=='Sales Partner') {
+		var sp = locals['Sales Partner'][route[2]];
+		doc.sales_partner = sp.name;
 	}
 }
 
-//------------- Trigger on supplier -----------------------
-cur_frm.cscript.is_supplier = function(doc,cdt,cdn){
-	if(!doc.is_supplier){
-		doc.supplier = doc.supplier_name = doc.supplier_address = doc.supplier_type = ''; 
-		refresh_many(['supplier','supplier_address','supplier_name','supplier_type']);
-	}
-}
-	
-//--------------- Trigger on sales partner ---------------------
-cur_frm.cscript.is_sales_partner = function(doc,cdt,cdn){
-	if(!doc.is_sales_partner){
-		doc.sales_partner = doc.sales_partner_address = doc.partner_type = '';
-		refresh_many(['sales_partner','sales_partner_address','partner_type']);
-	}
+cur_frm.cscript.hide_dialog = function() {
+	if(cur_frm.contact_list)
+		cur_frm.contact_list.run();
 }
 
-//----------- Trigger on supplier name ------------------------
-cur_frm.cscript.supplier = function(doc,cdt,cdn){
-	arg = {'dt':'Supplier','dn':doc.supplier,'nm':'supplier_name','fld':'supplier_address','type':'supplier_type'};
-	get_server_fields('get_address',docstring(arg),'',doc,cdt,cdn,1);
-}
 
-//------------ Trigger on customer name ------------------------
-cur_frm.cscript.customer = function(doc,cdt,cdn){
-	arg = {'dt':'Customer','dn':doc.customer,'nm':'customer_name','fld':'customer_address','type':'customer_group'};
-	get_server_fields('get_address',docstring(arg),'',doc,cdt,cdn,1);
-}
-
-//------------ Trigger on sales partner ------------------------
-cur_frm.cscript.sales_partner = function(doc,cdt,cdn){
-	arg = {'dt':'Sales Partner','dn':doc.sales_partner,'nm':'partner_name','fld':'sales_partner_address','type':'partner_type'};
-	get_server_fields('get_address',docstring(arg),'',doc,cdt,cdn,1);
-}
-*/
diff --git a/erpnext/utilities/doctype/contact/contact.txt b/erpnext/utilities/doctype/contact/contact.txt
index 9167ed4..f385bd6 100644
--- a/erpnext/utilities/doctype/contact/contact.txt
+++ b/erpnext/utilities/doctype/contact/contact.txt
@@ -3,69 +3,55 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:08:55',
+		'creation': '2012-03-27 14:36:46',
 		'docstatus': 0,
-		'modified': '2012-01-23 16:07:56',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:46',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1327314958',
+		'_last_update': u'1327314958',
 		'allow_trash': 1,
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'document_type': 'Master',
+		'document_type': u'Master',
 		'in_create': 0,
 		'in_dialog': 1,
-		'module': 'Utilities',
+		'module': u'Utilities',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'subject': '%(first_name)s %(last_name)s - Email: %(email_id)s | Contact: %(phone)s | Mobile: %(mobile_no)s',
+		'subject': u'%(first_name)s %(last_name)s - Email: %(email_id)s | Contact: %(phone)s | Mobile: %(mobile_no)s',
 		'version': 245
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Contact',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Contact',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Contact',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Contact',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1
 	},
 
 	# DocType, Contact
 	{
 		'doctype': 'DocType',
-		'name': 'Contact'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Sales User'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'permlevel': 0,
-		'role': 'Purchase User'
+		'name': u'Contact'
 	},
 
 	# DocPerm
@@ -73,35 +59,35 @@
 		'amend': 0,
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Sales Master Manager',
+		'role': u'Sales Master Manager',
 		'submit': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1,
-		'role': 'All',
+		'role': u'All',
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 2,
-		'role': 'All'
+		'role': u'All'
 	},
 
 	# DocPerm
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'Purchase Master Manager',
+		'role': u'Purchase Master Manager',
 		'write': 1
 	},
 
@@ -109,208 +95,225 @@
 	{
 		'cancel': 1,
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase User'
+	},
+
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'label': 'Contact Details',
-		'oldfieldtype': 'Section Break',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'contact_details',
+		'fieldtype': u'Section Break',
+		'label': u'Contact Details',
+		'oldfieldtype': u'Section Break',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'first_name',
-		'fieldtype': 'Data',
-		'label': 'First Name',
-		'oldfieldname': 'first_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'first_name',
+		'fieldtype': u'Data',
+		'label': u'First Name',
+		'oldfieldname': u'first_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'last_name',
-		'fieldtype': 'Data',
-		'label': 'Last Name',
-		'oldfieldname': 'last_name',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'last_name',
+		'fieldtype': u'Data',
+		'label': u'Last Name',
+		'oldfieldname': u'last_name',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.supplier && !doc.sales_partner',
-		'doctype': 'DocField',
-		'fieldname': 'customer',
-		'fieldtype': 'Link',
-		'label': 'Customer',
-		'oldfieldname': 'customer',
-		'oldfieldtype': 'Link',
-		'options': 'Customer',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.supplier && !doc.sales_partner',
+		'doctype': u'DocField',
+		'fieldname': u'customer',
+		'fieldtype': u'Link',
+		'label': u'Customer',
+		'oldfieldname': u'customer',
+		'oldfieldtype': u'Link',
+		'options': u'Customer',
 		'permlevel': 0,
 		'print_hide': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.supplier && !doc.sales_partner',
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'fieldtype': 'Data',
-		'label': 'Customer Name',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.supplier && !doc.sales_partner',
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'fieldtype': u'Data',
+		'label': u'Customer Name',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.customer && !doc.sales_partner',
-		'doctype': 'DocField',
-		'fieldname': 'supplier',
-		'fieldtype': 'Link',
-		'label': 'Supplier',
-		'options': 'Supplier',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.customer && !doc.sales_partner',
+		'doctype': u'DocField',
+		'fieldname': u'supplier',
+		'fieldtype': u'Link',
+		'label': u'Supplier',
+		'options': u'Supplier',
 		'permlevel': 0,
-		'trigger': 'Client'
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
 		'allow_on_submit': 0,
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.customer && !doc.sales_partner',
-		'doctype': 'DocField',
-		'fieldname': 'supplier_name',
-		'fieldtype': 'Data',
-		'label': 'Supplier Name',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.customer && !doc.sales_partner',
+		'doctype': u'DocField',
+		'fieldname': u'supplier_name',
+		'fieldtype': u'Data',
+		'label': u'Supplier Name',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'depends_on': 'eval:!doc.customer && !doc.supplier',
-		'doctype': 'DocField',
-		'fieldname': 'sales_partner',
-		'fieldtype': 'Link',
-		'label': 'Sales Partner',
-		'options': 'Sales Partner',
+		'colour': u'White:FFF',
+		'depends_on': u'eval:!doc.customer && !doc.supplier',
+		'doctype': u'DocField',
+		'fieldname': u'sales_partner',
+		'fieldtype': u'Link',
+		'label': u'Sales Partner',
+		'options': u'Sales Partner',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'default': '0',
-		'depends_on': 'eval:(doc.customer || doc.supplier || doc.sales_partner)',
-		'doctype': 'DocField',
-		'fieldname': 'is_primary_contact',
-		'fieldtype': 'Check',
-		'label': 'Is Primary Contact',
-		'oldfieldname': 'is_primary_contact',
-		'oldfieldtype': 'Select',
+		'colour': u'White:FFF',
+		'default': u'0',
+		'depends_on': u'eval:(doc.customer || doc.supplier || doc.sales_partner)',
+		'doctype': u'DocField',
+		'fieldname': u'is_primary_contact',
+		'fieldtype': u'Check',
+		'label': u'Is Primary Contact',
+		'oldfieldname': u'is_primary_contact',
+		'oldfieldtype': u'Select',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'oldfieldtype': 'Column Break',
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'oldfieldtype': u'Column Break',
 		'permlevel': 0,
-		'width': '50%'
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'email_id',
-		'fieldtype': 'Data',
-		'label': 'Email Id',
-		'oldfieldname': 'email_id',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'email_id',
+		'fieldtype': u'Data',
+		'label': u'Email Id',
+		'oldfieldname': u'email_id',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'phone',
-		'fieldtype': 'Data',
-		'label': 'Phone',
-		'oldfieldname': 'contact_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'phone',
+		'fieldtype': u'Data',
+		'label': u'Phone',
+		'oldfieldname': u'contact_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0,
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'mobile_no',
-		'fieldtype': 'Data',
-		'label': 'Mobile No',
-		'oldfieldname': 'mobile_no',
-		'oldfieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldname': u'mobile_no',
+		'fieldtype': u'Data',
+		'label': u'Mobile No',
+		'oldfieldname': u'mobile_no',
+		'oldfieldtype': u'Data',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Enter department to which this Contact belongs',
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Data',
-		'label': 'Department',
-		'options': 'Suggest',
+		'colour': u'White:FFF',
+		'description': u'Enter department to which this Contact belongs',
+		'doctype': u'DocField',
+		'fieldname': u'department',
+		'fieldtype': u'Data',
+		'label': u'Department',
+		'options': u'Suggest',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Enter designation of this Contact',
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Data',
-		'label': 'Designation',
-		'options': 'Suggest',
+		'colour': u'White:FFF',
+		'description': u'Enter designation of this Contact',
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Data',
+		'label': u'Designation',
+		'options': u'Suggest',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'trash_reason',
-		'fieldtype': 'Small Text',
-		'label': 'Trash Reason',
-		'oldfieldname': 'trash_reason',
-		'oldfieldtype': 'Small Text',
+		'doctype': u'DocField',
+		'fieldname': u'trash_reason',
+		'fieldtype': u'Small Text',
+		'label': u'Trash Reason',
+		'oldfieldname': u'trash_reason',
+		'oldfieldtype': u'Small Text',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/contact_detail/__init__.py b/erpnext/utilities/doctype/contact_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/doctype/contact_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/doctype/contact_detail/contact_detail.txt b/erpnext/utilities/doctype/contact_detail/contact_detail.txt
deleted file mode 100644
index 306491f..0000000
--- a/erpnext/utilities/doctype/contact_detail/contact_detail.txt
+++ /dev/null
@@ -1,98 +0,0 @@
-# DocType, Contact Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:56',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': 'CD/.#####',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Utilities',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'show_in_menu': 0,
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Contact Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Contact Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Contact Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_person',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Contact Person',
-		'oldfieldname': 'contact_person',
-		'oldfieldtype': 'Data',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'contact_no',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Contact No',
-		'oldfieldname': 'contact_no',
-		'oldfieldtype': 'Data',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'Department',
-		'oldfieldname': 'department',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Designation',
-		'oldfieldname': 'designation',
-		'oldfieldtype': 'Data'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'email_id',
-		'fieldtype': 'Small Text',
-		'idx': 5,
-		'label': 'Email Id',
-		'oldfieldname': 'email_id',
-		'oldfieldtype': 'Small Text'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/file_browser_control/__init__.py b/erpnext/utilities/doctype/file_browser_control/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/doctype/file_browser_control/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/doctype/file_browser_control/file_browser_control.py b/erpnext/utilities/doctype/file_browser_control/file_browser_control.py
deleted file mode 100644
index 8e0e3c4..0000000
--- a/erpnext/utilities/doctype/file_browser_control/file_browser_control.py
+++ /dev/null
@@ -1,214 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-    def __init__(self,doc,doclist=[]):
-        self.doc = doc
-        self.doclist = doclist
-        
-    # All root file groups(where parent_group is null).
-    def get_root_file_grps(self):
-        fl_grp = convert_to_lists(sql("select name,group_name,ifnull(can_edit,''),ifnull(can_view,''),owner from `tabFile Group` where (parent_group='' or parent_group is null)"))
-        return fl_grp
-    
-    # Get children of selected file group.
-    def get_children(self,grp):
-        ret = {}
-        ret['parent_grp'] = grp
-            
-        fl_grp = convert_to_lists(sql("select name,group_name,ifnull(can_edit,''),ifnull(can_view,''),owner from `tabFile Group` where parent_group=%s",grp))
-        ret['fl_grp'] = fl_grp or ''
-        fl = convert_to_lists(sql("select name,ifnull(file_name,''),ifnull(file_list,''),ifnull(can_edit,''),ifnull(can_view,''),owner from tabFile where file_group=%s and (file_name != '' and file_name is not null)",grp))
-        ret['fl'] = fl or ''
-
-        return ret
-    
-    # Create a new file group.
-    def create_new_grp(self,arg):
-        arg = eval(arg)
-        
-        grp = Document('File Group')
-        grp.group_name = arg['grp_nm']
-        grp.parent_group = arg['parent_grp']
-        grp.description = arg['desc']
-        grp.name = arg['grp_nm']
-        grp.save(1)
-        msgprint('Created a New Group')
-        return grp.name
-    
-    # Create a new file.
-    def create_new_file(self,arg):
-        arg = eval(arg)
-        
-        f = Document('File')
-        f.file_name = arg['file_name']
-        f.description = arg['desc']
-        f.type = arg['type']
-        f.file_group = arg['file_grp']
-        f_obj = get_obj(doc=f)
-        f_obj.validate()
-        f_obj.doc.save(1)
-        msgprint('Created a New File')
-        ret = {
-            'name'  :   f_obj.doc.name,
-            'label' :   f_obj.doc.file_name
-        }
-        return ret
-    
-    # Update changes done to selected file group.
-    def update_grp(self,arg):
-        arg = eval(arg)
-        sql("update `tabFile Group` set group_name=%s, parent_group=%s, description=%s where name=%s",(arg['grp_nm'],arg['parent_grp'],arg['desc'],arg['name']))
-        msgprint("Changes are saved.")
-        return arg['name']
-
-    # Update changes done to selected file.
-    def update_file(self,arg):
-        arg = eval(arg)
-        sql("update `tabFile` set description=%s, file_group=%s where name=%s",(arg['desc'],arg['file_grp'],arg['name']))
-        msgprint("Changes are saved.")        
-        return arg['name']
-        
-    # Get details of selected file.
-    def get_file_details(self,file_id):
-        file_det = convert_to_lists(sql("select name,file_name, description, file_group, file_list from tabFile where name=%s",file_id))
-        file_det = {
-            'name' : file_det[0][0] or '',
-            'file_name' : file_det[0][1] or '',
-            'description' : file_det[0][2] or '',
-            'file_group' : file_det[0][3] or '',
-            'file_list' : file_det[0][4] or ''
-        }
-        return file_det
-    
-    # Delete File Data and File record.
-    def delete(self,arg):
-        arg = eval(arg)
-        if arg['dt'] == 'File Group':
-            sql("delete from `tabFile Group` where name= %s", arg['dn'])
-        elif arg['dt'] == 'File':
-			file_list = sql("select file_list from tabFile where name=%s", arg['dn'])[0][0] or ''
-			f_id = file_list.split(',')[-1]
-			if f_id:
-				sql("delete from `tabFile Data` where name=%s", f_id)
-				sql("delete from tabFile where name = %s", arg['dn'])	
-        else:
-            pass
-			
-    #Move to another group.
-    def move(self,arg):
-        msgprint('need to write code')
-
-    # Upload Image
-    def upload_many(self,form):
-        import os
-        # from file browser
-        if form.getvalue('form_name') == 'File Browser':
-            if form.getvalue('filedata'):
-                i = form['filedata']
-
-                #creat file data                
-                fd = Document('File Data')
-                fd.blob_content = i.file.read()
-                fd.file_name = i.filename
-                
-                file_det = form.getvalue('file_det').split('~~')
-                
-                if(file_det[0] == 'NIL'):
-                    file_desc = ''
-                else:
-                    file_desc = file_det[0]
-                
-                if(file_det[1] == 'NIL'):
-                    file_grp = ''
-                    return 'File Group is mandatory.'
-                    raise Exception
-                else:
-                    file_grp = file_det[1]
-                
-                if "" in fd.file_name:
-                  fd.file_name = fd.file_name.split("")[-1]
-                if '/' in fd.file_name:
-                  fd.file_name = fd.file_name.split('/')[-1]
-                fd.save(1)
-                
-                f = Document('File')
-                f.file_list = fd.file_name + ',' + fd.name
-                f.file_name = fd.file_name
-                f.description = file_desc
-                f.file_group = file_grp
-                f.save(1)
-                
-                ret = {
-                    'name'  :   f.name,
-                    'file_name' :   f.file_name
-                }
-                    
-                return ret
-            else:
-                return 'No file found.'
-        else:
-            return 'No file found.'
-    
-    # Get all system roles.
-    def get_all_roles(self):
-        roles = convert_to_lists(sql("select name from tabRole"))
-        return roles
-    
-    # Get details for selected File Group.
-    def get_fg_details(self,grp):
-        grp_det = convert_to_lists(sql("select name,group_name, ifnull(parent_group,''), ifnull(description,''), ifnull(can_edit,''),ifnull(can_view,''),owner from `tabFile Group` where name=%s",grp))
-        grp_det = {
-            'Name' : grp_det[0][0] or '',
-            'Group Name' : grp_det[0][1] or '',
-            'Parent Group' : grp_det[0][2] or '',
-            'Description' : grp_det[0][3] or '',
-            'Can Edit' : grp_det[0][4] or '',
-            'Can View' : grp_det[0][5] or '',
-            'Owner' : grp_det[0][6] or ''
-        }
-        return grp_det
-    
-    # Update Edit/ View privileges to selected File/ File Group.
-    def update_privileges(self,arg):
-        arg = eval(arg)
-        sql("update `tab%s` set can_edit='%s', can_view='%s' where name='%s'" % (arg['type'],arg['edit_roles'], arg['view_roles'], arg['name']))
-        msgprint('Privileges updated.')
-    
-    # Get Edit/ View privileges from selected File/ File Group.
-    def get_privileges(self,arg):
-        arg = eval(arg)
-        privilege = convert_to_lists(sql("select ifnull(can_edit,''), ifnull(can_view,''),owner from `tab%s` where name='%s'" % (arg['dt'],arg['dn'])))
-        return privilege
diff --git a/erpnext/utilities/doctype/file_browser_control/file_browser_control.txt b/erpnext/utilities/doctype/file_browser_control/file_browser_control.txt
deleted file mode 100644
index 2988e17..0000000
--- a/erpnext/utilities/doctype/file_browser_control/file_browser_control.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-# DocType, File Browser Control
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2009-10-28 10:25:03',
-		'docstatus': 0,
-		'modified': '2010-12-27 11:09:53',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'module': 'Utilities',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 81
-	},
-
-	# DocType, File Browser Control
-	{
-		'doctype': 'DocType',
-		'name': 'File Browser Control'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/gl_mapper/gl_mapper.txt b/erpnext/utilities/doctype/gl_mapper/gl_mapper.txt
index e1ce2a9..ef45427 100644
--- a/erpnext/utilities/doctype/gl_mapper/gl_mapper.txt
+++ b/erpnext/utilities/doctype/gl_mapper/gl_mapper.txt
@@ -3,44 +3,44 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:03',
+		'creation': '2012-03-27 14:36:46',
 		'docstatus': 0,
-		'modified': '2011-05-10 11:16:01',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:46',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1305006361',
-		'autoname': 'field:doc_type',
-		'colour': 'White:FFF',
+		'_last_update': u'1305006361',
+		'autoname': u'field:doc_type',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'Utilities',
+		'module': u'Utilities',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 3
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'GL Mapper',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'GL Mapper',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'GL Mapper',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'GL Mapper',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1
 	},
@@ -48,7 +48,7 @@
 	# DocType, GL Mapper
 	{
 		'doctype': 'DocType',
-		'name': 'GL Mapper'
+		'name': u'GL Mapper'
 	},
 
 	# DocPerm
@@ -56,43 +56,38 @@
 		'amend': 0,
 		'cancel': 0,
 		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'role': 'Accounts User',
+		'doctype': u'DocPerm',
+		'role': u'Accounts User',
 		'submit': 0,
 		'write': 0
 	},
 
 	# DocPerm
 	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'role': 'System Manager',
+		'doctype': u'DocPerm',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'doc_type',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Doc Type',
-		'oldfieldname': 'doc_type',
-		'oldfieldtype': 'Link',
+		'doctype': u'DocField',
+		'fieldname': u'doc_type',
+		'fieldtype': u'Data',
+		'label': u'Doc Type',
+		'oldfieldname': u'doc_type',
+		'oldfieldtype': u'Link',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fields',
-		'fieldtype': 'Table',
-		'idx': 2,
-		'label': 'Fields',
-		'oldfieldname': 'fields',
-		'oldfieldtype': 'Table',
-		'options': 'GL Mapper Detail'
+		'doctype': u'DocField',
+		'fieldname': u'fields',
+		'fieldtype': u'Table',
+		'label': u'Fields',
+		'oldfieldname': u'fields',
+		'oldfieldtype': u'Table',
+		'options': u'GL Mapper Detail'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/gl_mapper_detail/gl_mapper_detail.txt b/erpnext/utilities/doctype/gl_mapper_detail/gl_mapper_detail.txt
index bf77e7c..a62d2e7 100644
--- a/erpnext/utilities/doctype/gl_mapper_detail/gl_mapper_detail.txt
+++ b/erpnext/utilities/doctype/gl_mapper_detail/gl_mapper_detail.txt
@@ -3,223 +3,206 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:03',
+		'creation': '2012-03-27 14:36:46',
 		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:46',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'GLMDetail.#####',
-		'colour': 'White:FFF',
+		'autoname': u'GLMDetail.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Utilities',
+		'module': u'Utilities',
 		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 3
+		'version': 4
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Data',
+		'doctype': u'DocField',
+		'fieldtype': u'Data',
 		'name': '__common__',
-		'oldfieldtype': 'Data',
-		'parent': 'GL Mapper Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'oldfieldtype': u'Data',
+		'parent': u'GL Mapper Detail',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, GL Mapper Detail
 	{
 		'doctype': 'DocType',
-		'name': 'GL Mapper Detail'
+		'name': u'GL Mapper Detail'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'table_field',
-		'idx': 1,
-		'label': 'Table Field',
-		'oldfieldname': 'table_field'
+		'doctype': u'DocField',
+		'fieldname': u'table_field',
+		'label': u'Table Field',
+		'oldfieldname': u'table_field'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'account',
-		'idx': 2,
-		'label': 'Account',
-		'oldfieldname': 'account',
+		'doctype': u'DocField',
+		'fieldname': u'account',
+		'label': u'Account',
+		'oldfieldname': u'account',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'debit',
-		'idx': 3,
-		'label': 'Debit',
-		'oldfieldname': 'debit',
+		'doctype': u'DocField',
+		'fieldname': u'debit',
+		'label': u'Debit',
+		'oldfieldname': u'debit',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'credit',
-		'idx': 4,
-		'label': 'Credit',
-		'oldfieldname': 'credit',
+		'doctype': u'DocField',
+		'fieldname': u'credit',
+		'label': u'Credit',
+		'oldfieldname': u'credit',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'cost_center',
-		'idx': 5,
-		'label': 'Cost Center',
-		'oldfieldname': 'cost_center',
+		'doctype': u'DocField',
+		'fieldname': u'cost_center',
+		'label': u'Cost Center',
+		'oldfieldname': u'cost_center',
 		'reqd': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'against',
-		'idx': 6,
-		'label': 'Against',
-		'oldfieldname': 'against',
+		'doctype': u'DocField',
+		'fieldname': u'against',
+		'label': u'Against',
+		'oldfieldname': u'against',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'remarks',
-		'idx': 7,
-		'label': 'Remarks',
+		'doctype': u'DocField',
+		'fieldname': u'remarks',
+		'label': u'Remarks',
 		'no_copy': 1,
-		'oldfieldname': 'remarks',
+		'oldfieldname': u'remarks',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_type',
-		'idx': 8,
-		'label': 'Voucher Type',
-		'oldfieldname': 'voucher_type',
+		'doctype': u'DocField',
+		'fieldname': u'voucher_type',
+		'label': u'Voucher Type',
+		'oldfieldname': u'voucher_type',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_no',
-		'idx': 9,
-		'label': 'Voucher No',
-		'oldfieldname': 'voucher_no',
+		'doctype': u'DocField',
+		'fieldname': u'voucher_no',
+		'label': u'Voucher No',
+		'oldfieldname': u'voucher_no',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'description': 'The date at which current entry will get or has actually executed.',
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'idx': 10,
-		'label': 'Posting Date',
-		'oldfieldname': 'posting_date',
+		'description': u'The date at which current entry will get or has actually executed.',
+		'doctype': u'DocField',
+		'fieldname': u'posting_date',
+		'label': u'Posting Date',
+		'oldfieldname': u'posting_date',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'description': 'The date at which current entry is made in system.',
-		'doctype': 'DocField',
-		'fieldname': 'transaction_date',
-		'idx': 11,
-		'label': 'Transaction Date',
-		'oldfieldname': 'transaction_date',
+		'description': u'The date at which current entry is made in system.',
+		'doctype': u'DocField',
+		'fieldname': u'transaction_date',
+		'label': u'Transaction Date',
+		'oldfieldname': u'transaction_date',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'aging_date',
-		'idx': 12,
-		'label': 'Aging Date',
-		'oldfieldname': 'aging_date',
+		'doctype': u'DocField',
+		'fieldname': u'aging_date',
+		'label': u'Aging Date',
+		'oldfieldname': u'aging_date',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'idx': 13,
+		'doctype': u'DocField',
+		'fieldname': u'fiscal_year',
 		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
+		'label': u'Fiscal Year',
+		'oldfieldname': u'fiscal_year',
 		'reqd': 1,
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'against_voucher',
-		'idx': 14,
-		'label': 'Against Voucher',
-		'oldfieldname': 'against_voucher'
+		'doctype': u'DocField',
+		'fieldname': u'against_voucher',
+		'label': u'Against Voucher',
+		'oldfieldname': u'against_voucher'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'against_voucher_type',
-		'idx': 15,
-		'label': 'Against Voucher Type',
-		'oldfieldname': 'against_voucher_type'
+		'doctype': u'DocField',
+		'fieldname': u'against_voucher_type',
+		'label': u'Against Voucher Type',
+		'oldfieldname': u'against_voucher_type'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'idx': 16,
+		'doctype': u'DocField',
+		'fieldname': u'company',
 		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
+		'label': u'Company',
+		'oldfieldname': u'company',
 		'search_index': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_opening',
-		'idx': 17,
-		'label': 'Is Opening',
-		'oldfieldname': 'is_opening'
+		'doctype': u'DocField',
+		'fieldname': u'is_opening',
+		'label': u'Is Opening',
+		'oldfieldname': u'is_opening'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'is_advance',
-		'idx': 18,
-		'label': 'Is Advance',
-		'oldfieldname': 'is_advance'
+		'doctype': u'DocField',
+		'fieldname': u'is_advance',
+		'label': u'Is Advance',
+		'oldfieldname': u'is_advance'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/menu_control/__init__.py b/erpnext/utilities/doctype/menu_control/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/doctype/menu_control/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/doctype/menu_control/menu_control.js b/erpnext/utilities/doctype/menu_control/menu_control.js
deleted file mode 100644
index ce0b10f..0000000
--- a/erpnext/utilities/doctype/menu_control/menu_control.js
+++ /dev/null
@@ -1,98 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-class DocType:
-  def __init__(self, d, dl):
-    self.doc, self.doclist = d,dl
-
-  def get_children(self, arg='', only_type='', in_roles=[]):
-
-    type_cond = only_type and (" and menu_item_type='%s'" % only_type) or ''
-    
-    if globals().has_key('version') and version=='v170':
-      import webnotes
-      roles = webnotes.user.get_roles()
-      all_read = webnotes.user.can_read
-    else:    
-      roles = in_roles or session['data']['roles']
-      all_read = session['data']['all_readtypes']
-      
-    cl = sql("select name, menu_item_label, menu_item_type, link_id, link_content, has_children, icon, `order`, criteria_name, doctype_fields, onload from `tabMenu Item` where ifnull(disabled,'No')!='Yes' and ifnull(parent_menu_item,'')='%s' %s order by `order` asc" % (arg, type_cond), as_dict=1)
-    ol = []
-    for c in cl:
-      c['has_children'] = cint(c['has_children'])
-      c['order'] = cint(c['order'])
-      for k in c.keys(): 
-        if c[k]==None: c[k] = ''
-
-      # check permission
-      if c['menu_item_type'] in ('DocType','Single','Report'):
-        if c['link_id'] in all_read:
-          ol.append(c)
-      elif c['menu_item_type']=='Page':
-        # page
-        if c['link_id'].startswith('_'):
-          ol.append(c)
-        elif has_common([r[0] for r in sql("select role from `tabPage Role` where parent=%s", c['link_id'])], roles):
-          ol.append(c)
-      elif cstr(c['menu_item_type'])=='':
-        # sections
-        if has_common([r[0] for r in sql("select role from `tabMenu Item Role` where parent=%s", c['name'])], roles):
-          ol.append(c)
-      else:
-        ol.append(c)
-    
-    return ol
-
-  def get_dt_details(self, arg):
-    dt, fl = arg.split('~~~')    
-
-    out = {}
-
-    # filters
-    # -------
-
-    sf = sql("select search_fields from tabDocType where name=%s", dt)[0][0] or ''
-    sf = [s.strip() for s in sf.split(',')]
-    if sf and sf[0]:
-      res = sql("select fieldname, label, fieldtype, options from tabDocField where parent='%s' and fieldname in (%s)" % (dt, '"'+'","'.join(sf)+'"'))
-    else:
-      res = []
-
-    res = [[c or '' for c in r] for r in res]
-    for r in res:
-      if r[2]=='Select' and r[3] and r[3].startswith('link:'):
-        tdt = r[3][5:]
-        ol = sql("select name from `tab%s` where docstatus!=2 order by name asc" % tdt)
-        r[3] = NEWLINE.join([''] + [o[0] for o in ol])
-
-    if not res:
-      out['filters'] = [['name', 'ID', 'Data', '']]
-    else:
-      out['filters'] = res
-    
-    # columns
-    # -------
-    fl = fl.split(NEWLINE)
-    fl = [f.split(',')[0] for f in fl]
-    res = []
-    for f in fl:
-      res += [[c or '' for c in r] for r in sql("select fieldname, label, fieldtype, options from tabDocField where parent='%s' and fieldname='%s'" % (dt, f))]
-
-    out['columns'] = [['name', 'ID', 'Link', dt]] + res
-
-    return out
- 
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/menu_control/menu_control.py b/erpnext/utilities/doctype/menu_control/menu_control.py
deleted file mode 100644
index a6ab09a..0000000
--- a/erpnext/utilities/doctype/menu_control/menu_control.py
+++ /dev/null
@@ -1,281 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import cint, cstr
-from webnotes.model.doc import Document
-from webnotes.model.code import get_obj
-from webnotes import session, form, msgprint, errprint
-
-sql = webnotes.conn.sql
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-	def __init__(self, d, dl):
-		self.doc, self.doclist = d,dl
-
-	# --------------------------------------------------------------
-	def get_children(self, arg='', only_type='', in_roles=[]):
-
-		type_cond = only_type and (" and menu_item_type='%s'" % only_type) or ''
-		
-		import webnotes
-		roles = webnotes.user.get_roles()
-		all_read = webnotes.user.can_get_report
-			
-		cl = sql("select name, menu_item_label, menu_item_type, link_id, link_content, has_children, icon, `order`, criteria_name, doctype_fields, onload from `tabMenu Item` where ifnull(disabled,'No')!='Yes' and ifnull(parent_menu_item,'')='%s' %s order by `order` asc" % (arg, type_cond), as_dict=1)
-		ol = []
-		for c in cl:
-			c['has_children'] = cint(c['has_children'])
-			c['order'] = cint(c['order'])
-			for k in c.keys(): 
-				if c[k]==None: c[k] = ''
-
-			# check permission
-			if c['menu_item_type'] in ('DocType','Single','Report'):
-				if c['link_id'] in all_read:
-					ol.append(c)
-			elif c['menu_item_type']=='Page':
-				# page
-				if c['link_id'].startswith('_'):
-					ol.append(c)
-				elif has_common([r[0] for r in sql("select role from `tabPage Role` where parent=%s", c['link_id'])], roles):
-					ol.append(c)
-			elif cstr(c['menu_item_type'])=='':
-				# sections
-				if has_common([r[0] for r in sql("select role from `tabMenu Item Role` where parent=%s", c['name'])], roles):
-					ol.append(c)
-			else:
-				ol.append(c)
-		
-		return ol
-
-	# --------------------------------------------------------------
-	def has_result(self, dt):
-		return sql("select name from `tab%s` limit 1" % dt) and 'Yes' or 'No'
-
-	# --------------------------------------------------------------
-
-	def is_submittable(self, dt):
-		return sql("select name from tabDocPerm where parent=%s and ifnull(submit,0)=1 and docstatus<1 limit 1", dt)
-
-	# --------------------------------------------------------------
-
-	def can_cancel(self, dt):
-		return sql('select name from tabDocPerm where parent="%s" and ifnull(cancel,0)=1 and docstatus<1 and role in ("%s") limit 1' % (dt, '", "'.join(webnotes.user.get_roles())))
-
-	# --------------------------------------------------------------
-	def get_dt_trend(self, dt):
-		ret = {}
-		for r in sql("select datediff(now(),modified), count(*) from `tab%s` where datediff(now(),modified) between 0 and 30 group by date(modified)" % dt):
-			ret[cint(r[0])] = cint(r[1])
-		return ret
-
-	# --------------------------------------------------------------
-
-	def get_columns(self, out, sf, fl, dt):
-		if not fl:
-			fl = sf
-
-		res = []
-		for f in fl:
-			if f:
-				res += [[c or '' for c in r] for r in sql("select fieldname, label, fieldtype, options from tabDocField where parent='%s' and fieldname='%s'" % (dt, f))]
-				
-		return res
-
-	# --------------------------------------------------------------
-
-	def check_user_tags(self, dt):
-		try:
-			sql("select `_user_tags` from `tab%s` limit 1" % dt)
-		except Exception, e:
-			if e.args[0] == 1054:
-				webnotes.conn.commit()
-				sql("alter table `tab%s` add column `_user_tags` varchar(180)" % dt)
-				webnotes.conn.begin()
-
-	# --------------------------------------------------------------
-	# NOTE: THIS SHOULD BE CACHED IN DOCTYPE CACHE
-	# --------------------------------------------------------------
-	
-	def get_dt_details(self, arg):
-		dt, fl, color_map = eval(arg)
-		submittable = self.is_submittable(dt) and 1 or 0
-	 
-		out = {
-			'submittable':(self.is_submittable(dt) and 1 or 0), 
-			'can_cancel':(self.can_cancel(dt) and 1 or 0)
-		}
-
-		# filters
-		# -------
-
-		sf = sql("select search_fields from tabDocType where name=%s", dt)[0][0] or ''
-
-		# get fields from in_filter (if not in search_fields)
-		if not sf.strip():
-			res = sql("select fieldname, label, fieldtype, options from tabDocField where parent=%s and `in_filter` = 1 and ifnull(fieldname,'') != ''", dt)
-			sf = [s[0] for s in res]
-		else:
-			sf = [s.strip() for s in sf.split(',')]
-			res = sql("select fieldname, label, fieldtype, options from tabDocField where parent='%s' and fieldname in (%s)" % (dt, '"'+'","'.join(sf)+'"'))
-
-		# select "link" options
-		res = [[c or '' for c in r] for r in res]
-		for r in res:
-			if r[2]=='Select' and r[3] and r[3].startswith('link:'):
-				tdt = r[3][5:]
-				ol = sql("select name from `tab%s` where docstatus!=2 order by name asc" % tdt)
-				r[3] = "\n".join([''] + [o[0] for o in ol])
-
-		if not res:
-			out['filters'] = [['name', 'ID', 'Data', '']]
-		else:
-			out['filters'] = [['name', 'ID', 'Data', '']] + res
-		
-		# columns
-		# -------
-		res = self.get_columns(out, sf, fl, dt)
-		
-		self.check_user_tags(dt)
-		
-		out['columns'] = [['name', 'ID', 'Link', dt], ['modified', 'Modified', 'Data', ''], ['_user_tags', 'Tags', 'Data', '']] + res
-		
-		if cint(color_map):
-			out['color_map'] = self.get_color_map()
-			
-		return out
-
-	# --------------------------------------------------------------
-
-	def get_color_map(self):
-		d={}
-		try:
-			for tag in sql("select name, tag_color from tabTag"):
-				d[tag[0]] = tag[1]
-		except Exception, e:
-			if e.args[0] in (1146, 1054):
-				return {}
-			else:
-				raise e
-		return d
-
-	# --------------------------------------------------------------
-
-	def get_trend(self, dt):
-		return {'trend': self.get_dt_trend(dt)}
-
-	# --------------------------------------------------------------
-
-	def get_tags(self, dt, dn):
-		tl = sql("select ifnull(_user_tags,'') from tab%s where name=%s" % (dt,'%s'), dn)[0][0]
-		return tl and tl.split(',') or []
-	
-	# --------------------------------------------------------------
-
-	def update_tags(self, dt, dn, tl):
-		if len(','.join(tl)) > 179:
-			msgprint("Too many tags")
-			raise Exception
-		
-		tl = filter(lambda x: x, tl)
-		
-		# update in table
-		sql("update tab%s set _user_tags=%s where name=%s" % (dt,'%s','%s'), (',' + ','.join(tl), dn))
-		
-		# update in feed (if present)
-		sql("update tabFeed set _user_tags=%s where doc_label=%s and doc_name=%s", (',' + ','.join(tl), dt, dn))
-
-	# --------------------------------------------------------------
-
-	def _add_tag_to_master(self, tag, color):
-		if color:
-			t, cond = color, ("on duplicate key update tag_color='%s'" % color)
-		else:
-			t, cond = 'Default', ''
-			
-		sql("insert ignore into tabTag(name, tag_color) values ('%s', '%s') %s" % (tag, t, cond))
-		
-	def create_tag(self, tag, color):
-		try:
-			self._add_tag_to_master(tag, color)
-		except Exception, e:
-			# add the table
-			if e.args[0]==1146:
-				webnotes.conn.commit()
-				sql("create table `tabTag`(`name` varchar(180), tag_color varchar(180), primary key (`name`))")
-				webnotes.conn.begin()
-				self._add_tag_to_master(tag, color)
-
-			# udpate the color column
-			if e.args[0]==1054:
-				webnotes.conn.commit()
-				sql("alter table tabTag add column tag_color varchar(180)")
-				webnotes.conn.begin()
-				self._add_tag_to_master(tag, color)
-				
-			else:
-				raise e
-
-	# --------------------------------------------------------------
-
-	def add_tag(self,arg):
-		dt, dn, tag, color = eval(arg)
-		
-		# create tag in tag table
-		self.create_tag(tag, color)
-		
-		# add in _user_tags
-		tl = self.get_tags(dt, dn)
-		
-		if not tag in tl:
-			tl.append(tag)
-			self.update_tags(dt, dn, tl)
-			
-		return tag
- 
- 	# --------------------------------------------------------------
-
-	def remove_tag(self,arg):
-		dt, dn, tag = eval(arg)
-		tl = self.get_tags(dt, dn)				
-		self.update_tags(dt, dn, filter(lambda x:x!=tag, tl))
-		
-	# --------------------------------------------------------------
-
-	def delete_items(self,arg):
-		il = eval(arg)
-		from webnotes.model import delete_doc
-		for d in il:
-			dt_obj = get_obj(d[0], d[1])
-			if hasattr(dt_obj, 'on_trash'):
-				dt_obj.on_trash()
-			delete_doc(d[0], d[1])
-
-	# --------------------------------------------------------------
-
-	def archive_items(self,arg):
-		arg = eval(arg)
-		
-		from webnotes.utils.archive import archive_doc
-		for d in arg['items']:
-			archive_doc(d[0], d[1], arg['action']=='Restore' and 1 or 0)
diff --git a/erpnext/utilities/doctype/menu_control/menu_control.txt b/erpnext/utilities/doctype/menu_control/menu_control.txt
deleted file mode 100644
index 37d63ad..0000000
--- a/erpnext/utilities/doctype/menu_control/menu_control.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-# DocType, Menu Control
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2009-06-09 13:43:49',
-		'docstatus': 0,
-		'modified': '2011-01-03 12:01:42',
-		'modified_by': 'sneha@webnotestech.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'module': 'Utilities',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 38
-	},
-
-	# DocType, Menu Control
-	{
-		'doctype': 'DocType',
-		'name': 'Menu Control'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/patch_util/__init__.py b/erpnext/utilities/doctype/patch_util/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/doctype/patch_util/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/doctype/patch_util/patch_util.py b/erpnext/utilities/doctype/patch_util/patch_util.py
deleted file mode 100644
index 19a5232..0000000
--- a/erpnext/utilities/doctype/patch_util/patch_util.py
+++ /dev/null
@@ -1,118 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-
-# -----------------------------------------------------------------------------------------
-
-class DocType:
-	def __init__(self, d, dl):
-		self.doc, self.doclist = d, dl
-
-	def get_field_id(self, doctype, fieldname):
-		f = sql("select name, idx from tabDocField where parent=%s and fieldname=%s", (doctype, fieldname))
-		if not f:
-			f=sql("select name, idx from tabDocField where parent=%s and label=%s", (doctype, fieldname))
-		if not f:
-			return '__notfound__', 0
-			#msgprint("No field found for %s" % fieldname)
-			#raise Exception
-		return f[0]
-
-	def set_field_property(self, doctype, fieldname, property, value):
-		f = self.get_field_id(doctype, fieldname)
-		sql("update tabDocField set `%s`=%s where name=%s" % (property,'%s','%s'), (value, f[0]))
-	
-	def move_field(self, doctype, fieldname, before_field='', after_field=''):
-		f1 = self.get_field_id(doctype, fieldname)
-		
-		# get new id
-		new_idx = self.get_field_id(doctype, before_field or after_field)[1]
-		if after_field: 
-			new_idx = new_idx + 1
-				
-		# push fields down at new idx
-		sql("update tabDocField set idx=idx+1 where idx>=%s and parent=%s", (new_idx, doctype))
-
-		# push fields up at old idx
-		sql("update tabDocField set idx=idx-1 where idx>%s and parent=%s", (f1[1], doctype))
-		
-		# set field idx
-		sql("update tabDocField set idx=%s where name=%s", (new_idx, f1[0]))
-	
-	def delete_field(self, doctype, fieldname):
-		sql("delete from tabDocField where name=%s limit 1", self.get_field_id(doctype, fieldname)[0])
-
-	def delete_unnamed_field(self, doctype, after_field=''):
-		f1 = self.get_field_id(doctype, after_field)
-		
-		if f1[0]=='__notfound__':
-			return
-		
-		# check if truly un-named
-		f2 = sql("select name, fieldname, label from tabDocField where idx=%s and parent=%s limit 1", (f1[1]+1, doctype))
-		
-		if not f2:
-			return
-		f2 = f2[0]
-		
-		if f2[1] or f2[2]:
-			return
-		else:
-			sql("delete from tabDocField where name=%s limit 1", (f2[0]))
-
-			# move fields up
-			sql("update tabDocField set idx=idx-1 where idx>%s and parent=%s", (f1[1], doctype))
-		
-	def add_permission(self, doctype, role, level=0, read=0, write=0, create=0, submit=0, cancel=0, amend=0, match=''): 
-		# check if exists
-		pid = sql("select name from tabDocPerm where parent=%s and role=%s and permlevel=%s", (doctype, role, level))
-		if pid:
-			d = Document('DocPerm', pid[0][0])
-		else:
-			d = Document('DocPerm')
-			d.parent = doctype
-			d.parenttype = 'DocType'
-			d.parentfield = 'permissions'
-			
-		d.permlevel = level
-		d.role = role
-		d.read = read
-		d.write = write
-		d.create = create
-		d.submit = submit
-		d.cancel = cancel
-		d.amend = amend
-		d.match = match
-		
-		d.save(new = (not d.name and 1 or 0))
-
-	def delete_permission(self, doctype, role, level):
-		sql("delete from `tabDocPerm` where role = '%s' and parent = '%s' and permlevel = '%s'" % (role, doctype, level))
diff --git a/erpnext/utilities/doctype/patch_util/patch_util.txt b/erpnext/utilities/doctype/patch_util/patch_util.txt
deleted file mode 100644
index 3ed62b7..0000000
--- a/erpnext/utilities/doctype/patch_util/patch_util.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# DocType, Patch Util
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-10-27 14:33:29',
-		'docstatus': 0,
-		'modified': '2010-12-21 10:19:44',
-		'modified_by': 'sneha@webnotestech.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'module': 'Utilities',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 5
-	},
-
-	# DocType, Patch Util
-	{
-		'doctype': 'DocType',
-		'name': 'Patch Util'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/profile_control/profile_control.txt b/erpnext/utilities/doctype/profile_control/profile_control.txt
index caaa440..3e6affe 100644
--- a/erpnext/utilities/doctype/profile_control/profile_control.txt
+++ b/erpnext/utilities/doctype/profile_control/profile_control.txt
@@ -3,22 +3,22 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2009-05-29 12:19:21',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2010-11-03 11:03:11',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
-		'module': 'Utilities',
+		'module': u'Utilities',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 12
 	},
@@ -26,6 +26,6 @@
 	# DocType, Profile Control
 	{
 		'doctype': 'DocType',
-		'name': 'Profile Control'
+		'name': u'Profile Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/receiver_detail/__init__.py b/erpnext/utilities/doctype/receiver_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/doctype/receiver_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/doctype/receiver_detail/receiver_detail.txt b/erpnext/utilities/doctype/receiver_detail/receiver_detail.txt
deleted file mode 100644
index 9e330ba..0000000
--- a/erpnext/utilities/doctype/receiver_detail/receiver_detail.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-# DocType, Receiver Detail
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:19',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': 'Utilities',
-		'name': '__common__',
-		'section_style': 'Tray',
-		'server_code_error': ' ',
-		'version': 2
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Data',
-		'name': '__common__',
-		'oldfieldtype': 'Data',
-		'parent': 'Receiver Detail',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# DocType, Receiver Detail
-	{
-		'doctype': 'DocType',
-		'name': 'Receiver Detail'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_name',
-		'idx': 1,
-		'label': 'Customer Name',
-		'oldfieldname': 'customer_name'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'receiver_name',
-		'idx': 2,
-		'label': 'Receiver Name',
-		'oldfieldname': 'receiver_name',
-		'width': '350px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'mobile_no',
-		'idx': 3,
-		'label': 'Mobile No',
-		'oldfieldname': 'mobile_no',
-		'reqd': 1,
-		'width': '200px'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/rename_tool/rename_tool.txt b/erpnext/utilities/doctype/rename_tool/rename_tool.txt
index 3b8a5dd..f84fbd5 100755
--- a/erpnext/utilities/doctype/rename_tool/rename_tool.txt
+++ b/erpnext/utilities/doctype/rename_tool/rename_tool.txt
@@ -3,100 +3,96 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-06-27 10:52:02',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2011-07-26 00:59:27',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1308739509',
+		'_last_update': u'1308739509',
 		'allow_email': 1,
 		'allow_print': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'hide_heading': 0,
 		'hide_toolbar': 0,
 		'issingle': 1,
-		'module': 'Utilities',
+		'module': u'Utilities',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 7
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Rename Tool',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Rename Tool',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Rename Tool',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Rename Tool',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocType, Rename Tool
 	{
 		'doctype': 'DocType',
-		'name': 'Rename Tool'
+		'name': u'Rename Tool'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'select_doctype',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Select DocType',
-		'options': '\nAccount\nCompany\nCustomer\nSupplier\nEmployee\nWarehouse\nItem'
+		'doctype': u'DocField',
+		'fieldname': u'select_doctype',
+		'fieldtype': u'Select',
+		'label': u'Select DocType',
+		'options': u'\nAccount\nCompany\nCustomer\nSupplier\nEmployee\nWarehouse\nItem'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'document_to_rename',
-		'fieldtype': 'Link',
-		'idx': 2,
-		'label': 'Document to rename'
+		'doctype': u'DocField',
+		'fieldname': u'document_to_rename',
+		'fieldtype': u'Link',
+		'label': u'Document to rename'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'new_name',
-		'fieldtype': 'Data',
-		'idx': 3,
-		'label': 'New Name'
+		'doctype': u'DocField',
+		'fieldname': u'new_name',
+		'fieldtype': u'Data',
+		'label': u'New Name'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 4,
-		'label': 'Rename',
-		'options': 'rename'
+		'doctype': u'DocField',
+		'fieldname': u'rename',
+		'fieldtype': u'Button',
+		'label': u'Rename',
+		'options': u'rename'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/reposting_tool/reposting_tool.js b/erpnext/utilities/doctype/reposting_tool/reposting_tool.js
index 006ef9a..d44a2cd 100644
--- a/erpnext/utilities/doctype/reposting_tool/reposting_tool.js
+++ b/erpnext/utilities/doctype/reposting_tool/reposting_tool.js
@@ -18,7 +18,7 @@
 var msg = [];
 var binidx = 0;
 
-cur_frm.cscript['Repost Bin'] = function(doc,cdt,cdn) {
+cur_frm.cscript.repost_bin = function(doc,cdt,cdn) {
   args = {'check': 'Bin'};
   $c_obj('Reposting Tool','get_count_for_reposting', docstring(args), function(r,rt) {
        bin_list = r.message;
@@ -50,7 +50,7 @@
 //======================================================
 var acc_list = [];
 var accidx = 0;
-cur_frm.cscript['Repost Account Balances'] = function(doc,cdt,cdn) {
+cur_frm.cscript.repost_account_balances = function(doc,cdt,cdn) {
   args = {'check': 'Account Balance'};
   $c_obj('Reposting Tool','get_count_for_reposting', docstring(args), function(r,rt) {
        acc_list = r.message;
diff --git a/erpnext/utilities/doctype/reposting_tool/reposting_tool.py b/erpnext/utilities/doctype/reposting_tool/reposting_tool.py
index 82df4e3..e75f27c 100644
--- a/erpnext/utilities/doctype/reposting_tool/reposting_tool.py
+++ b/erpnext/utilities/doctype/reposting_tool/reposting_tool.py
@@ -64,16 +64,16 @@
 		act_qty = act_qty and flt(act_qty[0][0]) or 0
 	
 		# get indented_qty 
-		ind_qty = sql("select sum(if( ifnull(t2.qty, 0) > ifnull(t2.ordered_qty, 0), ifnull(t2.qty, 0) - ifnull(t2.ordered_qty, 0), 0) ) from `tabIndent` t1, `tabIndent Detail`t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
+		ind_qty = sql("select sum(if( ifnull(t2.qty, 0) > ifnull(t2.ordered_qty, 0), ifnull(t2.qty, 0) - ifnull(t2.ordered_qty, 0), 0) ) from `tabPurchase Request` t1, `tabPurchase Request Item`t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
 		ind_qty = ind_qty and flt(ind_qty[0][0]) or 0
 		
 		# get ordered_qty
-		ord_qty = sql("select sum(if ( ifnull(t2.qty, 0) > ifnull(t2.received_qty, 0), (ifnull(t2.qty, 0) - ifnull(t2.received_qty, 0)) * ifnull(t2.conversion_factor, 0) , 0) ) from `tabPurchase Order` t1, `tabPO Detail` t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
+		ord_qty = sql("select sum(if ( ifnull(t2.qty, 0) > ifnull(t2.received_qty, 0), (ifnull(t2.qty, 0) - ifnull(t2.received_qty, 0)) * ifnull(t2.conversion_factor, 0) , 0) ) from `tabPurchase Order` t1, `tabPurchase Order Item` t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
 		ord_qty = ord_qty and flt(ord_qty[0][0]) or 0
 		
 
 		# get reserved_qty
-		res_qty =sql("select sum(if ( ifnull(t2.qty, 0) > ifnull(t2.delivered_qty, 0), ifnull(t2.qty, 0) - ifnull(t2.delivered_qty, 0) , 0) ) from `tabSales Order` t1, `tabSales Order Detail` t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.reserved_warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
+		res_qty =sql("select sum(if ( ifnull(t2.qty, 0) > ifnull(t2.delivered_qty, 0), ifnull(t2.qty, 0) - ifnull(t2.delivered_qty, 0) , 0) ) from `tabSales Order` t1, `tabSales Order Item` t2 where t1.name = t2.parent and t1.docstatus = 1 and t2.reserved_warehouse = '%s' and t2.item_code = '%s' and status != 'Stopped'" % (wh, item))
 		res_qty = res_qty and flt(res_qty[0][0]) or 0
 
 		# get planned_qty 
@@ -84,7 +84,7 @@
 
 	# =============================================================================
 	def check_bin_qty(self, bin_obj, qty_dict):
-		label_dict = {'actual_qty': 'Actual Qty', 'indented_qty': 'Indent Qty', 'ordered_qty': 'Ordered Qty', 'reserved_qty': 'Reserved Qty', 'planned_qty': 'Planned Qty'}
+		label_dict = {'actual_qty': 'Actual Qty', 'indented_qty': 'Quantity Requested for Purchase', 'ordered_qty': 'Ordered Qty', 'reserved_qty': 'Reserved Qty', 'planned_qty': 'Planned Qty'}
 		for f in qty_dict:
 			if flt(bin_obj.doc.fields[f]) != qty_dict[f]:
 				msgprint('<div style="color: RED"> Difference found in %s for Item:= %s and Warehouse:= %s (Before : %s; After : %s)</div>' % (label_dict[f], bin_obj.doc.item_code, bin_obj.doc.warehouse, cstr(bin_obj.doc.fields[f]), cstr(qty_dict[f])))
diff --git a/erpnext/utilities/doctype/reposting_tool/reposting_tool.txt b/erpnext/utilities/doctype/reposting_tool/reposting_tool.txt
index 788b11f..453902b 100644
--- a/erpnext/utilities/doctype/reposting_tool/reposting_tool.txt
+++ b/erpnext/utilities/doctype/reposting_tool/reposting_tool.txt
@@ -3,94 +3,92 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:19',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2011-04-19 11:50:09',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1308741898',
 		'allow_copy': 1,
 		'allow_email': 1,
 		'allow_print': 1,
-		'colour': 'Light Blue:DEF',
+		'colour': u'Light Blue:DEF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
 		'hide_toolbar': 1,
 		'in_create': 0,
 		'issingle': 1,
-		'module': 'Utilities',
+		'module': u'Utilities',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 1,
-		'version': 174
+		'version': 173
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Reposting Tool',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Reposting Tool',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Reposting Tool',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Reposting Tool',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'System Manager',
+		'role': u'System Manager',
 		'write': 1
 	},
 
 	# DocType, Reposting Tool
 	{
 		'doctype': 'DocType',
-		'name': 'Reposting Tool'
+		'name': u'Reposting Tool'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'recalculate_mar_&_actual_qty',
-		'fieldtype': 'Data',
-		'idx': 1,
-		'label': 'Recalculate MAR & Actual Qty'
+		'doctype': u'DocField',
+		'fieldname': u'recalculate_mar_&_actual_qty',
+		'fieldtype': u'Data',
+		'label': u'Recalculate MAR & Actual Qty'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 2,
-		'label': 'Repost Bin',
-		'trigger': 'Client'
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
+		'fieldname': u'repost_bin',
+		'fieldtype': u'Button',
+		'label': u'Repost Bin',
+		'trigger': u'Client'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 3,
-		'label': 'Repost Account Balances',
-		'trigger': 'Client'
+		'doctype': u'DocField',
+		'fieldname': u'repost_account_balances',
+		'fieldtype': u'Button',
+		'label': u'Repost Account Balances',
+		'trigger': u'Client'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/sms_center/sms_center.js b/erpnext/utilities/doctype/sms_center/sms_center.js
deleted file mode 100644
index 45a6073..0000000
--- a/erpnext/utilities/doctype/sms_center/sms_center.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-cur_frm.cscript.refresh = function(doc, cdt, cdn) {
-  if(doc.send_to == 'Customer Group')
-    unhide_field('customer_group_name');
-  else
-    hide_field('customer_group_name');
-}
-
-cur_frm.cscript.send_to = cur_frm.cscript.refresh;
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/sms_center/sms_center.py b/erpnext/utilities/doctype/sms_center/sms_center.py
deleted file mode 100644
index a65c4cb..0000000
--- a/erpnext/utilities/doctype/sms_center/sms_center.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self, doc, doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-      
-  def create_receiver_table(self):
-    if self.doc.send_to:
-      self.doc.clear_table(self.doclist, 'receiver_details')
-      rec = ''
-      if self.doc.send_to == 'All Customer':
-        rec = sql("select customer_name, CONCAT(ifnull(first_name,''),'',ifnull(last_name,'')), mobile_no from `tabContact` where ifnull(customer_name,'') !='' and ifnull(mobile_no,'')!=''")
-
-      elif self.doc.send_to == 'Customer Group' and self.doc.customer_group_name:
-       
-        rec = sql("select t2.customer_name, CONCAT(ifnull(first_name,''),'',ifnull(last_name,'')), t1.mobile_no from `tabContact` t1, `tabCustomer` t2 where t2.name = t1.customer_name and ifnull(t1.mobile_no,'')!='' and t2.customer_group = '%s'"%self.doc.customer_group_name)
-      if not rec:
-        msgprint("Either customer having no contact or customer's contact does not have mobile no")
-        raise Exception 
-
-      for d in rec:
-        ch = addchild(self.doc, 'receiver_details', 'Receiver Detail', 1, self.doclist)
-        ch.customer_name = d[0]
-        ch.receiver_name = d[1]
-        ch.mobile_no = d[2]
-    else:
-      msgprint("Please select 'Send To' field")
-        
-        
-  def send_sms(self):
-    if not self.doc.message:
-      msgprint("Please type the message before sending")
-    elif not getlist(self.doclist, 'receiver_details'):
-      msgprint("Receiver Table is blank.")
-    else:
-      receiver_list = []
-      for d in getlist(self.doclist, 'receiver_details'):
-        if d.mobile_no:
-          receiver_list.append(d.mobile_no)
-      if receiver_list:
-        msgprint(get_obj('SMS Control', 'SMS Control').send_sms(receiver_list, self.doc.message))
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/sms_center/sms_center.txt b/erpnext/utilities/doctype/sms_center/sms_center.txt
deleted file mode 100644
index 20ecbda..0000000
--- a/erpnext/utilities/doctype/sms_center/sms_center.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2009-03-12 16:21:14', 'search_fields': None, 'module': 'Application Internal', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': 0, 'read_only': 1, 'allow_email': None, 'dt_template': None, 'hide_heading': 0, 'issingle': 1, 'allow_rename': None, 'smallicon': '', 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 20, 'menu_index': 4, 'docstatus': 0, 'allow_copy': 0, 'istable': None, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': None, 'client_string': None, 'use_template': None, 'modified_by': 'saumil@webnotestech.com', 'document_type': None, 'name': 'SMS Center', 'idx': None, 'hide_toolbar': 0, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-09-20 14:06:57', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}, {'cancel': None, 'amend': None, 'execute': None, 'modified_by': 'saumil@webnotestech.com', 'name': 'PERM00225', 'parent': 'SMS Center', 'read': 1, 'create': 1, 'creation': '2009-03-12 16:56:43', 'modified': '2010-08-08 15:03:13', 'submit': None, 'doctype': 'DocPerm', 'write': 1, 'idx': 1, 'parenttype': 'DocType', 'role': 'Administrator', 'owner': 'Administrator', 'docstatus': 0, 'permlevel': 0, 'match': None, 'parentfield': 'permissions'}, {'cancel': None, 'amend': None, 'execute': None, 'modified_by': 'saumil@webnotestech.com', 'name': 'PERM00226', 'parent': 'SMS Center', 'read': 1, 'create': 0, 'creation': '2009-03-12 16:56:43', 'modified': '2010-08-08 15:03:13', 'submit': None, 'doctype': 'DocPerm', 'write': 0, 'idx': 2, 'parenttype': 'DocType', 'role': 'Administrator', 'owner': 'Administrator', 'docstatus': 0, 'permlevel': 1, 'match': None, 'parentfield': 'permissions'}, {'no_copy': None, 'oldfieldtype': None, 'creation': '2009-03-12 17:16:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'saumil@webnotestech.com', 'label': '', 'width': '50%', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'SMS Center', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01352', 'idx': 1, 'default': None, 'colour': None, 'modified': '2010-08-08 15:03:13', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Column Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': None, 'creation': '2009-03-12 17:16:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'saumil@webnotestech.com', 'label': 'Send To', 'width': '', 'trigger': 'Client', 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'SMS Center', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01349', 'idx': 2, 'default': None, 'colour': None, 'modified': '2010-08-08 15:03:13', 'parenttype': 'DocType', 'fieldname': 'send_to', 'fieldtype': 'Select', 'options': '\nAll Customer\nCustomer Group', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': None, 'creation': '2009-03-12 17:16:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'saumil@webnotestech.com', 'label': 'Customer Group Name', 'width': '', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'SMS Center', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01351', 'idx': 3, 'default': None, 'colour': None, 'modified': '2010-08-08 15:03:13', 'parenttype': 'DocType', 'fieldname': 'customer_group_name', 'fieldtype': 'Select', 'options': 'link:Customer Group', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': None, 'creation': '2009-03-12 17:16:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'saumil@webnotestech.com', 'label': 'Message', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': 'Message greater than 160 character will be splitted into multiple mesage', 'parent': 'SMS Center', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01346', 'idx': 4, 'default': None, 'colour': None, 'modified': '2010-08-08 15:03:13', 'parenttype': 'DocType', 'fieldname': 'message', 'fieldtype': 'Small Text', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': None, 'creation': '2009-03-12 17:16:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'saumil@webnotestech.com', 'label': '', 'width': '50%', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'SMS Center', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01353', 'idx': 5, 'default': None, 'colour': None, 'modified': '2010-08-08 15:03:13', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Column Break', 'options': None, 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': None, 'creation': '2009-03-12 17:16:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'saumil@webnotestech.com', 'label': 'Create Receiver Table', 'width': '', 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'SMS Center', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01350', 'idx': 6, 'default': None, 'colour': None, 'modified': '2010-08-08 15:03:13', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Button', 'options': 'create_receiver_table', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': None, 'creation': '2009-03-12 17:23:49', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'saumil@webnotestech.com', 'label': 'Send SMS', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'SMS Center', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01354', 'idx': 7, 'default': None, 'colour': None, 'modified': '2010-08-08 15:03:13', 'parenttype': 'DocType', 'fieldname': '', 'fieldtype': 'Button', 'options': 'send_sms', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': None, 'creation': '2009-03-12 17:16:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'saumil@webnotestech.com', 'label': '', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'SMS Center', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01348', 'idx': 8, 'default': None, 'colour': None, 'modified': '2010-08-08 15:03:13', 'parenttype': 'DocType', 'fieldname': None, 'fieldtype': 'Section Break', 'options': 'Simple', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': None, 'creation': '2009-03-12 17:16:47', 'doctype': 'DocField', 'oldfieldname': None, 'owner': 'Administrator', 'reqd': None, 'in_filter': None, 'print_hide': None, 'modified_by': 'saumil@webnotestech.com', 'label': 'Receiver Details', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'SMS Center', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL01347', 'idx': 9, 'default': None, 'colour': None, 'modified': '2010-08-08 15:03:13', 'parenttype': 'DocType', 'fieldname': 'receiver_details', 'fieldtype': 'Table', 'options': 'Receiver Detail', 'report_hide': None, 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/sms_control/sms_control.js b/erpnext/utilities/doctype/sms_control/sms_control.js
index 42d961f..cd3db12 100644
--- a/erpnext/utilities/doctype/sms_control/sms_control.js
+++ b/erpnext/utilities/doctype/sms_control/sms_control.js
@@ -77,33 +77,33 @@
 	}
 }
 
-cur_frm.cscript['Send SMS'] = function(doc,dt,dn) {
+cur_frm.cscript.send_sms = function(doc,dt,dn) {
 	var doc = cur_frm.doc;
 	var sms_man = new SMSManager();
 	var default_msg = {
 		'Lead'				: '',
-		'Enquiry'			: 'Your enquiry has been logged into the system. Ref No: ' + doc.name,
+		'Opportunity'			: 'Your enquiry has been logged into the system. Ref No: ' + doc.name,
 		'Quotation'			: 'Quotation ' + doc.name + ' has been sent via email. Thanks!',
 		'Sales Order'		: 'Sales Order ' + doc.name + ' has been created against ' 
 					+ (doc.quotation_no ? ('Quote No:' + doc.quotation_no) : '')
 					+ (doc.po_no ? (' for your PO: ' + doc.po_no) : ''),
 		'Delivery Note'		: 'Items has been delivered against delivery note: ' + doc.name
 					+ (doc.po_no ? (' for your PO: ' + doc.po_no) : ''),		
-		'Receivable Voucher': 'Invoice ' + doc.name + ' has been sent via email '
+		'Sales Invoice': 'Invoice ' + doc.name + ' has been sent via email '
 					+ (doc.po_no ? (' for your PO: ' + doc.po_no) : ''),
-		'Indent'			: 'Indent ' + doc.name + ' has been raised in the system',
+		'Purchase Request'			: 'Purchase Request ' + doc.name + ' has been raised in the system',
 		'Purchase Order'	: 'Purchase Order ' + doc.name + ' has been sent via email',
 		'Purchase Receipt'	: 'Items has been received against purchase receipt: ' + doc.name
 	}
 
-	if (in_list(['Quotation', 'Sales Order', 'Delivery Note', 'Receivable Voucher'], doc.doctype))
+	if (in_list(['Quotation', 'Sales Order', 'Delivery Note', 'Sales Invoice'], doc.doctype))
 		sms_man.show(doc.contact_person, 'customer', doc.customer, '', default_msg[doc.doctype]);
 	else if (in_list(['Purchase Order', 'Purchase Receipt'], doc.doctype))
 		sms_man.show(doc.contact_person, 'supplier', doc.supplier, '', default_msg[doc.doctype]);
 	else if (doc.doctype == 'Lead')
 		sms_man.show('', '', '', doc.mobile_no, default_msg[doc.doctype]);
-	else if (doc.doctype == 'Enquiry')
+	else if (doc.doctype == 'Opportunity')
 		sms_man.show('', '', '', doc.contact_no, default_msg[doc.doctype]);
-	else if (doc.doctype == 'Indent')
+	else if (doc.doctype == 'Purchase Request')
 		sms_man.show('', '', '', '', default_msg[doc.doctype]);
 }
diff --git a/erpnext/utilities/doctype/sms_control/sms_control.py b/erpnext/utilities/doctype/sms_control/sms_control.py
index 9d11283..f19ccf1 100644
--- a/erpnext/utilities/doctype/sms_control/sms_control.py
+++ b/erpnext/utilities/doctype/sms_control/sms_control.py
@@ -79,7 +79,7 @@
 
 	def get_sender_name(self):
 		"returns name as SMS sender"
-		sender_name = webnotes.conn.get_value('Manage Account', None, 'sms_sender_name') or 'ERPNXT'
+		sender_name = webnotes.conn.get_value('Global Defaults', None, 'sms_sender_name') or 'ERPNXT'
 		if len(sender_name) > 6:
 			msgprint("""
 				As per TRAI rule, sender name must be exactly 6 characters.
diff --git a/erpnext/utilities/doctype/sms_control/sms_control.txt b/erpnext/utilities/doctype/sms_control/sms_control.txt
index 7f8d071..c69a34f 100644
--- a/erpnext/utilities/doctype/sms_control/sms_control.txt
+++ b/erpnext/utilities/doctype/sms_control/sms_control.txt
@@ -3,57 +3,55 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:24',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2011-01-11 18:40:35',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 0,
 		'issingle': 1,
-		'module': 'Utilities',
+		'module': u'Utilities',
 		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'show_in_menu': 0,
 		'version': 8
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'SMS Control',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'SMS Control',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'System Manager'
+		'role': u'System Manager'
 	},
 
 	# DocType, SMS Control
 	{
 		'doctype': 'DocType',
-		'name': 'SMS Control'
+		'name': u'SMS Control'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'idx': 2,
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/sms_log/sms_log.txt b/erpnext/utilities/doctype/sms_log/sms_log.txt
index c2b7ba9..55acd7d 100644
--- a/erpnext/utilities/doctype/sms_log/sms_log.txt
+++ b/erpnext/utilities/doctype/sms_log/sms_log.txt
@@ -3,128 +3,121 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-01-11 13:00:09',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2011-01-11 12:51:46',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': 'SMSLOG/.########',
-		'colour': 'White:FFF',
+		'autoname': u'SMSLOG/.########',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'Utilities',
+		'module': u'Utilities',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 3
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'SMS Log',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'SMS Log',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
+		'create': 0,
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'SMS Log',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'SMS Log',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'System Manager',
-		'write': 1
+		'role': u'System Manager',
+		'write': 0
 	},
 
 	# DocType, SMS Log
 	{
 		'doctype': 'DocType',
-		'name': 'SMS Log'
+		'name': u'SMS Log'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 1,
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break0',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'sender_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Sender Name'
+		'doctype': u'DocField',
+		'fieldname': u'sender_name',
+		'fieldtype': u'Data',
+		'label': u'Sender Name'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'sent_on',
-		'fieldtype': 'Date',
-		'idx': 3,
-		'label': 'Sent On'
+		'doctype': u'DocField',
+		'fieldname': u'sent_on',
+		'fieldtype': u'Date',
+		'label': u'Sent On'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'receiver_list',
-		'fieldtype': 'Small Text',
-		'idx': 4,
-		'label': 'Receiver List'
+		'doctype': u'DocField',
+		'fieldname': u'receiver_list',
+		'fieldtype': u'Small Text',
+		'label': u'Receiver List'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 5,
-		'width': '50%'
+		'doctype': u'DocField',
+		'fieldname': u'column_break1',
+		'fieldtype': u'Column Break',
+		'width': u'50%'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'no_of_requested_sms',
-		'fieldtype': 'Int',
-		'idx': 6,
-		'label': 'No of Requested SMS'
+		'doctype': u'DocField',
+		'fieldname': u'no_of_requested_sms',
+		'fieldtype': u'Int',
+		'label': u'No of Requested SMS'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'no_of_sent_sms',
-		'fieldtype': 'Int',
-		'idx': 7,
-		'label': 'No of Sent SMS'
+		'doctype': u'DocField',
+		'fieldname': u'no_of_sent_sms',
+		'fieldtype': u'Int',
+		'label': u'No of Sent SMS'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'message',
-		'fieldtype': 'Small Text',
-		'idx': 8,
-		'label': 'Message'
+		'doctype': u'DocField',
+		'fieldname': u'message',
+		'fieldtype': u'Small Text',
+		'label': u'Message'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/sms_center/__init__.py b/erpnext/utilities/doctype/sms_receiver/__init__.py
similarity index 100%
rename from erpnext/utilities/doctype/sms_center/__init__.py
rename to erpnext/utilities/doctype/sms_receiver/__init__.py
diff --git a/erpnext/utilities/doctype/sms_receiver/sms_receiver.txt b/erpnext/utilities/doctype/sms_receiver/sms_receiver.txt
new file mode 100644
index 0000000..a36b98a
--- /dev/null
+++ b/erpnext/utilities/doctype/sms_receiver/sms_receiver.txt
@@ -0,0 +1,69 @@
+# DocType, SMS Receiver
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:47',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': u'Utilities',
+		'name': '__common__',
+		'section_style': u'Tray',
+		'server_code_error': u' ',
+		'version': 2
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'fieldtype': u'Data',
+		'name': '__common__',
+		'oldfieldtype': u'Data',
+		'parent': u'SMS Receiver',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# DocType, SMS Receiver
+	{
+		'doctype': 'DocType',
+		'name': u'SMS Receiver'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'customer_name',
+		'label': u'Customer Name',
+		'oldfieldname': u'customer_name'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'receiver_name',
+		'label': u'Receiver Name',
+		'oldfieldname': u'receiver_name',
+		'width': u'350px'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'mobile_no',
+		'label': u'Mobile No',
+		'oldfieldname': u'mobile_no',
+		'reqd': 1,
+		'width': u'200px'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/todo_item/__init__.py b/erpnext/utilities/doctype/todo/__init__.py
similarity index 100%
rename from erpnext/utilities/doctype/todo_item/__init__.py
rename to erpnext/utilities/doctype/todo/__init__.py
diff --git a/erpnext/utilities/doctype/todo/todo.txt b/erpnext/utilities/doctype/todo/todo.txt
new file mode 100644
index 0000000..569e4be
--- /dev/null
+++ b/erpnext/utilities/doctype/todo/todo.txt
@@ -0,0 +1,213 @@
+# DocType, ToDo
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-27 14:36:47',
+		'docstatus': 0,
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'allow_attach': 0,
+		'allow_copy': 0,
+		'allow_email': 0,
+		'allow_print': 0,
+		'allow_rename': 0,
+		'allow_trash': 0,
+		'autoname': u'TDI.########',
+		'colour': u'White:FFF',
+		'doctype': 'DocType',
+		'hide_heading': 0,
+		'hide_toolbar': 0,
+		'in_create': 1,
+		'in_dialog': 0,
+		'is_transaction_doc': 0,
+		'issingle': 0,
+		'max_attachments': 0,
+		'module': u'Utilities',
+		'name': '__common__',
+		'read_only': 1,
+		'read_only_onload': 0,
+		'section_style': u'Simple',
+		'server_code_error': u' ',
+		'show_in_menu': 0,
+		'use_template': 0,
+		'version': 5
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': u'DocField',
+		'name': '__common__',
+		'parent': u'ToDo',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
+		'permlevel': 0
+	},
+
+	# These values are common for all DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'name': '__common__',
+		'parent': u'ToDo',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'role': u'All',
+		'write': 1
+	},
+
+	# DocType, ToDo
+	{
+		'doctype': 'DocType',
+		'name': u'ToDo'
+	},
+
+	# DocPerm
+	{
+		'doctype': u'DocPerm'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 0,
+		'doctype': u'DocField',
+		'fieldname': u'description',
+		'fieldtype': u'Text',
+		'hidden': 0,
+		'in_filter': 0,
+		'label': u'Description',
+		'no_copy': 0,
+		'oldfieldname': u'description',
+		'oldfieldtype': u'Text',
+		'print_hide': 0,
+		'report_hide': 0,
+		'reqd': 0,
+		'search_index': 0,
+		'width': u'300px'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 0,
+		'doctype': u'DocField',
+		'fieldname': u'date',
+		'fieldtype': u'Date',
+		'hidden': 0,
+		'in_filter': 0,
+		'label': u'Date',
+		'no_copy': 0,
+		'oldfieldname': u'date',
+		'oldfieldtype': u'Date',
+		'print_hide': 0,
+		'report_hide': 0,
+		'reqd': 0,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 0,
+		'doctype': u'DocField',
+		'fieldname': u'priority',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'in_filter': 0,
+		'label': u'Priority',
+		'no_copy': 0,
+		'oldfieldname': u'priority',
+		'oldfieldtype': u'Data',
+		'print_hide': 0,
+		'report_hide': 0,
+		'reqd': 0,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 0,
+		'doctype': u'DocField',
+		'fieldname': u'reference_type',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'in_filter': 0,
+		'label': u'Reference Type',
+		'no_copy': 0,
+		'oldfieldname': u'reference_type',
+		'oldfieldtype': u'Data',
+		'print_hide': 0,
+		'report_hide': 0,
+		'reqd': 0,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 0,
+		'doctype': u'DocField',
+		'fieldname': u'reference_name',
+		'fieldtype': u'Data',
+		'hidden': 0,
+		'in_filter': 0,
+		'label': u'Reference Name',
+		'no_copy': 0,
+		'oldfieldname': u'reference_name',
+		'oldfieldtype': u'Data',
+		'print_hide': 0,
+		'report_hide': 0,
+		'reqd': 0,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 0,
+		'doctype': u'DocField',
+		'fieldname': u'checked',
+		'fieldtype': u'Check',
+		'hidden': 0,
+		'in_filter': 0,
+		'label': u'Checked',
+		'no_copy': 0,
+		'oldfieldname': u'checked',
+		'oldfieldtype': u'Check',
+		'print_hide': 0,
+		'report_hide': 0,
+		'reqd': 0,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 0,
+		'doctype': u'DocField',
+		'fieldname': u'role',
+		'fieldtype': u'Link',
+		'hidden': 0,
+		'in_filter': 0,
+		'label': u'Role',
+		'no_copy': 0,
+		'oldfieldname': u'role',
+		'oldfieldtype': u'Link',
+		'options': u'Role',
+		'print_hide': 0,
+		'report_hide': 0,
+		'reqd': 0,
+		'search_index': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'assigned_by',
+		'fieldtype': u'Link',
+		'label': u'Assigned By',
+		'options': u'Profile'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/todo_item/todo_item.txt b/erpnext/utilities/doctype/todo_item/todo_item.txt
deleted file mode 100644
index 86f5d0d..0000000
--- a/erpnext/utilities/doctype/todo_item/todo_item.txt
+++ /dev/null
@@ -1,213 +0,0 @@
-# DocType, ToDo Item
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2009-05-12 16:43:58',
-		'docstatus': 0,
-		'modified': '2012-02-17 15:48:54',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'allow_attach': 0,
-		'allow_copy': 0,
-		'allow_email': 0,
-		'allow_print': 0,
-		'allow_rename': 0,
-		'allow_trash': 0,
-		'autoname': u'TDI.########',
-		'colour': u'White:FFF',
-		'doctype': 'DocType',
-		'hide_heading': 0,
-		'hide_toolbar': 0,
-		'in_create': 1,
-		'in_dialog': 0,
-		'is_transaction_doc': 0,
-		'issingle': 0,
-		'max_attachments': 0,
-		'module': u'Utilities',
-		'name': '__common__',
-		'read_only': 1,
-		'read_only_onload': 0,
-		'section_style': u'Simple',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'use_template': 0,
-		'version': 5
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'ToDo Item',
-		'parentfield': u'fields',
-		'parenttype': u'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'name': '__common__',
-		'parent': u'ToDo Item',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': u'All',
-		'write': 1
-	},
-
-	# DocType, ToDo Item
-	{
-		'doctype': 'DocType',
-		'name': u'ToDo Item'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 0,
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Text',
-		'hidden': 0,
-		'in_filter': 0,
-		'label': u'Description',
-		'no_copy': 0,
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Text',
-		'print_hide': 0,
-		'report_hide': 0,
-		'reqd': 0,
-		'search_index': 0,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 0,
-		'doctype': u'DocField',
-		'fieldname': u'date',
-		'fieldtype': u'Date',
-		'hidden': 0,
-		'in_filter': 0,
-		'label': u'Date',
-		'no_copy': 0,
-		'oldfieldname': u'date',
-		'oldfieldtype': u'Date',
-		'print_hide': 0,
-		'report_hide': 0,
-		'reqd': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 0,
-		'doctype': u'DocField',
-		'fieldname': u'priority',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'in_filter': 0,
-		'label': u'Priority',
-		'no_copy': 0,
-		'oldfieldname': u'priority',
-		'oldfieldtype': u'Data',
-		'print_hide': 0,
-		'report_hide': 0,
-		'reqd': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 0,
-		'doctype': u'DocField',
-		'fieldname': u'reference_type',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'in_filter': 0,
-		'label': u'Reference Type',
-		'no_copy': 0,
-		'oldfieldname': u'reference_type',
-		'oldfieldtype': u'Data',
-		'print_hide': 0,
-		'report_hide': 0,
-		'reqd': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 0,
-		'doctype': u'DocField',
-		'fieldname': u'reference_name',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'in_filter': 0,
-		'label': u'Reference Name',
-		'no_copy': 0,
-		'oldfieldname': u'reference_name',
-		'oldfieldtype': u'Data',
-		'print_hide': 0,
-		'report_hide': 0,
-		'reqd': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 0,
-		'doctype': u'DocField',
-		'fieldname': u'checked',
-		'fieldtype': u'Check',
-		'hidden': 0,
-		'in_filter': 0,
-		'label': u'Checked',
-		'no_copy': 0,
-		'oldfieldname': u'checked',
-		'oldfieldtype': u'Check',
-		'print_hide': 0,
-		'report_hide': 0,
-		'reqd': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 0,
-		'doctype': u'DocField',
-		'fieldname': u'role',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'in_filter': 0,
-		'label': u'Role',
-		'no_copy': 0,
-		'oldfieldname': u'role',
-		'oldfieldtype': u'Link',
-		'options': u'Role',
-		'print_hide': 0,
-		'report_hide': 0,
-		'reqd': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'assigned_by',
-		'fieldtype': u'Link',
-		'label': u'Assigned By',
-		'options': u'Profile'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/trash_control/trash_control.txt b/erpnext/utilities/doctype/trash_control/trash_control.txt
index b7a4a1e..3688342 100644
--- a/erpnext/utilities/doctype/trash_control/trash_control.txt
+++ b/erpnext/utilities/doctype/trash_control/trash_control.txt
@@ -3,30 +3,30 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-08-08 17:09:29',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2010-12-30 11:44:36',
-		'modified_by': 'umair@iwebnotes.com',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'in_create': 1,
 		'issingle': 1,
-		'module': 'Utilities',
+		'module': u'Utilities',
 		'name': '__common__',
 		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
+		'section_style': u'Simple',
+		'server_code_error': u' ',
 		'version': 35
 	},
 
 	# DocType, Trash Control
 	{
 		'doctype': 'DocType',
-		'name': 'Trash Control'
+		'name': u'Trash Control'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/page/calendar/calendar.js b/erpnext/utilities/page/calendar/calendar.js
index ac1ac88..9aa5df8 100644
--- a/erpnext/utilities/page/calendar/calendar.js
+++ b/erpnext/utilities/page/calendar/calendar.js
@@ -24,7 +24,11 @@
 	if(!erpnext.calendar) {
 		erpnext.calendar = new Calendar();
 		erpnext.calendar.init(wrapper);
-		rename_observers.push(erpnext.calendar);
+
+		var me = this;
+		$(document).bind('rename', function(event, dt, old_name, new_name) {
+			erpnext.calendar.rename_notify(dt, old_name, new_name)
+		});
 	}
 }
 
@@ -63,7 +67,7 @@
 
 Calendar.prototype.rename_notify = function(dt, old_name, new_name) {
 	// calendar
-	if(dt = 'Event'){		
+	if(dt = 'Event'){
 		if(this.events_by_name[old_name]) {
 			delete this.events_by_name[old_name];
 		}
diff --git a/erpnext/utilities/page/messages/messages.css b/erpnext/utilities/page/messages/messages.css
index 81260ab..49b3771 100644
--- a/erpnext/utilities/page/messages/messages.css
+++ b/erpnext/utilities/page/messages/messages.css
@@ -1,9 +1,9 @@
 #message-post-text {
-	height: 3em;
+	width: 50%;
 }
 
 #message-list {
-	margin: 0px 40px;
+	
 }
 
 .message {
diff --git a/erpnext/utilities/page/messages/messages.html b/erpnext/utilities/page/messages/messages.html
index b645d3f..7538785 100644
--- a/erpnext/utilities/page/messages/messages.html
+++ b/erpnext/utilities/page/messages/messages.html
@@ -3,7 +3,7 @@
 		<a class="close" onclick="window.history.back();">&times;</a>		
 		<h1>Messages</h1>
 		<div class="well">
-			<textarea id="message-post-text"></textarea>
+			<input id="message-post-text"></input>
 			<button disabled="disabled" id="message-post" class="btn btn-small"><i class="icon-play"></i> Post</button>
 		</div>
 		<div id="message-list">
diff --git a/erpnext/utilities/page/messages/messages.js b/erpnext/utilities/page/messages/messages.js
index 6937796..ef56020 100644
--- a/erpnext/utilities/page/messages/messages.js
+++ b/erpnext/utilities/page/messages/messages.js
@@ -43,20 +43,24 @@
 	});
 	
 	// enable, disable button
-	$('#message-post-text').keyup(function() {
+	$('#message-post-text').keyup(function(e) {
 		if($(this).val()) {
 			$('#message-post').attr('disabled', false);
 		} else {
 			$('#message-post').attr('disabled', true);
 		}
+		
+		if(e.which==13) {
+			$('#message-post').click();
+		}
 	})
 }
 
-wn.pages.messages.onshow = function(wrapper) {
+$(wn.pages.messages).bind('show', function() {
 	erpnext.messages.show();
-	setTimeout(erpnext.messages.refresh, 5000);
+	setTimeout(erpnext.messages.refresh, 7000);
 	$('#message-post-text').focus();
-}
+})
 
 erpnext.messages = {
 	show: function() {
@@ -75,8 +79,8 @@
 	},
 	// check for updates every 5 seconds if page is active
 	refresh: function() {
-		setTimeout(erpnext.messages.refresh, 10000);
-		if(page_body.cur_page_label != 'messages') return;
+		setTimeout(erpnext.messages.refresh, 7000);
+		if(wn.container.page.label != 'Messages') return;
 		erpnext.messages.show();
 	},
 	get_contact: function() {
@@ -91,13 +95,15 @@
 		return user;	
 	},
 	make_list: function() {
-		erpnext.messages.list = new wn.widgets.Listing({
+		erpnext.messages.list = new wn.ui.Listing({
 			parent: $('#message-list').get(0),
 			method: 'utilities.page.messages.messages.get_list',
 			args: {
 				contact: null
 			},
 			render_row: function(wrapper, data) {
+				$(wrapper).removeClass('list-row');
+				
 				data.creation = dateutil.comment_when(data.creation);
 				data.comment_by_fullname = wn.user_info(data.owner).fullname;
 
diff --git a/erpnext/utilities/page/messages/messages.py b/erpnext/utilities/page/messages/messages.py
index b282991..212a268 100644
--- a/erpnext/utilities/page/messages/messages.py
+++ b/erpnext/utilities/page/messages/messages.py
@@ -25,19 +25,19 @@
 
 	if webnotes.form_dict['contact'] == webnotes.session['user']:
 		# set all messages as read
-		webnotes.conn.sql("""UPDATE `tabComment Widget Record`
+		webnotes.conn.sql("""UPDATE `tabComment`
 		set docstatus = 1 where comment_doctype in ('My Company', 'Message')
 		and comment_docname = %s
 		""", webnotes.user.name)
 				
 		# return messages
-		return webnotes.conn.sql("""select * from `tabComment Widget Record` 
+		return webnotes.conn.sql("""select * from `tabComment` 
 		where (owner=%(contact)s or comment_docname=%(user)s)
 		and comment_doctype in ('My Company', 'Message')
 		order by creation desc
 		limit %(limit_start)s, %(limit_page_length)s""", webnotes.form_dict, as_dict=1)		
 	else:
-		return webnotes.conn.sql("""select * from `tabComment Widget Record` 
+		return webnotes.conn.sql("""select * from `tabComment` 
 		where (owner=%(contact)s and comment_docname=%(user)s)
 		or (owner=%(user)s and comment_docname=%(contact)s)
 		and comment_doctype in ('My Company', 'Message')
@@ -56,17 +56,53 @@
 @webnotes.whitelist()
 def post(arg=None):
 	"""post message"""
-	import json
-	arg = json.loads(arg)
+	if arg:
+		import json
+		arg = json.loads(arg)
+	else:
+		arg = {}
+		arg.update(webnotes.form_dict)
 	from webnotes.model.doc import Document
-	d = Document('Comment Widget Record')
+	d = Document('Comment')
 	d.comment = arg['txt']
 	d.comment_docname = arg['contact']
 	d.comment_doctype = 'Message'
 	d.save()
+
+	import webnotes.utils
+	if webnotes.utils.cint(arg.get('notify')):
+		notify(arg)
 	
 @webnotes.whitelist()
 def delete(arg=None):
-	webnotes.conn.sql("""delete from `tabComment Widget Record` where name=%s""", 
+	webnotes.conn.sql("""delete from `tabComment` where name=%s""", 
 		webnotes.form_dict['name']);
-	
\ No newline at end of file
+
+def notify(arg=None):
+	from webnotes.utils import cstr
+	fn = webnotes.conn.sql('select first_name, last_name from tabProfile where name=%s', webnotes.user.name)[0]
+	if fn[0] or f[1]:
+		fn = cstr(fn[0]) + (fn[0] and ' ' or '') + cstr(fn[1])
+	else:
+		fn = webnotes.user.name
+
+	message = '''A new comment has been posted on your page by %s:
+	
+	<b>Comment:</b> %s
+	
+	To answer, please login to your erpnext account!
+
+	<a href='https://signin.erpnext.com'>https://signin.erpnext.com</a>
+	''' % (fn, arg['txt'])
+	
+	from webnotes.model.code import get_obj
+	note = get_obj('Notification Control')
+	email_msg = note.prepare_message({
+		'type': 'New Comment',
+		'message': message
+	})
+
+	sender = webnotes.user.name!='Administrator' and webnotes.user.name or 'support+admin_post@erpnext.com'
+	
+	from webnotes.utils.email_lib import sendmail
+	sendmail([arg['contact']], sender, email_msg, fn + ' has posted a new comment')	
diff --git a/erpnext/utilities/page/todo/todo.css b/erpnext/utilities/page/todo/todo.css
index 01a4d24..704e600 100644
--- a/erpnext/utilities/page/todo/todo.css
+++ b/erpnext/utilities/page/todo/todo.css
@@ -3,6 +3,7 @@
 	border-bottom: 1px solid #DEB85F;
 	margin-bottom: 5px;
 	height: 14px;
+	clear: both;
 }
 
 .todoitem .label {
diff --git a/erpnext/utilities/page/todo/todo.html b/erpnext/utilities/page/todo/todo.html
index 3400455..32a0a78 100644
--- a/erpnext/utilities/page/todo/todo.html
+++ b/erpnext/utilities/page/todo/todo.html
@@ -4,7 +4,7 @@
 	<br>
 	<div id="todo-list">
 	</div>
-	<div style="margin-top: 21px">
+	<div style="margin-top: 21px; clear: both">
 		<button id="add-todo" class="btn btn-small"><i class="icon-plus"></i> Add</button>
 	</div>
 </div>
\ No newline at end of file
diff --git a/erpnext/utilities/page/todo/todo.js b/erpnext/utilities/page/todo/todo.js
index dcdf50a..9a90ce3 100644
--- a/erpnext/utilities/page/todo/todo.js
+++ b/erpnext/utilities/page/todo/todo.js
@@ -60,6 +60,7 @@
 		} else {
 			todo.link = '';
 		}
+		if(!todo.description) todo.description = '';
 		$('#todo-list').append(repl('<div class="todoitem">\
 				<span class="description">\
 					<span class="label %(labelclass)s">%(priority)s</span>\
diff --git a/erpnext/utilities/page/todo/todo.py b/erpnext/utilities/page/todo/todo.py
index 05d55fe..73bd0b0 100644
--- a/erpnext/utilities/page/todo/todo.py
+++ b/erpnext/utilities/page/todo/todo.py
@@ -22,7 +22,7 @@
 	"""get todo list"""
 	return webnotes.conn.sql("""select name, owner, description, date,
 		priority, checked, reference_type, reference_name, assigned_by
-		from `tabToDo Item` where owner=%s 
+		from `tabToDo` where owner=%s 
 		order by field(priority, 'High', 'Medium', 'Low') asc, date asc""",
 		webnotes.session['user'], as_dict=1)
 
@@ -30,7 +30,7 @@
 def edit(arg=None):
 	args = webnotes.form_dict
 
-	d = Document('ToDo Item', args.get('name') or None)
+	d = Document('ToDo', args.get('name') or None)
 	d.description = args['description']
 	d.date = args['date']
 	d.priority = args['priority']
@@ -46,10 +46,10 @@
 @webnotes.whitelist()
 def delete(arg=None):
 	name = webnotes.form_dict['name']
-	d = Document('ToDo Item', name)
+	d = Document('ToDo', name)
 	if d and d.name:
 		notify_assignment(d)
-	webnotes.conn.sql("delete from `tabToDo Item` where name = %s", name)
+	webnotes.conn.sql("delete from `tabToDo` where name = %s", name)
 
 def notify_assignment(d):
 	doc_type = d.reference_type
diff --git a/erpnext/utilities/page/users/users.js b/erpnext/utilities/page/users/users.js
index 130e538..ad238ae 100644
--- a/erpnext/utilities/page/users/users.js
+++ b/erpnext/utilities/page/users/users.js
@@ -232,7 +232,7 @@
 				$c_page('utilities', 'users', 'add_user', v, function(r,rt) {
 					if(r.exc) { msgprint(r.exc); return; }
 					else {
-						wn.boot.user_info[v.user] = {fullname:v.first_name + ' ' + v.last_name};
+						wn.boot.user_info[v.user] = {fullname:v.first_name + ' ' + (v.last_name || '')};
 						d.hide();
 						me.refresh();
 					}
@@ -269,8 +269,8 @@
 			</div>', {role: this.roles[i]}));
 		}
 		$(this.dialog.body).append('<div style="clear: both">\
-			<button class="btn btn-small btn-primary">Save</button></div>');
-		$(this.dialog.body).find('button.btn-primary').click(function() {
+			<button class="btn btn-small btn-info">Save</button></div>');
+		$(this.dialog.body).find('button.btn-info').click(function() {
 			me.save();
 		});
 		$(this.dialog.body).find('.user-role a').click(function() {
@@ -314,7 +314,7 @@
 				unset_roles: JSON.stringify(unset_roles),
 				uid: this.uid
 			},
-			btn: $(this.dialog.body).find('.btn-primary').get(0),
+			btn: $(this.dialog.body).find('.btn-info').get(0),
 			callback: function() {
 				
 			}
diff --git a/erpnext/utilities/page/users/users.py b/erpnext/utilities/page/users/users.py
index f2bb1a5..ec01479 100644
--- a/erpnext/utilities/page/users/users.py
+++ b/erpnext/utilities/page/users/users.py
@@ -83,7 +83,10 @@
 	webnotes.conn.set_value('Profile', args['user'], 'enabled', int(args.get('enabled',0)) or 0)
 
 	if args.get('new_password') and args.get('sys_admin_pwd'):
-		if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')):
+		import webnotes.defs
+		from webnotes.utils import cint
+		if hasattr(webnotes.defs, 'sync_with_gateway') and \
+				cint(webnotes.defs.sync_with_gateway) or 0:
 			import server_tools.gateway_utils
 			res = server_tools.gateway_utils.change_password('', args['new_password'], 
 				args['user'], args['sys_admin_pwd'])
@@ -104,7 +107,10 @@
 def add_user(args):
 	args = json.loads(args)
 	# erpnext-saas
-	if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')):
+	import webnotes.defs
+	from webnotes.utils import cint
+	if hasattr(webnotes.defs, 'sync_with_gateway') and \
+			cint(webnotes.defs.sync_with_gateway) or 0:	
 		from server_tools.gateway_utils import add_user_gateway
 		add_user_gateway(args)
 	
@@ -169,7 +175,10 @@
 	webnotes.conn.sql("update tabProfile set enabled=0, docstatus=2 where name=%s", 
 		webnotes.form_dict['uid'])
 	# erpnext-saas
-	if int(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')):
+	import webnotes.defs
+	from webnotes.utils import cint
+	if hasattr(webnotes.defs, 'sync_with_gateway') and \
+			cint(webnotes.defs.sync_with_gateway) or 0:
 		from server_tools.gateway_utils import remove_user_gateway
 		remove_user_gateway(webnotes.form_dict['uid'])
 
diff --git a/erpnext/utilities/page/wip_monitor/wip_monitor.js b/erpnext/utilities/page/wip_monitor/wip_monitor.js
index 9e7bdd0..fcfc96f 100644
--- a/erpnext/utilities/page/wip_monitor/wip_monitor.js
+++ b/erpnext/utilities/page/wip_monitor/wip_monitor.js
@@ -39,7 +39,7 @@
 {
 	var me = this;
 	// list of doctypes which user can read
-	var can_read_dt = ['Lead', 'Enquiry', 'Sales Order', 'Receivable Voucher', 'Indent', 'Purchase Order', 'Payable Voucher', 'Delivery Note', 'Task', 'Serial No'];
+	var can_read_dt = ['Lead', 'Opportunity', 'Sales Order', 'Sales Invoice', 'Purchase Request', 'Purchase Order', 'Purchase Invoice', 'Delivery Note', 'Task', 'Serial No'];
   
 	$i('wip_body').innerHTML = '';
 	this.tab = make_table('wip_body',1,0,'100%',[],{padding:'4px'});
@@ -70,7 +70,7 @@
 	var report_dt
   
 	// dictionary for labels to be displayed
-	var wip_lbl_map = {'Lead':'Lead', 'Enquiry':'Enquiries', 'Sales Order':'Sales Order', 'Receivable Voucher':'Invoices', 'Indent':'Indent', 'Purchase Order':'Purchase Order', 'Payable Voucher':'Bills', 'Delivery Note':'Delivery Note', 'Task':'Tasks', 'Serial No':'Maintenance'};
+	var wip_lbl_map = {'Lead':'Lead', 'Opportunity':'Enquiries', 'Sales Order':'Sales Order', 'Sales Invoice':'Invoices', 'Purchase Request':'Purchase Request', 'Purchase Order':'Purchase Order', 'Purchase Invoice':'Bills', 'Delivery Note':'Delivery Note', 'Task':'Tasks', 'Serial No':'Maintenance'};
 
 	// header
 	var h = $a(parent,'h3');
diff --git a/erpnext/website/Module Def/Website/Website.txt b/erpnext/website/Module Def/Website/Website.txt
deleted file mode 100644
index e423869..0000000
--- a/erpnext/website/Module Def/Website/Website.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-# Module Def, Website
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-01-23 17:05:32',
-		'docstatus': 0,
-		'modified': '2012-02-02 13:23:41',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'name': '__common__',
-		'parent': 'Website',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def Item
-	{
-		'doctype': 'Module Def Item',
-		'name': '__common__',
-		'parent': 'Website',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-
-	# These values are common for all Module Def
-	{
-		'disabled': 'No',
-		'doctype': u'Module Def',
-		'is_hidden': 'No',
-		'module_label': 'Website',
-		'module_name': 'Website',
-		'name': '__common__'
-	},
-
-	# Module Def, Website
-	{
-		'doctype': u'Module Def',
-		'name': 'Website'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Web Page',
-		'doc_name': 'Web Page',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Product',
-		'doc_name': 'Product',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Blog',
-		'doc_name': 'Blog',
-		'doc_type': 'Forms',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Style Settings',
-		'doc_name': 'Style Settings',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Website Settings',
-		'doc_name': 'Website Settings',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Home Settings',
-		'doc_name': 'Home Settings',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'About Us Settings',
-		'doc_name': 'About Us Settings',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Contact Us Settings',
-		'doc_name': 'Contact Us Settings',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Products Settings',
-		'doc_name': 'Products Settings',
-		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'System Manager'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'System Manager'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Website Manager'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'role': 'Website Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/website/Role/Blogger/Blogger.txt b/erpnext/website/Role/Blogger/Blogger.txt
deleted file mode 100644
index a380d4c..0000000
--- a/erpnext/website/Role/Blogger/Blogger.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Blogger
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-01-27 12:22:24',
-		'docstatus': 0,
-		'modified': '2012-01-27 12:22:24',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': u'Website',
-		'name': '__common__',
-		'role_name': u'Blogger'
-	},
-
-	# Role, Blogger
-	{
-		'doctype': 'Role',
-		'name': u'Blogger'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/website/Role/Website Manager/Website Manager.txt b/erpnext/website/Role/Website Manager/Website Manager.txt
deleted file mode 100644
index ad1ad9a..0000000
--- a/erpnext/website/Role/Website Manager/Website Manager.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Role, Website Manager
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-01-24 10:18:47',
-		'docstatus': 0,
-		'modified': '2012-02-06 15:22:27',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all Role
-	{
-		'doctype': 'Role',
-		'module': u'Website',
-		'name': '__common__',
-		'role_name': u'Website Manager'
-	},
-
-	# Role, Website Manager
-	{
-		'doctype': 'Role',
-		'name': u'Website Manager'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/website/__init__.py b/erpnext/website/__init__.py
index e69de29..1ed1cf1 100644
--- a/erpnext/website/__init__.py
+++ b/erpnext/website/__init__.py
@@ -0,0 +1,4 @@
+install_docs = [
+	{"doctype":"Role", "name":"Blogger"},
+	{"doctype":"Role", "name":"Website Manager"},
+]
\ No newline at end of file
diff --git a/erpnext/website/css/website.css b/erpnext/website/css/website.css
index 693b8fb..b56b55e 100644
--- a/erpnext/website/css/website.css
+++ b/erpnext/website/css/website.css
@@ -14,6 +14,10 @@
 	margin-bottom: 7px;
 }
 
+p, li {
+	line-height: 1.6em;
+}
+
 pre {
     background-color: #F8F8F8;
     border: 1px solid #CCCCCC;
diff --git a/erpnext/website/doctype/about_us_settings/about_us_settings.txt b/erpnext/website/doctype/about_us_settings/about_us_settings.txt
index 5ecae16..1682ca3 100644
--- a/erpnext/website/doctype/about_us_settings/about_us_settings.txt
+++ b/erpnext/website/doctype/about_us_settings/about_us_settings.txt
@@ -3,103 +3,103 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-27 10:13:16',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2012-01-27 11:36:44',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1327641155',
+		'_last_update': u'1327641155',
 		'allow_attach': 1,
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'issingle': 1,
 		'max_attachments': 10,
-		'module': 'Website',
+		'module': u'Website',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 4
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'About Us Settings',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'About Us Settings',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'About Us Settings',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'About Us Settings',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
-		'role': 'Website Manager',
+		'role': u'Website Manager',
 		'write': 1
 	},
 
 	# DocType, About Us Settings
 	{
 		'doctype': 'DocType',
-		'name': 'About Us Settings'
+		'name': u'About Us Settings'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm'
+		'doctype': u'DocPerm'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'headline',
-		'fieldtype': 'Data',
-		'label': 'Headline'
+		'doctype': u'DocField',
+		'fieldname': u'headline',
+		'fieldtype': u'Data',
+		'label': u'Headline'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'main_section',
-		'fieldtype': 'Code',
-		'label': 'Main Section'
+		'doctype': u'DocField',
+		'fieldname': u'main_section',
+		'fieldtype': u'Code',
+		'label': u'Main Section'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'team',
-		'fieldtype': 'Table',
-		'label': 'Team',
-		'options': 'About Us Team'
+		'doctype': u'DocField',
+		'fieldname': u'team',
+		'fieldtype': u'Table',
+		'label': u'Team',
+		'options': u'About Us Team'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'side_section',
-		'fieldtype': 'Code',
-		'label': 'Side Section'
+		'doctype': u'DocField',
+		'fieldname': u'side_section',
+		'fieldtype': u'Code',
+		'label': u'Side Section'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'label': 'File List',
+		'label': u'File List',
 		'no_copy': 1,
 		'print_hide': 1
 	}
diff --git a/erpnext/website/doctype/about_us_team/about_us_team.txt b/erpnext/website/doctype/about_us_team/about_us_team.txt
index bbbf47d..3e60290 100644
--- a/erpnext/website/doctype/about_us_team/about_us_team.txt
+++ b/erpnext/website/doctype/about_us_team/about_us_team.txt
@@ -3,72 +3,72 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-27 10:14:18',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2012-01-27 11:54:18',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Website',
+		'module': u'Website',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 5
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'About Us Team',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'About Us Team',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, About Us Team
 	{
 		'doctype': 'DocType',
-		'name': 'About Us Team'
+		'name': u'About Us Team'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'person_name',
-		'fieldtype': 'Data',
-		'label': 'Person Name'
+		'doctype': u'DocField',
+		'fieldname': u'person_name',
+		'fieldtype': u'Data',
+		'label': u'Person Name'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Data',
-		'label': 'Designation'
+		'doctype': u'DocField',
+		'fieldname': u'designation',
+		'fieldtype': u'Data',
+		'label': u'Designation'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'image',
-		'fieldtype': 'Select',
-		'label': 'Image',
-		'options': 'attach_files:'
+		'doctype': u'DocField',
+		'fieldname': u'image',
+		'fieldtype': u'Select',
+		'label': u'Image',
+		'options': u'attach_files:'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'bio',
-		'fieldtype': 'Text',
-		'label': 'Bio (markdown)',
-		'width': '300px'
+		'doctype': u'DocField',
+		'fieldname': u'bio',
+		'fieldtype': u'Text',
+		'label': u'Bio (markdown)',
+		'width': u'300px'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/website/doctype/blog/blog.txt b/erpnext/website/doctype/blog/blog.txt
index 59444f8..f9ff6fd 100644
--- a/erpnext/website/doctype/blog/blog.txt
+++ b/erpnext/website/doctype/blog/blog.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-27 12:24:03',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2012-02-07 13:55:17',
+		'modified': '2012-03-27 14:36:47',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -35,12 +35,15 @@
 
 	# These values are common for all DocPerm
 	{
+		'create': 1,
 		'doctype': u'DocPerm',
 		'name': '__common__',
 		'parent': u'Blog',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
-		'read': 1
+		'permlevel': 0,
+		'read': 1,
+		'write': 1
 	},
 
 	# DocType, Blog
@@ -51,27 +54,14 @@
 
 	# DocPerm
 	{
-		'create': 1,
 		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Website Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Blogger',
-		'write': 1
+		'role': u'Website Manager'
 	},
 
 	# DocPerm
 	{
 		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'All'
+		'role': u'Blogger'
 	},
 
 	# DocField
diff --git a/erpnext/website/doctype/blog/blog_page.js b/erpnext/website/doctype/blog/blog_page.js
index 76cbf81..aa3f4c5 100644
--- a/erpnext/website/doctype/blog/blog_page.js
+++ b/erpnext/website/doctype/blog/blog_page.js
@@ -21,7 +21,7 @@
 	var side = $(wrapper).find('.web-side-section')
 		.append('<h4>Recent Posts</h4>').get(0);
 		
-	wrapper.recent_list = new wn.widgets.Listing({
+	wrapper.recent_list = new wn.ui.Listing({
 		parent: side,
 		query: 'select name, title, left(content, 100) as content from tabBlog\
 			where ifnull(published,1)=1',
@@ -39,10 +39,10 @@
 	// comments
 	$(wrapper).find('.web-main-section').append('<hr><h3>Comments</h3>');
 
-	wrapper.comment_list = new wn.widgets.Listing({
+	wrapper.comment_list = new wn.ui.Listing({
 		parent: $(wrapper).find('.web-main-section').get(0),
 		query: 'select comment, comment_by_fullname, modified\
-			from `tabComment Widget Record` where comment_doctype="Page"\
+			from `tabComment` where comment_doctype="Page"\
 			and comment_docname="{{ doc.name }}"',
 		no_result_message: 'Be the first one to comment',
 		render_row: function(parent, data) {
diff --git a/erpnext/website/doctype/blog_subscriber/blog_subscriber.txt b/erpnext/website/doctype/blog_subscriber/blog_subscriber.txt
index 1b4a987..1fa8223 100644
--- a/erpnext/website/doctype/blog_subscriber/blog_subscriber.txt
+++ b/erpnext/website/doctype/blog_subscriber/blog_subscriber.txt
@@ -3,20 +3,20 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-27 17:18:33',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2012-01-27 17:18:33',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'module': 'Website',
+		'module': u'Website',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 1
 	},
@@ -24,6 +24,6 @@
 	# DocType, Blog Subscriber
 	{
 		'doctype': 'DocType',
-		'name': 'Blog Subscriber'
+		'name': u'Blog Subscriber'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/website/doctype/contact_us_settings/contact_us_settings.txt b/erpnext/website/doctype/contact_us_settings/contact_us_settings.txt
index ff43a0a..bb518b6 100644
--- a/erpnext/website/doctype/contact_us_settings/contact_us_settings.txt
+++ b/erpnext/website/doctype/contact_us_settings/contact_us_settings.txt
@@ -3,45 +3,45 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-25 16:01:33',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2012-01-25 16:01:33',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:47',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
-		'document_type': 'Other',
+		'document_type': u'Other',
 		'issingle': 1,
-		'module': 'Website',
+		'module': u'Website',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
+		'colour': u'White:FFF',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Contact Us Settings',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Contact Us Settings',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Contact Us Settings',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Contact Us Settings',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'permlevel': 0,
 		'read': 1,
 		'write': 1
@@ -50,51 +50,51 @@
 	# DocType, Contact Us Settings
 	{
 		'doctype': 'DocType',
-		'name': 'Contact Us Settings'
+		'name': u'Contact Us Settings'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'Website Manager'
+		'doctype': u'DocPerm',
+		'role': u'Website Manager'
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
-		'role': 'System Manager'
+		'doctype': u'DocPerm',
+		'role': u'System Manager'
 	},
 
 	# DocField
 	{
-		'default': 'Contact Us',
-		'doctype': 'DocField',
-		'fieldname': 'headline',
-		'fieldtype': 'Data',
-		'label': 'Headline'
+		'default': u'Contact Us',
+		'doctype': u'DocField',
+		'fieldname': u'headline',
+		'fieldtype': u'Data',
+		'label': u'Headline'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'send_email_notification',
-		'fieldtype': 'Check',
-		'label': 'Send Email Notification'
+		'doctype': u'DocField',
+		'fieldname': u'send_email_notification',
+		'fieldtype': u'Check',
+		'label': u'Send Email Notification'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'main_section',
-		'fieldtype': 'Code',
-		'label': 'Main Section'
+		'doctype': u'DocField',
+		'fieldname': u'main_section',
+		'fieldtype': u'Code',
+		'label': u'Main Section'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'side_section',
-		'fieldtype': 'Code',
-		'label': 'Side Section'
+		'doctype': u'DocField',
+		'fieldname': u'side_section',
+		'fieldtype': u'Code',
+		'label': u'Side Section'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/website/doctype/product/product.txt b/erpnext/website/doctype/product/product.txt
index 1c2b472..7d9c770 100644
--- a/erpnext/website/doctype/product/product.txt
+++ b/erpnext/website/doctype/product/product.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-02-17 15:53:22',
+		'creation': '2012-03-27 14:36:47',
 		'docstatus': 0,
-		'modified': '2012-02-22 18:32:46',
+		'modified': '2012-03-27 14:36:47',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -38,13 +38,17 @@
 
 	# These values are common for all DocPerm
 	{
+		'amend': 0,
+		'create': 1,
 		'doctype': u'DocPerm',
 		'name': '__common__',
 		'parent': u'Product',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
+		'permlevel': 0,
 		'read': 1,
-		'role': u'Website Manager'
+		'submit': 0,
+		'write': 1
 	},
 
 	# DocType, Product
@@ -55,16 +59,23 @@
 
 	# DocPerm
 	{
-		'create': 1,
+		'cancel': 0,
 		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'write': 1
+		'role': u'Sales Manager'
 	},
 
 	# DocPerm
 	{
+		'cancel': 0,
 		'doctype': u'DocPerm',
-		'permlevel': 1
+		'role': u'Sales User'
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'doctype': u'DocPerm',
+		'role': u'Website Manager'
 	},
 
 	# DocField
@@ -124,6 +135,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'permlevel': 0
 	},
@@ -166,6 +178,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'section_break0',
 		'fieldtype': u'Section Break',
 		'permlevel': 0
 	},
@@ -185,6 +198,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'section_break1',
 		'fieldtype': u'Section Break',
 		'permlevel': 0
 	},
@@ -249,4 +263,4 @@
 		'permlevel': 0,
 		'print_hide': 1
 	}
-]
+]
\ No newline at end of file
diff --git a/erpnext/website/doctype/product/product_page.js b/erpnext/website/doctype/product/product_page.js
index 0f0c56b..926ef69 100644
--- a/erpnext/website/doctype/product/product_page.js
+++ b/erpnext/website/doctype/product/product_page.js
@@ -30,7 +30,7 @@
 	});
 	
 	// similar products
-	wrapper.similar = new wn.widgets.Listing({
+	wrapper.similar = new wn.ui.Listing({
 		parent: $(wrapper).find('.similar-products').get(0),
 		hide_refresh: true,
 		page_length: 5,
diff --git a/erpnext/website/doctype/product_group/product_group.txt b/erpnext/website/doctype/product_group/product_group.txt
index b26ec13..e199b86 100644
--- a/erpnext/website/doctype/product_group/product_group.txt
+++ b/erpnext/website/doctype/product_group/product_group.txt
@@ -3,55 +3,55 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-30 12:17:12',
+		'creation': '2012-03-27 14:36:48',
 		'docstatus': 0,
-		'modified': '2012-01-30 12:17:12',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:48',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'colour': 'White:FFF',
+		'colour': u'White:FFF',
 		'doctype': 'DocType',
 		'istable': 1,
-		'module': 'Website',
+		'module': u'Website',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Product Group',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Product Group',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Product Group
 	{
 		'doctype': 'DocType',
-		'name': 'Product Group'
+		'name': u'Product Group'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'item_group',
-		'fieldtype': 'Link',
-		'label': 'Item Group',
-		'options': 'Item Group'
+		'doctype': u'DocField',
+		'fieldname': u'item_group',
+		'fieldtype': u'Link',
+		'label': u'Item Group',
+		'options': u'Item Group'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'label',
-		'fieldtype': 'Data',
-		'label': 'Label'
+		'doctype': u'DocField',
+		'fieldname': u'label',
+		'fieldtype': u'Data',
+		'label': u'Label'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/website/doctype/products_settings/products_settings.txt b/erpnext/website/doctype/products_settings/products_settings.txt
index aa0fbb3..31d2074 100644
--- a/erpnext/website/doctype/products_settings/products_settings.txt
+++ b/erpnext/website/doctype/products_settings/products_settings.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-30 12:15:00',
+		'creation': '2012-03-27 14:36:48',
 		'docstatus': 0,
-		'modified': '2012-02-14 14:29:41',
+		'modified': '2012-03-27 14:36:48',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/website/doctype/related_page/related_page.txt b/erpnext/website/doctype/related_page/related_page.txt
index 67a30b7..b107286 100644
--- a/erpnext/website/doctype/related_page/related_page.txt
+++ b/erpnext/website/doctype/related_page/related_page.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-02-01 16:16:47',
+		'creation': '2012-03-27 14:36:48',
 		'docstatus': 0,
-		'modified': '2012-02-06 12:24:29',
+		'modified': '2012-03-27 14:36:48',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/website/doctype/style_settings/custom_template.css b/erpnext/website/doctype/style_settings/custom_template.css
index 8eb3d63..72c15a1 100644
--- a/erpnext/website/doctype/style_settings/custom_template.css
+++ b/erpnext/website/doctype/style_settings/custom_template.css
@@ -5,13 +5,19 @@
 	background-color: #{{ doc.background_color }};
 {% endif %}	
 {% if doc.font %}
-	font-family: {{ doc.font }} !important;
+	font-family: '{{ doc.font }}', Verdana, Sans !important;
 {% endif %}
 {% if doc.font_size %}
 	font-size: {{ doc.font_size }} !important;
 {% endif %}
 }
 
+{% if doc.font_size %}
+.small {
+	font-size: {{ doc.small_font_size }} !important;
+}
+{% endif %}
+
 {% if doc.footer_font_color %}
 footer {
 	color: {{ doc.footer_font_color }};
@@ -26,6 +32,6 @@
 
 {% if doc.heading_font %}
 h1, h2, h3, h4, h5 {
-	font-family: {{ doc.heading_font}} !important;
+	font-family: '{{ doc.heading_font}}', Arial, 'Helvetica Neue' !important;
 }	
 {% endif %}
diff --git a/erpnext/website/doctype/style_settings/style_settings.py b/erpnext/website/doctype/style_settings/style_settings.py
index 83961e0..282cd93 100644
--- a/erpnext/website/doctype/style_settings/style_settings.py
+++ b/erpnext/website/doctype/style_settings/style_settings.py
@@ -25,9 +25,13 @@
 		with open('erpnext/website/doctype/style_settings/custom_template.css', 'r') as f:
 			temp = Template(f.read())
 		
+		self.doc.small_font_size = str(int(self.doc.font_size[:-2])-2) + 'px'
+		
 		self.doc.custom_css = temp.render(doc = self.doc)
 		
 		from webnotes.session_cache import clear_cache
 		clear_cache('Guest')
 		
+		del self.doc.fields['small_font_size']
+		
 		
\ No newline at end of file
diff --git a/erpnext/website/doctype/style_settings/style_settings.txt b/erpnext/website/doctype/style_settings/style_settings.txt
index f07a947..18a4d1a 100644
--- a/erpnext/website/doctype/style_settings/style_settings.txt
+++ b/erpnext/website/doctype/style_settings/style_settings.txt
@@ -3,154 +3,154 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-02-02 09:57:25',
+		'creation': '2012-03-27 14:36:48',
 		'docstatus': 0,
-		'modified': '2012-02-02 10:47:38',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:48',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1328159294',
+		'_last_update': u'1330594969',
 		'allow_attach': 1,
-		'colour': 'White:FFF',
-		'description': 'Set your background color, font and image (tiled)',
+		'colour': u'White:FFF',
+		'description': u'Set your background color, font and image (tiled)',
 		'doctype': 'DocType',
 		'issingle': 1,
 		'max_attachments': 1,
-		'module': 'Website',
+		'module': u'Website',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
-		'version': 9
+		'version': 18
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Style Settings',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
+		'parent': u'Style Settings',
+		'parentfield': u'fields',
+		'parenttype': u'DocType'
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Style Settings',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Style Settings',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'Website Manager'
+		'role': u'Website Manager'
 	},
 
 	# DocType, Style Settings
 	{
 		'doctype': 'DocType',
-		'name': 'Style Settings'
+		'name': u'Style Settings'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Solid background color (default light gray)',
-		'doctype': 'DocField',
-		'fieldname': 'background_color',
-		'fieldtype': 'Data',
-		'label': 'Background Color',
+		'colour': u'White:FFF',
+		'description': u'If image is selected, color will be ignored (attach first)',
+		'doctype': u'DocField',
+		'fieldname': u'background_image',
+		'fieldtype': u'Select',
+		'label': u'Background Image',
+		'options': u'attach_files:',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'If image is selected, color will be ignored (attach first)',
-		'doctype': 'DocField',
-		'fieldname': 'background_image',
-		'fieldtype': 'Select',
-		'label': 'Background Image',
-		'options': 'attach_files:',
+		'colour': u'White:FFF',
+		'description': u'Solid background color (default light gray)',
+		'doctype': u'DocField',
+		'fieldname': u'background_color',
+		'fieldtype': u'Data',
+		'label': u'Background Color',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'font',
-		'fieldtype': 'Select',
-		'label': 'Font',
-		'options': '\nLucida Grande\nVerdana\nArial\nGeorgia\nTahoma',
+		'doctype': u'DocField',
+		'fieldname': u'font',
+		'fieldtype': u'Select',
+		'label': u'Font',
+		'options': u'\nLucida Grande\nVerdana\nArial\nGeorgia\nTahoma\nLato\nOpen Sans',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'font_size',
-		'fieldtype': 'Select',
-		'label': 'Font Size',
-		'options': '\n12px\n13px\n14px',
+		'doctype': u'DocField',
+		'fieldname': u'font_size',
+		'fieldtype': u'Select',
+		'label': u'Font Size',
+		'options': u'\n12px\n13px\n14px\n15px\n16px',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'heading_font',
-		'fieldtype': 'Select',
-		'label': 'Heaing Font',
-		'options': '\nLucida Grande\nVerdana\nArial\nGeorgia\nTahoma',
+		'doctype': u'DocField',
+		'fieldname': u'heading_font',
+		'fieldtype': u'Select',
+		'label': u'Heading Font',
+		'options': u'\nLucida Grande\nVerdana\nArial\nGeorgia\nTahoma\nLato\nOpen Sans',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Select a white footer foreground color if you have a dark background',
-		'doctype': 'DocField',
-		'fieldname': 'footer_font_color',
-		'fieldtype': 'Select',
-		'label': 'Footer Font Color',
-		'options': '\nwhite',
+		'colour': u'White:FFF',
+		'description': u'Select a white footer foreground color if you have a dark background',
+		'doctype': u'DocField',
+		'fieldname': u'footer_font_color',
+		'fieldtype': u'Select',
+		'label': u'Footer Font Color',
+		'options': u'\nwhite',
 		'permlevel': 0
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Auto generated',
-		'doctype': 'DocField',
-		'fieldname': 'custom_css',
-		'fieldtype': 'Code',
-		'label': 'Custom CSS',
+		'colour': u'White:FFF',
+		'description': u'Auto generated',
+		'doctype': u'DocField',
+		'fieldname': u'custom_css',
+		'fieldtype': u'Code',
+		'label': u'Custom CSS',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'label': 'File List',
+		'label': u'File List',
 		'no_copy': 1,
 		'permlevel': 0,
 		'print_hide': 1
 	}
-]
\ No newline at end of file
+]
diff --git a/erpnext/website/doctype/top_bar_item/top_bar_item.txt b/erpnext/website/doctype/top_bar_item/top_bar_item.txt
index 3ff23b3..632425e 100644
--- a/erpnext/website/doctype/top_bar_item/top_bar_item.txt
+++ b/erpnext/website/doctype/top_bar_item/top_bar_item.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-24 10:24:19',
+		'creation': '2012-03-27 14:36:48',
 		'docstatus': 0,
-		'modified': '2012-02-07 10:35:19',
+		'modified': '2012-03-27 14:36:48',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/website/doctype/web_page/template.html b/erpnext/website/doctype/web_page/template.html
index 1fb613c..6950069 100644
--- a/erpnext/website/doctype/web_page/template.html
+++ b/erpnext/website/doctype/web_page/template.html
@@ -23,6 +23,6 @@
 		<div style="clear: both"></div>
 	</div>
 </div>
-<div class="web-page-status">
+<div class="web-page-status small">
 	Last Modified: {{ doc.updated }} <a href="#contact">Feedback</a>
 </div>
diff --git a/erpnext/website/doctype/web_page/web_page.txt b/erpnext/website/doctype/web_page/web_page.txt
index 0bacc43..5adbccc 100644
--- a/erpnext/website/doctype/web_page/web_page.txt
+++ b/erpnext/website/doctype/web_page/web_page.txt
@@ -3,139 +3,139 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-01-31 15:18:49',
+		'creation': '2012-03-27 14:36:48',
 		'docstatus': 0,
-		'modified': '2012-02-02 13:15:36',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-03-27 14:36:48',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1328093379',
+		'_last_update': u'1328093379',
 		'allow_attach': 1,
-		'colour': 'White:FFF',
-		'description': 'A custom page is a simple page with the layout - headline, main section, side section\n\nEditing:\n\n- Editing is in [markdown format](http://daringfireball.net/projects/markdown/syntax)\n- You can also add images and embed html code\n\nAccessing the page:\n\n- The page can be accessed as #![page-name] after the main url\n\nIdeal for pages like FAQ, Terms, Help etc.\n\n',
+		'colour': u'White:FFF',
+		'description': u'A custom page is a simple page with the layout - headline, main section, side section\n\nEditing:\n\n- Editing is in [markdown format](http://daringfireball.net/projects/markdown/syntax)\n- You can also add images and embed html code\n\nAccessing the page:\n\n- The page can be accessed as #![page-name] after the main url\n\nIdeal for pages like FAQ, Terms and Conditions, Help etc.\n\n',
 		'doctype': 'DocType',
 		'max_attachments': 5,
-		'module': 'Website',
+		'module': u'Website',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
 		'version': 6
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Web Page',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Web Page',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# These values are common for all DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'name': '__common__',
-		'parent': 'Web Page',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
+		'parent': u'Web Page',
+		'parentfield': u'permissions',
+		'parenttype': u'DocType',
 		'read': 1,
-		'role': 'Website Manager'
+		'role': u'Website Manager'
 	},
 
 	# DocType, Web Page
 	{
 		'doctype': 'DocType',
-		'name': 'Web Page'
+		'name': u'Web Page'
 	},
 
 	# DocPerm
 	{
 		'create': 1,
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 0,
 		'write': 1
 	},
 
 	# DocPerm
 	{
-		'doctype': 'DocPerm',
+		'doctype': u'DocPerm',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Title / headline of your page',
-		'doctype': 'DocField',
-		'fieldname': 'title',
-		'fieldtype': 'Data',
-		'label': 'Title',
+		'colour': u'White:FFF',
+		'description': u'Title / headline of your page',
+		'doctype': u'DocField',
+		'fieldname': u'title',
+		'fieldtype': u'Data',
+		'label': u'Title',
 		'reqd': 1
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Section that will span 2 columns, formatted as markdown. If no head, leave blank. If you are displaying a banner, it must be 860px',
-		'doctype': 'DocField',
-		'fieldname': 'head_section',
-		'fieldtype': 'Text',
-		'label': 'Head Section'
+		'colour': u'White:FFF',
+		'description': u'Section that will span 2 columns, formatted as markdown. If no head, leave blank. If you are displaying a banner, it must be 860px',
+		'doctype': u'DocField',
+		'fieldname': u'head_section',
+		'fieldtype': u'Text',
+		'label': u'Head Section'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Content in markdown format that appears on the main side of your page',
-		'doctype': 'DocField',
-		'fieldname': 'main_section',
-		'fieldtype': 'Code',
-		'label': 'Main Section'
+		'colour': u'White:FFF',
+		'description': u'Content in markdown format that appears on the main side of your page',
+		'doctype': u'DocField',
+		'fieldname': u'main_section',
+		'fieldtype': u'Code',
+		'label': u'Main Section'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Content in markdown format that appears on the right side',
-		'doctype': 'DocField',
-		'fieldname': 'side_section',
-		'fieldtype': 'Code',
-		'label': 'Side Section'
+		'colour': u'White:FFF',
+		'description': u'Content in markdown format that appears on the right side',
+		'doctype': u'DocField',
+		'fieldname': u'side_section',
+		'fieldtype': u'Code',
+		'label': u'Side Section'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Link for next page appears at the bottom of the page',
-		'doctype': 'DocField',
-		'fieldname': 'next_page',
-		'fieldtype': 'Link',
-		'label': 'Next Page',
-		'options': 'Page'
+		'colour': u'White:FFF',
+		'description': u'Link for next page appears at the bottom of the page',
+		'doctype': u'DocField',
+		'fieldname': u'next_page',
+		'fieldtype': u'Link',
+		'label': u'Next Page',
+		'options': u'Page'
 	},
 
 	# DocField
 	{
-		'colour': 'White:FFF',
-		'description': 'Related pages appear on the right side of the link and are linked both ways.',
-		'doctype': 'DocField',
-		'fieldname': 'related_pages',
-		'fieldtype': 'Table',
-		'label': 'Related Pages',
-		'options': 'Related Page'
+		'colour': u'White:FFF',
+		'description': u'Related pages appear on the right side of the link and are linked both ways.',
+		'doctype': u'DocField',
+		'fieldname': u'related_pages',
+		'fieldtype': u'Table',
+		'label': u'Related Pages',
+		'options': u'Related Page'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'file_list',
-		'fieldtype': 'Text',
+		'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
 		'hidden': 1,
-		'label': 'File List',
+		'label': u'File List',
 		'no_copy': 1,
 		'print_hide': 1
 	}
diff --git a/erpnext/website/doctype/website_settings/website_settings.txt b/erpnext/website/doctype/website_settings/website_settings.txt
index b6ea7a3..32e31c0 100644
--- a/erpnext/website/doctype/website_settings/website_settings.txt
+++ b/erpnext/website/doctype/website_settings/website_settings.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-02-02 13:19:50',
+		'creation': '2012-03-27 14:36:48',
 		'docstatus': 0,
-		'modified': '2012-02-14 16:13:59',
+		'modified': '2012-03-27 14:36:48',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -79,6 +79,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'top_bar',
 		'fieldtype': u'Section Break',
 		'label': u'Top Bar',
 		'permlevel': 0
@@ -132,6 +133,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'footer',
 		'fieldtype': u'Section Break',
 		'label': u'Footer',
 		'permlevel': 0
@@ -180,6 +182,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'domains',
 		'fieldtype': u'Section Break',
 		'label': u'Domains',
 		'permlevel': 0
@@ -210,6 +213,7 @@
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'analytics',
 		'fieldtype': u'Section Break',
 		'label': u'Analytics',
 		'permlevel': 0
diff --git a/erpnext/website/js/product_category.js b/erpnext/website/js/product_category.js
index 9e0c7f0..956d7a6 100644
--- a/erpnext/website/js/product_category.js
+++ b/erpnext/website/js/product_category.js
@@ -18,7 +18,7 @@
 erpnext.product_item_group = {}
 
 erpnext.make_product_categories = function(wrapper) {
-	wrapper.category_list = new wn.widgets.Listing({
+	wrapper.category_list = new wn.ui.Listing({
 		parent: $(wrapper).find('.more-categories').get(0),
 		query: 'select label, count(t2.name) as items, t1.item_group \
 			from `tabProduct Group` t1, `tabProduct` t2, tabItem t3\
diff --git a/erpnext/website/js/topbar.js b/erpnext/website/js/topbar.js
index 90ad3e8..aec0f02 100644
--- a/erpnext/website/js/topbar.js
+++ b/erpnext/website/js/topbar.js
@@ -24,7 +24,7 @@
 </li>\
 */
 
-erpnext.navbar.navbar = Class.extend({
+erpnext.navbar.Navbar = Class.extend({
 	init: function() {
 		this.make();
 		$('.brand').html(wn.boot.website_settings.brand_html);
@@ -113,5 +113,5 @@
 
 $(document).bind('startup', function() {
 	erpnext.footer = new erpnext.Footer();
-	erpnext.navbar.navbar = new erpnext.navbar.navbar();	
+	erpnext.navbar.navbar = new erpnext.navbar.Navbar();	
 })
diff --git a/erpnext/website/page/blog/blog.js b/erpnext/website/page/blog/blog.js
index 9ca7392..bc7aec4 100644
--- a/erpnext/website/page/blog/blog.js
+++ b/erpnext/website/page/blog/blog.js
@@ -16,7 +16,7 @@
 
 
 pscript.onload_blog = function(wrapper) {
-	wrapper.blog_list = new wn.widgets.Listing({
+	wrapper.blog_list = new wn.ui.Listing({
 		parent: $(wrapper).find('.web-main-section').get(0),
 		query: 'select tabBlog.name, title, left(content, 300) as content, tabBlog.modified, \
 			ifnull(first_name, "") as first_name, ifnull(last_name, "") as last_name \
diff --git a/erpnext/website/page/products/products.js b/erpnext/website/page/products/products.js
index 7af551e..09ccba0 100644
--- a/erpnext/website/page/products/products.js
+++ b/erpnext/website/page/products/products.js
@@ -57,7 +57,7 @@
 }
 
 erpnext.products.make_product_list = function(wrapper) {
-	wrapper.mainlist = new wn.widgets.Listing({
+	wrapper.mainlist = new wn.ui.Listing({
 		parent: $(wrapper).find('.web-main-section').get(0),
 		run_btn: $(wrapper).find('.products-search .btn').get(0),
 		hide_refresh: true,
diff --git a/images/redbeech.jpg b/images/redbeech.jpg
new file mode 100644
index 0000000..2480dc9
--- /dev/null
+++ b/images/redbeech.jpg
Binary files differ
diff --git a/js/all-app.js b/js/all-app.js
index 6987da6..75a130b 100644
--- a/js/all-app.js
+++ b/js/all-app.js
Binary files differ
diff --git a/js/all-web.js b/js/all-web.js
index 5133644..58b748d 100644
--- a/js/all-web.js
+++ b/js/all-web.js
@@ -1,7 +1,8 @@
 
 /*
  *	lib/js/lib/history/history.min.js
- *//*
+ */
+/*
  * jQuery hashchange event - v1.3 - 7/21/2010
  * http://benalman.com/projects/jquery-hashchange-plugin/
  * 
@@ -11,26 +12,13 @@
  */
 (function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);
 
-// manage history
-// load pages via ajax
-// setup the history adapter
-// if settings no_history is set, no history will be bound
-// this can be used to make it work with legacy
 
-$(document).bind('ready', function() {
-	// standard page openener
-	$(window).bind('hashchange', function() {
-		if(wn.settings.no_history) 
-			return;
-
-		// load the state on the browser	
-		wn.page.set(location.hash);
-	});	
-})
 
 /*
  *	lib/js/lib/bootstrap.min.js
- */!function(a){a(function(){"use strict",a.support.transition=function(){var b=document.body||document.documentElement,c=b.style,d=c.transition!==undefined||c.WebkitTransition!==undefined||c.MozTransition!==undefined||c.MsTransition!==undefined||c.OTransition!==undefined;return d&&{end:function(){var b="TransitionEnd";return a.browser.webkit?b="webkitTransitionEnd":a.browser.mozilla?b="transitionend":a.browser.opera&&(b="oTransitionEnd"),b}()}}()})}(window.jQuery),!function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype={constructor:c,close:function(b){function f(){e.remove(),e.trigger("closed")}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),e.trigger("close"),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()}},a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a(function(){a("body").on("click.alert.data-api",b,c.prototype.close)})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype={constructor:b,setState:function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},toggle:function(){var a=this.$element.parent('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")}},a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a(function(){a("body").on("click.button.data-api","[data-toggle^=button]",function(b){a(b.target).button("toggle")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.carousel.defaults,c),this.options.slide&&this.slide(this.options.slide)};b.prototype={cycle:function(){return this.interval=setInterval(a.proxy(this.next,this),this.options.interval),this},to:function(b){var c=this.$element.find(".active"),d=c.parent().children(),e=d.index(c),f=this;if(b>d.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){f.to(b)}):e==b?this.pause().cycle():this.slide(b>e?"next":"prev",a(d[b]))},pause:function(){return clearInterval(this.interval),this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this;return this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h](),!a.support.transition&&this.$element.hasClass("slide")?(this.$element.trigger("slide"),d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")):(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.trigger("slide"),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})),f&&this.cycle(),this}},a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=typeof c=="object"&&c;e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):typeof c=="string"||(c=f.slide)?e[c]():e.cycle()})},a.fn.carousel.defaults={interval:5e3},a.fn.carousel.Constructor=b,a(function(){a("body").on("click.carousel.data-api","[data-slide]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=!e.data("modal")&&a.extend({},e.data(),c.data());e.carousel(f),b.preventDefault()})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find(".in"),e;d&&d.length&&(e=d.data("collapse"),d.collapse("hide"),e||d.data("collapse",null)),this.$element[b](0),this.transition("addClass","show","shown"),this.$element[b](this.$element[0][c])},hide:function(){var a=this.dimension();this.reset(this.$element[a]()),this.transition("removeClass","hide","hidden"),this.$element[a](0)},reset:function(a){var b=this.dimension();this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element.addClass("collapse")},transition:function(b,c,d){var e=this,f=function(){c=="show"&&e.reset(),e.$element.trigger(d)};this.$element.trigger(c)[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=typeof c=="object"&&c;e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a(function(){a("body").on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();a(e).collapse(f)})})}(window.jQuery),!function(a){function d(){a(b).parent().removeClass("open")}"use strict";var b='[data-toggle="dropdown"]',c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),e=c.attr("data-target"),f,g;return e||(e=c.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,"")),f=a(e),f.length||(f=c.parent()),g=f.hasClass("open"),d(),!g&&f.toggleClass("open"),!1}},a.fn.dropdown=function(b){return this.each(function(){var d=a(this),e=d.data("dropdown");e||d.data("dropdown",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.dropdown.Constructor=c,a(function(){a("html").on("click.dropdown.data-api",d),a("body").on("click.dropdown.data-api",b,c.prototype.toggle)})}(window.jQuery),!function(a){function c(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),d.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),d.call(b)})}function d(a){this.$element.hide().trigger("hidden"),e.call(this)}function e(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(document.body),this.options.backdrop!="static"&&this.$backdrop.click(a.proxy(this.hide,this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),e?this.$backdrop.one(a.support.transition.end,b):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,a.proxy(f,this)):f.call(this)):b&&b()}function f(){this.$backdrop.remove(),this.$backdrop=null}function g(){var b=this;this.isShown&&this.options.keyboard?a(document).on("keyup.dismiss.modal",function(a){a.which==27&&b.hide()}):this.isShown||a(document).off("keyup.dismiss.modal")}"use strict";var b=function(b,c){this.options=a.extend({},a.fn.modal.defaults,c),this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this))};b.prototype={constructor:b,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var b=this;if(this.isShown)return;a("body").addClass("modal-open"),this.isShown=!0,this.$element.trigger("show"),g.call(this),e.call(this,function(){var c=a.support.transition&&b.$element.hasClass("fade");!b.$element.parent().length&&b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in"),c?b.$element.one(a.support.transition.end,function(){b.$element.trigger("shown")}):b.$element.trigger("shown")})},hide:function(b){b&&b.preventDefault();if(!this.isShown)return;var e=this;this.isShown=!1,a("body").removeClass("modal-open"),g.call(this),this.$element.trigger("hide").removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?c.call(this):d.call(this)}},a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("modal"),f=typeof c=="object"&&c;e||d.data("modal",e=new b(this,f)),typeof c=="string"?e[c]():e.show()})},a.fn.modal.defaults={backdrop:!0,keyboard:!0},a.fn.modal.Constructor=b,a(function(){a("body").on("click.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({},e.data(),c.data());b.preventDefault(),e.modal(f)})})}(window.jQuery),!function(a){"use strict";var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);!c.options.delay||!c.options.delay.show?c.show():(c.hoverState="in",setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show))},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);!c.options.delay||!c.options.delay.hide?c.hide():(c.hoverState="out",setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide))},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.remove().css({top:0,left:0,display:"block"}).appendTo(b?this.$element:document.body),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.css(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip();a.find(".tooltip-inner").html(this.getTitle()),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).remove()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.remove()})}var b=this,c=this.tip();c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.remove()},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a=a.toString().replace(/(^\s*|\s*$)/,""),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,delay:0,selector:!1,placement:"top",trigger:"hover",title:"",template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'}}(window.jQuery),!function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var b=this.tip(),c=this.getTitle(),d=this.getContent();b.find(".popover-title")[a.type(c)=="object"?"append":"html"](c),b.find(".popover-content > *")[a.type(d)=="object"?"append":"html"](d),b.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a=a.toString().replace(/(^\s*|\s*$)/,""),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery),!function(a){function b(b,c){var d=a.proxy(this.process,this),e=a(b).is("body")?a(window):a(b),f;this.options=a.extend({},a.fn.scrollspy.defaults,c),this.$scrollElement=e.on("scroll.scroll.data-api",d),this.selector=(this.options.target||(f=a(b).attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=a("body").on("click.scroll.data-api",this.selector,d),this.refresh(),this.process()}"use strict",b.prototype={constructor:b,refresh:function(){this.targets=this.$body.find(this.selector).map(function(){var b=a(this).attr("href");return/^#\w/.test(b)&&a(b).length?b:null}),this.offsets=a.map(this.targets,function(b){return a(b).position().top})},process:function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.offsets,c=this.targets,d=this.activeTarget,e;for(e=b.length;e--;)d!=c[e]&&a>=b[e]&&(!b[e+1]||a<=b[e+1])&&this.activate(c[e])},activate:function(a){var b;this.activeTarget=a,this.$body.find(this.selector).parent(".active").removeClass("active"),b=this.$body.find(this.selector+'[href="'+a+'"]').parent("li").addClass("active"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active")}},a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("scrollspy"),f=typeof c=="object"&&c;e||d.data("scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.defaults={offset:10},a(function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),!function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype={constructor:b,show:function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target"),e,f;d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;e=c.find(".active a").last()[0],b.trigger({type:"show",relatedTarget:e}),f=a(d),this.activate(b.parent("li"),c),this.activate(f,f.parent(),function(){b.trigger({type:"shown",relatedTarget:e})})},activate:function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g):g(),e.removeClass("in")}},a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("tab");e||d.data("tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a(function(){a("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.typeahead.defaults,c),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.$menu=a(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};b.prototype={constructor:b,select:function(){var a=this.$menu.find(".active").attr("data-value");return this.$element.val(a),this.hide()},show:function(){var b=a.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:b.top+b.height,left:b.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){var c=this,d,e;return this.query=this.$element.val(),this.query?(d=a.grep(this.source,function(a){if(c.matcher(a))return a}),d=this.sorter(d),d.length?this.render(d.slice(0,this.options.items)).show():this.shown?this.hide():this):this.shown?this.hide():this},matcher:function(a){return~a.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(a){var b=[],c=[],d=[],e;while(e=a.shift())e.toLowerCase().indexOf(this.query.toLowerCase())?~e.indexOf(this.query)?c.push(e):d.push(e):b.push(e);return b.concat(c,d)},highlighter:function(a){return a.replace(new RegExp("("+this.query+")","ig"),function(a,b){return"<strong>"+b+"</strong>"})},render:function(b){var c=this;return b=a(b).map(function(b,d){return b=a(c.options.item).attr("data-value",d),b.find("a").html(c.highlighter(d)),b[0]}),b.first().addClass("active"),this.$menu.html(b),this},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0])),d.addClass("active")},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last()),c.addClass("active")},listen:function(){this.$element.on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this)),(a.browser.webkit||a.browser.msie)&&this.$element.on("keydown",a.proxy(this.keypress,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this))},keyup:function(a){a.stopPropagation(),a.preventDefault();switch(a.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:this.hide();break;default:this.lookup()}},keypress:function(a){a.stopPropagation();if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:a.preventDefault(),this.prev();break;case 40:a.preventDefault(),this.next()}},blur:function(a){var b=this;a.stopPropagation(),a.preventDefault(),setTimeout(function(){b.hide()},150)},click:function(a){a.stopPropagation(),a.preventDefault(),this.select()},mouseenter:function(b){this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")}},a.fn.typeahead=function(c){return this.each(function(){var d=a(this),e=d.data("typeahead"),f=typeof c=="object"&&c;e||d.data("typeahead",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>'},a.fn.typeahead.Constructor=b,a(function(){a("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(b){var c=a(this);if(c.data("typeahead"))return;b.preventDefault(),c.typeahead(c.data())})})}(window.jQuery);
+ */
+!function(a){a(function(){"use strict",a.support.transition=function(){var b=document.body||document.documentElement,c=b.style,d=c.transition!==undefined||c.WebkitTransition!==undefined||c.MozTransition!==undefined||c.MsTransition!==undefined||c.OTransition!==undefined;return d&&{end:function(){var b="TransitionEnd";return a.browser.webkit?b="webkitTransitionEnd":a.browser.mozilla?b="transitionend":a.browser.opera&&(b="oTransitionEnd"),b}()}}()})}(window.jQuery),!function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype={constructor:c,close:function(b){function f(){e.remove(),e.trigger("closed")}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),e.trigger("close"),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()}},a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a(function(){a("body").on("click.alert.data-api",b,c.prototype.close)})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype={constructor:b,setState:function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},toggle:function(){var a=this.$element.parent('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")}},a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a(function(){a("body").on("click.button.data-api","[data-toggle^=button]",function(b){a(b.target).button("toggle")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.carousel.defaults,c),this.options.slide&&this.slide(this.options.slide)};b.prototype={cycle:function(){return this.interval=setInterval(a.proxy(this.next,this),this.options.interval),this},to:function(b){var c=this.$element.find(".active"),d=c.parent().children(),e=d.index(c),f=this;if(b>d.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){f.to(b)}):e==b?this.pause().cycle():this.slide(b>e?"next":"prev",a(d[b]))},pause:function(){return clearInterval(this.interval),this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this;return this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h](),!a.support.transition&&this.$element.hasClass("slide")?(this.$element.trigger("slide"),d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")):(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.trigger("slide"),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})),f&&this.cycle(),this}},a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=typeof c=="object"&&c;e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):typeof c=="string"||(c=f.slide)?e[c]():e.cycle()})},a.fn.carousel.defaults={interval:5e3},a.fn.carousel.Constructor=b,a(function(){a("body").on("click.carousel.data-api","[data-slide]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=!e.data("modal")&&a.extend({},e.data(),c.data());e.carousel(f),b.preventDefault()})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find(".in"),e;d&&d.length&&(e=d.data("collapse"),d.collapse("hide"),e||d.data("collapse",null)),this.$element[b](0),this.transition("addClass","show","shown"),this.$element[b](this.$element[0][c])},hide:function(){var a=this.dimension();this.reset(this.$element[a]()),this.transition("removeClass","hide","hidden"),this.$element[a](0)},reset:function(a){var b=this.dimension();this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element.addClass("collapse")},transition:function(b,c,d){var e=this,f=function(){c=="show"&&e.reset(),e.$element.trigger(d)};this.$element.trigger(c)[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=typeof c=="object"&&c;e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a(function(){a("body").on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();a(e).collapse(f)})})}(window.jQuery),!function(a){function d(){a(b).parent().removeClass("open")}"use strict";var b='[data-toggle="dropdown"]',c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),e=c.attr("data-target"),f,g;return e||(e=c.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,"")),f=a(e),f.length||(f=c.parent()),g=f.hasClass("open"),d(),!g&&f.toggleClass("open"),!1}},a.fn.dropdown=function(b){return this.each(function(){var d=a(this),e=d.data("dropdown");e||d.data("dropdown",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.dropdown.Constructor=c,a(function(){a("html").on("click.dropdown.data-api",d),a("body").on("click.dropdown.data-api",b,c.prototype.toggle)})}(window.jQuery),!function(a){function c(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),d.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),d.call(b)})}function d(a){this.$element.hide().trigger("hidden"),e.call(this)}function e(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(document.body),this.options.backdrop!="static"&&this.$backdrop.click(a.proxy(this.hide,this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),e?this.$backdrop.one(a.support.transition.end,b):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,a.proxy(f,this)):f.call(this)):b&&b()}function f(){this.$backdrop.remove(),this.$backdrop=null}function g(){var b=this;this.isShown&&this.options.keyboard?a(document).on("keyup.dismiss.modal",function(a){a.which==27&&b.hide()}):this.isShown||a(document).off("keyup.dismiss.modal")}"use strict";var b=function(b,c){this.options=a.extend({},a.fn.modal.defaults,c),this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this))};b.prototype={constructor:b,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var b=this;if(this.isShown)return;a("body").addClass("modal-open"),this.isShown=!0,this.$element.trigger("show"),g.call(this),e.call(this,function(){var c=a.support.transition&&b.$element.hasClass("fade");!b.$element.parent().length&&b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in"),c?b.$element.one(a.support.transition.end,function(){b.$element.trigger("shown")}):b.$element.trigger("shown")})},hide:function(b){b&&b.preventDefault();if(!this.isShown)return;var e=this;this.isShown=!1,a("body").removeClass("modal-open"),g.call(this),this.$element.trigger("hide").removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?c.call(this):d.call(this)}},a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("modal"),f=typeof c=="object"&&c;e||d.data("modal",e=new b(this,f)),typeof c=="string"?e[c]():e.show()})},a.fn.modal.defaults={backdrop:!0,keyboard:!0},a.fn.modal.Constructor=b,a(function(){a("body").on("click.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({},e.data(),c.data());b.preventDefault(),e.modal(f)})})}(window.jQuery),!function(a){"use strict";var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);!c.options.delay||!c.options.delay.show?c.show():(c.hoverState="in",setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show))},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);!c.options.delay||!c.options.delay.hide?c.hide():(c.hoverState="out",setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide))},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.remove().css({top:0,left:0,display:"block"}).appendTo(b?this.$element:document.body),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.css(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip();a.find(".tooltip-inner").html(this.getTitle()),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).remove()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.remove()})}var b=this,c=this.tip();c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.remove()},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a=a.toString().replace(/(^\s*|\s*$)/,""),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,delay:0,selector:!1,placement:"top",trigger:"hover",title:"",template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'}}(window.jQuery),!function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var b=this.tip(),c=this.getTitle(),d=this.getContent();b.find(".popover-title")[a.type(c)=="object"?"append":"html"](c),b.find(".popover-content > *")[a.type(d)=="object"?"append":"html"](d),b.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a=a.toString().replace(/(^\s*|\s*$)/,""),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery),!function(a){function b(b,c){var d=a.proxy(this.process,this),e=a(b).is("body")?a(window):a(b),f;this.options=a.extend({},a.fn.scrollspy.defaults,c),this.$scrollElement=e.on("scroll.scroll.data-api",d),this.selector=(this.options.target||(f=a(b).attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=a("body").on("click.scroll.data-api",this.selector,d),this.refresh(),this.process()}"use strict",b.prototype={constructor:b,refresh:function(){this.targets=this.$body.find(this.selector).map(function(){var b=a(this).attr("href");return/^#\w/.test(b)&&a(b).length?b:null}),this.offsets=a.map(this.targets,function(b){return a(b).position().top})},process:function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.offsets,c=this.targets,d=this.activeTarget,e;for(e=b.length;e--;)d!=c[e]&&a>=b[e]&&(!b[e+1]||a<=b[e+1])&&this.activate(c[e])},activate:function(a){var b;this.activeTarget=a,this.$body.find(this.selector).parent(".active").removeClass("active"),b=this.$body.find(this.selector+'[href="'+a+'"]').parent("li").addClass("active"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active")}},a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("scrollspy"),f=typeof c=="object"&&c;e||d.data("scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.defaults={offset:10},a(function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),!function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype={constructor:b,show:function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target"),e,f;d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;e=c.find(".active a").last()[0],b.trigger({type:"show",relatedTarget:e}),f=a(d),this.activate(b.parent("li"),c),this.activate(f,f.parent(),function(){b.trigger({type:"shown",relatedTarget:e})})},activate:function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g):g(),e.removeClass("in")}},a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("tab");e||d.data("tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a(function(){a("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.typeahead.defaults,c),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.$menu=a(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};b.prototype={constructor:b,select:function(){var a=this.$menu.find(".active").attr("data-value");return this.$element.val(a),this.hide()},show:function(){var b=a.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:b.top+b.height,left:b.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){var c=this,d,e;return this.query=this.$element.val(),this.query?(d=a.grep(this.source,function(a){if(c.matcher(a))return a}),d=this.sorter(d),d.length?this.render(d.slice(0,this.options.items)).show():this.shown?this.hide():this):this.shown?this.hide():this},matcher:function(a){return~a.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(a){var b=[],c=[],d=[],e;while(e=a.shift())e.toLowerCase().indexOf(this.query.toLowerCase())?~e.indexOf(this.query)?c.push(e):d.push(e):b.push(e);return b.concat(c,d)},highlighter:function(a){return a.replace(new RegExp("("+this.query+")","ig"),function(a,b){return"<strong>"+b+"</strong>"})},render:function(b){var c=this;return b=a(b).map(function(b,d){return b=a(c.options.item).attr("data-value",d),b.find("a").html(c.highlighter(d)),b[0]}),b.first().addClass("active"),this.$menu.html(b),this},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0])),d.addClass("active")},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last()),c.addClass("active")},listen:function(){this.$element.on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this)),(a.browser.webkit||a.browser.msie)&&this.$element.on("keydown",a.proxy(this.keypress,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this))},keyup:function(a){a.stopPropagation(),a.preventDefault();switch(a.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:this.hide();break;default:this.lookup()}},keypress:function(a){a.stopPropagation();if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:a.preventDefault(),this.prev();break;case 40:a.preventDefault(),this.next()}},blur:function(a){var b=this;a.stopPropagation(),a.preventDefault(),setTimeout(function(){b.hide()},150)},click:function(a){a.stopPropagation(),a.preventDefault(),this.select()},mouseenter:function(b){this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")}},a.fn.typeahead=function(c){return this.each(function(){var d=a(this),e=d.data("typeahead"),f=typeof c=="object"&&c;e||d.data("typeahead",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>'},a.fn.typeahead.Constructor=b,a(function(){a("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(b){var c=a(this);if(c.data("typeahead"))return;b.preventDefault(),c.typeahead(c.data())})})}(window.jQuery);
+
 /*
  *	lib/js/lib/sprintf.js
  */
@@ -61,6 +49,7 @@
 /*
  *	lib/js/core.min.js
  */
+
 /*
  *	lib/js/wn/class.js
  */;(function(){var initializing=false,fnTest=/xyz/.test(function(){xyz;})?/\b_super\b/:/.*/;this.Class=function(){};Class.extend=function(prop){var _super=this.prototype;initializing=true;var prototype=new this();initializing=false;for(var name in prop){prototype[name]=typeof prop[name]=="function"&&typeof _super[name]=="function"&&fnTest.test(prop[name])?(function(name,fn){return function(){var tmp=this._super;this._super=_super[name];var ret=fn.apply(this,arguments);this._super=tmp;return ret;};})(name,prop[name]):prop[name];}
@@ -75,13 +64,6 @@
 parent=parent[n];}}
 wn.provide('wn.settings');wn.provide('wn.ui');
 /*
- *	lib/js/wn/xmlhttp.js
- */
-wn.xmlhttp={request:function(){if(window.XMLHttpRequest)
-return new XMLHttpRequest();else if(window.ActiveXObject)
-return new ActiveXObject("MsXml2.XmlHttp");},complete:function(req,callback,url){if(req.status==200||req.status==304){callback(req.responseText);}else{alert(url+' request error: '+req.statusText+' ('+req.status+')');}},get:function(url,callback,args,async){if(async===null)async=true;var req=wn.xmlhttp.request();req.onreadystatechange=function(){if(req.readyState==4){wn.xmlhttp.complete(req,callback,url)}}
-var sep=((args&&args.indexOf('?'))==-1)?'?':'&';var u=args?(url+sep+args):url;req.open('GET',u,async);req.send(null);if(!async){wn.xmlhttp.complete(req,callback,url)}}}
-/*
  *	lib/js/wn/versions.js
  */
 wn.versions={check:function(){if(window.localStorage){if(window._version_number==-1||parseInt(localStorage._version_number)!=parseInt(window._version_number)){var localversion=localStorage._version_number;localStorage.clear();console.log("Cache cleared - version: "+localversion
@@ -92,9 +74,8 @@
  */
 wn.assets={executed_:{},exists:function(src){if('localStorage'in window&&localStorage.getItem(src))
 return true},add:function(src,txt){if('localStorage'in window){localStorage.setItem(src,txt);}},get:function(src){return localStorage.getItem(src);},extn:function(src){if(src.indexOf('?')!=-1){src=src.split('?').slice(-1)[0];}
-return src.split('.').slice(-1)[0];},load:function(src){var t=src;wn.xmlhttp.get(t,function(txt){wn.assets.add(src,txt);},'q='+Math.floor(Math.random()*1000),false)},execute:function(src){if(!wn.assets.exists(src)){wn.assets.load(src);}
-var type=wn.assets.extn(src);if(wn.assets.handler[type]){wn.assets.handler[type](wn.assets.get(src),src);wn.assets.executed_[src]=1;}},handler:{js:function(txt,src){wn.dom.eval(txt);},css:function(txt,src){var se=document.createElement('style');se.type="text/css";if(se.styleSheet){se.styleSheet.cssText=txt;}else{se.appendChild(document.createTextNode(txt));}
-document.getElementsByTagName('head')[0].appendChild(se);},cgi:function(txt,src){wn.dom.eval(txt)}}}
+return src.split('.').slice(-1)[0];},load:function(src){var t=src;$.ajax({url:t,data:{q:Math.floor(Math.random()*1000)},dataType:'text',success:function(txt){wn.assets.add(src,txt);},async:false})},execute:function(src){if(!wn.assets.exists(src)){wn.assets.load(src);}
+var type=wn.assets.extn(src);if(wn.assets.handler[type]){wn.assets.handler[type](wn.assets.get(src),src);wn.assets.executed_[src]=1;}},handler:{js:function(txt,src){wn.dom.eval(txt);},css:function(txt,src){wn.dom.set_style(txt);},cgi:function(txt,src){wn.dom.eval(txt)}}}
 /*
  *	lib/js/wn/require.js
  */
@@ -104,7 +85,9 @@
  *	lib/js/wn/dom.js
  */
 wn.provide('wn.dom');wn.dom.by_id=function(id){return document.getElementById(id);}
-wn.dom.eval=function(txt){var el=document.createElement('script');el.appendChild(document.createTextNode(txt));document.getElementsByTagName('head')[0].appendChild(el);}
+wn.dom.eval=function(txt){if(!txt)return;var el=document.createElement('script');el.appendChild(document.createTextNode(txt));document.getElementsByTagName('head')[0].appendChild(el);}
+wn.dom.set_style=function(txt){if(!txt)return;var se=document.createElement('style');se.type="text/css";if(se.styleSheet){se.styleSheet.cssText=txt;}else{se.appendChild(document.createTextNode(txt));}
+document.getElementsByTagName('head')[0].appendChild(se);}
 wn.dom.add=function(parent,newtag,className,cs,innerHTML,onclick){if(parent&&parent.substr)parent=wn.dom.by_id(parent);var c=document.createElement(newtag);if(parent)
 parent.appendChild(c);if(className){if(newtag.toLowerCase()=='img')
 c.src=className
@@ -112,15 +95,19 @@
 c.className=className;}
 if(cs)wn.dom.css(c,cs);if(innerHTML)c.innerHTML=innerHTML;if(onclick)c.onclick=onclick;return c;}
 wn.dom.css=function(ele,s){if(ele&&s){for(var i in s)ele.style[i]=s[i];};return ele;}
-wn.dom.hide=function(ele){ele.style.display='none';}
-wn.dom.show=function(ele,value){if(!value)value='block';ele.style.display=value;}
+wn.get_cookie=function(c){var t=""+document.cookie;var ind=t.indexOf(c);if(ind==-1||c=="")return"";var ind1=t.indexOf(';',ind);if(ind1==-1)ind1=t.length;return unescape(t.substring(ind+c.length+1,ind1));}
+wn.dom.set_box_shadow=function(ele,spread){$(ele).css('-moz-box-shadow','0px 0px '+spread+'px rgba(0,0,0,0.3);')
+$(ele).css('-webkit-box-shadow','0px 0px '+spread+'px rgba(0,0,0,0.3);')
+$(ele).css('-box-shadow','0px 0px '+spread+'px rgba(0,0,0,0.3);')}
 /*
- *	lib/js/wn/page.js
+ *	lib/js/wn/model.js
  */
-wn.page={set:function(src){var new_selection=$('.inner div.content[_src="'+src+'"]');if(!new_selection.length){wn.assets.execute(src);new_selection=$('.inner div.content[_src="'+src+'"]');}
-$('.inner .current_page').removeClass('current_page');new_selection.addClass('current_page');var title=$('nav ul li a[href*="'+src+'"]').attr('title')||'No Title'
-state=window.location.hash;if(state!=src){window.location.hash=state;}
-else{document.title=title;}}}
+wn.provide('wn.model');wn.model={no_value_type:['Section Break','Column Break','HTML','Table','Button','Image'],new_names:{},with_doctype:function(doctype,callback){if(locals.DocType[doctype]){callback();}else{wn.call({method:'webnotes.widgets.form.load.getdoctype',args:{doctype:doctype},callback:callback});}},with_doc:function(doctype,name,callback){if(!name)name=doctype;if(locals[doctype]&&locals[doctype][name]){callback(name);}else{if(name&&name.indexOf('New '+doctype)!=-1){name=LocalDB.create(doctype);callback(name);}else{wn.call({method:'webnotes.widgets.form.load.getdoc',args:{doctype:doctype,name:name},callback:function(r){callback(name);}});}}},can_delete:function(doctype){if(!doctype)return false;return locals.DocType[doctype].allow_trash&&wn.boot.profile.can_cancel.indexOf(doctype)!=-1;}}
+/*
+ *	lib/js/wn/misc/tools.js
+ */
+wn.markdown=function(txt){if(!wn.md2html){wn.require('lib/js/lib/showdown.js');wn.md2html=new Showdown.converter();}
+return wn.md2html.makeHtml(txt);}
 /*
  *	lib/js/wn/misc/user.js
  */
@@ -130,6 +117,8 @@
 if(!wn.boot.user_info[uid].fullname)
 wn.boot.user_info[uid].fullname=uid;if(!wn.boot.user_info[uid].image)
 wn.boot.user_info[uid].image=def.image;return wn.boot.user_info[uid];}
+wn.session_alive=true;$(document).bind('mousemove',function(){wn.session_alive=true;if(wn.session_alive_timeout)
+clearTimeout(wn.session_alive_timeout);wn.session_alive_timeout=setTimeout('wn.session_alive=false;',30000);})
 /*
  *	lib/js/lib/json2.js
  */
@@ -159,19 +148,248 @@
 if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}
 throw new SyntaxError('JSON.parse');};}}());
 /*
+ *	lib/js/wn/router.js
+ */
+wn.route=function(){wn._cur_route=window.location.hash;route=wn.get_route();switch(route[0]){case"List":wn.views.doclistview.show(route[1]);break;case"Form":if(route.length>3){route[2]=route.splice(2).join('/');}
+wn.views.formview.show(route[1],route[2]);break;case"Report":wn.views.reportview.show(route[1],route[2]);break;default:wn.views.pageview.show(route[0]);}}
+wn.get_route=function(route){if(!route)
+route=window.location.hash;if(route.substr(0,1)=='#')route=route.substr(1);if(route.substr(0,1)=='!')route=route.substr(1);return $.map(route.split('/'),function(r){return decodeURIComponent(r);});}
+wn.set_route=function(){route=$.map(arguments,function(a){return encodeURIComponent(a)}).join('/');window.location.hash=route;}
+wn._cur_route=null;$(window).bind('hashchange',function(){if(location.hash==wn._cur_route)
+return;wn.route();if(wn.boot.analytics_code){try{eval(wn.boot.analytics_code);}catch(e){console.log(e);}}});
+/*
+ *	lib/js/wn/ui/listing.js
+ */
+wn.provide('wn.ui');wn.ui.Listing=Class.extend({init:function(opts){this.opts=opts||{};this.page_length=20;this.start=0;this.data=[];if(opts){this.make();}},prepare_opts:function(){if(this.opts.new_doctype){if(wn.boot.profile.can_read.indexOf(this.opts.new_doctype)==-1){this.opts.new_doctype=null;}else{this.opts.new_doctype=get_doctype_label(this.opts.new_doctype);}}
+if(!this.opts.no_result_message){this.opts.no_result_message='Nothing to show'}},make:function(opts){if(opts){this.opts=opts;}
+this.prepare_opts();$.extend(this,this.opts);$(this.parent).html(repl('\
+   <div class="wnlist">\
+    <h3 class="title hide">%(title)s</h3>\
+    \
+    <div class="list-filters hide">\
+     <div class="show_filters well">\
+      <div>\
+       <button class="btn btn-small add-filter-btn">\
+        <i class="icon-plus"></i> Add Filter</button>\
+      </div>\
+      <div class="filter_area"></div>\
+     </div>\
+    </div>\
+    \
+    <div style="height: 37px; margin-bottom:9px" class="list-toolbar-wrapper">\
+     <div class="list-toolbar btn-group" style="display:inline-block; margin-right: 10px;">\
+      <a class="btn btn-small btn-refresh btn-info">\
+       <i class="icon-refresh icon-white"></i> Refresh</a>\
+      <a class="btn btn-small btn-new">\
+       <i class="icon-plus"></i> New</a>\
+      <a class="btn btn-small btn-filter">\
+       <i class="icon-search"></i> Filter</a>\
+     </div>\
+     <div style="display:inline-block; width: 24px; margin-left: 4px">\
+      <img src="lib/images/ui/button-load.gif" \
+      class="img-load"/></div>\
+    </div><div style="clear:both"></div>\
+    \
+    <div class="no-result help hide">\
+     %(no_result_message)s\
+    </div>\
+    \
+    <div class="result">\
+     <div class="result-list"></div>\
+     <div class="result-grid hide"></div>\
+    </div>\
+    \
+    <div class="paging-button">\
+     <button class="btn btn-small btn-more hide">More...</div>\
+    </div>\
+   </div>\
+  ',this.opts));this.$w=$(this.parent).find('.wnlist');this.set_events();if(this.show_filters){this.make_filters();}},add_button:function(html,onclick,before){$(html).click(onclick).insertBefore(this.$w.find('.list-toolbar '+before));this.btn_groupify();},show_view:function($btn,$div,$btn_unsel,$div_unsel){$btn_unsel.removeClass('btn-info');$btn_unsel.find('i').removeClass('icon-white');$div_unsel.toggle(false);$btn.addClass('btn-info');$btn.find('i').addClass('icon-white');$div.toggle(true);},set_events:function(){var me=this;this.$w.find('.btn-refresh').click(function(){me.run();});this.$w.find('.btn-more').click(function(){me.run({append:true});});if(this.title){this.$w.find('h3').html(this.title).toggle(true);}
+if(this.new_doctype){this.$w.find('.btn-new').toggle(true).click(function(){newdoc(me.new_doctype);})}else{this.$w.find('.btn-new').remove();}
+if(!me.show_filters){this.$w.find('.btn-filter').remove();}
+if(this.hide_refresh||this.no_refresh){this.$w.find('.btn-refresh').remove();}
+this.btn_groupify();},btn_groupify:function(){var nbtns=this.$w.find('.list-toolbar a').length;if(nbtns==0){this.$w.find('.list-toolbar-wrapper').toggle(false);}},make_filters:function(){this.filter_list=new wn.ui.FilterList({listobj:this,$parent:this.$w.find('.list-filters').toggle(true),doctype:this.doctype,filter_fields:this.filter_fields});},clear:function(){this.data=[];this.$w.find('.result-list').empty();this.$w.find('.result').toggle(true);this.$w.find('.no-result').toggle(false);this.start=0;},run:function(){var me=this;var a0=arguments[0];var a1=arguments[1];if(a0&&typeof a0=='function')
+this.onrun=a0;if(a0&&a0.callback)
+this.onrun=a0.callback;if(!a1&&!(a0&&a0.append))
+this.start=0;me.set_working(true);wn.call({method:this.opts.method||'webnotes.widgets.query_builder.runquery',args:this.get_call_args(),callback:function(r){me.set_working(false);me.render_results(r)},no_spinner:this.opts.no_loading});},set_working:function(flag){this.$w.find('.img-load').toggle(flag);},get_call_args:function(){if(!this.method){this.query=this.get_query?this.get_query():this.query;this.add_limits();var args={query_max:this.query_max,as_dict:1}
+args.simple_query=this.query;}else{var args={limit_start:this.start,limit_page_length:this.page_length}}
+if(this.args)
+$.extend(args,this.args)
+if(this.get_args){$.extend(args,this.get_args());}
+return args;},render_results:function(r){if(this.start==0)this.clear();this.$w.find('.btn-more').toggle(false);if(r.message)r.values=r.message;if(r.values&&r.values.length){this.data=this.data.concat(r.values);this.render_list(r.values);}else{if(this.start==0){this.$w.find('.result').toggle(false);this.$w.find('.no-result').toggle(true);}}
+if(this.onrun)this.onrun();if(this.callback)this.callback(r);},render_list:function(values){var m=Math.min(values.length,this.page_length);for(var i=0;i<m;i++){this.render_row(this.add_row(),values[i],this,i);}
+this.start+=m;if(values.length>=this.page_length)
+this.$w.find('.btn-more').toggle(true);},add_row:function(){return this.$w.find('.result-list').append('<div class="list-row">').find('.list-row:last').get(0);},refresh:function(){this.run();},add_limits:function(){this.query+=' LIMIT '+this.start+','+(this.page_length+1);}});wn.ui.FilterList=Class.extend({init:function(opts){wn.require('lib/js/legacy/widgets/form/fields.js');$.extend(this,opts);this.filters=[];this.$w=this.$parent;this.set_events();},set_events:function(){var me=this;this.listobj.$w.find('.btn-filter').bind('click',function(){me.$w.find('.show_filters').slideToggle();if(!me.filters.length)
+me.add_filter();});this.$w.find('.add-filter-btn').bind('click',function(){me.add_filter();});},add_filter:function(fieldname,condition,value){this.filters.push(new wn.ui.Filter({flist:this,fieldname:fieldname,condition:condition,value:value}));if(fieldname){this.$w.find('.show_filters').slideDown();}},get_filters:function(){var values=[];$.each(this.filters,function(i,f){if(f.field)
+values.push(f.get_value());})
+return values;},update_filters:function(){var fl=[];$.each(this.filters,function(i,f){if(f.field)fl.push(f);})
+this.filters=fl;},get_filter:function(fieldname){for(var i in this.filters){if(this.filters[i].field.df.fieldname==fieldname)
+return this.filters[i];}}});wn.ui.Filter=Class.extend({init:function(opts){$.extend(this,opts);this.doctype=this.flist.doctype;this.fields_by_name={};this.make();this.make_options();this.set_events();},make:function(){this.flist.$w.find('.filter_area').append('<div class="list_filter">\
+  <select class="fieldname_select"></select>\
+  <select class="condition">\
+   <option value="=">Equals</option>\
+   <option value="like">Like</option>\
+   <option value=">=">Greater or equals</option>\
+   <option value=">=">Less or equals</option>\
+   <option value=">">Greater than</option>\
+   <option value="<">Less than</option>\
+   <option value="in">In</option>\
+   <option value="!=">Not equals</option>\
+  </select>\
+  <span class="filter_field"></span>\
+  <a class="close">&times;</a>\
+  </div>');this.$w=this.flist.$w.find('.list_filter:last-child');this.$select=this.$w.find('.fieldname_select');},make_options:function(){if(this.filter_fields){for(var i in this.filter_fields)
+this.add_field_option(this.filter_fields[i])}else{this.render_field_select();}},set_events:function(){var me=this;this.$w.find('.fieldname_select').bind('change',function(){me.set_field(this.value);});this.$w.find('a.close').bind('click',function(){me.$w.css('display','none');var value=me.field.get_value();me.field=null;if(!me.flist.get_filters().length){me.flist.$w.find('.set_filters').toggle(true);me.flist.$w.find('.show_filters').toggle(false);}
+if(value){me.flist.listobj.run();}
+me.flist.update_filters();return false;});me.$w.find('.condition').change(function(){if($(this).val()=='in'){me.set_field(me.field.df.fieldname,'Data');if(!me.field.desc_area)
+me.field.desc_area=$a(me.field.wrapper,'span','help',null,'values separated by comma');}else{me.set_field(me.field.df.fieldname);}});if(me.fieldname){this.set_values(me.fieldname,me.condition,me.value);}else{me.set_field('name');}},set_values:function(fieldname,condition,value){this.set_field(fieldname);if(condition)this.$w.find('.condition').val(condition).change();if(value)this.field.set_input(value)},render_field_select:function(){var me=this;me.table_fields=[];var std_filters=[{fieldname:'name',fieldtype:'Data',label:'ID',parent:me.doctype},{fieldname:'modified',fieldtype:'Date',label:'Last Modified',parent:me.doctype},{fieldname:'owner',fieldtype:'Data',label:'Created By',parent:me.doctype},{fieldname:'_user_tags',fieldtype:'Data',label:'Tags',parent:me.doctype}];$.each(std_filters.concat(fields_list[me.doctype]),function(i,df){me.add_field_option(df);});$.each(me.table_fields,function(i,table_df){if(table_df.options){$.each(fields_list[table_df.options],function(i,df){me.add_field_option(df);});}})},add_field_option:function(df){var me=this;if(me.doctype&&df.parent==me.doctype){var label=df.label;var table=get_label_doctype(me.doctype);if(df.fieldtype=='Table')me.table_fields.push(df);}else{var label=df.label+' ('+df.parent+')';var table=df.parent;}
+if(wn.model.no_value_type.indexOf(df.fieldtype)==-1&&!me.fields_by_name[df.fieldname]){this.$select.append($('<option>',{value:df.fieldname,table:table}).text(label));me.fields_by_name[df.fieldname]=df;}},set_field:function(fieldname,fieldtype){var me=this;var cur=me.field?{fieldname:me.field.df.fieldname,fieldtype:me.field.df.fieldtype}:{}
+var df=me.fields_by_name[fieldname];this.set_fieldtype(df,fieldtype);if(me.field&&cur.fieldname==fieldname&&df.fieldtype==cur.fieldtype){return;}
+me.$w.find('.fieldname_select').val(fieldname);var field_area=me.$w.find('.filter_field').empty().get(0);f=make_field(df,null,field_area,null,0,1);f.df.single_select=1;f.not_in_form=1;f.with_label=0;f.refresh();me.field=f;this.set_default_condition(df,fieldtype);$(me.field.wrapper).find(':input').keydown(function(ev){if(ev.which==13){me.flist.listobj.run();}})},set_fieldtype:function(df,fieldtype){if(df.original_type)
+df.fieldtype=df.original_type;else
+df.original_type=df.fieldtype;df.description='';df.reqd=0;if(fieldtype){df.fieldtype=fieldtype;return;}
+if(df.fieldtype=='Check'){df.fieldtype='Select';df.options='No\nYes';}else if(['Text','Text Editor','Code','Link'].indexOf(df.fieldtype)!=-1){df.fieldtype='Data';}},set_default_condition:function(df,fieldtype){if(!fieldtype){if(df.fieldtype=='Data'){this.$w.find('.condition').val('like');}else{this.$w.find('.condition').val('=');}}},get_value:function(){var me=this;var val=me.field.get_value();var cond=me.$w.find('.condition').val();if(me.field.df.original_type=='Check'){val=(val=='Yes'?1:0);}
+if(cond=='like'){val=val+'%';}
+return[me.$w.find('.fieldname_select option:selected').attr('table'),me.field.df.fieldname,me.$w.find('.condition').val(),cstr(val)];}});
+/*
+ *	lib/js/wn/views/container.js
+ */
+wn.provide('wn.pages');wn.provide('wn.views');wn.views.Container=Class.extend({init:function(){this.container=$('#body_div').get(0);this.page=null;this.pagewidth=$('#body_div').width();this.pagemargin=50;},add_page:function(label,onshow,onhide){var page=$('<div class="content"></div>').appendTo(this.container).get(0);if(onshow)
+$(page).bind('show',onshow);if(onshow)
+$(page).bind('hide',onhide);page.label=label;wn.pages[label]=page;return page;},change_to:function(label){if(this.page&&this.page.label==label){return;}
+var me=this;if(label.tagName){var page=label;}else{var page=wn.pages[label];}
+if(!page){console.log('Page not found '+label);return;}
+if(this.page){$(this.page).toggle(false);$(this.page).trigger('hide');}
+this.page=page;$(this.page).fadeIn();$(this.page).trigger('show');this.page._route=window.location.hash;document.title=this.page.label;scroll(0,0);return this.page;}});wn.views.add_module_btn=function(parent,module){$(parent).append(repl('<span class="label" style="margin-right: 8px; cursor: pointer;"\
+     onclick="wn.set_route(\'%(module_small)s-home\')">\
+     <i class="icon-home icon-white"></i> %(module)s Home\
+    </span>',{module:module,module_small:module.toLowerCase()}));}
+wn.views.add_list_btn=function(parent,doctype){$(parent).append(repl('<span class="label" style="margin-right: 8px; cursor: pointer;"\
+     onclick="wn.set_route(\'List\', \'%(doctype)s\')">\
+     <i class="icon-list icon-white"></i> %(doctype)s List\
+    </span>',{doctype:doctype}));}
+/*
+ *	lib/js/wn/views/doclistview.js
+ */
+wn.provide('wn.views.doclistview');wn.provide('wn.doclistviews');wn.views.doclistview.pages={};wn.views.doclistview.show=function(doctype){var pagename=doctype+' List';var doctype=get_label_doctype(doctype);wn.model.with_doctype(doctype,function(){var page=wn.views.doclistview.pages[pagename];if(!page){var page=wn.container.add_page(pagename);page.doclistview=new wn.views.DocListView(doctype,page);wn.views.doclistview.pages[pagename]=page;}
+document.title=page.doclistview.label;wn.container.change_to(pagename);})}
+wn.views.DocListView=wn.ui.Listing.extend({init:function(doctype,page){this.doctype=doctype;this.$page=$(page);this.label=get_doctype_label(doctype);this.label=(this.label.toLowerCase().substr(-4)=='list')?this.label:(this.label+' List');this.make_page();this.setup();},make_page:function(){var me=this;this.$page.html(repl('<div class="layout-wrapper layout-wrapper-background">\
+   <div class="layout-main-section">\
+    <a class="close" onclick="window.history.back();">&times;</a>\
+    <div class="breadcrumbs-area"></div>\
+    <h1>%(label)s</h1>\
+    <hr>\
+    <div class="wnlist-area"><div class="help">Loading...</div></div>\
+   </div>\
+   <div class="layout-side-section">\
+    <div class="stat-wrapper show-docstatus hide">\
+     <h4>Show</h4>\
+     <div><input data-docstatus="0" type="checkbox" checked="checked" /> Drafts</div>\
+     <div><input data-docstatus="1" type="checkbox" checked="checked" /> Submitted</div>\
+     <div><input data-docstatus="2" type="checkbox" /> Cancelled</div>\
+    </div>\
+   </div>\
+   <div style="clear: both"></div>\
+  </div>',{label:this.label}));wn.views.breadcrumbs(this.$page.find('.breadcrumbs-area').get(0),locals.DocType[this.doctype].module);},setup:function(){var me=this;me.can_delete=wn.model.can_delete(me.doctype);me.meta=locals.DocType[me.doctype];me.$page.find('.wnlist-area').empty(),me.setup_docstatus_filter();me.setup_listview();me.init_list();me.init_stats();me.add_delete_option();},setup_docstatus_filter:function(){var me=this;this.can_submit=$.map(locals.DocPerm,function(d){if(d.parent==me.meta.name&&d.submit)return 1
+else return null;}).length;if(this.can_submit){this.$page.find('.show-docstatus').removeClass('hide');this.$page.find('.show-docstatus input').click(function(){me.run();})}},setup_listview:function(){if(this.meta.__listjs){eval(this.meta.__listjs);this.listview=new wn.doclistviews[this.doctype](this);}else{this.listview=new wn.views.ListView(this);}
+this.listview.parent=this;},init_list:function(){this.make({method:'webnotes.widgets.doclistview.get',get_args:this.get_args,parent:this.$page.find('.wnlist-area'),start:0,page_length:20,show_filters:true,show_grid:true,new_doctype:this.doctype,allow_delete:true,no_result_message:this.make_no_result(),columns:this.listview.fields});this.run();},make_no_result:function(){return repl('<div class="well"><p>No %(doctype_label)s found</p>\
+  %(description)s\
+  <hr>\
+  <p><button class="btn btn-info btn-small"\
+    onclick="wn.set_route(\'Form\', \'%(doctype)s\', \'New %(doctype)s\');"\
+    >Make a new %(doctype_label)s</button>\
+  </p></div>',{doctype_label:get_doctype_label(this.doctype),doctype:this.doctype,description:wn.markdown(locals.DocType[this.doctype].description||'')});},render_row:function(row,data){data.doctype=this.doctype;this.listview.render(row,data,this);},get_query_fields:function(){return this.listview.fields;},get_args:function(){return{doctype:this.doctype,fields:this.get_query_fields(),filters:this.filter_list.get_filters(),docstatus:this.can_submit?$.map(this.$page.find('.show-docstatus :checked'),function(inp){return $(inp).attr('data-docstatus')}):[]}},add_delete_option:function(){var me=this;if(this.can_delete){this.add_button('<a class="btn btn-small btn-delete">\
+    <i class="icon-remove"></i> Delete</a>',function(){me.delete_items();},'.btn-filter')}},delete_items:function(){var me=this;var dl=$.map(me.$page.find('.list-delete:checked'),function(e){return $(e).data('name');});if(!dl.length)
+return;if(!confirm('This is PERMANENT action and you cannot undo. Continue?')){return;}
+me.set_working(true);wn.call({method:'webnotes.widgets.doclistview.delete_items',args:{items:dl,doctype:me.doctype},callback:function(){me.set_working(false);me.refresh();}})},init_stats:function(){var me=this
+wn.call({method:'webnotes.widgets.doclistview.get_stats',args:{stats:me.listview.stats,doctype:me.doctype},callback:function(r){$.each(me.listview.stats,function(i,v){me.render_stat(v,r.message[v]);});}});},render_stat:function(field,stat){var me=this;if(!stat||!stat.length){if(field=='_user_tags'){this.$page.find('.layout-side-section').append('<div class="stat-wrapper"><h4>Tags</h4>\
+      <div class="help small"><i>No records tagged.</i><br><br> \
+      To add a tag, open the document and click on \
+      "Add Tag" on the sidebar</div></div>');}
+return;}
+var label=fields[this.doctype][field]?fields[this.doctype][field].label:field;if(label=='_user_tags')label='Tags';var $w=$('<div class="stat-wrapper">\
+   <h4>'+label+'</h4>\
+   <div class="stat-grid">\
+   </div>\
+  </div>');stat=stat.sort(function(a,b){return b[1]-a[1]});var sum=0;$.each(stat,function(i,v){sum=sum+v[1];})
+$.each(stat,function(i,v){me.render_stat_item(i,v,sum,field).appendTo($w.find('.stat-grid'));});$w.appendTo(this.$page.find('.layout-side-section'));},render_stat_item:function(i,v,max,field){var me=this;var args={}
+args.label=v[0];args.width=flt(v[1])/max*100;args.count=v[1];args.field=field;$item=$(repl('<div class="stat-item">\
+   <div class="stat-bar" style="width: %(width)s%"></div>\
+   <div class="stat-label">\
+    <a href="#" data-label="%(label)s" data-field="%(field)s">\
+     %(label)s</a> \
+    (%(count)s)</div>\
+  </div>',args));this.setup_stat_item_click($item);return $item;},setup_stat_item_click:function($item){var me=this;$item.find('a').click(function(){var fieldname=$(this).attr('data-field');var label=$(this).attr('data-label');me.set_filter(fieldname,label);return false;});},set_filter:function(fieldname,label){var filter=this.filter_list.get_filter(fieldname);if(filter){var v=filter.field.get_value();if(v.indexOf(label)!=-1){return false;}else{if(fieldname=='_user_tags'){this.filter_list.add_filter(fieldname,'like','%'+label);}else{filter.set_values(fieldname,'in',v+', '+label);}}}else{if(fieldname=='_user_tags'){this.filter_list.add_filter(fieldname,'like','%'+label);}else{this.filter_list.add_filter(fieldname,'=',label);}}
+this.run();}});wn.views.ListView=Class.extend({init:function(doclistview){this.doclistview=doclistview;this.doctype=doclistview.doctype;var t="`tab"+this.doctype+"`.";this.fields=[t+'name',t+'owner',t+'docstatus',t+'_user_tags',t+'modified'];this.stats=['_user_tags'];if(!this.doclistview.can_delete){this.columns=$.map(this.columns,function(v,i){if(v.content!='check')return v});}},columns:[{width:'3%',content:'check'},{width:'4%',content:'avatar'},{width:'3%',content:'docstatus',css:{"text-align":"center"}},{width:'35%',content:'name'},{width:'40%',content:'tags',css:{'color':'#aaa'}},{width:'15%',content:'modified',css:{'text-align':'right','color':'#777'}}],render_column:function(data,parent,opts){var me=this;if(opts.css){$.each(opts.css,function(k,v){$(parent).css(k,v)});}
+if(opts.content.indexOf&&opts.content.indexOf('+')!=-1){$.map(opts.content.split('+'),function(v){me.render_column(data,parent,{content:v});});return;}
+if(typeof opts.content=='function'){opts.content(parent,data);}
+else if(opts.content=='name'){$(parent).append(repl('<a href="#!Form/%(doctype)s/%(name)s">%(name)s</a>',data));}
+else if(opts.content=='avatar'){$(parent).append(repl('<span class="avatar-small"><img src="%(avatar)s" \
+    title="%(fullname)s"/></span>',data));}
+else if(opts.content=='check'){$(parent).append('<input class="list-delete" type="checkbox">');$(parent).find('input').data('name',data.name);}
+else if(opts.content=='docstatus'){$(parent).append(repl('<span class="docstatus"><i class="%(docstatus_icon)s" \
+    title="%(docstatus_title)s"></i></span>',data));}
+else if(opts.content=='tags'){this.add_user_tags(parent,data);}
+else if(opts.content=='modified'){$(parent).append(data.when);}
+else if(opts.type=='bar-graph'){args={percent:data[opts.content],fully_delivered:(data[opts.content]>99?'bar-complete':''),label:opts.label}
+$(parent).append(repl('<span class="bar-outer" style="width: 30px; float: right" \
+    title="%(percent)s% %(label)s">\
+    <span class="bar-inner %(fully_delivered)s" \
+     style="width: %(percent)s%;"></span>\
+   </span>',args));}
+else if(data[opts.content]){$(parent).append(' '+data[opts.content]);}},render:function(row,data){var me=this;this.prepare_data(data);rowhtml='';$.each(this.columns,function(i,v){rowhtml+=repl('<td style="width: %(width)s"></td>',v);});var tr=$(row).html('<table><tbody><tr>'+rowhtml+'</tr></tbody></table>').find('tr').get(0);$.each(this.columns,function(i,v){me.render_column(data,tr.cells[i],v);});},prepare_data:function(data){data.fullname=wn.user_info(data.owner).fullname;data.avatar=wn.user_info(data.owner).image;data.when=dateutil.str_to_user(data.modified).split(' ')[0];var diff=dateutil.get_diff(dateutil.get_today(),data.modified.split(' ')[0]);if(diff==0){data.when='Today'}
+if(diff==1){data.when='Yesterday'}
+if(diff==2){data.when='2 days ago'}
+if(data.docstatus==0||data.docstatus==null){data.docstatus_icon='icon-pencil';data.docstatus_title='Editable';}else if(data.docstatus==1){data.docstatus_icon='icon-lock';data.docstatus_title='Submitted';}else if(data.docstatus==2){data.docstatus_icon='icon-remove';data.docstatus_title='Cancelled';}},add_user_tags:function(parent,data){var me=this;if(data._user_tags){$.each(data._user_tags.split(','),function(i,t){if(t){$('<span class="label label-info" style="cursor: pointer">'
++strip(t)+'</span>').click(function(){me.doclistview.set_filter('_user_tags',$(this).text())}).appendTo(parent);}});}}})
+/*
+ *	lib/js/wn/views/pageview.js
+ */
+wn.provide('wn.views.pageview');wn.views.pageview={pages:{},with_page:function(name,callback){if(!locals.Page[name]){wn.call({method:'webnotes.widgets.page.getpage',args:{'name':name},callback:callback});}else{callback();}},show:function(name){wn.views.pageview.with_page(name,function(){if(!wn.pages[name]){wn.views.pageview.pages[name]=new wn.views.Page(name);}
+wn.container.change_to(name);});}}
+wn.views.Page=Class.extend({init:function(name){this.name=name;var me=this;this.pagedoc=locals.Page[this.name];this.wrapper=wn.container.add_page(this.name);this.wrapper.label=this.pagedoc.title||this.pagedoc.name;this.wrapper.innerHTML=this.pagedoc.content;wn.dom.eval(this.pagedoc.__script||this.pagedoc.script||'');wn.dom.set_style(this.pagedoc.style);this.trigger('onload');$(this.wrapper).bind('show',function(){cur_frm=null;me.trigger('onshow');me.trigger('refresh');});},trigger:function(eventname){var me=this;try{if(pscript[eventname+'_'+this.name]){pscript[eventname+'_'+this.name](me.wrapper);}else if(me.wrapper[eventname]){me.wrapper[eventname](me.wrapper);}}catch(e){console.log(e);}}})
+/*
+ *	lib/js/wn/views/formview.js
+ */
+wn.provide('wn.views.formview');wn.views.formview={show:function(dt,dn){if(wn.model.new_names[dn])
+dn=wn.model.new_names[dn];wn.model.with_doctype(dt,function(){wn.model.with_doc(dt,dn,function(dn){if(!wn.views.formview[dt]){wn.views.formview[dt]=wn.container.add_page('Form - '+dt);wn.views.formview[dt].frm=new _f.Frm(dt,wn.views.formview[dt]);}
+wn.container.change_to('Form - '+dt);wn.views.formview[dt].frm.refresh(dn);});})}}
+/*
+ *	lib/js/wn/views/reportview.js
+ */
+wn.views.reportview={show:function(dt,rep_name){wn.require('lib/js/legacy/report.compressed.js');dt=get_label_doctype(dt);if(!_r.rb_con){_r.rb_con=new _r.ReportContainer();}
+_r.rb_con.set_dt(dt,function(rb){if(rep_name){var t=rb.current_loaded;rb.load_criteria(rep_name);if(onload)
+onload(rb);if((rb.dt)&&(!rb.dt.has_data()||rb.current_loaded!=t))
+rb.dt.run();}
+if(!rb.forbidden){wn.container.change_to('Report Builder');}});}}
+/*
+ *	lib/js/wn/request.js
+ */
+wn.provide('wn.request');wn.request.url='index.cgi';wn.request.prepare=function(opts){if(opts.btn)$(opts.btn).set_working();if(opts.show_spinner)set_loading();if(opts.freeze)freeze();if(!opts.args.cmd){console.log(opts)
+throw"Incomplete Request";}}
+wn.request.cleanup=function(opts,r){if(opts.btn)$(opts.btn).done_working();if(opts.show_spinner)hide_loading();if(opts.freeze)unfreeze();if(wn.boot.sid&&wn.get_cookie('sid')!=wn.boot.sid){msgprint('Session expired');setTimeout('redirect_to_login()',3000);return;}
+if(r.server_messages)msgprint(r.server_messages)
+if(r.exc){errprint(r.exc);console.log(r.exc);};if(r.docs)LocalDB.sync(r.docs);}
+wn.request.call=function(opts){wn.request.prepare(opts);$.ajax({url:opts.url||wn.request.url,data:opts.args,type:opts.type||'POST',dataType:opts.dataType||'json',success:function(r,xhr){wn.request.cleanup(opts,r);opts.success(r,xhr.responseText);},error:function(xhr,textStatus){wn.request.cleanup(opts,{});show_alert('Unable to complete request: '+textStatus)
+if(opts.error)opts.error(xhr)}})}
+wn.call=function(opts){var args=$.extend({},opts.args)
+if(opts.module&&opts.page){args.cmd=opts.module+'.page.'+opts.page+'.'+opts.page+'.'+opts.method}else if(opts.method){args.cmd=opts.method;}
+for(key in args){if(args[key]&&typeof args[key]!='string'){args[key]=JSON.stringify(args[key]);}}
+wn.request.call({args:args,success:opts.callback,error:opts.error,btn:opts.btn,freeze:opts.freeze,show_spinner:!opts.no_spinner});}
+/*
  *	lib/js/core.js
  */
 if(!console){var console={log:function(txt){errprint(txt);}}}
 wn.versions.check();$(document).bind('ready',function(){var base=window.location.href.split('#')[0];$.each($('a[softlink!="false"]'),function(i,v){if(v.href.substr(0,base.length)==base){var path=(v.href.substr(base.length));if(path.substr(0,1)!='#'){v.href=base+'#'+path;}}});if(!wn.settings.no_history&&window.location.hash){wn.page.set(window.location.hash.substr(1));}});
+
 /*
  *	lib/js/legacy/globals.js
  */
 wn.provide('wn.widgets.form');wn.provide('wn.widgets.report');wn.provide('wn.utils');wn.provide('wn.model');wn.provide('wn.profile');wn.provide('wn.session');wn.provide('_f');wn.provide('_p');wn.provide('_r');wn.provide('_c');wn.provide('_e');wn.provide('_startup_data')
-wn.settings.no_history=1;var NEWLINE='\n';var login_file='';var version='v170';var profile=null;var session={};var is_testing=false;var user=null;var user_defaults=null;var user_roles=null;var user_fullname=null;var user_email=null;var user_img={};var home_page=null;var hide_autosuggest=null;var page_body=null;var pscript={};var selector=null;var top_index=91;var _f={};var _p={};var _e={};var _r={};var FILTER_SEP='\1';var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;var cur_autosug=null;
+wn.settings.no_history=1;var NEWLINE='\n';var login_file='';var version='v170';var profile=null;var session={};var is_testing=false;var user=null;var user_defaults=null;var user_roles=null;var user_fullname=null;var user_email=null;var user_img={};var home_page=null;var pscript={};var selector=null;var top_index=91;var _f={};var _p={};var _e={};var _r={};var FILTER_SEP='\1';var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;
 /*
  *	lib/js/legacy/utils/datatype.js
  */
-var startup_list=[];wn.utils.full_name=function(fn,ln){return fn+(ln?' ':'')+(ln?ln:'')}
+wn.utils.full_name=function(fn,ln){return fn+(ln?' ':'')+(ln?ln:'')}
 function fmt_money(v){if(v==null||v=='')return'0.00';v=(v+'').replace(/,/g,'');v=parseFloat(v);if(isNaN(v)){return'';}else{var cp=wn.control_panel;var val=2;if(cp.currency_format=='Millions')val=3;v=v.toFixed(2);var delimiter=",";amount=v+'';var a=amount.split('.',2)
 var d=a[1];var i=parseInt(a[0]);if(isNaN(i)){return'';}
 var minus='';if(v<0){minus='-';}
@@ -198,7 +416,7 @@
 function nth(number){number=cint(number);var s='th';if((number+'').substr(-1)=='1')s='st';if((number+'').substr(-1)=='2')s='nd';if((number+'').substr(-1)=='3')s='rd';return number+s;}
 function flt(v,decimals){if(v==null||v=='')return 0;v=(v+'').replace(/,/g,'');v=parseFloat(v);if(isNaN(v))
 v=0;if(decimals!=null)
-return v.toFixed(decimals);return v;}
+return parseFloat(v.toFixed(decimals));return v;}
 function esc_quotes(s){if(s==null)s='';return s.replace(/'/,"\'");}
 var crop=function(s,len){if(s.length>len)
 return s.substr(0,len-3)+'...';else
@@ -207,7 +425,7 @@
 s=rstrip(s,chars);return s;}
 var lstrip=function(s,chars){if(!chars)chars=['\n','\t',' '];var first_char=s.substr(0,1);while(in_list(chars,first_char)){var s=s.substr(1);first_char=s.substr(0,1);}
 return s;}
-var rstrip=function(s,chars){if(!chars)chars=['\n','\t',' '];var last_char=s.substr(s.length-1);while(in_list(chars,last_char)){var s=s.substr(0,this.length-1);last_char=s.substr(this.length-1);}
+var rstrip=function(s,chars){if(!chars)chars=['\n','\t',' '];var last_char=s.substr(s.length-1);while(in_list(chars,last_char)){var s=s.substr(0,s.length-1);last_char=s.substr(s.length-1);}
 return s;}
 function repl_all(s,s1,s2){var idx=s.indexOf(s1);while(idx!=-1){s=s.replace(s1,s2);idx=s.indexOf(s1);}
 return s;}
@@ -239,7 +457,7 @@
 var month_list=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];var month_last={1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
 var month_list_full=['January','February','March','April','May','June','July','August','September','October','November','December'];var week_list=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];var week_list_full=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];function int_to_str(i,len){i=''+i;if(i.length<len)for(c=0;c<(len-i.length);c++)i='0'+i;return i}
 wn.datetime={str_to_obj:function(d){if(!d)return new Date();var tm=[null,null];if(d.search(' ')!=-1){var tm=d.split(' ')[1].split(':');var d=d.split(' ')[0];}
-if(d.search('-')!=-1){var t=d.split('-');return new Date(t[0],t[1]-1,t[2],tm[0],tm[1]);}else if(d.search('/')!=-1){var t=d.split('/');return new Date(t[0],t[1]-1,t[2],tm[0],tm[1]);}else{return new Date();}},obj_to_str:function(d){return d.getFullYear()+'-'+int_to_str(d.getMonth()+1,2)+'-'+int_to_str(d.getDate(),2);},obj_to_user:function(d){return dateutil.str_to_user(dateutil.obj_to_str(d));},get_diff:function(d1,d2){return((d1-d2)/86400000);},get_day_diff:function(d1,d2){return dateutil.get_diff(new Date(d1.getYear(),d1.getMonth(),d1.getDate(),0,0),new Date(d2.getYear(),d2.getMonth(),d2.getDate(),0,0))},add_days:function(d,days){d.setTime(d.getTime()+(days*24*60*60*1000));return d},add_months:function(d,months){dt=dateutil.str_to_obj(d)
+if(d.search('-')!=-1){var t=d.split('-');return new Date(t[0],t[1]-1,t[2],tm[0],tm[1]);}else if(d.search('/')!=-1){var t=d.split('/');return new Date(t[0],t[1]-1,t[2],tm[0],tm[1]);}else{return new Date();}},obj_to_str:function(d){return d.getFullYear()+'-'+int_to_str(d.getMonth()+1,2)+'-'+int_to_str(d.getDate(),2);},obj_to_user:function(d){return dateutil.str_to_user(dateutil.obj_to_str(d));},get_diff:function(d1,d2){if(typeof d1=='string')d1=dateutil.str_to_obj(d1);if(typeof d2=='string')d2=dateutil.str_to_obj(d2);return((d1-d2)/86400000);},get_day_diff:function(d1,d2){return dateutil.get_diff(new Date(d1.getYear(),d1.getMonth(),d1.getDate(),0,0),new Date(d2.getYear(),d2.getMonth(),d2.getDate(),0,0))},add_days:function(d,days){d.setTime(d.getTime()+(days*24*60*60*1000));return d},add_months:function(d,months){dt=dateutil.str_to_obj(d)
 new_dt=new Date(dt.getFullYear(),dt.getMonth()+months,dt.getDate())
 if(new_dt.getDate()!=dt.getDate()){return dateutil.month_end(new Date(dt.getFullYear(),dt.getMonth()+months,1))}
 return dateutil.obj_to_str(new_dt);},month_start:function(){var d=new Date();return d.getFullYear()+'-'+int_to_str(d.getMonth()+1,2)+'-01';},month_end:function(d){if(!d)var d=new Date();var m=d.getMonth()+1;var y=d.getFullYear();last_date=month_last[m];if(m==2&&(y%4)==0&&((y%100)!=0||(y%400)==0))
@@ -280,13 +498,13 @@
  */
 wn.dom.set_unique_id=function(ele){var id='unique-'+wn.dom.id_count;ele.setAttribute('id',id);wn.dom.id_count++;return id;}
 wn.tinymce={add_simple:function(ele,height){if(ele.myid){tinyMCE.execCommand('mceAddControl',true,ele.myid);return;}
-ele.myid=wn.dom.set_unique_id(ele);$(ele).tinymce({script_url:'lib/js/legacy/tiny_mce_33/tiny_mce.js',height:height?height:'200px',theme:"advanced",theme_advanced_buttons1:"bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,outdent,indent,link,unlink,forecolor,backcolor,code,",theme_advanced_buttons2:"",theme_advanced_buttons3:"",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"left",theme_advanced_path:false,theme_advanced_resizing:false});},remove:function(ele){tinyMCE.execCommand('mceRemoveControl',true,ele.myid);},get_value:function(ele){return tinymce.get(ele.myid).getContent();}}
+ele.myid=wn.dom.set_unique_id(ele);$(ele).tinymce({script_url:'lib/js/lib/tiny_mce_33/tiny_mce.js',height:height?height:'200px',theme:"advanced",theme_advanced_buttons1:"bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,outdent,indent,link,unlink,forecolor,backcolor,code,",theme_advanced_buttons2:"",theme_advanced_buttons3:"",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"left",theme_advanced_path:false,theme_advanced_resizing:false});},remove:function(ele){tinyMCE.execCommand('mceRemoveControl',true,ele.myid);},get_value:function(ele){return tinymce.get(ele.myid).getContent();}}
 wn.ele={link:function(args){var span=$a(args.parent,'span','link_type',args.style);span.loading_img=$a(args.parent,'img','',{margin:'0px 4px -2px 4px',display:'none'});span.loading_img.src='lib/images/ui/button-load.gif';span.innerHTML=args.label;span.user_onclick=args.onclick;span.onclick=function(){if(!this.disabled)this.user_onclick(this);}
 span.set_working=function(){this.disabled=1;$di(this.loading_img);}
 span.done_working=function(){this.disabled=0;$dh(this.loading_img);}
 return span;}}
 function $ln(parent,label,onclick,style){return wn.ele.link({parent:parent,label:label,onclick:onclick,style:style})}
-function $btn(parent,label,onclick,style,css_class,is_ajax){wn.require('lib/js/wn/ui/button.js');if(css_class==='green')css_class='btn-primary';return new wn.ui.Button({parent:parent,label:label,onclick:onclick,style:style,is_ajax:is_ajax,css_class:css_class}).btn;}
+function $btn(parent,label,onclick,style,css_class,is_ajax){if(css_class==='green')css_class='btn-info';return new wn.ui.Button({parent:parent,label:label,onclick:onclick,style:style,is_ajax:is_ajax,css_class:css_class}).btn;}
 $item_normal=function(ele){$y(ele,{padding:'6px 8px',cursor:'pointer',marginRight:'8px',whiteSpace:'nowrap',overflow:'hidden',borderBottom:'1px solid #DDD'});$bg(ele,'#FFF');$fg(ele,'#000');}
 $item_active=function(ele){$bg(ele,'#FE8');$fg(ele,'#000');}
 $item_selected=function(ele){$bg(ele,'#777');$fg(ele,'#FFF');}
@@ -294,6 +512,9 @@
 $.fn.done_working=function(){var ele=this.get(0);ele.disabled=0;if(ele.loading_img){$dh(ele.loading_img)};}})(jQuery);function set_opacity(ele,ieop){var op=ieop/100;if(ele.filters){try{ele.filters.item("DXImageTransform.Microsoft.Alpha").opacity=ieop;}catch(e){ele.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+ieop+')';}}else{ele.style.opacity=op;}}
 $br=function(ele,r,corners){if(corners){var cl=['top-left','top-right','bottom-right','bottom-left'];for(var i=0;i<4;i++){if(corners[i]){$(ele).css('-moz-border-radius-'+cl[i].replace('-',''),r).css('-webkit-'+cl[i]+'-border-radius',r);}}}else{$(ele).css('-moz-border-radius',r).css('-webkit-border-radius',r).css('border-radius',r);}}
 $bs=function(ele,r){$(ele).css('-moz-box-shadow',r).css('-webkit-box-shadow',r).css('box-shadow',r);}
+function SelectWidget(parent,options,width,editable,bg_color){var me=this;this.inp=$a(parent,'select');if(options)add_sel_options(this.inp,options);if(width)$y(this.inp,{width:width});this.set_width=function(w){$y(this.inp,{width:w})};this.set_options=function(o){add_sel_options(this.inp,o);}
+this.inp.onchange=function(){if(me.onchange)me.onchange(this);}
+return;}
 function empty_select(s){if(s.custom_select){s.empty();return;}
 if(s.inp)s=s.inp;if(s){var tmplen=s.length;for(var i=0;i<tmplen;i++)s.options[0]=null;}}
 function sel_val(s){if(s.custom_select){return s.inp.value?s.inp.value:'';}
@@ -323,12 +544,9 @@
 d.style.display=t;}
 function $di(d){if(d&&d.substr)d=$i(d);if(d)d.style.display='inline';}
 function $i(id){if(!id)return null;if(id&&id.appendChild)return id;return document.getElementById(id);}
-function $t(parent,txt){if(parent.substr)parent=$i(parent);return parent.appendChild(document.createTextNode(txt));}
 function $w(e,w){if(e&&e.style&&w)e.style.width=w;}
 function $h(e,h){if(e&&e.style&&h)e.style.height=h;}
 function $bg(e,w){if(e&&e.style&&w)e.style.backgroundColor=w;}
-function $fg(e,w){if(e&&e.style&&w)e.style.color=w;}
-function $op(e,w){if(e&&e.style&&w){set_opacity(e,w);}}
 function $y(ele,s){if(ele&&s){for(var i in s)ele.style[i]=s[i];};return ele;}
 function $yt(tab,r,c,s){var rmin=r;var rmax=r;if(r=='*'){rmin=0;rmax=tab.rows.length-1;}
 if(r.search&&r.search('-')!=-1){r=r.split('-');rmin=cint(r[0]);rmax=cint(r[1]);}
@@ -336,8 +554,7 @@
 if(c.search&&c.search('-')!=-1){c=c.split('-');rmin=cint(c[0]);rmax=cint(c[1]);}
 for(var ri=rmin;ri<=rmax;ri++){for(var ci=cmin;ci<=cmax;ci++)
 $y($td(tab,ri,ci),s);}}
-function set_style(txt){var se=document.createElement('style');se.type="text/css";if(se.styleSheet){se.styleSheet.cssText=txt;}else{se.appendChild(document.createTextNode(txt));}
-document.getElementsByTagName('head')[0].appendChild(se);}
+function set_style(txt){wn.dom.set_style(txt);}
 function make_table(parent,nr,nc,table_width,widths,cell_style,table_style){var t=$a(parent,'table');t.style.borderCollapse='collapse';if(table_width)t.style.width=table_width;if(cell_style)t.cell_style=cell_style;for(var ri=0;ri<nr;ri++){var r=t.insertRow(ri);for(var ci=0;ci<nc;ci++){var c=r.insertCell(ci);if(ri==0&&widths&&widths[ci]){c.style.width=widths[ci];}
 if(cell_style){for(var s in cell_style)c.style[s]=cell_style[s];}}}
 t.append_row=function(){return append_row(this);}
@@ -354,54 +571,26 @@
 function get_scroll_top(){var st=0;if(document.documentElement&&document.documentElement.scrollTop)
 st=document.documentElement.scrollTop;else if(document.body&&document.body.scrollTop)
 st=document.body.scrollTop;return st;}
-function get_cookie(c){var t=""+document.cookie;var ind=t.indexOf(c);if(ind==-1||c=="")return"";var ind1=t.indexOf(';',ind);if(ind1==-1)ind1=t.length;return unescape(t.substring(ind+c.length+1,ind1));}
 wn.urllib={get_arg:function(name){name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(window.location.href);if(results==null)
 return"";else
 return decodeURIComponent(results[1]);},get_dict:function(){var d={}
 var t=window.location.href.split('?')[1];if(!t)return d;if(t.indexOf('#')!=-1)t=t.split('#')[0];if(!t)return d;t=t.split('&');for(var i=0;i<t.length;i++){var a=t[i].split('=');d[decodeURIComponent(a[0])]=decodeURIComponent(a[1]);}
 return d;},get_base_url:function(){var url=window.location.href.split('#')[0].split('?')[0].split('index.cgi')[0];if(url.substr(url.length-1,1)=='/')url=url.substr(0,url.length-1)
 return url},get_file_url:function(file_id){return repl('files/%(fn)s',{fn:file_id})}}
-get_url_arg=wn.urllib.get_arg;get_url_dict=wn.urllib.get_dict;var user_img={}
-var user_img_queue={};var user_img_loading=[];set_user_img=function(img,username,get_latest,img_id){function set_it(i){if(user_img[username]=='no_img_m')
-i.src='lib/images/ui/no_img_m.gif';else if(user_img[username]=='no_img_f')
-i.src='lib/images/ui/no_img_f.gif';else{ac_id=wn.control_panel.account_id;i.src=repl('cgi-bin/getfile.cgi?ac=%(ac)s&name=%(fn)s',{fn:user_img[username],ac:ac_id});}}
-if(img_id){user_img[username]=img_id;set_it(img);return;}
-if(user_img[username]&&!get_latest){set_it(img);}else{if(in_list(user_img_loading,username)){if(!user_img_queue[username])
-user_img_queue[username]=[];user_img_queue[username].push(img);return;}
-$c('webnotes.profile.get_user_img',{username:username},function(r,rt){delete user_img_loading[user_img_loading.indexOf(username)];user_img[username]=r.message;if(user_img_queue[username]){var q=user_img_queue[username];for(var i in q){set_it(q[i]);}}
-set_it(img);},null,1);user_img_loading.push(username);}}
+get_url_arg=wn.urllib.get_arg;get_url_dict=wn.urllib.get_dict;
 /*
  *	lib/js/legacy/utils/handler.js
  */
-var outUrl="index.cgi";var NULL_CHAR='^\5*';function checkResponse(r,on_timeout,no_spinner,freeze_msg){try{if(r.readyState==4&&r.status==200)return true;else return false;}catch(e){msgprint("error:Request timed out, try again");if(on_timeout)
-on_timeout();hide_loading();if(freeze_msg)
-unfreeze();return false;}}
-var pending_req=0;function newHttpReq(){if(!$.browser.msie)
-var r=new XMLHttpRequest();else if(window.ActiveXObject)
-var r=new ActiveXObject("Microsoft.XMLHTTP");return r;}
-function $c(command,args,fn,on_timeout,no_spinner,freeze_msg,btn){var req=newHttpReq();ret_fn=function(){if(checkResponse(req,on_timeout,no_spinner,freeze_msg)){if(btn)$(btn).done_working();if(!no_spinner)
-hide_loading();var rtxt=req.responseText;try{var r=JSON.parse(rtxt);}catch(e){msgprint('Handler Exception:'+rtxt);return;}
-if(freeze_msg)unfreeze();if(!validate_session(r,rtxt))return;if(r.exc){errprint(r.exc);console.log(r.exc);};if(r.server_messages){msgprint(r.server_messages);};if(r.docs){LocalDB.sync(r.docs);}
-saveAllowed=true;if(fn)fn(r,rtxt);}}
-if(btn)$(btn).set_working();req.onreadystatechange=ret_fn;req.open("POST",outUrl,true);req.setRequestHeader("ENCTYPE","multipart/form-data");req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");args['cmd']=command;req.send(makeArgString(args));if(!no_spinner)set_loading();if(freeze_msg)freeze(freeze_msg,1);}
-function validate_session(r,rt){if(r.message=='Logged In'){start_sid=get_cookie('sid');return true;}
-if(start_sid&&start_sid!=get_cookie('sid')&&user&&user!='Guest'){page_body.set_session_changed();return;}
-if(r.exc&&r.session_status=='Session Expired'){resume_session();return;}
-if(r.exc&&r.session_status=='Logged Out'){msgprint('You have been logged out');setTimeout('redirect_to_login()',3000);return;}
-if(r.exc&&r.exc_type&&r.exc_type=='PermissionError'){loadpage('_home');}
-return true;}
-function $c_obj(doclist,method,arg,call_back,no_spinner,freeze_msg,btn){var args={'method':method,'arg':(typeof arg=='string'?arg:JSON.stringify(arg))}
-if(typeof doclist=='string')args.doctype=doclist;else args.docs=compress_doclist(doclist)
-$c('runserverobj',args,call_back,null,no_spinner,freeze_msg,btn);}
-function $c_page(module,page,method,arg,call_back,no_spinner,freeze_msg,btn){if(arg&&!arg.substr)arg=JSON.stringify(arg);$c(module+'.page.'+page+'.'+page+'.'+method,{'arg':arg},call_back,null,no_spinner,freeze_msg,btn);}
-wn.call=function(args){if(!args.args)args.args={};if(args.module&&args.page){$c_page(args.module,args.page,args.method,args.args,args.callback,args.no_spinner,false,args.btn);}else if(args.docs){$c_obj(args.doc,args.method,args.args,args.callback,args.no_spinner,false,args.btn);}else{$c(args.method,args.args,args.callback,false,args.no_spinner,false,args.btn);}}
+function $c(command,args,callback,error,no_spinner,freeze_msg,btn){wn.request.call({args:$.extend(args,{cmd:command}),success:callback,error:error,btn:btn,freeze:freeze_msg,show_spinner:!no_spinner})}
+function $c_obj(doclist,method,arg,callback,no_spinner,freeze_msg,btn){if(arg&&typeof arg!='string')arg=JSON.stringify(arg);args={cmd:'runserverobj',arg:arg,method:method};if(typeof doclist=='string')
+args.doctype=doclist;else
+args.docs=compress_doclist(doclist)
+wn.request.call({args:args,success:callback,btn:btn,freeze:freeze_msg,show_spinner:!no_spinner});}
+function $c_page(module,page,method,arg,callback,no_spinner,freeze_msg,btn){if(arg&&typeof arg!='string')arg=JSON.stringify(arg);wn.request.call({args:{cmd:module+'.page.'+page+'.'+page+'.'+method,arg:arg,method:method},success:callback,btn:btn,freeze:freeze_msg,show_spinner:!no_spinner});}
 function $c_obj_csv(doclist,method,arg){var args={}
 args.cmd='runserverobj';args.as_csv=1;args.method=method;args.arg=arg;if(doclist.substr)
 args.doctype=doclist;else
-args.docs=compress_doclist(doclist);open_url_post(outUrl,args);}
-function my_eval(co){var w=window;if(!w.execScript){if(/Gecko/.test(navigator.userAgent)){eval(co,w);}else{eval.call(w,co);}}else{w.execScript(co);}}
-function makeArgString(dict){var varList=[];for(key in dict){varList[varList.length]=key+'='+encodeURIComponent(dict[key]);}
-return varList.join('&');}
+args.docs=compress_doclist(doclist);open_url_post(wn.request.url,args);}
 function open_url_post(URL,PARAMS,new_window){var temp=document.createElement("form");temp.action=URL;temp.method="POST";temp.style.display="none";if(new_window){temp.target='_blank';}
 for(var x in PARAMS){var opt=document.createElement("textarea");opt.name=x;opt.value=PARAMS[x];temp.appendChild(opt);}
 document.body.appendChild(temp);temp.submit();return temp;}
@@ -438,22 +627,22 @@
  */
 var no_value_fields=['Section Break','Column Break','HTML','Table','FlexTable','Button','Image'];var codeid=0;var code_editors={};function Field(){this.with_label=1;}
 Field.prototype.make_body=function(){var ischk=(this.df.fieldtype=='Check'?1:0);if(this.parent)
-this.wrapper=$a(this.parent,'div');else
-this.wrapper=document.createElement('div');this.label_area=$a(this.wrapper,'div','',{margin:'8px 0px 2px 0px'});if(ischk&&!this.in_grid){this.input_area=$a(this.label_area,'span','',{marginRight:'4px'});this.disp_area=$a(this.label_area,'span','',{marginRight:'4px'});}
-if(this.with_label){this.label_span=$a(this.label_area,'span','field_label')
+this.wrapper=$a(this.parent,(this.with_label?'div':'span'));else
+this.wrapper=document.createElement((this.with_label?'div':'span'));this.label_area=$a(this.wrapper,'div','',{margin:'0px 0px 2px 0px'});if(ischk&&!this.in_grid){this.input_area=$a(this.label_area,'span','',{marginRight:'4px'});this.disp_area=$a(this.label_area,'span','',{marginRight:'4px'});}
+if(this.with_label){this.label_span=$a(this.label_area,'span','small')
 this.label_icon=$a(this.label_area,'img','',{margin:'-3px 4px -3px 4px'});$dh(this.label_icon);this.label_icon.src='lib/images/icons/error.gif';this.label_icon.title='Mandatory value needs to be entered';this.suggest_icon=$a(this.label_area,'img','',{margin:'-3px 4px -3px 0px'});$dh(this.suggest_icon);this.suggest_icon.src='lib/images/icons/bullet_arrow_down.png';this.suggest_icon.title='With suggestions';}else{this.label_span=$a(this.label_area,'span','',{marginRight:'4px'})
 $dh(this.label_area);}
-if(!this.input_area){this.input_area=$a(this.wrapper,'div');this.disp_area=$a(this.wrapper,'div');}
-if(this.in_grid){if(this.label_area)$dh(this.label_area);}else{this.input_area.className='input_area';$y(this.wrapper,{marginBottom:'4px'});this.set_description();}
+if(!this.input_area){this.input_area=$a(this.wrapper,(this.with_label?'div':'span'));this.disp_area=$a(this.wrapper,(this.with_label?'div':'span'));}
+if(this.in_grid){if(this.label_area)$dh(this.label_area);}else{this.input_area.className='input_area';$y(this.wrapper,{marginBottom:'9px'});this.set_description();}
 if(this.onmake)this.onmake();}
 Field.prototype.set_max_width=function(){var no_max=['Code','Text Editor','Text','Table','HTML']
 if(this.wrapper&&this.layout_cell&&this.layout_cell.parentNode.cells&&this.layout_cell.parentNode.cells.length==1&&!in_list(no_max,this.df.fieldtype)){$y(this.wrapper,{paddingRight:'50%'});}}
 Field.prototype.set_label=function(){if(this.with_label&&this.label_area&&this.label!=this.df.label){this.label_span.innerHTML=this.df.label;this.label=this.df.label;}}
-Field.prototype.set_description=function(){if(this.df.description){var p=in_list(['Text Editor','Code','Check'],this.df.fieldtype)?this.label_area:this.wrapper;this.desc_area=$a(p,'div','field_description','',this.df.description)
+Field.prototype.set_description=function(){if(this.df.description){var p=in_list(['Text Editor','Code','Check'],this.df.fieldtype)?this.label_area:this.wrapper;this.desc_area=$a(p,'div','help small','',this.df.description)
 if(in_list(['Text Editor','Code'],this.df.fieldtype))
-$(this.desc_area).addClass('field_description_top');}}
+$(this.desc_area).addClass('help small');}}
 Field.prototype.get_status=function(){if(this.in_filter)this.not_in_form=this.in_filter;if(this.not_in_form){return'Write';}
-var fn=this.df.fieldname?this.df.fieldname:this.df.label;this.df=get_field(this.doctype,fn,this.docname);if(!this.df.permlevel)this.df.permlevel=0;var p=this.perm[this.df.permlevel];var ret;if(cur_frm.editable&&p&&p[WRITE])ret='Write';else if(p&&p[READ])ret='Read';else ret='None';if(this.df.fieldtype=='Binary')
+if(!this.df.permlevel)this.df.permlevel=0;var p=this.perm[this.df.permlevel];var ret;if(cur_frm.editable&&p&&p[WRITE])ret='Write';else if(p&&p[READ])ret='Read';else ret='None';if(this.df.fieldtype=='Binary')
 ret='None';if(cint(this.df.hidden))
 ret='None';if(ret=='Write'&&cint(cur_frm.doc.docstatus)>0)ret='Read';var a_o_s=cint(this.df.allow_on_submit);if(a_o_s&&(this.in_grid||(this.frm&&this.frm.not_in_container))){a_o_s=null;if(this.in_grid)a_o_s=this.grid.field.df.allow_on_submit;if(this.frm&&this.frm.not_in_container){a_o_s=cur_grid.field.df.allow_on_submit;}}
 if(cur_frm.editable&&a_o_s&&cint(cur_frm.doc.docstatus)>0&&!this.df.hidden){tmp_perm=get_perm(cur_frm.doctype,cur_frm.docname,1);if(tmp_perm[this.df.permlevel]&&tmp_perm[this.df.permlevel][WRITE])ret='Write';}
@@ -479,8 +668,7 @@
 Field.prototype.refresh_label_icon=function(){if(this.df.reqd){if(this.get_value&&is_null(this.get_value())){if(this.label_icon)$ds(this.label_icon);$(this.txt?this.txt:this.input).addClass('field-to-update')}else{if(this.label_icon)$dh(this.label_icon);$(this.txt?this.txt:this.input).removeClass('field-to-update')}}}
 Field.prototype.set=function(val){if(this.not_in_form)
 return;if((!this.docname)&&this.grid){this.docname=this.grid.add_newrow();}
-if(in_list(['Data','Text','Small Text','Code'],this.df.fieldtype))
-val=clean_smart_quotes(val);var set_val=val;if(this.validate)set_val=this.validate(val);_f.set_value(this.doctype,this.docname,this.df.fieldname,set_val);this.value=val;}
+var set_val=val;if(this.validate)set_val=this.validate(val);_f.set_value(this.doctype,this.docname,this.df.fieldname,set_val);this.value=val;}
 Field.prototype.set_input=function(val){this.value=val;if(this.input&&this.input.set_input){if(val==null)this.input.set_input('');else this.input.set_input(val);}
 var disp_val=val;if(val==null)disp_val='';this.set_disp(disp_val);}
 Field.prototype.run_trigger=function(){this.refresh_label_icon();if(this.df.reqd&&this.get_value&&!is_null(this.get_value())&&this.set_as_error)
@@ -497,15 +685,15 @@
 if(this.input.focus){try{this.input.focus();}catch(e){}}}
 if(this.txt){try{this.txt.focus();}catch(e){}
 this.txt.field_object=this;}}
-function DataField(){}DataField.prototype=new Field();DataField.prototype.make_input=function(){var me=this;this.input=$a_input(this.input_area,this.df.fieldtype=='Password'?'password':'text');this.get_value=function(){var v=this.input.value;if(this.validate)v=this.validate(v);return v;}
-this.input.name=this.df.fieldname;this.input.onchange=function(){if(!me.last_value)me.last_value='';if(me.validate)
-me.input.value=me.validate(me.input.value);me.set(me.input.value);if(me.format_input)
-me.format_input();if(in_list(['Currency','Float','Int'],me.df.fieldtype)){if(flt(me.last_value)==flt(me.input.value)){me.last_value=me.input.value;return;}}
-me.last_value=me.input.value;me.run_trigger();}
+function DataField(){}DataField.prototype=new Field();DataField.prototype.make_input=function(){var me=this;this.input=$a_input(this.input_area,this.df.fieldtype=='Password'?'password':'text');this.get_value=function(){var v=this.input.value;if(this.validate)
+v=this.validate(v);return v;}
+this.input.name=this.df.fieldname;$(this.input).change(function(){me.set_value($(this).val());});this.set_value=function(val){if(!me.last_value)me.last_value='';if(me.validate){val=me.validate(val);me.input.value=val;}
+me.set(val);if(me.format_input)
+me.format_input();if(in_list(['Currency','Float','Int'],me.df.fieldtype)){if(flt(me.last_value)==flt(val)){me.last_value=val;return;}}
+me.last_value=val;me.run_trigger();}
 this.input.set_input=function(val){if(val==null)val='';me.input.value=val;if(me.format_input)me.format_input();}
-if(this.df.options=='Suggest'){wn.require('lib/js/legacy/widgets/autosuggest.js');if(this.suggest_icon)$di(this.suggest_icon);this.set_get_query=function(){}
-this.get_query=function(doc,dt,dn){return repl('SELECT DISTINCT `%(fieldname)s` FROM `tab%(dt)s` WHERE `%(fieldname)s` LIKE "%s" LIMIT 50',{fieldname:me.df.fieldname,dt:me.df.parent})}
-var opts={script:'',json:true,maxresults:10,link_field:this};this.as=new AutoSuggest(this.input,opts);}}
+if(this.df.options=='Suggest'){if(this.suggest_icon)$di(this.suggest_icon);$(me.input).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':repl('SELECT DISTINCT `%(fieldname)s` FROM \
+       `tab%(dt)s` WHERE `%(fieldname)s` LIKE "%s" LIMIT 50',{fieldname:me.df.fieldname,dt:me.df.parent})},callback:function(r){response(r.results);}});}});}}
 DataField.prototype.validate=function(v){if(this.df.options=='Phone'){if(v+''=='')return'';v1=''
 v=v.replace(/ /g,'').replace(/-/g,'').replace(/\(/g,'').replace(/\)/g,'');if(v&&v.substr(0,1)=='+'){v1='+';v=v.substr(1);}
 if(v&&v.substr(0,2)=='00'){v1+='00';v=v.substr(2);}
@@ -518,7 +706,7 @@
 HTMLField.prototype=new Field();HTMLField.prototype.with_label=0;HTMLField.prototype.set_disp=function(val){this.disp_area.innerHTML=val;}
 HTMLField.prototype.set_input=function(val){if(val)this.set_disp(val);}
 HTMLField.prototype.onrefresh=function(){this.set_disp(this.df.options?this.df.options:'');}
-var datepicker_active=0;function DateField(){}DateField.prototype=new Field();DateField.prototype.make_input=function(){var me=this;this.user_fmt=wn.control_panel.date_format;if(!this.user_fmt)this.user_fmt='dd-mm-yy';this.input=$a(this.input_area,'input');wn.require('lib/css/legacy/jquery-ui.css');$(this.input).datepicker({dateFormat:me.user_fmt.replace('yyyy','yy'),altFormat:'yy-mm-dd',changeYear:true,beforeShow:function(input,inst){datepicker_active=1},onClose:function(dateText,inst){datepicker_active=0;if(_f.cur_grid_cell)
+var datepicker_active=0;function DateField(){}DateField.prototype=new Field();DateField.prototype.make_input=function(){var me=this;this.user_fmt=wn.control_panel.date_format;if(!this.user_fmt)this.user_fmt='dd-mm-yy';this.input=$a(this.input_area,'input');$(this.input).datepicker({dateFormat:me.user_fmt.replace('yyyy','yy'),altFormat:'yy-mm-dd',changeYear:true,beforeShow:function(input,inst){datepicker_active=1},onClose:function(dateText,inst){datepicker_active=0;if(_f.cur_grid_cell)
 _f.cur_grid_cell.grid.cell_deselect();}});var me=this;me.input.onchange=function(){if(this.value==null)this.value='';if(!this.not_in_form)
 me.set(dateutil.user_to_str(me.input.value));me.run_trigger();}
 me.input.set_input=function(val){if(val==null)val='';else val=dateutil.str_to_user(val);me.input.value=val;}
@@ -529,23 +717,27 @@
 var t=v.split('-');if(t.length!=3){return this.clear();}
 else if(cint(t[1])>12||cint(t[1])<1){return this.clear();}
 else if(cint(t[2])>31||cint(t[2])<1){return this.clear();}
-return v;};var _link_onchange_flag=null;function LinkField(){}LinkField.prototype=new Field();LinkField.prototype.make_input=function(){var me=this;if(me.df.no_buttons){this.txt=$a(this.input_area,'input');this.input=this.txt;}else{makeinput_popup(this,'icon-search','icon-play','icon-plus');me.setup_buttons();me.onrefresh=function(){if(me.can_create&&cur_frm.doc.docstatus==0)
+return v;};function LinkField(){}LinkField.prototype=new Field();LinkField.prototype.make_input=function(){var me=this;if(me.df.no_buttons){this.txt=$a(this.input_area,'input');this.input=this.txt;}else{makeinput_popup(this,'icon-search','icon-play','icon-plus');me.setup_buttons();me.onrefresh=function(){if(me.can_create&&cur_frm.doc.docstatus==0)
 $(me.btn2).css('display','inline-block');else $dh(me.btn2);}}
-me.txt.field_object=this;me.set_onchange();me.input.set_input=function(val){if(val==undefined)val='';me.txt.value=val;}
+me.txt.field_object=this;me.input.set_input=function(val){if(val==undefined)val='';me.txt.value=val;}
 me.get_value=function(){return me.txt.value;}
-wn.require('lib/js/legacy/widgets/autosuggest.js');var opts={script:'',json:true,maxresults:10,link_field:me};this.as=new AutoSuggest(me.txt,opts);}
+$(me.txt).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':me.get_custom_query()},callback:function(r){response(r.results);},});},select:function(event,ui){me.set_input_value(ui.item.value);}}).data('autocomplete')._renderItem=function(ul,item){return $('<li></li>').data('item.autocomplete',item).append(repl('<a>%(label)s<br><span style="font-size:10px">%(info)s</span></a>',item)).appendTo(ul);};$(this.txt).change(function(){if(!$(this).val())
+me.set_input_value('');})}
+LinkField.prototype.get_custom_query=function(){this.set_get_query();if(this.get_query){if(cur_frm)
+var doc=locals[cur_frm.doctype][cur_frm.docname];return this.get_query(doc,this.doctype,this.docname);}}
 LinkField.prototype.setup_buttons=function(){var me=this;me.btn.onclick=function(){selector.set(me,me.df.options,me.df.label);selector.show(me.txt);}
 if(me.btn1)me.btn1.onclick=function(){if(me.txt.value&&me.df.options){loaddoc(me.df.options,me.txt.value);}}
 me.can_create=0;if((!me.not_in_form)&&in_list(profile.can_create,me.df.options)){me.can_create=1;me.btn2.onclick=function(){var on_save_callback=function(new_rec){if(new_rec){var d=_f.calling_doc_stack.pop();locals[d[0]][d[1]][me.df.fieldname]=new_rec;me.refresh();if(me.grid)me.grid.refresh();me.run_trigger();}}
 _f.calling_doc_stack.push([me.doctype,me.docname]);new_doc(me.df.options,me.on_new,1,on_save_callback,me.doctype,me.docname,me.frm.not_in_container);}}else{$dh(me.btn2);$y($td(me.tab,0,2),{width:'0px'});}}
-LinkField.prototype.set_onchange=function(){var me=this;me.txt.onchange=function(e){if(cur_autosug)return;if(_link_onchange_flag){return;}
-_link_onchange_flag=1;me.refresh_label_icon();if(me.not_in_form){_link_onchange_flag=0;return;}
-if(cur_frm){if(me.txt.value==locals[me.doctype][me.docname][me.df.fieldname]){me.set(me.txt.value);me.run_trigger();setTimeout('_link_onchange_flag = 0',500);return;}}
-me.set(me.txt.value);if(_f.cur_grid_cell)
-_f.cur_grid_cell.grid.cell_deselect();if(!me.txt.value){me.run_trigger();setTimeout('_link_onchange_flag = 0',500);return;}
+LinkField.prototype.set_input_value=function(val){var me=this;me.refresh_label_icon();if(me.not_in_form){$(this.txt).val(val);return;}
+if(cur_frm){if(val==locals[me.doctype][me.docname][me.df.fieldname]){me.set(val);me.run_trigger();return;}}
+me.set(val);if(_f.cur_grid_cell)
+_f.cur_grid_cell.grid.cell_deselect();if(!val){me.run_trigger();return;}
 var fetch='';if(cur_frm.fetch_dict[me.df.fieldname])
-fetch=cur_frm.fetch_dict[me.df.fieldname].columns.join(', ');$c('webnotes.widgets.form.utils.validate_link',{'value':me.txt.value,'options':me.df.options,'fetch':fetch},function(r,rt){setTimeout('_link_onchange_flag = 0',500);if(selector&&selector.display)return;if(r.message=='Ok'){if(r.fetch_values)me.set_fetch_values(r.fetch_values);me.run_trigger();}else{var astr='';if(in_list(profile.can_create,me.df.options))astr=repl('<br><br><span class="link_type" onclick="newdoc(\'%(dt)s\')">Click here</span> to create a new %(dtl)s',{dt:me.df.options,dtl:get_doctype_label(me.df.options)})
-msgprint(repl('error:<b>%(val)s</b> is not a valid %(dt)s.<br><br>You must first create a new %(dt)s <b>%(val)s</b> and then select its value. To find an existing %(dt)s, click on the magnifying glass next to the field.%(add)s',{val:me.txt.value,dt:get_doctype_label(me.df.options),add:astr}));me.txt.value='';me.set('');}});}}
+fetch=cur_frm.fetch_dict[me.df.fieldname].columns.join(', ');$c('webnotes.widgets.form.utils.validate_link',{'value':val,'options':me.df.options,'fetch':fetch},function(r,rt){if(selector&&selector.display)return;if(r.message=='Ok'){if($(me.txt).val()!=val){me.set_input(val);}
+if(r.fetch_values)
+me.set_fetch_values(r.fetch_values);me.run_trigger();}else{var astr='';if(in_list(profile.can_create,me.df.options))astr=repl('<br><br><span class="link_type" onclick="newdoc(\'%(dt)s\')">Click here</span> to create a new %(dtl)s',{dt:me.df.options,dtl:get_doctype_label(me.df.options)})
+msgprint(repl('error:<b>%(val)s</b> is not a valid %(dt)s.<br><br>You must first create a new %(dt)s <b>%(val)s</b> and then select its value. To find an existing %(dt)s, click on the magnifying glass next to the field.%(add)s',{val:me.txt.value,dt:get_doctype_label(me.df.options),add:astr}));me.txt.value='';me.set('');}});}
 LinkField.prototype.set_fetch_values=function(fetch_values){var fl=cur_frm.fetch_dict[this.df.fieldname].fields;var changed_fields=[];for(var i=0;i<fl.length;i++){if(locals[this.doctype][this.docname][fl[i]]!=fetch_values[i]){locals[this.doctype][this.docname][fl[i]]=fetch_values[i];if(!this.grid){refresh_field(fl[i]);changed_fields.push(fl[i]);}}}
 for(i=0;i<changed_fields.length;i++){if(cur_frm.fields_dict[changed_fields[i]])
 cur_frm.fields_dict[changed_fields[i]].run_trigger();}
@@ -553,7 +745,8 @@
 LinkField.prototype.set_get_query=function(){if(this.get_query)return;if(this.grid){var f=this.grid.get_field(this.df.fieldname);if(f.get_query)this.get_query=f.get_query;}}
 LinkField.prototype.set_disp=function(val){var t=null;if(val)t="<a href=\'javascript:loaddoc(\""+this.df.options+"\", \""+val+"\")\'>"+val+"</a>";this.set_disp_html(t);}
 function IntField(){}IntField.prototype=new DataField();IntField.prototype.validate=function(v){if(isNaN(parseInt(v)))return null;return cint(v);};IntField.prototype.format_input=function(){if(this.input.value==null)this.input.value='';}
-function FloatField(){}FloatField.prototype=new DataField();FloatField.prototype.validate=function(v){var v=parseFloat(v);if(isNaN(v))return null;return v;};FloatField.prototype.format_input=function(){if(this.input.value==null)this.input.value='';}
+function FloatField(){}FloatField.prototype=new DataField();FloatField.prototype.validate=function(v){var v=parseFloat(v);if(isNaN(v))
+return null;return v;};FloatField.prototype.format_input=function(){if(this.input.value==null)this.input.value='';}
 function CurrencyField(){}CurrencyField.prototype=new DataField();CurrencyField.prototype.format_input=function(){var v=fmt_money(this.input.value);if(this.not_in_form){if(!flt(this.input.value))v='';}
 this.input.value=v;}
 CurrencyField.prototype.validate=function(v){if(v==null||v=='')
@@ -575,7 +768,7 @@
 var text_dialog;function make_text_dialog(){var d=new Dialog(520,410,'Edit Text');d.make_body([['Text','Enter Text'],['HTML','Description'],['Button','Update']]);d.widgets['Update'].onclick=function(){var t=this.dialog;t.field.set(t.widgets['Enter Text'].value);t.hide();}
 d.onshow=function(){this.widgets['Enter Text'].style.height='300px';var v=_f.get_value(this.field.doctype,this.field.docname,this.field.df.fieldname);this.widgets['Enter Text'].value=v==null?'':v;this.widgets['Enter Text'].focus();this.widgets['Description'].innerHTML=''
 if(this.field.df.description)
-$a(this.widgets['Description'],'div','field_description','',this.field.df.description);}
+$a(this.widgets['Description'],'div','help small','',this.field.df.description);}
 d.onhide=function(){if(_f.cur_grid_cell)
 _f.cur_grid_cell.grid.cell_deselect();}
 text_dialog=d;}
@@ -644,7 +837,7 @@
  */
 wn.widgets.FieldGroup=function(){this.first_button=false;this.make_fields=function(body,fl){$y(this.body,{padding:'11px'});this.fields_dict={};for(var i=0;i<fl.length;i++){var df=fl[i];var div=$a(body,'div','',{margin:'6px 0px'})
 f=make_field(df,null,div,null);f.not_in_form=1;this.fields_dict[df.fieldname]=f
-f.refresh();if(df.fieldtype=='Button'&&!this.first_button){$(f.input).addClass('btn-primary');this.first_button=true;}}}
+f.refresh();if(df.fieldtype=='Button'&&!this.first_button){$(f.input).addClass('btn-info');this.first_button=true;}}}
 this.get_values=function(){var ret={};var errors=[];for(var key in this.fields_dict){var f=this.fields_dict[key];var v=f.get_value?f.get_value():null;if(f.df.reqd&&!v)
 errors.push(f.df.label+' is mandatory');if(v)ret[f.df.fieldname]=v;}
 if(errors.length){msgprint('<b>Please check the following Errors</b>\n'+errors.join('\n'));return null;}
@@ -662,11 +855,20 @@
 this.set_postion=function(){var d=get_screen_dims();this.wrapper.style.left=((d.w-cint(this.wrapper.style.width))/2)+'px';this.wrapper.style.top=(get_scroll_top()+60)+'px';top_index++;$y(this.wrapper,{zIndex:top_index});}
 this.show=function(){if(this.display)return;this.set_postion()
 $ds(this.wrapper);freeze();this.display=true;cur_dialog=this;if(this.onshow)this.onshow();}
-this.hide=function(){if(this.onhide)this.onhide();unfreeze();$dh(this.wrapper);if(cur_autosug)cur_autosug.clearSuggestions();this.display=false;cur_dialog=null;}
+this.hide=function(){if(this.onhide)this.onhide();unfreeze();$dh(this.wrapper);this.display=false;cur_dialog=null;}
 this.no_cancel=function(){$dh(this.cancel_img);}
 if(opts)this.make();}
 wn.widgets.Dialog.prototype=new wn.widgets.FieldGroup();$(document).bind('keydown',function(e){if(cur_dialog&&!cur_dialog.no_cancel_flag&&e.which==27){cur_dialog.hide();}});
 /*
+ *	lib/js/wn/ui/button.js
+ */
+wn.ui.Button=function(args){var me=this;$.extend(this,{make:function(){me.btn=wn.dom.add(args.parent,'button','btn btn-small '+(args.css_class||''));me.btn.args=args;me.loading_img=wn.dom.add(me.btn.args.parent,'img','',{margin:'0px 4px -2px 4px',display:'none'});me.loading_img.src='lib/images/ui/button-load.gif';if(args.is_ajax)wn.dom.css(me.btn,{marginRight:'24px'});me.btn.innerHTML=args.label;me.btn.user_onclick=args.onclick;$(me.btn).bind('click',function(){if(!this.disabled&&this.user_onclick)
+this.user_onclick(this);})
+me.btn.set_working=me.set_working;me.btn.done_working=me.done_working;if(me.btn.args.style)
+wn.dom.css(me.btn,args.style);},set_working:function(){me.btn.disabled='disabled';if(me.btn.args.is_ajax){$(me.btn).css('margin-right','0px');}
+$(me.loading_img).css('display','inline');},done_working:function(){me.btn.disabled=false;if(me.btn.args.is_ajax){$(me.btn).css('margin-right','24px');}
+$(me.loading_img).toggle(false);}});this.make();}
+/*
  *	lib/js/legacy/widgets/dialog.js
  */
 var cur_dialog;var top_index=91;function Dialog(w,h,title,content){this.make({width:w,title:title});if(content)this.make_body(content);this.onshow='';this.oncancel='';this.no_cancel_flag=0;this.display=false;this.first_button=false;}
@@ -674,7 +876,7 @@
 Dialog.prototype.make_body=function(content){this.rows={};this.widgets={};for(var i in content)this.make_row(content[i]);}
 Dialog.prototype.clear_inputs=function(d){for(var wid in this.widgets){var w=this.widgets[wid];var tn=w.tagName?w.tagName.toLowerCase():'';if(tn=='input'||tn=='textarea'){w.value='';}else if(tn=='select'){sel_val(w.options[0].value);}else if(w.txt){w.txt.value='';}else if(w.input){w.input.value='';}}}
 Dialog.prototype.make_row=function(d){var me=this;this.rows[d[1]]=$a(this.body,'div','dialog_row');var row=this.rows[d[1]];if(d[0]!='HTML'){var t=make_table(row,1,2,'100%',['30%','70%']);row.tab=t;var c1=$td(t,0,0);var c2=$td(t,0,1);if(d[0]!='Check'&&d[0]!='Button')
-$t(c1,d[1]);}
+$(c1).text(d[1]);}
 if(d[0]=='HTML'){if(d[2])row.innerHTML=d[2];this.widgets[d[1]]=row;}
 else if(d[0]=='Check'){var i=$a_input(c2,'checkbox','',{width:'20px'});c1.innerHTML=d[1];this.widgets[d[1]]=i;}
 else if(d[0]=='Data'){c1.innerHTML=d[1];c2.style.overflow='auto';this.widgets[d[1]]=$a_input(c2,'text');if(d[2])$a(c2,'div','field_description').innerHTML=d[2];}
@@ -684,35 +886,102 @@
 else if(d[0]=='Select'){c1.innerHTML=d[1];this.widgets[d[1]]=$a(c2,'select','',{width:'160px'})
 if(d[2])$a(c2,'div','field_description').innerHTML=d[2];if(d[3])add_sel_options(this.widgets[d[1]],d[3],d[3][0]);}
 else if(d[0]=='Text'){c1.innerHTML=d[1];c2.style.overflow='auto';this.widgets[d[1]]=$a(c2,'textarea');if(d[2])$a(c2,'div','field_description').innerHTML=d[2];}
-else if(d[0]=='Button'){c2.style.height='32px';var b=$btn(c2,d[1],function(btn){if(btn._onclick)btn._onclick(me)},null,null,1);b.dialog=me;if(!this.first_button){$(b).addClass('btn-primary');this.first_button=true;}
+else if(d[0]=='Button'){c2.style.height='32px';var b=$btn(c2,d[1],function(btn){if(btn._onclick)btn._onclick(me)},null,null,1);b.dialog=me;if(!this.first_button){$(b).addClass('btn-info');this.first_button=true;}
 if(d[2]){b._onclick=d[2];}
 this.widgets[d[1]]=b;}}
 /*
  *	lib/js/wn/ui/listing.js
  */
-wn.widgets.Listing=function(opts){this.opts=opts;this.page_length=20;this.btns={};this.start=0;var me=this;this.make=function(opts){if(this.opts.parent.jquery)
-this.opts.parent=this.opts.parent.get(0);this.wrapper=$a(this.opts.parent,'div');this.filters_area=$a(this.wrapper,'div','listing-filters');this.toolbar_area=$a(this.wrapper,'div','listing-toolbar');this.results_area=$a(this.wrapper,'div','listing-results');this.more_button_area=$a(this.wrapper,'div','listing-more');this.no_results_area=$a(this.wrapper,'div','help_box',{display:'none'},(this.opts.no_result_message?this.opts.no_result_message:'No results'));if(opts)this.opts=opts;this.page_length=this.opts.page_length?this.opts.page_length:this.page_length;this.make_toolbar();this.make_filters();this.make_more_button();}
-this.make_filters=function(){if(this.opts.filters){$ds(this.filters_area);this.filters=new wn.widgets.FieldGroup(this.filters_area,this.opts.fields);}}
-this.make_toolbar=function(){if(!(this.opts.hide_refresh||this.opts.no_refresh)){if(this.opts.title){$a(this.toolbar_area,'h3','',{display:'inline-block',marginRight:'15px'},this.opts.title);}
-this.ref_img=$a(this.toolbar_area,'span','link_type',{color:'#888'},'[refresh]');this.ref_img.onclick=function(){me.run();}
-this.loading_img=$a(this.toolbar_area,'img','lib/images/ui/button-load.gif',{display:'none',marginLeft:'3px',marginBottom:'-2px'});}
-if(this.opts.new_doctype){this.new_btn=$btn(this.toolbar_area,'New '+get_doctype_label(this.opts.new_doctype),function(){newdoc(me.opts.new_doctype,me.opts.new_doc_onload,me.opts.new_doc_indialog,me.opts.new_doc_onsave);},{marginLeft:'7px'});}}
-this.make_more_button=function(){this.more_btn=$btn(this.more_button_area,'More...',function(){me.more_btn.set_working();me.run(function(){me.more_btn.done_working();},1);},'',0,1);$y(this.more_btn.loading_img,{marginBottom:'0px'});}
-this.clear=function(){this.results_area.innerHTML='';this.table=null;$ds(this.results_area);$dh(this.no_results_area);}
-this.make_results=function(r,rt){if(this.start==0)this.clear();$dh(this.more_button_area);if(this.loading_img)$dh(this.loading_img)
-if(r.message)r.values=r.message;if(r.values&&r.values.length){this.values=r.values;var m=Math.min(r.values.length,this.page_length);for(var i=0;i<m;i++){var row=this.add_row();this.opts.render_row(row,r.values[i],this,i);}
-this.start+=m;if(r.values.length>=this.page_length)$ds(this.more_button_area);}else{if(this.start==0){$dh(this.results_area);$ds(this.no_results_area);}}
-if(this.onrun)this.onrun();if(this.opts.onrun)this.opts.onrun();if(this.opts.callback)this.opts.callback(r);}
-this.add_row=function(){return $a(this.results_area,'div','',(opts.cell_style?opts.cell_style:{padding:'3px 0px'}));}
-this.run=function(callback,append){if(callback)
-this.onrun=callback;if(!append)
-this.start=0;if(!this.opts.method){this.query=this.opts.get_query?this.opts.get_query():this.opts.query;this.add_limits();var args={query_max:this.query_max||this.opts.query_max||'',as_dict:1}
+wn.provide('wn.ui');wn.ui.Listing=Class.extend({init:function(opts){this.opts=opts||{};this.page_length=20;this.start=0;this.data=[];if(opts){this.make();}},prepare_opts:function(){if(this.opts.new_doctype){if(wn.boot.profile.can_read.indexOf(this.opts.new_doctype)==-1){this.opts.new_doctype=null;}else{this.opts.new_doctype=get_doctype_label(this.opts.new_doctype);}}
+if(!this.opts.no_result_message){this.opts.no_result_message='Nothing to show'}},make:function(opts){if(opts){this.opts=opts;}
+this.prepare_opts();$.extend(this,this.opts);$(this.parent).html(repl('\
+   <div class="wnlist">\
+    <h3 class="title hide">%(title)s</h3>\
+    \
+    <div class="list-filters hide">\
+     <div class="show_filters well">\
+      <div>\
+       <button class="btn btn-small add-filter-btn">\
+        <i class="icon-plus"></i> Add Filter</button>\
+      </div>\
+      <div class="filter_area"></div>\
+     </div>\
+    </div>\
+    \
+    <div style="height: 37px; margin-bottom:9px" class="list-toolbar-wrapper">\
+     <div class="list-toolbar btn-group" style="display:inline-block; margin-right: 10px;">\
+      <a class="btn btn-small btn-refresh btn-info">\
+       <i class="icon-refresh icon-white"></i> Refresh</a>\
+      <a class="btn btn-small btn-new">\
+       <i class="icon-plus"></i> New</a>\
+      <a class="btn btn-small btn-filter">\
+       <i class="icon-search"></i> Filter</a>\
+     </div>\
+     <div style="display:inline-block; width: 24px; margin-left: 4px">\
+      <img src="lib/images/ui/button-load.gif" \
+      class="img-load"/></div>\
+    </div><div style="clear:both"></div>\
+    \
+    <div class="no-result help hide">\
+     %(no_result_message)s\
+    </div>\
+    \
+    <div class="result">\
+     <div class="result-list"></div>\
+     <div class="result-grid hide"></div>\
+    </div>\
+    \
+    <div class="paging-button">\
+     <button class="btn btn-small btn-more hide">More...</div>\
+    </div>\
+   </div>\
+  ',this.opts));this.$w=$(this.parent).find('.wnlist');this.set_events();if(this.show_filters){this.make_filters();}},add_button:function(html,onclick,before){$(html).click(onclick).insertBefore(this.$w.find('.list-toolbar '+before));this.btn_groupify();},show_view:function($btn,$div,$btn_unsel,$div_unsel){$btn_unsel.removeClass('btn-info');$btn_unsel.find('i').removeClass('icon-white');$div_unsel.toggle(false);$btn.addClass('btn-info');$btn.find('i').addClass('icon-white');$div.toggle(true);},set_events:function(){var me=this;this.$w.find('.btn-refresh').click(function(){me.run();});this.$w.find('.btn-more').click(function(){me.run({append:true});});if(this.title){this.$w.find('h3').html(this.title).toggle(true);}
+if(this.new_doctype){this.$w.find('.btn-new').toggle(true).click(function(){newdoc(me.new_doctype);})}else{this.$w.find('.btn-new').remove();}
+if(!me.show_filters){this.$w.find('.btn-filter').remove();}
+if(this.hide_refresh||this.no_refresh){this.$w.find('.btn-refresh').remove();}
+this.btn_groupify();},btn_groupify:function(){var nbtns=this.$w.find('.list-toolbar a').length;if(nbtns==0){this.$w.find('.list-toolbar-wrapper').toggle(false);}},make_filters:function(){this.filter_list=new wn.ui.FilterList({listobj:this,$parent:this.$w.find('.list-filters').toggle(true),doctype:this.doctype,filter_fields:this.filter_fields});},clear:function(){this.data=[];this.$w.find('.result-list').empty();this.$w.find('.result').toggle(true);this.$w.find('.no-result').toggle(false);this.start=0;},run:function(){var me=this;var a0=arguments[0];var a1=arguments[1];if(a0&&typeof a0=='function')
+this.onrun=a0;if(a0&&a0.callback)
+this.onrun=a0.callback;if(!a1&&!(a0&&a0.append))
+this.start=0;me.set_working(true);wn.call({method:this.opts.method||'webnotes.widgets.query_builder.runquery',args:this.get_call_args(),callback:function(r){me.set_working(false);me.render_results(r)},no_spinner:this.opts.no_loading});},set_working:function(flag){this.$w.find('.img-load').toggle(flag);},get_call_args:function(){if(!this.method){this.query=this.get_query?this.get_query():this.query;this.add_limits();var args={query_max:this.query_max,as_dict:1}
 args.simple_query=this.query;}else{var args={limit_start:this.start,limit_page_length:this.page_length}}
-if(this.opts.args)
-$.extend(args,this.opts.args)
-if(this.loading_img)$di(this.loading_img);wn.call({method:this.opts.method||'webnotes.widgets.query_builder.runquery',args:args,callback:function(r,rt){me.make_results(r,rt)},no_spinner:this.opts.no_loading,btn:this.opts.run_btn});}
-this.refresh=this.run;this.add_limits=function(){this.query+=' LIMIT '+this.start+','+(this.page_length+1);}
-if(opts)this.make();}
+if(this.args)
+$.extend(args,this.args)
+if(this.get_args){$.extend(args,this.get_args());}
+return args;},render_results:function(r){if(this.start==0)this.clear();this.$w.find('.btn-more').toggle(false);if(r.message)r.values=r.message;if(r.values&&r.values.length){this.data=this.data.concat(r.values);this.render_list(r.values);}else{if(this.start==0){this.$w.find('.result').toggle(false);this.$w.find('.no-result').toggle(true);}}
+if(this.onrun)this.onrun();if(this.callback)this.callback(r);},render_list:function(values){var m=Math.min(values.length,this.page_length);for(var i=0;i<m;i++){this.render_row(this.add_row(),values[i],this,i);}
+this.start+=m;if(values.length>=this.page_length)
+this.$w.find('.btn-more').toggle(true);},add_row:function(){return this.$w.find('.result-list').append('<div class="list-row">').find('.list-row:last').get(0);},refresh:function(){this.run();},add_limits:function(){this.query+=' LIMIT '+this.start+','+(this.page_length+1);}});wn.ui.FilterList=Class.extend({init:function(opts){wn.require('lib/js/legacy/widgets/form/fields.js');$.extend(this,opts);this.filters=[];this.$w=this.$parent;this.set_events();},set_events:function(){var me=this;this.listobj.$w.find('.btn-filter').bind('click',function(){me.$w.find('.show_filters').slideToggle();if(!me.filters.length)
+me.add_filter();});this.$w.find('.add-filter-btn').bind('click',function(){me.add_filter();});},add_filter:function(fieldname,condition,value){this.filters.push(new wn.ui.Filter({flist:this,fieldname:fieldname,condition:condition,value:value}));if(fieldname){this.$w.find('.show_filters').slideDown();}},get_filters:function(){var values=[];$.each(this.filters,function(i,f){if(f.field)
+values.push(f.get_value());})
+return values;},update_filters:function(){var fl=[];$.each(this.filters,function(i,f){if(f.field)fl.push(f);})
+this.filters=fl;},get_filter:function(fieldname){for(var i in this.filters){if(this.filters[i].field.df.fieldname==fieldname)
+return this.filters[i];}}});wn.ui.Filter=Class.extend({init:function(opts){$.extend(this,opts);this.doctype=this.flist.doctype;this.fields_by_name={};this.make();this.make_options();this.set_events();},make:function(){this.flist.$w.find('.filter_area').append('<div class="list_filter">\
+  <select class="fieldname_select"></select>\
+  <select class="condition">\
+   <option value="=">Equals</option>\
+   <option value="like">Like</option>\
+   <option value=">=">Greater or equals</option>\
+   <option value=">=">Less or equals</option>\
+   <option value=">">Greater than</option>\
+   <option value="<">Less than</option>\
+   <option value="in">In</option>\
+   <option value="!=">Not equals</option>\
+  </select>\
+  <span class="filter_field"></span>\
+  <a class="close">&times;</a>\
+  </div>');this.$w=this.flist.$w.find('.list_filter:last-child');this.$select=this.$w.find('.fieldname_select');},make_options:function(){if(this.filter_fields){for(var i in this.filter_fields)
+this.add_field_option(this.filter_fields[i])}else{this.render_field_select();}},set_events:function(){var me=this;this.$w.find('.fieldname_select').bind('change',function(){me.set_field(this.value);});this.$w.find('a.close').bind('click',function(){me.$w.css('display','none');var value=me.field.get_value();me.field=null;if(!me.flist.get_filters().length){me.flist.$w.find('.set_filters').toggle(true);me.flist.$w.find('.show_filters').toggle(false);}
+if(value){me.flist.listobj.run();}
+me.flist.update_filters();return false;});me.$w.find('.condition').change(function(){if($(this).val()=='in'){me.set_field(me.field.df.fieldname,'Data');if(!me.field.desc_area)
+me.field.desc_area=$a(me.field.wrapper,'span','help',null,'values separated by comma');}else{me.set_field(me.field.df.fieldname);}});if(me.fieldname){this.set_values(me.fieldname,me.condition,me.value);}else{me.set_field('name');}},set_values:function(fieldname,condition,value){this.set_field(fieldname);if(condition)this.$w.find('.condition').val(condition).change();if(value)this.field.set_input(value)},render_field_select:function(){var me=this;me.table_fields=[];var std_filters=[{fieldname:'name',fieldtype:'Data',label:'ID',parent:me.doctype},{fieldname:'modified',fieldtype:'Date',label:'Last Modified',parent:me.doctype},{fieldname:'owner',fieldtype:'Data',label:'Created By',parent:me.doctype},{fieldname:'_user_tags',fieldtype:'Data',label:'Tags',parent:me.doctype}];$.each(std_filters.concat(fields_list[me.doctype]),function(i,df){me.add_field_option(df);});$.each(me.table_fields,function(i,table_df){if(table_df.options){$.each(fields_list[table_df.options],function(i,df){me.add_field_option(df);});}})},add_field_option:function(df){var me=this;if(me.doctype&&df.parent==me.doctype){var label=df.label;var table=get_label_doctype(me.doctype);if(df.fieldtype=='Table')me.table_fields.push(df);}else{var label=df.label+' ('+df.parent+')';var table=df.parent;}
+if(wn.model.no_value_type.indexOf(df.fieldtype)==-1&&!me.fields_by_name[df.fieldname]){this.$select.append($('<option>',{value:df.fieldname,table:table}).text(label));me.fields_by_name[df.fieldname]=df;}},set_field:function(fieldname,fieldtype){var me=this;var cur=me.field?{fieldname:me.field.df.fieldname,fieldtype:me.field.df.fieldtype}:{}
+var df=me.fields_by_name[fieldname];this.set_fieldtype(df,fieldtype);if(me.field&&cur.fieldname==fieldname&&df.fieldtype==cur.fieldtype){return;}
+me.$w.find('.fieldname_select').val(fieldname);var field_area=me.$w.find('.filter_field').empty().get(0);f=make_field(df,null,field_area,null,0,1);f.df.single_select=1;f.not_in_form=1;f.with_label=0;f.refresh();me.field=f;this.set_default_condition(df,fieldtype);$(me.field.wrapper).find(':input').keydown(function(ev){if(ev.which==13){me.flist.listobj.run();}})},set_fieldtype:function(df,fieldtype){if(df.original_type)
+df.fieldtype=df.original_type;else
+df.original_type=df.fieldtype;df.description='';df.reqd=0;if(fieldtype){df.fieldtype=fieldtype;return;}
+if(df.fieldtype=='Check'){df.fieldtype='Select';df.options='No\nYes';}else if(['Text','Text Editor','Code','Link'].indexOf(df.fieldtype)!=-1){df.fieldtype='Data';}},set_default_condition:function(df,fieldtype){if(!fieldtype){if(df.fieldtype=='Data'){this.$w.find('.condition').val('like');}else{this.$w.find('.condition').val('=');}}},get_value:function(){var me=this;var val=me.field.get_value();var cond=me.$w.find('.condition').val();if(me.field.df.original_type=='Check'){val=(val=='Yes'?1:0);}
+if(cond=='like'){val=val+'%';}
+return[me.$w.find('.fieldname_select option:selected').attr('table'),me.field.df.fieldname,me.$w.find('.condition').val(),cstr(val)];}});
 /*
  *	lib/js/legacy/widgets/layout.js
  */
@@ -726,13 +995,13 @@
 Layout.prototype.show=function(){$ds(this.wrapper);}
 Layout.prototype.hide=function(){$dh(this.wrapper);}
 Layout.prototype.close_borders=function(){if(this.with_border){this.myrows[this.myrows.length-1].wrapper.style.borderBottom='1px solid #000';}}
-function LayoutRow(layout,parent){this.layout=layout;this.wrapper=$a(parent,'div');this.main_head=$a(this.wrapper,'div');this.main_body=$a(this.wrapper,'div');if(layout.with_border){this.wrapper.style.border='1px solid #000';this.wrapper.style.borderBottom='0px';}
+function LayoutRow(layout,parent){this.layout=layout;this.wrapper=$a(parent,'div','form-layout-row');this.main_head=$a(this.wrapper,'div');this.main_body=$a(this.wrapper,'div');if(layout.with_border){this.wrapper.style.border='1px solid #000';this.wrapper.style.borderBottom='0px';}
 this.header=$a(this.main_body,'div','',{padding:(layout.with_border?'0px 8px':'0px')});this.body=$a(this.main_body,'div');this.table=$a(this.body,'table','',{width:'100%',borderCollapse:'collapse'});this.row=this.table.insertRow(0);this.mycells=[];}
 LayoutRow.prototype.hide=function(){$dh(this.wrapper);}
 LayoutRow.prototype.show=function(){$ds(this.wrapper);}
 LayoutRow.prototype.addCell=function(wid){var lc=new LayoutCell(this.layout,this,wid);this.mycells[this.mycells.length]=lc;return lc;}
 function LayoutCell(layout,layoutRow,width){if(width){var w=width+'';if(w.substr(w.length-2,2)!='px'){if(w.substr(w.length-1,1)!="%"){width=width+'%'};}}
-this.width=width;this.layout=layout;var cidx=layoutRow.row.cells.length;this.cell=layoutRow.row.insertCell(cidx);this.cell.style.verticalAlign='top';this.set_width(layoutRow.row,width);var h=$a(this.cell,'div','',{padding:(layout.with_border?'0px 8px':'0px')});this.wrapper=$a(this.cell,'div','',{padding:(layout.with_border?'8px':'8px 0px')});layout.cur_cell=this.wrapper;layout.cur_cell.header=h;}
+this.width=width;this.layout=layout;var cidx=layoutRow.row.cells.length;this.cell=layoutRow.row.insertCell(cidx);this.cell.style.verticalAlign='top';this.set_width(layoutRow.row,width);var h=$a(this.cell,'div','',{padding:(layout.with_border?'0px 8px':'0px')});this.wrapper=$a(this.cell,'div','',{padding:(layout.with_border?'8px':'0px')});layout.cur_cell=this.wrapper;layout.cur_cell.header=h;}
 LayoutCell.prototype.set_width=function(row,width){var w=100;var n_cells=row.cells.length;var cells_with_no_width=n_cells;if(width){$y(row.cells[n_cells-1],{width:cint(width)+'%'})}else{row.cells[n_cells-1].estimated_width=1;}
 for(var i=0;i<n_cells;i++){if(!row.cells[i].estimated_width){w=w-cint(row.cells[i].style.width);cells_with_no_width--;}}
 for(var i=0;i<n_cells;i++){if(row.cells[i].estimated_width)
@@ -742,48 +1011,16 @@
 /*
  *	lib/js/legacy/webpage/page_header.js
  */
-var def_ph_style={wrapper:{marginBottom:'16px',backgroundColor:'#EEE'},main_heading:{},sub_heading:{marginBottom:'8px',color:'#555',display:'none'},separator:{borderTop:'3px solid #777'},toolbar_area:{padding:'3px 0px',display:'none',borderBottom:'1px solid #AAA'}}
-function PageHeader(parent,main_text,sub_text){this.wrapper=$a(parent,'div','page_header');this.t1=make_table($a(this.wrapper,'div','',def_ph_style.wrapper.backgroundColor),1,2,'100%',[null,'100px'],{padding:'2px'});$y(this.t1,{borderCollapse:'collapse'})
-this.lhs=$td(this.t1,0,0);this.main_head=$a(this.lhs,'h1','',def_ph_style.main_heading);this.sub_head=$a(this.lhs,'h4','',def_ph_style.sub_heading);this.separator=$a(this.wrapper,'div','',def_ph_style.separator);this.toolbar_area=$a(this.wrapper,'div','',def_ph_style.toolbar_area);this.padding_area=$a(this.wrapper,'div','',{padding:'3px'});$y($td(this.t1,0,1),{textAlign:'right',padding:'3px'});this.close_btn=$a($td(this.t1,0,1),'span','close',{},'&times;');this.close_btn.onclick=function(){nav_obj.show_last_open();};if(main_text)this.main_head.innerHTML=main_text;if(sub_text)this.sub_head.innerHTML=sub_text;this.buttons={};this.buttons2={};}
-PageHeader.prototype.add_button=function(label,fn,bold,icon,green){var tb=this.toolbar_area;if(this.buttons[label])return;var btn=$btn(tb,label,fn,{marginRight:'4px'},(green?'btn-primary':''));if(bold)$y(btn,{fontWeight:'bold'});this.buttons[label]=btn;$ds(this.toolbar_area);return btn;}
+var def_ph_style={wrapper:{marginBottom:'16px',backgroundColor:'#EEE'},main_heading:{},sub_heading:{marginBottom:'8px',color:'#555',display:'none'},separator:{borderTop:'1px solid #ddd'},toolbar_area:{padding:'3px 0px',display:'none',borderBottom:'1px solid #ddd'}}
+function PageHeader(parent,main_text,sub_text){this.wrapper=$a(parent,'div','page_header');this.close_btn=$a(this.wrapper,'a','close',{},'&times;');this.close_btn.onclick=function(){window.history.back();};this.breadcrumbs=$a(this.wrapper,'div');this.main_head=$a(this.wrapper,'h1','',def_ph_style.main_heading);this.sub_head=$a(this.wrapper,'h4','',def_ph_style.sub_heading);this.separator=$a(this.wrapper,'div','',def_ph_style.separator);this.toolbar_area=$a(this.wrapper,'div','',def_ph_style.toolbar_area);this.padding_area=$a(this.wrapper,'div','',{padding:'3px'});if(main_text)this.main_head.innerHTML=main_text;if(sub_text)this.sub_head.innerHTML=sub_text;this.buttons={};this.buttons2={};}
+PageHeader.prototype.add_button=function(label,fn,bold,icon,green){var tb=this.toolbar_area;if(this.buttons[label])return;iconhtml=icon?('<i class="'+icon+'"></i> '):'';var $button=$('<button class="btn btn-small">'+iconhtml+label+'</button>').click(fn).appendTo(tb);if(green){$button.addClass('btn-info');$button.find('i').addClass('icon-white');}
+if(bold)$button.css('font-weight','bold');this.buttons[label]=$button.get(0);$ds(this.toolbar_area);return this.buttons[label];}
 PageHeader.prototype.clear_toolbar=function(){this.toolbar_area.innerHTML='';this.buttons={};}
 PageHeader.prototype.make_buttonset=function(){$(this.toolbar_area).buttonset();}
 /*
- *	lib/js/legacy/widgets/select.js
- */
-function SelectWidget(parent,options,width,editable,bg_color){var me=this;this.inp=$a(parent,'select');if(options)add_sel_options(this.inp,options);if(width)$y(this.inp,{width:width});this.set_width=function(w){$y(this.inp,{width:w})};this.set_options=function(o){add_sel_options(this.inp,o);}
-this.inp.onchange=function(){if(me.onchange)me.onchange(this);}
-return;}
-/*
- *	lib/js/legacy/webpage/history.js
- */
-var nav_obj={}
-nav_obj.observers=[];nav_obj.add_observer=function(o){nav_obj.observers.push(o);}
-nav_obj.ol=[];nav_obj.open_notify=function(t,dt,dn,no_history){if(nav_obj.ol.length){var tmp=nav_obj.ol[nav_obj.ol.length-1];if(tmp&&tmp[0]==t&&tmp[1]==dt&&tmp[2]==dn)return;}
-if(!no_history){var tmp=[];for(var i in nav_obj.ol)
-if(!(nav_obj.ol[i][0]==t&&nav_obj.ol[i][1]==dt&&nav_obj.ol[i][2]==dn))tmp.push(nav_obj.ol[i]);nav_obj.ol=tmp;nav_obj.ol.push([t,dt,dn])
-en_t=encodeURIComponent(t);en_dt=encodeURIComponent(dt);en_dn=dn?encodeURIComponent(dn):'';if(en_t=='Page'){var id=en_dt+(dn?('/'+en_dn):'')}else{var id=en_t+'/'+en_dt+(dn?('/'+en_dn):'')}
-if(nav_obj.on_open)
-nav_obj.on_open(id);if(window.location.hash!='!'+id){window.location.hash='!'+id;}}
-nav_obj.notify_observers(t,dt,dn);if(wn.boot.analytics_code){try{eval(wn.boot.analytics_code);}catch(e){console.log(e);}}}
-nav_obj.notify_observers=function(t,dt,dn){for(var i=0;i<nav_obj.observers.length;i++){var o=nav_obj.observers[i];if(o&&o.notify)o.notify(t,dt,dn);}}
-nav_obj.rename_notify=function(dt,oldn,newn){for(var i=0;i<nav_obj.ol.length;i++){var o=nav_obj.ol[i];if(o[1]==dt&&o[2]==oldn)o[2]=newn;}}
-nav_obj.show_last_open=function(){var l=nav_obj.ol[nav_obj.ol.length-2];delete nav_obj.ol[nav_obj.ol.length-1];if(!l)loadpage('_home');else if(l[0]=='Page'){loadpage(l[1]);}else if(l[0]=='Report'){loadreport(l[1],l[2]);}else if(l[0]=='Form'){loaddoc(l[1],l[2]);}else if(l[0]=='DocBrowser'||l[0]=='List'){loaddocbrowser(l[1]);}}
-var _history_current;function history_get_name(t){var parts=[];if(t.length>=3){for(var i=2;i<t.length;i++){parts.push(t[i]);}}
-return parts.join('/')}
-nav_obj.get_page=function(loc){if(!loc)loc=window.location.hash;if(loc.substr(0,1)=='#'){loc=loc.substr(1);}
-if(loc.substr(0,1)=='!'){loc=loc.substr(1);}
-if(!in_list(['Page/','Form/','Repor','DocBr','List/'],loc.substr(0,5))){loc='Page/'+loc;}
-return loc.split('/');}
-function historyChange(newLocation){var t=nav_obj.get_page(newLocation)
-for(var i=0;i<t.length;i++)
-t[i]=decodeURIComponent(t[i]);if(nav_obj.ol.length){var c=nav_obj.ol[nav_obj.ol.length-1];if(t.length==2){if(c[0]==t[0]&&c[1]==t[1])return;}else{if(c[0]==t[0]&&c[1]==t[1]&&c[2]==t[2])return;}}
-if(t[2])
-var docname=history_get_name(t);if(t[0]=='Form'){_history_current=newLocation;if(docname.substr(0,3)=='New'&&!(locals[t[1]]&&locals[t[1]][docname])){newdoc(t[1]);}else{loaddoc(t[1],docname);}}else if(t[0]=='Report'){_history_current=newLocation;loadreport(t[1],docname);}else if(t[0]=='Page'){_history_current=newLocation;loadpage(t[1]);}else if(t[0]=='Application'){_history_current=newLocation;loadapp(t[1]);}else if(t[0]=='DocBrowser'||t[0]=='List'){_history_current=newLocation;loaddocbrowser(t[1]);}};$(window).bind('hashchange',function(){historyChange(location.hash);});
-/*
  *	lib/js/legacy/webpage/search.js
  */
-search_fields={};function setlinkvalue(name){selector.input.set_input(name);selector.hide();}
+search_fields={};function setlinkvalue(name){selector.input.set_input_value(name);selector.hide();}
 function makeselector(){var d=new Dialog(540,440,'Search');d.make_body([['Data','Beginning With','Tip: You can use wildcard "%"'],['Select','Search By'],['Button','Search'],['HTML','Help'],['HTML','Result']]);var inp=d.widgets['Beginning With'];var field_sel=d.widgets['Search By'];var btn=d.widgets['Search'];d.sel_type='';d.values_len=0;d.set=function(input,type,label){d.sel_type=type;d.input=input;if(d.style!='Link'){d.rows['Result'].innerHTML='';d.values_len=0;}
 d.style='Link';d.set_query_description()
 if(!d.sel_type)d.sel_type='Value';d.set_title('Select a "'+d.sel_type+'" for field "'+label+'"');}
@@ -797,8 +1034,7 @@
 try{inp.focus();}catch(e){}
 if(d.input)d.input.set_get_query();var get_sf_list=function(dt){var l=[];var lf=search_fields[dt];for(var i=0;i<lf.length;i++)l.push(lf[i][1]);return l;}
 $ds(d.rows['Search By']);if(search_fields[d.sel_type]){empty_select(field_sel);add_sel_options(field_sel,get_sf_list(d.sel_type),'ID');}else{empty_select(field_sel);add_sel_options(field_sel,['ID'],'ID');$c('webnotes.widgets.search.getsearchfields',{'doctype':d.sel_type},function(r,rt){search_fields[d.sel_type]=r.searchfields;empty_select(field_sel);add_sel_options(field_sel,get_sf_list(d.sel_type));field_sel.selectedIndex=0;});}}
-d.onhide=function(){if(d.input&&d.input.txt)
-d.input.txt.onchange()}
+d.onhide=function(){}
 btn.onclick=function(){if(this.disabled)return;this.args.is_ajax=true;this.set_working();d.set_doctype=d.sel_type;var q='';args={};if(d.input&&d.input.get_query){var doc={};args.is_simple=1;if(cur_frm)doc=locals[cur_frm.doctype][cur_frm.docname];var q=d.input.get_query(doc,d.input.doctype,d.input.docname);if(!q){return'';}}
 var get_sf_fieldname=function(v){var lf=search_fields[d.sel_type];if(!lf)
 return'name'
@@ -816,92 +1052,58 @@
 /*
  *	lib/js/legacy/webpage/spinner.js
  */
-function set_loading(){pending_req++;$('#spinner').css('visibility','visible');$('body').css('cursor','progress');}
+var pending_req=0;var fcount=0;var dialog_back;function set_loading(){pending_req++;$('#spinner').css('visibility','visible');$('body').css('cursor','progress');}
 function hide_loading(){pending_req--;if(!pending_req){$('body').css('cursor','default');$('#spinner').css('visibility','hidden');}}
-/*
- *	lib/js/legacy/webpage/freeze_page.js
- */
-var fcount=0;var frozen=0;var dialog_message;var dialog_back;function freeze(msg,do_freeze){if(!dialog_back){dialog_back=$a($i('body_div'),'div','dialog_back');$(dialog_back).css('opacity',0.6);}
-$ds(dialog_back);fcount++;frozen=1;}
-function unfreeze(){if(dialog_message)
-$dh(dialog_message);if(!fcount)return;fcount--;if(!fcount){$dh(dialog_back);frozen=0;}}
+function freeze(){if(!dialog_back){dialog_back=$a($i('body_div'),'div','dialog_back');$(dialog_back).css('opacity',0.6);}
+$ds(dialog_back);fcount++;}
+function unfreeze(){if(!fcount)return;fcount--;if(!fcount){$dh(dialog_back);}}
 /*
  *	lib/js/legacy/webpage/error_console.js
  */
 var err_console;var err_list=[];function errprint(t){if(!err_list)err_list=[];err_list.push('<pre style="font-family: Courier, Fixed; font-size: 11px; \
   border-bottom: 1px solid #AAA; overflow: auto; width: 90%;">'+t+'</pre>');}
-function setup_err_console(){err_console=new Dialog(640,480,'Error Console')
+$(document).bind('startup',function(){err_console=new Dialog(640,480,'Error Console')
 err_console.make_body([['HTML','Error List'],['Button','Clear'],['HTML','Error Report']]);var span=$a(err_console.widgets['Error Report'],'span','link_type');span.innerHTML='Send Error Report';span.onclick=function(){msg=prompt('How / where did you get the error [optional]')
 var call_back=function(r,rt){err_console.hide();msgprint("Error Report Sent")}
 $c('webnotes.utils.send_error_report',{'err_msg':err_console.rows['Error List'].innerHTML,'msg':msg},call_back);}
 err_console.widgets['Clear'].onclick=function(){err_list=[];err_console.rows['Error List'].innerHTML='';err_console.hide();}
 err_console.onshow=function(){err_console.rows['Error List'].innerHTML='<div style="padding: 16px; height: 360px; width: 90%; overflow: auto;">'
-+err_list.join('<div style="height: 10px; margin-bottom: 10px; border-bottom: 1px solid #AAA"></div>')+'</div>';}}
-startup_list.push(setup_err_console);
++err_list.join('<div style="height: 10px; margin-bottom: 10px; border-bottom: 1px solid #AAA"></div>')+'</div>';}});
 /*
  *	lib/js/legacy/webpage/loaders.js
  */
-function loadreport(dt,rep_name,onload,menuitem,reset_report){wn.require('lib/js/legacy/report.compressed.js');dt=get_label_doctype(dt);var show_report_builder=function(){if(!_r.rb_con){_r.rb_con=new _r.ReportContainer();}
-_r.rb_con.set_dt(dt,function(rb){if(rep_name){var t=rb.current_loaded;rb.load_criteria(rep_name);if(onload)
-onload(rb);if((rb.dt)&&(!rb.dt.has_data()||rb.current_loaded!=t))
-rb.dt.run();}else{if(reset_report){rb.reset_report();}}
-if(!rb.forbidden){page_body.change_to('Report Builder');nav_obj.open_notify('Report',dt,rep_name);}});}
-show_report_builder();}
-var load_doc=loaddoc;function loaddoc(doctype,name,onload,menuitem,from_archive){doctype=get_label_doctype(doctype);if(frms['DocType']&&frms['DocType'].opendocs[doctype]){msgprint("Cannot open an instance of \""+doctype+"\" when the DocType is open.");return;}
-if(doctype=='DocType'&&frms[name]){msgprint("Cannot open DocType \""+name+"\" when its instance is open.");return;}
-var show_form=function(f){if(!_f.frm_con){_f.frm_con=new _f.FrmContainer();}
-if(!frms[doctype]){_f.add_frm(doctype,show_doc,name,from_archive);}else if(LocalDB.is_doc_loaded(doctype,name)){show_doc();}else{$c('webnotes.widgets.form.load.getdoc',{'name':name,'doctype':doctype,'user':user,'from_archive':(from_archive?1:0)},show_doc,null,null);}}
-var show_doc=function(r,rt){if(locals[doctype]&&locals[doctype][name]){var frm=frms[doctype];frm.refresh(name);if(!frm.in_dialog)
-nav_obj.open_notify('Form',doctype,name);if(onload)onload();}else{if(r.exc){msgprint('There were errors while loading '+doctype+' '+name);}
-loadpage('_home');}}
-show_form();}
-function new_doc(doctype,onload,in_dialog,on_save_callback,cdt,cdn,cnic){doctype=get_label_doctype(doctype);if(!doctype){if(cur_frm)doctype=cur_frm.doctype;else return;}
-var show_doc=function(){frm=frms[doctype];if(frm.perm[0][CREATE]==1){if(frm.meta.issingle){var dn=doctype;LocalDB.set_default_values(locals[doctype][doctype]);}else
-var dn=LocalDB.create(doctype);if(onload)onload(dn);if(frm.in_dialog){var fd=_f.frm_dialog;fd.cdt=cdt;fd.cdn=cdn;fd.cnic=cnic;fd.on_save_callback=on_save_callback;}else{nav_obj.open_notify('Form',doctype,dn);}
-frm.refresh(dn);}else{msgprint('error:Not Allowed To Create '+doctype+'\nContact your Admin for help');}}
-var show_form=function(){if(!_f.frm_con){_f.frm_con=new _f.FrmContainer();}
-if(!frms[doctype])
-_f.add_frm(doctype,show_doc);else
-show_doc(frms[doctype]);}
-show_form();}
-var newdoc=new_doc;var pscript={};var cur_page;function loadpage(page_name,call_back,no_history){if(!page_name)return;if(page_name=='_home')
-page_name=home_page;var fn=function(r,rt){if(wn.pages[page_name]){var p=wn.pages[page_name]
-page_body.change_to(page_name);}else{var p=render_page(page_name);if(!p)return;}
-cur_page=page_name;if(call_back)call_back();scroll(0,0);pscript.update_page_history(page_name,no_history)
-try{if(pscript['refresh_'+page_name])pscript['refresh_'+page_name]();}catch(e){console.log(e);}}
-if(get_local('Page',page_name)||wn.pages[page_name])
-fn();else{args=get_url_dict();args.name=page_name;$c('webnotes.widgets.page.getpage',args,fn);}}
-pscript.update_page_history=function(page_name,no_history){var arg=null;var t=null;if(window.location.hash){var t=nav_obj.get_page(window.location.hash)}else if(get_url_arg('page')){var t=nav_obj.get_page(get_url_arg('page'))}
-if(t&&t[1]==page_name)arg=t[2];nav_obj.open_notify('Page',page_name,arg,no_history);}
-function loadscript(src,call_back){set_loading();var script=$a('head','script');script.type='text/javascript';script.src=src;script.onload=function(){if(call_back)call_back();hide_loading();}
-script.onreadystatechange=function(){if(this.readyState=='complete'||this.readyState=='loaded'){hide_loading();call_back();}}}
-var doc_browser_page;function loaddocbrowser(dt,label,fields){wn.require('lib/js/legacy/webpage/docbrowser.js');dt=get_label_doctype(dt);if(!doc_browser_page)
-doc_browser_page=new ItemBrowserPage();doc_browser_page.show(dt,label,fields);nav_obj.open_notify('List',dt,'');}
+function loadreport(dt,rep_name,onload){if(rep_name)
+wn.set_route('Report',dt,rep_name);else
+wn.set_route('Report',dt);}
+function loaddoc(doctype,name,onload){doctype=get_label_doctype(doctype);wn.model.with_doctype(doctype,function(){if(locals.DocType[doctype].in_dialog){console.log(1)
+_f.edit_record(doctype,name);}else{wn.set_route('Form',doctype,name);}})}
+var load_doc=loaddoc;function new_doc(doctype,onload,in_dialog,on_save_callback,cdt,cdn,cnic){doctype=get_label_doctype(doctype);wn.model.with_doctype(doctype,function(){if(locals.DocType[doctype].in_dialog){_f.edit_record(doctype,'New '+doctype);}else{wn.set_route('Form',doctype,'New '+doctype);}})}
+var newdoc=new_doc;var pscript={};function loadpage(page_name,call_back,no_history){wn.set_route(page_name);}
+function loaddocbrowser(dt){wn.set_route('List',dt);}
 /*
  *	lib/js/legacy/webpage/uploader.js
  */
 var uploaders={};var upload_frame_count=0;Uploader=function(parent,args,callback){var id='frame'+upload_frame_count;upload_frame_count++;this.callback=callback;var div=$a(parent,'div');div.innerHTML='<iframe id="'+id+'" name="'+id+'" src="blank.html" \
-  style="width:0px; height:0px; border:0px"></iframe>';var div=$a(parent,'div');div.innerHTML='<form method="POST" enctype="multipart/form-data" action="'+outUrl+'" target="'+id+'"></form>';var ul_form=div.childNodes[0];var f_list=[];var inp_fdata=$a_input($a(ul_form,'span'),'file',{name:'filedata'},{marginLeft:'7px'});if(!('cmd'in args)){var inp=$a_input($a(ul_form,'span'),'hidden',{name:'cmd'});inp.value='uploadfile';}
+  style="width:0px; height:0px; border:0px"></iframe>';var div=$a(parent,'div');div.innerHTML='<form method="POST" enctype="multipart/form-data" action="'+wn.request.url+'" target="'+id+'"></form>';var ul_form=div.childNodes[0];var f_list=[];var inp_fdata=$a_input($a(ul_form,'span'),'file',{name:'filedata'},{marginLeft:'7px'});if(!('cmd'in args)){var inp=$a_input($a(ul_form,'span'),'hidden',{name:'cmd'});inp.value='uploadfile';}
 var inp=$a_input($a(ul_form,'span'),'hidden',{name:'uploader_id'});inp.value=id;var inp=$a_input($a(ul_form,'span'),'submit',null,{marginLeft:'7px'});inp.value='Upload';$y(inp,{width:'80px'});for(var key in args){var inp=$a_input($a(ul_form,'span'),'hidden',{name:key});inp.value=args[key];}
 uploaders[id]=this;}
 function upload_callback(id,fid){uploaders[id].callback(fid);}
 /*
  *	lib/js/legacy/webpage/page.js
  */
-var stylesheets=[];function Page(page_name,content){var me=this;this.name=page_name;this.trigger=function(event){try{if(pscript[event+'_'+this.name])
+function Page(page_name,content){var me=this;this.name=page_name;this.trigger=function(event){try{if(pscript[event+'_'+this.name])
 pscript[event+'_'+this.name](me.wrapper);if(me.wrapper[event]){me.wrapper[event](me.wrapper);}}catch(e){console.log(e);}}
 this.page_show=function(){set_title(me.doc.title?me.doc.title:me.name);if(!me.onload_complete){me.trigger('onload');me.onload_complete=true;}
 me.trigger('onshow');cur_frm=null;}
-this.wrapper=page_body.add_page(page_name,this.page_show);this.cont=this.wrapper
+this.wrapper=wn.container.add_page(page_name,this.page_show);this.cont=this.wrapper
 if(content)
 this.wrapper.innerHTML=content;return this;}
 function render_page(page_name,menuitem){if(!page_name)return;if((!locals['Page'])||(!locals['Page'][page_name])){loadpage('_home');return;}
 var pdoc=locals['Page'][page_name];if(pdoc.style)set_style(pdoc.style)
-if(pdoc.stylesheet){set_style(locals.Stylesheet[pdoc.stylesheet].stylesheet);stylesheets.push(pdoc.stylesheet);}
 var p=new Page(page_name,pdoc._Page__content?pdoc._Page__content:pdoc.content);var script=pdoc.__script?pdoc.__script:pdoc.script;p.doc=pdoc;if(script){eval(script);}
-page_body.change_to(page_name);return p;}
+wn.container.change_to(page_name);return p;}
 function refresh_page(page_name){var fn=function(r,rt){render_page(page_name)}
-$c('webnotes.widgets.page.getpage',{'name':page_name,stylesheets:JSON.stringify(stylesheets)},fn);}
+$c('webnotes.widgets.page.getpage',{'name':page_name},fn);}
 /*
  *	lib/js/legacy/wn/page_layout.js
  */
@@ -927,14 +1129,11 @@
 d.name=LocalDB.get_localname(d.doctype);LocalDB.add(d.doctype,d.name);locals[d.doctype][d.name]=d;if(d.doctype=='DocType'){fields_list[d.name]=[];}else if(d.doctype=='DocField'){if(!d.parent){alert('Error: No parent specified for field "'+d.label+'"');}
 if(!fields_list[d.parent])fields_list[d.parent]=[];fields_list[d.parent][fields_list[d.parent].length]=d;if(!fields[d.parent])
 fields[d.parent]={};if(d.fieldname){fields[d.parent][d.fieldname]=d;}else if(d.label){fields[d.parent][d.label]=d;}}
-if(d.localname)
-notify_rename_observers(d.doctype,d.localname,d.name);}}
+if(d.localname){wn.model.new_names[d.localname]=d.name;$(document).trigger('rename',[d.doctype,d.localname,d.name]);delete locals[d.doctype][d.localname];}}}
 local_name_idx={};LocalDB.get_localname=function(doctype){if(!local_name_idx[doctype])local_name_idx[doctype]=1;var n='New '+get_doctype_label(doctype)+' '+local_name_idx[doctype];local_name_idx[doctype]++;return n;}
 LocalDB.set_default_values=function(doc){var doctype=doc.doctype;var docfields=fields_list[doctype];if(!docfields){return;}
 var fields_to_refresh=[];for(var fid=0;fid<docfields.length;fid++){var f=docfields[fid];if(!in_list(no_value_fields,f.fieldtype)&&doc[f.fieldname]==null){var v=LocalDB.get_default_value(f.fieldname,f.fieldtype,f['default']);if(v){doc[f.fieldname]=v;fields_to_refresh.push(f.fieldname);}}}
 return fields_to_refresh;}
-LocalDB.is_doc_loaded=function(dt,dn){var exists=false;if(locals[dt]&&locals[dt][dn])exists=true;if(exists&&dt=='DocType'&&!locals[dt][dn].__islocal&&!frms[dt])
-exists=false;return exists;}
 function check_perm_match(p,dt,dn){if(!dn)return true;var out=false;if(p.match){if(user_defaults[p.match]){for(var i=0;i<user_defaults[p.match].length;i++){if(user_defaults[p.match][i]==locals[dt][dn][p.match]){return true;}}
 return false;}else if(!locals[dt][dn][p.match]){return true;}else{return false;}}else{return true;}}
 function get_perm(doctype,dn,ignore_submit){var perm=[[0,0],];if(in_list(user_roles,'Administrator'))perm[0][READ]=1;var plist=getchildren('DocPerm',doctype,'permissions','DocType');for(var pidx in plist){var p=plist[pidx];var pl=cint(p.permlevel?p.permlevel:0);if(in_list(user_roles,p.role)){if(check_perm_match(p,doctype,dn)){if(!perm[pl])perm[pl]=[];if(!perm[pl][READ]){if(cint(p.read))perm[pl][READ]=1;else perm[pl][READ]=0;}
@@ -963,9 +1162,6 @@
 return locals[dt][newdoc];}
 function make_doclist(dt,dn,deleted){var dl=[];dl[0]=locals[dt][dn];for(var ndt in locals){if(locals[ndt]){for(var ndn in locals[ndt]){var doc=locals[ndt][ndn];if(doc&&doc.parenttype==dt&&(doc.parent==dn||(deleted&&doc.__oldparent==dn))){dl[dl.length]=doc;}}}}
 return dl;}
-var rename_observers=[];function notify_rename_observers(dt,old_name,new_name){try{delete locals[dt][old_name];}catch(e){alert("[rename_from_local] No Document for: "+old_name);}
-for(var i=0;i<rename_observers.length;i++){if(rename_observers[i])
-rename_observers[i].rename_notify(dt,old_name,new_name);}}
 var Meta={};var local_dt={};Meta.make_local_dt=function(dt,dn){var dl=make_doclist('DocType',dt);if(!local_dt[dt])local_dt[dt]={};if(!local_dt[dt][dn])local_dt[dt][dn]={};for(var i=0;i<dl.length;i++){var d=dl[i];if(d.doctype=='DocField'){var key=d.fieldname?d.fieldname:d.label;local_dt[dt][dn][key]=copy_dict(d);}}}
 Meta.get_field=function(dt,fn,dn){if(dn&&local_dt[dt]&&local_dt[dt][dn]){return local_dt[dt][dn][fn];}else{if(fields[dt])var d=fields[dt][fn];if(d)return d;}
 return{};}
@@ -993,7 +1189,6 @@
 return obj;}
 function save_doclist(dt,dn,save_action,onsave,onerr){var doc=locals[dt][dn];var doctype=locals['DocType'][dt];var tmplist=[];var doclist=make_doclist(dt,dn,1);var all_clear=true;if(save_action!='Cancel'){for(var n in doclist){var tmp=check_required(doclist[n].doctype,doclist[n].name,doclist[0].doctype);if(doclist[n].docstatus+''!='2'&&all_clear)
 all_clear=tmp;}}
-var f=frms[dt];if(f&&!all_clear){if(f)f.savingflag=false;return'Error';}
 var _save=function(){$c('webnotes.widgets.form.save.savedocs',{'docs':compress_doclist(doclist),'docname':dn,'action':save_action,'user':user},function(r,rtxt){if(f){f.savingflag=false;}
 if(r.saved){if(onsave)onsave(r);}else{if(onerr)onerr(r);}},function(){if(f){f.savingflag=false;}},0,(f?'Saving...':''));}
 if(doc.__islocal&&(doctype&&doctype.autoname&&doctype.autoname.toLowerCase()=='prompt')){var newname=prompt('Enter the name of the new '+dt,'');if(newname){doc.__newname=strip(newname);_save();}else{msgprint('Not Saved');onerr();}}else{_save();}}
@@ -1002,34 +1197,18 @@
 if(errfld.length)msgprint('<b>Mandatory fields required in '+
 (doc.parenttype?(fields[doc.parenttype][doc.parentfield].label+' (Table)'):get_doctype_label(doc.doctype))+':</b>\n'+errfld.join('\n'));return all_clear;}
 /*
- *	lib/js/legacy/webpage/body.js
- */
-wn.provide('wn.pages');function Body(){this.left_sidebar=null;this.right_sidebar=null;this.status_area=null;var me=this;page_body=this;this.ready=function(){$dh('startup_div');$ds('body_div');}
-this.setup_page_areas=function(){this.center=this.body;this.center.header=$a(this.center,'div');this.center.body=$a(this.center,'div');this.center.loading=$a(this.center,'div','',{margin:'200px 0px',fontSize:'14px',color:'#999',textAlign:'center'});this.center.loading.innerHTML='Loading...'}
-this.run_startup_code=function(){$(document).trigger('startup');try{if(this.cp.custom_startup_code)
-eval(this.cp.custom_startup_code);}catch(e){errprint(e);}}
-this.setup=function(){this.cp=wn.control_panel;this.wrapper=$a($i('body_div'),'div');this.body=$a(this.wrapper,'div');this.setup_page_areas();if(user=='Guest')user_defaults.hide_webnotes_toolbar=1;if(!cint(user_defaults.hide_webnotes_toolbar)||user=='Administrator'){this.wntoolbar=new wn.ui.toolbar.Toolbar();}
-if(this.cp.page_width)
-$y(this.wrapper,{width:cint(this.cp.page_width)+'px'});}
-this.cur_page=null;this.add_page=function(label,onshow,onhide){var c=$a(this.center.body,'div');if(onshow)
-c.page_show=onshow;if(onhide)
-c.page_hide=onhide;wn.pages[label]=c;$dh(c);return c;}
-this.change_to=function(label){$dh(this.center.loading);if(me.cur_page&&wn.pages[label]!=me.cur_page){if(me.cur_page.page_hide)
-me.cur_page.page_hide();$dh(me.cur_page);}
-me.cur_page=wn.pages[label];me.cur_page_label=label;$(me.cur_page).fadeIn();if(me.cur_page.page_show)
-me.cur_page.page_show(me.cur_page);}
-this.set_session_changed=function(){if(this.session_message_set)return;var div=$a($i('body_div').parentNode,'div','',{textAlign:'center',fontSize:'14px',margin:'150px auto'});$dh('body_div');div.innerHTML='This session has been changed. Please <span class="link_type" onclick="window.location.reload()">refresh</span> to continue';this.session_message_set=1;}
-this.setup();}
-/*
  *	lib/js/legacy/app.js
  */
-var popup_cont;var session={};var start_sid=null;if(!wn)var wn={};function startup(){start_sid=get_cookie('sid');popup_cont=$a(document.getElementsByTagName('body')[0],'div');var setup_globals=function(r){wn.boot=r;profile=r.profile;user=r.profile.name;user_fullname=wn.user_info(user).fullname;user_defaults=profile.defaults;user_roles=profile.roles;user_email=profile.email;home_page=r.home_page;_p.letter_heads=r.letter_heads;sys_defaults=r.sysdefaults;session.rt=profile.can_read;if(r.ipinfo)session.ipinfo=r.ipinfo;session.dt_labels=r.dt_labels;session.rev_dt_labels={}
+var popup_cont;var session={};if(!wn)var wn={};function startup(){popup_cont=$a(document.getElementsByTagName('body')[0],'div');var setup_globals=function(r){wn.boot=r;profile=r.profile;user=r.profile.name;user_fullname=wn.user_info(user).fullname;user_defaults=profile.defaults;user_roles=profile.roles;user_email=profile.email;home_page=r.home_page;_p.letter_heads=r.letter_heads;sys_defaults=r.sysdefaults;session.rt=profile.can_read;if(r.ipinfo)session.ipinfo=r.ipinfo;session.dt_labels=r.dt_labels;session.rev_dt_labels={}
 if(r.dt_labels){for(key in r.dt_labels)session.rev_dt_labels[r.dt_labels[key]]=key;}
 wn.control_panel=r.control_panel;}
-var setup_history=function(r){rename_observers.push(nav_obj);}
-var callback=function(r,rt){if(r.exc)console.log(r.exc);setup_globals(r);setup_history();var a=new Body();page_body.run_startup_code();for(var i=0;i<startup_list.length;i++){startup_list[i]();}
-var t=to_open();if(t){historyChange(t);}else if(home_page){loadpage(home_page);}
-page_body.ready();}
+var setup_viewport=function(){wn.container=new wn.views.Container();if(user=='Guest')
+user_defaults.hide_webnotes_toolbar=1;if(!cint(user_defaults.hide_webnotes_toolbar)||user=='Administrator'){wn.container.wntoolbar=new wn.ui.toolbar.Toolbar();}
+$(document).trigger('startup');try{if(wn.control_panel.custom_startup_code)
+eval(wn.control_panel.custom_startup_code);}catch(e){errprint(e);}
+var t=to_open();if(t){window.location.hash=t;}else if(home_page){loadpage(home_page);}
+wn.route();$dh('startup_div');$ds('body_div');}
+var callback=function(r,rt){if(r.exc)console.log(r.exc);setup_globals(r);setup_viewport();}
 if(wn.boot){LocalDB.sync(wn.boot.docs);callback(wn.boot,'');if(wn.boot.error_messages)
 console.log(wn.boot.error_messages)
 if(wn.boot.server_messages)
@@ -1066,19 +1245,20 @@
 var current_module;var is_system_manager=0;wn.provide('erpnext.startup');erpnext.modules={'Selling':'selling-home','Accounts':'accounts-home','Stock':'stock-home','Buying':'buying-home','Support':'support-home','Projects':'projects-home','Production':'production-home','Website':'website-home','HR':'hr-home','Setup':'Setup','Activity':'activity','To Do':'todo','Calendar':'calendar','Messages':'messages','Knowledge Base':'questions','Dashboard':'dashboard'}
 erpnext.startup.set_globals=function(){pscript.is_erpnext_saas=cint(wn.control_panel.sync_with_gateway)
 if(inList(user_roles,'System Manager'))is_system_manager=1;}
-erpnext.startup.start=function(){$('#startup_div').html('Starting up...').toggle(true);erpnext.startup.set_globals();if(wn.boot.custom_css){set_style(wn.boot.custom_css);}
-if(wn.boot.user_background){erpnext.set_user_background(wn.boot.user_background);}
-if(user=='Guest'){if(wn.boot.website_settings.title_prefix){wn.title_prefix=wn.boot.website_settings.title_prefix;}}else{wn.boot.profile.allow_modules=wn.boot.profile.allow_modules.concat(['To Do','Knowledge Base','Calendar','Activity','Messages'])
-erpnext.toolbar.setup();erpnext.startup.set_periodic_updates();$('footer').html('<div class="web-footer erpnext-footer">\
-   <a href="#!attributions">ERPNext | Attributions and License</a></div>');if(in_list(user_roles,'System Manager')&&(wn.boot.setup_complete=='No')){wn.require("erpnext/startup/js/complete_setup.js");erpnext.complete_setup();}}
+erpnext.startup.start=function(){$('#startup_div').html('Starting up...').toggle(true);erpnext.startup.set_globals();if(wn.boot.user_background){erpnext.set_user_background(wn.boot.user_background);}
+if(user=='Guest'){if(wn.boot.custom_css){set_style(wn.boot.custom_css);}
+if(wn.boot.website_settings.title_prefix){wn.title_prefix=wn.boot.website_settings.title_prefix;}}else{wn.boot.profile.allow_modules=wn.boot.profile.allow_modules.concat(['To Do','Knowledge Base','Calendar','Activity','Messages'])
+if(user_roles.indexOf('Accounts Manager')!=-1){wn.boot.profile.allow_modules.push('Dashboard');}
+erpnext.toolbar.setup();erpnext.startup.set_periodic_updates();if(in_list(user_roles,'System Manager')&&(wn.boot.setup_complete=='No')){wn.require("erpnext/startup/js/complete_setup.js");erpnext.complete_setup();}}
 $('#startup_div').toggle(false);}
 show_chart_browser=function(nm,chart_type){var call_back=function(){if(nm=='Sales Browser'){var sb_obj=new SalesBrowser();sb_obj.set_val(chart_type);}
 else if(nm=='Accounts Browser')
 pscript.make_chart(chart_type);}
 loadpage(nm,call_back);}
-var update_messages=function(reset){if(inList(['Guest'],user)){return;}
-if(!reset){$c_page('home','event_updates','get_global_status_messages',null,function(r,rt){if(!r.exc){page_body.wntoolbar.set_new_comments(r.message.unread_messages);var show_in_circle=function(parent_id,msg){var parent=$('#'+parent_id);if(parent){if(msg){parent.find('span:first').text(msg);parent.toggle(true);}else{parent.toggle(false);}}}
-show_in_circle('unread_messages',r.message.unread_messages.length);show_in_circle('open_support_tickets',r.message.open_support_tickets);show_in_circle('things_todo',r.message.things_todo);show_in_circle('todays_events',r.message.todays_events);}else{clearInterval(wn.updates.id);}});}else{page_body.wntoolbar.set_new_comments(0);$('#unread_messages').toggle(false);}}
+var update_messages=function(reset){if(inList(['Guest'],user)||!wn.session_alive){return;}
+if(!reset){var set_messages=function(r){if(!r.exc){wn.container.wntoolbar.set_new_comments(r.message.unread_messages);var show_in_circle=function(parent_id,msg){var parent=$('#'+parent_id);if(parent){if(msg){parent.find('span:first').text(msg);parent.toggle(true);}else{parent.toggle(false);}}}
+show_in_circle('unread_messages',r.message.unread_messages.length);show_in_circle('open_support_tickets',r.message.open_support_tickets);show_in_circle('things_todo',r.message.things_todo);show_in_circle('todays_events',r.message.todays_events);}else{clearInterval(wn.updates.id);}}
+wn.call({method:'startup.startup.get_global_status_messages',callback:set_messages});}else{wn.container.wntoolbar.set_new_comments(0);$('#unread_messages').toggle(false);}}
 erpnext.startup.set_periodic_updates=function(){wn.updates={};if(wn.updates.id){clearInterval(wn.updates.id);}
 wn.updates.id=setInterval(update_messages,60000);}
 erpnext.set_user_background=function(src){set_style(repl('body { background: url("files/%(src)s") repeat;}',{src:src}))}
@@ -1086,7 +1266,7 @@
 /*
  *	erpnext/website/js/topbar.js
  */
-wn.provide('erpnext.navbar');erpnext.navbar.navbar=Class.extend({init:function(){this.make();$('.brand').html(wn.boot.website_settings.brand_html);this.make_items();$('.dropdown-toggle').dropdown();},make:function(){$('header').append('<div class="navbar navbar-fixed-top">\
+wn.provide('erpnext.navbar');erpnext.navbar.Navbar=Class.extend({init:function(){this.make();$('.brand').html(wn.boot.website_settings.brand_html);this.make_items();$('.dropdown-toggle').dropdown();},make:function(){$('header').append('<div class="navbar navbar-fixed-top">\
    <div class="navbar-inner">\
    <div class="container">\
     <a class="brand">[brand]</a>\
@@ -1110,4 +1290,4 @@
     <a href="https://erpnext.com">erpnext.com</a></div>\
   </div>',wn.boot.website_settings));this.make_items();},make_items:function(){var items=wn.boot.website_menus
 for(var i=0;i<items.length;i++){var item=items[i];if(!item.parent_label&&item.parentfield=='footer_items'){item.route=item.url||item.custom_page;$('.web-footer-menu ul').append(repl('<li><a href="#!%(route)s" \
-     data-label="%(label)s">%(label)s</a></li>',item))}}}});$(document).bind('startup',function(){erpnext.footer=new erpnext.Footer();erpnext.navbar.navbar=new erpnext.navbar.navbar();})
\ No newline at end of file
+     data-label="%(label)s">%(label)s</a></li>',item))}}}});$(document).bind('startup',function(){erpnext.footer=new erpnext.Footer();erpnext.navbar.navbar=new erpnext.navbar.Navbar();})
\ No newline at end of file
diff --git a/version.num b/version.num
index 3f986b9..f6e16be 100644
--- a/version.num
+++ b/version.num
@@ -1 +1 @@
-842
\ No newline at end of file
+1496
\ No newline at end of file
diff --git a/wnf.py b/wnf.py
index ca780cf..94450d8 100755
--- a/wnf.py
+++ b/wnf.py
@@ -18,23 +18,52 @@
 
 import os, sys
 
-def replace_code(start, txt1, txt2, extn):
+def replace_code(start, txt1, txt2, extn, search=None):
 	"""replace all txt1 by txt2 in files with extension (extn)"""
+	import webnotes.utils
 	import os, re
+	esc = webnotes.utils.make_esc('[]')
+	if not search: search = esc(txt1)
 	for wt in os.walk(start, followlinks=1):
 		for fn in wt[2]:
 			if fn.split('.')[-1]==extn:
 				fpath = os.path.join(wt[0], fn)
-				with open(fpath, 'r') as f:
-					content = f.read()
+				if fpath != '/var/www/erpnext/erpnext/patches/jan_mar_2012/rename_dt.py': # temporary
+					with open(fpath, 'r') as f:
+						content = f.read()
 				
-				if re.search(txt1, content):
-					a = raw_input('Change in %s [y/n]?' % fpath)
-					if a=='y':
-						with open(fpath, 'w') as f:
-							f.write(re.sub(txt1, txt2, content))
-				
-						print 'updated in %s' % fpath
+					if re.search(search, content):
+						res = search_replace_with_prompt(fpath, txt1, txt2)
+						if res == 'skip':
+							return 'skip'
+
+
+
+def search_replace_with_prompt(fpath, txt1, txt2):
+	""" Search and replace all txt1 by txt2 in the file with confirmation"""
+
+	from termcolor import colored
+	with open(fpath, 'r') as f:
+		content = f.readlines()
+
+	tmp = []
+	for c in content:
+		if c.find(txt1) != -1:
+			print '\n', fpath
+			print  colored(txt1, 'red').join(c[:-1].split(txt1))
+			a = ''
+			while a.lower() not in ['y', 'n', 'skip']:
+				a = raw_input('Do you want to Change [y/n/skip]?')
+			if a.lower() == 'y':
+				c = c.replace(txt1, txt2)
+			elif a.lower() == 'skip':
+				return 'skip'
+		tmp.append(c)
+
+	with open(fpath, 'w') as f:
+		f.write(''.join(tmp))
+	print colored('Updated', 'green')
+	
 
 def setup_options():
 	from optparse import OptionParser
@@ -78,9 +107,7 @@
 	# install
 	parser.add_option('--install', nargs=3, metavar = "rootpassword dbname source",
 						help="install fresh db")
-	parser.add_option('--sync_with_gateway', nargs=1, metavar = "1/0", \
-						help="Set or Unset Sync with Gateway")
-
+	
 	# diff
 	parser.add_option('--diff_ref_file', nargs=0, \
 						help="Get missing database records and mismatch properties, with file as reference")
@@ -98,9 +125,14 @@
 						metavar = "search replace_by extension",
 						help="file search-replace")
 
-	parser.add_option("--cci", nargs=1, metavar="CacheItem Key",
+	parser.add_option("--cci", nargs=1, metavar="CacheItem Key or all",
 		help="Clear Cache Item")
 	
+	parser.add_option("--sync_all", help="Synchronize all DocTypes using txt files",
+			nargs=0)
+	
+	parser.add_option("--sync", help="Synchronize given DocType using txt file",
+			nargs=2, metavar="module doctype (use their folder names)")
 
 	return parser.parse_args()
 	
@@ -185,17 +217,6 @@
 		inst.import_from_db(options.install[1], source_path=options.install[2], \
 			password='admin', verbose = 1)
 	
-	elif options.sync_with_gateway:
-		if int(options.sync_with_gateway[0]) in [0, 1]:
-			webnotes.conn.begin()
-			webnotes.conn.sql("""\
-				UPDATE `tabSingles` SET value=%s
-				WHERE field='sync_with_gateway' AND doctype='Control Panel'""", int(options.sync_with_gateway[0]))
-			webnotes.conn.commit()
-			webnotes.message_log.append("sync_with_gateway set to %s" % options.sync_with_gateway[0])
-		else:
-			webnotes.message_log.append("ERROR: sync_with_gateway can be either 0 or 1")
-	
 	elif options.diff_ref_file is not None:
 		import webnotes.modules.diff
 		webnotes.modules.diff.diff_ref_file()
@@ -218,6 +239,14 @@
 		else:
 			from webnotes.utils.cache import CacheItem
 			CacheItem(options.cci).clear()
+	
+	elif options.sync_all is not None:
+		import webnotes.model.sync
+		webnotes.model.sync.sync_all(options.force or 0)
+
+	elif options.sync is not None:
+		import webnotes.model.sync
+		webnotes.model.sync.sync(options.sync[0], options.sync[1], options.force or 0)
 
 	# print messages
 	if webnotes.message_log:
