diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9d3851d..f7608d4 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,12 @@
 # Contributing to ERPNext
 
+### Reporting issues
+
+We only accept issues that are bug reports or feature requests. Bugs must be isolated and reproducible problems. Please read the following guidelines before opening any issue.
+
+1. **Search for existing issues.** We want to avoid duplication, and you'd help us out a lot by first checking if someone else has reported the same issue. Moreover, the issue may have already been resolved with a fix available.
+1. **Share as much information as possible.** Include operating system and version, browser and version, when did you last update ERPNext, how is it customized, etc. where appropriate. Also include steps to reproduce the bug.
+
 ### New Features
 
 #### Don't Repeat Yourself (DRY)
diff --git a/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt b/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt
index 5aefa81..fc99597 100644
--- a/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt
+++ b/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:30:27", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:19:38", 
+  "modified": "2013-08-07 20:14:53", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "doc_type": "Sales Invoice", 
   "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 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/doc.conversion_rate) + '</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>\n                    <tr>\n    \t\t\t\t\t<td width=40%><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?\"<b>Invoice Period</b>\"\n                            :\"\";\n    \t\t\t\t\t</script></td>\n\t\t\t\t\t\t<td><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?(date.str_to_user(doc.invoice_period_from_date) +\n                                ' to ' + date.str_to_user(doc.invoice_period_to_date))\n                            :\"\";\n                        </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>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_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><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}\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 ' + \n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</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>\n                    <tr>\n    \t\t\t\t\t<td width=40%><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?\"<b>Invoice Period</b>\"\n                            :\"\";\n    \t\t\t\t\t</script></td>\n\t\t\t\t\t\t<td><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?(date.str_to_user(doc.invoice_period_from_date) +\n                                ' to ' + date.str_to_user(doc.invoice_period_to_date))\n                            :\"\";\n                        </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>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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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": "Accounts", 
   "name": "__common__", 
   "print_format_type": "Client", 
diff --git a/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt b/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt
index 2f6251c..07946f7 100644
--- a/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt
+++ b/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:30:27", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:19:52", 
+  "modified": "2013-08-07 20:12:16", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "doc_type": "Sales Invoice", 
   "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 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>\n                    <tr>\n        \t\t\t\t<td width=40%><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?\"<b>Invoice Period</b>\"\n                            :\"\";\n    \t\t\t\t\t</script></td>\n\t\t\t\t\t\t<td><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?(date.str_to_user(doc.invoice_period_from_date) +\n                                ' to ' + date.str_to_user(doc.invoice_period_to_date))\n                            :\"\";\n                        </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>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_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><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        line-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 ' + \n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount, doc.currency) + '</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>\n                    <tr>\n        \t\t\t\t<td width=40%><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?\"<b>Invoice Period</b>\"\n                            :\"\";\n    \t\t\t\t\t</script></td>\n\t\t\t\t\t\t<td><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?(date.str_to_user(doc.invoice_period_from_date) +\n                                ' to ' + date.str_to_user(doc.invoice_period_to_date))\n                            :\"\";\n                        </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>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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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": "Accounts", 
   "name": "__common__", 
   "print_format_type": "Client", 
diff --git a/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt b/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt
index b00b3d8..57c02fe 100644
--- a/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt
+++ b/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:30:27", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:19:22", 
+  "modified": "2013-08-07 19:50:51", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "doc_type": "Sales Invoice", 
   "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 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>\n                    <tr>\n        \t\t\t\t<td width=40%><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?\"<b>Invoice Period</b>\"\n                            :\"\";\n    \t\t\t\t\t</script></td>\n\t\t\t\t\t\t<td><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?(date.str_to_user(doc.invoice_period_from_date) +\n                                ' to ' + date.str_to_user(doc.invoice_period_to_date))\n                            :\"\";\n                        </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>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_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><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}\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 ' + \n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount, doc.currency) + '</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>\n                    <tr>\n        \t\t\t\t<td width=40%><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?\"<b>Invoice Period</b>\"\n                            :\"\";\n    \t\t\t\t\t</script></td>\n\t\t\t\t\t\t<td><script>\n                            (doc.convert_into_recurring_invoice && doc.recurring_id)\n                            ?(date.str_to_user(doc.invoice_period_from_date) +\n                                ' to ' + date.str_to_user(doc.invoice_period_to_date))\n                            :\"\";\n                        </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>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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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": "Accounts", 
   "name": "__common__", 
   "print_format_type": "Client", 
diff --git a/accounts/Print Format/SalesInvoice/SalesInvoice.html b/accounts/Print Format/SalesInvoice/SalesInvoice.html
index 2b08197..bdb7a01 100644
--- a/accounts/Print Format/SalesInvoice/SalesInvoice.html
+++ b/accounts/Print Format/SalesInvoice/SalesInvoice.html
@@ -103,7 +103,7 @@
 						<tr>
 							<td>Net Total</td>
 							<td width=40% style="text-align: right;">{{
-								utils.fmt_money(doc.net_total/doc.conversion_rate, currency=doc.currency)
+								utils.fmt_money(doc.net_total_export, currency=doc.currency)
 							}}</td>
 						</tr>
 						{%- for charge in doclist.get({"doctype":"Sales Taxes and Charges"}) -%}
diff --git a/accounts/doctype/account/account.js b/accounts/doctype/account/account.js
index 9a8115e..6b06572 100644
--- a/accounts/doctype/account/account.js
+++ b/accounts/doctype/account/account.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 
 // Onload
@@ -104,7 +91,7 @@
 // Convert group to ledger
 // -----------------------------------------
 cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) {
-  $c_obj(cur_frm.get_doclist(),'convert_group_to_ledger','',function(r,rt) {
+  return $c_obj(cur_frm.get_doclist(),'convert_group_to_ledger','',function(r,rt) {
     if(r.message == 1) {  
 	  cur_frm.refresh();
     }
@@ -114,7 +101,7 @@
 // Convert ledger to group
 // -----------------------------------------
 cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) {
-  $c_obj(cur_frm.get_doclist(),'convert_ledger_to_group','',function(r,rt) {
+  return $c_obj(cur_frm.get_doclist(),'convert_ledger_to_group','',function(r,rt) {
     if(r.message == 1) {
 	  cur_frm.refresh();
     }
diff --git a/accounts/doctype/account/account.py b/accounts/doctype/account/account.py
index 98808f4..a6038dd 100644
--- a/accounts/doctype/account/account.py
+++ b/accounts/doctype/account/account.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/account/test_account.py b/accounts/doctype/account/test_account.py
index ad6319c..502f0e5 100644
--- a/accounts/doctype/account/test_account.py
+++ b/accounts/doctype/account/test_account.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 
diff --git a/accounts/doctype/accounts_settings/accounts_settings.py b/accounts/doctype/accounts_settings/accounts_settings.py
index b548936..96f324a 100644
--- a/accounts/doctype/accounts_settings/accounts_settings.py
+++ b/accounts/doctype/accounts_settings/accounts_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/accounts/doctype/bank_reconciliation/bank_reconciliation.js b/accounts/doctype/bank_reconciliation/bank_reconciliation.js
index 793db62..43dba63 100644
--- a/accounts/doctype/bank_reconciliation/bank_reconciliation.js
+++ b/accounts/doctype/bank_reconciliation/bank_reconciliation.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 
 cur_frm.add_fetch("bank_account", "company", "company");
diff --git a/accounts/doctype/bank_reconciliation/bank_reconciliation.py b/accounts/doctype/bank_reconciliation/bank_reconciliation.py
index f19df48..479b579 100644
--- a/accounts/doctype/bank_reconciliation/bank_reconciliation.py
+++ b/accounts/doctype/bank_reconciliation/bank_reconciliation.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.py b/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.py
+++ b/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/budget_control/budget_control.py b/accounts/doctype/budget_control/budget_control.py
index 66a48a2..0aa64c8 100644
--- a/accounts/doctype/budget_control/budget_control.py
+++ b/accounts/doctype/budget_control/budget_control.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/budget_detail/budget_detail.py b/accounts/doctype/budget_detail/budget_detail.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/budget_detail/budget_detail.py
+++ b/accounts/doctype/budget_detail/budget_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/budget_distribution/budget_distribution.js b/accounts/doctype/budget_distribution/budget_distribution.js
index 5abd525..deed0cb 100644
--- a/accounts/doctype/budget_distribution/budget_distribution.js
+++ b/accounts/doctype/budget_distribution/budget_distribution.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.onload = function(doc,cdt,cdn){
   if(doc.__islocal){
@@ -20,7 +7,7 @@
       refresh_field('budget_distribution_details');
     }
     
-    $c('runserverobj',args={'method' : 'get_months', 'docs' : 
+    return $c('runserverobj',args={'method' : 'get_months', 'docs' : 
 		wn.model.compress(make_doclist(doc.doctype, doc.name))},callback1);
   }
 }
diff --git a/accounts/doctype/budget_distribution/budget_distribution.py b/accounts/doctype/budget_distribution/budget_distribution.py
index f2fff5a..2b3ce69 100644
--- a/accounts/doctype/budget_distribution/budget_distribution.py
+++ b/accounts/doctype/budget_distribution/budget_distribution.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -20,26 +7,26 @@
 from webnotes.utils import flt
 from webnotes.model.doc import addchild
 from webnotes.model.bean import getlist
-from webnotes import msgprint
+from webnotes import msgprint, _
 
 class DocType:
-  def __init__(self,doc,doclist=[]):
-    self.doc,self.doclist = doc,doclist
-    
-  def get_months(self):
-    month_list = ['January','February','March','April','May','June','July','August','September',
+	def __init__(self,doc,doclist=[]):
+		self.doc,self.doclist = doc,doclist
+		
+	def get_months(self):
+		month_list = ['January','February','March','April','May','June','July','August','September',
 		'October','November','December']
-    idx =1
-    for m in month_list:
-      mnth = addchild(self.doc, 'budget_distribution_details',
-        'Budget Distribution Detail', self.doclist)
-      mnth.month = m or ''
-      mnth.idx = idx
-      idx += 1
-      
-  def validate(self):
-    total = 0
-    for d in getlist(self.doclist,'budget_distribution_details'):
-      total = flt(total) + flt(d.percentage_allocation)
-    if total != 100:
-      msgprint("Percentage Allocation should be equal to 100%%. Currently it is %s%%" % total, raise_exception=1)
+		idx =1
+		for m in month_list:
+			mnth = addchild(self.doc, 'budget_distribution_details',
+				'Budget Distribution Detail', self.doclist)
+			mnth.month = m or ''
+			mnth.idx = idx
+			idx += 1
+			
+	def validate(self):
+		total = sum([flt(d.percentage_allocation, 2) for d in self.doclist.get(
+			{"parentfield": "budget_distribution_details"})])
+			
+		if total != 100.0:
+			msgprint(_("Percentage Allocation should be equal to ") + "100%", raise_exception=1)
\ No newline at end of file
diff --git a/accounts/doctype/budget_distribution/budget_distribution.txt b/accounts/doctype/budget_distribution/budget_distribution.txt
index 70ef717..ae668ab 100644
--- a/accounts/doctype/budget_distribution/budget_distribution.txt
+++ b/accounts/doctype/budget_distribution/budget_distribution.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:05", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:29:23", 
+  "modified": "2013-07-22 15:30:37", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -31,6 +31,7 @@
   "parenttype": "DocType", 
   "read": 1, 
   "report": 1, 
+  "role": "Accounts Manager", 
   "submit": 0
  }, 
  {
@@ -77,30 +78,15 @@
   "read_only": 1
  }, 
  {
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "System Manager", 
-  "write": 1
- }, 
- {
-  "doctype": "DocPerm", 
-  "permlevel": 2, 
-  "role": "System Manager"
- }, 
- {
   "amend": 0, 
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "permlevel": 0, 
-  "role": "Accounts Manager", 
   "write": 1
  }, 
  {
   "doctype": "DocPerm", 
-  "permlevel": 2, 
-  "role": "Accounts Manager"
+  "permlevel": 2
  }
 ]
\ No newline at end of file
diff --git a/accounts/doctype/budget_distribution/test_budget_distribution.py b/accounts/doctype/budget_distribution/test_budget_distribution.py
index 3afb472..7ac835d 100644
--- a/accounts/doctype/budget_distribution/test_budget_distribution.py
+++ b/accounts/doctype/budget_distribution/test_budget_distribution.py
@@ -1 +1,4 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = []
\ No newline at end of file
diff --git a/accounts/doctype/budget_distribution_detail/budget_distribution_detail.py b/accounts/doctype/budget_distribution_detail/budget_distribution_detail.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/budget_distribution_detail/budget_distribution_detail.py
+++ b/accounts/doctype/budget_distribution_detail/budget_distribution_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/c_form/c_form.js b/accounts/doctype/c_form/c_form.js
index 35656e9..81fa136 100644
--- a/accounts/doctype/c_form/c_form.js
+++ b/accounts/doctype/c_form/c_form.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 //c-form js file
 // -----------------------------
@@ -34,5 +21,5 @@
 
 cur_frm.cscript.invoice_no = function(doc, cdt, cdn) {
 	var d = locals[cdt][cdn];
-	get_server_fields('get_invoice_details', d.invoice_no, 'invoice_details', doc, cdt, cdn, 1);
+	return get_server_fields('get_invoice_details', d.invoice_no, 'invoice_details', doc, cdt, cdn, 1);
 }
\ No newline at end of file
diff --git a/accounts/doctype/c_form/c_form.py b/accounts/doctype/c_form/c_form.py
index 25a8c3b..0178a19 100644
--- a/accounts/doctype/c_form/c_form.py
+++ b/accounts/doctype/c_form/c_form.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/c_form/c_form.txt b/accounts/doctype/c_form/c_form.txt
index 248f413..c69a658 100644
--- a/accounts/doctype/c_form/c_form.txt
+++ b/accounts/doctype/c_form/c_form.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:55:06", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:29:48", 
+  "modified": "2013-08-08 14:21:55", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -50,7 +50,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "options": "\nC-FORM/", 
   "read_only": 0, 
   "reqd": 1
diff --git a/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.py b/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.py
+++ b/accounts/doctype/c_form_invoice_detail/c_form_invoice_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/cost_center/cost_center.js b/accounts/doctype/cost_center/cost_center.js
index ed60cc0..c3519bf 100644
--- a/accounts/doctype/cost_center/cost_center.js
+++ b/accounts/doctype/cost_center/cost_center.js
@@ -1,18 +1,39 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
+wn.provide("erpnext.accounts");
+erpnext.accounts.CostCenterController = wn.ui.form.Controller.extend({
+	onload: function() {
+		this.setup_queries();
+	},
+	
+	setup_queries: function() {
+		var me = this;
+		if(this.frm.fields_dict["budget_details"].grid.get_field("account")) {
+			this.frm.set_query("account", "budget_details", function() {
+				return {
+					filters:[
+						['Account', 'company', '=', me.frm.doc.company],
+						['Account', 'is_pl_account', '=', 'Yes'],
+						['Account', 'debit_or_credit', '=', 'Debit'],
+						['Account', 'group_or_ledger', '!=', 'Group'],
+					]
+				}
+			});
+		}
+		
+		this.frm.set_query("parent_cost_center", function() {
+			return {
+				filters:[			
+					['Cost Center', 'group_or_ledger', '=', 'Group'],
+					['Cost Center', 'company', '=', me.frm.doc.company],
+				]
+			}
+		});
+	}
+});
+
+$.extend(cur_frm.cscript, new erpnext.accounts.CostCenterController({frm: cur_frm}));
 
 cur_frm.cscript.refresh = function(doc, cdt, cdn) {
 	var intro_txt = '';
@@ -33,39 +54,12 @@
 		function() { wn.set_route("Accounts Browser", "Cost Center"); }, 'icon-sitemap')
 }
 
-//Account filtering for cost center
-cur_frm.fields_dict['budget_details'].grid.get_field('account').get_query = function(doc) {
-	var mydoc = locals[this.doctype][this.docname];
-	return{
-		filters:[
-			['Account', 'company', '=', doc.company],
-			['Account', 'is_pl_account', '=', 'Yes'],
-			['Account', 'debit_or_credit', '=', 'Debit'],
-			['Account', 'group_or_ledger', '!=', 'Group'],
-			['Account', 'group_or_ledger', 'is not', 'NULL']
-		]
-	}
-}
-
-cur_frm.fields_dict['parent_cost_center'].get_query = function(doc){
-	return{
-		filters:[			
-			['Cost Center', 'group_or_ledger', '=', 'Group'],
-			['Cost Center', 'company', '=', doc.company],
-			['Cost Center', 'company', 'is not', 'NULL']
-		]
-	}
-}
-
-//parent cost center
 cur_frm.cscript.parent_cost_center = function(doc,cdt,cdn){
 	if(!doc.company){
 		alert('Please enter company name first');
 	}
 }
 
-// Hide/unhide group or ledger
-// -----------------------------------------
 cur_frm.cscript.hide_unhide_group_ledger = function(doc) {
 	if (cstr(doc.group_or_ledger) == 'Group') {
 		cur_frm.add_custom_button('Convert to Ledger', 
@@ -76,20 +70,16 @@
 	}
 }
 
-// Convert group to ledger
-// -----------------------------------------
 cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) {
-	$c_obj(cur_frm.get_doclist(),'convert_group_to_ledger','',function(r,rt) {
+	return $c_obj(cur_frm.get_doclist(),'convert_group_to_ledger','',function(r,rt) {
 		if(r.message == 1) {
 			cur_frm.refresh();
 		}
 	});
 }
 
-// Convert ledger to group
-// -----------------------------------------
 cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) {
-	$c_obj(cur_frm.get_doclist(),'convert_ledger_to_group','',function(r,rt) {
+	return $c_obj(cur_frm.get_doclist(),'convert_ledger_to_group','',function(r,rt) {
 		if(r.message == 1) {
 			cur_frm.refresh();
 		}
diff --git a/accounts/doctype/cost_center/cost_center.py b/accounts/doctype/cost_center/cost_center.py
index b2b4c90..6f977d7 100644
--- a/accounts/doctype/cost_center/cost_center.py
+++ b/accounts/doctype/cost_center/cost_center.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/cost_center/cost_center.txt b/accounts/doctype/cost_center/cost_center.txt
index 95c4f5a..a9c7add 100644
--- a/accounts/doctype/cost_center/cost_center.txt
+++ b/accounts/doctype/cost_center/cost_center.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-23 19:57:17", 
   "docstatus": 0, 
-  "modified": "2013-07-09 14:43:41", 
+  "modified": "2013-07-22 15:23:10", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -28,6 +28,7 @@
   "permlevel": 0
  }, 
  {
+  "amend": 0, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Cost Center", 
@@ -179,7 +180,6 @@
   "report_hide": 1
  }, 
  {
-  "amend": 0, 
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
@@ -187,18 +187,10 @@
   "write": 1
  }, 
  {
-  "amend": 0, 
   "cancel": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
   "role": "Accounts User", 
   "write": 0
- }, 
- {
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "role": "System Manager", 
-  "write": 1
  }
 ]
\ No newline at end of file
diff --git a/accounts/doctype/cost_center/test_cost_center.py b/accounts/doctype/cost_center/test_cost_center.py
index 94a87fe..7c63d7c 100644
--- a/accounts/doctype/cost_center/test_cost_center.py
+++ b/accounts/doctype/cost_center/test_cost_center.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Cost Center",
diff --git a/accounts/doctype/fiscal_year/fiscal_year.js b/accounts/doctype/fiscal_year/fiscal_year.js
index 6e0ed38..c5500aa 100644
--- a/accounts/doctype/fiscal_year/fiscal_year.js
+++ b/accounts/doctype/fiscal_year/fiscal_year.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.refresh = function(doc, dt, dn) {
 	cur_frm.toggle_enable('year_start_date', doc.__islocal)
@@ -24,7 +11,7 @@
 }
 
 cur_frm.cscript.set_as_default = function() {
-	wn.call({
+	return wn.call({
 		doc: cur_frm.doc,
 		method: "set_as_default"
 	});
diff --git a/accounts/doctype/fiscal_year/fiscal_year.py b/accounts/doctype/fiscal_year/fiscal_year.py
index e23351c..2544c96 100644
--- a/accounts/doctype/fiscal_year/fiscal_year.py
+++ b/accounts/doctype/fiscal_year/fiscal_year.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/fiscal_year/fiscal_year.txt b/accounts/doctype/fiscal_year/fiscal_year.txt
index 511adf5..6d64fcd 100644
--- a/accounts/doctype/fiscal_year/fiscal_year.txt
+++ b/accounts/doctype/fiscal_year/fiscal_year.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-22 16:50:25", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:38:22", 
+  "modified": "2013-07-23 11:59:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -24,19 +24,13 @@
   "permlevel": 0
  }, 
  {
-  "cancel": 1, 
-  "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Fiscal Year", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
   "permlevel": 0, 
-  "read": 1, 
-  "report": 1, 
-  "role": "System Manager", 
-  "submit": 0, 
-  "write": 1
+  "read": 1
  }, 
  {
   "doctype": "DocType", 
@@ -76,6 +70,16 @@
   "reqd": 0
  }, 
  {
-  "doctype": "DocPerm"
+  "cancel": 1, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "report": 1, 
+  "role": "System Manager", 
+  "submit": 0, 
+  "write": 1
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "All"
  }
 ]
\ No newline at end of file
diff --git a/accounts/doctype/fiscal_year/test_fiscal_year.py b/accounts/doctype/fiscal_year/test_fiscal_year.py
index 456b15a..594375d 100644
--- a/accounts/doctype/fiscal_year/test_fiscal_year.py
+++ b/accounts/doctype/fiscal_year/test_fiscal_year.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 
 test_records = [
diff --git a/accounts/doctype/gl_entry/gl_entry.py b/accounts/doctype/gl_entry/gl_entry.py
index 1d0ec8e..9c1cf3f 100644
--- a/accounts/doctype/gl_entry/gl_entry.py
+++ b/accounts/doctype/gl_entry/gl_entry.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -151,7 +138,7 @@
 				balance = webnotes.conn.sql("""select sum(debit) - sum(credit) from `tabGL Entry` 
 					where account = %s and ifnull(is_cancelled, 'No') = 'No'""", self.doc.account)
 				balance = account["debit_or_credit"] == "Debit" and \
-					balance[0][0] or -1*balance[0][0]
+					flt(balance[0][0]) or -1*flt(balance[0][0])
 			
 				if flt(balance) < 0:
 					msgprint(_("Negative balance is not allowed for account ") + self.doc.account, 
diff --git a/accounts/doctype/journal_voucher/journal_voucher.js b/accounts/doctype/journal_voucher/journal_voucher.js
index 6503064..eb08166 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.js
+++ b/accounts/doctype/journal_voucher/journal_voucher.js
@@ -1,22 +1,67 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
-cur_frm.cscript.onload = function(doc, cdt, cdn) {
-	cur_frm.cscript.load_defaults(doc, cdt, cdn);
-}
+wn.provide("erpnext.accounts");
+
+erpnext.accounts.JournalVoucher = wn.ui.form.Controller.extend({
+	onload: function() {
+		this.load_defaults();
+		this.setup_queries();
+	},
+	
+	load_defaults: function() {
+		if(this.frm.doc.__islocal && this.frm.doc.company) {
+			wn.model.set_default_values(this.frm.doc);
+			$.each(wn.model.get_doclist(this.frm.doc.doctype, this.frm.doc.name, {parentfield: "entries"}),
+				function(i, jvd) { wn.model.set_default_values(jvd); });
+			
+			this.frm.doc.posting_date = get_today();
+		}
+	},
+	
+	setup_queries: function() {
+		var me = this;
+		
+		$.each(["account", "cost_center"], function(i, fieldname) {
+			me.frm.set_query(fieldname, "entries", function() {
+				wn.model.validate_missing(me.frm.doc, "company");
+				return {
+					filters: {
+						company: me.frm.doc.company,
+						group_or_ledger: "Ledger"
+					}
+				};
+			});
+		});
+		
+		$.each([["against_voucher", "Purchase Invoice", "credit_to"], 
+			["against_invoice", "Sales Invoice", "debit_to"]], function(i, opts) {
+				me.frm.set_query(opts[0], "entries", function(doc, cdt, cdn) {
+					var jvd = wn.model.get_doc(cdt, cdn);
+					wn.model.validate_missing(jvd, "account");
+					return {
+						filters: [
+							[opts[1], opts[2], "=", jvd.account],
+							[opts[1], "docstatus", "=", 1],
+							[opts[1], "outstanding_amount", ">", 0]
+						]
+					};
+				});
+		});
+		
+		this.frm.set_query("against_jv", "entries", function(doc, cdt, cdn) {
+			var jvd = wn.model.get_doc(cdt, cdn);
+			wn.model.validate_missing(jvd, "account");
+			
+			return {
+				query: "accounts.doctype.journal_voucher.journal_voucher.get_against_jv",
+				filters: { account: jvd.account }
+			};
+		});
+	},
+});
+
+cur_frm.script_manager.make(erpnext.accounts.JournalVoucher);
 
 cur_frm.cscript.refresh = function(doc) {
 	cur_frm.cscript.is_opening(doc)
@@ -34,41 +79,16 @@
 	}
 }
 
-cur_frm.cscript.load_defaults = function(doc, cdt, cdn) {
-	if(!cur_frm.doc.__islocal || !cur_frm.doc.company) { return; }
-
-	doc = locals[doc.doctype][doc.name];
-	var fields_to_refresh = wn.model.set_default_values(doc);
-	if(fields_to_refresh) { refresh_many(fields_to_refresh); }
-
-	fields_to_refresh = null;
-	var children = getchildren('Journal Voucher Detail', doc.name, 'entries');
-	if(!children) { return; }
-	for(var i=0; i<children.length; i++) {
-		wn.model.set_default_values(children[i]);
-	}
-	refresh_field('entries');
-}
-
-
 cur_frm.cscript.is_opening = function(doc, cdt, cdn) {
 	hide_field('aging_date');
 	if (doc.is_opening == 'Yes') unhide_field('aging_date');
 }
 
-cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){
-	var d = locals[cdt][cdn];
-	if(d.idx == 1){
-		d.debit = 0;
-		d.credit = 0;
-	}
-}
-
 cur_frm.cscript.against_voucher = function(doc,cdt,cdn) {
 	var d = locals[cdt][cdn];
 	if (d.against_voucher && !flt(d.debit)) {
 		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); });
+		return get_server_fields('get_outstanding',docstring(args),'entries',doc,cdt,cdn,1,function(r,rt) { cur_frm.cscript.update_totals(doc); });
 	}
 }
 
@@ -76,7 +96,7 @@
 	var d = locals[cdt][cdn];
 	if (d.against_invoice && !flt(d.credit)) {
 		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); });
+		return get_server_fields('get_outstanding',docstring(args),'entries',doc,cdt,cdn,1,function(r,rt) { cur_frm.cscript.update_totals(doc); });
 	}
 }
 
@@ -101,7 +121,7 @@
 
 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){
+	return $c_obj(make_doclist(dt,dn), 'get_balance', '', function(r, rt){
 	cur_frm.refresh();
 	});
 }
@@ -110,14 +130,16 @@
 
 cur_frm.cscript.account = function(doc,dt,dn) {
 	var d = locals[dt][dn];
-	wn.call({
-		method: "accounts.utils.get_balance_on",
-		args: {account: d.account, date: doc.posting_date},
-		callback: function(r) {
-			d.balance = format_currency(r.message, erpnext.get_currency(doc.company));
-			refresh_field('balance', d.name, 'entries');
-		}
-	});
+	if(d.account) {
+		return wn.call({
+			method: "accounts.utils.get_balance_on",
+			args: {account: d.account, date: doc.posting_date},
+			callback: function(r) {
+				d.balance = r.message;
+				refresh_field('balance', d.name, 'entries');
+			}
+		});
+	}
 } 
 
 cur_frm.cscript.validate = function(doc,cdt,cdn) {
@@ -151,7 +173,7 @@
 	}
 	
 	if(in_list(["Bank Voucher", "Cash Voucher"], doc.voucher_type)) {
-		wn.call({
+		return wn.call({
 			type: "GET",
 			method: "accounts.doctype.journal_voucher.journal_voucher.get_default_bank_cash_account",
 			args: {
@@ -165,7 +187,7 @@
 			}
 		})
 	} else if(doc.voucher_type=="Opening Entry") {
-		wn.call({
+		return wn.call({
 			type:"GET",
 			method: "accounts.doctype.journal_voucher.journal_voucher.get_opening_accounts",
 			args: {
@@ -181,60 +203,4 @@
 			}
 		})
 	}
-}
-
-// get_query
-
-cur_frm.fields_dict['entries'].grid.get_field('account').get_query = function(doc) {
-	return {
-		filters: { 
-			group_or_ledger: "Ledger",
-			company: doc.company
-		}
-	}
-}
-
-cur_frm.fields_dict["entries"].grid.get_field("cost_center").get_query = function(doc) {
-	return {
-		filters: { 
-			'company': doc.company,
-			'group_or_ledger': 'Ledger'
-		}
-	}
-}
-
-cur_frm.fields_dict['entries'].grid.get_field('against_voucher').get_query = function(doc) {	
-	var d = locals[this.doctype][this.docname];
-	return {
-		filters: [
-			['Purchase Invoice', 'credit_to', '=', d.account],
-			['Purchase Invoice', 'docstatus', '=', 1],
-			['Purchase Invoice', 'outstanding_amount', '>', 0]
-		]
-	}
-}
-
-cur_frm.fields_dict['entries'].grid.get_field('against_invoice').get_query = function(doc) {
-	var d = locals[this.doctype][this.docname];
-	return {
-		filters: [
-			['Sales Invoice', 'debit_to', '=', d.account],
-			['Sales Invoice', 'docstatus', '=', 1],
-			['Sales Invoice', 'outstanding_amount', '>', 0]
-		]
-	}
-}
-
-cur_frm.fields_dict['entries'].grid.get_field('against_jv').get_query = function(doc) {
-	var d = locals[this.doctype][this.docname];
-	
-	if(!d.account) {
-		msgprint("Please select Account first!")
-		throw "account not selected"
-	}
-	
-	return {
-		query: "accounts.doctype.journal_voucher.journal_voucher.get_against_jv",
-		filters: { account: d.account }
-	}
 }
\ No newline at end of file
diff --git a/accounts/doctype/journal_voucher/journal_voucher.py b/accounts/doctype/journal_voucher/journal_voucher.py
index 8292bfa..27b0518 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.py
+++ b/accounts/doctype/journal_voucher/journal_voucher.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/journal_voucher/journal_voucher.txt b/accounts/doctype/journal_voucher/journal_voucher.txt
index 355242c..4fba94a 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.txt
+++ b/accounts/doctype/journal_voucher/journal_voucher.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-25 10:53:52", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:43:51", 
+  "modified": "2013-08-08 14:21:56", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -58,7 +58,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
diff --git a/accounts/doctype/journal_voucher/test_journal_voucher.py b/accounts/doctype/journal_voucher/test_journal_voucher.py
index feb1e2c..30e3ada 100644
--- a/accounts/doctype/journal_voucher/test_journal_voucher.py
+++ b/accounts/doctype/journal_voucher/test_journal_voucher.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 
 from __future__ import unicode_literals
diff --git a/accounts/doctype/journal_voucher_detail/journal_voucher_detail.py b/accounts/doctype/journal_voucher_detail/journal_voucher_detail.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/journal_voucher_detail/journal_voucher_detail.py
+++ b/accounts/doctype/journal_voucher_detail/journal_voucher_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt b/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt
index 750449b..aea5d12 100644
--- a/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt
+++ b/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:39", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:56:33", 
+  "modified": "2013-08-02 18:15:56", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -90,6 +90,12 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "reference", 
+  "fieldtype": "Section Break", 
+  "label": "Reference"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "against_voucher", 
   "fieldtype": "Link", 
   "in_filter": 1, 
diff --git a/accounts/doctype/mis_control/mis_control.py b/accounts/doctype/mis_control/mis_control.py
index 35d2bc2..84350dc 100644
--- a/accounts/doctype/mis_control/mis_control.py
+++ b/accounts/doctype/mis_control/mis_control.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/mode_of_payment/mode_of_payment.js b/accounts/doctype/mode_of_payment/mode_of_payment.js
index e3625e6..956c7b2 100644
--- a/accounts/doctype/mode_of_payment/mode_of_payment.js
+++ b/accounts/doctype/mode_of_payment/mode_of_payment.js
@@ -1,24 +1,11 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.set_query("default_account", function(doc) {
 	return{
-		query: "controllers.queries.account_query",
 		filters: {
 			'account_type': "Bank or Cash",
+			"group_or_ledger": "Ledger",
 			'company': doc.company
 		}
 	}
diff --git a/accounts/doctype/mode_of_payment/mode_of_payment.py b/accounts/doctype/mode_of_payment/mode_of_payment.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/mode_of_payment/mode_of_payment.py
+++ b/accounts/doctype/mode_of_payment/mode_of_payment.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
index 3230ecf..a48520c 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
+++ b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // Booking Entry Id
 // --------------------
@@ -49,11 +36,11 @@
 }
 
 cur_frm.cscript.voucher_no  =function(doc, cdt, cdn) {
-	get_server_fields('get_voucher_details', '', '', doc, cdt, cdn, 1)
+	return get_server_fields('get_voucher_details', '', '', doc, cdt, cdn, 1)
 }
 
 cur_frm.cscript.account = function(doc, cdt, cdn) {
-	wn.call({
+	return wn.call({
 		doc: this.frm.doc,
 		method: "set_account_type",
 		callback: function(r) {
diff --git a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
index 6552490..dc2bcc5 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
+++ b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.txt b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.txt
index 235188e..accf515 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.txt
+++ b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-30 12:49:46", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:48:10", 
+  "modified": "2013-07-22 15:31:00", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -187,10 +187,6 @@
  }, 
  {
   "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
   "role": "Accounts Manager"
  }, 
  {
diff --git a/accounts/doctype/payment_to_invoice_matching_tool/test_payment_to_invoice_matching_tool.py b/accounts/doctype/payment_to_invoice_matching_tool/test_payment_to_invoice_matching_tool.py
index 4a90928..9edfbc3 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool/test_payment_to_invoice_matching_tool.py
+++ b/accounts/doctype/payment_to_invoice_matching_tool/test_payment_to_invoice_matching_tool.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import unittest
diff --git a/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.py b/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.py
+++ b/accounts/doctype/payment_to_invoice_matching_tool_detail/payment_to_invoice_matching_tool_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.js b/accounts/doctype/period_closing_voucher/period_closing_voucher.js
index fd45841..e2aca23 100644
--- a/accounts/doctype/period_closing_voucher/period_closing_voucher.js
+++ b/accounts/doctype/period_closing_voucher/period_closing_voucher.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 
 //========================== On Load =================================================
diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.py b/accounts/doctype/period_closing_voucher/period_closing_voucher.py
index 09ed07d..c214a21 100644
--- a/accounts/doctype/period_closing_voucher/period_closing_voucher.py
+++ b/accounts/doctype/period_closing_voucher/period_closing_voucher.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.txt b/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
index 77d55dc..6c3fadd 100644
--- a/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
+++ b/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:07", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:50:27", 
+  "modified": "2013-08-12 17:13:23", 
   "modified_by": "Administrator", 
   "owner": "jai@webnotestech.com"
  }, 
@@ -103,6 +103,7 @@
   "oldfieldtype": "Column Break"
  }, 
  {
+  "description": "The account head under Liability, in which Profit/Loss will be booked", 
   "doctype": "DocField", 
   "fieldname": "closing_account_head", 
   "fieldtype": "Link", 
diff --git a/accounts/doctype/pos_setting/pos_setting.js b/accounts/doctype/pos_setting/pos_setting.js
index 2f8beab..18f555b 100755
--- a/accounts/doctype/pos_setting/pos_setting.js
+++ b/accounts/doctype/pos_setting/pos_setting.js
@@ -1,25 +1,14 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.onload = function(doc,cdt,cdn){
-	$c_obj(make_doclist(cdt,cdn),'get_series','',function(r,rt){
+	return $c_obj(make_doclist(cdt,cdn),'get_series','',function(r,rt){
 		if(r.message) set_field_options('naming_series', r.message);
 	});
- 
 	
+	cur_frm.set_query("selling_price_list", function() {
+		return { filters: { buying_or_selling: "Selling" } };
+	});
 }
 
 //cash bank account
@@ -60,17 +49,6 @@
 	}	
 }
 
-//get query select Territory
-//=================================================================
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters:{
-			'is_group': "No"
-		}
-	}	
-}
-
-
 // ------------------ Get Print Heading ------------------------------------
 cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
 	return{
diff --git a/accounts/doctype/pos_setting/pos_setting.py b/accounts/doctype/pos_setting/pos_setting.py
index a024f6e..73f5ed6 100755
--- a/accounts/doctype/pos_setting/pos_setting.py
+++ b/accounts/doctype/pos_setting/pos_setting.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/pos_setting/pos_setting.txt b/accounts/doctype/pos_setting/pos_setting.txt
index 4454973..73b9246 100755
--- a/accounts/doctype/pos_setting/pos_setting.txt
+++ b/accounts/doctype/pos_setting/pos_setting.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 12:15:51", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:50:33", 
+  "modified": "2013-08-09 16:35:03", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -62,7 +62,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -81,7 +81,6 @@
   "reqd": 1
  }, 
  {
-  "default": "1", 
   "doctype": "DocField", 
   "fieldname": "conversion_rate", 
   "fieldtype": "Float", 
@@ -93,12 +92,12 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
-  "fieldtype": "Select", 
+  "fieldname": "selling_price_list", 
+  "fieldtype": "Link", 
   "label": "Price List", 
   "oldfieldname": "price_list_name", 
   "oldfieldtype": "Select", 
-  "options": "link:Price List", 
+  "options": "Price List", 
   "read_only": 0, 
   "reqd": 1
  }, 
@@ -132,12 +131,12 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "customer_account", 
+  "fieldname": "customer", 
   "fieldtype": "Link", 
-  "label": "Customer Account", 
+  "label": "Customer", 
   "oldfieldname": "customer_account", 
   "oldfieldtype": "Link", 
-  "options": "Account", 
+  "options": "Customer", 
   "read_only": 0, 
   "reqd": 0
  }, 
diff --git a/accounts/doctype/pos_setting/test_pos_setting.py b/accounts/doctype/pos_setting/test_pos_setting.py
index 91159b1..579a75e 100644
--- a/accounts/doctype/pos_setting/test_pos_setting.py
+++ b/accounts/doctype/pos_setting/test_pos_setting.py
@@ -1,10 +1,13 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "POS Setting",
 		"name": "_Test POS Setting",
 		"currency": "INR",
 		"conversion_rate": 1.0,
-		"price_list_name": "_Test Price List",
+		"selling_price_list": "_Test Price List",
 		"company": "_Test Company",
 		"warehouse": "_Test Warehouse - _TC",
 		"territory": "_Test Territory", 
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js
index 4afb838..b630499 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.tname = "Purchase Invoice Item";
 cur_frm.cscript.fname = "entries";
@@ -22,7 +9,7 @@
 wn.require('app/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js');
 wn.require('app/buying/doctype/purchase_common/purchase_common.js');
 
-erpnext.accounts.PurchaseInvoiceController = erpnext.buying.BuyingController.extend({
+erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
 	onload: function() {
 		this._super();
 		
@@ -103,34 +90,14 @@
 	tc_name: function() {
 		this.get_terms();
 	},
-
+	
+	entries_add: function(doc, cdt, cdn) {
+		var row = wn.model.get_doc(cdt, cdn);
+		this.frm.script_manager.copy_from_first_row("entries", row, ["expense_head", "cost_center"]);
+	}
 });
 
-// for backward compatibility: combine new and previous states
-$.extend(cur_frm.cscript, new erpnext.accounts.PurchaseInvoiceController({frm: cur_frm}));
-
-
-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['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.script_manager.make(erpnext.accounts.PurchaseInvoice);
 
 cur_frm.cscript.is_opening = function(doc, dt, dn) {
 	hide_field('aging_date');
@@ -138,7 +105,7 @@
 }
 
 cur_frm.cscript.make_bank_voucher = function() {
-	wn.call({
+	return wn.call({
 		method: "accounts.doctype.journal_voucher.journal_voucher.get_default_bank_cash_account",
 		args: {
 			"company": cur_frm.doc.company,
@@ -192,16 +159,13 @@
 	}	
 }
 
-cur_frm.fields_dict['entries'].grid.get_field("expense_head").get_query = function(doc) {
+cur_frm.set_query("expense_head", "entries", function(doc) {
 	return{
-		filters:{
-			'debit_or_credit':'Debit',
-			'account_type': 'Expense Account',
-			'group_or_ledger': 'Ledger',
-			'company': doc.company
-		}
-	}	
-}
+		query: "accounts.doctype.purchase_invoice.purchase_invoice.get_expense_account",
+		filters: {'company': doc.company}
+	}
+});
+
 cur_frm.cscript.expense_head = function(doc, cdt, cdn){
 	var d = locals[cdt][cdn];
 	if(d.idx == 1 && d.expense_head){
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index aa82492..516c014 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -58,6 +45,7 @@
 		self.check_for_acc_head_of_supplier()
 		self.check_for_stopped_status()
 		self.validate_with_previous_doc()
+		self.validate_uom_is_integer("uom", "qty")
 
 		if not self.doc.is_opening:
 			self.doc.is_opening = 'No'
@@ -70,7 +58,8 @@
 		self.validate_write_off_account()
 		self.update_raw_material_cost()
 		self.update_valuation_rate("entries")
-		self.validate_multiple_billing("Purchase Receipt", "pr_detail", "import_amount")
+		self.validate_multiple_billing("Purchase Receipt", "pr_detail", "import_amount", 
+			"purchase_receipt_details")
 
 	def get_credit_to(self):
 		acc_head = sql("""select name, credit_days from `tabAccount` 
@@ -89,19 +78,9 @@
 		return ret
 		
 	def set_supplier_defaults(self):
-		self.doc.fields.update(self.get_cust())
 		self.doc.fields.update(self.get_credit_to())
 		super(DocType, self).set_supplier_defaults()
 		
-	def get_cust(self):
-		ret = {}
-		if self.doc.credit_to:
-			acc = webnotes.conn.get_value('Account',self.doc.credit_to,['master_name', 'credit_days'])
-			ret['supplier'] = acc[0]
-			ret['due_date'] = add_days(cstr(self.doc.posting_date), acc and cint(acc[1]) or 0)
-			
-		return ret
-
 	def get_advances(self):
 		super(DocType, self).get_advances(self.doc.credit_to, 
 			"Purchase Invoice Advance", "advance_allocation_details", "debit")
@@ -194,9 +173,9 @@
 			},
 			"Purchase Order Item": {
 				"ref_dn_field": "po_detail",
-				"compare_fields": [["import_rate", "="], ["project_name", "="], ["item_code", "="], 
-					["uom", "="]],
-				"is_child_table": True
+				"compare_fields": [["project_name", "="], ["item_code", "="], ["uom", "="]],
+				"is_child_table": True,
+				"allow_duplicate_prev_row_id": True
 			},
 			"Purchase Receipt": {
 				"ref_dn_field": "purchase_receipt",
@@ -204,11 +183,26 @@
 			},
 			"Purchase Receipt Item": {
 				"ref_dn_field": "pr_detail",
-				"compare_fields": [["import_rate", "="], ["project_name", "="], ["item_code", "="], 
-					["uom", "="]],
+				"compare_fields": [["project_name", "="], ["item_code", "="], ["uom", "="]],
 				"is_child_table": True
 			}
 		})
+		
+		if cint(webnotes.defaults.get_global_default('maintain_same_rate')):
+			super(DocType, self).validate_with_previous_doc(self.tname, {
+				"Purchase Order Item": {
+					"ref_dn_field": "po_detail",
+					"compare_fields": [["import_rate", "="]],
+					"is_child_table": True,
+					"allow_duplicate_prev_row_id": True
+				},
+				"Purchase Receipt Item": {
+					"ref_dn_field": "pr_detail",
+					"compare_fields": [["import_rate", "="]],
+					"is_child_table": True
+				}
+			})
+			
 					
 	def set_aging_date(self):
 		if self.doc.is_opening != 'Yes':
@@ -245,14 +239,14 @@
 		self.doc.against_expense_account = ",".join(against_accounts)
 
 	def po_required(self):
-		if webnotes.conn.get_single_value("Buying Settings", "po_required") == 'Yes':
+		if webnotes.conn.get_value("Buying Settings", None, "po_required") == '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
 
 	def pr_required(self):
-		if webnotes.conn.get_single_value("Buying Settings", "pr_required") == 'Yes':
+		if webnotes.conn.get_value("Buying Settings", None, "pr_required") == 'Yes':
 			 for d in getlist(self.doclist,'entries'):
 				 if not d.purchase_receipt:
 					 msgprint("Purchase Receipt No. required against item %s"%d.item_code)
@@ -450,4 +444,18 @@
 					"UOM Conversion Detail", {"parent": d.item_code, "uom": d.uom}, 
 					"conversion_factor")) or 1
 		
-				d.rm_supp_cost = rm_cost * flt(d.qty) * flt(d.conversion_factor)
\ No newline at end of file
+				d.rm_supp_cost = rm_cost * flt(d.qty) * flt(d.conversion_factor)
+				
+@webnotes.whitelist()
+def get_expense_account(doctype, txt, searchfield, start, page_len, filters):
+	from controllers.queries import get_match_cond
+
+	return webnotes.conn.sql("""select tabAccount.name from `tabAccount` 
+			where (tabAccount.debit_or_credit="Debit" 
+					or tabAccount.account_type = "Expense Account") 
+				and tabAccount.group_or_ledger="Ledger" 
+				and tabAccount.docstatus!=2 
+				and tabAccount.company = '%(company)s' 
+				and tabAccount.%(key)s LIKE '%(txt)s'
+				%(mcond)s""" % {'company': filters['company'], 'key': searchfield, 
+			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield)})
\ No newline at end of file
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.txt b/accounts/doctype/purchase_invoice/purchase_invoice.txt
index 64b9f5c..f5bdd93 100755
--- a/accounts/doctype/purchase_invoice/purchase_invoice.txt
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-21 16:16:39", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:51:06", 
+  "modified": "2013-08-09 14:45:35", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -59,7 +59,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -70,21 +70,6 @@
   "reqd": 1
  }, 
  {
-  "description": "The account to which you will pay (have paid) the money to.", 
-  "doctype": "DocField", 
-  "fieldname": "credit_to", 
-  "fieldtype": "Link", 
-  "in_filter": 1, 
-  "label": "Credit To", 
-  "oldfieldname": "credit_to", 
-  "oldfieldtype": "Link", 
-  "options": "Account", 
-  "print_hide": 1, 
-  "read_only": 0, 
-  "reqd": 1, 
-  "search_index": 1
- }, 
- {
   "doctype": "DocField", 
   "fieldname": "supplier", 
   "fieldtype": "Link", 
@@ -238,7 +223,6 @@
   "read_only": 0
  }, 
  {
-  "default": "1", 
   "description": "The rate at which Bill Currency is converted into company's base currency", 
   "doctype": "DocField", 
   "fieldname": "conversion_rate", 
@@ -258,7 +242,7 @@
  {
   "description": "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)", 
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
+  "fieldname": "buying_price_list", 
   "fieldtype": "Link", 
   "label": "Price List", 
   "options": "Price List", 
@@ -266,17 +250,17 @@
   "read_only": 0
  }, 
  {
-  "depends_on": "price_list_name", 
+  "depends_on": "buying_price_list", 
   "doctype": "DocField", 
   "fieldname": "price_list_currency", 
   "fieldtype": "Link", 
   "label": "Price List Currency", 
   "options": "Currency", 
   "print_hide": 1, 
-  "read_only": 0
+  "read_only": 1
  }, 
  {
-  "depends_on": "price_list_name", 
+  "depends_on": "buying_price_list", 
   "doctype": "DocField", 
   "fieldname": "plc_conversion_rate", 
   "fieldtype": "Float", 
@@ -676,6 +660,21 @@
   "read_only": 0
  }, 
  {
+  "description": "Supplier (Payable) Account", 
+  "doctype": "DocField", 
+  "fieldname": "credit_to", 
+  "fieldtype": "Link", 
+  "in_filter": 1, 
+  "label": "Credit To", 
+  "oldfieldname": "credit_to", 
+  "oldfieldtype": "Link", 
+  "options": "Account", 
+  "print_hide": 1, 
+  "read_only": 0, 
+  "reqd": 1, 
+  "search_index": 1
+ }, 
+ {
   "default": "No", 
   "description": "Considered as Opening Balance", 
   "doctype": "DocField", 
@@ -771,22 +770,22 @@
   "reqd": 0
  }, 
  {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
+  "amend": 0, 
+  "cancel": 0, 
+  "create": 0, 
   "doctype": "DocPerm", 
   "role": "Accounts User", 
-  "submit": 1, 
-  "write": 1
+  "submit": 0, 
+  "write": 0
  }, 
  {
   "amend": 0, 
   "cancel": 0, 
-  "create": 1, 
+  "create": 0, 
   "doctype": "DocPerm", 
   "role": "Purchase User", 
   "submit": 0, 
-  "write": 1
+  "write": 0
  }, 
  {
   "amend": 0, 
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice_list.js b/accounts/doctype/purchase_invoice/purchase_invoice_list.js
index 7b410a3..96c0664 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice_list.js
+++ b/accounts/doctype/purchase_invoice/purchase_invoice_list.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 // render
 wn.listview_settings['Purchase Invoice'] = {
 	add_fields: ["`tabPurchase Invoice`.grand_total", "`tabPurchase Invoice`.outstanding_amount"],
diff --git a/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/accounts/doctype/purchase_invoice/test_purchase_invoice.py
index 55a6a81..7d68602 100644
--- a/accounts/doctype/purchase_invoice/test_purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/test_purchase_invoice.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 
 from __future__ import unicode_literals
diff --git a/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.py b/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.py
+++ b/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/purchase_invoice_item/purchase_invoice_item.py b/accounts/doctype/purchase_invoice_item/purchase_invoice_item.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/purchase_invoice_item/purchase_invoice_item.py
+++ b/accounts/doctype/purchase_invoice_item/purchase_invoice_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.py b/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.py
+++ b/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
index ba1a06b..423c4e4 100644
--- a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
+++ b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // 
 
@@ -156,7 +143,7 @@
   }
   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);
+    return get_server_fields('get_rate', arg, 'purchase_tax_details', doc, cdt, cdn, 1);
   }
   refresh_field('account_head',d.name,'purchase_tax_details');
 }
diff --git a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.py b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.py
index 995415e..a4534ae 100644
--- a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.py
+++ b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt
index cd366f6..f902ade 100644
--- a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt
+++ b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:08", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:52:17", 
+  "modified": "2013-07-22 15:22:25", 
   "modified_by": "Administrator", 
   "owner": "wasim@webnotestech.com"
  }, 
@@ -85,13 +85,6 @@
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "role": "System Manager", 
-  "write": 1
- }, 
- {
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
   "role": "Purchase Master Manager", 
   "write": 1
  }
diff --git a/accounts/doctype/sales_invoice/pos.js b/accounts/doctype/sales_invoice/pos.js
new file mode 100644
index 0000000..5045530
--- /dev/null
+++ b/accounts/doctype/sales_invoice/pos.js
@@ -0,0 +1,60 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
+erpnext.POS = Class.extend({
+	init: function(wrapper, frm) {
+		this.wrapper = wrapper;
+		this.frm = frm;
+		this.wrapper.html('<div class="customer-area"></div>\
+			<div class="item-area"></div>\
+			<div><button class="btn btn-default btn-add">Add</button>');
+		
+		this.make();
+
+		var me = this;
+		$(this.frm.wrapper).on("refresh-fields", function() {
+			me.refresh();
+		});
+
+	},
+	make: function() {
+		this.make_customer();
+		this.make_items();
+	},
+	make_customer: function() {
+		var me = this;
+		this.customer = wn.ui.form.make_control({
+			df: {
+				"fieldtype": "Link",
+				"options": "Customer",
+				"label": "Customer",
+				"fieldname": "pos_customer"
+			},
+			parent: this.wrapper.find(".customer-area")
+		});
+		this.customer.make_input();
+		this.customer.$input.on("change", function() {
+			if(!me.customer.autocomplete_open)
+				wn.model.set_value("Sales Invoice", me.frm.docname, "customer", this.value);
+		});		
+	},
+	make_items: function() {
+		var me = this;
+		this.wrapper.find(".btn-add").click(function() {
+			var child = wn.model.add_child(me.frm.doc, "Sales Invoice Item", "entries");
+			child.item_code = "Test Item";
+			me.frm.cscript.item_code(me.frm.doc, child.doctype, child.name);
+		});
+	},
+	refresh: function() {
+		var me = this;
+		this.customer.set_input(this.frm.doc.customer);
+		
+		// add items
+		var $items = me.wrapper.find(".item-area").empty();
+		$.each(wn.model.get_children("Sales Invoice Item", this.frm.doc.name, "entries", 
+			"Sales Invoice"), function(i, d) {
+				$(repl("<div>%(item_code)s</div>", d)).appendTo($items);
+			});
+	}
+})
\ No newline at end of file
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 90239fa..8db8a72 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.tname = "Sales Invoice Item";
 cur_frm.cscript.fname = "entries";
@@ -25,6 +12,7 @@
 wn.require('app/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js');
 wn.require('app/utilities/doctype/sms_control/sms_control.js');
 wn.require('app/selling/doctype/sales_common/sales_common.js');
+// wn.require('app/accounts/doctype/sales_invoice/pos.js');
 
 wn.provide("erpnext.accounts");
 erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.extend({
@@ -37,6 +25,9 @@
 				this.frm.set_df_property("debit_to", "print_hide", 0);
 			}
 		}
+		// if(this.frm.doc.is_pos && this.frm.doc.docstatus===0) {
+		//   cur_frm.cscript.toggle_pos(true);
+		// }
 	},
 	
 	refresh: function(doc, dt, dn) {
@@ -60,7 +51,7 @@
 
 			cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 
-			if(doc.is_pos==1 && doc.update_stock!=1)
+			if(cint(doc.update_stock)!=1)
 				cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']);
 
 			if(doc.outstanding_amount!=0)
@@ -88,38 +79,69 @@
 					wn.model.map_current_doc({
 						method: "stock.doctype.delivery_note.delivery_note.make_sales_invoice",
 						source_doctype: "Delivery Note",
-						get_query_filters: {
-							docstatus: 1,
-							customer: cur_frm.doc.customer || undefined,
-							company: cur_frm.doc.company
+						get_query: function() {
+							var filters = {
+								docstatus: 1,
+								company: cur_frm.doc.company
+							};
+							if(cur_frm.doc.customer) filters["customer"] = cur_frm.doc.customer;
+							return {
+								query: "controllers.queries.get_delivery_notes_to_be_billed",
+								filters: filters
+							};
 						}
-					})
+					});
 				});
+				
+			// cur_frm.add_custom_button(wn._("POS View"), function() {
+			// 	cur_frm.cscript.toggle_pos();
+			// }, 'icon-desktop');
 
 		}
-		
-		cur_frm.cscript.hide_fields(doc, dt, dn);
 	},
 
+	toggle_pos: function(show) {
+		if((show===true && cur_frm.pos_active) || (show===false && !cur_frm.pos_active)) return;
+		
+		// make pos
+		if(!cur_frm.pos) {
+			cur_frm.layout.add_view("pos");
+			cur_frm.pos = new erpnext.POS(cur_frm.layout.views.pos, cur_frm);
+		}
+		
+		// toggle view
+		cur_frm.layout.set_view(cur_frm.pos_active ? "" : "pos");
+		cur_frm.pos_active = !cur_frm.pos_active;
+		
+		// refresh
+		if(cur_frm.pos_active)
+			cur_frm.pos.refresh();
+		
+	},
 	tc_name: function() {
 		this.get_terms();
 	},
 	
 	is_pos: function() {
+		cur_frm.cscript.hide_fields(this.frm.doc);
+		
 		if(cint(this.frm.doc.is_pos)) {
 			if(!this.frm.doc.company) {
 				this.frm.set_value("is_pos", 0);
 				msgprint(wn._("Please specify Company to proceed"));
 			} else {
 				var me = this;
-				this.frm.call({
+				return this.frm.call({
 					doc: me.frm.doc,
 					method: "set_missing_values",
+					callback: function(r) {
+						if(!r.exc) {
+							me.frm.script_manager.trigger("update_stock");
+						}
+					}
 				});
 			}
 		}
-		
-		// TODO toggle display of fields
 	},
 	
 	debit_to: function() {
@@ -150,6 +172,16 @@
 	paid_amount: function() {
 		this.write_off_outstanding_amount_automatically();
 	},
+	
+	entries_add: function(doc, cdt, cdn) {
+		var row = wn.model.get_doc(cdt, cdn);
+		this.frm.script_manager.copy_from_first_row("entries", row, ["income_account", "cost_center"]);
+	},
+	
+	set_dynamic_labels: function() {
+		this._super();
+		this.hide_fields(this.frm.doc);
+	}
 });
 
 // for backward compatibility: combine new and previous states
@@ -157,37 +189,41 @@
 
 // Hide Fields
 // ------------
-cur_frm.cscript.hide_fields = function(doc, cdt, cdn) {
-	par_flds = ['project_name', 'due_date', 'is_opening', 'conversion_rate',
-	'source', 'total_advance', 'gross_profit',
+cur_frm.cscript.hide_fields = function(doc) {
+	par_flds = ['project_name', 'due_date', 'is_opening', 'source', 'total_advance', 'gross_profit',
 	'gross_profit_percent', 'get_advances_received',
 	'advance_adjustment_details', 'sales_partner', 'commission_rate',
 	'total_commission', 'advances'];
 	
 	item_flds_normal = ['sales_order', 'delivery_note']
-	item_flds_pos = ['warehouse', 'serial_no', 'batch_no', 'actual_qty', 
-		'delivered_qty', 'expense_account']
+	item_flds_pos = ['serial_no', 'batch_no', 'actual_qty', 'expense_account']
 	
 	if(cint(doc.is_pos) == 1) {
 		hide_field(par_flds);
 		unhide_field('payments_section');
-		for(f in item_flds_normal) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal[f], false);
+		cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal, false);
 	} else {
 		hide_field('payments_section');
-		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 (i in par_flds) {
+			var docfield = wn.meta.docfield_map[doc.doctype][par_flds[i]];
+			if(!docfield.hidden) unhide_field(par_flds[i]);
+		}
+		cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal, true);
 	}
-	for(f in item_flds_pos) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_pos[f], (cint(doc.update_stock)==1?true:false));
-
+	
+	cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_pos, (cint(doc.update_stock)==1?true: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']);
+	
+	cur_frm.refresh_fields();
 }
 
 
 cur_frm.cscript.mode_of_payment = function(doc) {
-	cur_frm.call({
+	return cur_frm.call({
 		method: "get_bank_cash_account",
 		args: { mode_of_payment: doc.mode_of_payment }
 	});
@@ -197,25 +233,6 @@
 	cur_frm.cscript.hide_fields(doc, dt, dn);
 }
 
-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');
@@ -232,7 +249,7 @@
 }
 
 cur_frm.cscript.make_bank_voucher = function() {
-	wn.call({
+	return wn.call({
 		method: "accounts.doctype.journal_voucher.journal_voucher.get_default_bank_cash_account",
 		args: {
 			"company": cur_frm.doc.company,
@@ -297,14 +314,6 @@
 	}	
 }
 
-//Territory
-//-----------------------------
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters: {'is_group': 'NO'}
-	}	
-}
-
 // Income Account in Details Table
 // --------------------------------
 cur_frm.set_query("income_account", "entries", function(doc) {
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index 93fb47f..87afd74 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -60,6 +47,8 @@
 		self.so_dn_required()
 		self.validate_proj_cust()
 		self.validate_with_previous_doc()
+		self.validate_uom_is_integer("stock_uom", "qty")
+
 		sales_com_obj = get_obj('Sales Common')
 		sales_com_obj.check_stop_sales_order(self)
 		sales_com_obj.check_active_sales_items(self)
@@ -91,7 +80,8 @@
 		self.validate_c_form()
 		self.validate_time_logs_are_submitted()
 		self.validate_recurring_invoice()
-		self.validate_multiple_billing("Delivered Note", "dn_detail", "export_amount")
+		self.validate_multiple_billing("Delivery Note", "dn_detail", "export_amount", 
+			"delivery_note_details")
 
 	def on_submit(self):
 		if cint(self.doc.update_stock) == 1:
@@ -171,8 +161,8 @@
 		self.convert_to_recurring()
 		
 	def set_missing_values(self, for_validate=False):
-		super(DocType, self).set_missing_values(for_validate)
 		self.set_pos_fields(for_validate)
+		super(DocType, self).set_missing_values(for_validate)
 		
 	def set_customer_defaults(self):
 		# TODO cleanup these methods
@@ -207,14 +197,12 @@
 		if pos:
 			self.doc.conversion_rate = flt(pos.conversion_rate)
 			
-			if not self.doc.debit_to:
-				self.doc.debit_to = self.doc.customer and webnotes.conn.get_value("Account", {
-					"name": self.doc.customer + " - " + self.get_company_abbr(), 
-					"docstatus": ["!=", 2]
-				}) or pos.customer_account
-				
+			if not for_validate:
+				self.doc.customer = pos.customer
+				self.set_customer_defaults()
+
 			for fieldname in ('territory', 'naming_series', 'currency', 'charge', 'letter_head', 'tc_name',
-				'price_list_name', 'company', 'select_print_heading', 'cash_bank_account'):
+				'selling_price_list', 'company', 'select_print_heading', 'cash_bank_account'):
 					if (not for_validate) or (for_validate and not self.doc.fields.get(fieldname)):
 						self.doc.fields[fieldname] = pos.get(fieldname)
 						
@@ -374,22 +362,28 @@
 				"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
 					["currency", "="]],
 			},
-			"Sales Order Item": {
-				"ref_dn_field": "so_detail",
-				"compare_fields": [["export_rate", "="]],
-				"is_child_table": True
-			},
 			"Delivery Note": {
 				"ref_dn_field": "delivery_note",
 				"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
 					["currency", "="]],
 			},
-			"Delivery Note Item": {
-				"ref_dn_field": "dn_detail",
-				"compare_fields": [["export_rate", "="]],
-				"is_child_table": True
-			}
 		})
+		
+		if cint(webnotes.defaults.get_global_default('maintain_same_sales_rate')):
+			super(DocType, self).validate_with_previous_doc(self.tname, {
+				"Sales Order Item": {
+					"ref_dn_field": "so_detail",
+					"compare_fields": [["export_rate", "="]],
+					"is_child_table": True,
+					"allow_duplicate_prev_row_id": True
+				},
+				"Delivery Note Item": {
+					"ref_dn_field": "dn_detail",
+					"compare_fields": [["export_rate", "="]],
+					"is_child_table": True
+				}
+			})
+			
 
 	def set_aging_date(self):
 		if self.doc.is_opening != 'Yes':
@@ -415,8 +409,8 @@
 	def so_dn_required(self):
 		"""check in manage account if sales order / delivery note required or not."""
 		dic = {'Sales Order':'so_required','Delivery Note':'dn_required'}
-		for i in dic:	
-			if webnotes.conn.get_single_value('Selling Settings', dic[i]) == 'Yes':
+		for i in dic:
+			if webnotes.conn.get_value('Selling Settings', None, dic[i]) == 'Yes':
 				for d in getlist(self.doclist,'entries'):
 					if webnotes.conn.get_value('Item', d.item_code, 'is_stock_item') == 'Yes' \
 						and not d.fields[i.lower().replace(' ','_')]:
@@ -964,6 +958,7 @@
 		"cash_bank_account": val
 	}
 
+@webnotes.whitelist()
 def get_income_account(doctype, txt, searchfield, start, page_len, filters):
 	from controllers.queries import get_match_cond
 
@@ -975,4 +970,52 @@
 				and tabAccount.company = '%(company)s' 
 				and tabAccount.%(key)s LIKE '%(txt)s'
 				%(mcond)s""" % {'company': filters['company'], 'key': searchfield, 
-			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield)})
\ No newline at end of file
+			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield)})
+
+
+@webnotes.whitelist()
+def make_delivery_note(source_name, target_doclist=None):
+	from webnotes.model.mapper import get_mapped_doclist
+	
+	def set_missing_values(source, target):
+		bean = webnotes.bean(target)
+		bean.run_method("onload_post_render")
+		
+	def update_item(source_doc, target_doc, source_parent):
+		target_doc.amount = (flt(source_doc.qty) - flt(source_doc.delivered_qty)) * \
+			flt(source_doc.basic_rate)
+		target_doc.export_amount = (flt(source_doc.qty) - flt(source_doc.delivered_qty)) * \
+			flt(source_doc.export_rate)
+		target_doc.qty = flt(source_doc.qty) - flt(source_doc.delivered_qty)
+	
+	doclist = get_mapped_doclist("Sales Invoice", source_name, 	{
+		"Sales Invoice": {
+			"doctype": "Delivery Note", 
+			"validation": {
+				"docstatus": ["=", 1]
+			}
+		}, 
+		"Sales Invoice Item": {
+			"doctype": "Delivery Note Item", 
+			"field_map": {
+				"name": "prevdoc_detail_docname", 
+				"parent": "prevdoc_docname", 
+				"parenttype": "prevdoc_doctype",
+				"serial_no": "serial_no"
+			},
+			"postprocess": update_item
+		}, 
+		"Sales Taxes and Charges": {
+			"doctype": "Sales Taxes and Charges", 
+			"add_if_empty": True
+		}, 
+		"Sales Team": {
+			"doctype": "Sales Team", 
+			"field_map": {
+				"incentives": "incentives"
+			},
+			"add_if_empty": True
+		}
+	}, target_doclist, set_missing_values)
+	
+	return [d.fields for d in doclist]
\ No newline at end of file
diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt
index e3c60a0..dbdf42f 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.txt
+++ b/accounts/doctype/sales_invoice/sales_invoice.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:05", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:48:05", 
+  "modified": "2013-08-09 14:45:42", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -52,7 +52,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -62,21 +62,6 @@
   "reqd": 1
  }, 
  {
-  "description": "The account to which you will pay (have paid) the money to.", 
-  "doctype": "DocField", 
-  "fieldname": "debit_to", 
-  "fieldtype": "Link", 
-  "in_filter": 1, 
-  "label": "Debit To", 
-  "oldfieldname": "debit_to", 
-  "oldfieldtype": "Link", 
-  "options": "Account", 
-  "print_hide": 1, 
-  "read_only": 0, 
-  "reqd": 1, 
-  "search_index": 1
- }, 
- {
   "doctype": "DocField", 
   "fieldname": "customer", 
   "fieldtype": "Link", 
@@ -261,12 +246,12 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
-  "fieldtype": "Select", 
+  "fieldname": "selling_price_list", 
+  "fieldtype": "Link", 
   "label": "Price List", 
   "oldfieldname": "price_list_name", 
   "oldfieldtype": "Select", 
-  "options": "link:Price List", 
+  "options": "Price List", 
   "print_hide": 1, 
   "read_only": 0, 
   "reqd": 1
@@ -279,7 +264,7 @@
   "label": "Price List Currency", 
   "options": "Currency", 
   "print_hide": 1, 
-  "read_only": 0, 
+  "read_only": 1, 
   "reqd": 1
  }, 
  {
@@ -822,6 +807,21 @@
   "read_only": 0
  }, 
  {
+  "description": "Customer (Receivable) Account", 
+  "doctype": "DocField", 
+  "fieldname": "debit_to", 
+  "fieldtype": "Link", 
+  "in_filter": 1, 
+  "label": "Debit To", 
+  "oldfieldname": "debit_to", 
+  "oldfieldtype": "Link", 
+  "options": "Account", 
+  "print_hide": 1, 
+  "read_only": 0, 
+  "reqd": 1, 
+  "search_index": 1
+ }, 
+ {
   "description": "Track this Sales Invoice against any Project", 
   "doctype": "DocField", 
   "fieldname": "project_name", 
diff --git a/accounts/doctype/sales_invoice/sales_invoice_list.js b/accounts/doctype/sales_invoice/sales_invoice_list.js
index 5b6230d..3ebcac9 100644
--- a/accounts/doctype/sales_invoice/sales_invoice_list.js
+++ b/accounts/doctype/sales_invoice/sales_invoice_list.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 // render
 wn.listview_settings['Sales Invoice'] = {
 	add_fields: ["`tabSales Invoice`.grand_total", "`tabSales Invoice`.outstanding_amount"],
diff --git a/accounts/doctype/sales_invoice/sales_invoice_map.js b/accounts/doctype/sales_invoice/sales_invoice_map.js
index dec4c6f..81506ea 100644
--- a/accounts/doctype/sales_invoice/sales_invoice_map.js
+++ b/accounts/doctype/sales_invoice/sales_invoice_map.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.model.map_info["Sales Invoice"] = {
 	"Time Log Batch": {
 		table_map: {
diff --git a/accounts/doctype/sales_invoice/test_sales_invoice.py b/accounts/doctype/sales_invoice/test_sales_invoice.py
index ec4535b..05e4d92 100644
--- a/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -1,6 +1,10 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 import unittest, json
 from webnotes.utils import flt, cint
+from webnotes.model.bean import DocstatusTransitionError, TimestampMismatchError
 
 class TestSalesInvoice(unittest.TestCase):
 	def make(self):
@@ -9,6 +13,32 @@
 		w.submit()
 		return w
 		
+	def test_double_submission(self):
+		w = webnotes.bean(copy=test_records[0])
+		w.doc.docstatus = '0'
+		w.insert()
+		
+		w2 = [d for d in w.doclist]
+		w.submit()
+		
+		w = webnotes.bean(w2)
+		self.assertRaises(DocstatusTransitionError, w.submit)
+		
+	def test_timestamp_change(self):
+		w = webnotes.bean(copy=test_records[0])
+		w.doc.docstatus = '0'
+		w.insert()
+
+		w2 = webnotes.bean([d.fields.copy() for d in w.doclist])
+		
+		import time
+		time.sleep(1)
+		w.save()
+		
+		import time
+		time.sleep(1)
+		self.assertRaises(TimestampMismatchError, w2.save)
+		
 	def test_sales_invoice_calculation_base_currency(self):
 		si = webnotes.bean(copy=test_records[2])
 		si.run_method("calculate_taxes_and_totals")
@@ -131,7 +161,7 @@
 		expected_values = {
 			"keys": ["ref_rate", "adj_rate", "export_rate", "export_amount", 
 				"base_ref_rate", "basic_rate", "amount"],
-			"_Test Item Home Desktop 100": [62.5, 0, 62.5, 625.0, 50, 50, 500],
+			"_Test Item Home Desktop 100": [62.5, 0, 62.5, 625.0, 50, 50, 499.98],
 			"_Test Item Home Desktop 200": [190.66, 0, 190.66, 953.3, 150, 150, 750],
 		}
 		
@@ -145,28 +175,28 @@
 				self.assertEquals(d.fields.get(k), expected_values[d.item_code][i])
 		
 		# check net total
-		self.assertEquals(si.doc.net_total, 1250)
+		self.assertEquals(si.doc.net_total, 1249.98)
 		self.assertEquals(si.doc.net_total_export, 1578.3)
 		
 		# check tax calculation
 		expected_values = {
 			"keys": ["tax_amount", "total"],
-			"_Test Account Excise Duty - _TC": [140, 1390],
-			"_Test Account Education Cess - _TC": [2.8, 1392.8],
-			"_Test Account S&H Education Cess - _TC": [1.4, 1394.2],
-			"_Test Account CST - _TC": [27.88, 1422.08],
-			"_Test Account VAT - _TC": [156.25, 1578.33],
-			"_Test Account Customs Duty - _TC": [125, 1703.33],
-			"_Test Account Shipping Charges - _TC": [100, 1803.33],
-			"_Test Account Discount - _TC": [-180.33, 1623]
+			"_Test Account Excise Duty - _TC": [140, 1389.98],
+			"_Test Account Education Cess - _TC": [2.8, 1392.78],
+			"_Test Account S&H Education Cess - _TC": [1.4, 1394.18],
+			"_Test Account CST - _TC": [27.88, 1422.06],
+			"_Test Account VAT - _TC": [156.25, 1578.31],
+			"_Test Account Customs Duty - _TC": [125, 1703.31],
+			"_Test Account Shipping Charges - _TC": [100, 1803.31],
+			"_Test Account Discount - _TC": [-180.33, 1622.98]
 		}
 		
 		for d in si.doclist.get({"parentfield": "other_charges"}):
 			for i, k in enumerate(expected_values["keys"]):
 				self.assertEquals(flt(d.fields.get(k), 6), expected_values[d.account_head][i])
 		
-		self.assertEquals(si.doc.grand_total, 1623)
-		self.assertEquals(si.doc.grand_total_export, 1623)
+		self.assertEquals(si.doc.grand_total, 1622.98)
+		self.assertEquals(si.doc.grand_total_export, 1622.98)
 		
 	def test_sales_invoice_calculation_export_currency_with_tax_inclusive_price(self):
 		# prepare
@@ -185,8 +215,8 @@
 		expected_values = {
 			"keys": ["ref_rate", "adj_rate", "export_rate", "export_amount", 
 				"base_ref_rate", "basic_rate", "amount"],
-			"_Test Item Home Desktop 100": [55.56, 10, 50, 500, 2222.11, 1999.9, 19999.0],
-			"_Test Item Home Desktop 200": [187.5, 20, 150, 750, 7375.66, 5900.53, 29502.65],
+			"_Test Item Home Desktop 100": [55.56, 10, 50, 500, 2222.11, 1999.9, 19999.04],
+			"_Test Item Home Desktop 200": [187.5, 20, 150, 750, 7375.66, 5900.53, 29502.66],
 		}
 		
 		# check if children are saved
@@ -199,27 +229,27 @@
 				self.assertEquals(d.fields.get(k), expected_values[d.item_code][i])
 		
 		# check net total
-		self.assertEquals(si.doc.net_total, 49501.65)
+		self.assertEquals(si.doc.net_total, 49501.7)
 		self.assertEquals(si.doc.net_total_export, 1250)
 		
 		# check tax calculation
 		expected_values = {
 			"keys": ["tax_amount", "total"],
-			"_Test Account Excise Duty - _TC": [5540.22, 55041.87],
-			"_Test Account Education Cess - _TC": [110.81, 55152.68],
-			"_Test Account S&H Education Cess - _TC": [55.4, 55208.08],
-			"_Test Account CST - _TC": [1104.16, 56312.24],
-			"_Test Account VAT - _TC": [6187.71, 62499.95],
-			"_Test Account Customs Duty - _TC": [4950.17, 67450.12],
-			"_Test Account Shipping Charges - _TC": [5000, 72450.12],
-			"_Test Account Discount - _TC": [-7245.01, 65205.11]
+			"_Test Account Excise Duty - _TC": [5540.22, 55041.92],
+			"_Test Account Education Cess - _TC": [110.81, 55152.73],
+			"_Test Account S&H Education Cess - _TC": [55.4, 55208.13],
+			"_Test Account CST - _TC": [1104.16, 56312.29],
+			"_Test Account VAT - _TC": [6187.71, 62500],
+			"_Test Account Customs Duty - _TC": [4950.17, 67450.17],
+			"_Test Account Shipping Charges - _TC": [5000, 72450.17],
+			"_Test Account Discount - _TC": [-7245.01, 65205.16]
 		}
 		
 		for d in si.doclist.get({"parentfield": "other_charges"}):
 			for i, k in enumerate(expected_values["keys"]):
 				self.assertEquals(flt(d.fields.get(k), 6), expected_values[d.account_head][i])
 		
-		self.assertEquals(si.doc.grand_total, 65205.11)
+		self.assertEquals(si.doc.grand_total, 65205.16)
 		self.assertEquals(si.doc.grand_total_export, 1304.1)
 
 	def test_outstanding(self):
@@ -607,8 +637,6 @@
 				self.assertEquals(new_si.doc.invoice_period_to_date, 
 					unicode(add_months(base_si.doc.invoice_period_to_date, no_of_months)))
 					
-			self.assertEquals(getdate(new_si.doc.posting_date).day, 
-				base_si.doc.repeat_on_day_of_month)
 			
 			return new_si
 		
@@ -638,7 +666,7 @@
 			"plc_conversion_rate": 1.0, 
 			"posting_date": "2013-01-23", 
 			"price_list_currency": "INR", 
-			"price_list_name": "_Test Price List", 
+			"selling_price_list": "_Test Price List", 
 			"territory": "_Test Territory"
 		}, 
 		{
@@ -701,7 +729,7 @@
 			"plc_conversion_rate": 1.0, 
 			"posting_date": "2013-03-07", 
 			"price_list_currency": "INR", 
-			"price_list_name": "_Test Price List", 
+			"selling_price_list": "_Test Price List", 
 			"territory": "_Test Territory"
 		}, 
 		{
@@ -752,7 +780,7 @@
 			"plc_conversion_rate": 1.0, 
 			"posting_date": "2013-01-23", 
 			"price_list_currency": "INR", 
-			"price_list_name": "_Test Price List", 
+			"selling_price_list": "_Test Price List", 
 			"territory": "_Test Territory",
 		},
 		# items
@@ -877,7 +905,7 @@
 			"plc_conversion_rate": 1.0, 
 			"posting_date": "2013-01-23", 
 			"price_list_currency": "INR", 
-			"price_list_name": "_Test Price List", 
+			"selling_price_list": "_Test Price List", 
 			"territory": "_Test Territory",
 		},
 		# items
diff --git a/accounts/doctype/sales_invoice_advance/sales_invoice_advance.py b/accounts/doctype/sales_invoice_advance/sales_invoice_advance.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/sales_invoice_advance/sales_invoice_advance.py
+++ b/accounts/doctype/sales_invoice_advance/sales_invoice_advance.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/sales_invoice_item/sales_invoice_item.py b/accounts/doctype/sales_invoice_item/sales_invoice_item.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/sales_invoice_item/sales_invoice_item.py
+++ b/accounts/doctype/sales_invoice_item/sales_invoice_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/sales_invoice_item/sales_invoice_item.txt b/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
index 03b9f8b..057f166 100644
--- a/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
+++ b/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-04 11:02:19", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:19", 
+  "modified": "2013-07-25 16:32:10", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -107,9 +107,10 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "in_list_view": 0, 
   "label": "UOM", 
+  "options": "UOM", 
   "read_only": 1
  }, 
  {
diff --git a/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.py b/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.py
index 7f48feb..26d0f76 100644
--- a/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.py
+++ b/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
index 4430960..f1a6027 100644
--- a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
+++ b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 //--------- ONLOAD -------------
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
@@ -25,7 +12,7 @@
 }
 
 // For customizing print
-cur_frm.pformat.net_total = function(doc) {
+cur_frm.pformat.net_total_export = function(doc) {
 	return '';
 }
 
@@ -70,8 +57,8 @@
 		// main table
 
 		out +='<table class="noborder" style="width:100%">';
-		if(!print_hide('net_total')) {
-			out +=make_row('Net Total',convert_rate(doc.net_total),1);
+		if(!print_hide('net_total_export')) {
+			out += make_row('Net Total', doc.net_total_export, 1);
 		}
 
 		// add rows
@@ -165,7 +152,7 @@
 	}
 	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);
+		return get_server_fields('get_rate', arg, 'other_charges', doc, cdt, cdn, 1);
 	}
 	refresh_field('account_head',d.name,'other_charges');
 }
diff --git a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.py b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.py
index 27316ca..019edcb 100644
--- a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.py
+++ b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt
index 0ffc27d..20e4076 100644
--- a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt
+++ b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:09", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:54:37", 
+  "modified": "2013-07-22 15:22:14", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -24,6 +24,7 @@
   "permlevel": 0
  }, 
  {
+  "amend": 0, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Sales Taxes and Charges Master", 
@@ -97,7 +98,6 @@
   "reqd": 1
  }, 
  {
-  "amend": 0, 
   "cancel": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
@@ -105,7 +105,6 @@
   "write": 0
  }, 
  {
-  "amend": 0, 
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
@@ -116,14 +115,6 @@
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "role": "System Manager", 
-  "write": 1
- }, 
- {
-  "amend": 0, 
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
   "role": "Sales Master Manager", 
   "write": 1
  }
diff --git a/accounts/doctype/sales_taxes_and_charges_master/test_sales_taxes_and_charges_master.py b/accounts/doctype/sales_taxes_and_charges_master/test_sales_taxes_and_charges_master.py
index 9bea271..74b0b4e 100644
--- a/accounts/doctype/sales_taxes_and_charges_master/test_sales_taxes_and_charges_master.py
+++ b/accounts/doctype/sales_taxes_and_charges_master/test_sales_taxes_and_charges_master.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[
 		{
diff --git a/accounts/doctype/shipping_rule/shipping_rule.js b/accounts/doctype/shipping_rule/shipping_rule.js
index 8e8580b..2aeb8dd 100644
--- a/accounts/doctype/shipping_rule/shipping_rule.js
+++ b/accounts/doctype/shipping_rule/shipping_rule.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 $.extend(cur_frm.cscript, {
 	onload: function() {
 		erpnext.add_for_territory();
diff --git a/accounts/doctype/shipping_rule/shipping_rule.py b/accounts/doctype/shipping_rule/shipping_rule.py
index a363b18..4eafb01 100644
--- a/accounts/doctype/shipping_rule/shipping_rule.py
+++ b/accounts/doctype/shipping_rule/shipping_rule.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/accounts/doctype/shipping_rule/test_shipping_rule.py b/accounts/doctype/shipping_rule/test_shipping_rule.py
index fe11e2b..f85909e 100644
--- a/accounts/doctype/shipping_rule/test_shipping_rule.py
+++ b/accounts/doctype/shipping_rule/test_shipping_rule.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 import unittest
 from accounts.doctype.shipping_rule.shipping_rule import FromGreaterThanToError, ManyBlankToValuesError, OverlappingConditionError
diff --git a/accounts/doctype/shipping_rule_condition/shipping_rule_condition.py b/accounts/doctype/shipping_rule_condition/shipping_rule_condition.py
index 928aa9f..784339d 100644
--- a/accounts/doctype/shipping_rule_condition/shipping_rule_condition.py
+++ b/accounts/doctype/shipping_rule_condition/shipping_rule_condition.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/accounts/general_ledger.py b/accounts/general_ledger.py
index 8e0f408..c35e31e 100644
--- a/accounts/general_ledger.py
+++ b/accounts/general_ledger.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/page/accounts_browser/accounts_browser.js b/accounts/page/accounts_browser/accounts_browser.js
index 904b4cd..6b57795 100644
--- a/accounts/page/accounts_browser/accounts_browser.js
+++ b/accounts/page/accounts_browser/accounts_browser.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // tree of chart of accounts / cost centers
 // multiple companies
@@ -73,14 +60,14 @@
 		})
 		
 	// load up companies
-	wn.call({
+	return wn.call({
 		method:'accounts.page.accounts_browser.accounts_browser.get_companies',
 		callback: function(r) {
 			wrapper.$company_select.empty();
 			$.each(r.message, function(i, v) {
 				$('<option>').html(v).attr('value', v).appendTo(wrapper.$company_select);
 			});
-			wrapper.$company_select.val(sys_defaults.company || r[0]).change();
+			wrapper.$company_select.val(wn.defaults.get_default("company") || r[0]).change();
 		}
 	});
 }
@@ -183,7 +170,12 @@
 	show_ledger: function() {
 		var me = this;
 		var node = me.selected_node();
-		wn.set_route("general-ledger", "account=" + node.data('label'));
+		wn.route_options = {
+			"account": node.data('label'),
+			"from_date": sys_defaults.year_start_date,
+			"to_date": sys_defaults.year_end_date
+		};
+		wn.set_route("general-ledger");
 	},
 	rename: function() {
 		var node = this.selected_node();
@@ -265,7 +257,7 @@
 			v.master_type = '';
 			v.company = me.company;
 			
-			wn.call({
+			return wn.call({
 				args: v,
 				method:'accounts.utils.add_ac',
 				callback: function(r) {
@@ -312,7 +304,7 @@
 			v.parent_cost_center = node.data('label');
 			v.company = me.company;
 			
-			wn.call({
+			return wn.call({
 				args: v,
 				method:'accounts.utils.add_cc',
 				callback: function(r) {
diff --git a/accounts/page/accounts_browser/accounts_browser.py b/accounts/page/accounts_browser/accounts_browser.py
index 4c4162d..61f4bfc 100644
--- a/accounts/page/accounts_browser/accounts_browser.py
+++ b/accounts/page/accounts_browser/accounts_browser.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 import webnotes.defaults
@@ -7,21 +10,8 @@
 @webnotes.whitelist()
 def get_companies():
 	"""get a list of companies based on permission"""
-	
-	# check if match permission exists
-	res = webnotes.conn.sql("""select role, `match` from `tabDocPerm`
-		where parent='Account' and permlevel=0 and `read`=1""", as_dict=1)
-	
-	roles = webnotes.user.get_roles()
-	match = any((r["match"] for r in res 
-		if r["role"] in roles and r["match"]=="company"))
-	
-	# if match == company is specified and companies are specified in user defaults
-	if match:
-		return webnotes.defaults.get_user_default_as_list("company")
-	else:
-		return [r[0] for r in webnotes.conn.sql("""select name from tabCompany
-			where docstatus!=2""")]
+	return [d.name for d in webnotes.get_list("Company", fields=["name"], 
+		order_by="name")]
 
 @webnotes.whitelist()
 def get_children():
diff --git a/accounts/page/accounts_home/accounts_home.js b/accounts/page/accounts_home/accounts_home.js
index e76255e..d6c3883 100644
--- a/accounts/page/accounts_home/accounts_home.js
+++ b/accounts/page/accounts_home/accounts_home.js
@@ -1,5 +1,5 @@
-// ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-// GNU General Public License. See "license.txt"
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt"
 
 wn.module_page["Accounts"] = [
 	{
@@ -226,11 +226,21 @@
 				doctype: "Sales Invoice"
 			},
 			{
+				"label":wn._("Delivered Items To Be Billed"),
+				route: "query-report/Delivered Items To Be Billed",
+				doctype: "Sales Invoice"
+			},
+			{
 				"label":wn._("Purchase Order Items To Be Billed"),
 				route: "query-report/Purchase Order Items To Be Billed",
 				doctype: "Purchase Invoice"
 			},
 			{
+				"label":wn._("Received Items To Be Billed"),
+				route: "query-report/Received Items To Be Billed",
+				doctype: "Purchase Invoice"
+			},
+			{
 				"label":wn._("Bank Clearance Summary"),
 				route: "query-report/Bank Clearance Summary",
 				doctype: "Journal Voucher"
diff --git a/accounts/page/financial_analytics/financial_analytics.js b/accounts/page/financial_analytics/financial_analytics.js
index aac7076..13b9067 100644
--- a/accounts/page/financial_analytics/financial_analytics.js
+++ b/accounts/page/financial_analytics/financial_analytics.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require("app/js/account_tree_grid.js");
 
diff --git a/accounts/page/financial_statements/financial_statements.js b/accounts/page/financial_statements/financial_statements.js
index d562e32..4893125 100644
--- a/accounts/page/financial_statements/financial_statements.js
+++ b/accounts/page/financial_statements/financial_statements.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 erpnext.fs = {}
 
@@ -62,7 +49,7 @@
 	</div>').css({"min-height": "400px"});
 
   // load companies
-  $c_obj('MIS Control','get_comp','', function(r,rt) {    
+  return $c_obj('MIS Control','get_comp','', function(r,rt) {    
     // company
 	erpnext.fs.stmt_company.$input.empty()
 		.add_options(['Select Company...'].concat(r.message.company));
@@ -86,7 +73,7 @@
   	year: erpnext.fs.stmt_fiscal_year.get_value()
   }
 
-  $c_obj('MIS Control', 'get_statement', docstring(arg), function(r,rt) {
+  return $c_obj('MIS Control', 'get_statement', docstring(arg), function(r,rt) {
       var nl = r.message;
       var t = $i('stmt_tree');
       var stmt_type = erpnext.fs.stmt_type.get_value();
diff --git a/accounts/page/general_ledger/general_ledger.js b/accounts/page/general_ledger/general_ledger.js
index 769812f..9ffec3a 100644
--- a/accounts/page/general_ledger/general_ledger.js
+++ b/accounts/page/general_ledger/general_ledger.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.pages['general-ledger'].onload = function(wrapper) { 
 	wn.ui.make_app_page({
@@ -105,24 +92,12 @@
 		this.accounts_by_company = this.make_accounts_by_company();
 		
 		// filter accounts options by company
-		this.filter_inputs.company.change(function() {
+		this.filter_inputs.company.on("change", function() {
 			me.setup_account_filter(this);
-			me.refresh()
+			me.refresh();
 		});
 		
-		this.filter_inputs.account.change(function() {
-			me.make_account_by_name();
-			me.filter_inputs.group_by_ledger
-				.parent().toggle(!!(me.account_by_name[$(this).val()] 
-					&& me.account_by_name[$(this).val()].group_or_ledger==="Group"));
-					
-			me.filter_inputs.group_by_voucher
-				.parent().toggle(!!(me.account_by_name[$(this).val()] 
-					&& me.account_by_name[$(this).val()].group_or_ledger==="Ledger"));
-		});
-		
-		this.trigger_refresh_on_change(["group_by_ledger"]);
-		this.trigger_refresh_on_change(["group_by_voucher"]);
+		this.trigger_refresh_on_change(["group_by_ledger", "group_by_voucher"]);
 	},
 	setup_account_filter: function(company_filter) {
 		var me = this;
@@ -142,17 +117,12 @@
 	},
 	init_filter_values: function() {
 		this._super();
-		this.filter_inputs.group_by_ledger.parent().toggle(false);
-		this.filter_inputs.group_by_voucher.parent().toggle(false);
-		this.filter_inputs.company.change();
-		this.filter_inputs.account.change();
+		this.toggle_group_by_checks();
+		this.filter_inputs.company.trigger("change");
 	},
 	apply_filters_from_route: function() {
 		this._super();
-		this.filter_inputs.group_by_ledger.parent().toggle(false);
-		this.filter_inputs.group_by_voucher.parent().toggle(false);
-		this.filter_inputs.company.change();
-		this.filter_inputs.account.change();
+		this.toggle_group_by_checks();
 	},
 	make_accounts_by_company: function() {
 		var accounts_by_company = {};
@@ -164,21 +134,27 @@
 		return accounts_by_company;
 	},
 	is_child_account: function(account, item_account) {
-		var opts = [account, item_account];
 		account = this.account_by_name[account];
 		item_account = this.account_by_name[item_account];
-		
 		return ((item_account.lft >= account.lft) && (item_account.rgt <= account.rgt));
 	},
+	toggle_group_by_checks: function() {
+		this.make_account_by_name();
+		
+		this.filter_inputs.group_by_ledger
+			.parent().toggle(!!(this.account_by_name[this.account] 
+				&& this.account_by_name[this.account].group_or_ledger==="Group"));
+				
+		this.filter_inputs.group_by_voucher
+			.parent().toggle(!!(this.account_by_name[this.account] 
+				&& this.account_by_name[this.account].group_or_ledger==="Ledger"));
+	},
 	prepare_data: function() {
-		// add Opening, Closing, Totals rows
-		// if filtered by account and / or voucher
+		var me = this;
 		var data = wn.report_dump.data["GL Entry"];
 		var out = [];
 		
-		this.make_account_by_name();
-		
-		var me = this;
+		this.toggle_group_by_checks();
 		
 		var from_date = dateutil.str_to_obj(this.from_date);
 		var to_date = dateutil.str_to_obj(this.to_date);
@@ -188,12 +164,14 @@
 			return;
 		}
 		
+		// add Opening, Closing, Totals rows
+		// if filtered by account and / or voucher
 		var opening = this.make_summary_row("Opening", this.account);
 		var totals = this.make_summary_row("Totals", this.account);
 
 		var grouped_ledgers = {};
 		$.each(data, function(i, item) {
-			if((me.is_default("company") ? true : me.apply_filter(item, "company")) &&
+			if(me.apply_filter(item, "company") &&
 				(me.account ? me.is_child_account(me.account, item.account) 
 				: true) && (me.voucher_no ? item.voucher_no==me.voucher_no : true)) {
 				var date = dateutil.str_to_obj(item.posting_date);
@@ -247,7 +225,7 @@
 					
 					if(grouped_ledgers[item.account].entries_group_by_voucher[item.voucher_no].row){
 						grouped_ledgers[item.account].entries_group_by_voucher[item.voucher_no]
-							.row = jQuery.extend({}, item);
+							.row = $.extend({}, item);
 					}
 				}
 			}
@@ -307,10 +285,10 @@
 					.concat(grouped_ledgers[account].entries)
 					.concat([grouped_ledgers[account].totals, 
 						grouped_ledgers[account].closing,
-						{id: "_blank" + i, _no_format: true, debit: "", credit: ""}]);
+						{id: "_blank" + i, debit: "", credit: ""}]);
 			}
 		});
-		return [{id: "_blank_first", _no_format: true, debit: "", credit: ""}].concat(out);
+		return [{id: "_blank_first", debit: "", credit: ""}].concat(out);
 	},
 	
 	group_data_by_voucher: function(grouped_ledgers) {
@@ -331,7 +309,7 @@
 				});
 			}
 		});
-		return [{id: "_blank_first", _no_format: true, debit: "", credit: ""}].concat(out);
+		return out;
 	},
 	
 	get_balance: function(debit_or_credit, balance) {
diff --git a/accounts/page/trial_balance/trial_balance.js b/accounts/page/trial_balance/trial_balance.js
index 9c4c50a..6521256 100644
--- a/accounts/page/trial_balance/trial_balance.js
+++ b/accounts/page/trial_balance/trial_balance.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require("app/js/account_tree_grid.js");
 
diff --git a/accounts/page/voucher_import_tool/voucher_import_tool.js b/accounts/page/voucher_import_tool/voucher_import_tool.js
index 48216b8..5a8538e 100644
--- a/accounts/page/voucher_import_tool/voucher_import_tool.js
+++ b/accounts/page/voucher_import_tool/voucher_import_tool.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.pages['voucher-import-tool'].onload = function(wrapper) { 
 	wn.ui.make_app_page({
 		parent: wrapper,
@@ -30,10 +33,10 @@
 		args: {
 			method: "accounts.page.voucher_import_tool.voucher_import_tool.upload"
 		},
-		callback: function(r) {
+		callback: function(fid, filename, r) {
 			wrapper.waiting.toggle(false);
 			$(wrapper).find(".messages").toggle(true).html(
-				r.join("<div style='margin:4px; border-top:1px solid #aaa;'></div>"))
+				r.message.join("<div style='margin:4px; border-top:1px solid #aaa;'></div>"))
 		}
 	});
 	
diff --git a/accounts/page/voucher_import_tool/voucher_import_tool.py b/accounts/page/voucher_import_tool/voucher_import_tool.py
index a3790a8f..416cf0e 100644
--- a/accounts/page/voucher_import_tool/voucher_import_tool.py
+++ b/accounts/page/voucher_import_tool/voucher_import_tool.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 from webnotes import _
diff --git a/accounts/report/accounts_payable/accounts_payable.js b/accounts/report/accounts_payable/accounts_payable.js
index 7ee38f2..2c6c918 100644
--- a/accounts/report/accounts_payable/accounts_payable.js
+++ b/accounts/report/accounts_payable/accounts_payable.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Accounts Payable"] = {
 	"filters": [
 		{
@@ -5,7 +8,7 @@
 			"label": "Company",
 			"fieldtype": "Link",
 			"options": "Company",
-			"default": sys_defaults.company
+			"default": wn.defaults.get_default("company")
 		},
 		{
 			"fieldname":"account",
diff --git a/accounts/report/accounts_payable/accounts_payable.py b/accounts/report/accounts_payable/accounts_payable.py
index 6bc98f6..20702fd 100644
--- a/accounts/report/accounts_payable/accounts_payable.py
+++ b/accounts/report/accounts_payable/accounts_payable.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 from webnotes.utils import getdate, nowdate, flt, cstr
@@ -7,8 +10,10 @@
 def execute(filters=None):
 	if not filters: filters = {}
 	columns = get_columns()
-	
 	entries = get_gl_entries(filters)
+	account_supplier = dict(webnotes.conn.sql("""select account.name, supplier.supplier_name
+		from `tabAccount` account, `tabSupplier` supplier 
+		where account.master_type="Supplier" and supplier.name=account.master_name"""))
 	
 	entries_after_report_date = [[gle.voucher_type, gle.voucher_no] 
 		for gle in get_gl_entries(filters, before_report_date=False)]
@@ -38,7 +43,8 @@
 
 			if abs(flt(outstanding_amount)) > 0.01:
 				paid_amount = invoiced_amount - outstanding_amount
-				row = [gle.posting_date, gle.account, gle.voucher_type, gle.voucher_no, 
+				row = [gle.posting_date, gle.account, account_supplier.get(gle.account, ""),
+					gle.voucher_type, gle.voucher_no, 
 					gle.remarks, account_supplier_type_map.get(gle.account), due_date, bill_no, 
 					bill_date, invoiced_amount, paid_amount, outstanding_amount]
 				
@@ -55,7 +61,7 @@
 	
 def get_columns():
 	return [
-		"Posting Date:Date:80", "Account:Link/Account:150", "Voucher Type::110", 
+		"Posting Date:Date:80", "Account:Link/Account:150", "Supplier::150", "Voucher Type::110", 
 		"Voucher No::120", "Remarks::150", "Supplier Type:Link/Supplier Type:120", 
 		"Due Date:Date:80", "Bill No::80", "Bill Date:Date:80", 
 		"Invoiced Amount:Currency:100", "Paid Amount:Currency:100", 
diff --git a/accounts/report/accounts_receivable/accounts_receivable.js b/accounts/report/accounts_receivable/accounts_receivable.js
index 68c8593..5f0b190 100644
--- a/accounts/report/accounts_receivable/accounts_receivable.js
+++ b/accounts/report/accounts_receivable/accounts_receivable.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Accounts Receivable"] = {
 	"filters": [
 		{
@@ -5,7 +8,7 @@
 			"label": "Company",
 			"fieldtype": "Link",
 			"options": "Company",
-			"default": sys_defaults.company
+			"default": wn.defaults.get_default("company")
 		},
 		{
 			"fieldname":"account",
diff --git a/accounts/report/accounts_receivable/accounts_receivable.py b/accounts/report/accounts_receivable/accounts_receivable.py
index 2bd3be8..3ae2223 100644
--- a/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/accounts/report/accounts_receivable/accounts_receivable.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 from webnotes import msgprint, _
@@ -7,6 +10,9 @@
 	if not filters: filters = {}
 	columns = get_columns()
 	entries = get_gl_entries(filters)
+	account_customer = dict(webnotes.conn.sql("""select account.name, customer.customer_name
+		from `tabAccount` account, `tabCustomer` customer 
+		where account.master_type="Customer" and customer.name=account.master_name"""))
 	
 	entries_after_report_date = [[gle.voucher_type, gle.voucher_no] 
 		for gle in get_gl_entries(filters, upto_report_date=False)]
@@ -32,7 +38,8 @@
 		
 			if abs(flt(outstanding_amount)) > 0.01:
 				payment_amount = invoiced_amount - outstanding_amount
-				row = [gle.posting_date, gle.account, gle.voucher_type, gle.voucher_no, 
+				row = [gle.posting_date, gle.account, account_customer.get(gle.account, ""), 
+					gle.voucher_type, gle.voucher_no, 
 					gle.remarks, due_date, account_territory_map.get(gle.account), 
 					invoiced_amount, payment_amount, outstanding_amount]
 				# Ageing
@@ -48,7 +55,7 @@
 	
 def get_columns():
 	return [
-		"Posting Date:Date:80", "Account:Link/Account:150", "Voucher Type::110", 
+		"Posting Date:Date:80", "Account:Link/Account:150", "Customer::150", "Voucher Type::110", 
 		"Voucher No::120", "Remarks::150", "Due Date:Date:80", "Territory:Link/Territory:80", 
 		"Invoiced Amount:Currency:100", "Payment Received:Currency:100", 
 		"Outstanding Amount:Currency:100", "Age:Int:50", "0-30:Currency:100", 
diff --git a/accounts/report/bank_clearance_summary/bank_clearance_summary.js b/accounts/report/bank_clearance_summary/bank_clearance_summary.js
index 76adfd3..8e6d0c0 100644
--- a/accounts/report/bank_clearance_summary/bank_clearance_summary.js
+++ b/accounts/report/bank_clearance_summary/bank_clearance_summary.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Bank Clearance Summary"] = {
 	"filters": [
 		{
diff --git a/accounts/report/bank_clearance_summary/bank_clearance_summary.py b/accounts/report/bank_clearance_summary/bank_clearance_summary.py
index 49ac1a4..0dfbc94 100644
--- a/accounts/report/bank_clearance_summary/bank_clearance_summary.py
+++ b/accounts/report/bank_clearance_summary/bank_clearance_summary.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js b/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js
index 28ac920..bf971a7 100644
--- a/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js
+++ b/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Bank Reconciliation Statement"] = {
 	"filters": [
 		{
diff --git a/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py b/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
index 1345cd8..1b64850 100644
--- a/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
+++ b/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/report/budget_variance_report/budget_variance_report.js b/accounts/report/budget_variance_report/budget_variance_report.js
index a051605..2ed6018 100644
--- a/accounts/report/budget_variance_report/budget_variance_report.js
+++ b/accounts/report/budget_variance_report/budget_variance_report.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Budget Variance Report"] = {
 	"filters": [
 		{
@@ -19,7 +22,7 @@
 			label: "Company",
 			fieldtype: "Link",
 			options: "Company",
-			default: sys_defaults.company
+			default: wn.defaults.get_default("company")
 		},
 	]
 }
\ No newline at end of file
diff --git a/accounts/report/budget_variance_report/budget_variance_report.py b/accounts/report/budget_variance_report/budget_variance_report.py
index 835475f..015e2c0 100644
--- a/accounts/report/budget_variance_report/budget_variance_report.py
+++ b/accounts/report/budget_variance_report/budget_variance_report.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -60,18 +47,20 @@
 			msgprint(_("Please specify") + ": " + label,
 				raise_exception=True)
 
-	columns = ["Cost Center:Link/Cost Center:100", "Account:Link/Account:100"]
+	columns = ["Cost Center:Link/Cost Center:120", "Account:Link/Account:120"]
 
 	group_months = False if filters["period"] == "Monthly" else True
 
 	for from_date, to_date in get_period_date_ranges(filters["period"], filters["fiscal_year"]):
 		for label in ["Target (%s)", "Actual (%s)", "Variance (%s)"]:
 			if group_months:
-				columns.append(label % (from_date.strftime("%b") + " - " + to_date.strftime("%b")))				
+				label = label % (from_date.strftime("%b") + " - " + to_date.strftime("%b"))
 			else:
-				columns.append(label % from_date.strftime("%b"))
+				label = label % from_date.strftime("%b")
+				
+			columns.append(label+":Float:120")
 
-	return columns + ["Total Target::80", "Total Actual::80", "Total Variance::80"]
+	return columns + ["Total Target::120", "Total Actual::120", "Total Variance::120"]
 
 #Get cost center & target details
 def get_costcenter_target_details(filters):
@@ -79,19 +68,17 @@
 		cc.parent_cost_center, bd.account, bd.budget_allocated 
 		from `tabCost Center` cc, `tabBudget Detail` bd 
 		where bd.parent=cc.name and bd.fiscal_year=%s and 
-		cc.company=%s and ifnull(cc.distribution_id, '')!='' 
-		order by cc.name""" % ('%s', '%s'), 
+		cc.company=%s order by cc.name""" % ('%s', '%s'), 
 		(filters.get("fiscal_year"), filters.get("company")), as_dict=1)
 
 #Get target distribution details of accounts of cost center
 def get_target_distribution_details(filters):
 	target_details = {}
 
-	for d in webnotes.conn.sql("""select bdd.month, bdd.percentage_allocation \
-		from `tabBudget Distribution Detail` bdd, `tabBudget Distribution` bd, \
-		`tabCost Center` cc where bdd.parent=bd.name and cc.distribution_id=bd.name and \
-		bd.fiscal_year=%s""", (filters["fiscal_year"]), as_dict=1):
-			target_details.setdefault(d.month, d)
+	for d in webnotes.conn.sql("""select bd.name, bdd.month, bdd.percentage_allocation \
+		from `tabBudget Distribution Detail` bdd, `tabBudget Distribution` bd
+		where bdd.parent=bd.name and bd.fiscal_year=%s""", (filters["fiscal_year"]), as_dict=1):
+			target_details.setdefault(d.name, {}).setdefault(d.month, d.percentage_allocation)
 
 	return target_details
 
@@ -112,15 +99,19 @@
 	cam_map = {}
 
 	for ccd in costcenter_target_details:
-		for month in tdd:
+		for month_id in range(1, 13):
+			month = datetime.date(2013, month_id, 1).strftime('%B')
+			
 			cam_map.setdefault(ccd.name, {}).setdefault(ccd.account, {})\
-			.setdefault(month, webnotes._dict({
-				"target": 0.0, "actual": 0.0
-			}))
+				.setdefault(month, webnotes._dict({
+					"target": 0.0, "actual": 0.0
+				}))
 
 			tav_dict = cam_map[ccd.name][ccd.account][month]
-			tav_dict.target = flt(ccd.budget_allocated) * \
-				(tdd[month]["percentage_allocation"]/100)
+			month_percentage = ccd.distribution_id and \
+				tdd.get(ccd.distribution_id, {}).get(month, 0) or 100.0/12
+				
+			tav_dict.target = flt(flt(ccd.budget_allocated) * month_percentage /100)
 
 			for ad in actual_details:
 				if ad.month_name == month and ad.account == ccd.account \
diff --git a/accounts/report/customer_account_head/customer_account_head.py b/accounts/report/customer_account_head/customer_account_head.py
index 61f8cb2..255f348 100644
--- a/accounts/report/customer_account_head/customer_account_head.py
+++ b/accounts/report/customer_account_head/customer_account_head.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/utilities/page/markdown_reference/markdown_reference.css b/accounts/report/delivered_items_to_be_billed/__init__.py
similarity index 100%
rename from utilities/page/markdown_reference/markdown_reference.css
rename to accounts/report/delivered_items_to_be_billed/__init__.py
diff --git a/accounts/report/delivered_items_to_be_billed/delivered_items_to_be_billed.txt b/accounts/report/delivered_items_to_be_billed/delivered_items_to_be_billed.txt
new file mode 100644
index 0000000..9bcfe70
--- /dev/null
+++ b/accounts/report/delivered_items_to_be_billed/delivered_items_to_be_billed.txt
@@ -0,0 +1,22 @@
+[
+ {
+  "creation": "2013-07-30 17:28:49", 
+  "docstatus": 0, 
+  "modified": "2013-08-02 12:41:28", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "doctype": "Report", 
+  "is_standard": "Yes", 
+  "name": "__common__", 
+  "query": "select\n    `tabDelivery Note`.`name` as \"Delivery Note:Link/Delivery Note:120\",\n\t`tabDelivery Note`.`customer` as \"Customer:Link/Customer:120\",\n\t`tabDelivery Note`.`posting_date` as \"Date:Date\",\n\t`tabDelivery Note`.`project_name` as \"Project\",\n\t`tabDelivery Note Item`.`item_code` as \"Item:Link/Item:120\",\n\t(`tabDelivery Note Item`.`qty` - ifnull((select sum(qty) from `tabSales Invoice Item` \n\t    where `tabSales Invoice Item`.delivery_note = `tabDelivery Note`.name and\n\t        `tabSales Invoice Item`.dn_detail = `tabDelivery Note Item`.name), 0))\n\t\tas \"Qty:Float:110\",\n\t(`tabDelivery Note Item`.`amount` - ifnull((select sum(amount) from `tabSales Invoice Item` \n        where `tabSales Invoice Item`.delivery_note = `tabDelivery Note`.name and\n            `tabSales Invoice Item`.dn_detail = `tabDelivery Note Item`.name), 0))\n\t\tas \"Amount:Currency:110\",\n\t`tabDelivery Note Item`.`item_name` as \"Item Name::150\",\n\t`tabDelivery Note Item`.`description` as \"Description::200\"\nfrom `tabDelivery Note`, `tabDelivery Note Item`\nwhere\n    `tabDelivery Note`.docstatus = 1 and\n\t`tabDelivery Note`.`status` != \"Stopped\" and\n    `tabDelivery Note`.name = `tabDelivery Note Item`.parent and\n    (`tabDelivery Note Item`.qty > ifnull((select sum(qty) from `tabSales Invoice Item` \n        where `tabSales Invoice Item`.delivery_note = `tabDelivery Note`.name and\n            `tabSales Invoice Item`.dn_detail = `tabDelivery Note Item`.name), 0))\norder by `tabDelivery Note`.`name` desc", 
+  "ref_doctype": "Sales Invoice", 
+  "report_name": "Delivered Items To Be Billed", 
+  "report_type": "Query Report"
+ }, 
+ {
+  "doctype": "Report", 
+  "name": "Delivered Items To Be Billed"
+ }
+]
\ No newline at end of file
diff --git a/accounts/report/gross_profit/gross_profit.js b/accounts/report/gross_profit/gross_profit.js
index aa6be55..aea0b8a 100644
--- a/accounts/report/gross_profit/gross_profit.js
+++ b/accounts/report/gross_profit/gross_profit.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Gross Profit"] = {
 	"filters": [
 		{
diff --git a/accounts/report/gross_profit/gross_profit.py b/accounts/report/gross_profit/gross_profit.py
index 798c718..3aba234 100644
--- a/accounts/report/gross_profit/gross_profit.py
+++ b/accounts/report/gross_profit/gross_profit.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 from webnotes.utils import flt
@@ -7,9 +10,7 @@
 	if not filters: filters = {}
 	
 	stock_ledger_entries = get_stock_ledger_entries(filters)
-	
 	source = get_source_data(filters)
-	
 	item_sales_bom = get_item_sales_bom()
 	
 	columns = ["Delivery Note/Sales Invoice::120", "Link::30", "Posting Date:Date", "Posting Time", 
@@ -17,12 +18,12 @@
 		"Qty:Float", "Selling Rate:Currency", "Avg. Buying Rate:Currency", 
 		"Selling Amount:Currency", "Buying Amount:Currency",
 		"Gross Profit:Currency", "Gross Profit %:Percent", "Project:Link/Project"]
-	
 	data = []
 	for row in source:
 		selling_amount = flt(row.amount)
-		buying_amount = get_buying_amount(row.item_code, row.warehouse, -1*row.qty, 
-			row.parenttype, row.name, row.item_row, stock_ledger_entries, 
+
+		buying_amount = get_buying_amount(row.item_code, row.parenttype, row.name, row.item_row,
+			stock_ledger_entries.get((row.item_code, row.warehouse), []), 
 			item_sales_bom.get(row.parenttype, {}).get(row.name, webnotes._dict()))
 		
 		buying_amount = buying_amount > 0 and buying_amount or 0
@@ -53,8 +54,17 @@
 		query += """ and company=%(company)s"""
 	
 	query += " order by item_code desc, warehouse desc, posting_date desc, posting_time desc, name desc"
+	
+	res = webnotes.conn.sql(query, filters, as_dict=True)
+	
+	out = {}
+	for r in res:
+		if (r.item_code, r.warehouse) not in out:
+			out[(r.item_code, r.warehouse)] = []
+		
+		out[(r.item_code, r.warehouse)].append(r)
 
-	return webnotes.conn.sql(query, filters, as_dict=True)
+	return out
 	
 def get_item_sales_bom():
 	item_sales_bom = {}
diff --git a/accounts/report/item_wise_purchase_register/item_wise_purchase_register.js b/accounts/report/item_wise_purchase_register/item_wise_purchase_register.js
index 8323a1a..457c9a8 100644
--- a/accounts/report/item_wise_purchase_register/item_wise_purchase_register.js
+++ b/accounts/report/item_wise_purchase_register/item_wise_purchase_register.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Item-wise Purchase Register"] = {
 	"filters": [
 		{
@@ -25,15 +28,24 @@
 			"fieldtype": "Link",
 			"options": "Account",
 			"get_query": function() {
+				var company = wn.query_report.filters_by_name.company.get_value();
 				return {
 					"query": "accounts.utils.get_account_list", 
 					"filters": {
 						"is_pl_account": "No",
 						"debit_or_credit": "Credit",
+						"company": company,
 						"master_type": "Supplier"
 					}
 				}
 			}
+		},
+		{
+			"fieldname":"company",
+			"label": "Company",
+			"fieldtype": "Link",
+			"options": "Company",
+			"default": wn.defaults.get_default("company")
 		}
 	]
 }
\ No newline at end of file
diff --git a/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py b/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
index 9f5f071..bd0726e 100644
--- a/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
+++ b/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
@@ -1,34 +1,32 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
+from webnotes.utils import flt
 
 def execute(filters=None):
 	if not filters: filters = {}
-	
 	columns = get_columns()
+	last_col = len(columns)
+	
 	item_list = get_items(filters)
 	aii_account_map = get_aii_accounts()
+	item_tax, tax_accounts = get_tax_accounts(item_list, columns)
+	
 	data = []
 	for d in item_list:
 		expense_head = d.expense_head or aii_account_map.get(d.company)
-		data.append([d.item_code, d.item_name, d.item_group, d.name, d.posting_date, 
+		row = [d.item_code, d.item_name, d.item_group, d.parent, d.posting_date, 
 			d.supplier_name, d.credit_to, d.project_name, d.company, d.purchase_order, 
-			d.purchase_receipt, expense_head, d.qty, d.rate, d.amount])
+			d.purchase_receipt, expense_head, d.qty, d.rate, d.amount]
+		for tax in tax_accounts:
+			row.append(item_tax.get(d.parent, {}).get(d.item_code, {}).get(tax, 0))
+
+		total_tax = sum(row[last_col:])
+		row += [total_tax, d.amount + total_tax]
+		
+		data.append(row)
 	
 	return columns, data
 	
@@ -41,33 +39,60 @@
 		"Expense Account:Link/Account:140", "Qty:Float:120", "Rate:Currency:120", 
 		"Amount:Currency:120"]
 	
-	
 def get_conditions(filters):
 	conditions = ""
 	
-	if filters.get("account"): conditions += " and pi.credit_to = %(account)s"
-	
-	if filters.get("item_code"): conditions += " and pi_item.item_code = %(item_code)s"
-
-	if filters.get("from_date"): conditions += " and pi.posting_date>=%(from_date)s"
-	if filters.get("to_date"): conditions += " and pi.posting_date<=%(to_date)s"
+	for opts in (("company", " and company=%(company)s"),
+		("account", " and pi.credit_to = %(account)s"),
+		("item_code", " and pi_item.item_code = %(item_code)s"),
+		("from_date", " and pi.posting_date>=%(from_date)s"),
+		("to_date", " and pi.posting_date<=%(to_date)s")):
+			if filters.get(opts[0]):
+				conditions += opts[1]
 
 	return conditions
 	
 def get_items(filters):
 	conditions = get_conditions(filters)
-	return webnotes.conn.sql("""select pi.name, pi.posting_date, pi.credit_to, pi.company, 
+	match_conditions = webnotes.build_match_conditions("Purchase Invoice")
+	
+	return webnotes.conn.sql("""select pi_item.parent, pi.posting_date, pi.credit_to, pi.company, 
 		pi.supplier, pi.remarks, pi_item.item_code, pi_item.item_name, pi_item.item_group, 
 		pi_item.project_name, pi_item.purchase_order, pi_item.purchase_receipt, 
 		pi_item.expense_head, pi_item.qty, pi_item.rate, pi_item.amount, pi.supplier_name
 		from `tabPurchase Invoice` pi, `tabPurchase Invoice Item` pi_item 
-		where pi.name = pi_item.parent and pi.docstatus = 1 %s 
-		order by pi.posting_date desc, pi_item.item_code desc""" % conditions, filters, as_dict=1)
+		where pi.name = pi_item.parent and pi.docstatus = 1 %s %s
+		order by pi.posting_date desc, pi_item.item_code desc""" % (conditions, match_conditions), filters, as_dict=1)
 		
 def get_aii_accounts():
-	aii_account_map = {}
-	for d in webnotes.conn.sql("select name, stock_received_but_not_billed from tabCompany",
-	 		as_dict=1):
-		aii_account_map.setdefault(d.name, d.stock_received_but_not_billed)
+	return dict(webnotes.conn.sql("select name, stock_received_but_not_billed from tabCompany"))
+	
+def get_tax_accounts(item_list, columns):
+	import json
+	item_tax = {}
+	tax_accounts = []
+	
+	tax_details = webnotes.conn.sql("""select parent, account_head, item_wise_tax_detail
+		from `tabPurchase Taxes and Charges` where parenttype = 'Purchase Invoice' 
+		and docstatus = 1 and ifnull(account_head, '') != '' and category in ('Total', 'Valuation and Total') 
+		and parent in (%s)""" % ', '.join(['%s']*len(item_list)), tuple([item.parent for item in item_list]))
 		
-	return aii_account_map
\ No newline at end of file
+	for parent, account_head, item_wise_tax_detail in tax_details:
+		if account_head not in tax_accounts:
+			tax_accounts.append(account_head)
+		
+		invoice = item_tax.setdefault(parent, {})
+		if item_wise_tax_detail:
+			try:
+				item_wise_tax_detail = json.loads(item_wise_tax_detail)
+				for item, tax_amount in item_wise_tax_detail.items():
+					invoice.setdefault(item, {})[account_head] = flt(tax_amount)
+				
+			except ValueError:
+				continue
+	
+	tax_accounts.sort()
+	columns += [account_head + ":Currency:80" for account_head in tax_accounts]
+	columns += ["Total Tax:Currency:80", "Total:Currency:80"]
+
+	return item_tax, tax_accounts
\ No newline at end of file
diff --git a/accounts/report/item_wise_sales_register/item_wise_sales_register.js b/accounts/report/item_wise_sales_register/item_wise_sales_register.js
index b9ce959..c131fbd 100644
--- a/accounts/report/item_wise_sales_register/item_wise_sales_register.js
+++ b/accounts/report/item_wise_sales_register/item_wise_sales_register.js
@@ -1,10 +1,13 @@
-wn.query_reports["Item-wise Sales Register"] = {
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
+wn.query_reports["Item-wise Sales Register"] = wn.query_reports["Sales Register"] = {
 	"filters": [
 		{
 			"fieldname":"from_date",
 			"label": "From Date",
 			"fieldtype": "Date",
-			"default": wn.defaults.get_user_default("year_start_date"),
+			"default": wn.defaults.get_default("year_start_date"),
 			"width": "80"
 		},
 		{
@@ -14,26 +17,29 @@
 			"default": get_today()
 		},
 		{
-			"fieldname": "item_code",
-			"label": "Item",
-			"fieldtype": "Link",
-			"options": "Item",
-		},
-		{
 			"fieldname":"account",
 			"label": "Account",
 			"fieldtype": "Link",
 			"options": "Account",
 			"get_query": function() {
+				var company = wn.query_report.filters_by_name.company.get_value();
 				return {
 					"query": "accounts.utils.get_account_list", 
 					"filters": {
 						"is_pl_account": "No",
 						"debit_or_credit": "Debit",
+						"company": company,
 						"master_type": "Customer"
 					}
 				}
 			}
+		},
+		{
+			"fieldname":"company",
+			"label": "Company",
+			"fieldtype": "Link",
+			"options": "Company",
+			"default": wn.defaults.get_default("company")
 		}
 	]
 }
\ No newline at end of file
diff --git a/accounts/report/item_wise_sales_register/item_wise_sales_register.py b/accounts/report/item_wise_sales_register/item_wise_sales_register.py
index 4d099e0..77fb6f2 100644
--- a/accounts/report/item_wise_sales_register/item_wise_sales_register.py
+++ b/accounts/report/item_wise_sales_register/item_wise_sales_register.py
@@ -1,37 +1,34 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
+from webnotes.utils import flt
 
 def execute(filters=None):
 	if not filters: filters = {}
-	
 	columns = get_columns()
+	last_col = len(columns)
+	
 	item_list = get_items(filters)
+	item_tax, tax_accounts = get_tax_accounts(item_list, columns)
 	
 	data = []
 	for d in item_list:
-		data.append([d.item_code, d.item_name, d.item_group, d.name, d.posting_date, 
+		row = [d.item_code, d.item_name, d.item_group, d.parent, d.posting_date, 
 			d.customer_name, d.debit_to, d.territory, d.project_name, d.company, d.sales_order, 
-			d.delivery_note, d.income_account, d.qty, d.basic_rate, d.amount])
+			d.delivery_note, d.income_account, d.qty, d.basic_rate, d.amount]
+			
+		for tax in tax_accounts:
+			row.append(item_tax.get(d.parent, {}).get(d.item_code, {}).get(tax, 0))
+			
+		total_tax = sum(row[last_col:])
+		row += [total_tax, d.amount + total_tax]
+		
+		data.append(row)
 	
 	return columns, data
 	
-	
 def get_columns():
 	return [
 		"Item Code:Link/Item:120", "Item Name::120", "Item Group:Link/Item Group:100", 
@@ -46,21 +43,52 @@
 def get_conditions(filters):
 	conditions = ""
 	
-	if filters.get("account"): conditions += " and si.debit_to = %(account)s"
-	
-	if filters.get("item_code"): conditions += " and si_item.item_code = %(item_code)s"
-
-	if filters.get("from_date"): conditions += " and si.posting_date>=%(from_date)s"
-	if filters.get("to_date"): conditions += " and si.posting_date<=%(to_date)s"
+	for opts in (("company", " and company=%(company)s"),
+		("account", " and si.debit_to = %(account)s"),
+		("item_code", " and si_item.item_code = %(item_code)s"),
+		("from_date", " and si.posting_date>=%(from_date)s"),
+		("to_date", " and si.posting_date<=%(to_date)s")):
+			if filters.get(opts[0]):
+				conditions += opts[1]
 
 	return conditions
-	
+		
 def get_items(filters):
 	conditions = get_conditions(filters)
-	return webnotes.conn.sql("""select si.name, si.posting_date, si.debit_to, si.project_name, 
+	return webnotes.conn.sql("""select si_item.parent, si.posting_date, si.debit_to, si.project_name, 
 		si.customer, si.remarks, si.territory, si.company, si_item.item_code, si_item.item_name, 
 		si_item.item_group, si_item.sales_order, si_item.delivery_note, si_item.income_account, 
 		si_item.qty, si_item.basic_rate, si_item.amount, si.customer_name
 		from `tabSales Invoice` si, `tabSales Invoice Item` si_item 
 		where si.name = si_item.parent and si.docstatus = 1 %s 
-		order by si.posting_date desc, si_item.item_code desc""" % conditions, filters, as_dict=1)
\ No newline at end of file
+		order by si.posting_date desc, si_item.item_code desc""" % conditions, filters, as_dict=1)
+		
+def get_tax_accounts(item_list, columns):
+	import json
+	item_tax = {}
+	tax_accounts = []
+	
+	tax_details = webnotes.conn.sql("""select parent, account_head, item_wise_tax_detail
+		from `tabSales Taxes and Charges` where parenttype = 'Sales Invoice' 
+		and docstatus = 1 and ifnull(account_head, '') != ''
+		and parent in (%s)""" % ', '.join(['%s']*len(item_list)), tuple([item.parent for item in item_list]))
+		
+	for parent, account_head, item_wise_tax_detail in tax_details:
+		if account_head not in tax_accounts:
+			tax_accounts.append(account_head)
+		
+		invoice = item_tax.setdefault(parent, {})
+		if item_wise_tax_detail:
+			try:
+				item_wise_tax_detail = json.loads(item_wise_tax_detail)
+				for item, tax_amount in item_wise_tax_detail.items():
+					invoice.setdefault(item, {})[account_head] = flt(tax_amount)
+				
+			except ValueError:
+				continue
+	
+	tax_accounts.sort()
+	columns += [account_head + ":Currency:80" for account_head in tax_accounts]
+	columns += ["Total Tax:Currency:80", "Total:Currency:80"]
+
+	return item_tax, tax_accounts
\ No newline at end of file
diff --git a/accounts/report/payment_collection_with_ageing/payment_collection_with_ageing.js b/accounts/report/payment_collection_with_ageing/payment_collection_with_ageing.js
index d608fbd..8d8c746 100644
--- a/accounts/report/payment_collection_with_ageing/payment_collection_with_ageing.js
+++ b/accounts/report/payment_collection_with_ageing/payment_collection_with_ageing.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Payment Collection With Ageing"] = {
 	"filters": [
 		{
@@ -36,7 +39,7 @@
 			"label": "Company",
 			"fieldtype": "Link",
 			"options": "Company",
-			"default": sys_defaults.company
+			"default": wn.defaults.get_default("company")
 		},
 	]
 }
\ No newline at end of file
diff --git a/accounts/report/payment_collection_with_ageing/payment_collection_with_ageing.py b/accounts/report/payment_collection_with_ageing/payment_collection_with_ageing.py
index 1268852..41c5f3e 100644
--- a/accounts/report/payment_collection_with_ageing/payment_collection_with_ageing.py
+++ b/accounts/report/payment_collection_with_ageing/payment_collection_with_ageing.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/report/payment_made_with_ageing/payment_made_with_ageing.js b/accounts/report/payment_made_with_ageing/payment_made_with_ageing.js
index 533fe61..7b80bde 100644
--- a/accounts/report/payment_made_with_ageing/payment_made_with_ageing.js
+++ b/accounts/report/payment_made_with_ageing/payment_made_with_ageing.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Payment Made With Ageing"] = {
 	"filters": [
 		{
@@ -34,7 +37,7 @@
 			label: "Company",
 			fieldtype: "Link",
 			options: "Company",
-			default: sys_defaults.company
+			default: wn.defaults.get_default("company")
 		},
 	]
 }
\ No newline at end of file
diff --git a/accounts/report/payment_made_with_ageing/payment_made_with_ageing.py b/accounts/report/payment_made_with_ageing/payment_made_with_ageing.py
index e7f13ef..8d3618f 100644
--- a/accounts/report/payment_made_with_ageing/payment_made_with_ageing.py
+++ b/accounts/report/payment_made_with_ageing/payment_made_with_ageing.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/report/purchase_invoice_trends/purchase_invoice_trends.js b/accounts/report/purchase_invoice_trends/purchase_invoice_trends.js
index bb18ce4..5dbc3fe 100644
--- a/accounts/report/purchase_invoice_trends/purchase_invoice_trends.js
+++ b/accounts/report/purchase_invoice_trends/purchase_invoice_trends.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.require("app/js/purchase_trends_filters.js");
 
 wn.query_reports["Purchase Invoice Trends"] = {
diff --git a/accounts/report/purchase_invoice_trends/purchase_invoice_trends.py b/accounts/report/purchase_invoice_trends/purchase_invoice_trends.py
index 659cb85..c0eb8c9 100644
--- a/accounts/report/purchase_invoice_trends/purchase_invoice_trends.py
+++ b/accounts/report/purchase_invoice_trends/purchase_invoice_trends.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/report/purchase_register/purchase_register.js b/accounts/report/purchase_register/purchase_register.js
index 21e0547..5944b1a 100644
--- a/accounts/report/purchase_register/purchase_register.js
+++ b/accounts/report/purchase_register/purchase_register.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Purchase Register"] = {
 	"filters": [
 		{
@@ -36,7 +39,7 @@
 			"label": "Company",
 			"fieldtype": "Link",
 			"options": "Company",
-			"default": sys_defaults.company
+			"default": wn.defaults.get_default("company")
 		}
 	]
 }
\ No newline at end of file
diff --git a/accounts/report/purchase_register/purchase_register.py b/accounts/report/purchase_register/purchase_register.py
index 0970541..d7bac9d 100644
--- a/accounts/report/purchase_register/purchase_register.py
+++ b/accounts/report/purchase_register/purchase_register.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -31,7 +18,8 @@
 		return columns, invoice_list
 	
 	invoice_expense_map = get_invoice_expense_map(invoice_list)
-	invoice_expense_map, invoice_tax_map = get_invoice_tax_map(invoice_list, invoice_expense_map)
+	invoice_expense_map, invoice_tax_map = get_invoice_tax_map(invoice_list, 
+		invoice_expense_map, expense_accounts)
 	invoice_po_pr_map = get_invoice_po_pr_map(invoice_list)
 	account_map = get_account_details(invoice_list)
 
@@ -42,7 +30,7 @@
 		purchase_receipt = list(set(invoice_po_pr_map.get(inv.name, {}).get("purchase_receipt", [])))
 		project_name = list(set(invoice_po_pr_map.get(inv.name, {}).get("project_name", [])))
 
-		row = [inv.name, inv.posting_date, inv.supplier_name, inv.credit_to, 
+		row = [inv.name, inv.posting_date, inv.supplier, inv.supplier_name, inv.credit_to, 
 			account_map.get(inv.credit_to), ", ".join(project_name), inv.bill_no, inv.bill_date, 
 			inv.remarks, ", ".join(purchase_order), ", ".join(purchase_receipt)]
 		
@@ -54,7 +42,7 @@
 			row.append(expense_amount)
 		
 		# net total
-		row.append(net_total)
+		row.append(net_total or inv.net_total)
 			
 		# tax account
 		total_tax = 0
@@ -75,9 +63,10 @@
 def get_columns(invoice_list):
 	"""return columns based on filters"""
 	columns = [
-		"Invoice:Link/Purchase Invoice:120", "Posting Date:Date:80", "Supplier::120", 
-		"Supplier Account:Link/Account:120", "Account Group:LInk/Account:120", 
-		"Project:Link/Project:80", "Bill No::120", "Bill Date:Date:80", "Remarks::150", 
+		"Invoice:Link/Purchase Invoice:120", "Posting Date:Date:80", "Supplier Id::120", 
+		"Supplier Name::120", "Supplier Account:Link/Account:120", 
+		"Account Group:LInk/Account:120", "Project:Link/Project:80", "Bill No::120", 
+		"Bill Date:Date:80", "Remarks::150", 
 		"Purchase Order:Link/Purchase Order:100", "Purchase Receipt:Link/Purchase Receipt:100"
 	]
 	expense_accounts = tax_accounts = expense_columns = tax_columns = []
@@ -90,8 +79,8 @@
 		
 		tax_accounts = 	webnotes.conn.sql_list("""select distinct account_head 
 			from `tabPurchase Taxes and Charges` where parenttype = 'Purchase Invoice' 
-			and docstatus = 1 and ifnull(account_head, '') != '' and parent in (%s) 
-			order by account_head""" % 
+			and docstatus = 1 and ifnull(account_head, '') != '' and category in ('Total', 'Valuation and Total') 
+			and parent in (%s) order by account_head""" % 
 			', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]))
 			
 				
@@ -121,7 +110,7 @@
 def get_invoices(filters):
 	conditions = get_conditions(filters)
 	return webnotes.conn.sql("""select name, posting_date, credit_to, supplier, supplier_name, 
-		bill_no, bill_date, remarks, grand_total, outstanding_amount 
+		bill_no, bill_date, remarks, net_total, grand_total, outstanding_amount 
 		from `tabPurchase Invoice` where docstatus = 1 %s 
 		order by posting_date desc, name desc""" % conditions, filters, as_dict=1)
 	
@@ -138,15 +127,18 @@
 	
 	return invoice_expense_map
 	
-def get_invoice_tax_map(invoice_list, invoice_expense_map):
+def get_invoice_tax_map(invoice_list, invoice_expense_map, expense_accounts):
 	tax_details = webnotes.conn.sql("""select parent, account_head, sum(tax_amount) as tax_amount
 		from `tabPurchase Taxes and Charges` where parent in (%s) group by parent, account_head""" % 
 		', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1)
 	
 	invoice_tax_map = {}
 	for d in tax_details:
-		if d.account_head in invoice_expense_map.get(d.parent):
-			invoice_expense_map[d.parent][d.account_head] += flt(d.tax_amount)
+		if d.account_head in expense_accounts:
+			if invoice_expense_map[d.parent].has_key(d.account_head):
+				invoice_expense_map[d.parent][d.account_head] += flt(d.tax_amount)
+			else:
+				invoice_expense_map[d.parent][d.account_head] = flt(d.tax_amount)
 		else:
 			invoice_tax_map.setdefault(d.parent, webnotes._dict()).setdefault(d.account_head, [])
 			invoice_tax_map[d.parent][d.account_head] = flt(d.tax_amount)
@@ -180,4 +172,4 @@
 		where name in (%s)""" % ", ".join(["%s"]*len(accounts)), tuple(accounts), as_dict=1):
 			account_map[acc.name] = acc.parent_account
 						
-	return account_map	
+	return account_map
\ No newline at end of file
diff --git a/utilities/page/markdown_reference/markdown_reference.css b/accounts/report/received_items_to_be_billed/__init__.py
similarity index 100%
copy from utilities/page/markdown_reference/markdown_reference.css
copy to accounts/report/received_items_to_be_billed/__init__.py
diff --git a/accounts/report/received_items_to_be_billed/received_items_to_be_billed.txt b/accounts/report/received_items_to_be_billed/received_items_to_be_billed.txt
new file mode 100644
index 0000000..b792684
--- /dev/null
+++ b/accounts/report/received_items_to_be_billed/received_items_to_be_billed.txt
@@ -0,0 +1,22 @@
+[
+ {
+  "creation": "2013-07-30 18:35:10", 
+  "docstatus": 0, 
+  "modified": "2013-07-31 11:46:57", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "doctype": "Report", 
+  "is_standard": "Yes", 
+  "name": "__common__", 
+  "query": "select\n    `tabPurchase Receipt`.`name` as \"Purchase Receipt:Link/Purchase Receipt:120\",\n    `tabPurchase Receipt`.`supplier` as \"Supplier:Link/Supplier:120\",\n\t`tabPurchase Receipt`.`posting_date` as \"Date:Date\",\n\t`tabPurchase Receipt Item`.`project_name` as \"Project\",\n\t`tabPurchase Receipt Item`.`item_code` as \"Item:Link/Item:120\",\n\t(`tabPurchase Receipt Item`.`qty` - ifnull((select sum(qty) from `tabPurchase Invoice Item` \n\t    where `tabPurchase Invoice Item`.purchase_receipt = `tabPurchase Receipt`.name and\n\t        `tabPurchase Invoice Item`.pr_detail = `tabPurchase Receipt Item`.name), 0))\n\t\tas \"Qty:Float:110\",\n\t(`tabPurchase Receipt Item`.`amount` - ifnull((select sum(amount) from `tabPurchase Invoice Item` \n        where `tabPurchase Invoice Item`.purchase_receipt = `tabPurchase Receipt`.name and\n            `tabPurchase Invoice Item`.pr_detail = `tabPurchase Receipt Item`.name), 0))\n\t\tas \"Amount:Currency:110\",\n\t`tabPurchase Receipt Item`.`item_name` as \"Item Name::150\",\n\t`tabPurchase Receipt Item`.`description` as \"Description::200\"\nfrom `tabPurchase Receipt`, `tabPurchase Receipt Item`\nwhere\n    `tabPurchase Receipt`.docstatus = 1 and\n\t`tabPurchase Receipt`.`status` != \"Stopped\" and\n    `tabPurchase Receipt`.name = `tabPurchase Receipt Item`.parent and\n    (`tabPurchase Receipt Item`.qty > ifnull((select sum(qty) from `tabPurchase Invoice Item` \n        where `tabPurchase Invoice Item`.purchase_receipt = `tabPurchase Receipt`.name and\n            `tabPurchase Invoice Item`.pr_detail = `tabPurchase Receipt Item`.name), 0))\norder by `tabPurchase Receipt`.`name` desc", 
+  "ref_doctype": "Purchase Invoice", 
+  "report_name": "Received Items To Be Billed", 
+  "report_type": "Query Report"
+ }, 
+ {
+  "doctype": "Report", 
+  "name": "Received Items To Be Billed"
+ }
+]
\ No newline at end of file
diff --git a/accounts/report/sales_invoice_trends/sales_invoice_trends.js b/accounts/report/sales_invoice_trends/sales_invoice_trends.js
index 6f20015..449b6d2 100644
--- a/accounts/report/sales_invoice_trends/sales_invoice_trends.js
+++ b/accounts/report/sales_invoice_trends/sales_invoice_trends.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.require("app/js/sales_trends_filters.js");
 
 wn.query_reports["Sales Invoice Trends"] = {
diff --git a/accounts/report/sales_invoice_trends/sales_invoice_trends.py b/accounts/report/sales_invoice_trends/sales_invoice_trends.py
index 9a5eaf2..121473d 100644
--- a/accounts/report/sales_invoice_trends/sales_invoice_trends.py
+++ b/accounts/report/sales_invoice_trends/sales_invoice_trends.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/report/sales_register/sales_register.js b/accounts/report/sales_register/sales_register.js
index 8224619..43c841f 100644
--- a/accounts/report/sales_register/sales_register.js
+++ b/accounts/report/sales_register/sales_register.js
@@ -1,10 +1,13 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Sales Register"] = {
 	"filters": [
 		{
 			"fieldname":"from_date",
 			"label": "From Date",
 			"fieldtype": "Date",
-			"default": wn.defaults.get_user_default("year_start_date"),
+			"default": wn.defaults.get_default("year_start_date"),
 			"width": "80"
 		},
 		{
@@ -36,7 +39,7 @@
 			"label": "Company",
 			"fieldtype": "Link",
 			"options": "Company",
-			"default": sys_defaults.company
+			"default": wn.defaults.get_default("company")
 		}
 	]
 }
\ No newline at end of file
diff --git a/accounts/report/sales_register/sales_register.py b/accounts/report/sales_register/sales_register.py
index 91ad1c2..4025f66 100644
--- a/accounts/report/sales_register/sales_register.py
+++ b/accounts/report/sales_register/sales_register.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -30,7 +17,8 @@
 		return columns, invoice_list
 	
 	invoice_income_map = get_invoice_income_map(invoice_list)
-	invoice_income_map, invoice_tax_map = get_invoice_tax_map(invoice_list, invoice_income_map)
+	invoice_income_map, invoice_tax_map = get_invoice_tax_map(invoice_list, 
+		invoice_income_map, income_accounts)
 	
 	invoice_so_dn_map = get_invoice_so_dn_map(invoice_list)
 	customer_map = get_customer_deatils(invoice_list)
@@ -42,7 +30,7 @@
 		sales_order = list(set(invoice_so_dn_map.get(inv.name, {}).get("sales_order", [])))
 		delivery_note = list(set(invoice_so_dn_map.get(inv.name, {}).get("delivery_note", [])))
 
-		row = [inv.name, inv.posting_date, inv.customer_name, inv.debit_to, 
+		row = [inv.name, inv.posting_date, inv.customer, inv.customer_name, inv.debit_to, 
 			account_map.get(inv.debit_to), customer_map.get(inv.customer), inv.project_name, 
 			inv.remarks, ", ".join(sales_order), ", ".join(delivery_note)]
 		
@@ -54,7 +42,7 @@
 			row.append(income_amount)
 		
 		# net total
-		row.append(net_total)
+		row.append(net_total or inv.net_total)
 			
 		# tax account
 		total_tax = 0
@@ -75,10 +63,10 @@
 def get_columns(invoice_list):
 	"""return columns based on filters"""
 	columns = [
-		"Invoice:Link/Sales Invoice:120", "Posting Date:Date:80", "Customer::120", 
-		"Customer Account:Link/Account:120", "Account Group:LInk/Account:120",
-		"Territory:Link/Territory:80", "Project:Link/Project:80", 
-		"Remarks::150", "Sales Order:Link/Sales Order:100", "Delivery Note:Link/Delivery Note:100"
+		"Invoice:Link/Sales Invoice:120", "Posting Date:Date:80", "Customer Id::120", 
+		"Customer Name::120", "Customer Account:Link/Account:120", "Account Group:LInk/Account:120",
+		"Territory:Link/Territory:80", "Project:Link/Project:80", "Remarks::150", 
+		"Sales Order:Link/Sales Order:100", "Delivery Note:Link/Delivery Note:100"
 	]
 	
 	income_accounts = tax_accounts = income_columns = tax_columns = []
@@ -120,7 +108,7 @@
 def get_invoices(filters):
 	conditions = get_conditions(filters)
 	return webnotes.conn.sql("""select name, posting_date, debit_to, project_name, customer, 
-		customer_name, remarks, grand_total, rounded_total, outstanding_amount 
+		customer_name, remarks, net_total, grand_total, rounded_total, outstanding_amount 
 		from `tabSales Invoice` 
 		where docstatus = 1 %s order by posting_date desc, name desc""" % 
 		conditions, filters, as_dict=1)
@@ -137,15 +125,18 @@
 	
 	return invoice_income_map
 	
-def get_invoice_tax_map(invoice_list, invoice_income_map):
+def get_invoice_tax_map(invoice_list, invoice_income_map, income_accounts):
 	tax_details = webnotes.conn.sql("""select parent, account_head, sum(tax_amount) as tax_amount
 		from `tabSales Taxes and Charges` where parent in (%s) group by parent, account_head""" % 
 		', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1)
 	
 	invoice_tax_map = {}
 	for d in tax_details:
-		if d.account_head in invoice_income_map.get(d.parent):
-			invoice_income_map[d.parent][d.account_head] += flt(d.tax_amount)
+		if d.account_head in income_accounts:
+			if invoice_income_map[d.parent].has_key(d.account_head):
+				invoice_income_map[d.parent][d.account_head] += flt(d.tax_amount)
+			else:
+				invoice_income_map[d.parent][d.account_head] = flt(d.tax_amount)
 		else:
 			invoice_tax_map.setdefault(d.parent, webnotes._dict()).setdefault(d.account_head, [])
 			invoice_tax_map[d.parent][d.account_head] = flt(d.tax_amount)
diff --git a/accounts/report/supplier_account_head/supplier_account_head.py b/accounts/report/supplier_account_head/supplier_account_head.py
index 8b55067..53796ce 100644
--- a/accounts/report/supplier_account_head/supplier_account_head.py
+++ b/accounts/report/supplier_account_head/supplier_account_head.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/accounts/utils.py b/accounts/utils.py
index 3de445c..9beaac7 100644
--- a/accounts/utils.py
+++ b/accounts/utils.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 
@@ -119,7 +106,7 @@
 		bal = -bal
 
 	# if bal is None, return 0
-	return bal or 0
+	return flt(bal)
 
 @webnotes.whitelist()
 def add_ac(args=None):
diff --git a/buying/Print Format/Purchase Order Classic/Purchase Order Classic.txt b/buying/Print Format/Purchase Order Classic/Purchase Order Classic.txt
index 5c5c8aa..ff8448f 100644
--- a/buying/Print Format/Purchase Order Classic/Purchase Order Classic.txt
+++ b/buying/Print Format/Purchase Order Classic/Purchase Order Classic.txt
@@ -1,21 +1,22 @@
 [
  {
-  "owner": "Administrator", 
+  "creation": "2012-04-17 11:29:12", 
   "docstatus": 0, 
-  "creation": "2011-12-13 11:02:59", 
+  "modified": "2013-08-07 20:00:45", 
   "modified_by": "Administrator", 
-  "modified": "2011-12-13 13:51:41"
+  "owner": "Administrator"
  }, 
  {
   "doc_type": "Purchase Order", 
-  "name": "__common__", 
-  "module": "Buying", 
   "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'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", 
+  "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}\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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount / (doc.conversion_rate || 1), doc.currency) + '</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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_import, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_import, doc.currency)\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__", 
+  "print_format_type": "Client", 
   "standard": "Yes"
  }, 
  {
-  "name": "Purchase Order Classic", 
-  "doctype": "Print Format"
+  "doctype": "Print Format", 
+  "name": "Purchase Order Classic"
  }
 ]
\ No newline at end of file
diff --git a/buying/Print Format/Purchase Order Modern/Purchase Order Modern.txt b/buying/Print Format/Purchase Order Modern/Purchase Order Modern.txt
index 535839f..3be7eb0 100644
--- a/buying/Print Format/Purchase Order Modern/Purchase Order Modern.txt
+++ b/buying/Print Format/Purchase Order Modern/Purchase Order Modern.txt
@@ -1,21 +1,22 @@
 [
  {
-  "owner": "Administrator", 
+  "creation": "2012-04-17 11:29:12", 
   "docstatus": 0, 
-  "creation": "2011-12-13 11:02:59", 
+  "modified": "2013-08-07 20:12:05", 
   "modified_by": "Administrator", 
-  "modified": "2011-12-13 13:53:52"
+  "owner": "Administrator"
  }, 
  {
   "doc_type": "Purchase Order", 
-  "name": "__common__", 
-  "module": "Buying", 
   "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'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", 
+  "html": "<!--\n    Sample 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        line-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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount / (doc.conversion_rate || 1), doc.currency) + '</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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_import, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_import, doc.currency)\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__", 
+  "print_format_type": "Client", 
   "standard": "Yes"
  }, 
  {
-  "name": "Purchase Order Modern", 
-  "doctype": "Print Format"
+  "doctype": "Print Format", 
+  "name": "Purchase Order Modern"
  }
 ]
\ No newline at end of file
diff --git a/buying/Print Format/Purchase Order Spartan/Purchase Order Spartan.txt b/buying/Print Format/Purchase Order Spartan/Purchase Order Spartan.txt
index 04999b5..908ee78 100644
--- a/buying/Print Format/Purchase Order Spartan/Purchase Order Spartan.txt
+++ b/buying/Print Format/Purchase Order Spartan/Purchase Order Spartan.txt
@@ -1,21 +1,22 @@
 [
  {
-  "owner": "Administrator", 
+  "creation": "2012-04-17 11:29:12", 
   "docstatus": 0, 
-  "creation": "2011-12-13 11:02:59", 
+  "modified": "2013-08-07 20:01:38", 
   "modified_by": "Administrator", 
-  "modified": "2011-12-13 13:55:23"
+  "owner": "Administrator"
  }, 
  {
   "doc_type": "Purchase Order", 
-  "name": "__common__", 
-  "module": "Buying", 
   "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'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", 
+  "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}\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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount / (doc.conversion_rate || 1), doc.currency) + '</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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_import, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_import, doc.currency)\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__", 
+  "print_format_type": "Client", 
   "standard": "Yes"
  }, 
  {
-  "name": "Purchase Order Spartan", 
-  "doctype": "Print Format"
+  "doctype": "Print Format", 
+  "name": "Purchase Order Spartan"
  }
 ]
\ No newline at end of file
diff --git a/buying/doctype/buying_settings/buying_settings.py b/buying/doctype/buying_settings/buying_settings.py
index b00bcef..3f4f96d 100644
--- a/buying/doctype/buying_settings/buying_settings.py
+++ b/buying/doctype/buying_settings/buying_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
@@ -8,6 +11,6 @@
 		self.doc, self.doclist = d, dl
 		
 	def validate(self):
-		for key in ["supplier_type", "supp_master_name", "maintain_same_rate"]:
+		for key in ["supplier_type", "supp_master_name", "maintain_same_rate", "buying_price_list"]:
 			webnotes.conn.set_default(key, self.doc.fields.get(key, ""))
 	
\ No newline at end of file
diff --git a/buying/doctype/buying_settings/buying_settings.txt b/buying/doctype/buying_settings/buying_settings.txt
index eec7260..2b0c6ad 100644
--- a/buying/doctype/buying_settings/buying_settings.txt
+++ b/buying/doctype/buying_settings/buying_settings.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-25 11:04:03", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:29:41", 
+  "modified": "2013-08-09 14:38:46", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -55,6 +55,13 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "buying_price_list", 
+  "fieldtype": "Link", 
+  "label": "Default Buying Price List", 
+  "options": "Price List"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "column_break_3", 
   "fieldtype": "Column Break"
  }, 
diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js
index e93d34e..67ba33c 100644
--- a/buying/doctype/purchase_common/purchase_common.js
+++ b/buying/doctype/purchase_common/purchase_common.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // Preset
 // ------
@@ -31,8 +18,8 @@
 	setup_queries: function() {
 		var me = this;
 		
-		if(this.frm.fields_dict.price_list_name) {
-			this.frm.set_query("price_list_name", function() {
+		if(this.frm.fields_dict.buying_price_list) {
+			this.frm.set_query("buying_price_list", function() {
 				return{
 					filters: { 'buying_or_selling': "Buying" }
 				}
@@ -42,13 +29,21 @@
 				return{
 					query: "controllers.queries.get_price_list_currency",
 					filters: {
-						'price_list_name': me.frm.doc.price_list_name,
+						'price_list': me.frm.doc.buying_price_list,
 						'buying_or_selling': "Buying"
 					}					
 				}
 			});
 		}
 		
+		$.each([["supplier", "supplier"], 
+			["contact_person", "supplier_filter"],
+			["supplier_address", "supplier_filter"]], 
+			function(i, opts) {
+				if(me.frm.fields_dict[opts[0]]) 
+					me.frm.set_query(opts[0], erpnext.queries[opts[1]]);
+			});
+		
 		if(this.frm.fields_dict.supplier) {
 			this.frm.set_query("supplier", function() {
 				return{	query:"controllers.queries.supplier_query" }});
@@ -82,16 +77,15 @@
 				msgprint(wn._("Please specify Company"));
 			} else {
 				var me = this;
-				var price_list_name = this.frm.doc.price_list_name;
+				var buying_price_list = this.frm.doc.buying_price_list;
 
-				this.frm.call({
+				return this.frm.call({
 					doc: this.frm.doc,
 					method: "set_supplier_defaults",
 					freeze: true,
 					callback: function(r) {
 						if(!r.exc) {
-							me.frm.refresh_fields();
-							if(me.frm.doc.price_list_name !== price_list_name) me.price_list_name();
+							if(me.frm.doc.buying_price_list !== buying_price_list) me.buying_price_list();
 						}
 					}
 				});
@@ -99,6 +93,26 @@
 		}
 	},
 	
+	supplier_address: function() {
+		var me = this;
+		if (this.frm.doc.supplier) {
+			return wn.call({
+				doc: this.frm.doc,
+				method: "set_supplier_address",
+				freeze: true,
+				args: {
+					supplier: this.frm.doc.supplier,
+					address: this.frm.doc.supplier_address, 
+					contact: this.frm.doc.contact_person
+				},
+			});
+		}
+	},
+	
+	contact_person: function() { 
+		this.supplier_address();
+	},
+	
 	item_code: function(doc, cdt, cdn) {
 		var me = this;
 		var item = wn.model.get_doc(cdt, cdn);
@@ -107,7 +121,7 @@
 				item.item_code = null;
 				refresh_field("item_code", item.name, item.parentfield);
 			} else {
-				this.frm.call({
+				return this.frm.call({
 					method: "buying.utils.get_item_details",
 					child: item,
 					args: {
@@ -118,7 +132,7 @@
 							docname: me.frm.doc.name,
 							supplier: me.frm.doc.supplier,
 							conversion_rate: me.frm.doc.conversion_rate,
-							price_list_name: me.frm.doc.price_list_name,
+							buying_price_list: me.frm.doc.buying_price_list,
 							price_list_currency: me.frm.doc.price_list_currency,
 							plc_conversion_rate: me.frm.doc.plc_conversion_rate,
 							is_subcontracted: me.frm.doc.is_subcontracted,
@@ -129,7 +143,7 @@
 					},
 					callback: function(r) {
 						if(!r.exc) {
-							me.import_ref_rate(me.frm.doc, cdt, cdn);
+							me.frm.script_manager.trigger("import_ref_rate", cdt, cdn);
 						}
 					}
 				});
@@ -137,8 +151,8 @@
 		}
 	},
 	
-	price_list_name: function() {
-		this._super("buying");
+	buying_price_list: function() {
+		this.get_price_list_currency("buying");
 	},
 	
 	import_ref_rate: function(doc, cdt, cdn) {
@@ -173,7 +187,7 @@
 		var me = this;
 		var item = wn.model.get_doc(cdt, cdn);
 		if(item.item_code && item.uom) {
-			this.frm.call({
+			return this.frm.call({
 				method: "buying.utils.get_conversion_factor",
 				child: item,
 				args: {
@@ -206,7 +220,7 @@
 	warehouse: function(doc, cdt, cdn) {
 		var item = wn.model.get_doc(cdt, cdn);
 		if(item.item_code && item.warehouse) {
-			this.frm.call({
+			return this.frm.call({
 				method: "buying.utils.get_projected_qty",
 				child: item,
 				args: {
@@ -240,7 +254,7 @@
 	purchase_other_charges: function() {
 		var me = this;
 		if(this.frm.doc.purchase_other_charges) {
-			this.frm.call({
+			return this.frm.call({
 				doc: this.frm.doc,
 				method: "get_purchase_tax_details",
 				callback: function(r) {
@@ -465,12 +479,12 @@
 		
 		// toggle columns
 		var item_grid = this.frm.fields_dict[this.fname].grid;
-		var show = this.frm.doc.currency != company_currency;
-		$.each(["purchase_rate", "purchase_ref_rate", "amount", "rate"], function(i, fname) {
-			if(wn.meta.get_docfield(item_grid.doctype, fname))
-				item_grid.set_column_disp(fname, show);
+		var fieldnames = $.map(["purchase_rate", "purchase_ref_rate", "amount", "rate"], function(fname) {
+			return wn.meta.get_docfield(item_grid.doctype, fname, me.frm.docname) ? fname : null;
 		});
 		
+		item_grid.set_column_disp(fieldnames, this.frm.doc.currency != company_currency);
+		
 		// set labels
 		var $wrapper = $(this.frm.wrapper);
 		$.each(field_label_map, function(fname, label) {
diff --git a/buying/doctype/purchase_common/purchase_common.py b/buying/doctype/purchase_common/purchase_common.py
index e14b1ca..65bccaa 100644
--- a/buying/doctype/purchase_common/purchase_common.py
+++ b/buying/doctype/purchase_common/purchase_common.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -76,7 +63,11 @@
 			elif is_submit == 1:
 				# even if this transaction is the latest one, it should be submitted
 				# for it to be considered for latest purchase rate
-				last_purchase_rate = flt(d.purchase_rate) / flt(d.conversion_factor)
+				if flt(d.conversion_factor):
+					last_purchase_rate = flt(d.purchase_rate) / flt(d.conversion_factor)
+				else:
+					msgprint(_("Row ") + cstr(d.idx) + ": " + 
+						_("UOM Conversion Factor is mandatory"), raise_exception=1)
 
 			# update last purchsae rate
 			if last_purchase_rate:
diff --git a/buying/doctype/purchase_order/purchase_order.js b/buying/doctype/purchase_order/purchase_order.js
index bccd4a9..a960046 100644
--- a/buying/doctype/purchase_order/purchase_order.js
+++ b/buying/doctype/purchase_order/purchase_order.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.provide("erpnext.buying");
 
@@ -80,7 +67,8 @@
 						company: cur_frm.doc.company
 					}
 				})
-			});
+			}
+		);
 
 		cur_frm.add_custom_button(wn._('From Supplier Quotation'), 
 			function() {
@@ -93,7 +81,20 @@
 						company: cur_frm.doc.company
 					}
 				})
-			});	
+			}
+		);	
+			
+		cur_frm.add_custom_button(wn._('For Supplier'), 
+			function() {
+				wn.model.map_current_doc({
+					method: "stock.doctype.material_request.material_request.make_purchase_order_based_on_supplier",
+					source_doctype: "Supplier",
+					get_query_filters: {
+						docstatus: ["!=", 2],
+					}
+				})
+			}
+		);
 	},
 
 	tc_name: function() {
@@ -105,10 +106,6 @@
 // for backward compatibility: combine new and previous states
 $.extend(cur_frm.cscript, new erpnext.buying.PurchaseOrderController({frm: cur_frm}));
 
-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'].get_query = function(doc, cdt, cdn) {
 	return {
 		filters: {'supplier': doc.supplier}
@@ -130,7 +127,7 @@
 }
 
 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) { 
+	return $c_obj(make_doclist(doc.doctype, doc.name), 'get_last_purchase_rate', '', function(r, rt) { 
 		refresh_field(cur_frm.cscript.fname);
 		var doc = locals[cdt][cdn];
 		cur_frm.cscript.calc_amount( doc, 2);
@@ -142,7 +139,7 @@
 	var check = confirm("Do you really want to STOP " + doc.name);
 
 	if (check) {
-		$c('runserverobj', args={'method':'update_status', 'arg': 'Stopped', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
+		return $c('runserverobj', args={'method':'update_status', 'arg': 'Stopped', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
 			cur_frm.refresh();
 		});	
 	}
@@ -153,7 +150,7 @@
 	var check = confirm("Do you really want to UNSTOP " + doc.name);
 
 	if (check) {
-		$c('runserverobj', args={'method':'update_status', 'arg': 'Submitted', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
+		return $c('runserverobj', args={'method':'update_status', 'arg': 'Submitted', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
 			cur_frm.refresh();
 		});	
 	}
diff --git a/buying/doctype/purchase_order/purchase_order.py b/buying/doctype/purchase_order/purchase_order.py
index 406f3a9..3675177 100644
--- a/buying/doctype/purchase_order/purchase_order.py
+++ b/buying/doctype/purchase_order/purchase_order.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -58,6 +45,9 @@
 		pc_obj.get_prevdoc_date(self)
 		self.check_for_stopped_status(pc_obj)
 
+		self.validate_uom_is_integer("uom", "qty")
+		self.validate_uom_is_integer("stock_uom", ["qty", "required_qty"])
+
 		self.validate_with_previous_doc()
 		self.validate_for_subcontracting()
 		self.update_raw_materials_supplied("po_raw_material_details")
@@ -206,7 +196,6 @@
 		bean.run_method("set_missing_values")
 
 	def update_item(obj, target, source_parent):
-		target.conversion_factor = 1
 		target.qty = flt(obj.qty) - flt(obj.received_qty)
 		target.stock_qty = (flt(obj.qty) - flt(obj.received_qty)) * flt(obj.conversion_factor)
 		target.import_amount = (flt(obj.qty) - flt(obj.received_qty)) * flt(obj.import_rate)
@@ -247,9 +236,8 @@
 		bean.run_method("set_supplier_defaults")
 
 	def update_item(obj, target, source_parent):
-		target.conversion_factor = 1
 		target.import_amount = flt(obj.import_amount) - flt(obj.billed_amt)
-		target.amount = target.import_amount / flt(source_parent.conversion_rate)
+		target.amount = target.import_amount * flt(source_parent.conversion_rate)
 		if flt(obj.purchase_rate):
 			target.qty = target.amount / flt(obj.purchase_rate)
 
diff --git a/buying/doctype/purchase_order/purchase_order.txt b/buying/doctype/purchase_order/purchase_order.txt
index 1699c56..1134d95 100644
--- a/buying/doctype/purchase_order/purchase_order.txt
+++ b/buying/doctype/purchase_order/purchase_order.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-21 16:16:39", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:50:00", 
+  "modified": "2013-08-09 14:45:51", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -52,7 +52,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -191,14 +191,13 @@
   "reqd": 1
  }, 
  {
-  "default": "1", 
   "description": "Rate at which supplier's currency is converted to company's base currency", 
   "doctype": "DocField", 
   "fieldname": "conversion_rate", 
   "fieldtype": "Float", 
   "hidden": 0, 
   "label": "Exchange Rate", 
-  "no_copy": 1, 
+  "no_copy": 0, 
   "oldfieldname": "conversion_rate", 
   "oldfieldtype": "Currency", 
   "print_hide": 1, 
@@ -212,23 +211,24 @@
  {
   "description": "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)", 
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
+  "fieldname": "buying_price_list", 
   "fieldtype": "Link", 
   "label": "Price List", 
   "options": "Price List", 
   "print_hide": 1
  }, 
  {
-  "depends_on": "price_list_name", 
+  "depends_on": "buying_price_list", 
   "doctype": "DocField", 
   "fieldname": "price_list_currency", 
   "fieldtype": "Link", 
   "label": "Price List Currency", 
   "options": "Currency", 
-  "print_hide": 1
+  "print_hide": 1, 
+  "read_only": 1
  }, 
  {
-  "depends_on": "price_list_name", 
+  "depends_on": "buying_price_list", 
   "doctype": "DocField", 
   "fieldname": "plc_conversion_rate", 
   "fieldtype": "Float", 
@@ -312,7 +312,7 @@
   "fieldname": "purchase_other_charges", 
   "fieldtype": "Link", 
   "label": "Purchase Taxes and Charges", 
-  "no_copy": 1, 
+  "no_copy": 0, 
   "oldfieldname": "purchase_other_charges", 
   "oldfieldtype": "Link", 
   "options": "Purchase Taxes and Charges Master", 
diff --git a/buying/doctype/purchase_order/test_purchase_order.py b/buying/doctype/purchase_order/test_purchase_order.py
index 2c354b5..e160bab 100644
--- a/buying/doctype/purchase_order/test_purchase_order.py
+++ b/buying/doctype/purchase_order/test_purchase_order.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 
 from __future__ import unicode_literals
@@ -70,6 +57,12 @@
 		po.doc.conversion_rate = 0.0167
 		self.assertRaises(WrongWarehouseCompany, po.insert)
 
+	def test_uom_integer_validation(self):
+		from utilities.transaction_base import UOMMustBeIntegerError
+		po = webnotes.bean(copy=test_records[0])
+		po.doclist[1].qty = 3.4
+		self.assertRaises(UOMMustBeIntegerError, po.insert)
+
 
 test_dependencies = ["BOM"]
 
@@ -101,7 +94,7 @@
 			"import_rate": 500.0,
 			"amount": 5000.0,
 			"warehouse": "_Test Warehouse - _TC", 
-			"stock_uom": "Nos", 
+			"stock_uom": "_Test UOM", 
 			"uom": "_Test UOM",
 			"schedule_date": "2013-03-01"
 		}
diff --git a/buying/doctype/purchase_order_item/purchase_order_item.py b/buying/doctype/purchase_order_item/purchase_order_item.py
index 7f48feb..26d0f76 100644
--- a/buying/doctype/purchase_order_item/purchase_order_item.py
+++ b/buying/doctype/purchase_order_item/purchase_order_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/buying/doctype/purchase_order_item/purchase_order_item.txt b/buying/doctype/purchase_order_item/purchase_order_item.txt
index c7233d0..36b81d2 100755
--- a/buying/doctype/purchase_order_item/purchase_order_item.txt
+++ b/buying/doctype/purchase_order_item/purchase_order_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:06", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:14", 
+  "modified": "2013-08-07 14:44:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -103,7 +103,6 @@
   "width": "300px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
@@ -185,7 +184,6 @@
   "read_only": 0
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "purchase_rate", 
   "fieldtype": "Currency", 
@@ -201,7 +199,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
@@ -265,12 +262,13 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "hidden": 0, 
   "in_list_view": 0, 
   "label": "Stock UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "print_hide": 1, 
   "print_width": "100px", 
   "read_only": 1, 
diff --git a/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.py b/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.py
index 7f48feb..26d0f76 100644
--- a/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.py
+++ b/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt b/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt
index 1d91aa3..05ea4e2 100644
--- a/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt
+++ b/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:42", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:15", 
+  "modified": "2013-07-25 16:33:05", 
   "modified_by": "Administrator", 
   "owner": "dhanalekshmi@webnotestech.com"
  }, 
@@ -111,10 +111,11 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "label": "Stock Uom", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "read_only": 1
  }
 ]
\ No newline at end of file
diff --git a/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.py b/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.py
index 7f48feb..26d0f76 100644
--- a/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.py
+++ b/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt b/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt
index 0ee20a5..1522510 100644
--- a/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt
+++ b/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:42", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:17", 
+  "modified": "2013-07-25 16:34:11", 
   "modified_by": "Administrator", 
   "owner": "wasim@webnotestech.com"
  }, 
@@ -130,10 +130,11 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "label": "Stock Uom", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "read_only": 1
  }, 
  {
diff --git a/buying/doctype/quality_inspection/quality_inspection.js b/buying/doctype/quality_inspection/quality_inspection.js
index d40d81a..0c865a5 100644
--- a/buying/doctype/quality_inspection/quality_inspection.js
+++ b/buying/doctype/quality_inspection/quality_inspection.js
@@ -1,22 +1,9 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 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);
+		return get_server_fields('get_purchase_receipt_item_details','','',doc,cdt,cdn,1);
 }
 
 cur_frm.cscript.inspection_type = function(doc, cdt, cdn) {
@@ -56,13 +43,13 @@
 // Serial No based on item_code
 cur_frm.fields_dict['item_serial_no'].get_query = function(doc, cdt, cdn) {
 	var filter = {};
-	if (doc.item_code)
-		filter:{
+	if (doc.item_code) {
+		filter = {
 			'item_code': doc.item_code,
 			'status': "In Store"
 		}
-	else
-		filter: { 'status': "In Store" }
+	} else
+		filter = { 'status': "In Store" }
 	
 	return { filters: filter }
 }
\ No newline at end of file
diff --git a/buying/doctype/quality_inspection/quality_inspection.py b/buying/doctype/quality_inspection/quality_inspection.py
index 48a9a7a..19b2d2a 100644
--- a/buying/doctype/quality_inspection/quality_inspection.py
+++ b/buying/doctype/quality_inspection/quality_inspection.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/buying/doctype/quality_inspection/quality_inspection.txt b/buying/doctype/quality_inspection/quality_inspection.txt
index 66baddf..0a92104 100644
--- a/buying/doctype/quality_inspection/quality_inspection.txt
+++ b/buying/doctype/quality_inspection/quality_inspection.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-30 13:13:03", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:52:20", 
+  "modified": "2013-08-08 14:22:07", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -62,7 +62,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "options": "\nQAI/11-12/", 
   "reqd": 1
diff --git a/buying/doctype/quality_inspection_reading/quality_inspection_reading.py b/buying/doctype/quality_inspection_reading/quality_inspection_reading.py
index 7f48feb..26d0f76 100644
--- a/buying/doctype/quality_inspection_reading/quality_inspection_reading.py
+++ b/buying/doctype/quality_inspection_reading/quality_inspection_reading.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/buying/doctype/supplier/supplier.js b/buying/doctype/supplier/supplier.js
index 5374d50..75542c8 100644
--- a/buying/doctype/supplier/supplier.js
+++ b/buying/doctype/supplier/supplier.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require('app/setup/doctype/contact_control/contact_control.js');
 
@@ -55,7 +42,7 @@
 	cur_frm.dashboard.add_doctype_badge("Purchase Receipt", "supplier");
 	cur_frm.dashboard.add_doctype_badge("Purchase Invoice", "supplier");
 
-	wn.call({
+	return wn.call({
 		type: "GET",
 		method:"buying.doctype.supplier.supplier.get_dashboard_info",
 		args: {
diff --git a/buying/doctype/supplier/supplier.py b/buying/doctype/supplier/supplier.py
index d1552f94..c646fdb 100644
--- a/buying/doctype/supplier/supplier.py
+++ b/buying/doctype/supplier/supplier.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/buying/doctype/supplier/supplier.txt b/buying/doctype/supplier/supplier.txt
index ebb6505..8fa7067 100644
--- a/buying/doctype/supplier/supplier.txt
+++ b/buying/doctype/supplier/supplier.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:11", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:57:04", 
+  "modified": "2013-08-08 14:22:08", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -82,7 +82,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
diff --git a/buying/doctype/supplier/test_supplier.py b/buying/doctype/supplier/test_supplier.py
index 3ee3419..8f8e144 100644
--- a/buying/doctype/supplier/test_supplier.py
+++ b/buying/doctype/supplier/test_supplier.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Supplier",
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.js b/buying/doctype/supplier_quotation/supplier_quotation.js
index 722ac00..cd6127d 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // define defaults for purchase common
 cur_frm.cscript.tname = "Supplier Quotation Item";
@@ -72,14 +59,6 @@
 		}
 	}
 
-cur_frm.cscript.supplier_address = 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.cscript.contact_person = cur_frm.cscript.supplier_address;
-
 cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
 	return {
 		filters:{'supplier': doc.supplier}
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.py b/buying/doctype/supplier_quotation/supplier_quotation.py
index ae3fbd3..c3d2f78 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.py
+++ b/buying/doctype/supplier_quotation/supplier_quotation.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -23,7 +10,7 @@
 	def __init__(self, doc, doclist=None):
 		self.doc, self.doclist = doc, doclist or []
 		self.tname, self.fname = "Supplier Quotation Item", "quotation_items"
-		
+	
 	def validate(self):
 		super(DocType, self).validate()
 		
@@ -36,6 +23,7 @@
 		
 		self.validate_common()
 		self.validate_with_previous_doc()
+		self.validate_uom_is_integer("uom", "qty")
 
 	def on_submit(self):
 		purchase_controller = webnotes.get_obj("Purchase Common")
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.txt b/buying/doctype/supplier_quotation/supplier_quotation.txt
index 3cb5046..36747d3 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.txt
+++ b/buying/doctype/supplier_quotation/supplier_quotation.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-21 16:16:45", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:49:31", 
+  "modified": "2013-08-09 14:45:58", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -52,7 +52,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -186,7 +186,6 @@
   "reqd": 1
  }, 
  {
-  "default": "1", 
   "description": "Rate at which supplier's currency is converted to company's base currency", 
   "doctype": "DocField", 
   "fieldname": "conversion_rate", 
@@ -209,23 +208,24 @@
  {
   "description": "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)", 
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
+  "fieldname": "buying_price_list", 
   "fieldtype": "Link", 
   "label": "Price List", 
   "options": "Price List", 
   "print_hide": 1
  }, 
  {
-  "depends_on": "price_list_name", 
+  "depends_on": "buying_price_list", 
   "doctype": "DocField", 
   "fieldname": "price_list_currency", 
   "fieldtype": "Link", 
   "label": "Price List Currency", 
   "options": "Currency", 
-  "print_hide": 1
+  "print_hide": 1, 
+  "read_only": 1
  }, 
  {
-  "depends_on": "price_list_name", 
+  "depends_on": "buying_price_list", 
   "doctype": "DocField", 
   "fieldname": "plc_conversion_rate", 
   "fieldtype": "Float", 
diff --git a/buying/doctype/supplier_quotation/test_supplier_quotation.py b/buying/doctype/supplier_quotation/test_supplier_quotation.py
index 0615d62..d6468d5 100644
--- a/buying/doctype/supplier_quotation/test_supplier_quotation.py
+++ b/buying/doctype/supplier_quotation/test_supplier_quotation.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 
 from __future__ import unicode_literals
diff --git a/buying/doctype/supplier_quotation_item/supplier_quotation_item.py b/buying/doctype/supplier_quotation_item/supplier_quotation_item.py
index 7f48feb..26d0f76 100644
--- a/buying/doctype/supplier_quotation_item/supplier_quotation_item.py
+++ b/buying/doctype/supplier_quotation_item/supplier_quotation_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/buying/doctype/supplier_quotation_item/supplier_quotation_item.txt b/buying/doctype/supplier_quotation_item/supplier_quotation_item.txt
index 3ac6200..1d16291 100644
--- a/buying/doctype/supplier_quotation_item/supplier_quotation_item.txt
+++ b/buying/doctype/supplier_quotation_item/supplier_quotation_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-22 12:43:10", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:23", 
+  "modified": "2013-08-07 14:44:18", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -87,7 +87,6 @@
   "label": "Quantity and Rate"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
@@ -169,7 +168,6 @@
   "read_only": 0
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "purchase_rate", 
   "fieldtype": "Currency", 
@@ -185,7 +183,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
diff --git a/buying/page/buying_home/buying_home.js b/buying/page/buying_home/buying_home.js
index 1972ad9..939ff79 100644
--- a/buying/page/buying_home/buying_home.js
+++ b/buying/page/buying_home/buying_home.js
@@ -1,5 +1,5 @@
-// ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-// GNU General Public License. See "license.txt"
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt"
 
 wn.module_page["Buying"] = [
 	{
@@ -66,6 +66,11 @@
 				"description": wn._("Tax Template for Purchase")
 			},
 			{
+				label: wn._("Price List"),
+				description: wn._("Mupltiple Item prices."),
+				doctype:"Price List"
+			},
+			{
 				"doctype":"Supplier Type",
 				"label": wn._("Supplier Type"),
 				"description": wn._("Supplier classification.")
@@ -106,26 +111,35 @@
 		icon: "icon-list",
 		items: [
 			{
-				"label":wn._("Item-wise Purchase History"),
-				route: "query-report/Item-wise Purchase History",
+				"label":wn._("Requested Items To Be Ordered"),
+				route: "query-report/Requested Items To Be Ordered",
+				doctype: "Material Request"
+			},
+			{
+				"label":wn._("Material Requests for which Supplier Quotations are not created"),
+				route: "query-report/Material Requests for which Supplier Quotations are not created",
+				doctype: "Material Request"
 			},
 			{
 				"label":wn._("Purchase In Transit"),
 				route: "query-report/Purchase In Transit",
+				doctype: "Purchase Order"
 			},
 			{
-				"label":wn._("Requested Items To Be Ordered"),
-				route: "query-report/Requested Items To Be Ordered",
+				"label":wn._("Item-wise Purchase History"),
+				route: "query-report/Item-wise Purchase History",
+				doctype: "Item"
+			},
+			{
+				"label":wn._("Item-wise Last Purchase Rate"),
+				route: "query-report/Item-wise Last Purchase Rate",
+				doctype: "Item"
 			},
 			{
 				"label":wn._("Purchase Order Trends"),
 				route: "query-report/Purchase Order Trends",
 				doctype: "Purchase Order"
 			},
-			{
-				"label":wn._("Item-wise Last Purchase Rate"),
-				route: "query-report/Item-wise Last Purchase Rate",
-			}
 		]
 	}
 ]
diff --git a/buying/page/purchase_analytics/purchase_analytics.js b/buying/page/purchase_analytics/purchase_analytics.js
index 96b88b3..c163052 100644
--- a/buying/page/purchase_analytics/purchase_analytics.js
+++ b/buying/page/purchase_analytics/purchase_analytics.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.pages['purchase-analytics'].onload = function(wrapper) { 
 	wn.ui.make_app_page({
@@ -121,7 +108,7 @@
 		var me = this;
 		this._super();
 		
-		this.trigger_refresh_on_change(["value_or_qty", "tree_type", "based_on"]);
+		this.trigger_refresh_on_change(["value_or_qty", "tree_type", "based_on", "company"]);
 
 		this.show_zero_check()		
 		this.setup_plot_check();
@@ -216,7 +203,7 @@
 		var is_val = this.value_or_qty == 'Value';
 		
 		$.each(this.tl[this.based_on], function(i, tl) {
-			if (me.is_default('company') ? true : me.apply_filter(tl, "company")) { 
+			if (me.is_default('company') ? true : tl.company === me.company) { 
 				var posting_date = dateutil.str_to_obj(tl.posting_date);
 				if (posting_date >= from_date && posting_date <= to_date) {
 					var item = me.item_by_name[tl[me.tree_grid.item_key]] || 
diff --git a/buying/report/purchase_order_trends/purchase_order_trends.js b/buying/report/purchase_order_trends/purchase_order_trends.js
index c6373db..41cb660 100644
--- a/buying/report/purchase_order_trends/purchase_order_trends.js
+++ b/buying/report/purchase_order_trends/purchase_order_trends.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.require("app/js/purchase_trends_filters.js");
 
 wn.query_reports["Purchase Order Trends"] = {
diff --git a/buying/report/purchase_order_trends/purchase_order_trends.py b/buying/report/purchase_order_trends/purchase_order_trends.py
index 9dc986e..3c99e06 100644
--- a/buying/report/purchase_order_trends/purchase_order_trends.py
+++ b/buying/report/purchase_order_trends/purchase_order_trends.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/buying/utils.py b/buying/utils.py
index 886b460..33326d9 100644
--- a/buying/utils.py
+++ b/buying/utils.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -31,7 +18,7 @@
 			"supplier": None,
 			"transaction_date": None,
 			"conversion_rate": 1.0,
-			"price_list_name": None,
+			"buying_price_list": None,
 			"price_list_currency": None,
 			"plc_conversion_rate": 1.0,
 			"is_subcontracted": "Yes" / "No"
@@ -101,10 +88,10 @@
 	out = webnotes._dict()
 	
 	# try fetching from price list
-	if args.price_list_name and args.price_list_currency:
+	if args.buying_price_list and args.price_list_currency:
 		price_list_rate = item_bean.doclist.get({
 			"parentfield": "ref_rate_details", 
-			"price_list_name": args.price_list_name, 
+			"price_list": args.buying_price_list, 
 			"ref_currency": args.price_list_currency,
 			"buying_or_selling": "Buying"})
 		if price_list_rate:
@@ -207,7 +194,7 @@
 @webnotes.whitelist()
 def get_conversion_factor(item_code, uom):
 	return {"conversion_factor": webnotes.conn.get_value("UOM Conversion Detail",
-		{"parent": item_code, "uom": uom})}
+		{"parent": item_code, "uom": uom}, "conversion_factor")}
 		
 @webnotes.whitelist()
 def get_projected_qty(item_code, warehouse):
diff --git a/config.json b/config.json
index bdc8748..c9d1aa7 100644
--- a/config.json
+++ b/config.json
@@ -84,11 +84,9 @@
 				"args_method": "website.doctype.about_us_settings.about_us_settings.get_args"
 			},
 			"account": {
+				"no_cache": true,
 				"template": "app/website/templates/pages/account"
 			},
-			"attributions": {
-				"template": "app/website/templates/pages/attributions"
-			},
 			"blog": {
 				"template": "app/website/templates/pages/blog",
 				"args_method": "website.helpers.blog.get_blog_template_args"
@@ -106,6 +104,7 @@
 				"args_method": "selling.doctype.sales_order.sales_order.get_website_args"
 			},
 			"orders": {
+				"no_cache": true,
 				"template": "app/website/templates/pages/orders",
 				"args_method": "selling.doctype.sales_order.sales_order.get_currency_and_number_format"
 			},
diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py
index 7bcc92e..d6bf392 100644
--- a/controllers/accounts_controller.py
+++ b/controllers/accounts_controller.py
@@ -1,23 +1,10 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
 from webnotes import _, msgprint
-from webnotes.utils import flt, cint, today
+from webnotes.utils import flt, cint, today, cstr
 from setup.utils import get_company_currency, get_price_list_currency
 from accounts.utils import get_fiscal_year, validate_fiscal_year
 from utilities.transaction_base import TransactionBase, validate_conversion_rate
@@ -28,12 +15,13 @@
 		self.set_missing_values(for_validate=True)
 		
 		self.validate_date_with_fiscal_year()
-		
 		if self.meta.get_field("currency"):
 			self.calculate_taxes_and_totals()
 			self.validate_value("grand_total", ">=", 0)
 			self.set_total_in_words()
 			
+		self.validate_for_freezed_account()
+			
 	def set_missing_values(self, for_validate=False):
 		for fieldname in ["posting_date", "transaction_date"]:
 			if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
@@ -52,19 +40,29 @@
 			if date_field and self.doc.fields[date_field]:
 				validate_fiscal_year(self.doc.fields[date_field], self.doc.fiscal_year, 
 					label=self.meta.get_label(date_field))
+					
+	def validate_for_freezed_account(self):
+		for fieldname in ["customer", "supplier"]:
+			if self.meta.get_field(fieldname) and self.doc.fields.get(fieldname):
+				accounts = webnotes.conn.get_values("Account", {"master_type": fieldname.title(), 
+					"master_name": self.doc.fields[fieldname], "company": self.doc.company}, 
+					"freeze_account", as_dict=1)
+				
+				if accounts:
+					if not filter(lambda x: cstr(x.freeze_account) in ["", "No"], accounts):
+						msgprint(_("Account for this ") + fieldname + _(" has been freezed. ") + 
+							self.doc.doctype + _(" can not be made."), raise_exception=1)
 			
 	def set_price_list_currency(self, buying_or_selling):
+		company_currency = get_company_currency(self.doc.company)
+		fieldname = buying_or_selling.lower() + "_price_list"
 		# TODO - change this, since price list now has only one currency allowed
-		if self.meta.get_field("price_list_name") and self.doc.price_list_name and \
+		if self.meta.get_field(fieldname) and self.doc.fields.get(fieldname) and \
 			not self.doc.price_list_currency:
-				self.doc.fields.update(get_price_list_currency({
-					"price_list_name": self.doc.price_list_name, 
-					"buying_or_selling": buying_or_selling
-				}))
+				self.doc.fields.update(get_price_list_currency(self.doc.fields.get(fieldname)))
 				
 				if self.doc.price_list_currency:
 					if not self.doc.plc_conversion_rate:
-						company_currency = get_company_currency(self.doc.company)
 						if self.doc.price_list_currency == company_currency:
 							self.doc.plc_conversion_rate = 1.0
 						else:
@@ -76,6 +74,15 @@
 						self.doc.currency = self.doc.price_list_currency
 						self.doc.conversion_rate = self.doc.plc_conversion_rate
 						
+		if self.meta.get_field("currency"):
+			if self.doc.currency != company_currency:
+				if not self.doc.conversion_rate:
+					exchange = self.doc.currency + "-" + company_currency
+					self.doc.conversion_rate = flt(webnotes.conn.get_value("Currency Exchange",
+						exchange, "exchange_rate"))
+			else:
+				self.doc.conversion_rate = 1
+						
 	def set_missing_item_details(self, get_item_details):
 		"""set missing item values"""
 		for item in self.doclist.get({"parentfield": self.fname}):
@@ -125,8 +132,9 @@
 					
 	def calculate_taxes_and_totals(self):
 		# validate conversion rate
-		if not self.doc.currency:
-			self.doc.currency = get_company_currency(self.doc.company)
+		company_currency = get_company_currency(self.doc.company)
+		if not self.doc.currency or self.doc.currency == company_currency:
+			self.doc.currency = company_currency
 			self.doc.conversion_rate = 1.0
 		else:
 			validate_conversion_rate(self.doc.currency, self.doc.conversion_rate,
@@ -257,7 +265,7 @@
 					tax.grand_total_for_current_item = \
 						flt(self.tax_doclist[i-1].grand_total_for_current_item +
 							current_tax_amount, self.precision("total", tax))
-							
+				
 				# in tax.total, accumulate grand total of each item
 				tax.total += tax.grand_total_for_current_item
 				
@@ -372,21 +380,24 @@
 				"allocate_amount": 0
 			})
 			
-	def validate_multiple_billing(self, ref_dt, item_ref_dn, based_on):
+	def validate_multiple_billing(self, ref_dt, item_ref_dn, based_on, parentfield):
 		for item in self.doclist.get({"parentfield": "entries"}):
 			if item.fields.get(item_ref_dn):
 				already_billed = webnotes.conn.sql("""select sum(%s) from `tab%s` 
 					where %s=%s and docstatus=1""" % (based_on, self.tname, item_ref_dn, '%s'), 
 					item.fields[item_ref_dn])[0][0]
-				if already_billed:
-					max_allowed_amt = webnotes.conn.get_value(ref_dt + " Item", 
-						item.fields[item_ref_dn], based_on)
+				
+				max_allowed_amt = flt(webnotes.conn.get_value(ref_dt + " Item", 
+					item.fields[item_ref_dn], based_on), self.precision(based_on, item))
+				
+				total_billed_amt = flt(flt(already_billed) + flt(item.fields[based_on]), 
+					self.precision(based_on, item))
 					
-					if flt(already_billed) + flt(item.fields[based_on]) > max_allowed_amt:
-						webnotes.msgprint(_("Row ")+ item.idx + ": " + item.item_code + 
-							_(" will be over-billed against mentioned ") + ref_dt +  
-							_(". Max allowed " + based_on + ": " + max_allowed_amt), 
-							raise_exception=1)
+				if max_allowed_amt and total_billed_amt - max_allowed_amt > 0.02:
+					webnotes.msgprint(_("Row ")+ cstr(item.idx) + ": " + cstr(item.item_code) + 
+						_(" will be over-billed against mentioned ") + cstr(ref_dt) +  
+						_(". Max allowed " + cstr(based_on) + ": " + cstr(max_allowed_amt)), 
+						raise_exception=1)
 		
 	def get_company_default(self, fieldname):
 		from accounts.utils import get_company_default
diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py
index a44ceba..63070a5 100644
--- a/controllers/buying_controller.py
+++ b/controllers/buying_controller.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -43,21 +30,25 @@
 	def set_missing_values(self, for_validate=False):
 		super(BuyingController, self).set_missing_values(for_validate)
 
+		self.set_supplier_from_item_default()
 		self.set_price_list_currency("Buying")
 		
 		# set contact and address details for supplier, if they are not mentioned
 		if self.doc.supplier and not (self.doc.contact_person and self.doc.supplier_address):
-			for fieldname, val in self.get_default_address_and_contact("supplier").items():
+			for fieldname, val in self.get_supplier_defaults().items():
 				if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
 					self.doc.fields[fieldname] = val
 
 		self.set_missing_item_details(get_item_details)
 
-	def set_supplier_defaults(self):
-		for fieldname, val in self.get_default_address_and_contact("supplier").items():
-			if self.meta.get_field(fieldname):
-				self.doc.fields[fieldname] = val
-						
+	def set_supplier_from_item_default(self):
+		if self.meta.get_field("supplier") and not self.doc.supplier:
+			for d in self.doclist.get({"doctype": self.tname}):
+				supplier = webnotes.conn.get_value("Item", d.item_code, "default_supplier")
+				if supplier:
+					self.doc.supplier = supplier
+					break
+
 	def get_purchase_tax_details(self):
 		self.doclist = self.doc.clear_table(self.doclist, "purchase_tax_details")
 		self.set_taxes("purchase_tax_details", "purchase_other_charges")
diff --git a/controllers/js/contact_address_common.js b/controllers/js/contact_address_common.js
index de1ab34..82dad0e 100644
--- a/controllers/js/contact_address_common.js
+++ b/controllers/js/contact_address_common.js
@@ -1,12 +1,15 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 cur_frm.cscript.onload = function(doc, cdt, cdn) {	
 	cur_frm.add_fetch('customer', 'customer_name', 'customer_name');
 	cur_frm.add_fetch('supplier', 'supplier_name', 'supplier_name');
 
-	cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
-	cur_frm.fields_dict.supplier.get_query = erpnext.utils.supplier_query;
+	cur_frm.fields_dict.customer.get_query = erpnext.queries.customer;
+	cur_frm.fields_dict.supplier.get_query = erpnext.queries.supplier;
 	
 	if(cur_frm.fields_dict.lead) {
-		cur_frm.fields_dict.lead.get_query = erpnext.utils.lead_query;
+		cur_frm.fields_dict.lead.get_query = erpnext.queries.lead;
 		cur_frm.add_fetch('lead', 'lead_name', 'lead_name');
 	}
 	
diff --git a/controllers/queries.py b/controllers/queries.py
index 321e15c..381d2c8 100644
--- a/controllers/queries.py
+++ b/controllers/queries.py
@@ -1,18 +1,5 @@
- # 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -23,7 +10,7 @@
 			filters = filters.items()
 			flt = []
 			for f in filters:
-				if f[1][0] == '!':
+				if isinstance(f[1], basestring) and f[1][0] == '!':
 					flt.append([doctype, f[0], '!=', f[1][1:]])
 				else:
 					flt.append([doctype, f[0], '=', f[1]])
@@ -36,12 +23,8 @@
 	return cond
 
 def get_match_cond(doctype, searchfield = 'name'):
-	meta = webnotes.get_doctype(doctype)
-	from webnotes.widgets.search import get_std_fields_list
-	fields = get_std_fields_list(meta, searchfield)
-
 	from webnotes.widgets.reportview import build_match_conditions
-	cond = build_match_conditions(doctype, fields)
+	cond = build_match_conditions(doctype)
 
 	if cond:
 		cond = ' and ' + cond
@@ -144,38 +127,6 @@
 		limit %(start)s, %(page_len)s """ % {'field': fields,'key': searchfield, 
 		'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield), 'start': start, 
 		'page_len': page_len})
-
-def item_std(doctype, txt, searchfield, start, page_len, filters):
-	return webnotes.conn.sql("""select tabItem.name, 
-		if(length(tabItem.item_name) > 40, 
-			concat(substr(tabItem.item_name, 1, 40), "..."), item_name) as item_name, 
-		if(length(tabItem.description) > 40, 
-			concat(substr(tabItem.description, 1, 40), "..."), description) as decription 
-		FROM tabItem 
-		WHERE tabItem.docstatus!=2 
-			and tabItem.%(key)s LIKE "%(txt)s" 
-			%(mcond)s 
-		limit %(start)s, %(page_len)s """ % {'key': searchfield, 'txt': "%%%s%%" % txt, 
-		'mcond':get_match_cond(doctype, searchfield), 'start': start, 
-		'page_len': page_len})
-
-def account_query(doctype, txt, searchfield, start, page_len, filters):
-	conditions = []
-	if not filters:
-		filters = {}
-	if not filters.group_or_ledger:
-		filters.group_or_ledger = "Ledger"
-	
-	return webnotes.conn.sql("""
-		select tabAccount.name, tabAccount.parent_account, tabAccount.debit_or_credit 
-		from tabAccount 
-		where tabAccount.docstatus!=2 
-			and 
-			and tabAccount.%(key)s LIKE "%(txt)s" 
-		 	%(fcond)s %(mcond)s 
-		limit %(start)s, %(page_len)s""" % {'key': searchfield, 
-		'txt': "%%%s%%" % txt, 'fcond': get_filters_cond(doctype, filters, conditions), 
-		'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
 		
 def tax_account_query(doctype, txt, searchfield, start, page_len, filters):
 	return webnotes.conn.sql("""select name, parent_account, debit_or_credit 
@@ -201,15 +152,13 @@
 		if(length(tabItem.description) > 40, \
 			concat(substr(tabItem.description, 1, 40), "..."), description) as decription 
 		from tabItem 
-		where tabItem.docstatus!=2 
-			and (ifnull(`tabItem`.`end_of_life`,"") in ("", "0000-00-00") 
-				or `tabItem`.`end_of_life` > NOW()) 
+		where tabItem.docstatus<2 
 			and (tabItem.%(key)s LIKE "%(txt)s" 
 				or tabItem.item_name LIKE "%(txt)s")  
 			%(fcond)s %(mcond)s 
 		limit %(start)s,%(page_len)s """ %  {'key': searchfield, 'txt': "%%%s%%" % txt, 
 		'fcond': get_filters_cond(doctype, filters, conditions), 
-		'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
+		'mcond': get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
 
 def bom(doctype, txt, searchfield, start, page_len, filters):
 	conditions = []	
@@ -238,8 +187,24 @@
 		
 def get_price_list_currency(doctype, txt, searchfield, start, page_len, filters):
 	return webnotes.conn.sql("""select ref_currency from `tabItem Price` 
-		where price_list_name = %s and buying_or_selling = %s
+		where price_list = %s and buying_or_selling = %s
 		and `%s` like %s order by ref_currency asc limit %s, %s""" %
 		("%s", "%s", searchfield, "%s", "%s", "%s"), 
-		(filters["price_list_name"], filters['buying_or_selling'], "%%%s%%" % txt, 
-			start, page_len))
\ No newline at end of file
+		(filters["price_list"], filters['buying_or_selling'], "%%%s%%" % txt, 
+			start, page_len))
+			
+def get_delivery_notes_to_be_billed(doctype, txt, searchfield, start, page_len, filters):
+	return webnotes.conn.sql("""select `tabDelivery Note`.name, `tabDelivery Note`.customer_name
+		from `tabDelivery Note` 
+		where `tabDelivery Note`.`%(key)s` like %(txt)s %(fcond)s and
+			(ifnull((select sum(qty) from `tabDelivery Note Item` where 
+					`tabDelivery Note Item`.parent=`tabDelivery Note`.name), 0) >
+				ifnull((select sum(qty) from `tabSales Invoice Item` where 
+					`tabSales Invoice Item`.delivery_note=`tabDelivery Note`.name), 0))
+			%(mcond)s order by `tabDelivery Note`.`%(key)s` asc
+			limit %(start)s, %(page_len)s""" % {
+				"key": searchfield,
+				"fcond": get_filters_cond(doctype, filters, []),
+				"mcond": get_match_cond(doctype),
+				"start": "%(start)s", "page_len": "%(page_len)s", "txt": "%(txt)s"
+			}, { "start": start, "page_len": page_len, "txt": ("%%%s%%" % txt) }, debug=True)
\ No newline at end of file
diff --git a/controllers/selling_controller.py b/controllers/selling_controller.py
index 2cd1be2..033ac83 100644
--- a/controllers/selling_controller.py
+++ b/controllers/selling_controller.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -116,8 +103,8 @@
 			for item in self.doclist.get({"parentfield": self.fname}):
 				if item.item_code in self.stock_items or \
 						(item_sales_bom and item_sales_bom.get(item.item_code)):
-					buying_amount = get_buying_amount(item.item_code, item.warehouse, -1*item.qty, 
-						self.doc.doctype, self.doc.name, item.name, stock_ledger_entries, 
+					buying_amount = get_buying_amount(item.item_code, self.doc.doctype, self.doc.name, item.name, 
+						stock_ledger_entries.get((item.item_code, item.warehouse), []), 
 						item_sales_bom)
 					
 					item.buying_amount = buying_amount >= 0.01 and buying_amount or 0
@@ -163,10 +150,10 @@
 				cumulated_tax_fraction += tax.tax_fraction_for_current_item
 			
 			if cumulated_tax_fraction:
-				item.basic_rate = flt((item.export_rate * self.doc.conversion_rate) / 
-					(1 + cumulated_tax_fraction), self.precision("basic_rate", item))
-				
-				item.amount = flt(item.basic_rate * item.qty, self.precision("amount", item))
+				item.amount = flt((item.export_amount * self.doc.conversion_rate) /
+					(1 + cumulated_tax_fraction), self.precision("amount", item))
+					
+				item.basic_rate = flt(item.amount / item.qty, self.precision("basic_rate", item))
 				
 				if item.adj_rate == 100:
 					item.base_ref_rate = item.basic_rate
@@ -210,7 +197,7 @@
 						
 			item.export_amount = flt(item.export_rate * item.qty,
 				self.precision("export_amount", item))
-				
+
 			self._set_in_company_currency(item, "ref_rate", "base_ref_rate")
 			self._set_in_company_currency(item, "export_rate", "basic_rate")
 			self._set_in_company_currency(item, "export_amount", "amount")
diff --git a/controllers/status_updater.py b/controllers/status_updater.py
index ac06b2e..070f200 100644
--- a/controllers/status_updater.py
+++ b/controllers/status_updater.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/controllers/stock_controller.py b/controllers/stock_controller.py
index 7cfb68c..1aeca1b 100644
--- a/controllers/stock_controller.py
+++ b/controllers/stock_controller.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -51,11 +38,13 @@
 			return gl_entries
 		
 	def get_stock_ledger_entries(self, item_list=None, warehouse_list=None):
+		out = {}
+		
 		if not (item_list and warehouse_list):
 			item_list, warehouse_list = self.get_distinct_item_warehouse()
 			
 		if item_list and warehouse_list:
-			return webnotes.conn.sql("""select item_code, voucher_type, voucher_no,
+			res = webnotes.conn.sql("""select item_code, voucher_type, voucher_no,
 				voucher_detail_no, posting_date, posting_time, stock_value,
 				warehouse, actual_qty as qty from `tabStock Ledger Entry` 
 				where ifnull(`is_cancelled`, "No") = "No" and company = %s 
@@ -64,6 +53,14 @@
 				posting_time desc, name desc""" % 
 				('%s', ', '.join(['%s']*len(item_list)), ', '.join(['%s']*len(warehouse_list))), 
 				tuple([self.doc.company] + item_list + warehouse_list), as_dict=1)
+				
+			for r in res:
+				if (r.item_code, r.warehouse) not in out:
+					out[(r.item_code, r.warehouse)] = []
+		
+				out[(r.item_code, r.warehouse)].append(r)
+
+		return out
 
 	def get_distinct_item_warehouse(self):
 		item_list = []
diff --git a/controllers/trends.py b/controllers/trends.py
index eaaf4d1..ffce993 100644
--- a/controllers/trends.py
+++ b/controllers/trends.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/docs/docs.about.md b/docs/docs.about.md
new file mode 100644
index 0000000..0ff1433
--- /dev/null
+++ b/docs/docs.about.md
@@ -0,0 +1,95 @@
+---
+{
+	"_label": "About ERPNext"
+}
+---
+ERPNext is a web based, open source ERP for small, medium sized businesses. Includes Accounting, Inventory, CRM, Sales, Purchase, Projects, HRMS. Built on Python / MySQL. ERPNext also contains a CMS (Content Management System) to generate a website and webshop.
+
+Published by [Web Notes Technlogies Pvt Ltd, Mumbai](https://erpnext.com/about).
+
+- [User Guide](https://erpnext.org/docs.user.html)
+- [Getting Help](https://erpnext.org/docs.user.help.html)
+- [Developer Forum](http://groups.google.com/group/erpnext-developer-forum)
+- [User Forum](http://groups.google.com/group/erpnext-user-forum)
+- [Donate](https://erpnext.com)
+
+---
+
+### Download and Install
+
+##### Virtual Image:
+
+- [ERPNext Download](http://erpnext.com/erpnext-download)
+
+##### On Linux:
+
+1. Switch to root user using `sudo su`
+1. create a folder where you want to install erpnext
+1. go to the new folder
+1. `wget https://raw.github.com/webnotes/erpnext/master/install_erpnext.py`
+1. `python install_erpnext.py`
+    
+[See installation notes](https://github.com/webnotes/erpnext/wiki/How-to-Install-ERPNext)
+
+##### Patch and update
+
+To patch and update from the latest git repository the erpnext folder and run.
+You will have to set your origin in git remote
+
+    $ lib/wnf.py --update origin master
+
+---
+
+## License
+
+GNU/General Public License (see LICENSE.txt)
+
+The ERPNext code is licensed as GNU General Public License (v3) and the Documentation is licensed as Creative Commons (CC-BY-SA-3.0) and the copyright is owned by Web Notes Technologies Pvt Ltd (Web Notes). 
+
+### Copyright for Contributors
+
+Unless otherwise asserted in the code files, Web Notes will own the copyright of all contributions too. That means Web Notes holds the rights to change the license in the future or offer Commercial Licenses.
+
+Web Notes will only accept copyright assertions in case of a significant contribution like a whole new functionality or a major rewrite. We believe if your contribution is significant then you should have a say in what license Web Notes selects in the future and/or have a right to any revenue Web Notes gets from a Commercial License. Either ways Web Notes will have the right to decide what is a "significant" contribution.
+
+Note: At the moment, Web Notes does not give Commercial License for ERPNext nor has specific plans do so in the future.
+
+---
+
+## Logo and Trademark
+
+The brand name ERPNext and the logo are trademarks of Web Notes Technologies Pvt. Ltd.
+
+### Introduction
+
+Web Notes Technologies Pvt. Ltd. (Web Notes) owns and oversees the trademarks for the ERPNext name and logos. We have developed this trademark usage policy with the following goals in mind:
+
+- We’d like to make it easy for anyone to use the ERPNext name or logo for community-oriented efforts that help spread and improve ERPNext.
+- We’d like to make it clear how ERPNext-related businesses and projects can (and cannot) use the ERPNext name and logo.
+- We’d like to make it hard for anyone to use the ERPNext name and logo to unfairly profit from, trick or confuse people who are looking for official ERPNext resources.
+
+### Web Notes Trademark Usage Policy
+
+Permission from Web Notes is required to use the ERPNext name or logo as part of any project, product, service, domain or company name.
+
+We will grant permission to use the ERPNext name and logo for projects that meet the following criteria:
+
+- The primary purpose of your project is to promote the spread and improvement of the ERPNext software.
+- Your project is non-commercial in nature (it can make money to cover its costs or contribute to non-profit entities, but it cannot be run as a for-profit project or business).
+Your project neither promotes nor is associated with entities that currently fail to comply with the GPL license under which ERPNext is distributed.
+- If your project meets these criteria, you will be permitted to use the ERPNext name and logo to promote your project in any way you see fit with one exception: Please do not use ERPNext as part of a domain name. 
+
+Use of the ERPNext name and logo is additionally allowed in the following situations:
+
+All other ERPNext-related businesses or projects can use the ERPNext name and logo to refer to and explain their services, but they cannot use them as part of a product, project, service, domain, or company name and they cannot use them in any way that suggests an affiliation with or endorsement by the ERPNext or WebNotes or the ERPNext open source project. For example, a consulting company can describe its business as “123 Web Services, offering ERPNext consulting for small businesses,” but cannot call its business “The ERPNext Consulting Company.”
+
+Similarly, it’s OK to use the ERPNext logo as part of a page that describes your products or services, but it is not OK to use it as part of your company or product logo or branding itself. Under no circumstances is it permitted to use ERPNext as part of a top-level domain name.
+
+We do not allow the use of the trademark in advertising, including AdSense/AdWords.
+
+Please note that it is not the goal of this policy to limit commercial activity around ERPNext. We encourage ERPNext-based businesses, and we would love to see hundreds of them.
+
+When in doubt about your use of the ERPNext name or logo, please contact the Web Notes Technologies for clarification.
+
+(inspired from Wordpress)
+
diff --git a/docs/docs.dev.api.md b/docs/docs.dev.api.md
new file mode 100644
index 0000000..0f694b5
--- /dev/null
+++ b/docs/docs.dev.api.md
@@ -0,0 +1,177 @@
+---
+{
+	"_label": "Web Service API"
+}
+---
+All communication with the ERPNext server happens via web services using HTTP requests and passing data via JSON (Javascript Object Notation). Using web requests you can insert, update, query, run public triggers etc. The basic scheme is as follows:
+
+1. All API calls are to me made to `server.py` on your public folder of your erpnext account. For hosted users, it is (yourdomain.erpnext.com).
+1. The `cmd` parameter points to the python function to be executed.
+1. Authentication is managed using cookies.
+
+### Authentication
+
+Authentication is done via the login method:
+
+	GET server.py?cmd=login&usr=[username]&password=[password]
+
+The login method returns a session id `sid` cookie in the header and a status in the
+body of the request. The `sid` cookie must be sent for each subsequent request.
+	
+Example:
+
+	$ curl -I http://localhost/webnotes/erpnext/public/server.py?cmd=login\&usr=Administrator\&pwd=admin
+	HTTP/1.1 200 OK
+	Date: Tue, 23 Jul 2013 05:29:24 GMT
+	Server: Apache/2.2.22 (Unix) DAV/2 mod_ssl/2.2.22 OpenSSL/0.9.8r
+	Set-Cookie: country=None
+	Set-Cookie: sid=d0ce00d49c24869984960607a2467b50ff59b0024741922db4b23818; expires=Fri, 26 Jul 2013 10:59:25
+	Content-Length: 32
+	Content-Type: text/html; charset: utf-8
+		
+	{"message":"Logged In","exc":""}
+	
+	$ curl http://localhost/webnotes/erpnext/public/server.py?cmd=webnotes.client.get\&doctype=Profile\&name=Administrator -b sid=d0ce00d49c24869984960607a2467b50ff59b0024741922db4b23818
+	
+	{
+		"message":[
+			{
+				"user_image":null,
+				"last_name":"User",
+				"last_ip":"::1",
+				..
+				..
+### Python Remote Client
+
+You can use the `webclient.py` module as an example of how to access data using the webservice API
+
+- [Code](https://github.com/webnotes/wnframework/blob/master/webnotes/utils/webclient.py)
+- [Docs](http://erpnext.org/docs.dev.framework.server.webnotes.utils.webclient.html)
+
+### Passing and Receiving Documents (`doclist`)
+
+To insert or update documents in ERPNext you have to pass them as a JSON Object. The structure of a Document is a list of plain objects (called `doclist`). The `doclist`
+contains the the parent document and any child documents (if they are present).
+
+Example:
+
+	[{
+		"doctype": "Parent"
+		"key1": "value1"
+		..
+	},{
+		"doctype": "Child",
+		"parenttype": "Parent",
+		"parentfield": "children",
+		"key1", "value1",
+		..
+	}]
+
+### webnotes.client
+
+`webnotes.client` is the easiest way to interact with the ERPNext Server. It contains
+a bunch of server-side public methods that can be used by any client.
+
+- [Code](https://github.com/webnotes/wnframework/blob/master/webnotes/client.py)
+- [Docs](http://erpnext.org/docs.dev.framework.server.webnotes.client.html)
+
+### Example
+
+Here is an example how you can use the webclient module to insert a new Sales Invoice
+in ERPNext.
+
+	from webclient import *
+ 
+	server = "http://myaccount.erpnext.com/server.py"
+	user = "your user name"
+	password = "your password"
+ 
+	login()
+ 
+	customer = get_doc("Customer", customer_name)
+ 
+	# make customer if required
+	if not customer:
+	  	response = insert([{
+			"doctype":"Customer",
+			"customer_name": customer_name,
+			"customer_type": "Company",
+			"customer_group": "Standard Group",
+			"territory": "Default",
+			"customer_details": "some unique info",
+			"company": "Alpha"
+		}])
+    
+	# make invoice
+	resonse = insert([
+	  	# main
+	 	{
+	  		"naming_series": "_T-Sales Invoice-",
+			"company": "_Test Company", 
+			"conversion_rate": 1.0, 
+			"currency": "INR", 
+			"debit_to": "_Test Customer - _TC",
+			"customer": "_Test Customer",
+			"customer_name": "_Test Customer",
+			"doctype": "Sales Invoice", 
+			"due_date": "2013-01-23", 
+			"fiscal_year": "_Test Fiscal Year 2013", 
+			"grand_total": 561.8, 
+			"grand_total_export": 561.8, 
+			"net_total": 500.0, 
+			"plc_conversion_rate": 1.0, 
+			"posting_date": "2013-01-23", 
+			"price_list_currency": "INR", 
+			"selling_price_list": "_Test Price List", 
+			"territory": "_Test Territory"
+		},
+ 
+		# items 
+		{
+			"amount": 500.0, 
+			"basic_rate": 500.0, 
+			"description": "138-CMS Shoe", 
+			"doctype": "Sales Invoice Item", 
+			"export_amount": 500.0, 
+			"export_rate": 500.0, 
+			"income_account": "Sales - _TC",
+			"cost_center": "_Test Cost Center - _TC",
+			"item_name": "138-CMS Shoe", 
+			"parentfield": "entries",
+			"qty": 1.0
+		}, 
+ 
+		# taxes
+		{
+			"account_head": "_Test Account VAT - _TC", 
+			"charge_type": "On Net Total", 
+			"description": "VAT", 
+			"doctype": "Sales Taxes and Charges", 
+			"parentfield": "other_charges",
+			"tax_amount": 30.0,
+		}, 
+		{
+			"account_head": "_Test Account Service Tax - _TC", 
+			"charge_type": "On Net Total", 
+			"description": "Service Tax", 
+			"doctype": "Sales Taxes and Charges", 
+			"parentfield": "other_charges",
+			"tax_amount": 31.8,
+		},
+  
+		# sales team
+		{
+			"parentfield": "sales_team",
+			"doctype": "Sales Team",
+			"sales_person": "_Test Sales Person 1",
+			"allocated_percentage": 65.5,
+		},
+		{
+			"parentfield": "sales_team",
+			"doctype": "Sales Team",
+			"sales_person": "_Test Sales Person 2",
+			"allocated_percentage": 34.5,
+		},
+	)]
+
+
diff --git a/docs/docs.dev.docs.md b/docs/docs.dev.docs.md
new file mode 100644
index 0000000..f54b0b8
--- /dev/null
+++ b/docs/docs.dev.docs.md
@@ -0,0 +1,46 @@
+---
+{
+	"_label": "How to Build ERPNext Documentation"
+}
+---
+This page explains how to build the ERPNext documentation.
+
+The documentation sources are in the [`docs` folder of the erpnext repository](https://github.com/webnotes/erpnext/tree/master/docs). The source files are in markdown format and they have a custom header that is separated by `---`
+
+## Documentation Header
+
+The header contains the title of the page and sub pages (table of contents) in any. Example of a simple header with title is:
+
+	---
+	{
+		"_label": "How to Build ERPNext Documentation"
+	}
+	---
+	
+#### Adding Table of Contents
+
+Table of contents is added by setting the `_toc` property as below:
+
+	---
+	{
+		"_label": "Developer",
+		"_toc": [
+			"docs.dev.install",
+			"docs.dev.quickstart",
+			"docs.dev.framework",
+			"docs.dev.api",
+			"docs.dev.modules",
+			"docs.dev.translate"
+		]
+	}
+	---
+	
+## Building the Output pages
+
+Once the sources have been edited / updated, to build the documentation, login into your local ERPNext account.
+
+1. Open __Documenation Tool__ by adding `#Form/Documentation Tool` to the address bar.
+1. Check on all the pages to be generated
+1. Click on "Make Docs"
+
+All the output pages are generated in the `public/docs` folder
\ No newline at end of file
diff --git a/docs/docs.dev.install.debian.md b/docs/docs.dev.install.debian.md
deleted file mode 100644
index f140f29..0000000
--- a/docs/docs.dev.install.debian.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-{
-	"_label": "ERPNext Pre-requisites for Debian systems (Unbuntu)"
-}
----
-#### If not root user
-`sudo su`
-
-#### Installing Pre-Requisites
-
-	cd ~
-	apt-get install python python-setuptools python-mysqldb apache2 mysql-server libmysqlclient-dev git memcached -y
-	easy_install pip
-	pip install pytz python-dateutil jinja2 markdown2 termcolor python-memcached requests chardet dropbox google-api-python-client pygeoip
-	a2enmod rewrite
-	service apache2 start
-	service mysql start
-	memcached -d -l 127.0.0.1 -p 11211 -m 64 -u www-data 
-
-> ```memcached -d -l 127.0.0.1 -p 11211 -m [64 or more mb of ram] -u apache ```
-
-#### Other useful programs
-
-	apt-get install ntp vim screen htop -y
-	service ntpd start
diff --git a/docs/docs.dev.install.md b/docs/docs.dev.install.md
index 4c8ea2f..03fc6bd 100644
--- a/docs/docs.dev.install.md
+++ b/docs/docs.dev.install.md
@@ -2,8 +2,7 @@
 {
 	"_label": "How to Install ERPNext",
 	"_toc": [
-		"docs.dev.install.red_hat",
-		"docs.dev.install.debian"
+		"docs.dev.install.restore_from_backup"
 	]
 }
 ---
@@ -15,8 +14,8 @@
 Install ERPNext in one command!
 
 1. Switch to root user using `sudo su`
-1. create a folder where you want to install erpnext
-1. go to the new folder
+1. Create a folder where you want to install erpnext
+1. Go to the new folder
 1. `wget https://raw.github.com/webnotes/erpnext/master/install_erpnext.py`
 1. `python install_erpnext.py`
 
@@ -24,133 +23,19 @@
 
 > If you get stuck, post your questions at [ERPNext Developer Forum](https://groups.google.com/forum/#!forum/erpnext-developer-forum)
 
+> [Troubleshooting SELinux](http://www.crypt.gen.nz/selinux/disable_selinux.html)
+
 --
+
 > [Server Setup Tips](http://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers)
 
-> [MySQL configuration file - my.cnf](MySQL-configuration-file)
+> [MySQL configuration file - my.cnf](https://github.com/webnotes/erpnext/wiki/MySQL-configuration-file)
 
-> [Some Useful Aliases](Some-Useful-Aliases)
+> [Some Useful Aliases](https://github.com/webnotes/erpnext/wiki/Some-Useful-Aliases)
 
 ---
 ### Upgrade / run latest patches
 
 1. Backup your database!
-1. go to Setup > Update This Application [under Update Manager]
-1. click on 'Get Latest Updates'
-
-> [Restoring from ERPNext backup](Restoring-From-ERPNext-Backup)
-
----
-### Step by step instructions
-
-1. You will need some linux background to be able to install this on your system.
-1. These are high-level instructions and by no means cover every installation issue.
-
-### Pre-requisites:
-
-* any unix based os
-* python 2.6+ (python 3+ not supported)
-* apache
-* mysql 5+
-* git
-* python libraries:
-    * python MySQLdb
-    * pytz
-    * jinja2
-    * markdown2
-    * dateutil
-    * termcolor
-    * python-memcached
-    * requests
-    * chardet
-    * pygeoip
-    * dropbox
-    * google-api-python-client
-* memcached
-
-## Fresh Installation
-
-### Steps: [using terminal]
-
-#### Get the Install Script
-
-Download the standard install script and install. This script will:
-
-- Create `app` and `lib` folders.
-- Clone the code repositories for `wnframework` and `erpnext` from GitHub. It is important to clone the repositories from GitHub rather than just downloading the code, because this will help you in upgrading the system.
-- Create the database.
-- Create a default `erpnext.conf` Apache configuration file for ERPnext.
-- Create the standard wnframework configuration file `conf.py`
-- Build the `public` folder from which the ERPNext client application will be served via Apache and CGI.
-
-**Instructions**
-
-1. ensure mysql service is running
-1. create a folder where you want to install erpnext
-1. go to the new folder
-1. `wget https://github.com/webnotes/erpnext/blob/master/install_erpnext.py`
-1. `python install_erpnext.py`
-
-#### Setup Apache
-
-1. check your apache/httpd user and group. Most often it is either `apache` or `_www`. This can be found in its conf file.
-1. run `chown -R apache:apache *` or `chown -R _www:_www *`. This will make the erpnext folder accessible to apache webserver.
-1. create erpnext.conf file in erpnext folder and paste a modified version of apache configuration file as shown in the example below. (You will need to change the values in square brackets)
-    * For debian systems, `sudo ln -s [PATH TO ERPNEXT INSTALLATION]/erpnext.conf /etc/apache2/sites-enabled/erpnext.conf`
-    * For redhat systems, `sudo ln -s [PATH TO ERPNEXT INSTALLATION]/erpnext.conf /etc/httpd/conf.d/erpnext.conf`
-1. restart apache service
-1. if firewall exists, run
-```
-iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
-service iptables save
-```
-
-### Setup Schueduler
-
-1. setup cron using `crontab -e` and enter the following and then save it:
-```
-*/3 * * * * cd [PATH TO ERPNEXT INSTALLATION] && python lib/wnf.py --run_scheduler >> /var/log/erpnext-sch.log 2>&1
-0 */6 * * * cd [PATH TO ERPNEXT INSTALLATION] && python lib/wnf.py --backup >> /var/log/erpnext-backup.log 2>&1
-```
-
-### Start
-
-1. go to erpnext folder and run `lib/wnf.py --domain localhost:8080`
-1. start your browser and go to http://localhost:8080
-1. login as user: Administrator and password: admin
-
-> If you are installing on your server for deployment, remember to change Administrator's password!
-
-### What to write in apache configuration file? 
-
-	Listen 8080
-	NameVirtualHost *:8080
-	<VirtualHost *:8080>
-		ServerName localhost
-		DocumentRoot [PATH TO ERPNEXT INSTALLATION]/public/
-		
-		AddHandler cgi-script .cgi .xml .py
-		AddType application/vnd.ms-fontobject .eot
-		AddType font/ttf .ttf
-		AddType font/otf .otf
-		AddType application/x-font-woff .woff
-
-		<Directory [PATH TO ERPNEXT INSTALLATION]/public/>
-			# directory specific options
-			Options -Indexes +FollowSymLinks +ExecCGI
-		
-			# directory's index file
-			DirectoryIndex web.py
-			
-			AllowOverride all
-			Order Allow,Deny
-			Allow from all
-
-			# rewrite rule
-			RewriteEngine on
-			RewriteCond %{REQUEST_FILENAME} !-f
-			RewriteCond %{REQUEST_FILENAME} !-d
-			RewriteCond %{REQUEST_FILENAME} !-l
-			RewriteRule ^([^/]+)$ /web.py?page=$1 [QSA,L]		
-		</Directory>
-	</VirtualHost>
+1. Go to Setup > Update ERPNext
+1. Click on 'Update'
\ No newline at end of file
diff --git a/docs/docs.dev.install.red_hat.md b/docs/docs.dev.install.red_hat.md
deleted file mode 100644
index 17a6072..0000000
--- a/docs/docs.dev.install.red_hat.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-{
-	"_label": "ERPNext Pre-requisites for Red Hat systems (CentOS, Fedora)"
-}
----
-#### If not root user
-`sudo su`
-
-#### Installing Pre-Requisites
-
-	cd ~
-	yum update python -y
-	yum install python-setuptools MySQL-python httpd mysql mysql-server mysql-devel git memcached ntp vim -y
-	easy_install pip
-	pip install pytz python-dateutil jinja2 markdown2 termcolor python-memcached requests chardet dropbox google-api-python-client pygeoip
-	service httpd start
-	service mysqld start
-	service ntpd start
-	mysqladmin -u root password [NEW PASSWORD]
-
-#### memcached
-
-1. `vim /etc/sysconfig/memcached`
-1. change user to the apache user, change the cache size if desired (depending on available memory), save the file
-1. `service memcached start`
-
-#### set services to run when machine starts
-
-	chkconfig --level 2345 mysql on
-	chkconfig --level 2345 httpd on
-	chkconfig --level 2345 memcached on
-	chkconfig --level 2345 ntpd on
-
-#### Other useful programs
-
-wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
-rpm -i http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
-yum install htop screen -y
-
---
-
-#### CPanel Users
-
-If you are using CPanel, you are likely to face perl dependency issues when installing git. To install git in this case, follow this procedure:
-
-1. `vim /etc/yum.conf`, remove perl* from exclude list and save the file
-1. `yum install git -y`
-1. `vim /etc/yum.conf`, add perl* back to exclude list and save the file
-
-> source: [http://forums.cpanel.net/f5/upcp-errors-due-dependeny-problems-centos-6-3-not-upgraded-centos-6-4-a-332102.html](http://forums.cpanel.net/f5/upcp-errors-due-dependeny-problems-centos-6-3-not-upgraded-centos-6-4-a-332102.html)
-
-CPanel users should follow these steps to set the apache configuration for ERPNext:
-
-1. `vim /etc/httpd/conf/includes/post_virtualhost_2.conf`
-1. add the line `Include [PATH TO ERPNEXT CONF FILE]` (example: /var/www/erpnext.conf) and save the file
-1. `vim [PATH TO ERPNEXT CONF FILE]`, set the apache configuration for ERPNext and save it
-1. `service httpd restart`
-
-*The mysql root password may be found at* `/root/.my.cnf`
\ No newline at end of file
diff --git a/docs/docs.dev.install.restore_from_backup.md b/docs/docs.dev.install.restore_from_backup.md
new file mode 100644
index 0000000..e795bfa
--- /dev/null
+++ b/docs/docs.dev.install.restore_from_backup.md
@@ -0,0 +1,26 @@
+---
+{
+	"_label": "Restoring From ERPNext Backup"
+}
+---
+
+* Download backup files
+
+		cd /tmp
+		wget [DATABASE BACKUP FILE URL]
+		wget [FILES BACKUP FILE URL]
+
+* Suppose your backup files are downloaded at /tmp
+
+		gunzip [DATABASE BACKUP FILE.sql.gz]
+		tar xvf [FILES BACKUP.tar]
+
+* Go to your ERPNext installation folder
+* When restoring from database, the 'Administrator' user password gets reset to 'admin'. To set a better password when restoring, set admin_password variable in conf.py to the desired 'Administrator' user password.
+* Restore database using:
+
+		lib/wnf.py --install [DATABASE NAME] /tmp/[DATABASE BACKUP FILE.sql]
+
+* Copy extracted files
+
+		cp /tmp/[FILES BACKUP EXTRACTED FOLDER/---/public/files/*] [YOUR ERPNEXT INSTALLATION]/public/files/
\ No newline at end of file
diff --git a/docs/docs.dev.md b/docs/docs.dev.md
index 008391a..3f645d8 100644
--- a/docs/docs.dev.md
+++ b/docs/docs.dev.md
@@ -1,11 +1,14 @@
 ---
 {
-	"_label": "Developer API",
+	"_label": "Developer",
 	"_toc": [
 		"docs.dev.install",
 		"docs.dev.quickstart",
 		"docs.dev.framework",
-		"docs.dev.modules"
+		"docs.dev.api",
+		"docs.dev.modules",
+		"docs.dev.translate",
+		"docs.dev.docs"
 	]
 }
 ---
diff --git a/docs/docs.dev.translate.md b/docs/docs.dev.translate.md
new file mode 100644
index 0000000..a65f7b7
--- /dev/null
+++ b/docs/docs.dev.translate.md
@@ -0,0 +1,64 @@
+---
+{
+	"_label": "Managing Translations"
+}
+---
+This document shows how to translations are managed in ERPNext and how to add a new language or update translations of an existing language.
+
+### Source
+
+Translatable text exists in 3 main sources:
+
+1. Javascript Code Files (both framework and application)
+1. Python Code Files
+1. DocTypes (names, labels and select options)
+
+#### Strings in Code Files
+
+Strings in code files are annotated using the `_` (underscore) method
+
+1. In Python it is the `webnotes._` method. Example:
+
+	webnotes._("This string must be translated")
+	
+1. In Javascript it is the `wn._` method. Example:
+
+	`wn._("This string must be translated")`
+
+### How Translations Are Picked up During Execution
+
+When the __build__ (`lib/wnf.py -b`) process is run, along with generating the `public` folders, it will also add a `locale` folder in each folder where translations need to be applied. This `locale` folder is rebuilt every time new translations are made.
+
+Based on the user preferences or request preferences, the appropriate translations are loaded at the time of request on the server side. Or if metadata (DocType) is queried, then the appropriate translations are appended when the DocType data is requested.
+
+The underscore `_` method will replace the strings based on the available translations loaded at the time.
+
+### Master Translations
+
+Master translations are stored in the application (erpnext repository) in the `translations` folder. [Translations master folder](https://github.com/webnotes/erpnext/tree/master/translations)
+
+These are built using the `webnotes.translate module` ([Docs](http://erpnext.org/docs.dev.framework.server.webnotes.translate.html) | [Code](https://github.com/webnotes/wnframework/blob/master/webnotes/translate.py)).
+
+### Building Translations
+
+Translations can be built using the `lib/wnf.py` utility. Do `lib/wnf.py --help` for more info.
+
+> New translations are built using Google Translate API. As of the time of writing of this document, Google Translate API is not free. To build a translation of your own from Google, you will have to register with Google API and add your API key in `conf.py`
+
+To add a new language just add:
+
+1. Build new translation from Google: `lib/wnf.py --translate ru`
+1. Get user the ability to select this language: Go to #Form/DocType/Profile and update the options in `langauge` field.
+1. Map the language name to the abbreviation: Update `startup/__init__.py` ([Link](https://github.com/webnotes/erpnext/blob/master/startup/__init__.py))
+
+### Updating Translations
+
+#### Updating Sources:
+
+If you find translatable strings are not properly annotated using the `_` method, you can add them in the code and rebuild the translations.
+
+#### Improving Translations:
+
+To improve an existing translation, just edit the master translation files in `app/translations` and rebuild using `lib/wnf.py -b`
+
+> Please contribute your translations back to ERPNext by sending us a Pull Request.
\ No newline at end of file
diff --git a/docs/docs.md b/docs/docs.md
index 0236426..378a0b8 100644
--- a/docs/docs.md
+++ b/docs/docs.md
@@ -13,10 +13,11 @@
 	"_no_toc": 1
 }
 ---
-<br>
-<h1 style="text-align: center">All-in-One Platform to Manage Your Organization.</h1>
-<h3 style="text-align: center; font-weight: normal; color: #888">100% Free and Open Source.</h1>
-<br>
+<div style="margin: 10px 0px">
+	<h1 style="text-align: center">All-in-One Platform to Manage Your Organization.</h1>
+	<h3 style="text-align: center; font-weight: normal; color: #888">100% Free and Open Source.</h1>
+</div>
+
 ![Home Screen](img/home.png)
 
 ### What is ERPNext?
@@ -30,5 +31,4 @@
 - It avoids duplication of reports and redundant data.
 - It allows better alignment across cross-functional departments.
 - It facilitates Website Design and provides shopping cart facility.
-- It gives better deployment on mobiles, tablets, desktops and large screens. 
-
+- It gives better deployment on mobiles, tablets, desktops and large screens.
\ No newline at end of file
diff --git a/docs/docs.user.buying.material_request.md b/docs/docs.user.buying.material_request.md
index 7c3f151..5b876b2 100644
--- a/docs/docs.user.buying.material_request.md
+++ b/docs/docs.user.buying.material_request.md
@@ -9,8 +9,8 @@
 
 - By a User.
 - Automatically from a Sales Order.
-- Automatically when the Projected Quantity (more on this later) of an Item in stores reaches a particular level.
-- Automatically from your Bill of Materials if you use Production Plan to plan your manufacturing. (more on this later too)
+- Automatically when the Projected Quantity of an Item in stores reaches a particular level.
+- Automatically from your Bill of Materials if you use Production Plan to plan your manufacturing.
 
 To generate a Material Request manually go to:
 
diff --git a/docs/docs.user.md b/docs/docs.user.md
index 2294d31..00128f0 100644
--- a/docs/docs.user.md
+++ b/docs/docs.user.md
@@ -33,6 +33,7 @@
 	1. [Concepts](docs.user.implement.concepts.html)
 1. [Setup](docs.user.setup.html)
 	1. [First Login](docs.user.setup.first.html)
+	1. [Setting Up Masters (Item, Customer, Supplier)](docs.user.setup.masters.html)
 	1. [Chart of Accounts](docs.user.setup.accounting.html)
 	1. [Chart of Cost Centers](docs.user.setup.cost_centers.html)
 	1. [Company Setup](docs.user.setup.company.html)
diff --git a/docs/docs.user.setup.codification.md b/docs/docs.user.setup.codification.md
index 650e173..513f7a9 100644
--- a/docs/docs.user.setup.codification.md
+++ b/docs/docs.user.setup.codification.md
@@ -3,9 +3,6 @@
 	"_label": "Item Codification"
 }
 ---
-
-> To Codify or Not To Codify, is the question.
-
 If you already have a running business with a number of physical items, you would have probably coded your items. If you have not, you have a choice. We recommend you should codify, but its your call.
 
 Item codification is always a sensitive topic and wars have been fought on this (not joking). In our experience, when you have items that cross a certain size, life without codification is a nightmare. 
diff --git a/docs/docs.user.setup.data_import.md b/docs/docs.user.setup.data_import.md
index ddcaa7c..eec6b65 100644
--- a/docs/docs.user.setup.data_import.md
+++ b/docs/docs.user.setup.data_import.md
@@ -5,35 +5,70 @@
 ---
 The ￼Data Import Tool is a great way to upload (or edit) bulk data, specially master data, into the system. To start the tool go to:
 
-> Setup > Data > Data Import Tool
+To Open the data import tool, you either go to Setup or go to the Transaction you want to Import. If Data Import is allowed, you will see an Import Button:
+
+![Start Import](img/import-1.png)
 
 The tool has two sections, one to download a template and the second to upload the data.
 
-To upload any type of information, select a type from the drop-down. When you select, the system will give you one or more list of templates you can download. So why multiple templates?
+(Note: Only those DocTypes are allowed for Import whose Document Type is "Master" or Allow Import property is set.)
 
-In ERPNext, each master or transaction is defined by a “main table” and “child tables”. These child tables are there because some master tables could have multiple value of certain properties. For example, select Item. Here you will see a number of “child” tables linked to the item table. This is because an Item can have multiple prices, taxes and so on! You must import each table separately. In the child table, you must mention the parent of the row in the “parent” column so that ERPNext knows which Item’s price or tax you are trying to set.
+### 1. Downloading The Template
 
-### The Template
+Data in ERPNext is stored in tables, much like a spreadsheet with columns and rows of data. Each entity in ERPNext can have multiple child tables associated with it too. The child tables are linked to the parent tables and are implemented where are multiple values for any property. For example an Item can have multiple prices, An Invoice has multiple Items and so on.
 
-Here are a few tips to fill your template:
+You can import each table separately, or all at a time. In the child table, you must mention the parent of the row in the “parent” column so that ERPNext knows which Item’s price or tax you are trying to set if you are importing separately.
 
-- Don’t change any cells before the row “----Start entering data below this line----”.
-- Leave the first column blank.
-- Read the explanations of the columns.
-- Some columns are mandatory (the 5th row will tell you which ones those are).
-- Columns of type “Link” and “Select” will only accept values from a certain set.
-- For “Link” type columns, the value must be present in the table it links to.
-- For “Select” the options are given on the 6th row. The value must be one of those.
-- Dates: A number of standard date formats are accepted. Please make sure, your dates are added in one of those formats.
+![Download The Template](img/import-2.png)
 
-### Overwriting
+- Click on the table you want to download or "All Tables"
+- For bulk editing, you can click on "Download With Data"
+
+### 2. Fill in the Template
+
+After downloading the template, open it in a spreadsheet application and fill in the data below the column headings.
+
+![Spreadsheet](img/import-3.png)
+
+Then export your template or save it as a **Comma Separated Values** (CSV) file.
+
+![Spreadsheet](img/import-4.png)
+
+### 3. Upload the .csv File
+
+Finally attach the .csv file in the section section click on the "Upload and Import" button.
+
+![Attach and Upload](img/import-5.png)
+
+Notes:
+
+- Make sure that if your application allows, use encoding as UTF-8. 
+- Keep the ID column blank for new records.
+- Make sure you keep the modified column as it is for "All Tables".
+- "Parent" column is mandatory for child type tables.
+
+### 4. Uploading All Tables (Main + Child)
+
+If you select all tables, you will get columns belonging to all the tables in one row separated by `-` columns.
+
+If you have multiple child rows then you must start a new main item on a new row. See the example:
+
+	Main Table							- 	Child Table
+	Column 1	Column 2	Column 3	- 	Column 1	Column 2	Column 3
+	v11			v12			v13				c11			c12			c13
+											c14			c15			c17
+	v21			v22			v23				c21			c22			c23
+	
+> To see how its done, enter a few records manually using forms and export "All Tables" with "Download with Data"
+
+### 5. Overwriting
 
 ERPNext also allows you to overwrite all / certain columns. If you want to update certain columns, you can download the template with data.Remember to check on the “Overwrite” box before uploading.
-git
+
 > Note: For child records, if you select Overwrite, it will delete all the child records of that parent.
 
-### Upload Limitations
+### 6. Upload Limitations
 
-ERPNext restricts the amount of data you can upload in one file. Though the number may vary based on the type of data. It is usually safe to upload 100-200 rows of a table at one go. If the system will not accept, then you will see an error.
+ERPNext restricts the amount of data you can upload in one file. Though the number may vary based on the type of data. It is usually safe to upload around 1000 rows of a table at one go. If the system will not accept, then you will see an error.
 
 Why is this? Uploading a lot of data can cause your system to crash, specially if there are other users doing things in parallel. Hence ERPNext restricts the number of “writes” you can process in one request.
diff --git a/docs/docs.user.setup.masters.md b/docs/docs.user.setup.masters.md
new file mode 100644
index 0000000..ccbc32d
--- /dev/null
+++ b/docs/docs.user.setup.masters.md
@@ -0,0 +1,11 @@
+---
+{
+	"_label": "Setting Up Masters",
+	"_toc": [
+		"docs.user.stock.item",
+		"docs.user.selling.customer",
+		"docs.user.buying.supplier"
+	]
+}
+---
+First step is setting up your master data.
\ No newline at end of file
diff --git a/docs/docs.user.setup.md b/docs/docs.user.setup.md
index afdd1d3..847a215 100644
--- a/docs/docs.user.setup.md
+++ b/docs/docs.user.setup.md
@@ -3,6 +3,7 @@
 	"_label": "Setting Up",
 	"_toc": [
 		"docs.user.setup.first",
+		"docs.user.setup.masters",
 		"docs.user.setup.accounting",
 		"docs.user.setup.cost_centers",
 		"docs.user.setup.company",
diff --git a/docs/docs.user.setup.price_list.md b/docs/docs.user.setup.price_list.md
new file mode 100644
index 0000000..c746ee7
--- /dev/null
+++ b/docs/docs.user.setup.price_list.md
@@ -0,0 +1,5 @@
+---
+{
+	"_label": "Price Lists"
+}
+---
\ No newline at end of file
diff --git a/docs/docs.user.stock.item.md b/docs/docs.user.stock.item.md
index 0f4b106..958c454 100644
--- a/docs/docs.user.stock.item.md
+++ b/docs/docs.user.stock.item.md
@@ -1,21 +1,14 @@
 ---
 {
 	"_label": "Item Master",
-	"_title_image": "img/items.png"
+	"_toc": [
+		"docs.user.stock.valuation",
+		"docs.user.setup.codification"
+	]
 }
 ---
-Items, Customers and Suppliers form the foundation of any ERP system.
-
-It is very likely that you will have your masters ready in another system or a spread sheet  saved somewhere else. You may just need to import them. Before importing, it might be a good idea to understand how ERPNext manages these records.
-
----
-
-## Items
-
 An Item is simply a product or service which you sell or buy from your Customers or Suppliers. ERPNext is optimized for itemized management of your sales and purchase. However, you can skip creating Items. If you are in services, you can create an Item for each services that your offer.
 
-> Items are mandatory if you want to track inventory.
-
 There are two main categories of Items in ERPNext
 
 - Stock Items
@@ -24,10 +17,6 @@
 As you may have guessed, inventory balances are tracked for stock items and not for
 non-stock items. Non-stock items could be services or consumables that are not tracked.
 
-### Naming Items
-
-This is a complex topic [coming up next]. In ERPNext you can use item codes or names. If you do not want to codify, you can keep the item name and item code as the same.
-
 ### Item Groups
 
 ERPNext allows you to classify items into groups. This will help you in getting reports about various classes of items and also help in cataloging your items for the website.
@@ -60,31 +49,6 @@
 ￼
 Why would you want Price Lists? You have different prices for different zones (based on the shipping costs), for different currencies, regions etc.
 
-### Item Valuation
-
-How are Items Valued?
-
-One of the major features of any inventory system is that you can find out the value of any item based on its historic or average price. You can also find the value of all your items for your balance sheet. Why is valuation important?
-
-- The buying price fluctuates.
-- The value changes because of some process (value add).
-- The value changes because of decay, loss etc.
-
-You may encounter these terms, so lets clarify:
-
-- Rate: Rate at which the transaction takes place.
-- Valuation Rate: Rate at which the items value is set for your valuation.
-
-There are two major ways in which ERPNext values your items.
-
-- **FIFO (First In First Out):** In this system, ERPNext assumes that you will consume / sell those Items first that you bought first. For example, if you buy an Item at price X and then after a few days at price Y. Thus when you sell your Item, ERPNext will reduce the quantity of the Item priced at X first and then Y.
-
-￼
-
-- **Moving Average:** In this method, ERPNext assumes that the value of the item at any point is the average price of the units of that Item in stock. For example, if the value of an Item is X in a Warehouse with quantity Y and another quantity Y1 is added to the Warehouse at cost X1, the new value X2 would be:
-
-> New Value X2 = (X * Y + X1 * Y1) / (Y + Y1)
-
 #### Negative Stock
 
 FIFO is the more accurate system of the two but has a disadvantage. You cannot have negative stock in FIFO. This means that you cannot make forward transactions that would make your stock negative. Why is this? Because sequences are so important to FIFO, you cannot track the value of the stock if it does not exist!
diff --git a/docs/docs.user.stock.valuation.md b/docs/docs.user.stock.valuation.md
new file mode 100644
index 0000000..8ecf8fd
--- /dev/null
+++ b/docs/docs.user.stock.valuation.md
@@ -0,0 +1,27 @@
+---
+{
+	"_label": "Item Valuation: FIFO and Moving Average"
+}
+---
+### How are Items Valued?
+
+One of the major features of any inventory system is that you can find out the value of any item based on its historic or average price. You can also find the value of all your items for your balance sheet. Why is valuation important?
+
+- The buying price fluctuates.
+- The value changes because of some process (value add).
+- The value changes because of decay, loss etc.
+
+You may encounter these terms, so lets clarify:
+
+- Rate: Rate at which the transaction takes place.
+- Valuation Rate: Rate at which the items value is set for your valuation.
+
+There are two major ways in which ERPNext values your items.
+
+- **FIFO (First In First Out):** In this system, ERPNext assumes that you will consume / sell those Items first that you bought first. For example, if you buy an Item at price X and then after a few days at price Y. Thus when you sell your Item, ERPNext will reduce the quantity of the Item priced at X first and then Y.
+
+![FIFO](img/fifo.png)
+
+- **Moving Average:** In this method, ERPNext assumes that the value of the item at any point is the average price of the units of that Item in stock. For example, if the value of an Item is X in a Warehouse with quantity Y and another quantity Y1 is added to the Warehouse at cost X1, the new value X2 would be:
+
+> New Value X2 = (X * Y + X1 * Y1) / (Y + Y1)
\ No newline at end of file
diff --git a/docs/docs.user.tools.calendar.md b/docs/docs.user.tools.calendar.md
index bf2923a..df70186 100644
--- a/docs/docs.user.tools.calendar.md
+++ b/docs/docs.user.tools.calendar.md
@@ -4,3 +4,18 @@
 }
 ---
 The Calendar is a tool where you can create and share Events and also see auto-generated events from the system.
+
+### Repeating Events
+
+You can set events to repeat on every interval by Checking the "Repeat This Event" 
+as shown in the example.
+
+![Set Repeat This Event](img/event-1.png)
+
+You can see the repeat events by switching back to the calendar.
+
+![Event Repeated in Calendar](img/event-2.png)
+
+### Reminders
+
+You will also get a daily digest of all upcoming events for the day if any if the reminder field is checked.
\ No newline at end of file
diff --git a/home/doctype/feed/feed.py b/home/doctype/feed/feed.py
index 36e09ca..25abf57 100644
--- a/home/doctype/feed/feed.py
+++ b/home/doctype/feed/feed.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/home/page/activity/activity.js b/home/page/activity/activity.js
index 137edb8..17e00c9 100644
--- a/home/page/activity/activity.js
+++ b/home/page/activity/activity.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.pages['activity'].onload = function(wrapper) {
 	wn.ui.make_app_page({
 		parent: wrapper,
diff --git a/home/page/activity/activity.py b/home/page/activity/activity.py
index 76f2829..1f72d7e 100644
--- a/home/page/activity/activity.py
+++ b/home/page/activity/activity.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 
diff --git a/home/page/attributions/README.md b/home/page/attributions/README.md
deleted file mode 100644
index a5237bb..0000000
--- a/home/page/attributions/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Attributions for software libraries / images used in ERPNext.
\ No newline at end of file
diff --git a/home/page/attributions/__init__.py b/home/page/attributions/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/home/page/attributions/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/home/page/attributions/attributions.css b/home/page/attributions/attributions.css
deleted file mode 100644
index 1de05ee..0000000
--- a/home/page/attributions/attributions.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.layout-attributions td:first-child {
-	width: 30%;
-}
\ No newline at end of file
diff --git a/home/page/attributions/attributions.html b/home/page/attributions/attributions.html
deleted file mode 100644
index 00f6342..0000000
--- a/home/page/attributions/attributions.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<div class="appframe col col-lg-12 layout-attributions">
-	<div class="layout-appframe"></div>
-	<div class="layout-main">
-	<h3>ERPNext is made using these Awesome Open Source Projects <i class="icon-heart" style="color: red"></i></h3>
-	<hr>
-	<table class="table table-bordered table-striped">
-		<tbody>
-		<tr>
-			<td><a href="https://github.com/webnotes/erpnext">ERPNext</a></td>
-			<td>Web based, Open Source ERP. <br>
-				Get top class hosting and support at <a href="https://erpnext.com">ERPNext.com</a></td>
-		</tr>
-		<tr>
-			<td><a href="https://github.com/webnotes/wnframework">wnframework</a></td>
-			<td>The full stack Python + Javascript web application framework on which ERPNext is built.</td>
-		</tr>
-		<tr>
-			<td><a href="http://en.wikipedia.org/wiki/Linux">Linux Operating System</a></td>
-			<td>The operating system that brought a revolution in Open Source software.</td>
-		</tr>
-		<tr>
-			<td><a href="http://www.mysql.com/">MySQL Database</a></td>
-			<td>The world's most popular Open Source Database.</td>
-		</tr>
-		<tr>
-			<td><a href="http://httpd.apache.org">Apache HTTPD web server</a></td>
-			<td>The Number One HTTP Server On The Internet.</td>
-		</tr>
-		<tr>
-			<td><a href="http://memcached.org/">Memcached</a></td>
-			<td>Free & open source, high-performance, distributed memory object caching system.</td>
-		</tr>
-		<tr>
-			<td><a href="http://python.org/">Python Programming Language</a></td>
-			<td>The "batteries included" language that lets you write elegant code, quickly.<br><br>Python Libraries:
-			<ul>
-				<li>MySQLdb
-				<li>pytz
-				<li>jinja2
-				<li>markdown2
-				<li>dateutil
-				<li>termcolor
-				<li>python-memcached
-				<li>requests
-				<li>chardet
-				<li>pygeoip
-				<li>dropbox
-				<li>google-api-python-client
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td><a href="http://git-scm.com/">Git - Source Code Management</a></td>
-			<td>Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.<br><br>
-				Kindly hosted on the web by <a href="https://github.com">GitHub</a>: The service that makes it easier for individuals and teams to write better code, faster. </td>
-		</tr>
-		<tr>
-			<td><a href="http://jquery.com/">JQuery Javascript Libary</a></td>
-			<td>The write less, do more Javascript Library.</td>
-		</tr>
-		<tr>
-			<td><a href="http://jqueryui.com/">JQuery UI - User Interface Library</a></td>
-			<td>A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.</td>
-		</tr>
-		<tr>
-			<td><a href="http://twitter.github.com/bootstrap/index.html">Bootstrap CSS Framework</a></td>
-			<td>Sleek, intuitive, and powerful front-end framework for faster and easier web development.</td>
-		</tr>
-		<tr>
-			<td><a href="http://fortawesome.github.com/Font-Awesome/">Font Awesome - Icons</a></td>
-			<td>The iconic font designed for use with Twitter Bootstrap.</td>
-		</tr>
-		<tr>
-			<td><a href="http://www.tinymce.com/">TinyMCE Rich Text Editor</a></td>
-			<td>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL by Moxiecode Systems AB.</td>
-		</tr>
-		<tr>
-			<td><a href="https://github.com/mleibman/SlickGrid">SlickGrid</a></td>
-			<td>A lightning fast JavaScript grid/spreadsheet.</td>
-		</tr>		
-		<tr>
-			<td><a href="http://arshaw.com/fullcalendar/">FullCalendar</a></td>
-			<td>FullCalendar is a jQuery plugin that provides a full-sized, drag and drop calendar.</td>
-		</tr>
-		<tr>
-			<td><a href="http://www.flotcharts.org/">Flot Charting Library</a></td>
-			<td>Attractive JavaScript plotting for jQuery.</td>
-		</tr>		
-		<tr>
-			<td><a href="http://ace.ajax.org/">Ace Code Editor</a></td>
-			<td>High Performance Code Editor for the web.</td>
-		</tr>
-		<tr>
-			<td><a href="http://taitems.github.com/jQuery.Gantt/">JQuery.Gantt - Gantt Charts</a></td>
-			<td>Draw Gantt charts with the famous jQuery ease of development.</td>
-		</tr>
-		<tr>
-			<td><a href="http://aehlke.github.io/tag-it/">JQuery Tag-it</a></td>
-			<td>Simple and configurable tag editing widget with autocomplete support.</td>
-		</tr>
-		<tr>
-			<td><a href="http://jscolor.com/">JSColor - Color Picker</a></td>
-			<td>HTML/Javascript Color Picker.</td>
-		</tr>
-		<tr>
-			<td><a href="http://qunitjs.com/">QUnit</a></td>
-			<td>A JavaScript Unit Testing framework.</td>
-		</tr>
-		<tr>
-			<td><a href="https://github.com/dcneiner/Downloadify">Downloadify - Flash Download Widget</a></td>
-			<td>A tiny javascript + Flash library that enables the creation and download of text files without server interaction.</td>
-		</tr>
-		<tr>
-			<td><a href="http://dev.maxmind.com/geoip/geolite">GeoLite data by MaxMind</a></td>
-			<td>GeoLite data created by MaxMind, available from
-			  <a href="https://www.maxmind.com">https://www.maxmind.com</a></td>
-		</tr>
-		</tbody>
-	</table>
-	
-	<hr>
-	<h3>ERPNext License: GNU/General Public License</h3>
-	<div class="well">
-	<p><b>ERPNext - Open Source, web based ERP</b></p>
-	<p>Copyright &copy; 2012, Web Notes Technologies Pvt Ltd, India</p>
-
-	<p>This program is free software: you can redistribute it and/or modify
-	    it under the terms of the <b>GNU General Public License</b> as published by
-	    the Free Software Foundation, either version 3 of the License, or
-	    (at your option) any later version.</p>
-
-	    <p>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.</p>
-
- 		<p>For complete license see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a></p>
-	</div>
-	<p class="alert">Note: A link to this page must be easily accessible and all other ERPNext branding must remain as it is.</p>
-	<hr>
-	<p>For more information please write to us at support@erpnext.com</p>
-	</div>
-</div>
\ No newline at end of file
diff --git a/home/page/attributions/attributions.js b/home/page/attributions/attributions.js
deleted file mode 100644
index 29eb72f..0000000
--- a/home/page/attributions/attributions.js
+++ /dev/null
@@ -1,4 +0,0 @@
-wn.pages['attributions'].onload = function(wrapper) { 
-	wrapper.appframe = new wn.ui.AppFrame($(wrapper).find(".layout-appframe"), 
-		"Attributions");
-}
\ No newline at end of file
diff --git a/home/page/attributions/attributions.py b/home/page/attributions/attributions.py
deleted file mode 100644
index fbba099..0000000
--- a/home/page/attributions/attributions.py
+++ /dev/null
@@ -1,2 +0,0 @@
-from __future__ import unicode_literals
-import webnotes
\ No newline at end of file
diff --git a/home/page/attributions/attributions.txt b/home/page/attributions/attributions.txt
deleted file mode 100644
index 547d9bc..0000000
--- a/home/page/attributions/attributions.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-[
- {
-  "creation": "2012-03-01 12:30:42", 
-  "docstatus": 0, 
-  "modified": "2013-07-11 14:41:47", 
-  "modified_by": "Administrator", 
-  "owner": "Administrator"
- }, 
- {
-  "doctype": "Page", 
-  "icon": "icon-trophy", 
-  "module": "Home", 
-  "name": "__common__", 
-  "page_name": "attributions", 
-  "standard": "Yes", 
-  "title": "Attributions"
- }, 
- {
-  "doctype": "Page", 
-  "name": "attributions"
- }
-]
\ No newline at end of file
diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index dd96f46..094eeb5 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.pages['latest-updates'].onload = function(wrapper) { 
 	wn.ui.make_app_page({
 		parent: wrapper,
@@ -9,7 +12,7 @@
 	parent.html('<div class="progress progress-striped active">\
 		<div class="progress-bar" style="width: 100%;"></div></div>')
 	
-	wn.call({
+	return wn.call({
 		method:"home.page.latest_updates.latest_updates.get",
 		callback: function(r) {
 			parent.empty();
@@ -21,7 +24,9 @@
 			var $tbody = $('<table class="table table-bordered"><tbody></tbody></table>')
 				.appendTo(parent).find("tbody");
 			$.each(r.message, function(i, log) {
-				if(log.message.indexOf("minor")===-1 && log.message.indexOf("[")!==-1) {
+				if(log.message.indexOf("minor")===-1 
+					&& log.message.indexOf("docs")===-1
+					&& log.message.indexOf("[")!==-1) {
 					log.message = log.message.replace(/(\[[^\]]*\])/g, 
 						function(match, p1, offset, string) { 
 							match = match.toLowerCase();
diff --git a/home/page/latest_updates/latest_updates.py b/home/page/latest_updates/latest_updates.py
index 4cd25b2..4eb208f 100644
--- a/home/page/latest_updates/latest_updates.py
+++ b/home/page/latest_updates/latest_updates.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes, os, subprocess, tempfile, json, datetime
 
diff --git a/hr/doctype/appraisal/appraisal.js b/hr/doctype/appraisal/appraisal.js
index 2289064..f94a288 100644
--- a/hr/doctype/appraisal/appraisal.js
+++ b/hr/doctype/appraisal/appraisal.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.add_fetch('employee', 'company', 'company');
 cur_frm.add_fetch('employee', 'employee_name', 'employee_name');
@@ -44,7 +31,7 @@
 }
 
 cur_frm.cscript.calculate_total_score = function(doc,cdt,cdn){
-	//get_server_fields('calculate_total','','',doc,cdt,cdn,1);
+	//return get_server_fields('calculate_total','','',doc,cdt,cdn,1);
 	var val = getchildren('Appraisal Goal', doc.name, 'appraisal_details', doc.doctype);
 	var total =0;
 	for(var i = 0; i<val.length; i++){
diff --git a/hr/doctype/appraisal/appraisal.py b/hr/doctype/appraisal/appraisal.py
index 8a50d7c..91d54b6 100644
--- a/hr/doctype/appraisal/appraisal.py
+++ b/hr/doctype/appraisal/appraisal.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/appraisal_goal/appraisal_goal.py b/hr/doctype/appraisal_goal/appraisal_goal.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/appraisal_goal/appraisal_goal.py
+++ b/hr/doctype/appraisal_goal/appraisal_goal.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/appraisal_template/appraisal_template.py b/hr/doctype/appraisal_template/appraisal_template.py
index e43f36a..ca1bad7 100644
--- a/hr/doctype/appraisal_template/appraisal_template.py
+++ b/hr/doctype/appraisal_template/appraisal_template.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/appraisal_template_goal/appraisal_template_goal.py b/hr/doctype/appraisal_template_goal/appraisal_template_goal.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/appraisal_template_goal/appraisal_template_goal.py
+++ b/hr/doctype/appraisal_template_goal/appraisal_template_goal.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/attendance/attendance.js b/hr/doctype/attendance/attendance.js
index d1a66ce..4f66b07 100644
--- a/hr/doctype/attendance/attendance.js
+++ b/hr/doctype/attendance/attendance.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.add_fetch('employee', 'company', 'company');
 cur_frm.add_fetch('employee', 'employee_name', 'employee_name');
diff --git a/hr/doctype/attendance/attendance.py b/hr/doctype/attendance/attendance.py
index 16e2547..7b82bc5 100644
--- a/hr/doctype/attendance/attendance.py
+++ b/hr/doctype/attendance/attendance.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/attendance/attendance.txt b/hr/doctype/attendance/attendance.txt
index d948d6f..163baa0 100644
--- a/hr/doctype/attendance/attendance.txt
+++ b/hr/doctype/attendance/attendance.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:13", 
   "docstatus": 0, 
-  "modified": "2013-07-10 17:39:22", 
+  "modified": "2013-08-08 14:22:10", 
   "modified_by": "Administrator", 
   "owner": "ashwini@webnotestech.com"
  }, 
@@ -54,7 +54,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
diff --git a/hr/doctype/branch/branch.py b/hr/doctype/branch/branch.py
index eb3916b..2f09fd4 100644
--- a/hr/doctype/branch/branch.py
+++ b/hr/doctype/branch/branch.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/branch/branch.txt b/hr/doctype/branch/branch.txt
index 971c24b..3df2cd6 100644
--- a/hr/doctype/branch/branch.txt
+++ b/hr/doctype/branch/branch.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:13", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:28:09", 
+  "modified": "2013-07-22 15:30:08", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -61,10 +61,6 @@
  }, 
  {
   "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
   "role": "HR User"
  }, 
  {
diff --git a/hr/doctype/branch/test_branch.py b/hr/doctype/branch/test_branch.py
index dc33644..a51143e 100644
--- a/hr/doctype/branch/test_branch.py
+++ b/hr/doctype/branch/test_branch.py
@@ -1 +1,4 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [[{"doctype":"Branch", "branch":"_Test Branch"}]]
\ No newline at end of file
diff --git a/hr/doctype/deduction_type/deduction_type.py b/hr/doctype/deduction_type/deduction_type.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/deduction_type/deduction_type.py
+++ b/hr/doctype/deduction_type/deduction_type.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/deduction_type/deduction_type.txt b/hr/doctype/deduction_type/deduction_type.txt
index 7bd0fea..1e38f0b 100644
--- a/hr/doctype/deduction_type/deduction_type.txt
+++ b/hr/doctype/deduction_type/deduction_type.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-22 16:50:30", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:34:46", 
+  "modified": "2013-07-22 15:25:14", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -34,6 +34,7 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 1, 
+  "role": "HR User", 
   "submit": 0, 
   "write": 1
  }, 
@@ -69,15 +70,6 @@
   "width": "300px"
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR User"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR Manager"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/deduction_type/test_deduction_type.py b/hr/doctype/deduction_type/test_deduction_type.py
new file mode 100644
index 0000000..57cb0bb
--- /dev/null
+++ b/hr/doctype/deduction_type/test_deduction_type.py
@@ -0,0 +1,13 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+test_records = [
+	[{
+			"doctype": "Deduction Type",
+			"deduction_name": "_Test Professional Tax"
+	}],
+	[{
+			"doctype": "Deduction Type",
+			"deduction_name": "_Test TDS"
+	}]
+]
\ No newline at end of file
diff --git a/hr/doctype/department/department.py b/hr/doctype/department/department.py
index 6c41e4f..8bb44ee 100644
--- a/hr/doctype/department/department.py
+++ b/hr/doctype/department/department.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/department/department.txt b/hr/doctype/department/department.txt
index 188e52a..1f4e420 100644
--- a/hr/doctype/department/department.txt
+++ b/hr/doctype/department/department.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-05 11:48:26", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:35:06", 
+  "modified": "2013-07-22 15:25:03", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -33,6 +33,7 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 1, 
+  "role": "HR User", 
   "submit": 0, 
   "write": 1
  }, 
@@ -67,15 +68,6 @@
   "options": "Leave Block List"
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR User"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR Manager"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/department/test_department.py b/hr/doctype/department/test_department.py
index a5ac6c7..102bbc8 100644
--- a/hr/doctype/department/test_department.py
+++ b/hr/doctype/department/test_department.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_ignore = ["Leave Block List"]
 
 test_records = [
diff --git a/hr/doctype/designation/designation.py b/hr/doctype/designation/designation.py
index eb3916b..2f09fd4 100644
--- a/hr/doctype/designation/designation.py
+++ b/hr/doctype/designation/designation.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/designation/test_designation.py b/hr/doctype/designation/test_designation.py
index 913b7ec..1eb8f50 100644
--- a/hr/doctype/designation/test_designation.py
+++ b/hr/doctype/designation/test_designation.py
@@ -1 +1,4 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [[{"doctype":"Designation", "designation_name":"_Test Designation"}]]
\ No newline at end of file
diff --git a/hr/doctype/earning_type/earning_type.py b/hr/doctype/earning_type/earning_type.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/earning_type/earning_type.py
+++ b/hr/doctype/earning_type/earning_type.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/earning_type/earning_type.txt b/hr/doctype/earning_type/earning_type.txt
index 0fa8c42..0c84cf1 100644
--- a/hr/doctype/earning_type/earning_type.txt
+++ b/hr/doctype/earning_type/earning_type.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-24 11:03:32", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:36:03", 
+  "modified": "2013-07-22 15:25:26", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -34,6 +34,7 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 1, 
+  "role": "HR User", 
   "submit": 0, 
   "write": 1
  }, 
@@ -90,15 +91,6 @@
   "oldfieldtype": "Currency"
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR User"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR Manager"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/earning_type/test_earning_type.py b/hr/doctype/earning_type/test_earning_type.py
new file mode 100644
index 0000000..f22279e
--- /dev/null
+++ b/hr/doctype/earning_type/test_earning_type.py
@@ -0,0 +1,15 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+test_records = [
+	[{
+			"doctype": "Earning Type",
+			"earning_name": "_Test Basic Salary",
+			"taxable": "Yes"
+	}],
+	[{
+			"doctype": "Earning Type",
+			"earning_name": "_Test Allowance",
+			"taxable": "Yes"
+	}]
+]
\ No newline at end of file
diff --git a/hr/doctype/employee/employee.js b/hr/doctype/employee/employee.js
index 398d8f8..9ee7c61 100644
--- a/hr/doctype/employee/employee.js
+++ b/hr/doctype/employee/employee.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.provide("erpnext.hr");
 erpnext.hr.EmployeeController = wn.ui.form.Controller.extend({
@@ -40,20 +27,21 @@
 	
 	setup_leave_approver_select: function() {
 		var me = this;
-		this.frm.call({
+		return this.frm.call({
 			method:"hr.utils.get_leave_approver_list",
 			callback: function(r) {
-				me.frm.fields_dict.employee_leave_approvers.grid
-					.get_field("leave_approver").df.options =
-					$.map(r.message, function(profile) { 
-						return {value: profile, label: wn.user_info(profile).fullname}; 
-					});
+				var df = wn.meta.get_docfield("Employee Leave Approver", "leave_approver",
+					me.frm.doc.name);
+				df.options = $.map(r.message, function(profile) { 
+					return {value: profile, label: wn.user_info(profile).fullname}; 
+				});
+				me.frm.fields_dict.employee_leave_approvers.refresh();
 			}
 		});
 	},
 	
 	date_of_birth: function() {
-		cur_frm.call({
+		return cur_frm.call({
 			method: "get_retirement_date",
 			args: {date_of_birth: this.frm.doc.date_of_birth}
 		});
@@ -88,7 +76,7 @@
 	
 	validate_salary_structure: function(btn, callback) {
 		var me = this;
-		this.frm.call({
+		return this.frm.call({
 			btn: btn,
 			method: "webnotes.client.get_value",
 			args: {
diff --git a/hr/doctype/employee/employee.py b/hr/doctype/employee/employee.py
index 0369803..f1646f7 100644
--- a/hr/doctype/employee/employee.py
+++ b/hr/doctype/employee/employee.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -29,13 +16,17 @@
 		self.doclist = doclist
 		
 	def autoname(self):
-		ret = sql("select value from `tabSingles` where doctype = 'Global Defaults' and field = 'emp_created_by'")
-		if not ret:
-			msgprint("Please setup Employee Naming System in Setup > Global Defaults > HR", raise_exception=True)
+		naming_method = webnotes.conn.get_value("HR Settings", None, "emp_created_by")
+		if not naming_method:
+			webnotes.throw(_("Please setup Employee Naming System in Human Resource > HR Settings"))
 		else:
-			if ret[0][0]=='Naming Series':
+			if naming_method=='Naming Series':
+				if not self.doc.naming_series:
+					webnotes.throw(_("Please select Naming Neries"))
 				self.doc.name = make_autoname(self.doc.naming_series + '.####')
-			elif ret[0][0]=='Employee Number':
+			elif naming_method=='Employee Number':
+				if not self.doc.employee_number:
+					webnotes.throw(_("Please enter Employee Number"))
 				self.doc.name = self.doc.employee_number
 
 		self.doc.employee = self.doc.name
@@ -47,7 +38,6 @@
 		self.doc.employee = self.doc.name
 		self.validate_date()
 		self.validate_email()
-		self.validate_name()
 		self.validate_status()
 		self.validate_employee_leave_approver()
 		
@@ -55,6 +45,7 @@
 		if self.doc.user_id:
 			self.update_user_default()
 			self.update_profile()
+		self.update_dob_event()
 				
 	def update_user_default(self):
 		webnotes.conn.set_default("employee", self.doc.name, self.doc.user_id)
@@ -149,20 +140,6 @@
 		if self.doc.personal_email and not validate_email_add(self.doc.personal_email):
 			msgprint("Please enter valid Personal Email")
 			raise Exception
-
-	def validate_name(self):	
-		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 
-		else:
-			if ret[0][0]=='Naming Series' and not self.doc.naming_series:
-				msgprint("Please select Naming Series.")
-				raise Exception 
-			elif ret[0][0]=='Employee Number' and not self.doc.employee_number:
-				msgprint("Please enter Employee Number.")
-				raise Exception 
 				
 	def validate_status(self):
 		if self.doc.status == 'Left' and not self.doc.relieving_date:
@@ -178,6 +155,35 @@
 				msgprint(_("Invalid Leave Approver") + ": \"" + l.leave_approver + "\"",
 					raise_exception=InvalidLeaveApproverError)
 
+	def update_dob_event(self):
+		if self.doc.date_of_birth:
+			get_events = webnotes.conn.sql("""select name from `tabEvent` where repeat_on='Every Year' 
+				and ref_type='Employee' and ref_name=%s""", self.doc.name)
+
+			starts_on = self.doc.date_of_birth + " 00:00:00"
+			ends_on = self.doc.date_of_birth + " 00:15:00"
+
+			if get_events:
+				webnotes.conn.sql("""update `tabEvent` set starts_on=%s, ends_on=%s 
+					where name=%s""", (starts_on, ends_on, get_events[0][0]))
+			else:
+				webnotes.bean({
+					"doctype": "Event",
+					"subject": _("Birthday") + ": " + self.doc.employee_name,
+					"starts_on": starts_on,
+					"ends_on": ends_on,
+					"event_type": "Public",
+					"all_day": 1,
+					"send_reminder": 1,
+					"repeat_this_event": 1,
+					"repeat_on": "Every Year",
+					"ref_type": "Employee",
+					"ref_name": self.doc.name
+				}).insert()
+		else:
+			webnotes.conn.sql("""delete from `tabEvent` where repeat_on='Every Year' and
+				ref_type='Employee' and ref_name=%s""", self.doc.name)
+
 @webnotes.whitelist()
 def get_retirement_date(date_of_birth=None):
 	import datetime
diff --git a/hr/doctype/employee/employee.txt b/hr/doctype/employee/employee.txt
index 44e1bb2..bbe87ad 100644
--- a/hr/doctype/employee/employee.txt
+++ b/hr/doctype/employee/employee.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 09:04:18", 
   "docstatus": 0, 
-  "modified": "2013-07-10 12:52:17", 
+  "modified": "2013-08-08 14:22:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -76,7 +76,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
diff --git a/hr/doctype/employee/test_employee.py b/hr/doctype/employee/test_employee.py
index ed7ce94..4e85796 100644
--- a/hr/doctype/employee/test_employee.py
+++ b/hr/doctype/employee/test_employee.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [[{
 	"doctype":"Employee",
 	"employee_name": "_Test Employee",
diff --git a/hr/doctype/employee_education/employee_education.py b/hr/doctype/employee_education/employee_education.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/employee_education/employee_education.py
+++ b/hr/doctype/employee_education/employee_education.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/employee_external_work_history/employee_external_work_history.py b/hr/doctype/employee_external_work_history/employee_external_work_history.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/employee_external_work_history/employee_external_work_history.py
+++ b/hr/doctype/employee_external_work_history/employee_external_work_history.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/employee_internal_work_history/employee_internal_work_history.py b/hr/doctype/employee_internal_work_history/employee_internal_work_history.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/employee_internal_work_history/employee_internal_work_history.py
+++ b/hr/doctype/employee_internal_work_history/employee_internal_work_history.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/employee_leave_approver/employee_leave_approver.py b/hr/doctype/employee_leave_approver/employee_leave_approver.py
index 928aa9f..784339d 100644
--- a/hr/doctype/employee_leave_approver/employee_leave_approver.py
+++ b/hr/doctype/employee_leave_approver/employee_leave_approver.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/hr/doctype/employee_leave_approver/employee_leave_approver.txt b/hr/doctype/employee_leave_approver/employee_leave_approver.txt
index f175bbd..d51d6a1 100644
--- a/hr/doctype/employee_leave_approver/employee_leave_approver.txt
+++ b/hr/doctype/employee_leave_approver/employee_leave_approver.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-12 06:56:15", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:08", 
+  "modified": "2013-08-05 14:15:44", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -19,7 +19,7 @@
   "doctype": "DocField", 
   "fieldname": "leave_approver", 
   "fieldtype": "Select", 
-  "in_list_view": 0, 
+  "in_list_view": 1, 
   "label": "Leave Approver", 
   "name": "__common__", 
   "parent": "Employee Leave Approver", 
diff --git a/hr/doctype/employment_type/employment_type.py b/hr/doctype/employment_type/employment_type.py
index 6c41e4f..8bb44ee 100644
--- a/hr/doctype/employment_type/employment_type.py
+++ b/hr/doctype/employment_type/employment_type.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/employment_type/employment_type.txt b/hr/doctype/employment_type/employment_type.txt
index e4a2f24..cabfbd7 100644
--- a/hr/doctype/employment_type/employment_type.txt
+++ b/hr/doctype/employment_type/employment_type.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:14", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:36:27", 
+  "modified": "2013-07-22 15:31:58", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -60,10 +60,6 @@
  }, 
  {
   "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
   "role": "HR User"
  }, 
  {
diff --git a/hr/doctype/employment_type/test_employment_type.py b/hr/doctype/employment_type/test_employment_type.py
index 9aedad4..0fefde2 100644
--- a/hr/doctype/employment_type/test_employment_type.py
+++ b/hr/doctype/employment_type/test_employment_type.py
@@ -1,2 +1,5 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [[{"doctype":"Employment Type", 
 	"employee_type_name": "_Test Employment Type"}]]
\ No newline at end of file
diff --git a/hr/doctype/expense_claim/expense_claim.js b/hr/doctype/expense_claim/expense_claim.js
index 406b57a..ad3dace 100644
--- a/hr/doctype/expense_claim/expense_claim.js
+++ b/hr/doctype/expense_claim/expense_claim.js
@@ -1,23 +1,48 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
+wn.provide("erpnext.hr");
+
+erpnext.hr.ExpenseClaimController = wn.ui.form.Controller.extend({
+	make_bank_voucher: function() {
+		var me = this;
+		return wn.call({
+			method: "accounts.doctype.journal_voucher.journal_voucher.get_default_bank_cash_account",
+			args: {
+				"company": cur_frm.doc.company,
+				"voucher_type": "Bank Voucher"
+			},
+			callback: function(r) {
+				var jv = wn.model.make_new_doc_and_get_name('Journal Voucher');
+				jv = locals['Journal Voucher'][jv];
+				jv.voucher_type = 'Bank Voucher';
+				jv.company = cur_frm.doc.company;
+				jv.remark = 'Payment against Expense Claim: ' + cur_frm.doc.name;
+				jv.fiscal_year = cur_frm.doc.fiscal_year;
+
+				var d1 = wn.model.add_child(jv, 'Journal Voucher Detail', 'entries');
+				d1.debit = cur_frm.doc.total_sanctioned_amount;
+
+				// credit to bank
+				var d1 = wn.model.add_child(jv, 'Journal Voucher Detail', 'entries');
+				d1.credit = cur_frm.doc.total_sanctioned_amount;
+				if(r.message) {
+					d1.account = r.message[0].account;
+					d1.balance = r.message[0].balance;
+				}
+
+				loaddoc('Journal Voucher', jv.name);
+			}
+		});
+	}
+})
+
+$.extend(cur_frm.cscript, new erpnext.hr.ExpenseClaimController({frm: cur_frm}));
 
 cur_frm.add_fetch('employee', 'company', 'company');
 cur_frm.add_fetch('employee','employee_name','employee_name');
 
-cur_frm.cscript.onload = function(doc,cdt,cdn){
+cur_frm.cscript.onload = function(doc,cdt,cdn) {
 	if(!doc.approval_status)
 		cur_frm.set_value("approval_status", "Draft")
 			
@@ -27,19 +52,19 @@
 			cur_frm.set_value("approval_status", "Draft");
 		cur_frm.cscript.clear_sanctioned(doc);
 	}
-
-	cur_frm.call({
-		method:"hr.utils.get_expense_approver_list",
-		callback: function(r) {
-			cur_frm.set_df_property("exp_approver", "options", r.message);
-		}
-	});
 	
 	cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) {
 		return{
 			query:"controllers.queries.employee_query"
 		}	
 	}
+
+	return cur_frm.call({
+		method:"hr.utils.get_expense_approver_list",
+		callback: function(r) {
+			cur_frm.set_df_property("exp_approver", "options", r.message);
+		}
+	});
 }
 
 cur_frm.cscript.clear_sanctioned = function(doc) {
@@ -71,15 +96,15 @@
 		} else {
 			if(doc.approval_status=="Approved") {
 				cur_frm.set_intro("Expense Claim has been approved.");
+				if(doc.docstatus==0) cur_frm.savesubmit();
+				if(doc.docstatus==1) cur_frm.add_custom_button("Make Bank Voucher", 
+					cur_frm.cscript.make_bank_voucher);
 			} else if(doc.approval_status=="Rejected") {
 				cur_frm.set_intro("Expense Claim has been rejected.");
 			}
 		}
 	}
-	
-	if(doc.approval_status=="Approved" && doc.docstatus==0) {
-		cur_frm.savesubmit()
-	}}
+}
 
 cur_frm.cscript.validate = function(doc) {
 	cur_frm.cscript.calculate_total(doc);
diff --git a/hr/doctype/expense_claim/expense_claim.py b/hr/doctype/expense_claim/expense_claim.py
index 9317f87..869fbcc 100644
--- a/hr/doctype/expense_claim/expense_claim.py
+++ b/hr/doctype/expense_claim/expense_claim.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/expense_claim_detail/expense_claim_detail.py b/hr/doctype/expense_claim_detail/expense_claim_detail.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/expense_claim_detail/expense_claim_detail.py
+++ b/hr/doctype/expense_claim_detail/expense_claim_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/expense_claim_type/expense_claim_type.py b/hr/doctype/expense_claim_type/expense_claim_type.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/expense_claim_type/expense_claim_type.py
+++ b/hr/doctype/expense_claim_type/expense_claim_type.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/grade/grade.py b/hr/doctype/grade/grade.py
index eb3916b..2f09fd4 100644
--- a/hr/doctype/grade/grade.py
+++ b/hr/doctype/grade/grade.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/grade/grade.txt b/hr/doctype/grade/grade.txt
index b674c31..fdfa5c7 100644
--- a/hr/doctype/grade/grade.txt
+++ b/hr/doctype/grade/grade.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:14", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:39:58", 
+  "modified": "2013-07-26 15:24:31", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,11 +16,17 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "grade_name", 
+  "fieldtype": "Data", 
+  "label": "Grade", 
   "name": "__common__", 
+  "oldfieldname": "grade_name", 
+  "oldfieldtype": "Data", 
   "parent": "Grade", 
   "parentfield": "fields", 
   "parenttype": "DocType", 
-  "permlevel": 0
+  "permlevel": 0, 
+  "reqd": 1
  }, 
  {
   "cancel": 1, 
@@ -33,6 +39,7 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 1, 
+  "role": "HR User", 
   "submit": 0, 
   "write": 1
  }, 
@@ -41,33 +48,9 @@
   "name": "Grade"
  }, 
  {
-  "doctype": "DocField", 
-  "fieldname": "trash_reason", 
-  "fieldtype": "Small Text", 
-  "label": "Trash Reason", 
-  "oldfieldname": "trash_reason", 
-  "oldfieldtype": "Small Text", 
-  "read_only": 1
+  "doctype": "DocField"
  }, 
  {
-  "doctype": "DocField", 
-  "fieldname": "grade_name", 
-  "fieldtype": "Data", 
-  "label": "Grade", 
-  "oldfieldname": "grade_name", 
-  "oldfieldtype": "Data", 
-  "reqd": 1
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR User"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR Manager"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/grade/test_grade.py b/hr/doctype/grade/test_grade.py
index 2d6ce79..8ee6c89 100644
--- a/hr/doctype/grade/test_grade.py
+++ b/hr/doctype/grade/test_grade.py
@@ -1 +1,4 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [[{"doctype":"Grade", "grade_name":"_Test Grade"}]]
\ No newline at end of file
diff --git a/hr/doctype/holiday/holiday.py b/hr/doctype/holiday/holiday.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/holiday/holiday.py
+++ b/hr/doctype/holiday/holiday.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/holiday_list/holiday_list.py b/hr/doctype/holiday_list/holiday_list.py
index 0218114..81d18f3 100644
--- a/hr/doctype/holiday_list/holiday_list.py
+++ b/hr/doctype/holiday_list/holiday_list.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/holiday_list/test_holiday_list.py b/hr/doctype/holiday_list/test_holiday_list.py
index e3a2d82..c61127b 100644
--- a/hr/doctype/holiday_list/test_holiday_list.py
+++ b/hr/doctype/holiday_list/test_holiday_list.py
@@ -1,7 +1,11 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [[{
 		"doctype": "Holiday List",
 		"holiday_list_name": "_Test Holiday List",
-		"fiscal_year": "_Test Fiscal Year 2013"
+		"fiscal_year": "_Test Fiscal Year 2013",
+		"is_default": 1
 	}, {
 		"doctype": "Holiday",
 		"parent": "_Test Holiday List",
diff --git a/utilities/page/markdown_reference/markdown_reference.css b/hr/doctype/hr_settings/__init__.py
similarity index 100%
copy from utilities/page/markdown_reference/markdown_reference.css
copy to hr/doctype/hr_settings/__init__.py
diff --git a/hr/doctype/hr_settings/hr_settings.py b/hr/doctype/hr_settings/hr_settings.py
new file mode 100644
index 0000000..784339d
--- /dev/null
+++ b/hr/doctype/hr_settings/hr_settings.py
@@ -0,0 +1,11 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+class DocType:
+	def __init__(self, d, dl):
+		self.doc, self.doclist = d, dl
\ No newline at end of file
diff --git a/hr/doctype/hr_settings/hr_settings.txt b/hr/doctype/hr_settings/hr_settings.txt
new file mode 100644
index 0000000..e3694d0
--- /dev/null
+++ b/hr/doctype/hr_settings/hr_settings.txt
@@ -0,0 +1,59 @@
+[
+ {
+  "creation": "2013-08-02 13:45:23", 
+  "docstatus": 0, 
+  "modified": "2013-08-02 14:22:26", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "doctype": "DocType", 
+  "document_type": "Other", 
+  "icon": "icon-cog", 
+  "issingle": 1, 
+  "module": "HR", 
+  "name": "__common__"
+ }, 
+ {
+  "doctype": "DocField", 
+  "name": "__common__", 
+  "parent": "HR Settings", 
+  "parentfield": "fields", 
+  "parenttype": "DocType", 
+  "permlevel": 0
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "name": "__common__", 
+  "parent": "HR Settings", 
+  "parentfield": "permissions", 
+  "parenttype": "DocType", 
+  "permlevel": 0, 
+  "read": 1, 
+  "role": "System Manager", 
+  "write": 1
+ }, 
+ {
+  "doctype": "DocType", 
+  "name": "HR Settings"
+ }, 
+ {
+  "description": "Employee record is created using selected field. ", 
+  "doctype": "DocField", 
+  "fieldname": "emp_created_by", 
+  "fieldtype": "Select", 
+  "label": "Employee Records to be created by", 
+  "options": "Naming Series\nEmployee Number"
+ }, 
+ {
+  "description": "If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day", 
+  "doctype": "DocField", 
+  "fieldname": "include_holidays_in_total_working_days", 
+  "fieldtype": "Check", 
+  "label": "Include holidays in Total no. of Working Days"
+ }, 
+ {
+  "doctype": "DocPerm"
+ }
+]
\ No newline at end of file
diff --git a/hr/doctype/job_applicant/get_job_applications.py b/hr/doctype/job_applicant/get_job_applications.py
index 0b994c5..9bec43e 100644
--- a/hr/doctype/job_applicant/get_job_applications.py
+++ b/hr/doctype/job_applicant/get_job_applications.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/job_applicant/job_applicant.js b/hr/doctype/job_applicant/job_applicant.js
index 220ff18..9aff605 100644
--- a/hr/doctype/job_applicant/job_applicant.js
+++ b/hr/doctype/job_applicant/job_applicant.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 // For license information, please see license.txt
 
 cur_frm.cscript = {
diff --git a/hr/doctype/job_applicant/job_applicant.py b/hr/doctype/job_applicant/job_applicant.py
index da722fb..e9b12b0 100644
--- a/hr/doctype/job_applicant/job_applicant.py
+++ b/hr/doctype/job_applicant/job_applicant.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/hr/doctype/job_opening/job_opening.py b/hr/doctype/job_opening/job_opening.py
index 928aa9f..784339d 100644
--- a/hr/doctype/job_opening/job_opening.py
+++ b/hr/doctype/job_opening/job_opening.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/hr/doctype/leave_allocation/leave_allocation.js b/hr/doctype/leave_allocation/leave_allocation.js
index 80445c1..0721328 100755
--- a/hr/doctype/leave_allocation/leave_allocation.js
+++ b/hr/doctype/leave_allocation/leave_allocation.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // ****************************************** onload ********************************************************
 cur_frm.cscript.onload = function(doc, dt, dn) {
@@ -72,7 +59,7 @@
 // ---------------------------------
 calculate_total_leaves_allocated = function(doc, dt, dn) {
   if(cint(doc.carry_forward) == 1 && doc.leave_type && doc.fiscal_year && doc.employee){
-    get_server_fields('get_carry_forwarded_leaves','','', doc, dt, dn, 1);
+    return get_server_fields('get_carry_forwarded_leaves','','', doc, dt, dn, 1);
 	}
   else if(cint(doc.carry_forward) == 0){
     set_multiple(dt,dn,{carry_forwarded_leaves : 0,total_leaves_allocated : flt(doc.new_leaves_allocated)});
diff --git a/hr/doctype/leave_allocation/leave_allocation.py b/hr/doctype/leave_allocation/leave_allocation.py
index d2d940f..1c856fa 100755
--- a/hr/doctype/leave_allocation/leave_allocation.py
+++ b/hr/doctype/leave_allocation/leave_allocation.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/leave_application/leave_application.js b/hr/doctype/leave_application/leave_application.js
index 2715a6c..4c7d356 100755
--- a/hr/doctype/leave_application/leave_application.js
+++ b/hr/doctype/leave_application/leave_application.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.add_fetch('employee','employee_name','employee_name');
 
@@ -23,8 +10,7 @@
 		cur_frm.set_value("status", "Open");
 		cur_frm.cscript.calculate_total_days(doc, dt, dn);
 	}
-	cur_frm.set_df_property("leave_approver", "options", "");
-	cur_frm.call({
+	return cur_frm.call({
 		method:"hr.utils.get_leave_approver_list",
 		callback: function(r) {
 			cur_frm.set_df_property("leave_approver", "options", $.map(r.message, 
@@ -105,7 +91,7 @@
 	
 cur_frm.cscript.get_leave_balance = function(doc, dt, dn) {
 	if(doc.docstatus==0 && doc.employee && doc.leave_type && doc.fiscal_year) {
-		cur_frm.call({
+		return cur_frm.call({
 			method: "get_leave_balance",
 			args: {
 				employee: doc.employee,
@@ -121,7 +107,7 @@
 		if(cint(doc.half_day) == 1) set_multiple(dt,dn,{total_leave_days:0.5});
 		else{
 			// server call is done to include holidays in leave days calculations
-			get_server_fields('get_total_leave_days', '', '', doc, dt, dn, 1);
+			return get_server_fields('get_total_leave_days', '', '', doc, dt, dn, 1);
 		}
 	}
 }
diff --git a/hr/doctype/leave_application/leave_application.py b/hr/doctype/leave_application/leave_application.py
index 7c47d6a..8a2df1e 100755
--- a/hr/doctype/leave_application/leave_application.py
+++ b/hr/doctype/leave_application/leave_application.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -128,7 +115,8 @@
 				self.doc.leave_balance = get_leave_balance(self.doc.employee,
 					self.doc.leave_type, self.doc.fiscal_year)["leave_balance"]
 
-				if self.doc.leave_balance - self.doc.total_leave_days < 0:
+				if self.doc.status != "Rejected" \
+						and self.doc.leave_balance - self.doc.total_leave_days < 0:
 					#check if this leave type allow the remaining balance to be in negative. If yes then warn the user and continue to save else warn the user and don't save.
 					msgprint("There is not enough leave balance for Leave Type: %s" % \
 						(self.doc.leave_type,), 
diff --git a/hr/doctype/leave_application/leave_application_calendar.js b/hr/doctype/leave_application/leave_application_calendar.js
index 48eb7fa..f9da0e5 100644
--- a/hr/doctype/leave_application/leave_application_calendar.js
+++ b/hr/doctype/leave_application/leave_application_calendar.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.views.calendar["Leave Application"] = {
 	field_map: {
 		"start": "from_date",
diff --git a/hr/doctype/leave_application/test_leave_application.py b/hr/doctype/leave_application/test_leave_application.py
index 338225c..5888eae 100644
--- a/hr/doctype/leave_application/test_leave_application.py
+++ b/hr/doctype/leave_application/test_leave_application.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 import unittest
 
@@ -236,5 +239,15 @@
 		"fiscal_year": "_Test Fiscal Year 2013",
 		"employee": "_T-Employee-0002",
 		"company": "_Test Company"
+	}],
+	[{
+		"doctype": "Leave Application",
+		"leave_type": "_Test Leave Type LWP",
+		"from_date": "2013-01-15",
+		"to_date": "2013-01-15",
+		"posting_date": "2013-01-02",
+		"fiscal_year": "_Test Fiscal Year 2013",
+		"employee": "_T-Employee-0001",
+		"company": "_Test Company",
 	}]
 ]
diff --git a/hr/doctype/leave_block_list/leave_block_list.py b/hr/doctype/leave_block_list/leave_block_list.py
index 81269ba..2f37a3f 100644
--- a/hr/doctype/leave_block_list/leave_block_list.py
+++ b/hr/doctype/leave_block_list/leave_block_list.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/hr/doctype/leave_block_list/test_leave_block_list.py b/hr/doctype/leave_block_list/test_leave_block_list.py
index 9df5fcf..e266cd8 100644
--- a/hr/doctype/leave_block_list/test_leave_block_list.py
+++ b/hr/doctype/leave_block_list/test_leave_block_list.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 import unittest
 
diff --git a/hr/doctype/leave_block_list_allow/leave_block_list_allow.py b/hr/doctype/leave_block_list_allow/leave_block_list_allow.py
index 928aa9f..784339d 100644
--- a/hr/doctype/leave_block_list_allow/leave_block_list_allow.py
+++ b/hr/doctype/leave_block_list_allow/leave_block_list_allow.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/hr/doctype/leave_block_list_date/leave_block_list_date.py b/hr/doctype/leave_block_list_date/leave_block_list_date.py
index 928aa9f..784339d 100644
--- a/hr/doctype/leave_block_list_date/leave_block_list_date.py
+++ b/hr/doctype/leave_block_list_date/leave_block_list_date.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/hr/doctype/leave_control_panel/leave_control_panel.js b/hr/doctype/leave_control_panel/leave_control_panel.js
index f3a635c..a53f031 100644
--- a/hr/doctype/leave_control_panel/leave_control_panel.js
+++ b/hr/doctype/leave_control_panel/leave_control_panel.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.onload = function(doc,dt,dn){
   if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});
@@ -24,7 +11,7 @@
 // Validation For To Date
 // ================================================================================================
 cur_frm.cscript.to_date = function(doc, cdt, cdn) {
-  $c('runserverobj', args={'method':'to_date_validation','docs':wn.model.compress(make_doclist(doc.doctype, doc.name))},
+  return $c('runserverobj', args={'method':'to_date_validation','docs':wn.model.compress(make_doclist(doc.doctype, doc.name))},
     function(r, rt) {
     var doc = locals[cdt][cdn];
     if (r.message) {
diff --git a/hr/doctype/leave_control_panel/leave_control_panel.py b/hr/doctype/leave_control_panel/leave_control_panel.py
index e771c5c..30b52ba 100644
--- a/hr/doctype/leave_control_panel/leave_control_panel.py
+++ b/hr/doctype/leave_control_panel/leave_control_panel.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/leave_type/leave_type.py b/hr/doctype/leave_type/leave_type.py
index 6c41e4f..8bb44ee 100644
--- a/hr/doctype/leave_type/leave_type.py
+++ b/hr/doctype/leave_type/leave_type.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/leave_type/leave_type.txt b/hr/doctype/leave_type/leave_type.txt
index 29960b2..dd339dc 100644
--- a/hr/doctype/leave_type/leave_type.txt
+++ b/hr/doctype/leave_type/leave_type.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-21 09:55:58", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:44:54", 
+  "modified": "2013-07-22 15:32:07", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -100,10 +100,6 @@
  }, 
  {
   "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
   "role": "HR User"
  }, 
  {
diff --git a/hr/doctype/leave_type/test_leave_type.py b/hr/doctype/leave_type/test_leave_type.py
index 4d78975..ad3f158 100644
--- a/hr/doctype/leave_type/test_leave_type.py
+++ b/hr/doctype/leave_type/test_leave_type.py
@@ -1,6 +1,14 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"leave_type_name": "_Test Leave Type",
 		"doctype": "Leave Type"
+	}],
+	[{
+		"leave_type_name": "_Test Leave Type LWP",
+		"doctype": "Leave Type",
+		"is_lwp": 1
 	}]
 ]
\ No newline at end of file
diff --git a/hr/doctype/salary_manager/salary_manager.js b/hr/doctype/salary_manager/salary_manager.js
index d6dcc5c..178ab3e 100644
--- a/hr/doctype/salary_manager/salary_manager.js
+++ b/hr/doctype/salary_manager/salary_manager.js
@@ -1,24 +1,11 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 var display_activity_log = function(msg) {
 	if(!pscript.ss_html)
-		pscript.ss_html = $a(cur_frm.fields_dict['activity_log'].wrapper,'div','',{border:'1px solid #CCC', backgroundColor:'#CCC'});
-	pscript.ss_html.innerHTML = '<div style="color:#EEE; background-color:#555;"><b><i>Activity Log:</i><br></b></div>';
-	pscript.ss_html.innerHTML += '<div style="color:#666; padding: 5px">'+ msg + '</div>';
+		pscript.ss_html = $a(cur_frm.fields_dict['activity_log'].wrapper,'div');
+	pscript.ss_html.innerHTML = 
+		'<div class="panel"><div class="panel-heading">Activity Log:</div>'+msg+'</div>';
 }
 
 //Create salary slip
@@ -28,7 +15,7 @@
 		if (r.message)
 			display_activity_log(r.message);
 	}
-	$c('runserverobj', args={'method':'create_sal_slip','docs':wn.model.compress(make_doclist (cdt, cdn))},callback);
+	return $c('runserverobj', args={'method':'create_sal_slip','docs':wn.model.compress(make_doclist (cdt, cdn))},callback);
 }
 
 
@@ -42,7 +29,7 @@
 			if (r.message)
 				display_activity_log(r.message);
 		}
-		$c('runserverobj', args={'method':'submit_salary_slip','docs':wn.model.compress(make_doclist (cdt, cdn))},callback);
+		return $c('runserverobj', args={'method':'submit_salary_slip','docs':wn.model.compress(make_doclist (cdt, cdn))},callback);
 	}
 }
 
@@ -79,5 +66,5 @@
 
 		loaddoc('Journal Voucher', jv.name);
 	}
-	$c_obj(make_doclist(dt,dn),'get_acc_details','',call_back);
+	return $c_obj(make_doclist(dt,dn),'get_acc_details','',call_back);
 }
diff --git a/hr/doctype/salary_manager/salary_manager.py b/hr/doctype/salary_manager/salary_manager.py
index e9b3dd7..0eadca1 100644
--- a/hr/doctype/salary_manager/salary_manager.py
+++ b/hr/doctype/salary_manager/salary_manager.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -112,26 +99,16 @@
 			if not sql("""select name from `tabSalary Slip` 
 					where docstatus!= 2 and employee = %s and month = %s and fiscal_year = %s and company = %s
 					""", (emp[0], self.doc.month, self.doc.fiscal_year, self.doc.company)):
-				ss = Document('Salary Slip')
-				ss.fiscal_year = self.doc.fiscal_year
-				ss.employee = emp[0]
-				ss.month = self.doc.month
-				ss.email_check = self.doc.send_email
-				ss.company = self.doc.company
-				ss.save(1)
-			
-				ss_obj = get_obj('Salary Slip', ss.name, with_children=1)
-				ss_obj.get_emp_and_leave_details()
-				ss_obj.calculate_net_pay()
-				ss_obj.validate()
-				ss_obj.doc.save()
-			
-				for d in getlist(ss_obj.doclist, 'earning_details'):
-					d.save()
-				for d in getlist(ss_obj.doclist, 'deduction_details'):
-					d.save()
-					
-				ss_list.append(ss.name)
+				ss = webnotes.bean({
+					"doctype": "Salary Slip",
+					"fiscal_year": self.doc.fiscal_year,
+					"employee": emp[0],
+					"month": self.doc.month,
+					"email_check": self.doc.send_email,
+					"company": self.doc.company,
+				})
+				ss.insert()
+				ss_list.append(ss.doc.name)
 		
 		return self.create_log(ss_list)
 	
diff --git a/hr/doctype/salary_manager/salary_manager.txt b/hr/doctype/salary_manager/salary_manager.txt
index f25de4f..423e789 100644
--- a/hr/doctype/salary_manager/salary_manager.txt
+++ b/hr/doctype/salary_manager/salary_manager.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2012-03-27 14:35:59", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:53:30", 
+  "modified": "2013-07-22 15:22:58", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -34,6 +34,7 @@
   "parenttype": "DocType", 
   "permlevel": 0, 
   "read": 1, 
+  "role": "HR Manager", 
   "write": 1
  }, 
  {
@@ -179,15 +180,6 @@
   "label": "Activity Log"
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR User"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR Manager"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/salary_manager/test_salary_manager.py b/hr/doctype/salary_manager/test_salary_manager.py
index eb990f8..04000f0 100644
--- a/hr/doctype/salary_manager/test_salary_manager.py
+++ b/hr/doctype/salary_manager/test_salary_manager.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import unittest
diff --git a/hr/doctype/salary_slip/salary_slip.js b/hr/doctype/salary_slip/salary_slip.js
index f6853fc..e44e981 100644
--- a/hr/doctype/salary_slip/salary_slip.js
+++ b/hr/doctype/salary_slip/salary_slip.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.add_fetch('employee', 'company', 'company');
 
@@ -34,7 +21,7 @@
 // Get leave details
 //---------------------------------------------------------------------
 cur_frm.cscript.fiscal_year = function(doc,dt,dn){
-		$c_obj(make_doclist(doc.doctype,doc.name), 'get_emp_and_leave_details','',function(r, rt) {
+		return $c_obj(make_doclist(doc.doctype,doc.name), 'get_emp_and_leave_details','',function(r, rt) {
 			var doc = locals[dt][dn];
 			cur_frm.refresh();
 			calculate_all(doc, dt, dn);
@@ -45,7 +32,7 @@
 
 cur_frm.cscript.leave_without_pay = function(doc,dt,dn){
 	if (doc.employee && doc.fiscal_year && doc.month) {
-		$c_obj(make_doclist(doc.doctype,doc.name), 'get_leave_details',doc.leave_without_pay,function(r, rt) {
+		return $c_obj(make_doclist(doc.doctype,doc.name), 'get_leave_details',doc.leave_without_pay,function(r, rt) {
 			var doc = locals[dt][dn];
 			cur_frm.refresh();
 			calculate_all(doc, dt, dn);
diff --git a/hr/doctype/salary_slip/salary_slip.py b/hr/doctype/salary_slip/salary_slip.py
index 09bd602..4ca1734 100644
--- a/hr/doctype/salary_slip/salary_slip.py
+++ b/hr/doctype/salary_slip/salary_slip.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -61,7 +48,7 @@
 			["bank_name", "bank_ac_no", "esic_card_no", "pf_number"], as_dict=1)
 		if emp:
 			self.doc.bank_name = emp.bank_name
-			self.doc.bank_ac_no = emp.bank_ac_no
+			self.doc.bank_account_no = emp.bank_ac_no
 			self.doc.esic_no = emp.esic_card_no
 			self.doc.pf_no = emp.pf_number
 
@@ -72,9 +59,17 @@
 			self.doc.month = "%02d" % getdate(nowdate()).month
 			
 		m = get_obj('Salary Manager').get_month_details(self.doc.fiscal_year, self.doc.month)
+		holidays = self.get_holidays_for_employee(m)
 		
+		if not cint(webnotes.conn.get_value("HR Settings", "HR Settings",
+			"include_holidays_in_total_working_days")):
+				m["month_days"] -= len(holidays)
+				if m["month_days"] < 0:
+					msgprint(_("Bummer! There are more holidays than working days this month."),
+						raise_exception=True)
+			
 		if not lwp:
-			lwp = self.calculate_lwp(m)
+			lwp = self.calculate_lwp(holidays, m)
 		self.doc.total_days_in_month = m['month_days']
 		self.doc.leave_without_pay = lwp
 		payment_days = flt(self.get_payment_days(m)) - flt(lwp)
@@ -103,11 +98,8 @@
 				payment_days = 0
 
 		return payment_days
-
-
-
-
-	def calculate_lwp(self, m):
+		
+	def get_holidays_for_employee(self, m):
 		holidays = sql("""select t1.holiday_date 
 			from `tabHoliday` t1, tabEmployee t2 
 			where t1.parent = t2.holiday_list and t2.name = %s 
@@ -117,8 +109,13 @@
 			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)
+				and t2.fiscal_year = %s
+				and t1.holiday_date between %s and %s""", (self.doc.fiscal_year, 
+					m['month_start_date'], m['month_end_date']))
 		holidays = [cstr(i[0]) for i in holidays]
+		return holidays
+
+	def calculate_lwp(self, holidays, m):
 		lwp = 0
 		for d in range(m['month_days']):
 			dt = add_days(cstr(m['month_start_date']), d)
@@ -133,7 +130,7 @@
 					and %s between from_date and to_date
 				""", (self.doc.employee, dt))
 				if leave:
-					lwp = cint(leave[0][1]) and lwp + 0.5 or lwp + 1
+					lwp = cint(leave[0][1]) and (lwp + 0.5) or (lwp + 1)
 		return lwp
 
 	def check_existing(self):
@@ -150,17 +147,29 @@
 	def validate(self):
 		from webnotes.utils import money_in_words
 		self.check_existing()
+		
+		if not (len(self.doclist.get({"parentfield": "earning_details"})) or 
+			len(self.doclist.get({"parentfield": "deduction_details"}))):
+				self.get_emp_and_leave_details()
+		else:
+			self.get_leave_details(self.doc.leave_without_pay)
+
+		if not self.doc.net_pay:
+			self.calculate_net_pay()
+			
 		company_currency = get_company_currency(self.doc.company)
 		self.doc.total_in_words = money_in_words(self.doc.rounded_total, company_currency)
 
 	def calculate_earning_total(self):
 		self.doc.gross_pay = flt(self.doc.arrear_amount) + flt(self.doc.leave_encashment_amount)
-		for d in getlist(self.doclist, 'earning_details'):
+		for d in self.doclist.get({"parentfield": "earning_details"}):
 			if cint(d.e_depends_on_lwp) == 1:
 				d.e_modified_amount = round(flt(d.e_amount) * flt(self.doc.payment_days)
 					/ cint(self.doc.total_days_in_month), 2)
 			elif not self.doc.payment_days:
 				d.e_modified_amount = 0
+			else:
+				d.e_modified_amount = d.e_amount
 			self.doc.gross_pay += flt(d.e_modified_amount)
 	
 	def calculate_ded_total(self):
@@ -171,6 +180,8 @@
 					/ cint(self.doc.total_days_in_month), 2)
 			elif not self.doc.payment_days:
 				d.d_modified_amount = 0
+			else:
+				d.d_modified_amount = d.d_amount
 			
 			self.doc.total_deduction += flt(d.d_modified_amount)
 				
diff --git a/hr/doctype/salary_slip/salary_slip.txt b/hr/doctype/salary_slip/salary_slip.txt
index 871c6b8..641adae 100644
--- a/hr/doctype/salary_slip/salary_slip.txt
+++ b/hr/doctype/salary_slip/salary_slip.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:15", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:53:44", 
+  "modified": "2013-08-02 19:23:13", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -190,7 +190,7 @@
   "doctype": "DocField", 
   "fieldname": "total_days_in_month", 
   "fieldtype": "Data", 
-  "label": "Total days in month", 
+  "label": "Total Working Days In The Month", 
   "oldfieldname": "total_days_in_month", 
   "oldfieldtype": "Int", 
   "read_only": 1, 
@@ -208,7 +208,7 @@
   "doctype": "DocField", 
   "fieldname": "payment_days", 
   "fieldtype": "Float", 
-  "label": "Payment days", 
+  "label": "Payment Days", 
   "oldfieldname": "payment_days", 
   "oldfieldtype": "Float", 
   "read_only": 1, 
diff --git a/hr/doctype/salary_slip/test_salary_slip.py b/hr/doctype/salary_slip/test_salary_slip.py
new file mode 100644
index 0000000..6bb8c8e
--- /dev/null
+++ b/hr/doctype/salary_slip/test_salary_slip.py
@@ -0,0 +1,88 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+import webnotes
+import unittest
+
+class TestSalarySlip(unittest.TestCase):
+	def setUp(self):
+		webnotes.conn.sql("""delete from `tabLeave Application`""")
+		webnotes.conn.sql("""delete from `tabSalary Slip`""")
+		from hr.doctype.leave_application.test_leave_application import test_records as leave_applications
+		la = webnotes.bean(copy=leave_applications[4])
+		la.insert()
+		la.doc.status = "Approved"
+		la.submit()
+		
+	def tearDown(self):
+		webnotes.conn.set_value("HR Settings", "HR Settings", "include_holidays_in_total_working_days", 0)
+		
+	def test_salary_slip_with_holidays_included(self):
+		webnotes.conn.set_value("HR Settings", "HR Settings", "include_holidays_in_total_working_days", 1)
+		ss = webnotes.bean(copy=test_records[0])
+		ss.insert()
+		self.assertEquals(ss.doc.total_days_in_month, 31)
+		self.assertEquals(ss.doc.payment_days, 30)
+		self.assertEquals(ss.doclist[1].e_modified_amount, 14516.13)
+		self.assertEquals(ss.doclist[2].e_modified_amount, 500)
+		self.assertEquals(ss.doclist[3].d_modified_amount, 100)
+		self.assertEquals(ss.doclist[4].d_modified_amount, 48.39)
+		self.assertEquals(ss.doc.gross_pay, 15016.13)
+		self.assertEquals(ss.doc.net_pay, 14867.74)
+		
+	def test_salary_slip_with_holidays_excluded(self):
+		ss = webnotes.bean(copy=test_records[0])
+		ss.insert()
+		self.assertEquals(ss.doc.total_days_in_month, 30)
+		self.assertEquals(ss.doc.payment_days, 29)
+		self.assertEquals(ss.doclist[1].e_modified_amount, 14500)
+		self.assertEquals(ss.doclist[2].e_modified_amount, 500)
+		self.assertEquals(ss.doclist[3].d_modified_amount, 100)
+		self.assertEquals(ss.doclist[4].d_modified_amount, 48.33)
+		self.assertEquals(ss.doc.gross_pay, 15000)
+		self.assertEquals(ss.doc.net_pay, 14851.67)
+
+test_dependencies = ["Leave Application"]
+
+test_records = [
+	[
+		{
+			"doctype": "Salary Slip",
+			"employee": "_T-Employee-0001",
+			"employee_name": "_Test Employee",
+			"company": "_Test Company",
+			"fiscal_year": "_Test Fiscal Year 2013",
+			"month": "01",
+			"total_days_in_month": 31,
+			"payment_days": 31
+		},
+		{
+			"doctype": "Salary Slip Earning",
+			"parentfield": "earning_details",
+			"e_type": "_Test Basic Salary",
+			"e_amount": 15000,
+			"e_depends_on_lwp": 1
+		},
+		{
+			"doctype": "Salary Slip Earning",
+			"parentfield": "earning_details",
+			"e_type": "_Test Allowance",
+			"e_amount": 500,
+			"e_depends_on_lwp": 0
+		},
+		{
+			"doctype": "Salary Slip Deduction",
+			"parentfield": "deduction_details",
+			"d_type": "_Test Professional Tax",
+			"d_amount": 100,
+			"d_depends_on_lwp": 0
+		},
+		{
+			"doctype": "Salary Slip Deduction",
+			"parentfield": "deduction_details",
+			"d_type": "_Test TDS",
+			"d_amount": 50,
+			"d_depends_on_lwp": 1
+		},
+	]
+]
\ No newline at end of file
diff --git a/hr/doctype/salary_slip_deduction/salary_slip_deduction.py b/hr/doctype/salary_slip_deduction/salary_slip_deduction.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/salary_slip_deduction/salary_slip_deduction.py
+++ b/hr/doctype/salary_slip_deduction/salary_slip_deduction.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt b/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
index 7fa4051..d0a4f47 100644
--- a/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
+++ b/hr/doctype/salary_slip_deduction/salary_slip_deduction.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:48", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:18", 
+  "modified": "2013-07-22 15:27:44", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -22,20 +22,6 @@
   "permlevel": 0
  }, 
  {
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "name": "__common__", 
-  "parent": "Salary Slip Deduction", 
-  "parentfield": "permissions", 
-  "parenttype": "DocType", 
-  "permlevel": 0, 
-  "read": 1, 
-  "report": 1, 
-  "role": "System Manager", 
-  "submit": 0, 
-  "write": 1
- }, 
- {
   "doctype": "DocType", 
   "name": "Salary Slip Deduction"
  }, 
@@ -72,8 +58,5 @@
   "fieldname": "d_depends_on_lwp", 
   "fieldtype": "Check", 
   "label": "Depends on LWP"
- }, 
- {
-  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/salary_slip_earning/salary_slip_earning.py b/hr/doctype/salary_slip_earning/salary_slip_earning.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/salary_slip_earning/salary_slip_earning.py
+++ b/hr/doctype/salary_slip_earning/salary_slip_earning.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/salary_slip_earning/salary_slip_earning.txt b/hr/doctype/salary_slip_earning/salary_slip_earning.txt
index 4ac3f39..3fc25fa 100644
--- a/hr/doctype/salary_slip_earning/salary_slip_earning.txt
+++ b/hr/doctype/salary_slip_earning/salary_slip_earning.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:48", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:18", 
+  "modified": "2013-07-22 15:27:56", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -22,20 +22,6 @@
   "permlevel": 0
  }, 
  {
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "name": "__common__", 
-  "parent": "Salary Slip Earning", 
-  "parentfield": "permissions", 
-  "parenttype": "DocType", 
-  "permlevel": 0, 
-  "read": 1, 
-  "report": 1, 
-  "role": "System Manager", 
-  "submit": 0, 
-  "write": 1
- }, 
- {
   "doctype": "DocType", 
   "name": "Salary Slip Earning"
  }, 
@@ -72,8 +58,5 @@
   "fieldname": "e_depends_on_lwp", 
   "fieldtype": "Check", 
   "label": "Depends on LWP"
- }, 
- {
-  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/salary_structure/salary_structure.js b/hr/doctype/salary_structure/salary_structure.js
index 60c159d..81cb63d 100644
--- a/hr/doctype/salary_structure/salary_structure.js
+++ b/hr/doctype/salary_structure/salary_structure.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.add_fetch('employee', 'company', 'company');
 
@@ -20,7 +7,7 @@
   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']);});
+    return $c_obj(make_doclist(doc.doctype,doc.name),'make_earn_ded_table','', function(r, rt) { refresh_many(['earning_details', 'deduction_details']);});
 }
 
 cur_frm.cscript.refresh = function(doc, dt, dn){
@@ -40,7 +27,7 @@
 
 cur_frm.cscript.employee = function(doc, dt, dn){
   if (doc.employee)
-    get_server_fields('get_employee_details','','',doc,dt,dn);
+    return get_server_fields('get_employee_details','','',doc,dt,dn);
 }
 
 cur_frm.cscript.modified_value = function(doc, cdt, cdn){
diff --git a/hr/doctype/salary_structure/salary_structure.py b/hr/doctype/salary_structure/salary_structure.py
index c7b33e4..50b0160 100644
--- a/hr/doctype/salary_structure/salary_structure.py
+++ b/hr/doctype/salary_structure/salary_structure.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -79,16 +66,8 @@
 				(cstr(ret), self.doc.employee), raise_exception=1)
 
 	def validate_amount(self):
-		if flt(self.doc.ctc) < 12*flt(self.doc.total_earning):
-			msgprint(_("Annual Cost To Company can not be less than 12 months of Total Earning"), 
-				raise_exception=1)
-				
 		if flt(self.doc.net_pay) < 0:
 			msgprint(_("Net pay can not be negative"), raise_exception=1)
-		elif flt(self.doc.net_pay)*12 > flt(self.doc.ctc):
-			msgprint(_("Net pay can not be greater than 1/12th of Annual Cost To Company"), 
-				raise_exception=1)
-		
 
 	def validate(self):	 
 		self.check_existing()
diff --git a/hr/doctype/salary_structure/salary_structure.txt b/hr/doctype/salary_structure/salary_structure.txt
index 57d7c0c..1c6a86b 100644
--- a/hr/doctype/salary_structure/salary_structure.txt
+++ b/hr/doctype/salary_structure/salary_structure.txt
@@ -2,11 +2,12 @@
  {
   "creation": "2013-03-07 18:50:29", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:54:02", 
+  "modified": "2013-08-06 17:15:53", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
+  "allow_import": 1, 
   "doctype": "DocType", 
   "icon": "icon-file-text", 
   "module": "HR", 
@@ -158,19 +159,6 @@
   "read_only": 0
  }, 
  {
-  "description": "Cost to Company", 
-  "doctype": "DocField", 
-  "fieldname": "ctc", 
-  "fieldtype": "Currency", 
-  "in_filter": 1, 
-  "label": "Annual Cost To Company", 
-  "oldfieldname": "ctc", 
-  "oldfieldtype": "Currency", 
-  "options": "Company:company:default_currency", 
-  "read_only": 0, 
-  "reqd": 1
- }, 
- {
   "doctype": "DocField", 
   "fieldname": "company", 
   "fieldtype": "Select", 
@@ -181,11 +169,11 @@
   "reqd": 1
  }, 
  {
-  "description": "You can create more earning and deduction type from Setup --> HR", 
+  "description": "Salary breakup based on Earning and Deduction.", 
   "doctype": "DocField", 
   "fieldname": "earning_deduction", 
   "fieldtype": "Section Break", 
-  "label": "Earning & Deduction", 
+  "label": "Monthly Earning & Deduction", 
   "oldfieldname": "earning_deduction", 
   "oldfieldtype": "Section Break", 
   "read_only": 0
diff --git a/hr/doctype/salary_structure_deduction/salary_structure_deduction.py b/hr/doctype/salary_structure_deduction/salary_structure_deduction.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/salary_structure_deduction/salary_structure_deduction.py
+++ b/hr/doctype/salary_structure_deduction/salary_structure_deduction.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt b/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt
index 81e9a46..0af2632 100644
--- a/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt
+++ b/hr/doctype/salary_structure_deduction/salary_structure_deduction.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:48", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:19", 
+  "modified": "2013-08-06 17:11:40", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,7 +14,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Salary Structure Deduction", 
   "parentfield": "fields", 
@@ -29,6 +28,7 @@
   "doctype": "DocField", 
   "fieldname": "d_type", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Type", 
   "oldfieldname": "d_type", 
   "oldfieldtype": "Select", 
@@ -41,6 +41,7 @@
   "doctype": "DocField", 
   "fieldname": "d_modified_amt", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "d_modified_amt", 
   "oldfieldtype": "Currency", 
@@ -50,7 +51,8 @@
   "doctype": "DocField", 
   "fieldname": "depend_on_lwp", 
   "fieldtype": "Check", 
-  "label": "Depend on LWP", 
+  "in_list_view": 0, 
+  "label": "Reduce Deduction for Leave Without Pay (LWP)", 
   "oldfieldname": "depend_on_lwp", 
   "oldfieldtype": "Check"
  }
diff --git a/hr/doctype/salary_structure_earning/salary_structure_earning.py b/hr/doctype/salary_structure_earning/salary_structure_earning.py
index 7f48feb..26d0f76 100644
--- a/hr/doctype/salary_structure_earning/salary_structure_earning.py
+++ b/hr/doctype/salary_structure_earning/salary_structure_earning.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/doctype/salary_structure_earning/salary_structure_earning.txt b/hr/doctype/salary_structure_earning/salary_structure_earning.txt
index b2a8e30..609fd6c 100644
--- a/hr/doctype/salary_structure_earning/salary_structure_earning.txt
+++ b/hr/doctype/salary_structure_earning/salary_structure_earning.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:48", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:19", 
+  "modified": "2013-08-06 17:11:31", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -16,7 +16,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "Salary Structure Earning", 
   "parentfield": "fields", 
@@ -31,6 +30,7 @@
   "doctype": "DocField", 
   "fieldname": "e_type", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Type", 
   "oldfieldname": "e_type", 
   "oldfieldtype": "Data", 
@@ -43,6 +43,7 @@
   "doctype": "DocField", 
   "fieldname": "modified_value", 
   "fieldtype": "Currency", 
+  "in_list_view": 1, 
   "label": "Amount", 
   "oldfieldname": "modified_value", 
   "oldfieldtype": "Currency", 
@@ -52,7 +53,8 @@
   "doctype": "DocField", 
   "fieldname": "depend_on_lwp", 
   "fieldtype": "Check", 
-  "label": "Depend on LWP", 
+  "in_list_view": 0, 
+  "label": "Reduce Earning for Leave Without Pay (LWP)", 
   "oldfieldname": "depend_on_lwp", 
   "oldfieldtype": "Check"
  }
diff --git a/hr/doctype/upload_attendance/upload_attendance.js b/hr/doctype/upload_attendance/upload_attendance.js
index 4e5b47f..71e2669 100644
--- a/hr/doctype/upload_attendance/upload_attendance.js
+++ b/hr/doctype/upload_attendance/upload_attendance.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 
 wn.require("public/app/js/utils.js");
@@ -52,13 +39,13 @@
 				method: 'hr.doctype.upload_attendance.upload_attendance.upload'
 			},
 			sample_url: "e.g. http://example.com/somefile.csv",
-			callback: function(r) {
+			callback: function(fid, filename, r) {
 				var $log_wrapper = $(cur_frm.fields_dict.import_log.wrapper).empty();
-				
+
 				if(!r.messages) r.messages = [];
 				// replace links if error has occured
 				if(r.exc || r.error) {
-					r.messages = $.map(r.messages, function(v) {
+					r.messages = $.map(r.message.messages, function(v) {
 						var msg = v.replace("Inserted", "Valid")
 							.replace("Updated", "Valid").split("<");
 						if (msg.length > 1) {
@@ -73,7 +60,7 @@
 						.concat(r.messages)
 				} else {
 					r.messages = ["<h4 style='color:green'>Import Successful!</h4>"].
-						concat(r.messages)
+						concat(r.message.messages)
 				}
 				
 				$.each(r.messages, function(i, v) {
diff --git a/hr/doctype/upload_attendance/upload_attendance.py b/hr/doctype/upload_attendance/upload_attendance.py
index 54b8e49..c1344b9 100644
--- a/hr/doctype/upload_attendance/upload_attendance.py
+++ b/hr/doctype/upload_attendance/upload_attendance.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/hr/page/hr_home/hr_home.js b/hr/page/hr_home/hr_home.js
index dadc6fb..71ed689 100644
--- a/hr/page/hr_home/hr_home.js
+++ b/hr/page/hr_home/hr_home.js
@@ -1,5 +1,5 @@
-// ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-// GNU General Public License. See "license.txt"
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt"
 
 wn.module_page["HR"] = [
 	{
@@ -162,29 +162,46 @@
 		]
 	},
 	{
+		title: wn._("Setup"),
+		icon: "icon-cog",
+		items: [
+			{
+				"label": wn._("HR Settings"),
+				"route": "Form/HR Settings",
+				"doctype":"HR Settings",
+				"description": "Settings for HR Module"
+			}
+		]
+	},
+	{
 		title: wn._("Reports"),
 		right: true,
 		icon: "icon-list",
 		items: [
 			{
 				"label":wn._("Employee Leave Balance"),
-				route: "query-report/Employee Leave Balance"
+				route: "query-report/Employee Leave Balance",
+				doctype: "Leave Application"
 			},
 			{
 				"label":wn._("Employee Birthday"),
-				route: "query-report/Employee Birthday"
+				route: "query-report/Employee Birthday",
+				doctype: "Employee"
 			},
 			{
 				"label":wn._("Employee Information"),
-				route: "Report/Employee/Employee Information"
+				route: "Report/Employee/Employee Information",
+				doctype: "Employee"
 			},
 			{
 				"label":wn._("Monthly Salary Register"),
-				route: "query-report/Monthly Salary Register"
+				route: "query-report/Monthly Salary Register",
+				doctype: "Salary Slip"
 			},
 			{
 				"label":wn._("Monthly Attendance Sheet"),
-				route: "query-report/Monthly Attendance Sheet"
+				route: "query-report/Monthly Attendance Sheet",
+				doctype: "Attendance"
 			},
 		]
 	}
diff --git a/hr/report/employee_birthday/employee_birthday.js b/hr/report/employee_birthday/employee_birthday.js
index f2bc9cb..3fd8492 100644
--- a/hr/report/employee_birthday/employee_birthday.js
+++ b/hr/report/employee_birthday/employee_birthday.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Employee Birthday"] = {
 	"filters": [
 		{
diff --git a/hr/report/employee_birthday/employee_birthday.py b/hr/report/employee_birthday/employee_birthday.py
index 7268055..d40e7d4 100644
--- a/hr/report/employee_birthday/employee_birthday.py
+++ b/hr/report/employee_birthday/employee_birthday.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/report/employee_leave_balance/employee_leave_balance.js b/hr/report/employee_leave_balance/employee_leave_balance.js
index d19b48f..1bf252d 100644
--- a/hr/report/employee_leave_balance/employee_leave_balance.js
+++ b/hr/report/employee_leave_balance/employee_leave_balance.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Employee Leave Balance"] = {
 	"filters": [
 		{
diff --git a/hr/report/employee_leave_balance/employee_leave_balance.py b/hr/report/employee_leave_balance/employee_leave_balance.py
index 9d859da..770df45 100644
--- a/hr/report/employee_leave_balance/employee_leave_balance.py
+++ b/hr/report/employee_leave_balance/employee_leave_balance.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 from webnotes.widgets.reportview import execute as runreport
diff --git a/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js b/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js
index 6dc8d78..678e7af 100644
--- a/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js
+++ b/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Monthly Attendance Sheet"] = {
 	"filters": [
 		{
@@ -26,7 +29,7 @@
 			"label": "Company",
 			"fieldtype": "Link",
 			"options": "Company",
-			"default": sys_defaults.company
+			"default": wn.defaults.get_default("company")
 		}
 	]
 }
\ No newline at end of file
diff --git a/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py b/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
index 42a9770..e321c6f 100644
--- a/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
+++ b/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/hr/report/monthly_salary_register/monthly_salary_register.js b/hr/report/monthly_salary_register/monthly_salary_register.js
index da88137..eb33d08 100644
--- a/hr/report/monthly_salary_register/monthly_salary_register.js
+++ b/hr/report/monthly_salary_register/monthly_salary_register.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Monthly Salary Register"] = {
 	"filters": [
 		{
@@ -26,7 +29,7 @@
 			"label": "Company",
 			"fieldtype": "Link",
 			"options": "Company",
-			"default": sys_defaults.company
+			"default": wn.defaults.get_default("company")
 		}
 	]
 }
\ No newline at end of file
diff --git a/hr/report/monthly_salary_register/monthly_salary_register.py b/hr/report/monthly_salary_register/monthly_salary_register.py
index cc25dc3..38fdd32 100644
--- a/hr/report/monthly_salary_register/monthly_salary_register.py
+++ b/hr/report/monthly_salary_register/monthly_salary_register.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -27,6 +14,7 @@
 	ss_earning_map = get_ss_earning_map(salary_slips)
 	ss_ded_map = get_ss_ded_map(salary_slips)
 	
+	
 	data = []
 	for ss in salary_slips:
 		row = [ss.employee, ss.employee_name, ss.branch, ss.department, ss.designation, 
diff --git a/hr/utils.py b/hr/utils.py
index 0d23a16..ddd39e9 100644
--- a/hr/utils.py
+++ b/hr/utils.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/install_erpnext.py b/install_erpnext.py
index 786b3a2..1a802ae 100644
--- a/install_erpnext.py
+++ b/install_erpnext.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 #!/usr/bin/env python
 from __future__ import unicode_literals
 import os, sys
@@ -47,7 +50,7 @@
 	# check distribution
 	distribution = platform.linux_distribution()[0].lower().replace('"', '')
 	print "Distribution = ", distribution
-	is_redhat = distribution in ("redhat", "centos", "fedora")
+	is_redhat = distribution in ("redhat", "centos", "centos linux", "fedora")
 	is_debian = distribution in ("debian", "ubuntu", "elementary os")
 	
 	if not (is_redhat or is_debian):
@@ -104,6 +107,7 @@
 		exec_in_shell("service %s restart" % service)
 	
 def install_using_apt():
+	exec_in_shell("apt-get update")
 	packages = "python python-setuptools python-mysqldb apache2 git memcached ntp vim screen htop"
 	print "-"*80
 	print "Installing Packages: (This may take some time)"
@@ -193,12 +197,16 @@
 		print "Cloning erpnext"
 		exec_in_shell("cd %s && git clone https://github.com/webnotes/erpnext.git app" % install_path)
 		exec_in_shell("cd app && git config core.filemode false")
+		if not os.path.exists(app):
+			raise Exception, "Couldn't clone erpnext repository"
 	
 	lib = os.path.join(install_path, "lib")
 	if not os.path.exists(lib):
 		print "Cloning wnframework"
 		exec_in_shell("cd %s && git clone https://github.com/webnotes/wnframework.git lib" % install_path)
 		exec_in_shell("cd lib && git config core.filemode false")
+		if not os.path.exists(lib):
+			raise Exception, "Couldn't clone wnframework repository"
 	
 	public = os.path.join(install_path, "public")
 	for p in [public, os.path.join(public, "files"), os.path.join(public, "backups"),
@@ -301,6 +309,8 @@
 	
 	print
 	print "-"*80
+	print "To change url domain, run: lib/wnf.py --domain example.com"
+	print "-"*80
 	print "Installation complete"
 	print "Open your browser and go to http://localhost:8080"
 	print "Login using username = Administrator and password = admin"
diff --git a/manufacturing/doctype/bom/bom.js b/manufacturing/doctype/bom/bom.js
index 276e883..badb108 100644
--- a/manufacturing/doctype/bom/bom.js
+++ b/manufacturing/doctype/bom/bom.js
@@ -1,31 +1,28 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // On REFRESH
 cur_frm.cscript.refresh = function(doc,dt,dn){
 	cur_frm.toggle_enable("item", doc.__islocal);
 	
-	if (!doc.__islocal && doc.docstatus==0) {
-		cur_frm.set_intro("Submit the BOM to use it for manufacturing or repacking.");
-	} else cur_frm.set_intro("");
+	if (!doc.__islocal && doc.docstatus<2) {
+		cur_frm.add_custom_button("Update Cost", cur_frm.cscript.update_cost);
+	}
 	
 	cur_frm.cscript.with_operations(doc);
 	set_operation_no(doc);
 }
 
+cur_frm.cscript.update_cost = function() {
+	return wn.call({
+		doc: cur_frm.doc,
+		method: "update_cost",
+		callback: function(r) {
+			if(!r.exc) cur_frm.refresh_fields();
+		}
+	})
+}
+
 cur_frm.cscript.with_operations = function(doc) {
 	cur_frm.fields_dict["bom_materials"].grid.set_column_disp("operation_no", doc.with_operations);
 	cur_frm.fields_dict["bom_materials"].grid.toggle_reqd("operation_no", doc.with_operations)
@@ -96,7 +93,7 @@
 var get_bom_material_detail= function(doc, cdt, cdn) {
 	var d = locals[cdt][cdn];
 	if (d.item_code) {
-		wn.call({
+		return wn.call({
 			doc: cur_frm.doc,
 			method: "get_bom_material_detail",
 			args: {
diff --git a/manufacturing/doctype/bom/bom.py b/manufacturing/doctype/bom/bom.py
index 00523c5..cb4b8c5 100644
--- a/manufacturing/doctype/bom/bom.py
+++ b/manufacturing/doctype/bom/bom.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -43,6 +30,10 @@
 	def validate(self):
 		self.clear_operations()
 		self.validate_main_item()
+
+		from utilities.transaction_base import validate_uom_is_integer
+		validate_uom_is_integer(self.doclist, "stock_uom", "qty")
+
 		self.validate_operations()
 		self.validate_materials()
 		self.set_bom_material_details()
@@ -95,12 +86,13 @@
 		
 	def get_bom_material_detail(self, args=None):
 		""" Get raw material details like uom, desc and rate"""
-
 		if not args:
 			args = webnotes.form_dict.get('args')
+		
+		if isinstance(args, basestring):
 			import json
 			args = json.loads(args)
-
+				
 		item = self.get_item_det(args['item_code'])
 		self.validate_rm_item(item)
 		
@@ -126,10 +118,30 @@
 				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 == "Price List":
+				if not self.doc.buying_price_list:
+					webnotes.throw(_("Please select Price List"))
+				rate = webnotes.conn.get_value("Item Price", {"price_list": self.doc.buying_price_list, 
+					"parent": arg["item_code"]}, "ref_rate") or 0
 			elif self.doc.rm_cost_as_per == 'Standard Rate':
 				rate = arg['standard_rate']
 
 		return rate
+		
+	def update_cost(self):
+		for d in self.doclist.get({"parentfield": "bom_materials"}):
+			d.rate = self.get_bom_material_detail({
+				'item_code': d.item_code, 
+				'bom_no': d.bom_no,
+				'qty': d.qty
+			})["rate"]
+		
+		if self.doc.docstatus == 0:
+			webnotes.bean(self.doclist).save()
+		elif self.doc.docstatus == 1:
+			self.calculate_cost()
+			self.update_exploded_items()
+			webnotes.bean(self.doclist).update_after_submit()
 
 	def get_bom_unitcost(self, bom_no):
 		bom = sql("""select name, total_cost/quantity as unit_cost from `tabBOM`
@@ -173,7 +185,7 @@
 				webnotes.conn.set(self.doc, "is_default", 0)
 			
 			sql("update `tabItem` set default_bom = null where name = %s and default_bom = %s", 
-			 	(self.doc.item, self.doc.name))
+				 (self.doc.item, self.doc.name))
 
 	def clear_operations(self):
 		if not self.doc.with_operations:
@@ -243,7 +255,7 @@
 			(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.""" % 
+				It may be inactive or not submitted or does not belong to this item.""" % 
 				(bom_no, item, idx), raise_exception = 1)
 
 	def check_if_item_repeated(self, item, op, check_list):
diff --git a/manufacturing/doctype/bom/bom.txt b/manufacturing/doctype/bom/bom.txt
index 693f17d..425e9ac 100644
--- a/manufacturing/doctype/bom/bom.txt
+++ b/manufacturing/doctype/bom/bom.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-22 15:11:38", 
   "docstatus": 0, 
-  "modified": "2013-07-08 16:18:33", 
+  "modified": "2013-08-09 14:47:25", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -67,11 +67,6 @@
   "search_index": 1
  }, 
  {
-  "doctype": "DocField", 
-  "fieldname": "cb0", 
-  "fieldtype": "Column Break"
- }, 
- {
   "allow_on_submit": 1, 
   "default": "1", 
   "doctype": "DocField", 
@@ -87,6 +82,7 @@
  }, 
  {
   "allow_on_submit": 1, 
+  "default": "1", 
   "doctype": "DocField", 
   "fieldname": "is_default", 
   "fieldtype": "Check", 
@@ -97,6 +93,11 @@
   "oldfieldtype": "Check"
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "cb0", 
+  "fieldtype": "Column Break"
+ }, 
+ {
   "description": "Manage cost of operations", 
   "doctype": "DocField", 
   "fieldname": "with_operations", 
@@ -104,6 +105,22 @@
   "label": "With Operations"
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "rm_cost_as_per", 
+  "fieldtype": "Select", 
+  "label": "Rate Of Materials Based On", 
+  "options": "Valuation Rate\nLast Purchase Rate\nPrice List"
+ }, 
+ {
+  "depends_on": "eval:doc.rm_cost_as_per===\"Price List\"", 
+  "description": "Price List for Costing", 
+  "doctype": "DocField", 
+  "fieldname": "buying_price_list", 
+  "fieldtype": "Link", 
+  "label": "Price List", 
+  "options": "Price List"
+ }, 
+ {
   "depends_on": "with_operations", 
   "doctype": "DocField", 
   "fieldname": "operations", 
@@ -147,13 +164,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "rm_cost_as_per", 
-  "fieldtype": "Select", 
-  "label": "Rate Of Materials Based On", 
-  "options": "Valuation Rate\nLast Purchase Rate"
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "total_cost", 
   "fieldtype": "Float", 
   "in_list_view": 1, 
@@ -261,10 +271,6 @@
  }, 
  {
   "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
   "role": "Manufacturing Manager"
  }, 
  {
diff --git a/manufacturing/doctype/bom/test_bom.py b/manufacturing/doctype/bom/test_bom.py
index cb91e78..d0b394a 100644
--- a/manufacturing/doctype/bom/test_bom.py
+++ b/manufacturing/doctype/bom/test_bom.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 
 from __future__ import unicode_literals
@@ -36,7 +23,7 @@
 			"qty": 1.0, 
 			"rate": 5000.0, 
 			"amount": 5000.0, 
-			"stock_uom": "No."
+			"stock_uom": "_Test UOM"
 		}, 
 		{
 			"doctype": "BOM Item", 
@@ -45,7 +32,7 @@
 			"qty": 2.0, 
 			"rate": 1000.0,
 			"amount": 2000.0,
-			"stock_uom": "No."
+			"stock_uom": "_Test UOM"
 		}
 	]
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_explosion_item/bom_explosion_item.py b/manufacturing/doctype/bom_explosion_item/bom_explosion_item.py
index 7f48feb..26d0f76 100644
--- a/manufacturing/doctype/bom_explosion_item/bom_explosion_item.py
+++ b/manufacturing/doctype/bom_explosion_item/bom_explosion_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/manufacturing/doctype/bom_item/bom_item.py b/manufacturing/doctype/bom_item/bom_item.py
index 7f48feb..26d0f76 100644
--- a/manufacturing/doctype/bom_item/bom_item.py
+++ b/manufacturing/doctype/bom_item/bom_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/manufacturing/doctype/bom_item/bom_item.txt b/manufacturing/doctype/bom_item/bom_item.txt
index 85fbcf6..e498c71 100644
--- a/manufacturing/doctype/bom_item/bom_item.txt
+++ b/manufacturing/doctype/bom_item/bom_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:49", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:05", 
+  "modified": "2013-07-25 16:34:42", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -21,19 +21,6 @@
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
-  "name": "__common__", 
-  "parent": "BOM Item", 
-  "parentfield": "permissions", 
-  "parenttype": "DocType", 
-  "permlevel": 0, 
-  "read": 1, 
-  "report": 1, 
-  "role": "System Manager", 
-  "submit": 0, 
-  "write": 1
- }, 
- {
   "doctype": "DocType", 
   "name": "BOM Item"
  }, 
@@ -88,11 +75,12 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "in_list_view": 0, 
   "label": "Stock UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "read_only": 1, 
   "reqd": 1
  }, 
@@ -146,8 +134,5 @@
   "oldfieldtype": "Float", 
   "print_hide": 1, 
   "read_only": 1
- }, 
- {
-  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_operation/bom_operation.py b/manufacturing/doctype/bom_operation/bom_operation.py
index 7f48feb..26d0f76 100644
--- a/manufacturing/doctype/bom_operation/bom_operation.py
+++ b/manufacturing/doctype/bom_operation/bom_operation.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/manufacturing/doctype/bom_operation/bom_operation.txt b/manufacturing/doctype/bom_operation/bom_operation.txt
index 86dffe9..01d7d00 100644
--- a/manufacturing/doctype/bom_operation/bom_operation.txt
+++ b/manufacturing/doctype/bom_operation/bom_operation.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:49", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:05", 
+  "modified": "2013-07-22 15:28:28", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -22,19 +22,6 @@
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
-  "name": "__common__", 
-  "parent": "BOM Operation", 
-  "parentfield": "permissions", 
-  "parenttype": "DocType", 
-  "permlevel": 0, 
-  "read": 1, 
-  "report": 1, 
-  "role": "System Manager", 
-  "submit": 0, 
-  "write": 1
- }, 
- {
   "doctype": "DocType", 
   "name": "BOM Operation"
  }, 
@@ -93,8 +80,5 @@
   "oldfieldname": "operating_cost", 
   "oldfieldtype": "Currency", 
   "reqd": 0
- }, 
- {
-  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_replace_tool/bom_replace_tool.js b/manufacturing/doctype/bom_replace_tool/bom_replace_tool.js
index bad03ac..8b37f32 100644
--- a/manufacturing/doctype/bom_replace_tool/bom_replace_tool.js
+++ b/manufacturing/doctype/bom_replace_tool/bom_replace_tool.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 
 cur_frm.cscript.refresh = function(doc) {
diff --git a/manufacturing/doctype/bom_replace_tool/bom_replace_tool.py b/manufacturing/doctype/bom_replace_tool/bom_replace_tool.py
index e69c487..dae4dea 100644
--- a/manufacturing/doctype/bom_replace_tool/bom_replace_tool.py
+++ b/manufacturing/doctype/bom_replace_tool/bom_replace_tool.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/manufacturing/doctype/production_order/production_order.js b/manufacturing/doctype/production_order/production_order.js
index 12f9490..f680776 100644
--- a/manufacturing/doctype/production_order/production_order.js
+++ b/manufacturing/doctype/production_order/production_order.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.onload = function(doc, dt, dn) {
 	if (!doc.status) doc.status = 'Draft';
@@ -52,7 +39,7 @@
 }
 
 cur_frm.cscript.production_item = function(doc) {
-	cur_frm.call({
+	return cur_frm.call({
 		method: "get_item_details",
 		args: { item: doc.production_item }
 	});
@@ -62,7 +49,7 @@
 	var doc = cur_frm.doc;
 	var check = confirm("Do you really want to stop production order: " + doc.name);
 	if (check) {
-		$c_obj(make_doclist(doc.doctype, doc.name), 'stop_unstop', 'Stopped', function(r, rt) {cur_frm.refresh();});
+		return $c_obj(make_doclist(doc.doctype, doc.name), 'stop_unstop', 'Stopped', function(r, rt) {cur_frm.refresh();});
 	}
 }
 
@@ -70,34 +57,29 @@
 	var doc = cur_frm.doc;
 	var check = confirm("Do really want to unstop production order: " + doc.name);
 	if (check)
-			$c_obj(make_doclist(doc.doctype, doc.name), 'stop_unstop', 'Unstopped', function(r, rt) {cur_frm.refresh();});
+			return $c_obj(make_doclist(doc.doctype, doc.name), 'stop_unstop', 'Unstopped', function(r, rt) {cur_frm.refresh();});
 }
 
 cur_frm.cscript['Transfer Raw Materials'] = function() {
-	var doc = cur_frm.doc;
-	cur_frm.cscript.make_se(doc, 'Material Transfer');
+	cur_frm.cscript.make_se('Material Transfer');
 }
 
 cur_frm.cscript['Update Finished Goods'] = function() {
-	var doc = cur_frm.doc;
-	cur_frm.cscript.make_se(doc, 'Manufacture/Repack');
+	cur_frm.cscript.make_se('Manufacture/Repack');
 }
 
-cur_frm.cscript.make_se = function(doc, purpose) {
-	var se = wn.model.get_new_doc("Stock Entry");
-	se.purpose = purpose;
-	se.production_order = doc.name;
-	if(purpose==="Material Transfer") {
-		se.to_warehouse = doc.wip_warehouse;
-	} else {
-		se.from_warehouse = doc.wip_warehouse;
-		se.to_warehouse = doc.fg_warehouse;
-	}
-	se.company = doc.company;
-	se.fg_completed_qty = doc.qty - doc.produced_qty;
-	se.bom_no = doc.bom_no;
-	se.use_multi_level_bom = doc.use_multi_level_bom;
-	loaddoc('Stock Entry', se.name);
+cur_frm.cscript.make_se = function(purpose) {
+	wn.call({
+		method:"manufacturing.doctype.production_order.production_order.make_stock_entry",
+		args: {
+			"production_order_id": cur_frm.doc.name,
+			"purpose": purpose
+		},
+		callback: function(r) {
+			var doclist = wn.model.sync(r.message);
+			wn.set_route("Form", doclist[0].doctype, doclist[0].name);
+		}
+	})
 }
 
 cur_frm.fields_dict['production_item'].get_query = function(doc) {
diff --git a/manufacturing/doctype/production_order/production_order.py b/manufacturing/doctype/production_order/production_order.py
index 95a8272..90a74e9 100644
--- a/manufacturing/doctype/production_order/production_order.py
+++ b/manufacturing/doctype/production_order/production_order.py
@@ -1,29 +1,16 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
 
 from webnotes.utils import cstr, flt, nowdate
 from webnotes.model.code import get_obj
-from webnotes import msgprint
+from webnotes import msgprint, _
 
 sql = webnotes.conn.sql
 
-	
+class OverProductionError(webnotes.ValidationError): pass
 
 class DocType:
 	def __init__(self, doc, doclist=[]):
@@ -57,13 +44,16 @@
 				msgprint("Sales Order: %s is not valid" % self.doc.sales_order, raise_exception=1)
 				
 			self.validate_production_order_against_so()
-				
+
+		from utilities.transaction_base import validate_uom_is_integer
+		validate_uom_is_integer(self.doclist, "stock_uom", ["qty", "produced_qty"])
+
 	
 	def validate_production_order_against_so(self):
 		# already ordered qty
 		ordered_qty_against_so = webnotes.conn.sql("""select sum(qty) from `tabProduction Order`
-			where production_item = %s and sales_order = %s and docstatus < 2""", 
-			(self.doc.production_item, self.doc.sales_order))[0][0]
+			where production_item = %s and sales_order = %s and docstatus < 2 and name != %s""", 
+			(self.doc.production_item, self.doc.sales_order, self.doc.name))[0][0]
 
 		total_qty = flt(ordered_qty_against_so) + flt(self.doc.qty)
 		
@@ -79,12 +69,11 @@
 		so_qty = flt(so_item_qty) + flt(dnpi_qty)
 				
 		if total_qty > so_qty:
-			webnotes.msgprint("""Total production order qty for item: %s against sales order: %s \
-			 	will be %s, which is greater than sales order qty (%s). 
-				Please reduce qty or remove the item.""" %
-				(self.doc.production_item, self.doc.sales_order, 
-					total_qty, so_qty), raise_exception=1)
-
+			webnotes.msgprint(_("Total production order qty for item") + ": " + 
+				cstr(self.doc.production_item) + _(" against sales order") + ": " + 
+				cstr(self.doc.sales_order) + _(" will be ") + cstr(total_qty) + ", " + 
+				_("which is greater than sales order qty ") + "(" + cstr(so_qty) + ")" + 
+				_("Please reduce qty."), raise_exception=OverProductionError)
 
 	def stop_unstop(self, status):
 		""" Called from client side on Stop/Unstop event"""
@@ -107,6 +96,8 @@
 
 
 	def on_submit(self):
+		if not self.doc.wip_warehouse:
+			webnotes.throw(_("WIP Warehouse required before Submit"))
 		webnotes.conn.set(self.doc,'status', 'Submitted')
 		self.update_planned_qty(self.doc.qty)
 		
@@ -146,4 +137,23 @@
 	if bom:
 		res.bom_no = bom[0][0]
 		
-	return res
\ No newline at end of file
+	return res
+
+@webnotes.whitelist()
+def make_stock_entry(production_order_id, purpose):
+	production_order = webnotes.bean("Production Order", production_order_id)
+	
+	stock_entry = webnotes.new_bean("Stock Entry")
+	stock_entry.doc.purpose = purpose
+	stock_entry.doc.production_order = production_order_id
+	stock_entry.doc.company = production_order.doc.company
+	stock_entry.doc.bom_no = production_order.doc.bom_no
+	stock_entry.doc.fg_completed_qty = flt(production_order.doc.qty) - flt(production_order.doc.produced_qty)
+	
+	if purpose=="Material Transfer":
+		stock_entry.doc.to_warehouse = production_order.doc.wip_warehouse
+	else:
+		stock_entry.doc.from_warehouse = production_order.doc.wip_warehouse
+		stock_entry.doc.to_warehouse = production_order.doc.fg_warehouse
+		
+	return [d.fields for d in stock_entry.doclist]
diff --git a/manufacturing/doctype/production_order/production_order.txt b/manufacturing/doctype/production_order/production_order.txt
index 6e5e379..782c99f 100644
--- a/manufacturing/doctype/production_order/production_order.txt
+++ b/manufacturing/doctype/production_order/production_order.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:16", 
   "docstatus": 0, 
-  "modified": "2013-07-11 15:51:37", 
+  "modified": "2013-08-08 14:22:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -35,6 +35,7 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 1, 
+  "role": "Manufacturing User", 
   "submit": 1, 
   "write": 1
  }, 
@@ -54,7 +55,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "options": "\nPRO", 
   "reqd": 1
  }, 
@@ -151,7 +152,7 @@
   "label": "For Warehouse", 
   "options": "Warehouse", 
   "read_only": 0, 
-  "reqd": 1
+  "reqd": 0
  }, 
  {
   "doctype": "DocField", 
@@ -164,7 +165,7 @@
   "fieldtype": "Link", 
   "label": "Work-in-Progress Warehouse", 
   "options": "Warehouse", 
-  "reqd": 1
+  "reqd": 0
  }, 
  {
   "doctype": "DocField", 
@@ -219,10 +220,11 @@
   "depends_on": "production_item", 
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "label": "Stock UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "read_only": 1
  }, 
  {
@@ -247,15 +249,6 @@
   "read_only": 1
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "Manufacturing Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "Manufacturing User"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/production_plan_item/production_plan_item.py b/manufacturing/doctype/production_plan_item/production_plan_item.py
index 7f48feb..26d0f76 100644
--- a/manufacturing/doctype/production_plan_item/production_plan_item.py
+++ b/manufacturing/doctype/production_plan_item/production_plan_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/manufacturing/doctype/production_plan_item/production_plan_item.txt b/manufacturing/doctype/production_plan_item/production_plan_item.txt
index 37f56c9..7bcaaca 100644
--- a/manufacturing/doctype/production_plan_item/production_plan_item.txt
+++ b/manufacturing/doctype/production_plan_item/production_plan_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:49", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:12", 
+  "modified": "2013-08-08 12:12:27", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -52,7 +52,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "planned_qty", 
   "fieldtype": "Float", 
@@ -76,7 +75,6 @@
   "read_only": 1
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "so_pending_qty", 
   "fieldtype": "Float", 
@@ -90,13 +88,23 @@
   "width": "100px"
  }, 
  {
+  "description": "Reserved Warehouse in Sales Order / Finished Goods Warehouse", 
+  "doctype": "DocField", 
+  "fieldname": "warehouse", 
+  "fieldtype": "Link", 
+  "label": "Warehouse", 
+  "options": "Warehouse", 
+  "reqd": 0
+ }, 
+ {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "print_width": "80px", 
   "read_only": 1, 
   "reqd": 1, 
diff --git a/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.py b/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.py
index 7f48feb..26d0f76 100644
--- a/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.py
+++ b/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.txt b/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.txt
index e74f3bb..fab7dd0 100644
--- a/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.txt
+++ b/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:49", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:12", 
+  "modified": "2013-07-22 15:26:23", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -23,19 +23,6 @@
   "permlevel": 0
  }, 
  {
-  "doctype": "DocPerm", 
-  "name": "__common__", 
-  "parent": "Production Plan Sales Order", 
-  "parentfield": "permissions", 
-  "parenttype": "DocType", 
-  "permlevel": 0, 
-  "read": 1, 
-  "report": 1, 
-  "role": "System Manager", 
-  "submit": 0, 
-  "write": 1
- }, 
- {
   "doctype": "DocType", 
   "name": "Production Plan Sales Order"
  }, 
@@ -80,8 +67,5 @@
   "print_width": "120px", 
   "read_only": 1, 
   "width": "120px"
- }, 
- {
-  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/production_planning_tool/production_planning_tool.js b/manufacturing/doctype/production_planning_tool/production_planning_tool.js
index 9158748..daa7013 100644
--- a/manufacturing/doctype/production_planning_tool/production_planning_tool.js
+++ b/manufacturing/doctype/production_planning_tool/production_planning_tool.js
@@ -1,22 +1,9 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
-	doc.company = sys_defaults.company;
-	refresh_field("company");
+	cur_frm.set_value("company", wn.defaults.get_default("company"))
+	cur_frm.set_value("use_multi_level_bom", 1)
 }
 
 cur_frm.cscript.refresh = function(doc) {
@@ -26,19 +13,19 @@
 cur_frm.cscript.sales_order = function(doc,cdt,cdn) {
 	var d = locals[cdt][cdn];
 	if (d.sales_order) {
-		get_server_fields('get_so_details', d.sales_order, 'pp_so_details', doc, cdt, cdn, 1);
+		return get_server_fields('get_so_details', d.sales_order, 'pp_so_details', doc, cdt, cdn, 1);
 	}
 }
 
 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, 'pp_details', doc, cdt, cdn, 1);
+		return get_server_fields('get_item_details', d.item_code, 'pp_details', doc, cdt, cdn, 1);
 	}
 }
 
 cur_frm.cscript.download_materials_required = function(doc, cdt, cdn) {
-	$c_obj(make_doclist(cdt, cdn), 'validate_data', '', function(r, rt) {
+	return $c_obj(make_doclist(cdt, cdn), 'validate_data', '', function(r, rt) {
 		if (!r['exc'])
 			$c_obj_csv(make_doclist(cdt, cdn), 'download_raw_materials', '', '');
 	});
diff --git a/manufacturing/doctype/production_planning_tool/production_planning_tool.py b/manufacturing/doctype/production_planning_tool/production_planning_tool.py
index 26644ad..766f2ac 100644
--- a/manufacturing/doctype/production_planning_tool/production_planning_tool.py
+++ b/manufacturing/doctype/production_planning_tool/production_planning_tool.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -20,7 +7,7 @@
 from webnotes.model.doc import addchild, Document
 from webnotes.model.bean import getlist
 from webnotes.model.code import get_obj
-from webnotes import msgprint
+from webnotes import msgprint, _
 
 sql = webnotes.conn.sql
 
@@ -83,12 +70,12 @@
 				and so.docstatus = 1 and so.status != "Stopped"
 				and so.company = %s
 				and ifnull(so_item.qty, 0) > ifnull(so_item.delivered_qty, 0) %s
-				and (exists (select * from `tabItem` item where item.name=so_item.item_code
+				and (exists (select name from `tabItem` item where item.name=so_item.item_code
 					and (ifnull(item.is_pro_applicable, 'No') = 'Yes' 
 						or ifnull(item.is_sub_contracted_item, 'No') = 'Yes') %s)
-					or exists (select * from `tabDelivery Note Packing Item` dnpi
+					or exists (select name from `tabDelivery Note Packing Item` dnpi
 						where dnpi.parent = so.name and dnpi.parent_item = so_item.item_code
-							and exists (select * from `tabItem` item where item.name=dnpi.item_code
+							and exists (select name from `tabItem` item where item.name=dnpi.item_code
 								and (ifnull(item.is_pro_applicable, 'No') = 'Yes' 
 									or ifnull(item.is_sub_contracted_item, 'No') = 'Yes') %s)))
 			""" % ('%s', so_filter, item_filter, item_filter), self.doc.company, as_dict=1)
@@ -118,9 +105,10 @@
 	def get_items(self):
 		so_list = filter(None, [d.sales_order for d in getlist(self.doclist, 'pp_so_details')])
 		if not so_list:
-			msgprint("Please enter sales order in the above table", raise_exception=1)
+			msgprint("Please enter sales order in the above table")
+			return []
 			
-		items = sql("""select distinct parent, item_code,
+		items = sql("""select distinct parent, item_code, reserved_warehouse,
 			(qty - ifnull(delivered_qty, 0)) as pending_qty
 			from `tabSales Order Item` so_item
 			where parent in (%s) and docstatus = 1 and ifnull(qty, 0) > ifnull(delivered_qty, 0)
@@ -129,7 +117,7 @@
 					or ifnull(item.is_sub_contracted_item, 'No') = 'Yes'))""" % \
 			(", ".join(["%s"] * len(so_list))), tuple(so_list), as_dict=1)
 		
-		dnpi_items = sql("""select distinct dnpi.parent, dnpi.item_code,
+		dnpi_items = sql("""select distinct dnpi.parent, dnpi.item_code, dnpi.warehouse as reserved_warhouse,
 			(((so_item.qty - ifnull(so_item.delivered_qty, 0)) * dnpi.qty) / so_item.qty) 
 				as pending_qty
 			from `tabSales Order Item` so_item, `tabDelivery Note Packing Item` dnpi
@@ -152,6 +140,7 @@
 				from tabItem where name=%s""", p['item_code'])
 			pi = addchild(self.doc, 'pp_details', 'Production Plan Item', self.doclist)
 			pi.sales_order				= p['parent']
+			pi.warehouse				= p['reserved_warehouse']
 			pi.item_code				= p['item_code']
 			pi.description				= item_details and item_details[0][0] or ''
 			pi.stock_uom				= item_details and item_details[0][1] or ''
@@ -161,6 +150,7 @@
 	
 
 	def validate_data(self):
+		self.validate_company()
 		for d in getlist(self.doclist, 'pp_details'):
 			self.validate_bom_no(d)
 			if not flt(d.planned_qty):
@@ -182,57 +172,64 @@
 
 	def raise_production_order(self):
 		"""It will raise production order (Draft) for all distinct FG items"""
-		self.validate_company()
 		self.validate_data()
 
+		from utilities.transaction_base import validate_uom_is_integer
+		validate_uom_is_integer(self.doclist, "stock_uom", "planned_qty")
+
 		items = self.get_distinct_items_and_boms()[1]
 		pro = self.create_production_order(items)
 		if pro:
 			pro = ["""<a href="#Form/Production Order/%s" target="_blank">%s</a>""" % \
 				(p, p) for p in pro]
-			msgprint("Following Production Order has been generated:\n" + '\n'.join(pro))
+			msgprint("Production Order(s) created:\n\n" + '\n'.join(pro))
 		else :
-			msgprint("No Production Order generated.")
+			msgprint("No Production Order created.")
 
 
 	def get_distinct_items_and_boms(self):
 		""" Club similar BOM and item for processing"""
 		item_dict, bom_dict = {}, {}
-		for d in self.doclist.get({"parentfield": "pp_details"}):
+		for d in self.doclist.get({"parentfield": "pp_details"}):			
 			bom_dict[d.bom_no] = bom_dict.get(d.bom_no, 0) + flt(d.planned_qty)
-			item_dict[(d.item_code, d.sales_order)] = {
-				"qty" 				: flt(item_dict.get((d.item_code, d.sales_order), \
-					{}).get("qty")) + flt(d.planned_qty),
+			item_dict[(d.item_code, d.sales_order, d.warehouse)] = {
+				"production_item"	: d.item_code,
+				"sales_order"		: d.sales_order,
+				"qty" 				: flt(item_dict.get((d.item_code, d.sales_order, d.warehouse),
+										{}).get("qty")) + flt(d.planned_qty),
 				"bom_no"			: d.bom_no,
 				"description"		: d.description,
 				"stock_uom"			: d.stock_uom,
 				"company"			: self.doc.company,
 				"wip_warehouse"		: "",
-				"fg_warehouse"		: "",
+				"fg_warehouse"		: d.warehouse,
 				"status"			: "Draft",
 			}
 		return bom_dict, item_dict
 		
 	def create_production_order(self, items):
 		"""Create production order. Called from Production Planning Tool"""
+		from manufacturing.doctype.production_order.production_order import OverProductionError
 
 		pro_list = []
-		for item_so in items:
-			pro_doc = Document('Production Order')
-			pro_doc.production_item = item_so[0]
-			pro_doc.sales_order = item_so[1]
-			for key in items[item_so]:
-				pro_doc.fields[key] = items[item_so][key]
+		for key in items:
+			pro = webnotes.new_bean("Production Order")
+			pro.doc.fields.update(items[key])
 			
-			pro_doc.save(new = 1)
-			
-			get_obj("Production Order", pro_doc.name).validate_production_order_against_so()
-			pro_list.append(pro_doc.name)
+			webnotes.mute_messages = True
+			try:
+				pro.insert()
+				pro_list.append(pro.doc.name)
+			except OverProductionError, e:
+				pass
+				
+			webnotes.mute_messages = False
 			
 		return pro_list
 
 	def download_raw_materials(self):
 		""" Create csv data for required raw material to produce finished goods"""
+		self.validate_data()
 		bom_dict = self.get_distinct_items_and_boms()[0]
 		self.get_raw_materials(bom_dict)
 		return self.get_csv()
@@ -293,12 +290,17 @@
 			Raise Material Request if projected qty is less than qty required
 			Requested qty should be shortage qty considering minimum order qty
 		"""
+		self.validate_data()
 		if not self.doc.purchase_request_for_warehouse:
 			webnotes.msgprint("Please enter Warehouse for which Material Request will be raised",
 			 	raise_exception=1)
 			
-		bom_dict = self.get_distinct_items_and_boms()[0]
+		bom_dict = self.get_distinct_items_and_boms()[0]		
 		self.get_raw_materials(bom_dict)
+		
+		if not self.item_dict:
+			return
+		
 		item_projected_qty = self.get_projected_qty()
 		
 		from accounts.utils import get_fiscal_year
@@ -365,7 +367,7 @@
 			if purchase_request_list:
 				pur_req = ["""<a href="#Form/Material Request/%s" target="_blank">%s</a>""" % \
 					(p, p) for p in purchase_request_list]
-				webnotes.msgprint("Following Material Request created successfully: \n%s" % 
+				webnotes.msgprint("Material Request(s) created: \n%s" % 
 					"\n".join(pur_req))
 		else:
 			webnotes.msgprint("Nothing to request")
diff --git a/manufacturing/doctype/production_planning_tool/production_planning_tool.txt b/manufacturing/doctype/production_planning_tool/production_planning_tool.txt
index 401b172..c3a1d8f 100644
--- a/manufacturing/doctype/production_planning_tool/production_planning_tool.txt
+++ b/manufacturing/doctype/production_planning_tool/production_planning_tool.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-21 12:03:47", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:51:19", 
+  "modified": "2013-08-08 12:01:02", 
   "modified_by": "Administrator", 
   "owner": "jai@webnotestech.com"
  }, 
@@ -34,6 +34,7 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 0, 
+  "role": "Manufacturing User", 
   "submit": 0, 
   "write": 1
  }, 
@@ -117,47 +118,18 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "clear_so_table", 
-  "fieldtype": "Button", 
-  "label": "Clear Table", 
-  "options": "clear_so_table"
- }, 
- {
-  "description": "Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.", 
-  "doctype": "DocField", 
-  "fieldname": "create_production_orders", 
+  "fieldname": "items_for_production", 
   "fieldtype": "Section Break", 
-  "label": "Create Production Orders"
+  "label": "Select Items"
  }, 
  {
-  "description": "Pull items from Sales Order mentioned in the above table.", 
   "doctype": "DocField", 
   "fieldname": "get_items_from_so", 
   "fieldtype": "Button", 
-  "label": "Get Items", 
+  "label": "Get Items From Sales Orders", 
   "options": "get_items_from_so"
  }, 
  {
-  "doctype": "DocField", 
-  "fieldname": "pp_details", 
-  "fieldtype": "Table", 
-  "label": "Production Plan Items", 
-  "options": "Production Plan Item"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "clear_item_table", 
-  "fieldtype": "Button", 
-  "label": "Clear Table", 
-  "options": "clear_item_table"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "section_break3", 
-  "fieldtype": "Section Break", 
-  "options": "Simple"
- }, 
- {
   "default": "1", 
   "description": "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.", 
   "doctype": "DocField", 
@@ -168,36 +140,31 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "cb5", 
-  "fieldtype": "Column Break", 
-  "width": "50%"
+  "fieldname": "pp_details", 
+  "fieldtype": "Table", 
+  "label": "Production Plan Items", 
+  "options": "Production Plan Item"
+ }, 
+ {
+  "description": "Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.", 
+  "doctype": "DocField", 
+  "fieldname": "create_production_orders", 
+  "fieldtype": "Section Break", 
+  "label": "Production Orders"
  }, 
  {
   "description": "Separate production order will be created for each finished good item.", 
   "doctype": "DocField", 
   "fieldname": "raise_production_order", 
   "fieldtype": "Button", 
-  "label": "Raise Production Order", 
+  "label": "Create Production Orders", 
   "options": "raise_production_order"
  }, 
  {
   "doctype": "DocField", 
   "fieldname": "sb5", 
   "fieldtype": "Section Break", 
-  "label": "Materials Requirement Planning (MRP)"
- }, 
- {
-  "description": "Download a report containing all raw materials with their latest inventory status", 
-  "doctype": "DocField", 
-  "fieldname": "download_materials_required", 
-  "fieldtype": "Button", 
-  "label": "Download Materials Required"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "column_break6", 
-  "fieldtype": "Column Break", 
-  "width": "50%"
+  "label": "Material Requirement"
  }, 
  {
   "doctype": "DocField", 
@@ -211,19 +178,17 @@
   "doctype": "DocField", 
   "fieldname": "raise_purchase_request", 
   "fieldtype": "Button", 
-  "label": "Raise Material Request", 
+  "label": "Create Material Requests", 
   "options": "raise_purchase_request"
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
+  "description": "Download a report containing all raw materials with their latest inventory status", 
+  "doctype": "DocField", 
+  "fieldname": "download_materials_required", 
+  "fieldtype": "Button", 
+  "label": "Download Materials Required"
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "Manufacturing User"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "Manufacturing Manager"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/manufacturing/doctype/workstation/workstation.js b/manufacturing/doctype/workstation/workstation.js
index 3cad944..e8c3c69 100644
--- a/manufacturing/doctype/workstation/workstation.js
+++ b/manufacturing/doctype/workstation/workstation.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
  
 
diff --git a/manufacturing/doctype/workstation/workstation.py b/manufacturing/doctype/workstation/workstation.py
index 96f694b..35e2c1f 100644
--- a/manufacturing/doctype/workstation/workstation.py
+++ b/manufacturing/doctype/workstation/workstation.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/manufacturing/page/manufacturing_home/manufacturing_home.js b/manufacturing/page/manufacturing_home/manufacturing_home.js
index 7085f9a..a2a4eaa 100644
--- a/manufacturing/page/manufacturing_home/manufacturing_home.js
+++ b/manufacturing/page/manufacturing_home/manufacturing_home.js
@@ -1,5 +1,5 @@
-// ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-// GNU General Public License. See "license.txt"
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt"
 
 wn.module_page["Manufacturing"] = [
 	{
@@ -65,8 +65,24 @@
 		icon: "icon-list",
 		items: [
 			{
+				"label":wn._("Open Production Orders"),
+				route: "query-report/Open Production Orders",
+				doctype:"Production Order"
+			},
+			{
+				"label":wn._("Production Orders in Progress"),
+				route: "query-report/Production Orders in Progress",
+				doctype:"Production Order"
+			},
+			{
 				"label":wn._("Issued Items Against Production Order"),
 				route: "query-report/Issued Items Against Production Order",
+				doctype:"Production Order"
+			},
+			{
+				"label":wn._("Completed Production Orders"),
+				route: "query-report/Completed Production Orders",
+				doctype:"Production Order"
 			},
 		]
 	}
diff --git a/utilities/page/markdown_reference/markdown_reference.css b/manufacturing/report/completed_production_orders/__init__.py
similarity index 100%
copy from utilities/page/markdown_reference/markdown_reference.css
copy to manufacturing/report/completed_production_orders/__init__.py
diff --git a/manufacturing/report/completed_production_orders/completed_production_orders.txt b/manufacturing/report/completed_production_orders/completed_production_orders.txt
new file mode 100644
index 0000000..facda7e
--- /dev/null
+++ b/manufacturing/report/completed_production_orders/completed_production_orders.txt
@@ -0,0 +1,22 @@
+[
+ {
+  "creation": "2013-08-12 12:44:27", 
+  "docstatus": 0, 
+  "modified": "2013-08-12 12:44:27", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "doctype": "Report", 
+  "is_standard": "Yes", 
+  "name": "__common__", 
+  "query": "SELECT\n  `tabProduction Order`.name as \"Production Order:Link/Production Order:200\",\n  `tabProduction Order`.creation as \"Date:Date:120\",\n  `tabProduction Order`.production_item as \"Item:Link/Item:150\",\n  `tabProduction Order`.qty as \"To Produce:Int:100\",\n  `tabProduction Order`.produced_qty as \"Produced:Int:100\"\nFROM\n  `tabProduction Order`\nWHERE\n  `tabProduction Order`.docstatus=1\n  AND ifnull(`tabProduction Order`.produced_qty,0) = `tabProduction Order`.qty", 
+  "ref_doctype": "Production Order", 
+  "report_name": "Completed Production Orders", 
+  "report_type": "Query Report"
+ }, 
+ {
+  "doctype": "Report", 
+  "name": "Completed Production Orders"
+ }
+]
\ No newline at end of file
diff --git a/utilities/page/markdown_reference/markdown_reference.css b/manufacturing/report/open_production_orders/__init__.py
similarity index 100%
copy from utilities/page/markdown_reference/markdown_reference.css
copy to manufacturing/report/open_production_orders/__init__.py
diff --git a/manufacturing/report/open_production_orders/open_production_orders.txt b/manufacturing/report/open_production_orders/open_production_orders.txt
new file mode 100644
index 0000000..f92bdd3
--- /dev/null
+++ b/manufacturing/report/open_production_orders/open_production_orders.txt
@@ -0,0 +1,22 @@
+[
+ {
+  "creation": "2013-08-12 12:32:30", 
+  "docstatus": 0, 
+  "modified": "2013-08-12 12:42:29", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "doctype": "Report", 
+  "is_standard": "Yes", 
+  "name": "__common__", 
+  "query": "SELECT\n  `tabProduction Order`.name as \"Production Order:Link/Production Order:200\",\n  `tabProduction Order`.creation as \"Date:Date:120\",\n  `tabProduction Order`.production_item as \"Item:Link/Item:150\",\n  `tabProduction Order`.qty as \"To Produce:Int:100\",\n  `tabProduction Order`.produced_qty as \"Produced:Int:100\"\nFROM\n  `tabProduction Order`\nWHERE\n  `tabProduction Order`.docstatus=1\n  AND ifnull(`tabProduction Order`.produced_qty,0) < `tabProduction Order`.qty\n  AND NOT EXISTS (SELECT name from `tabStock Entry` where production_order =`tabProduction Order`.name) ", 
+  "ref_doctype": "Production Order", 
+  "report_name": "Open Production Orders", 
+  "report_type": "Query Report"
+ }, 
+ {
+  "doctype": "Report", 
+  "name": "Open Production Orders"
+ }
+]
\ No newline at end of file
diff --git a/utilities/page/markdown_reference/markdown_reference.css b/manufacturing/report/production_orders_in_progress/__init__.py
similarity index 100%
copy from utilities/page/markdown_reference/markdown_reference.css
copy to manufacturing/report/production_orders_in_progress/__init__.py
diff --git a/manufacturing/report/production_orders_in_progress/production_orders_in_progress.txt b/manufacturing/report/production_orders_in_progress/production_orders_in_progress.txt
new file mode 100644
index 0000000..3d3493f
--- /dev/null
+++ b/manufacturing/report/production_orders_in_progress/production_orders_in_progress.txt
@@ -0,0 +1,22 @@
+[
+ {
+  "creation": "2013-08-12 12:43:47", 
+  "docstatus": 0, 
+  "modified": "2013-08-12 12:43:47", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "doctype": "Report", 
+  "is_standard": "Yes", 
+  "name": "__common__", 
+  "query": "SELECT\n  `tabProduction Order`.name as \"Production Order:Link/Production Order:200\",\n  `tabProduction Order`.creation as \"Date:Date:120\",\n  `tabProduction Order`.production_item as \"Item:Link/Item:150\",\n  `tabProduction Order`.qty as \"To Produce:Int:100\",\n  `tabProduction Order`.produced_qty as \"Produced:Int:100\"\nFROM\n  `tabProduction Order`\nWHERE\n  `tabProduction Order`.docstatus=1\n  AND ifnull(`tabProduction Order`.produced_qty,0) < `tabProduction Order`.qty\n  AND EXISTS (SELECT name from `tabStock Entry` where production_order =`tabProduction Order`.name) ", 
+  "ref_doctype": "Production Order", 
+  "report_name": "Production Orders in Progress", 
+  "report_type": "Query Report"
+ }, 
+ {
+  "doctype": "Report", 
+  "name": "Production Orders in Progress"
+ }
+]
\ No newline at end of file
diff --git a/patches/april_2012/after_sync_cleanup.py b/patches/april_2012/after_sync_cleanup.py
index 1856ee9..5e93ce1 100644
--- a/patches/april_2012/after_sync_cleanup.py
+++ b/patches/april_2012/after_sync_cleanup.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/april_2012/delete_about_contact.py b/patches/april_2012/delete_about_contact.py
index 4bd10d7..2655e3c 100644
--- a/patches/april_2012/delete_about_contact.py
+++ b/patches/april_2012/delete_about_contact.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/april_2012/naming_series_patch.py b/patches/april_2012/naming_series_patch.py
index 434d1a4..8b086f7 100644
--- a/patches/april_2012/naming_series_patch.py
+++ b/patches/april_2012/naming_series_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/april_2012/reload_c_form.py b/patches/april_2012/reload_c_form.py
index 0b10904..afb8b6a 100644
--- a/patches/april_2012/reload_c_form.py
+++ b/patches/april_2012/reload_c_form.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/april_2012/remove_default_from_rv_detail.py b/patches/april_2012/remove_default_from_rv_detail.py
index 9ce5e24..7716e6c 100644
--- a/patches/april_2012/remove_default_from_rv_detail.py
+++ b/patches/april_2012/remove_default_from_rv_detail.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/april_2012/repost_stock_for_posting_time.py b/patches/april_2012/repost_stock_for_posting_time.py
index d9cbbe5..0626205 100644
--- a/patches/april_2012/repost_stock_for_posting_time.py
+++ b/patches/april_2012/repost_stock_for_posting_time.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/april_2012/serial_no_fixes.py b/patches/april_2012/serial_no_fixes.py
index be6fbeb..4fef016 100644
--- a/patches/april_2012/serial_no_fixes.py
+++ b/patches/april_2012/serial_no_fixes.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/april_2012/update_appraisal_permission.py b/patches/april_2012/update_appraisal_permission.py
index 68002ba..1c07822 100644
--- a/patches/april_2012/update_appraisal_permission.py
+++ b/patches/april_2012/update_appraisal_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/april_2012/update_permlevel_in_address.py b/patches/april_2012/update_permlevel_in_address.py
index 96d5adc..a4b84de 100644
--- a/patches/april_2012/update_permlevel_in_address.py
+++ b/patches/april_2012/update_permlevel_in_address.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/april_2012/update_role_in_address.py b/patches/april_2012/update_role_in_address.py
index 788aa7b..33fecbe 100644
--- a/patches/april_2012/update_role_in_address.py
+++ b/patches/april_2012/update_role_in_address.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/april_2013/p01_update_serial_no_valuation_rate.py b/patches/april_2013/p01_update_serial_no_valuation_rate.py
index 2ea0c26..bebb956 100644
--- a/patches/april_2013/p01_update_serial_no_valuation_rate.py
+++ b/patches/april_2013/p01_update_serial_no_valuation_rate.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 from webnotes.utils import cstr
 from stock.stock_ledger import update_entries_after
diff --git a/patches/april_2013/p02_add_country_and_currency.py b/patches/april_2013/p02_add_country_and_currency.py
index ae48a4d..41a1e33 100644
--- a/patches/april_2013/p02_add_country_and_currency.py
+++ b/patches/april_2013/p02_add_country_and_currency.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	if not webnotes.conn.exists("Country", "Aruba"):
diff --git a/patches/april_2013/p03_fixes_for_lead_in_quotation.py b/patches/april_2013/p03_fixes_for_lead_in_quotation.py
index 1b9650b..6213454 100644
--- a/patches/april_2013/p03_fixes_for_lead_in_quotation.py
+++ b/patches/april_2013/p03_fixes_for_lead_in_quotation.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.conn.sql("""update `tabQuotation` set customer_name = organization 
diff --git a/patches/april_2013/p04_reverse_modules_list.py b/patches/april_2013/p04_reverse_modules_list.py
index 1751d36..4652fba 100644
--- a/patches/april_2013/p04_reverse_modules_list.py
+++ b/patches/april_2013/p04_reverse_modules_list.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, json
 import webnotes.utils
 
diff --git a/patches/april_2013/p04_update_role_in_pages.py b/patches/april_2013/p04_update_role_in_pages.py
index 3959044..1f89d81 100644
--- a/patches/april_2013/p04_update_role_in_pages.py
+++ b/patches/april_2013/p04_update_role_in_pages.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 import webnotes.model
 def execute():
diff --git a/patches/april_2013/p05_fixes_in_reverse_modules.py b/patches/april_2013/p05_fixes_in_reverse_modules.py
index 41e2e5e..c5a6974 100644
--- a/patches/april_2013/p05_fixes_in_reverse_modules.py
+++ b/patches/april_2013/p05_fixes_in_reverse_modules.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, json
 import webnotes.utils
 
diff --git a/patches/april_2013/p05_update_file_data.py b/patches/april_2013/p05_update_file_data.py
index 0168de6..e03abc6 100644
--- a/patches/april_2013/p05_update_file_data.py
+++ b/patches/april_2013/p05_update_file_data.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, webnotes.utils, os
 
 def execute():
diff --git a/patches/april_2013/p06_default_cost_center.py b/patches/april_2013/p06_default_cost_center.py
index 4aaa7d5..1449034 100644
--- a/patches/april_2013/p06_default_cost_center.py
+++ b/patches/april_2013/p06_default_cost_center.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/april_2013/p06_update_file_size.py b/patches/april_2013/p06_update_file_size.py
index 760c3cb..6879625 100644
--- a/patches/april_2013/p06_update_file_size.py
+++ b/patches/april_2013/p06_update_file_size.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, os, webnotes.utils
 
 def execute():
diff --git a/patches/april_2013/p07_rename_cost_center_other_charges.py b/patches/april_2013/p07_rename_cost_center_other_charges.py
index c3c9491..ea5168f 100644
--- a/patches/april_2013/p07_rename_cost_center_other_charges.py
+++ b/patches/april_2013/p07_rename_cost_center_other_charges.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/april_2013/p07_update_file_data_2.py b/patches/april_2013/p07_update_file_data_2.py
index 548ba6c..fad612e 100644
--- a/patches/april_2013/p07_update_file_data_2.py
+++ b/patches/april_2013/p07_update_file_data_2.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	from patches.april_2013.p05_update_file_data import update_file_list, get_single_doctypes
diff --git a/patches/april_2013/rebuild_sales_browser.py b/patches/april_2013/rebuild_sales_browser.py
index 917ae68..867ac35 100644
--- a/patches/april_2013/rebuild_sales_browser.py
+++ b/patches/april_2013/rebuild_sales_browser.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	from patches.january_2013 import rebuild_tree
diff --git a/patches/august_2012/change_profile_permission.py b/patches/august_2012/change_profile_permission.py
index 7e945d5..5944c03 100644
--- a/patches/august_2012/change_profile_permission.py
+++ b/patches/august_2012/change_profile_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/august_2012/repost_billed_amt.py b/patches/august_2012/repost_billed_amt.py
index 4ff7afb..b545c2e 100644
--- a/patches/august_2012/repost_billed_amt.py
+++ b/patches/august_2012/repost_billed_amt.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/august_2012/task_allocated_to_assigned.py b/patches/august_2012/task_allocated_to_assigned.py
index 8485939..5d736bf 100644
--- a/patches/august_2012/task_allocated_to_assigned.py
+++ b/patches/august_2012/task_allocated_to_assigned.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 
diff --git a/utilities/page/markdown_reference/markdown_reference.css b/patches/august_2013/__init__.py
similarity index 100%
copy from utilities/page/markdown_reference/markdown_reference.css
copy to patches/august_2013/__init__.py
diff --git a/patches/august_2013/p01_hr_settings.py b/patches/august_2013/p01_hr_settings.py
new file mode 100644
index 0000000..d34ef52
--- /dev/null
+++ b/patches/august_2013/p01_hr_settings.py
@@ -0,0 +1,20 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+def execute():
+	webnotes.reload_doc("hr", "doctype", "hr_settings")
+	webnotes.reload_doc("setup", "doctype", "global_defaults")
+	
+	hr = webnotes.bean("HR Settings", "HR Settings")
+	hr.doc.emp_created_by = webnotes.conn.get_value("Global Defaults", "Global Defaults", "emp_created_by")
+	
+	if webnotes.conn.sql("""select name from `tabSalary Slip` where docstatus=1 limit 1"""):
+		hr.doc.include_holidays_in_total_working_days = 1
+	
+	hr.save()
+	
+	webnotes.conn.sql("""delete from `tabSingles` where doctype = 'Global Defaults' 
+		and field = 'emp_created_by'""")
\ No newline at end of file
diff --git a/patches/august_2013/p02_rename_price_list.py b/patches/august_2013/p02_rename_price_list.py
new file mode 100644
index 0000000..a66a0c2
--- /dev/null
+++ b/patches/august_2013/p02_rename_price_list.py
@@ -0,0 +1,38 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+def execute():
+	for t in [
+			("Supplier Quotation", "price_list_name", "buying_price_list"),
+			("Purchase Order", "price_list_name", "buying_price_list"),
+			("Purchase Invoice", "price_list_name", "buying_price_list"),
+			("Purchase Receipt", "price_list_name", "buying_price_list"),
+			("Quotation", "price_list_name", "selling_price_list"),
+			("Sales Order", "price_list_name", "selling_price_list"),
+			("Delivery Note", "price_list_name", "selling_price_list"),
+			("Sales Invoice", "price_list_name", "selling_price_list"),
+			("POS Setting", "price_list_name", "selling_price_list"),
+			("Shopping Cart Price List", "price_list", "selling_price_list"),
+			("Item Price", "price_list_name", "price_list"),
+			("BOM", "price_list", "buying_price_list"),
+		]:
+		table_columns = webnotes.conn.get_table_columns(t[0])
+		if t[2] in table_columns and t[1] in table_columns:
+			# already reloaded, so copy into new column and drop old column
+			webnotes.conn.sql("""update `tab%s` set `%s`=`%s`""" % (t[0], t[2], t[1]))
+			webnotes.conn.sql("""alter table `tab%s` drop column `%s`""" % (t[0], t[1]))
+		elif t[1] in table_columns:
+			webnotes.conn.sql_ddl("alter table `tab%s` change `%s` `%s` varchar(180)" % t)
+
+		webnotes.reload_doc(webnotes.conn.get_value("DocType", t[0], "module"), "DocType", t[0])
+		
+	webnotes.conn.sql("""update tabSingles set field='selling_price_list'
+		where field='price_list_name' and doctype='Selling Settings'""")
+	
+	webnotes.reload_doc("Selling", "DocType", "Selling Settings")
+	webnotes.bean("Selling Settings").save()
+	
+	
diff --git a/patches/august_2013/p03_pos_setting_replace_customer_account.py b/patches/august_2013/p03_pos_setting_replace_customer_account.py
new file mode 100644
index 0000000..c3a21e4
--- /dev/null
+++ b/patches/august_2013/p03_pos_setting_replace_customer_account.py
@@ -0,0 +1,24 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+def execute():
+	webnotes.reload_doc("accounts", "doctype", "pos_setting")
+	if "customer_account" in webnotes.conn.get_table_columns("POS Setting"):
+		customer_account = webnotes.conn.sql("""select customer_account, name from `tabPOS Setting` 
+			where ifnull(customer_account, '')!=''""")
+
+		for cust_acc, pos_name in customer_account:
+			customer = webnotes.conn.sql("""select master_name, account_name from `tabAccount` 
+				where name=%s""", (cust_acc), as_dict=1)
+
+			if not customer[0].master_name:
+				customer_name = webnotes.conn.get_value('Customer', customer[0].account_name, 'name')
+			else:
+				customer_name = customer[0].master_name
+
+			webnotes.conn.set_value('POS Setting', pos_name, 'customer', customer_name)
+		
+		webnotes.conn.sql_ddl("""alter table `tabPOS Setting` drop column `customer_account`""")
diff --git a/patches/august_2013/p04_employee_birthdays.py b/patches/august_2013/p04_employee_birthdays.py
new file mode 100644
index 0000000..6e8481d
--- /dev/null
+++ b/patches/august_2013/p04_employee_birthdays.py
@@ -0,0 +1,11 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+def execute():
+	for employee in webnotes.conn.sql_list("""select name from `tabEmployee` where ifnull(date_of_birth, '')!=''"""):
+		obj = webnotes.get_obj("Employee", employee)
+		obj.update_dob_event()
+		
\ No newline at end of file
diff --git a/patches/december_2012/address_title.py b/patches/december_2012/address_title.py
index fe68154..fc7d2ba 100644
--- a/patches/december_2012/address_title.py
+++ b/patches/december_2012/address_title.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/december_2012/delete_form16_print_format.py b/patches/december_2012/delete_form16_print_format.py
index 4234d65..e917112 100644
--- a/patches/december_2012/delete_form16_print_format.py
+++ b/patches/december_2012/delete_form16_print_format.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.delete_doc("Print Format", "Form 16A Print Format")
\ No newline at end of file
diff --git a/patches/december_2012/deleted_contact_address_patch.py b/patches/december_2012/deleted_contact_address_patch.py
index 3eb1b37..4143062 100644
--- a/patches/december_2012/deleted_contact_address_patch.py
+++ b/patches/december_2012/deleted_contact_address_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	"""finds references of deleted addresses and contacts and deletes these references"""
diff --git a/patches/december_2012/deprecate_tds.py b/patches/december_2012/deprecate_tds.py
index 09b378c..70ccf6d 100644
--- a/patches/december_2012/deprecate_tds.py
+++ b/patches/december_2012/deprecate_tds.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	from webnotes.model import delete_doc
diff --git a/patches/december_2012/expense_leave_reload.py b/patches/december_2012/expense_leave_reload.py
index 867a795..3a97be7 100644
--- a/patches/december_2012/expense_leave_reload.py
+++ b/patches/december_2012/expense_leave_reload.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/december_2012/file_list_rename.py b/patches/december_2012/file_list_rename.py
index 52657ac..ce4ae76 100644
--- a/patches/december_2012/file_list_rename.py
+++ b/patches/december_2012/file_list_rename.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/december_2012/fix_default_print_format.py b/patches/december_2012/fix_default_print_format.py
index e475122..df245e2 100644
--- a/patches/december_2012/fix_default_print_format.py
+++ b/patches/december_2012/fix_default_print_format.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.conn.sql("""update `tabDocType` set default_print_format=null
diff --git a/patches/december_2012/move_recent_to_memcache.py b/patches/december_2012/move_recent_to_memcache.py
index c92c487..f720ad2 100644
--- a/patches/december_2012/move_recent_to_memcache.py
+++ b/patches/december_2012/move_recent_to_memcache.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 
 import webnotes, json
diff --git a/patches/december_2012/production_cleanup.py b/patches/december_2012/production_cleanup.py
index 5880448..53cce62 100644
--- a/patches/december_2012/production_cleanup.py
+++ b/patches/december_2012/production_cleanup.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/december_2012/production_order_naming_series.py b/patches/december_2012/production_order_naming_series.py
index df011cb..a175367 100644
--- a/patches/december_2012/production_order_naming_series.py
+++ b/patches/december_2012/production_order_naming_series.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/december_2012/rebuild_item_group_tree.py b/patches/december_2012/rebuild_item_group_tree.py
index 1dfac38..1fd2801 100644
--- a/patches/december_2012/rebuild_item_group_tree.py
+++ b/patches/december_2012/rebuild_item_group_tree.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/december_2012/remove_quotation_next_contact.py b/patches/december_2012/remove_quotation_next_contact.py
index d7e0dc7..da20449 100644
--- a/patches/december_2012/remove_quotation_next_contact.py
+++ b/patches/december_2012/remove_quotation_next_contact.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 
diff --git a/patches/december_2012/replace_createlocal.py b/patches/december_2012/replace_createlocal.py
index c6f4bae..0054e59 100644
--- a/patches/december_2012/replace_createlocal.py
+++ b/patches/december_2012/replace_createlocal.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	webnotes.conn.sql("""update `tabCustom Script` 
diff --git a/patches/december_2012/repost_ordered_qty.py b/patches/december_2012/repost_ordered_qty.py
index 4b046f1..2e3c690 100644
--- a/patches/december_2012/repost_ordered_qty.py
+++ b/patches/december_2012/repost_ordered_qty.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	from webnotes.utils import flt
diff --git a/patches/december_2012/repost_projected_qty.py b/patches/december_2012/repost_projected_qty.py
index 4e4f522..d4cf475 100644
--- a/patches/december_2012/repost_projected_qty.py
+++ b/patches/december_2012/repost_projected_qty.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	webnotes.conn.sql("""update `tabBin` 
diff --git a/patches/december_2012/stock_entry_cleanup.py b/patches/december_2012/stock_entry_cleanup.py
index 728e80a..bd8beb3 100644
--- a/patches/december_2012/stock_entry_cleanup.py
+++ b/patches/december_2012/stock_entry_cleanup.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	# removed following fields
diff --git a/patches/december_2012/update_print_width.py b/patches/december_2012/update_print_width.py
index a808d95..f5a05e4 100644
--- a/patches/december_2012/update_print_width.py
+++ b/patches/december_2012/update_print_width.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/december_2012/website_cache_refactor.py b/patches/december_2012/website_cache_refactor.py
index 3c157bd..33f10e1 100644
--- a/patches/december_2012/website_cache_refactor.py
+++ b/patches/december_2012/website_cache_refactor.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 
 import webnotes
diff --git a/patches/february_2013/account_negative_balance.py b/patches/february_2013/account_negative_balance.py
index a57b01e..58ca862 100644
--- a/patches/february_2013/account_negative_balance.py
+++ b/patches/february_2013/account_negative_balance.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	webnotes.reload_doc("accounts", "doctype", "account")
diff --git a/patches/february_2013/fix_outstanding.py b/patches/february_2013/fix_outstanding.py
index 8afc63f..d3f6390 100644
--- a/patches/february_2013/fix_outstanding.py
+++ b/patches/february_2013/fix_outstanding.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	from webnotes.utils import flt
diff --git a/patches/february_2013/gle_floating_point_issue_revisited.py b/patches/february_2013/gle_floating_point_issue_revisited.py
index e407d50..a979dad 100644
--- a/patches/february_2013/gle_floating_point_issue_revisited.py
+++ b/patches/february_2013/gle_floating_point_issue_revisited.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	from webnotes.utils import flt
diff --git a/patches/february_2013/p01_event.py b/patches/february_2013/p01_event.py
index e6b04d3..2b26e7a 100644
--- a/patches/february_2013/p01_event.py
+++ b/patches/february_2013/p01_event.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/february_2013/p02_email_digest.py b/patches/february_2013/p02_email_digest.py
index 3753874..271804c 100644
--- a/patches/february_2013/p02_email_digest.py
+++ b/patches/february_2013/p02_email_digest.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.reload_doc("setup", "doctype", "email_digest")
diff --git a/patches/february_2013/p03_material_request.py b/patches/february_2013/p03_material_request.py
index d85710d..0b6f303 100644
--- a/patches/february_2013/p03_material_request.py
+++ b/patches/february_2013/p03_material_request.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, os, sys
 
 def execute():
diff --git a/patches/february_2013/p04_remove_old_doctypes.py b/patches/february_2013/p04_remove_old_doctypes.py
index 7e7ebf5..3b0d0ad 100644
--- a/patches/february_2013/p04_remove_old_doctypes.py
+++ b/patches/february_2013/p04_remove_old_doctypes.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, os
 
 def execute():
diff --git a/patches/february_2013/p05_leave_application.py b/patches/february_2013/p05_leave_application.py
index 88d166e..0de510a 100644
--- a/patches/february_2013/p05_leave_application.py
+++ b/patches/february_2013/p05_leave_application.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/february_2013/p08_todo_query_report.py b/patches/february_2013/p08_todo_query_report.py
index 6b25aba..7437c54 100644
--- a/patches/february_2013/p08_todo_query_report.py
+++ b/patches/february_2013/p08_todo_query_report.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/february_2013/p09_remove_cancelled_warehouses.py b/patches/february_2013/p09_remove_cancelled_warehouses.py
index 05e569a..e034c65 100644
--- a/patches/february_2013/p09_remove_cancelled_warehouses.py
+++ b/patches/february_2013/p09_remove_cancelled_warehouses.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/february_2013/p09_timesheets.py b/patches/february_2013/p09_timesheets.py
index 609dba3..ac6d44c 100644
--- a/patches/february_2013/p09_timesheets.py
+++ b/patches/february_2013/p09_timesheets.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/february_2013/payment_reconciliation_reset_values.py b/patches/february_2013/payment_reconciliation_reset_values.py
index cdb213a..f792390 100644
--- a/patches/february_2013/payment_reconciliation_reset_values.py
+++ b/patches/february_2013/payment_reconciliation_reset_values.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	webnotes.conn.sql("""update `tabSingles` set value = '' 
diff --git a/patches/february_2013/reload_bom_replace_tool_permission.py b/patches/february_2013/reload_bom_replace_tool_permission.py
index fca032e..82fea95 100644
--- a/patches/february_2013/reload_bom_replace_tool_permission.py
+++ b/patches/february_2013/reload_bom_replace_tool_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	webnotes.conn.sql("""delete from `tabDocPerm` where parent = 'BOM Replace Tool'""")
diff --git a/patches/february_2013/remove_account_utils_folder.py b/patches/february_2013/remove_account_utils_folder.py
index 5d0313b..4f40ae9 100644
--- a/patches/february_2013/remove_account_utils_folder.py
+++ b/patches/february_2013/remove_account_utils_folder.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	from webnotes.utils import get_base_path
 	import shutil
diff --git a/patches/february_2013/remove_gl_mapper.py b/patches/february_2013/remove_gl_mapper.py
index 7d248d3..05e2ed5 100644
--- a/patches/february_2013/remove_gl_mapper.py
+++ b/patches/february_2013/remove_gl_mapper.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	try:
diff --git a/patches/february_2013/repost_reserved_qty.py b/patches/february_2013/repost_reserved_qty.py
index 7d790da..3a3353f 100644
--- a/patches/february_2013/repost_reserved_qty.py
+++ b/patches/february_2013/repost_reserved_qty.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.conn.auto_commit_on_many_writes = 1
diff --git a/patches/february_2013/update_company_in_leave_application.py b/patches/february_2013/update_company_in_leave_application.py
index be07cb8..96f3bb7 100644
--- a/patches/february_2013/update_company_in_leave_application.py
+++ b/patches/february_2013/update_company_in_leave_application.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	webnotes.reload_doc("hr", "doctype", "leave_application")
diff --git a/patches/january_2013/change_patch_structure.py b/patches/january_2013/change_patch_structure.py
index 1370cdd..112d694 100644
--- a/patches/january_2013/change_patch_structure.py
+++ b/patches/january_2013/change_patch_structure.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/january_2013/enable_currencies.py b/patches/january_2013/enable_currencies.py
index ed9860f..9dfe6b4 100644
--- a/patches/january_2013/enable_currencies.py
+++ b/patches/january_2013/enable_currencies.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/january_2013/file_list_rename_returns.py b/patches/january_2013/file_list_rename_returns.py
index f897d5c..2325da5 100644
--- a/patches/january_2013/file_list_rename_returns.py
+++ b/patches/january_2013/file_list_rename_returns.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 from webnotes.utils import get_base_path
 import os
diff --git a/patches/january_2013/give_report_permission_on_read.py b/patches/january_2013/give_report_permission_on_read.py
index d9496fb..2e67a77 100644
--- a/patches/january_2013/give_report_permission_on_read.py
+++ b/patches/january_2013/give_report_permission_on_read.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.conn.sql("""update tabDocPerm set `report`=`read`
diff --git a/patches/january_2013/holiday_list_patch.py b/patches/january_2013/holiday_list_patch.py
index 714c0e8..f7f6360 100644
--- a/patches/january_2013/holiday_list_patch.py
+++ b/patches/january_2013/holiday_list_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	for name in webnotes.conn.sql("""select name from `tabHoliday List`"""):
diff --git a/patches/january_2013/purchase_price_list.py b/patches/january_2013/purchase_price_list.py
index 419e709..89509cf 100644
--- a/patches/january_2013/purchase_price_list.py
+++ b/patches/january_2013/purchase_price_list.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/january_2013/rebuild_tree.py b/patches/january_2013/rebuild_tree.py
index 7552090..4cc3118 100644
--- a/patches/january_2013/rebuild_tree.py
+++ b/patches/january_2013/rebuild_tree.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	from webnotes.utils.nestedset import rebuild_tree
diff --git a/patches/january_2013/reload_print_format.py b/patches/january_2013/reload_print_format.py
index f757dcf..c468b48 100644
--- a/patches/january_2013/reload_print_format.py
+++ b/patches/january_2013/reload_print_format.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	from webnotes.modules.import_file import import_files
 	import_files([["selling", "Print Format", "Quotation Classic"], 
diff --git a/patches/january_2013/remove_bad_permissions.py b/patches/january_2013/remove_bad_permissions.py
index 58d5de2..01de101 100644
--- a/patches/january_2013/remove_bad_permissions.py
+++ b/patches/january_2013/remove_bad_permissions.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/january_2013/remove_landed_cost_master.py b/patches/january_2013/remove_landed_cost_master.py
index 01eefb4..d4bff86 100644
--- a/patches/january_2013/remove_landed_cost_master.py
+++ b/patches/january_2013/remove_landed_cost_master.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	webnotes.delete_doc("DocType", "Landed Cost Master")
diff --git a/patches/january_2013/remove_tds_entry_from_gl_mapper.py b/patches/january_2013/remove_tds_entry_from_gl_mapper.py
index dcdfe0c..f058ebc 100644
--- a/patches/january_2013/remove_tds_entry_from_gl_mapper.py
+++ b/patches/january_2013/remove_tds_entry_from_gl_mapper.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	return
 	from webnotes.modules.import_file import import_file
diff --git a/patches/january_2013/remove_unwanted_permission.py b/patches/january_2013/remove_unwanted_permission.py
index 7053d9f..48b1bab 100644
--- a/patches/january_2013/remove_unwanted_permission.py
+++ b/patches/january_2013/remove_unwanted_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	for dt in webnotes.conn.sql("""select name, issingle from tabDocType"""):
diff --git a/patches/january_2013/report_permission.py b/patches/january_2013/report_permission.py
index 8f90e87..9b3bdd2 100644
--- a/patches/january_2013/report_permission.py
+++ b/patches/january_2013/report_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.reload_doc("core", "doctype", "docperm")
diff --git a/patches/january_2013/stock_reconciliation_patch.py b/patches/january_2013/stock_reconciliation_patch.py
index 9a25ffd..8ffbc4f 100644
--- a/patches/january_2013/stock_reconciliation_patch.py
+++ b/patches/january_2013/stock_reconciliation_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/january_2013/tabsessions_to_myisam.py b/patches/january_2013/tabsessions_to_myisam.py
index 23d5562..8d303ff 100644
--- a/patches/january_2013/tabsessions_to_myisam.py
+++ b/patches/january_2013/tabsessions_to_myisam.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	webnotes.conn.commit()
diff --git a/patches/january_2013/update_closed_on.py b/patches/january_2013/update_closed_on.py
index 138549a..94122d7 100644
--- a/patches/january_2013/update_closed_on.py
+++ b/patches/january_2013/update_closed_on.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/january_2013/update_country_info.py b/patches/january_2013/update_country_info.py
index d0619f3..398887b 100644
--- a/patches/january_2013/update_country_info.py
+++ b/patches/january_2013/update_country_info.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 
 import webnotes
diff --git a/patches/january_2013/update_fraction_for_usd.py b/patches/january_2013/update_fraction_for_usd.py
index f90f865..0780ce9 100644
--- a/patches/january_2013/update_fraction_for_usd.py
+++ b/patches/january_2013/update_fraction_for_usd.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	webnotes.conn.sql("""update `tabCurrency` set fraction = 'Cent' where fraction = 'Cent[D]'""")
\ No newline at end of file
diff --git a/patches/january_2013/update_number_format.py b/patches/january_2013/update_number_format.py
index 96284a6..e4e0ad6 100644
--- a/patches/january_2013/update_number_format.py
+++ b/patches/january_2013/update_number_format.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 
 import webnotes
diff --git a/patches/july_2012/address_contact_perms.py b/patches/july_2012/address_contact_perms.py
index 882cf72..8c41dbc 100644
--- a/patches/july_2012/address_contact_perms.py
+++ b/patches/july_2012/address_contact_perms.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/july_2012/auth_table.py b/patches/july_2012/auth_table.py
index 9700495..718243d6 100644
--- a/patches/july_2012/auth_table.py
+++ b/patches/july_2012/auth_table.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 def execute():
diff --git a/patches/july_2012/bin_permission.py b/patches/july_2012/bin_permission.py
index d48460c..3f9b65c 100644
--- a/patches/july_2012/bin_permission.py
+++ b/patches/july_2012/bin_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/july_2012/default_freeze_account.py b/patches/july_2012/default_freeze_account.py
index ddc025c..5255aa0 100644
--- a/patches/july_2012/default_freeze_account.py
+++ b/patches/july_2012/default_freeze_account.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/july_2012/deprecate_bulk_rename.py b/patches/july_2012/deprecate_bulk_rename.py
index 06f1a21..5cb25a7 100644
--- a/patches/july_2012/deprecate_bulk_rename.py
+++ b/patches/july_2012/deprecate_bulk_rename.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/july_2012/deprecate_import_data_control.py b/patches/july_2012/deprecate_import_data_control.py
index d0a92a0..f060587 100644
--- a/patches/july_2012/deprecate_import_data_control.py
+++ b/patches/july_2012/deprecate_import_data_control.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	"""
diff --git a/patches/july_2012/packing_list_cleanup_and_serial_no.py b/patches/july_2012/packing_list_cleanup_and_serial_no.py
index e65ae99..ad3863e 100644
--- a/patches/july_2012/packing_list_cleanup_and_serial_no.py
+++ b/patches/july_2012/packing_list_cleanup_and_serial_no.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/july_2012/project_patch_repeat.py b/patches/july_2012/project_patch_repeat.py
index b138661..c17e9c4 100644
--- a/patches/july_2012/project_patch_repeat.py
+++ b/patches/july_2012/project_patch_repeat.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/july_2012/remove_event_role_owner_match.py b/patches/july_2012/remove_event_role_owner_match.py
index 21ee224..cd5f489 100644
--- a/patches/july_2012/remove_event_role_owner_match.py
+++ b/patches/july_2012/remove_event_role_owner_match.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/july_2012/repost_stock_due_to_wrong_packing_list.py b/patches/july_2012/repost_stock_due_to_wrong_packing_list.py
index 615d7ed..315b4ed 100644
--- a/patches/july_2012/repost_stock_due_to_wrong_packing_list.py
+++ b/patches/july_2012/repost_stock_due_to_wrong_packing_list.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 from stock.stock_ledger import update_entries_after
diff --git a/patches/july_2012/unicode_conf.py b/patches/july_2012/unicode_conf.py
index 24ceed4..cbbe5da 100644
--- a/patches/july_2012/unicode_conf.py
+++ b/patches/july_2012/unicode_conf.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 
 def execute():
diff --git a/patches/july_2012/update_purchase_tax.py b/patches/july_2012/update_purchase_tax.py
index 3f785e5..28f2ca7 100644
--- a/patches/july_2012/update_purchase_tax.py
+++ b/patches/july_2012/update_purchase_tax.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/july_2013/p01_remove_doctype_mappers.py b/patches/july_2013/p01_remove_doctype_mappers.py
index 8aa69b8..b914b1b 100644
--- a/patches/july_2013/p01_remove_doctype_mappers.py
+++ b/patches/july_2013/p01_remove_doctype_mappers.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.conn.sql("""drop table if exists `tabDocType Mapper`""")
diff --git a/patches/july_2013/p01_same_sales_rate_patch.py b/patches/july_2013/p01_same_sales_rate_patch.py
new file mode 100644
index 0000000..ce5b1f8
--- /dev/null
+++ b/patches/july_2013/p01_same_sales_rate_patch.py
@@ -0,0 +1,10 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+def execute():
+	import webnotes
+	webnotes.reload_doc("setup", "doctype", "global_defaults")
+	
+	gd = webnotes.bean('Global Defaults')
+	gd.doc.maintain_same_sales_rate = 1
+	gd.save()
\ No newline at end of file
diff --git a/patches/july_2013/p02_copy_shipping_address.py b/patches/july_2013/p02_copy_shipping_address.py
index c73f93d..2fa195f 100644
--- a/patches/july_2013/p02_copy_shipping_address.py
+++ b/patches/july_2013/p02_copy_shipping_address.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	webnotes.reload_doc("stock", "doctype", "delivery_note")
diff --git a/patches/july_2013/p03_cost_center_company.py b/patches/july_2013/p03_cost_center_company.py
index 22072ae..5cd44b7 100644
--- a/patches/july_2013/p03_cost_center_company.py
+++ b/patches/july_2013/p03_cost_center_company.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/july_2013/p04_merge_duplicate_leads.py b/patches/july_2013/p04_merge_duplicate_leads.py
index d4e56f6..de37548 100644
--- a/patches/july_2013/p04_merge_duplicate_leads.py
+++ b/patches/july_2013/p04_merge_duplicate_leads.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 from webnotes.utils import extract_email_id
 
diff --git a/patches/july_2013/p05_custom_doctypes_in_list_view.py b/patches/july_2013/p05_custom_doctypes_in_list_view.py
new file mode 100644
index 0000000..34dec1d
--- /dev/null
+++ b/patches/july_2013/p05_custom_doctypes_in_list_view.py
@@ -0,0 +1,24 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+import webnotes
+from webnotes.model import no_value_fields
+
+def execute():
+	for dt in webnotes.conn.sql_list("""select name from `tabDocType` where custom=1"""):
+		dtbean = webnotes.bean("DocType", dt)
+		
+		if any((df.in_list_view for df in dtbean.doclist.get({"doctype": "DocField", "parent": dt}))):
+			continue
+		
+		i = 0
+		for df in dtbean.doclist.get({"doctype": "DocField", "parent": dt}):
+			if i > 5:
+				break
+			
+			if df.fieldtype not in no_value_fields:
+				df.in_list_view = 1
+				i += 1
+				
+		if i > 0:
+			dtbean.save()
\ No newline at end of file
diff --git a/patches/july_2013/p06_same_sales_rate.py b/patches/july_2013/p06_same_sales_rate.py
new file mode 100644
index 0000000..f481c66
--- /dev/null
+++ b/patches/july_2013/p06_same_sales_rate.py
@@ -0,0 +1,16 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+def execute():
+	import webnotes
+	webnotes.reload_doc("selling", "doctype", "selling_settings")
+	ss = webnotes.bean("Selling Settings")
+	
+	same_rate = webnotes.conn.get_value("Global Defaults", "maintain_same_sales_rate")
+
+	if same_rate or same_rate == 0:
+		ss.doc.maintain_same_sales_rate = same_rate
+	else:
+		ss.doc.maintain_same_sales_rate = 1
+
+	ss.save()
\ No newline at end of file
diff --git a/patches/july_2013/p07_repost_billed_amt_in_sales_cycle.py b/patches/july_2013/p07_repost_billed_amt_in_sales_cycle.py
new file mode 100644
index 0000000..272e455
--- /dev/null
+++ b/patches/july_2013/p07_repost_billed_amt_in_sales_cycle.py
@@ -0,0 +1,11 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+
+def execute():
+	import webnotes
+	for si in webnotes.conn.sql("""select name from `tabSales Invoice` where docstatus = 1"""):
+		webnotes.get_obj("Sales Invoice", si[0], 
+			with_children=1).update_qty(change_modified=False)
+		webnotes.conn.commit()
\ No newline at end of file
diff --git a/patches/july_2013/p08_custom_print_format_net_total_export.py b/patches/july_2013/p08_custom_print_format_net_total_export.py
new file mode 100644
index 0000000..3d4ae98
--- /dev/null
+++ b/patches/july_2013/p08_custom_print_format_net_total_export.py
@@ -0,0 +1,19 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import webnotes
+import re
+
+def execute():
+	for name, html in webnotes.conn.sql("""select name, html from `tabPrint Format` where standard='No'
+		and ifnull(html, '')!=''"""):
+			changed = False
+			for match in re.findall("(doc.net_total.*doc.conversion_rate)", html):
+				if match.replace(" ", "") == "doc.net_total/doc.conversion_rate":
+					html = html.replace(match, "doc.net_total_export")
+					changed = True
+		
+			if changed:
+				webnotes.conn.set_value("Print Format", name, "html", html)
+			
\ No newline at end of file
diff --git a/patches/july_2013/p09_remove_website_pyc.py b/patches/july_2013/p09_remove_website_pyc.py
new file mode 100644
index 0000000..afff4bb
--- /dev/null
+++ b/patches/july_2013/p09_remove_website_pyc.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+import webnotes
+import os
+
+def execute():
+	from webnotes.utils import get_base_path
+	website_py = os.path.join(get_base_path(), "app", "startup", "website.py")
+	website_pyc = os.path.join(get_base_path(), "app", "startup", "website.pyc")
+	if not os.path.exists(website_py) and os.path.exists(website_pyc):
+		os.remove(website_pyc)
\ No newline at end of file
diff --git a/patches/july_2013/p10_change_partner_user_to_website_user.py b/patches/july_2013/p10_change_partner_user_to_website_user.py
new file mode 100644
index 0000000..5578345
--- /dev/null
+++ b/patches/july_2013/p10_change_partner_user_to_website_user.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+import webnotes
+
+def execute():
+	webnotes.conn.sql("""update `tabProfile` set user_type="Website User" where user_type="Partner" """)
+	webnotes.conn.sql("""update `tabProfile` set user_type="System User" where ifnull(user_type, "")="" """)
+	
+	webnotes.conn.sql("""update `tabProfile` set user_type='System User'
+		where user_type='Website User' and exists (select name from `tabUserRole`
+			where parent=`tabProfile`.name)""")
\ No newline at end of file
diff --git a/patches/july_2013/p11_update_price_list_currency.py b/patches/july_2013/p11_update_price_list_currency.py
new file mode 100644
index 0000000..8b70b79
--- /dev/null
+++ b/patches/july_2013/p11_update_price_list_currency.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+import webnotes
+
+def execute():
+	for price_list_name in webnotes.conn.sql_list("""select name from `tabPrice List` 
+		where ifnull(currency, '')=''"""):
+			res = webnotes.conn.sql("""select distinct ref_currency from `tabItem Price`
+				where price_list_name=%s""", price_list_name)
+			if res and len(res)==1 and res[0][0]:
+				webnotes.conn.set_value("Price List", price_list_name, "currency", res[0][0])
diff --git a/patches/july_2013/restore_tree_roots.py b/patches/july_2013/restore_tree_roots.py
index ea3a991..0998393 100644
--- a/patches/july_2013/restore_tree_roots.py
+++ b/patches/july_2013/restore_tree_roots.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	from startup.install import import_defaults
 	import_defaults()
\ No newline at end of file
diff --git a/patches/june_2012/alter_tabsessions.py b/patches/june_2012/alter_tabsessions.py
index 4e0310b..29ae177 100644
--- a/patches/june_2012/alter_tabsessions.py
+++ b/patches/june_2012/alter_tabsessions.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/june_2012/barcode_in_feature_setup.py b/patches/june_2012/barcode_in_feature_setup.py
index 4e5217a..630f50f 100644
--- a/patches/june_2012/barcode_in_feature_setup.py
+++ b/patches/june_2012/barcode_in_feature_setup.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/june_2012/cms2.py b/patches/june_2012/cms2.py
index 17b7d23..a9171d7 100644
--- a/patches/june_2012/cms2.py
+++ b/patches/june_2012/cms2.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/june_2012/copy_uom_for_pur_inv_item.py b/patches/june_2012/copy_uom_for_pur_inv_item.py
index a22146c..947d110 100644
--- a/patches/june_2012/copy_uom_for_pur_inv_item.py
+++ b/patches/june_2012/copy_uom_for_pur_inv_item.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/june_2012/delete_old_parent_entries.py b/patches/june_2012/delete_old_parent_entries.py
index 6a87ff5..384df77 100644
--- a/patches/june_2012/delete_old_parent_entries.py
+++ b/patches/june_2012/delete_old_parent_entries.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	"""delete entries of child table having parent like old_par%% or ''"""
diff --git a/patches/june_2012/fetch_organization_from_lead.py b/patches/june_2012/fetch_organization_from_lead.py
index b3f1edd..85b1436 100644
--- a/patches/june_2012/fetch_organization_from_lead.py
+++ b/patches/june_2012/fetch_organization_from_lead.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/june_2012/reports_list_permission.py b/patches/june_2012/reports_list_permission.py
index 462c2f2..c70b659 100644
--- a/patches/june_2012/reports_list_permission.py
+++ b/patches/june_2012/reports_list_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	"""allow read permission to all for report list"""
diff --git a/patches/june_2012/series_unique_patch.py b/patches/june_2012/series_unique_patch.py
index b04e08e..4bea9f0 100644
--- a/patches/june_2012/series_unique_patch.py
+++ b/patches/june_2012/series_unique_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	"""add unique constraint to series table's name column"""
diff --git a/patches/june_2012/set_recurring_type.py b/patches/june_2012/set_recurring_type.py
index 7fb416e..c7d4d63 100644
--- a/patches/june_2012/set_recurring_type.py
+++ b/patches/june_2012/set_recurring_type.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/june_2012/support_ticket_autoreply.py b/patches/june_2012/support_ticket_autoreply.py
index 32e0956..a9c8d82 100644
--- a/patches/june_2012/support_ticket_autoreply.py
+++ b/patches/june_2012/support_ticket_autoreply.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	"""New Send Autoreply checkbox in Email Settings"""
diff --git a/patches/june_2013/p01_update_bom_exploded_items.py b/patches/june_2013/p01_update_bom_exploded_items.py
index f53eb5b..fe0b4ad 100644
--- a/patches/june_2013/p01_update_bom_exploded_items.py
+++ b/patches/june_2013/p01_update_bom_exploded_items.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/patches/june_2013/p02_update_project_completed.py b/patches/june_2013/p02_update_project_completed.py
index 5466662..d11c690 100644
--- a/patches/june_2013/p02_update_project_completed.py
+++ b/patches/june_2013/p02_update_project_completed.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/june_2013/p03_buying_selling_for_price_list.py b/patches/june_2013/p03_buying_selling_for_price_list.py
index 089f0be..c71646a 100644
--- a/patches/june_2013/p03_buying_selling_for_price_list.py
+++ b/patches/june_2013/p03_buying_selling_for_price_list.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 from webnotes.utils import cint
 
diff --git a/patches/june_2013/p04_fix_event_for_lead_oppty_project.py b/patches/june_2013/p04_fix_event_for_lead_oppty_project.py
index 971e4c7..af50724 100644
--- a/patches/june_2013/p04_fix_event_for_lead_oppty_project.py
+++ b/patches/june_2013/p04_fix_event_for_lead_oppty_project.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/june_2013/p05_remove_search_criteria_reports.py b/patches/june_2013/p05_remove_search_criteria_reports.py
index 48a8221..188960c 100644
--- a/patches/june_2013/p05_remove_search_criteria_reports.py
+++ b/patches/june_2013/p05_remove_search_criteria_reports.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/patches/june_2013/p05_remove_unused_doctypes.py b/patches/june_2013/p05_remove_unused_doctypes.py
index 62cf880..d75a66a 100644
--- a/patches/june_2013/p05_remove_unused_doctypes.py
+++ b/patches/june_2013/p05_remove_unused_doctypes.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/june_2013/p06_drop_unused_tables.py b/patches/june_2013/p06_drop_unused_tables.py
index baad451..18a2061 100644
--- a/patches/june_2013/p06_drop_unused_tables.py
+++ b/patches/june_2013/p06_drop_unused_tables.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/june_2013/p07_taxes_price_list_for_territory.py b/patches/june_2013/p07_taxes_price_list_for_territory.py
index 9204866..f57ecf8 100644
--- a/patches/june_2013/p07_taxes_price_list_for_territory.py
+++ b/patches/june_2013/p07_taxes_price_list_for_territory.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/june_2013/p08_shopping_cart_settings.py b/patches/june_2013/p08_shopping_cart_settings.py
index 4d5ebb3..9378c38 100644
--- a/patches/june_2013/p08_shopping_cart_settings.py
+++ b/patches/june_2013/p08_shopping_cart_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/june_2013/p09_update_global_defaults.py b/patches/june_2013/p09_update_global_defaults.py
index 0148b67..0f8131a 100644
--- a/patches/june_2013/p09_update_global_defaults.py
+++ b/patches/june_2013/p09_update_global_defaults.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/june_2013/p10_lead_address.py b/patches/june_2013/p10_lead_address.py
index f7b4a8e..fc1cbbf 100644
--- a/patches/june_2013/p10_lead_address.py
+++ b/patches/june_2013/p10_lead_address.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/mar_2012/add_fieldnames.py b/patches/mar_2012/add_fieldnames.py
index d0ea04b..52cf6b7 100644
--- a/patches/mar_2012/add_fieldnames.py
+++ b/patches/mar_2012/add_fieldnames.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # do not run this patch
 from __future__ import unicode_literals
 def execute():
diff --git a/patches/mar_2012/clean_property_setter.py b/patches/mar_2012/clean_property_setter.py
index a9c7b81..b4ad909 100644
--- a/patches/mar_2012/clean_property_setter.py
+++ b/patches/mar_2012/clean_property_setter.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 
diff --git a/patches/mar_2012/cleanup_control_panel.py b/patches/mar_2012/cleanup_control_panel.py
index 93dd769..6692bc4 100644
--- a/patches/mar_2012/cleanup_control_panel.py
+++ b/patches/mar_2012/cleanup_control_panel.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 def execute():
diff --git a/patches/mar_2012/create_custom_fields.py b/patches/mar_2012/create_custom_fields.py
index a91c765..b9fe2f0 100644
--- a/patches/mar_2012/create_custom_fields.py
+++ b/patches/mar_2012/create_custom_fields.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # do not run this patch
 from __future__ import unicode_literals
 field_list = [
diff --git a/patches/mar_2012/delete_docformat.py b/patches/mar_2012/delete_docformat.py
index 1b5b94e..b6ee2eb 100644
--- a/patches/mar_2012/delete_docformat.py
+++ b/patches/mar_2012/delete_docformat.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/mar_2012/doctype_get_refactor.py b/patches/mar_2012/doctype_get_refactor.py
index 2640229..0900b9b 100644
--- a/patches/mar_2012/doctype_get_refactor.py
+++ b/patches/mar_2012/doctype_get_refactor.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 def execute():
diff --git a/patches/mar_2012/earning_deduction_type_patch.py b/patches/mar_2012/earning_deduction_type_patch.py
index 39216d0..43a1433 100644
--- a/patches/mar_2012/earning_deduction_type_patch.py
+++ b/patches/mar_2012/earning_deduction_type_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/mar_2012/is_submittable_patch.py b/patches/mar_2012/is_submittable_patch.py
index d97f856..b2da16c 100644
--- a/patches/mar_2012/is_submittable_patch.py
+++ b/patches/mar_2012/is_submittable_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # dont run this patch
 from __future__ import unicode_literals
 def execute():
diff --git a/patches/mar_2012/pos_invoice_fix.py b/patches/mar_2012/pos_invoice_fix.py
index d359408..148b373 100644
--- a/patches/mar_2012/pos_invoice_fix.py
+++ b/patches/mar_2012/pos_invoice_fix.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	from webnotes.modules import reload_doc
diff --git a/patches/mar_2012/usertags.py b/patches/mar_2012/usertags.py
index f583b63..4cb9b14 100644
--- a/patches/mar_2012/usertags.py
+++ b/patches/mar_2012/usertags.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/march_2013/p01_c_form.py b/patches/march_2013/p01_c_form.py
index 5261d2b..54fb802 100644
--- a/patches/march_2013/p01_c_form.py
+++ b/patches/march_2013/p01_c_form.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/march_2013/p02_get_global_default.py b/patches/march_2013/p02_get_global_default.py
index 33983b5..d36d5fa 100644
--- a/patches/march_2013/p02_get_global_default.py
+++ b/patches/march_2013/p02_get_global_default.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 import webnotes.defaults
 
diff --git a/patches/march_2013/p03_rename_blog_to_blog_post.py b/patches/march_2013/p03_rename_blog_to_blog_post.py
index 69902f34..8078c84 100644
--- a/patches/march_2013/p03_rename_blog_to_blog_post.py
+++ b/patches/march_2013/p03_rename_blog_to_blog_post.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/march_2013/p03_update_buying_amount.py b/patches/march_2013/p03_update_buying_amount.py
index 92b171f..ddb52e0 100644
--- a/patches/march_2013/p03_update_buying_amount.py
+++ b/patches/march_2013/p03_update_buying_amount.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 from webnotes.utils import now_datetime
 
diff --git a/patches/march_2013/p04_pos_update_stock_check.py b/patches/march_2013/p04_pos_update_stock_check.py
index da48efe..f857031 100644
--- a/patches/march_2013/p04_pos_update_stock_check.py
+++ b/patches/march_2013/p04_pos_update_stock_check.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/march_2013/p05_payment_reconciliation.py b/patches/march_2013/p05_payment_reconciliation.py
index 7b6306b..ed818dc 100644
--- a/patches/march_2013/p05_payment_reconciliation.py
+++ b/patches/march_2013/p05_payment_reconciliation.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/march_2013/p06_remove_sales_purchase_return_tool.py b/patches/march_2013/p06_remove_sales_purchase_return_tool.py
index e907e4a..ed8fbc8 100644
--- a/patches/march_2013/p06_remove_sales_purchase_return_tool.py
+++ b/patches/march_2013/p06_remove_sales_purchase_return_tool.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/march_2013/p07_update_project_in_stock_ledger.py b/patches/march_2013/p07_update_project_in_stock_ledger.py
index ad4d639..66c86fb 100644
--- a/patches/march_2013/p07_update_project_in_stock_ledger.py
+++ b/patches/march_2013/p07_update_project_in_stock_ledger.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/march_2013/p07_update_valuation_rate.py b/patches/march_2013/p07_update_valuation_rate.py
index eaeeac1..87a2517 100644
--- a/patches/march_2013/p07_update_valuation_rate.py
+++ b/patches/march_2013/p07_update_valuation_rate.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/march_2013/p08_create_aii_accounts.py b/patches/march_2013/p08_create_aii_accounts.py
index 0156a17..03ba36c 100644
--- a/patches/march_2013/p08_create_aii_accounts.py
+++ b/patches/march_2013/p08_create_aii_accounts.py
@@ -1,6 +1,10 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.reload_doc("setup", "doctype", "company")
+	webnotes.reload_doc("accounts", "doctype", "cost_center")
 	create_chart_of_accounts_if_not_exists()
 	add_group_accounts()
 	add_ledger_accounts()
diff --git a/patches/march_2013/p09_unset_user_type_partner.py b/patches/march_2013/p09_unset_user_type_partner.py
deleted file mode 100644
index cc5cdce..0000000
--- a/patches/march_2013/p09_unset_user_type_partner.py
+++ /dev/null
@@ -1,6 +0,0 @@
-import webnotes
-
-def execute():
-	webnotes.conn.sql("""update `tabProfile` set user_type='System User'
-		where user_type='Partner' and exists (select name from `tabUserRole`
-			where parent=`tabProfile`.name)""")
\ No newline at end of file
diff --git a/patches/march_2013/p10_set_fiscal_year_for_stock.py b/patches/march_2013/p10_set_fiscal_year_for_stock.py
index c9d5202..608f188 100644
--- a/patches/march_2013/p10_set_fiscal_year_for_stock.py
+++ b/patches/march_2013/p10_set_fiscal_year_for_stock.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 from accounts.utils import get_fiscal_year, FiscalYearError
 
diff --git a/patches/march_2013/p10_update_against_expense_account.py b/patches/march_2013/p10_update_against_expense_account.py
index 3506ac4..8939514 100644
--- a/patches/march_2013/p10_update_against_expense_account.py
+++ b/patches/march_2013/p10_update_against_expense_account.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	from webnotes import get_obj
diff --git a/patches/march_2013/p11_update_attach_files.py b/patches/march_2013/p11_update_attach_files.py
index ef39ce8..5be659d 100644
--- a/patches/march_2013/p11_update_attach_files.py
+++ b/patches/march_2013/p11_update_attach_files.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/march_2013/p12_set_item_tax_rate_in_json.py b/patches/march_2013/p12_set_item_tax_rate_in_json.py
index de47c67..27fd7e8 100644
--- a/patches/march_2013/p12_set_item_tax_rate_in_json.py
+++ b/patches/march_2013/p12_set_item_tax_rate_in_json.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 import json
 
diff --git a/patches/march_2013/update_po_prevdoc_doctype.py b/patches/march_2013/update_po_prevdoc_doctype.py
index 35e7a25..745420e 100644
--- a/patches/march_2013/update_po_prevdoc_doctype.py
+++ b/patches/march_2013/update_po_prevdoc_doctype.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.conn.sql("""update `tabPurchase Order Item` set prevdoc_doctype = 'Material Request' 
diff --git a/patches/may_2012/cleanup_notification_control.py b/patches/may_2012/cleanup_notification_control.py
index 1a7730b..054f7ec 100644
--- a/patches/may_2012/cleanup_notification_control.py
+++ b/patches/may_2012/cleanup_notification_control.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2012/cleanup_property_setter.py b/patches/may_2012/cleanup_property_setter.py
index e06de32..b793e9d 100644
--- a/patches/may_2012/cleanup_property_setter.py
+++ b/patches/may_2012/cleanup_property_setter.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2012/clear_session_cache.py b/patches/may_2012/clear_session_cache.py
index 2b10129..3e63c3b 100644
--- a/patches/may_2012/clear_session_cache.py
+++ b/patches/may_2012/clear_session_cache.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2012/create_report_manager_role.py b/patches/may_2012/create_report_manager_role.py
index 8912eb1..56f2aa9 100644
--- a/patches/may_2012/create_report_manager_role.py
+++ b/patches/may_2012/create_report_manager_role.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2012/cs_server_readonly.py b/patches/may_2012/cs_server_readonly.py
index 51a9b76..378a73d 100644
--- a/patches/may_2012/cs_server_readonly.py
+++ b/patches/may_2012/cs_server_readonly.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	"""Make server custom script readonly for system manager"""
diff --git a/patches/may_2012/customize_form_cleanup.py b/patches/may_2012/customize_form_cleanup.py
index a04eb79..ab86f05 100644
--- a/patches/may_2012/customize_form_cleanup.py
+++ b/patches/may_2012/customize_form_cleanup.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2012/page_role_series_fix.py b/patches/may_2012/page_role_series_fix.py
index 7533e9d..c2b18f4 100644
--- a/patches/may_2012/page_role_series_fix.py
+++ b/patches/may_2012/page_role_series_fix.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2012/profile_perm_patch.py b/patches/may_2012/profile_perm_patch.py
index 29fa9c0..26fc1ab 100644
--- a/patches/may_2012/profile_perm_patch.py
+++ b/patches/may_2012/profile_perm_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	"""Make profile readonly for role All"""
diff --git a/patches/may_2012/reload_sales_invoice_pf.py b/patches/may_2012/reload_sales_invoice_pf.py
index ea4f5df..72a8e41 100644
--- a/patches/may_2012/reload_sales_invoice_pf.py
+++ b/patches/may_2012/reload_sales_invoice_pf.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2012/remove_communication_log.py b/patches/may_2012/remove_communication_log.py
index b6e7e7d..0c06f8d 100644
--- a/patches/may_2012/remove_communication_log.py
+++ b/patches/may_2012/remove_communication_log.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2012/remove_euro_currency.py b/patches/may_2012/remove_euro_currency.py
index edf27e1..02e439b 100644
--- a/patches/may_2012/remove_euro_currency.py
+++ b/patches/may_2012/remove_euro_currency.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	"""
diff --git a/patches/may_2012/rename_prev_doctype.py b/patches/may_2012/rename_prev_doctype.py
index 9b1e0b6..81a2578 100644
--- a/patches/may_2012/rename_prev_doctype.py
+++ b/patches/may_2012/rename_prev_doctype.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2012/same_purchase_rate_patch.py b/patches/may_2012/same_purchase_rate_patch.py
index d7b8d89..edb135f 100644
--- a/patches/may_2012/same_purchase_rate_patch.py
+++ b/patches/may_2012/same_purchase_rate_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2012/std_pf_readonly.py b/patches/may_2012/std_pf_readonly.py
index 9fbbfe9..f2e7261 100644
--- a/patches/may_2012/std_pf_readonly.py
+++ b/patches/may_2012/std_pf_readonly.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	"""Make standard print formats readonly for system manager"""
diff --git a/patches/may_2012/stock_reco_patch.py b/patches/may_2012/stock_reco_patch.py
index 96b071f..a3c702f 100644
--- a/patches/may_2012/stock_reco_patch.py
+++ b/patches/may_2012/stock_reco_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/may_2013/p01_conversion_factor_and_aii.py b/patches/may_2013/p01_conversion_factor_and_aii.py
index 2fd0d36..17af01b 100644
--- a/patches/may_2013/p01_conversion_factor_and_aii.py
+++ b/patches/may_2013/p01_conversion_factor_and_aii.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 from webnotes.utils import cint
 from accounts.utils import create_stock_in_hand_jv
diff --git a/patches/may_2013/p01_selling_net_total_export.py b/patches/may_2013/p01_selling_net_total_export.py
index eb6da23..a942f4d 100644
--- a/patches/may_2013/p01_selling_net_total_export.py
+++ b/patches/may_2013/p01_selling_net_total_export.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 from webnotes.utils import cint
diff --git a/patches/may_2013/p02_update_valuation_rate.py b/patches/may_2013/p02_update_valuation_rate.py
index 280473c..c8226c8 100644
--- a/patches/may_2013/p02_update_valuation_rate.py
+++ b/patches/may_2013/p02_update_valuation_rate.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/patches/may_2013/p03_update_support_ticket.py b/patches/may_2013/p03_update_support_ticket.py
index 7dc5854..005c9a3 100644
--- a/patches/may_2013/p03_update_support_ticket.py
+++ b/patches/may_2013/p03_update_support_ticket.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/patches/may_2013/p04_reorder_level.py b/patches/may_2013/p04_reorder_level.py
index 8f4d669..8462ff9 100644
--- a/patches/may_2013/p04_reorder_level.py
+++ b/patches/may_2013/p04_reorder_level.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/patches/may_2013/p05_update_cancelled_gl_entries.py b/patches/may_2013/p05_update_cancelled_gl_entries.py
index 59eed7e..ece5bb2 100644
--- a/patches/may_2013/p05_update_cancelled_gl_entries.py
+++ b/patches/may_2013/p05_update_cancelled_gl_entries.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/patches/may_2013/p06_make_notes.py b/patches/may_2013/p06_make_notes.py
index 1cc9bc3..b60642c 100644
--- a/patches/may_2013/p06_make_notes.py
+++ b/patches/may_2013/p06_make_notes.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, markdown2
 
 def execute():
diff --git a/patches/may_2013/p06_update_billed_amt_po_pr.py b/patches/may_2013/p06_update_billed_amt_po_pr.py
index 5084e98..3f66c03 100644
--- a/patches/may_2013/p06_update_billed_amt_po_pr.py
+++ b/patches/may_2013/p06_update_billed_amt_po_pr.py
@@ -1,24 +1,13 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 def execute():
 	import webnotes
 	webnotes.reload_doc("buying", "doctype", "purchase_order_item")
 	webnotes.reload_doc("stock", "doctype", "purchase_receipt_item")
+	
 	for pi in webnotes.conn.sql("""select name from `tabPurchase Invoice` where docstatus = 1"""):
 		webnotes.get_obj("Purchase Invoice", pi[0], 
-			with_children=1).update_qty(change_modified=False)
\ No newline at end of file
+			with_children=1).update_qty(change_modified=False)
+		webnotes.conn.commit()
\ No newline at end of file
diff --git a/patches/may_2013/p07_move_update_stock_to_pos.py b/patches/may_2013/p07_move_update_stock_to_pos.py
index 7928728..c4dfdc0 100644
--- a/patches/may_2013/p07_move_update_stock_to_pos.py
+++ b/patches/may_2013/p07_move_update_stock_to_pos.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, webnotes.defaults
 from webnotes.utils import cint
 
diff --git a/patches/may_2013/p08_change_item_wise_tax.py b/patches/may_2013/p08_change_item_wise_tax.py
index fd74dcb..bf84910 100644
--- a/patches/may_2013/p08_change_item_wise_tax.py
+++ b/patches/may_2013/p08_change_item_wise_tax.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 import json
 from webnotes.utils import flt
@@ -16,8 +19,9 @@
 				except ValueError:
 					out = {}
 					for t in item_wise_tax_detail.split("\n"):
-						if ":" in t:
-							account_head, amount = t.split(":")
+						if " : " in t:
+							split_index = t.rfind(" : ")
+							account_head, amount = t[:split_index], t[split_index+3:]
 							out[account_head.strip()] = flt(amount.strip())
 							
 					if out:
diff --git a/patches/may_2013/repost_stock_for_no_posting_time.py b/patches/may_2013/repost_stock_for_no_posting_time.py
index 489511c..057705b 100644
--- a/patches/may_2013/repost_stock_for_no_posting_time.py
+++ b/patches/may_2013/repost_stock_for_no_posting_time.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 def execute():
diff --git a/patches/november_2012/add_employee_field_in_employee.py b/patches/november_2012/add_employee_field_in_employee.py
index c8e5b36..bece53e 100644
--- a/patches/november_2012/add_employee_field_in_employee.py
+++ b/patches/november_2012/add_employee_field_in_employee.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/november_2012/add_theme_to_profile.py b/patches/november_2012/add_theme_to_profile.py
index 89710a4..8b4de68 100644
--- a/patches/november_2012/add_theme_to_profile.py
+++ b/patches/november_2012/add_theme_to_profile.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/november_2012/cancelled_bom_patch.py b/patches/november_2012/cancelled_bom_patch.py
index 761227d..150e411 100644
--- a/patches/november_2012/cancelled_bom_patch.py
+++ b/patches/november_2012/cancelled_bom_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/november_2012/communication_sender_and_recipient.py b/patches/november_2012/communication_sender_and_recipient.py
index f8d7a95..f18924f 100644
--- a/patches/november_2012/communication_sender_and_recipient.py
+++ b/patches/november_2012/communication_sender_and_recipient.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/november_2012/custom_field_insert_after.py b/patches/november_2012/custom_field_insert_after.py
index 6824e7a..404df40 100644
--- a/patches/november_2012/custom_field_insert_after.py
+++ b/patches/november_2012/custom_field_insert_after.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/november_2012/customer_issue_allocated_to_assigned.py b/patches/november_2012/customer_issue_allocated_to_assigned.py
index fa87262..d249abe 100644
--- a/patches/november_2012/customer_issue_allocated_to_assigned.py
+++ b/patches/november_2012/customer_issue_allocated_to_assigned.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 
diff --git a/patches/november_2012/disable_cancelled_profiles.py b/patches/november_2012/disable_cancelled_profiles.py
index cc682dc..663004b 100644
--- a/patches/november_2012/disable_cancelled_profiles.py
+++ b/patches/november_2012/disable_cancelled_profiles.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	"""
diff --git a/patches/november_2012/gle_floating_point_issue.py b/patches/november_2012/gle_floating_point_issue.py
index c345152..7ff3aca 100644
--- a/patches/november_2012/gle_floating_point_issue.py
+++ b/patches/november_2012/gle_floating_point_issue.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	
diff --git a/patches/november_2012/leave_application_cleanup.py b/patches/november_2012/leave_application_cleanup.py
index eca0fae..196a9f1 100644
--- a/patches/november_2012/leave_application_cleanup.py
+++ b/patches/november_2012/leave_application_cleanup.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/november_2012/production_order_patch.py b/patches/november_2012/production_order_patch.py
index b49cd72..1a4e140 100644
--- a/patches/november_2012/production_order_patch.py
+++ b/patches/november_2012/production_order_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	
diff --git a/patches/november_2012/report_permissions.py b/patches/november_2012/report_permissions.py
index 0619761..31c4b74 100644
--- a/patches/november_2012/report_permissions.py
+++ b/patches/november_2012/report_permissions.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 
 def execute():
diff --git a/patches/november_2012/reset_appraisal_permissions.py b/patches/november_2012/reset_appraisal_permissions.py
index a9468a6..aa46676 100644
--- a/patches/november_2012/reset_appraisal_permissions.py
+++ b/patches/november_2012/reset_appraisal_permissions.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.reset_perms("Appraisal")
diff --git a/patches/november_2012/support_ticket_response_to_communication.py b/patches/november_2012/support_ticket_response_to_communication.py
index 12c1850..b4d6068 100644
--- a/patches/november_2012/support_ticket_response_to_communication.py
+++ b/patches/november_2012/support_ticket_response_to_communication.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 import email.utils
 
diff --git a/patches/november_2012/update_delivered_billed_percentage_for_pos.py b/patches/november_2012/update_delivered_billed_percentage_for_pos.py
index 0c9a8ad..0703f94 100644
--- a/patches/november_2012/update_delivered_billed_percentage_for_pos.py
+++ b/patches/november_2012/update_delivered_billed_percentage_for_pos.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	from webnotes.model.code import get_obj
diff --git a/patches/october_2012/company_fiscal_year_docstatus_patch.py b/patches/october_2012/company_fiscal_year_docstatus_patch.py
index 34ec274..0a3cf27 100644
--- a/patches/october_2012/company_fiscal_year_docstatus_patch.py
+++ b/patches/october_2012/company_fiscal_year_docstatus_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.conn.sql("""update `tabCompany` set docstatus = 0
diff --git a/patches/october_2012/custom_script_delete_permission.py b/patches/october_2012/custom_script_delete_permission.py
index efcb059..b87a49c 100644
--- a/patches/october_2012/custom_script_delete_permission.py
+++ b/patches/october_2012/custom_script_delete_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 def execute():
 	webnotes.reload_doc("core", "doctype", "docperm")
diff --git a/patches/october_2012/fix_cancelled_gl_entries.py b/patches/october_2012/fix_cancelled_gl_entries.py
index 5c23ce8..b610985 100644
--- a/patches/october_2012/fix_cancelled_gl_entries.py
+++ b/patches/october_2012/fix_cancelled_gl_entries.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	entries = webnotes.conn.sql("""select voucher_type, voucher_no 
diff --git a/patches/october_2012/fix_wrong_vouchers.py b/patches/october_2012/fix_wrong_vouchers.py
index 3b0a1dd..85bf2ab 100644
--- a/patches/october_2012/fix_wrong_vouchers.py
+++ b/patches/october_2012/fix_wrong_vouchers.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	from webnotes.utils import flt
diff --git a/patches/october_2012/update_account_property.py b/patches/october_2012/update_account_property.py
index a9d365f..cc7d005 100644
--- a/patches/october_2012/update_account_property.py
+++ b/patches/october_2012/update_account_property.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 def execute():
 	import webnotes
 	from webnotes.utils.nestedset import rebuild_tree
diff --git a/patches/october_2012/update_permission.py b/patches/october_2012/update_permission.py
index 5686a8e..04f5d07 100644
--- a/patches/october_2012/update_permission.py
+++ b/patches/october_2012/update_permission.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 def execute():
diff --git a/patches/patch_list.py b/patches/patch_list.py
index d6f4424..9e6938b 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -1,26 +1,15 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 patch_list = [
-	"execute:webnotes.reload_doc('core', 'doctype', 'docfield')",
-	"execute:webnotes.reload_doc('core', 'doctype', 'docperm') # 2013-04-07",
-	"execute:webnotes.reload_doc('core', 'doctype', 'report')",
-	"execute:webnotes.reload_doc('core', 'doctype', 'doctype') # 2013-07-08",
-	"execute:webnotes.reload_doc('core', 'doctype', 'page') # 2013-07-11",
+	"execute:webnotes.reload_doc('core', 'doctype', 'doctype', force=True) #2013-07-15",
+	"execute:webnotes.reload_doc('core', 'doctype', 'docfield', force=True) #2013-07-15",
+	"execute:webnotes.reload_doc('core', 'doctype', 'doctype', force=True) #2013-07-16",
+	"execute:webnotes.reload_doc('core', 'doctype', 'docfield', force=True) #2013-07-16",
+	"execute:webnotes.reload_doc('core', 'doctype', 'docperm') #2013-07-16",
+	"execute:webnotes.reload_doc('core', 'doctype', 'page') #2013-07-16",
+	"execute:webnotes.reload_doc('core', 'doctype', 'report') #2013-07-16",
 	"patches.mar_2012.clean_property_setter", 
 	"patches.april_2012.naming_series_patch", 
 	"patches.mar_2012.cleanup_control_panel", 
@@ -161,9 +150,6 @@
 	"patches.february_2013.p05_leave_application",
 	"patches.february_2013.gle_floating_point_issue_revisited",
 	"patches.february_2013.fix_outstanding",
-	'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Classic") # 2013-02-19',
-	'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Modern") # 2013-02-19',
-	'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Spartan") # 2013-02-19',
 	"execute:webnotes.delete_doc('DocType', 'Service Order')",
 	"execute:webnotes.delete_doc('DocType', 'Service Quotation')",
 	"execute:webnotes.delete_doc('DocType', 'Service Order Detail')",
@@ -174,9 +160,6 @@
 	"execute:webnotes.conn.sql(\"update `tabReport` set report_type=if(ifnull(query, '')='', 'Report Builder', 'Query Report') where is_standard='No'\")",
 	"execute:webnotes.conn.sql(\"update `tabReport` set report_name=name where ifnull(report_name,'')='' and is_standard='No'\")",
 	"patches.february_2013.p08_todo_query_report",
-	'execute:webnotes.reload_doc("accounts", "Print Format", "Sales Invoice Classic") # 2013-02-26',
-	'execute:webnotes.reload_doc("accounts", "Print Format", "Sales Invoice Modern") # 2013-02-26',
-	'execute:webnotes.reload_doc("accounts", "Print Format", "Sales Invoice Spartan") # 2013-02-26',
 	"execute:(not webnotes.conn.exists('Role', 'Projects Manager')) and webnotes.doc({'doctype':'Role', 'role_name':'Projects Manager'}).insert()",
 	"patches.february_2013.p09_remove_cancelled_warehouses",
 	"patches.march_2013.update_po_prevdoc_doctype",
@@ -198,7 +181,6 @@
 	"execute:webnotes.reload_doc('website', 'doctype', 'web_page') #2013-03-25",
 	"execute:webnotes.reload_doc('setup', 'doctype', 'sales_partner') #2013-06-25",
 	"execute:webnotes.conn.set_value('Email Settings', None, 'send_print_in_body_and_attachment', 1)",
-	"patches.march_2013.p09_unset_user_type_partner",
 	"patches.march_2013.p10_set_fiscal_year_for_stock",
 	"patches.march_2013.p10_update_against_expense_account",
 	"patches.march_2013.p11_update_attach_files",
@@ -208,9 +190,6 @@
 	"patches.april_2013.p01_update_serial_no_valuation_rate",
 	"patches.april_2013.p02_add_country_and_currency",
 	"patches.april_2013.p03_fixes_for_lead_in_quotation",
-	'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Classic") # 2013-04-02',
-	'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Modern") # 2013-04-02',
-	'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Spartan") # 2013-04-02',
 	"patches.april_2013.p04_reverse_modules_list",
 	"patches.april_2013.p04_update_role_in_pages",
 	"patches.april_2013.p05_update_file_data",
@@ -252,4 +231,28 @@
 	"patches.july_2013.p03_cost_center_company",
 	"execute:webnotes.bean('Style Settings').save() #2013-07-16",
 	"patches.july_2013.p04_merge_duplicate_leads",
+	"patches.july_2013.p05_custom_doctypes_in_list_view",
+	"patches.july_2013.p06_same_sales_rate",
+	"patches.july_2013.p07_repost_billed_amt_in_sales_cycle",
+	"execute:webnotes.reload_doc('accounts', 'Print Format', 'Sales Invoice Classic') # 2013-07-22",
+	"execute:webnotes.reload_doc('accounts', 'Print Format', 'Sales Invoice Modern') # 2013-07-22",
+	"execute:webnotes.reload_doc('accounts', 'Print Format', 'Sales Invoice Spartan') # 2013-07-22",
+	"execute:webnotes.reload_doc('selling', 'Print Format', 'Quotation Classic') # 2013-07-22",
+	"execute:webnotes.reload_doc('selling', 'Print Format', 'Quotation Modern') # 2013-07-22",
+	"execute:webnotes.reload_doc('selling', 'Print Format', 'Quotation Spartan') # 2013-07-22",
+	"execute:webnotes.reload_doc('selling', 'Print Format', 'Sales Order Classic') # 2013-07-22",
+	"execute:webnotes.reload_doc('selling', 'Print Format', 'Sales Order Modern') # 2013-07-22",
+	"execute:webnotes.reload_doc('selling', 'Print Format', 'Sales Order Spartan') # 2013-07-22",
+	"execute:webnotes.reload_doc('stock', 'Print Format', 'Delivery Note Classic') # 2013-07-22",
+	"execute:webnotes.reload_doc('stock', 'Print Format', 'Delivery Note Modern') # 2013-07-22",
+	"execute:webnotes.reload_doc('stock', 'Print Format', 'Delivery Note Spartan') # 2013-07-22",
+	"patches.july_2013.p08_custom_print_format_net_total_export",
+	"patches.july_2013.p09_remove_website_pyc",
+	"patches.july_2013.p10_change_partner_user_to_website_user",
+	"patches.july_2013.p11_update_price_list_currency",
+	"execute:webnotes.bean('Selling Settings').save() #2013-07-29",
+	"patches.august_2013.p01_hr_settings",
+	"patches.august_2013.p02_rename_price_list",
+	"patches.august_2013.p03_pos_setting_replace_customer_account",
+	"patches.august_2013.p04_employee_birthdays",
 ]
\ No newline at end of file
diff --git a/patches/september_2012/add_stock_ledger_entry_index.py b/patches/september_2012/add_stock_ledger_entry_index.py
index add0e94..dc3ed96 100644
--- a/patches/september_2012/add_stock_ledger_entry_index.py
+++ b/patches/september_2012/add_stock_ledger_entry_index.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 
diff --git a/patches/september_2012/all_permissions_patch.py b/patches/september_2012/all_permissions_patch.py
index 8373d8a..bc318ba 100644
--- a/patches/september_2012/all_permissions_patch.py
+++ b/patches/september_2012/all_permissions_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 def execute():
diff --git a/patches/september_2012/communication_delete_permission.py b/patches/september_2012/communication_delete_permission.py
index a1a7f66..ef4d02e 100644
--- a/patches/september_2012/communication_delete_permission.py
+++ b/patches/september_2012/communication_delete_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/patches/september_2012/customer_permission_patch.py b/patches/september_2012/customer_permission_patch.py
index a820cbe..8334156 100644
--- a/patches/september_2012/customer_permission_patch.py
+++ b/patches/september_2012/customer_permission_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	from webnotes.model.doc import Document
diff --git a/patches/september_2012/deprecate_account_balance.py b/patches/september_2012/deprecate_account_balance.py
index b8c454d..c7e5a8c 100644
--- a/patches/september_2012/deprecate_account_balance.py
+++ b/patches/september_2012/deprecate_account_balance.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 from webnotes.model import delete_doc
diff --git a/patches/september_2012/event_permission.py b/patches/september_2012/event_permission.py
index 1e2c5f5..ad965e5 100644
--- a/patches/september_2012/event_permission.py
+++ b/patches/september_2012/event_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 from webnotes.model.code import get_obj
diff --git a/patches/september_2012/plot_patch.py b/patches/september_2012/plot_patch.py
index 802cbcd..e801a99 100644
--- a/patches/september_2012/plot_patch.py
+++ b/patches/september_2012/plot_patch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 def execute():
diff --git a/patches/september_2012/profile_delete_permission.py b/patches/september_2012/profile_delete_permission.py
index 2f72431..cf6f8ec 100644
--- a/patches/september_2012/profile_delete_permission.py
+++ b/patches/september_2012/profile_delete_permission.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 def execute():
diff --git a/patches/september_2012/rebuild_trees.py b/patches/september_2012/rebuild_trees.py
index 5143f54..380100b 100644
--- a/patches/september_2012/rebuild_trees.py
+++ b/patches/september_2012/rebuild_trees.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	from webnotes.utils.nestedset import rebuild_tree
diff --git a/patches/september_2012/repost_stock.py b/patches/september_2012/repost_stock.py
index deb2186..28ad703 100644
--- a/patches/september_2012/repost_stock.py
+++ b/patches/september_2012/repost_stock.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 def execute():
diff --git a/patches/september_2012/stock_report_permissions_for_accounts.py b/patches/september_2012/stock_report_permissions_for_accounts.py
index 07efc46..7dd614c 100644
--- a/patches/september_2012/stock_report_permissions_for_accounts.py
+++ b/patches/september_2012/stock_report_permissions_for_accounts.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 def execute():
 	import webnotes
diff --git a/projects/doctype/activity_type/activity_type.py b/projects/doctype/activity_type/activity_type.py
index 7f48feb..26d0f76 100644
--- a/projects/doctype/activity_type/activity_type.py
+++ b/projects/doctype/activity_type/activity_type.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/projects/doctype/activity_type/test_activity_type.py b/projects/doctype/activity_type/test_activity_type.py
index 77ef7b3..b68a458 100644
--- a/projects/doctype/activity_type/test_activity_type.py
+++ b/projects/doctype/activity_type/test_activity_type.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{"activity_type":"_Test Activity Type"}],
 	[{"activity_type":"_Test Activity Type 1"}],
diff --git a/projects/doctype/project/project.js b/projects/doctype/project/project.js
index 9d04477..74cfa45 100644
--- a/projects/doctype/project/project.js
+++ b/projects/doctype/project/project.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // show tasks
 cur_frm.cscript.refresh = function(doc) {
diff --git a/projects/doctype/project/project.py b/projects/doctype/project/project.py
index d9bb7c0..067ffef 100644
--- a/projects/doctype/project/project.py
+++ b/projects/doctype/project/project.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/projects/doctype/project/test_project.py b/projects/doctype/project/test_project.py
index bd7460d..475dc68 100644
--- a/projects/doctype/project/test_project.py
+++ b/projects/doctype/project/test_project.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [[{
 	"project_name": "_Test Project",
 	"status": "Open"
diff --git a/projects/doctype/project_milestone/project_milestone.py b/projects/doctype/project_milestone/project_milestone.py
index 7f48feb..26d0f76 100644
--- a/projects/doctype/project_milestone/project_milestone.py
+++ b/projects/doctype/project_milestone/project_milestone.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/projects/doctype/task/task.js b/projects/doctype/task/task.js
index cb2c539..c043807 100644
--- a/projects/doctype/task/task.js
+++ b/projects/doctype/task/task.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.provide("erpnext.projects");
 
@@ -29,7 +16,7 @@
 
 	project: function() {
 		if(this.frm.doc.project) {
-			get_server_fields('get_project_details', '','', this.frm.doc, this.frm.doc.doctype, 
+			return get_server_fields('get_project_details', '','', this.frm.doc, this.frm.doc.doctype, 
 				this.frm.doc.name, 1);
 		}
 	},
diff --git a/projects/doctype/task/task.py b/projects/doctype/task/task.py
index 0ea9eea..6cd1ba8 100644
--- a/projects/doctype/task/task.py
+++ b/projects/doctype/task/task.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes, json
diff --git a/projects/doctype/task/task_calendar.js b/projects/doctype/task/task_calendar.js
index 94d7cc5..7772855 100644
--- a/projects/doctype/task/task_calendar.js
+++ b/projects/doctype/task/task_calendar.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.views.calendar["Task"] = {
 	field_map: {
 		"start": "exp_start_date",
diff --git a/projects/doctype/task/test_task.py b/projects/doctype/task/test_task.py
index 2e95806..d6c8e98 100644
--- a/projects/doctype/task/test_task.py
+++ b/projects/doctype/task/test_task.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{"subject": "_Test Task", "project":"_Test Project", "status":"Open"}],
 	[{"subject": "_Test Task 1", "status":"Open"}],
diff --git a/projects/doctype/time_log/test_time_log.py b/projects/doctype/time_log/test_time_log.py
index 8f1848f..ec8c781 100644
--- a/projects/doctype/time_log/test_time_log.py
+++ b/projects/doctype/time_log/test_time_log.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 import unittest
 
diff --git a/projects/doctype/time_log/time_log.js b/projects/doctype/time_log/time_log.js
index 69ec304..7a03955 100644
--- a/projects/doctype/time_log/time_log.js
+++ b/projects/doctype/time_log/time_log.js
@@ -1,9 +1,12 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.provide("erpnext.projects");
 
 erpnext.projects.TimeLog = wn.ui.form.Controller.extend({
-	setup: function() {
-		this.frm.set_query("task", function() {
-			return { query: "projects.utils.query_task" }
-		});
+	onload: function() {
+		this.frm.set_query("task", erpnext.queries.task);
+	}
+});
 
 cur_frm.cscript = new erpnext.projects.TimeLog({frm: cur_frm});
\ No newline at end of file
diff --git a/projects/doctype/time_log/time_log.py b/projects/doctype/time_log/time_log.py
index 0a5adba..57a0b00 100644
--- a/projects/doctype/time_log/time_log.py
+++ b/projects/doctype/time_log/time_log.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/projects/doctype/time_log/time_log.txt b/projects/doctype/time_log/time_log.txt
index ff1c2b4..89ca453 100644
--- a/projects/doctype/time_log/time_log.txt
+++ b/projects/doctype/time_log/time_log.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-03 16:38:41", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:58:20", 
+  "modified": "2013-08-08 14:22:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -46,7 +46,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "options": "TL-", 
   "permlevel": 0, 
   "read_only": 0, 
diff --git a/projects/doctype/time_log/time_log_calendar.js b/projects/doctype/time_log/time_log_calendar.js
index 52338a9..a4f22db 100644
--- a/projects/doctype/time_log/time_log_calendar.js
+++ b/projects/doctype/time_log/time_log_calendar.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.views.calendar["Time Log"] = {
 	field_map: {
 		"start": "from_time",
diff --git a/projects/doctype/time_log/time_log_list.js b/projects/doctype/time_log/time_log_list.js
index 85c9b2a..7a35cda 100644
--- a/projects/doctype/time_log/time_log_list.js
+++ b/projects/doctype/time_log/time_log_list.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 // render
 wn.listview_settings['Time Log'] = {
 	add_fields: ["`tabTime Log`.`status`", "`tabTime Log`.`billable`", "`tabTime Log`.`activity_type`"],
diff --git a/projects/doctype/time_log_batch/test_time_log_batch.py b/projects/doctype/time_log_batch/test_time_log_batch.py
index 54195c2..34a0cc0 100644
--- a/projects/doctype/time_log_batch/test_time_log_batch.py
+++ b/projects/doctype/time_log_batch/test_time_log_batch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, unittest
 
 class TimeLogBatchTest(unittest.TestCase):
diff --git a/projects/doctype/time_log_batch/time_log_batch.js b/projects/doctype/time_log_batch/time_log_batch.js
index 6e5165b..96f7c22 100644
--- a/projects/doctype/time_log_batch/time_log_batch.js
+++ b/projects/doctype/time_log_batch/time_log_batch.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 cur_frm.add_fetch("time_log", "activity_type", "activity_type");
 cur_frm.add_fetch("time_log", "owner", "created_by");
 cur_frm.add_fetch("time_log", "hours", "hours");
diff --git a/projects/doctype/time_log_batch/time_log_batch.py b/projects/doctype/time_log_batch/time_log_batch.py
index 6ec0e5b..41c0f6d 100644
--- a/projects/doctype/time_log_batch/time_log_batch.py
+++ b/projects/doctype/time_log_batch/time_log_batch.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/projects/doctype/time_log_batch/time_log_batch.txt b/projects/doctype/time_log_batch/time_log_batch.txt
index 09a43da..c12355d 100644
--- a/projects/doctype/time_log_batch/time_log_batch.txt
+++ b/projects/doctype/time_log_batch/time_log_batch.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-28 17:57:33", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:58:23", 
+  "modified": "2013-08-08 14:22:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -48,7 +48,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "options": "TLB-", 
   "reqd": 1
  }, 
diff --git a/projects/doctype/time_log_batch_detail/time_log_batch_detail.py b/projects/doctype/time_log_batch_detail/time_log_batch_detail.py
index 928aa9f..784339d 100644
--- a/projects/doctype/time_log_batch_detail/time_log_batch_detail.py
+++ b/projects/doctype/time_log_batch_detail/time_log_batch_detail.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/projects/page/projects_home/projects_home.js b/projects/page/projects_home/projects_home.js
index ea078e8..f958f74 100644
--- a/projects/page/projects_home/projects_home.js
+++ b/projects/page/projects_home/projects_home.js
@@ -1,5 +1,5 @@
-// ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-// GNU General Public License. See "license.txt"
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt"
 
 wn.module_page["Projects"] = [
 	{
diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.js b/projects/report/daily_time_log_summary/daily_time_log_summary.js
index ba87d0d..6bb1117 100644
--- a/projects/report/daily_time_log_summary/daily_time_log_summary.js
+++ b/projects/report/daily_time_log_summary/daily_time_log_summary.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Daily Time Log Summary"] = {
 	"filters": [
 		{
diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.py b/projects/report/daily_time_log_summary/daily_time_log_summary.py
index 8c1e266..a710c8c 100644
--- a/projects/report/daily_time_log_summary/daily_time_log_summary.py
+++ b/projects/report/daily_time_log_summary/daily_time_log_summary.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 from webnotes.utils import flt
diff --git a/projects/report/project_wise_stock_tracking/project_wise_stock_tracking.py b/projects/report/project_wise_stock_tracking/project_wise_stock_tracking.py
index 7c702e4..5d126f5 100644
--- a/projects/report/project_wise_stock_tracking/project_wise_stock_tracking.py
+++ b/projects/report/project_wise_stock_tracking/project_wise_stock_tracking.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 import webnotes 
 
diff --git a/projects/utils.py b/projects/utils.py
index e37a21c..3271e89 100644
--- a/projects/utils.py
+++ b/projects/utils.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/public/images/splash.svg b/public/images/splash.svg
index 3f9fa88..60ed317 100644
--- a/public/images/splash.svg
+++ b/public/images/splash.svg
@@ -13,7 +13,6 @@
    version="1.1"
    inkscape:version="0.48.2 r9819"
    sodipodi:docname="splash-mono.svg"
-   inkscape:export-filename="/Users/anandpdoshi/Dropbox/erpnext/logo 2013/erpnext-logo-2013 other colors 3.png"
    inkscape:export-xdpi="167.56363"
    inkscape:export-ydpi="167.56363"
    viewBox="0 0 680 820"
diff --git a/public/js/account_tree_grid.js b/public/js/account_tree_grid.js
index a893a52..c779cfa 100644
--- a/public/js/account_tree_grid.js
+++ b/public/js/account_tree_grid.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 // 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
@@ -135,7 +138,7 @@
 		$.each(gl, function(i, v) {
 			var posting_date = dateutil.str_to_obj(v.posting_date);
 			var account = me.item_by_name[v.account];
-			me.update_balances(account, posting_date, v)
+			me.update_balances(account, posting_date, v);
 		});
 
 		this.update_groups();
diff --git a/public/js/complete_setup.js b/public/js/complete_setup.js
index d66d09a..b661e02 100644
--- a/public/js/complete_setup.js
+++ b/public/js/complete_setup.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // complete my company registration
 // --------------------------------
@@ -74,7 +61,7 @@
 			var data = d.get_values();
 			if(!data) return;
 			$(this).set_working();
-			$c_obj('Setup Control','setup_account',data,function(r, rt){
+			return $c_obj('Setup Control','setup_account',data,function(r, rt){
 				$(this).done_working();
 				if(!r.exc) {
 					sys_defaults = r.message;
diff --git a/public/js/conf.js b/public/js/conf.js
index 71f1fa6..993d2ab 100644
--- a/public/js/conf.js
+++ b/public/js/conf.js
@@ -1,26 +1,43 @@
-wn.provide('erpnext');
-erpnext.set_about = function() {
-	wn.provide('wn.app');
-	$.extend(wn.app, {
-		name: 'ERPNext',
-		license: 'GNU/GPL - Usage Condition: All "erpnext" branding must be kept as it is',
-		source: 'https://github.com/webnotes/erpnext',
-		publisher: 'Web Notes Technologies Pvt Ltd, Mumbai',
-		copyright: '&copy; Web Notes Technologies Pvt Ltd',
-		version: 'Please see git log for the release number'
-	});
-}
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
-wn.modules_path = 'erpnext';
+wn.provide('erpnext');
 
 // add toolbar icon
 $(document).bind('toolbar_setup', function() {
-	$('.navbar-brand').html('<object data="app/images/splash.svg" \
-		class="toolbar-splash" type="image/svg+xml"></object>erpnext')
-	.css('max-width', '200px').css('overflow', 'hidden')
-	.hover(function() {
-		$(this).find('.icon-home').addClass('navbar-icon-home-hover');
-	}, function() {
-		$(this).find('.icon-home').removeClass('navbar-icon-home-hover');
+	wn.app.name = "ERPNext";
+	
+	var brand = ($("<div></div>").append(wn.boot.website_settings.brand_html).text() || 'erpnext');
+	$('.navbar-brand').html('<div style="display: inline-block;">\
+			<object type="image/svg+xml" data="app/images/splash.svg" class="toolbar-splash"></object>\
+		</div>' + brand)
+	.attr("title", brand)
+	.addClass("navbar-icon-home")
+	.css({
+		"max-width": "200px",
+		"overflow": "hidden",
+		"text-overflow": "ellipsis",
+		"white-space": "nowrap"
 	});
 });
+
+wn.provide('wn.ui.misc');
+wn.ui.misc.about = function() {
+	if(!wn.ui.misc.about_dialog) {
+		var d = new wn.ui.Dialog({title:'About ERPNext'})
+	
+		$(d.body).html(repl("<div>\
+		<p>ERPNext is an open-source web based ERP made by Web Notes Technologies Pvt Ltd.\
+		to provide an integrated tool to manage most processes in a small organization.\
+		For more information about Web Notes, or to buy hosting servies, go to \
+		<a href='https://erpnext.com'>https://erpnext.com</a>.</p>\
+		<p>To report an issue, go to <a href='https://github.com/webnotes/erpnext/issues'>GitHub Issues</a></p>\
+		<hr>\
+		<p><a href='http://www.gnu.org/copyleft/gpl.html'>License: GNU General Public License Version 3</a></p>\
+		</div>", wn.app));
+	
+		wn.ui.misc.about_dialog = d;		
+	}
+	
+	wn.ui.misc.about_dialog.show();
+}
diff --git a/public/js/controllers/stock_controller.js b/public/js/controllers/stock_controller.js
index ccbca4e..a5b5107 100644
--- a/public/js/controllers/stock_controller.js
+++ b/public/js/controllers/stock_controller.js
@@ -1,40 +1,31 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.provide("erpnext.stock");
 
 erpnext.stock.StockController = wn.ui.form.Controller.extend({
 	show_stock_ledger: function() {
 		var me = this;
-		this.frm.add_custom_button("Stock Ledger", function() {
-			wn.route_options = {
-				voucher_no: me.frm.doc.name,
-				from_date: cur_frm.doc.posting_date,
-				to_date: cur_frm.doc.posting_date
-			};
-			wn.set_route('stock-ledger');
-		}, "icon-bar-chart");
+		if(this.frm.doc.docstatus===1) {
+			this.frm.add_custom_button("Stock Ledger", function() {
+				wn.route_options = {
+					voucher_no: me.frm.doc.name,
+					from_date: me.frm.doc.posting_date,
+					to_date: me.frm.doc.posting_date
+				};
+				wn.set_route('stock-ledger');
+			}, "icon-bar-chart");
+		}
+		
 	},
 	show_general_ledger: function() {
-		if(doc.docstatus==1) { 
+		var me = this;
+		if(this.frm.doc.docstatus===1 && cint(wn.defaults.get_default("auto_inventory_accounting"))) { 
 			cur_frm.add_custom_button('Accounting Ledger', function() {
 				wn.route_options = {
-					"voucher_no": doc.name,
-					"from_date": doc.posting_date,
-					"to_date": doc.posting_date,
+					"voucher_no": me.frm.doc.name,
+					"from_date": me.frm.doc.posting_date,
+					"to_date": me.frm.doc.posting_date,
 				};
 				wn.set_route("general-ledger");
 			});
diff --git a/public/js/feature_setup.js b/public/js/feature_setup.js
index 85c848d..31f81be 100644
--- a/public/js/feature_setup.js
+++ b/public/js/feature_setup.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 /* features setup "Dictionary", "Script"
 Dictionary Format
@@ -127,13 +114,12 @@
 		'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']},
+		'Delivery Note': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'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']},
-		'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']},
+		'Quotation': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'quotation_details':['base_ref_rate','amount','basic_rate']},
+		'Sales Invoice': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'entries':['base_ref_rate','amount','basic_rate']},
 		'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']}
+		'Sales Order': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'sales_order_details':['base_ref_rate','amount','basic_rate']}
 	},
 	
 	'fs_imports': {
@@ -144,7 +130,7 @@
 			'entries': ['purchase_ref_rate', 'amount','rate']
 		},
 		'Purchase Order': {
-			'fields': ['Note HTML', 'conversion_rate','currency', 'grand_total',
+			'fields': ['conversion_rate','currency', 'grand_total',
 			'in_words', 'net_total', 'other_charges_added',
 			 'other_charges_deducted'],
 			'po_details': ['purchase_ref_rate', 'amount','purchase_rate']
@@ -186,32 +172,31 @@
 		'Delivery Note': {'fields':['more_info']},
 	},
 	'fs_quality': {
-		'Item': {'fields':['Item Inspection Criteria','inspection_required']},
+		'Item': {'fields':['inspection_criteria','inspection_required']},
 		'Purchase Receipt': {'purchase_receipt_details':['qa_no']}
 	},
 	'fs_manufacturing': {
-		'Item': {'fields':['Manufacturing']}
+		'Item': {'fields':['manufacturing']}
 	},
 	'fs_pos': {
 		'Sales Invoice': {'fields':['is_pos']}
 	},
 	'fs_recurring_invoice': {
-		'Sales Invoice': {'fields': ['Recurring Invoice']}
+		'Sales Invoice': {'fields': ['recurring_invoice']}
 	}
 }
 
 $(document).bind('form_refresh', function() {
-	for(sys_feat in sys_defaults) {
+	for(var sys_feat in sys_defaults) {
 		if(sys_defaults[sys_feat]=='0' 
 			&& (sys_feat in pscript.feature_dict)) { //"Features to hide" exists
 
-			if(cur_frm.doc.doctype in  pscript.feature_dict[sys_feat]) {
-				for(fort in pscript.feature_dict[sys_feat][cur_frm.doc.doctype]) {
+			if(cur_frm.doc.doctype in pscript.feature_dict[sys_feat]) {
+				for(var fort in pscript.feature_dict[sys_feat][cur_frm.doc.doctype]) {
 					if(fort=='fields') {
 						hide_field(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]);
 					} else if(cur_frm.fields_dict[fort]) {
-						for(grid_field in pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort])
-							cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort][grid_field], false);
+						cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort], false);						
 					} else {
 						msgprint('Grid "'+fort+'" does not exists');
 					}
diff --git a/public/js/purchase_trends_filters.js b/public/js/purchase_trends_filters.js
index 117b9de..5a13066 100644
--- a/public/js/purchase_trends_filters.js
+++ b/public/js/purchase_trends_filters.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 var get_filters = function(){
 	return [
 		{
@@ -33,7 +36,7 @@
 			"label": "Company",
 			"fieldtype": "Link",
 			"options": "Company",
-			"default": sys_defaults.company
+			"default": wn.defaults.get_default("company")
 		},
 	];
 }
\ No newline at end of file
diff --git a/public/js/queries.js b/public/js/queries.js
index a7e137e..fbd2947 100644
--- a/public/js/queries.js
+++ b/public/js/queries.js
@@ -1,168 +1,61 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // searches for enabled profiles
-wn.provide("erpnext.utils");
-erpnext.utils.profile_query = function() {
-	return "select name, concat_ws(' ', first_name, middle_name, last_name) \
-		from `tabProfile` where ifnull(enabled, 0)=1 and docstatus < 2 and \
-		name not in ('Administrator', 'Guest') and (%(key)s like \"%s\" or \
-		concat_ws(' ', first_name, middle_name, last_name) like \"%%%s\") \
-		order by \
-		case when name like \"%s%%\" then 0 else 1 end, \
-		case when concat_ws(' ', first_name, middle_name, last_name) like \"%s%%\" \
-			then 0 else 1 end, \
-		name asc limit 50";
-};
-
-// searches for active employees
-erpnext.utils.employee_query = function() {
-	return "select name, employee_name from `tabEmployee` \
-		where status = 'Active' and docstatus < 2 and \
-		(%(key)s like \"%s\" or employee_name like \"%%%s\") \
-		order by \
-		case when name like \"%s%%\" then 0 else 1 end, \
-		case when employee_name like \"%s%%\" then 0 else 1 end, \
-		name limit 50";
-};
-
-// searches for leads which are not converted
-erpnext.utils.lead_query = function() {
-	return "select name, lead_name, company_name from `tabLead` \
-		where docstatus < 2 and ifnull(status, '') != 'Converted' and \
-		(%(key)s like \"%s\" or lead_name like \"%%%s\" or company_name like \"%%%s\") \
-		order by \
-		case when name like \"%s%%\" then 0 else 1 end, \
-		case when lead_name like \"%s%%\" then 0 else 1 end, \
-		case when company_name like \"%s%%\" then 0 else 1 end, \
-		lead_name asc limit 50";
-};
-
-// searches for customer
-erpnext.utils.customer_query = function() {
-	if(sys_defaults.cust_master_name == "Customer Name") {
-		var fields = ["name", "customer_group", "territory"];
-	} else {
-		var fields = ["name", "customer_name", "customer_group", "territory"];
-	}
-	
-	return "select " + fields.join(", ") + " from `tabCustomer` where docstatus < 2 and \
-		(%(key)s like \"%s\" or customer_name like \"%%%s\") \
-		order by \
-		case when name like \"%s%%\" then 0 else 1 end, \
-		case when customer_name like \"%s%%\" then 0 else 1 end, \
-		name, customer_name limit 50";
-};
-
-// searches for supplier
-erpnext.utils.supplier_query = function() {
-	if(sys_defaults.supp_master_name == "Supplier Name") {
-		var fields = ["name", "supplier_type"];
-	} else {
-		var fields = ["name", "supplier_name", "supplier_type"];
-	}
-	
-	return "select " + fields.join(", ") + " from `tabSupplier` where docstatus < 2 and \
-		(%(key)s like \"%s\" or supplier_name like \"%%%s\") \
-		order by \
-		case when name like \"%s%%\" then 0 else 1 end, \
-		case when supplier_name like \"%s%%\" then 0 else 1 end, \
-		name, supplier_name limit 50";
-};
-
 wn.provide("erpnext.queries");
-
-erpnext.queries.get_conditions = function(doctype, opts) {
-	conditions = [];
-	if (opts) {
-		$.each(opts, function(key, val) {
-			var lhs = "`tab" + doctype + "`.`" + key + "`";
-			
-			if(key.indexOf(doctype)!=-1) {
-				// with function
-				lhs = key;
-			}
-			
-			if (esc_quotes(val).charAt(0) != "!")
-				conditions.push(lhs + "='"+esc_quotes(val)+"'");
-			else
-				conditions.push(lhs + "!='"+esc_quotes(val).substr(1)+"'");
-		});
-	}
-	return conditions;
-}
-
-erpnext.queries.account = function(opts) {
-	if(!opts) 
-		opts = {};
-	if(!opts.group_or_ledger) 
-		opts.group_or_ledger = "Ledger";
+$.extend(erpnext.queries, {
+	profile: function() {
+		return { query: "controllers.queries.profile_query" };
+	},
+	
+	lead: function() {
+		return { query: "controllers.queries.lead_query" };
+	},
+	
+	customer: function() {
+		return { query: "controllers.queries.customer_query" };
+	},
+	
+	supplier: function() {
+		return { query: "controllers.queries.supplier_query" };
+	},
+	
+	account: function() {
+		return { query: "controllers.queries.account_query" };
+	},
+	
+	item: function() {
+		return { query: "controllers.queries.item_query" };
+	},
+	
+	bom: function() {
+		return { query: "controllers.queries.bom" };
+	},
+	
+	task: function() {
+		return { query: "projects.utils.query_task" };
+	},
+	
+	customer_filter: function(doc) {
+		if(!doc.customer) {
+			wn.throw(wn._("Please specify a") + " " + 
+				wn._(wn.meta.get_label(doc.doctype, "customer", doc.name)));
+		}
 		
-	var conditions = erpnext.queries.get_conditions("Account", opts);
+		return { filters: { customer: doc.customer } };
+	},
 	
-	return 'SELECT tabAccount.name, tabAccount.parent_account, tabAccount.debit_or_credit \
-		FROM tabAccount \
-		WHERE tabAccount.docstatus!=2 \
-		AND tabAccount.%(key)s LIKE "%s" ' + (conditions 
-			? (" AND " + conditions.join(" AND "))
-			: "")
-		+ " LIMIT 50"
-}
-
-erpnext.queries.item = function(opts) {
-	var conditions = erpnext.queries.get_conditions("Item", opts);
+	supplier_filter: function(doc) {
+		if(!doc.supplier) {
+			wn.throw(wn._("Please specify a") + " " + 
+				wn._(wn.meta.get_label(doc.doctype, "supplier", doc.name)));
+		}
+		
+		return { filters: { supplier: doc.supplier } };
+	},
 	
-	return 'SELECT tabItem.name, \
-		if(length(tabItem.item_name) > 40, \
-			concat(substr(tabItem.item_name, 1, 40), "..."), item_name) as item_name, \
-		if(length(tabItem.description) > 40, \
-			concat(substr(tabItem.description, 1, 40), "..."), description) as decription \
-		FROM tabItem \
-		WHERE tabItem.docstatus!=2 \
-		AND (ifnull(`tabItem`.`end_of_life`,"") in ("", "0000-00-00") \
-			OR `tabItem`.`end_of_life` > NOW()) \
-		AND (tabItem.%(key)s LIKE \"%s\" OR tabItem.item_name LIKE \"%%%s\")' + 
-			(conditions ? (" AND " + conditions.join(" AND ")) : "") + " LIMIT 50"
-}
-
-erpnext.queries.item_std = function() {
-	return 'SELECT tabItem.name, \
-		if(length(tabItem.item_name) > 40, \
-			concat(substr(tabItem.item_name, 1, 40), "..."), item_name) as item_name, \
-		if(length(tabItem.description) > 40, \
-			concat(substr(tabItem.description, 1, 40), "..."), description) as decription \
-		FROM tabItem \
-		WHERE tabItem.docstatus!=2 \
-		AND tabItem.%(key)s LIKE "%s" LIMIT 50';
-}
-
-erpnext.queries.bom = function(opts) {
-	var conditions = erpnext.queries.get_conditions("BOM", opts);
+	not_a_group_filter: function() {
+		return { filters: { is_group: "No" } };
+	},
 	
-	return 'SELECT tabBOM.name, tabBOM.item \
-		FROM tabBOM \
-		WHERE tabBOM.docstatus=1 \
-		AND tabBOM.is_active=1 \
-		AND tabBOM.%(key)s LIKE "%s" ' + (conditions.length 
-			? (" AND " + conditions.join(" AND "))
-			: "")
-		+ " LIMIT 50"
-
-}
-
-erpnext.queries.task = function() {
-	return { query: "projects.utils.query_task" };
-};
\ No newline at end of file
+});
\ No newline at end of file
diff --git a/public/js/sales_trends_filters.js b/public/js/sales_trends_filters.js
index f461d08..63f6e63 100644
--- a/public/js/sales_trends_filters.js
+++ b/public/js/sales_trends_filters.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 var get_filters = function(){
  	return[
 		{
@@ -33,7 +36,7 @@
 			"label": "Company",
 			"fieldtype": "Link",
 			"options": "Company",
-			"default": sys_defaults.company
+			"default": wn.defaults.get_default("company")
 		},	
 	];
 }
\ No newline at end of file
diff --git a/public/js/startup.css b/public/js/startup.css
index 2506868..ab70ee4 100644
--- a/public/js/startup.css
+++ b/public/js/startup.css
@@ -19,15 +19,6 @@
 	text-align: center;
 }
 
-.expiry-info {
-	margin-top: 40px;
-	margin-bottom: -40px;
-	text-align: center;
-	background-color: rgb(255, 255, 204);
-	padding: 7px;
-	z-index: 1;
-}
-
 .show-all-reports {
 	margin-top: 5px;
 	font-size: 11px;
@@ -37,5 +28,5 @@
 .toolbar-splash {
 	width: 32px; 
 	height: 32px; 
-	margin: -11px auto;
+	margin: -10px auto;
 }
\ No newline at end of file
diff --git a/public/js/startup.js b/public/js/startup.js
index eadfa1b..eee8a05 100644
--- a/public/js/startup.js
+++ b/public/js/startup.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 var current_module;
 
@@ -39,27 +26,30 @@
 					"</p>", wn._("Welcome"));
 			}
 		} else if(wn.boot.expires_on && in_list(user_roles, 'System Manager')) {
-			var today = dateutil.str_to_obj(wn.boot.server_date);
-			var expires_on = dateutil.str_to_obj(wn.boot.expires_on);
-			var diff = dateutil.get_diff(expires_on, today);
-			var payment_link = "<a href=\"https://erpnext.com/modes-of-payment.html\" target=\"_blank\">See Payment Options.</a>";		
-			if (0 <= diff && diff <= 15) {
-				var expiry_string = diff==0 ? "today" : repl("in %(diff)s day(s)", { diff: diff });
-				$('header').append(repl('<div class="expiry-info"> \
-					Your ERPNext subscription will <b>expire %(expiry_string)s</b>. \
-					Please renew your subscription to continue using ERPNext \
-					(and remove this annoying banner). %(payment_link)s\
-				</div>', { expiry_string: expiry_string, payment_link: payment_link }));
-			} else if (diff < 0) {
-				$('header').append(repl('<div class="expiry-info"> \
-					This ERPNext subscription <b>has expired</b>. %(payment_link)s\
-				</div>', { expiry_string: expiry_string, payment_link: payment_link }));
-			}
+			erpnext.startup.show_expiry_banner();
 		}
-		erpnext.set_about();
 	}
 }
 
+erpnext.startup.show_expiry_banner = function() {
+	var today = dateutil.str_to_obj(wn.boot.server_date);
+	var expires_on = dateutil.str_to_obj(wn.boot.expires_on);
+	var diff = dateutil.get_diff(expires_on, today);
+	var payment_link = "<a href=\"https://erpnext.com/modes-of-payment.html\" target=\"_blank\">\
+		Click here to buy subscription.</a>";
+	
+	var msg = "";
+	if (0 <= diff && diff <= 10) {
+		var expiry_string = diff==0 ? "today" : repl("in %(diff)s day(s)", { diff: diff });
+		msg = repl('Your ERPNext subscription will <b>expire %(expiry_string)s</b>. %(payment_link)s',
+			{ expiry_string: expiry_string, payment_link: payment_link });
+	} else if (diff < 0) {
+		msg = repl('This ERPNext subscription <b>has expired</b>. %(payment_link)s', {payment_link: payment_link});
+	}
+	
+	if(msg) wn.ui.toolbar.show_banner(msg);
+}
+
 // start
 $(document).bind('startup', function() {
 	erpnext.startup.start();
diff --git a/public/js/stock_analytics.js b/public/js/stock_analytics.js
index 91384f6..5b58113 100644
--- a/public/js/stock_analytics.js
+++ b/public/js/stock_analytics.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require("app/js/stock_grid_report.js");
 
@@ -162,8 +149,6 @@
 				} else {
 					break;
 				}
-				
-				me.round_item_values(item);
 			}
 		}
 	},
diff --git a/public/js/stock_grid_report.js b/public/js/stock_grid_report.js
index 173eb21..8b79b5e 100644
--- a/public/js/stock_grid_report.js
+++ b/public/js/stock_grid_report.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 erpnext.StockGridReport = wn.views.TreeGridReport.extend({
 	get_item_warehouse: function(warehouse, item) {
diff --git a/public/js/toolbar.js b/public/js/toolbar.js
index 91427b3..d2ca512 100644
--- a/public/js/toolbar.js
+++ b/public/js/toolbar.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 /* toolbar settings */
 wn.provide('erpnext.toolbar');
@@ -20,19 +7,23 @@
 erpnext.toolbar.setup = function() {
 	// profile
 	var $user = $('#toolbar-user');
-	$user.append('<li><a href="#Form/Profile/'+user+'">'
+	$user.append('<li><a href="#Form/Profile/'+user+'"><i class="icon-fixed-width icon-user"></i> '
 		+wn._("My Settings")+'...</a></li>');
 	$user.append('<li class="divider"></li>');
-	$user.append('<li><a href="https://erpnext.com/manual" target="_blank">'
-		+wn._('Documentation')+'</a></li>')
-	$user.append('<li><a href="http://groups.google.com/group/erpnext-user-forum" target="_blank">'
-		+wn._('Forum')+'</a></li>')
-	$user.append('<li><a href="http://www.providesupport.com?messenger=iwebnotes" target="_blank">\
-		'+wn._('Live Chat')+'</a></li>')
+	$user.append('<li><a href="https://erpnext.com/manual" target="_blank">\
+		<i class="icon-fixed-width icon-file"></i> '+wn._('Documentation')+'</a></li>');
+	$user.append('<li><a href="http://groups.google.com/group/erpnext-user-forum" target="_blank">\
+		<i class="icon-fixed-width icon-quote-left"></i> '+wn._('Forum')+'</a></li>');
+	
+	if(wn.boot.expires_on) {
+		$user.append('<li><a href="http://www.providesupport.com?messenger=iwebnotes" target="_blank">\
+			<i class="icon-fixed-width icon-comments"></i> '+wn._('Live Chat')+'</a></li>');
+	}
 	
 	erpnext.toolbar.set_new_comments();
 
-	$("#toolbar-tools").append('<li><a href="#latest-updates">Latest Updates</li>');
+	$("#toolbar-tools").append('<li><a href="#latest-updates">\
+		<i class="icon-fixed-width icon-rss"></i> Latest Updates</li>');
 }
 
 erpnext.toolbar.set_new_comments = function(new_comments) {
diff --git a/public/js/transaction.js b/public/js/transaction.js
index 50de3d5..118594c 100644
--- a/public/js/transaction.js
+++ b/public/js/transaction.js
@@ -1,22 +1,10 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.provide("erpnext");
+wn.require("app/js/controllers/stock_controller.js");
 
-erpnext.TransactionController = wn.ui.form.Controller.extend({
+erpnext.TransactionController = erpnext.stock.StockController.extend({
 	onload: function() {
 		if(this.frm.doc.__islocal) {
 			var me = this,
@@ -39,6 +27,24 @@
 				if(me.frm.fields_dict[fieldname] && !me.frm.doc[fieldname])
 					me.frm.set_value(fieldname, value);
 			});
+			
+			me.frm.script_manager.trigger("company");
+		}
+	},
+	
+	onload_post_render: function() {
+		if(this.frm.doc.__islocal && this.frm.doc.company && !this.frm.doc.customer) {
+			var me = this;
+			return this.frm.call({
+				doc: this.frm.doc,
+				method: "onload_post_render",
+				freeze: true,
+				callback: function(r) {
+					// remove this call when using client side mapper
+					me.set_default_values();
+					me.set_dynamic_labels();
+				}
+			});
 		}
 	},
 	
@@ -47,39 +53,31 @@
 		erpnext.hide_naming_series();
 		erpnext.hide_company();
 		this.show_item_wise_taxes();
-		this.frm.fields_dict.currency ? this.currency() : this.set_dynamic_labels();
-	},
-	
-	onload_post_render: function() {
-		if(this.frm.doc.__islocal && this.frm.doc.company) {
-			var me = this;
-			this.frm.call({
-				doc: this.frm.doc,
-				method: "onload_post_render",
-				freeze: true,
-				callback: function(r) {
-					// remove this call when using client side mapper
-					me.set_default_values();
-					me.frm.refresh();
-				}
-			});
-		}
+		this.set_dynamic_labels();
 	},
 	
 	validate: function() {
 		this.calculate_taxes_and_totals();
 	},
 	
+	set_default_values: function() {
+		$.each(wn.model.get_doclist(this.frm.doctype, this.frm.docname), function(i, doc) {
+			var updated = wn.model.set_default_values(doc);
+			if(doc.parentfield) {
+				refresh_field(doc.parentfield);
+			} else {
+				refresh_field(updated);
+			}
+		});
+	},
+	
 	company: function() {
 		if(this.frm.doc.company && this.frm.fields_dict.currency) {
-			var me = this;
-			var company_currency = this.get_company_currency();
-			$.each(["currency", "price_list_currency"], function(i, fieldname) {
-				if(!me.doc[fieldname]) {
-					me.frm.set_value(fieldname, company_currency);
-					me[fieldname]();
-				}
-			});
+			if(!this.frm.doc.currency) {
+				this.frm.set_value("currency", this.get_company_currency());
+			}
+			
+			this.frm.script_manager.trigger("currency");
 		}
 	},
 	
@@ -106,9 +104,8 @@
 	},
 	
 	conversion_rate: function() {
-		if(this.frm.doc.currency === this.get_company_currency() &&
-			this.frm.doc.conversion_rate !== 1.0) {
-				this.frm.set_value("conversion_rate", 1.0);
+		if(this.frm.doc.currency === this.get_company_currency()) {
+			this.frm.set_value("conversion_rate", 1.0);
 		} else if(this.frm.doc.currency === this.frm.doc.price_list_currency &&
 			this.frm.doc.plc_conversion_rate !== this.frm.doc.conversion_rate) {
 				this.frm.set_value("plc_conversion_rate", this.frm.doc.conversion_rate);
@@ -117,15 +114,15 @@
 		this.calculate_taxes_and_totals();
 	},
 	
-	price_list_name: function(buying_or_selling) {
+	get_price_list_currency: function(buying_or_selling) {
 		var me = this;
-		if(this.frm.doc.price_list_name) {
-			this.frm.call({
+		var fieldname = buying_or_selling.toLowerCase() + "_price_list";
+		if(this.frm.doc[fieldname]) {
+			return this.frm.call({
 				method: "setup.utils.get_price_list_currency",
-				args: { args: {
-					price_list_name: this.frm.doc.price_list_name,
-					buying_or_selling: buying_or_selling
-				}},
+				args: { 
+					price_list: this.frm.doc[fieldname],
+				},
 				callback: function(r) {
 					if(!r.exc) {
 						me.price_list_currency();
@@ -197,6 +194,7 @@
 		var company_currency = this.get_company_currency();
 		this.change_form_labels(company_currency);
 		this.change_grid_labels(company_currency);
+		this.frm.refresh_fields();
 	},
 	
 	recalculate: function() {
@@ -314,17 +312,18 @@
 					if(!item_tax[item_code]) item_tax[item_code] = {};
 					if($.isArray(tax_data)) {
 						var tax_rate = tax_data[0] == null ? "" : (flt(tax_data[0], tax_rate_precision) + "%"),
-							tax_amount = format_currency(flt(tax_data[1], tax_amount_precision), company_currency);
+							tax_amount = format_currency(flt(tax_data[1], tax_amount_precision), company_currency,
+								tax_amount_precision);
 						
-						item_tax[item_code][tax.account_head] = [tax_rate, tax_amount];
+						item_tax[item_code][tax.name] = [tax_rate, tax_amount];
 					} else {
-						item_tax[item_code][tax.account_head] = [flt(tax_data, tax_rate_precision) + "%", ""];
+						item_tax[item_code][tax.name] = [flt(tax_data, tax_rate_precision) + "%", ""];
 					}
 				});
-			tax_accounts.push(tax.account_head);
+			tax_accounts.push([tax.name, tax.account_head]);
 		});
 		
-		var headings = $.map([wn._("Item Name")].concat(tax_accounts), 
+		var headings = $.map([wn._("Item Name")].concat($.map(tax_accounts, function(head) { return head[1]; })), 
 			function(head) { return '<th style="min-width: 100px;">' + (head || "") + "</th>" }).join("\n");
 		
 		var rows = $.map(this.get_item_doclist(), function(item) {
@@ -333,7 +332,9 @@
 			return repl("<tr><td>%(item_name)s</td>%(taxes)s</tr>", {
 				item_name: item.item_name,
 				taxes: $.map(tax_accounts, function(head) {
-					return "<td>(" + item_tax_record[head][0] + ") " + item_tax_record[head][1] + "</td>"
+					return item_tax_record[head[0]] ?
+						"<td>(" + item_tax_record[head[0]][0] + ") " + item_tax_record[head[0]][1] + "</td>" :
+						"<td></td>";
 				}).join("\n")
 			});
 		}).join("\n");
@@ -345,17 +346,6 @@
 		</table></div>';
 	},
 	
-	set_default_values: function() {
-		$.each(wn.model.get_doclist(this.frm.doctype, this.frm.docname), function(i, doc) {
-			var updated = wn.model.set_default_values(doc);
-			if(doc.parentfield) {
-				refresh_field(doc.parentfield);
-			} else {
-				refresh_field(updated);
-			}
-		});
-	},
-	
 	_validate_before_fetch: function(fieldname) {
 		var me = this;
 		if(!me.frm.doc[fieldname]) {
@@ -560,7 +550,7 @@
 	get_terms: function() {
 		var me = this;
 		if(this.frm.doc.tc_name) {
-			this.frm.call({
+			return this.frm.call({
 				method: "webnotes.client.get_value",
 				args: {
 					doctype: "Terms and Conditions",
diff --git a/public/js/utils.js b/public/js/utils.js
index 743c02b..aee55ba 100644
--- a/public/js/utils.js
+++ b/public/js/utils.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 wn.provide("erpnext");
 
 $.extend(erpnext, {
@@ -20,7 +7,7 @@
 		if(!company && cur_frm)
 			company = cur_frm.doc.company;
 		if(company)
-			return wn.model.get(":Company", company).default_currency || wn.boot.sysdefaults.currency;
+			return wn.model.get_doc(":Company", company).default_currency || wn.boot.sysdefaults.currency;
 		else
 			return wn.boot.sysdefaults.currency;
 	},
diff --git a/public/js/website_utils.js b/public/js/website_utils.js
index 519d630..95cae1b 100644
--- a/public/js/website_utils.js
+++ b/public/js/website_utils.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 
 var erpnext = {};
 var wn = {};
@@ -5,7 +8,7 @@
 // Add / update a new Lead / Communication
 // subject, sender, description
 erpnext.send_message = function(opts) {
-	wn.call({
+	return wn.call({
 		type: "POST",
 		method: "website.helpers.contact.send_message",
 		args: opts,
@@ -202,7 +205,7 @@
 			}
 			window.location.href = "login";
 		} else {
-			wn.call({
+			return wn.call({
 				type: "POST",
 				method: "website.helpers.cart.update_cart",
 				args: {
diff --git a/selling/Print Format/Quotation Classic/Quotation Classic.txt b/selling/Print Format/Quotation Classic/Quotation Classic.txt
index 0a63309..e7588c4 100644
--- a/selling/Print Format/Quotation Classic/Quotation Classic.txt
+++ b/selling/Print Format/Quotation Classic/Quotation Classic.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:30:51", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:17:05", 
+  "modified": "2013-08-07 19:55:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "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 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/doc.conversion_rate) + '</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_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_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><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}\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 ' + \n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</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_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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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__", 
   "print_format_type": "Client", 
diff --git a/selling/Print Format/Quotation Modern/Quotation Modern.txt b/selling/Print Format/Quotation Modern/Quotation Modern.txt
index 0f841aa..20d380d 100644
--- a/selling/Print Format/Quotation Modern/Quotation Modern.txt
+++ b/selling/Print Format/Quotation Modern/Quotation Modern.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:30:51", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:18:02", 
+  "modified": "2013-08-07 20:12:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "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 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/doc.conversion_rate) + '</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_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_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><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        line-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 ' + \n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</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_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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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__", 
   "print_format_type": "Client", 
diff --git a/selling/Print Format/Quotation Spartan/Quotation Spartan.txt b/selling/Print Format/Quotation Spartan/Quotation Spartan.txt
index d2bfcd0..c5b4cb9 100644
--- a/selling/Print Format/Quotation Spartan/Quotation Spartan.txt
+++ b/selling/Print Format/Quotation Spartan/Quotation Spartan.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:30:51", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:18:38", 
+  "modified": "2013-08-07 19:53:01", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "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 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/doc.conversion_rate) + '</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_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_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><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}\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 ' + \n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</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_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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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__", 
   "print_format_type": "Client", 
diff --git a/selling/Print Format/Sales Order Classic/Sales Order Classic.txt b/selling/Print Format/Sales Order Classic/Sales Order Classic.txt
index 28e3af0..7f2748a 100644
--- a/selling/Print Format/Sales Order Classic/Sales Order Classic.txt
+++ b/selling/Print Format/Sales Order Classic/Sales Order Classic.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:30:51", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:20:59", 
+  "modified": "2013-08-07 19:45:49", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "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 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/doc.conversion_rate) + '</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_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><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}\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 ' + \n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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__", 
   "print_format_type": "Client", 
diff --git a/selling/Print Format/Sales Order Modern/Sales Order Modern.txt b/selling/Print Format/Sales Order Modern/Sales Order Modern.txt
index 5237068..e4102b2 100644
--- a/selling/Print Format/Sales Order Modern/Sales Order Modern.txt
+++ b/selling/Print Format/Sales Order Modern/Sales Order Modern.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:30:51", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:21:05", 
+  "modified": "2013-08-07 20:12:23", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "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 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/doc.conversion_rate) + '</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_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><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        line-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 ' + \n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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__", 
   "print_format_type": "Client", 
diff --git a/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt b/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt
index f1f5d92..105b65b 100644
--- a/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt
+++ b/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:30:51", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:20:50", 
+  "modified": "2013-08-07 19:45:59", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "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 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/doc.conversion_rate) + '</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_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><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}\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 ' + \n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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__", 
   "print_format_type": "Client", 
diff --git a/selling/doctype/campaign/campaign.js b/selling/doctype/campaign/campaign.js
index 3cad944..e8c3c69 100644
--- a/selling/doctype/campaign/campaign.js
+++ b/selling/doctype/campaign/campaign.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
  
 
diff --git a/selling/doctype/campaign/campaign.py b/selling/doctype/campaign/campaign.py
index 6c41e4f..8bb44ee 100644
--- a/selling/doctype/campaign/campaign.py
+++ b/selling/doctype/campaign/campaign.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/campaign/test_campaign.py b/selling/doctype/campaign/test_campaign.py
index 4783fff..20641a2 100644
--- a/selling/doctype/campaign/test_campaign.py
+++ b/selling/doctype/campaign/test_campaign.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{"doctype":"Campaign", "campaign_name":"_Test Campaign"}],
 	[{"doctype":"Campaign", "campaign_name":"_Test Campaign 1"}],
diff --git a/selling/doctype/customer/customer.js b/selling/doctype/customer/customer.js
index cd530a2..4e2f42c 100644
--- a/selling/doctype/customer/customer.js
+++ b/selling/doctype/customer/customer.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require('app/setup/doctype/contact_control/contact_control.js');
 
@@ -66,7 +53,7 @@
 	cur_frm.dashboard.add_doctype_badge("Delivery Note", "customer");
 	cur_frm.dashboard.add_doctype_badge("Sales Invoice", "customer");
 	
-	wn.call({
+	return wn.call({
 		type: "GET",
 		method:"selling.doctype.customer.customer.get_dashboard_info",
 		args: {
diff --git a/selling/doctype/customer/customer.py b/selling/doctype/customer/customer.py
index 9022cb5..f516ef2 100644
--- a/selling/doctype/customer/customer.py
+++ b/selling/doctype/customer/customer.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/customer/customer.txt b/selling/doctype/customer/customer.txt
index 5b8e323..7da29d2 100644
--- a/selling/doctype/customer/customer.txt
+++ b/selling/doctype/customer/customer.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-11 14:26:44", 
   "docstatus": 0, 
-  "modified": "2013-07-11 16:53:18", 
+  "modified": "2013-08-08 14:22:13", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -80,7 +80,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "options": "\nCUST\nCUSTMUM", 
   "permlevel": 0, 
@@ -334,6 +334,21 @@
   "permlevel": 0
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "customer_discount_section", 
+  "fieldtype": "Section Break", 
+  "label": "Customer Discount", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "customer_discounts", 
+  "fieldtype": "Table", 
+  "label": "Customer Discounts", 
+  "options": "Customer Discount", 
+  "permlevel": 0
+ }, 
+ {
   "amend": 0, 
   "cancel": 0, 
   "create": 1, 
diff --git a/selling/doctype/customer/test_customer.py b/selling/doctype/customer/test_customer.py
index 806585f..9ed821a 100644
--- a/selling/doctype/customer/test_customer.py
+++ b/selling/doctype/customer/test_customer.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 
 import webnotes
diff --git a/utilities/page/markdown_reference/markdown_reference.css b/selling/doctype/customer_discount/__init__.py
similarity index 100%
copy from utilities/page/markdown_reference/markdown_reference.css
copy to selling/doctype/customer_discount/__init__.py
diff --git a/selling/doctype/customer_discount/customer_discount.py b/selling/doctype/customer_discount/customer_discount.py
new file mode 100644
index 0000000..784339d
--- /dev/null
+++ b/selling/doctype/customer_discount/customer_discount.py
@@ -0,0 +1,11 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+class DocType:
+	def __init__(self, d, dl):
+		self.doc, self.doclist = d, dl
\ No newline at end of file
diff --git a/selling/doctype/customer_discount/customer_discount.txt b/selling/doctype/customer_discount/customer_discount.txt
new file mode 100644
index 0000000..e7b7822
--- /dev/null
+++ b/selling/doctype/customer_discount/customer_discount.txt
@@ -0,0 +1,42 @@
+[
+ {
+  "creation": "2013-07-22 12:43:40", 
+  "docstatus": 0, 
+  "modified": "2013-07-22 12:49:32", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "doctype": "DocType", 
+  "istable": 1, 
+  "module": "Selling", 
+  "name": "__common__"
+ }, 
+ {
+  "doctype": "DocField", 
+  "in_list_view": 1, 
+  "name": "__common__", 
+  "parent": "Customer Discount", 
+  "parentfield": "fields", 
+  "parenttype": "DocType", 
+  "permlevel": 0, 
+  "reqd": 1
+ }, 
+ {
+  "doctype": "DocType", 
+  "name": "Customer Discount"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "item_group", 
+  "fieldtype": "Link", 
+  "label": "Item Group", 
+  "options": "Item Group"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "discount", 
+  "fieldtype": "Currency", 
+  "label": "Discount (%)"
+ }
+]
\ No newline at end of file
diff --git a/selling/doctype/industry_type/industry_type.js b/selling/doctype/industry_type/industry_type.js
index 3cad944..e8c3c69 100644
--- a/selling/doctype/industry_type/industry_type.js
+++ b/selling/doctype/industry_type/industry_type.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
  
 
diff --git a/selling/doctype/industry_type/industry_type.py b/selling/doctype/industry_type/industry_type.py
index 6c41e4f..8bb44ee 100644
--- a/selling/doctype/industry_type/industry_type.py
+++ b/selling/doctype/industry_type/industry_type.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/industry_type/test_industry_type.py b/selling/doctype/industry_type/test_industry_type.py
index 3440807..84ca31e 100644
--- a/selling/doctype/industry_type/test_industry_type.py
+++ b/selling/doctype/industry_type/test_industry_type.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{"doctype":"Industry Type", "industry":"_Test Industry"}],
 	[{"doctype":"Industry Type", "industry":"_Test Industry 1"}],
diff --git a/selling/doctype/installation_note/installation_note.js b/selling/doctype/installation_note/installation_note.js
index 3f02c83..4476c95 100644
--- a/selling/doctype/installation_note/installation_note.js
+++ b/selling/doctype/installation_note/installation_note.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.tname = "Installation Note Item";
 cur_frm.cscript.fname = "installed_item_details";
@@ -48,12 +35,6 @@
 			}
 		});
 		
-		this.frm.set_query("territory", function() {
-			return {
-				filters: {'is_group': "No" }
-			}
-		});
-		
 		this.frm.set_query("customer", function() {
 			return {
 				query: "controllers.queries.customer_query"
@@ -84,12 +65,9 @@
 	customer: function() {
 		var me = this;
 		if(this.frm.doc.customer) {
-			this.frm.call({
+			return this.frm.call({
 				doc: this.frm.doc,
 				method: "set_customer_defaults",
-				callback: function(r) {
-					if(!r.exc) me.frm.refresh_fields();
-				}
 			});
 			
 			// TODO shift this to depends_on
@@ -102,7 +80,7 @@
 	customer_address: function() {
 		var me = this;
 		if(this.frm.doc.customer) {
-			this.frm.call({
+			return this.frm.call({
 				doc: this.frm.doc,
 				args: {
 					customer: this.frm.doc.customer, 
@@ -111,9 +89,6 @@
 				},
 				method: "get_customer_address",
 				freeze: true,
-				callback: function(r) {
-					me.frm.refresh_fields();
-				}
 			});
 		}
 	},
diff --git a/selling/doctype/installation_note/installation_note.py b/selling/doctype/installation_note/installation_note.py
index fd85443..93a1bc1 100644
--- a/selling/doctype/installation_note/installation_note.py
+++ b/selling/doctype/installation_note/installation_note.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/installation_note/installation_note.txt b/selling/doctype/installation_note/installation_note.txt
index 7486586..ec42455 100644
--- a/selling/doctype/installation_note/installation_note.txt
+++ b/selling/doctype/installation_note/installation_note.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-30 13:13:06", 
   "docstatus": 0, 
-  "modified": "2013-07-15 17:09:08", 
+  "modified": "2013-08-08 14:22:13", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,7 +29,8 @@
   "parentfield": "permissions", 
   "parenttype": "DocType", 
   "read": 1, 
-  "report": 1
+  "report": 1, 
+  "role": "Sales User"
  }, 
  {
   "doctype": "DocType", 
@@ -53,7 +54,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -255,7 +256,6 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "permlevel": 0, 
-  "role": "System Manager", 
   "submit": 1, 
   "write": 1
  }, 
@@ -265,45 +265,6 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "permlevel": 1, 
-  "role": "System Manager", 
-  "submit": 0
- }, 
- {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "Sales User", 
-  "submit": 1, 
-  "write": 1
- }, 
- {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "Sales User", 
-  "submit": 0
- }, 
- {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "Sales Manager", 
-  "submit": 1, 
-  "write": 1
- }, 
- {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "Sales Manager", 
   "submit": 0
  }
 ]
\ No newline at end of file
diff --git a/selling/doctype/installation_note_item/installation_note_item.py b/selling/doctype/installation_note_item/installation_note_item.py
index 7f48feb..26d0f76 100644
--- a/selling/doctype/installation_note_item/installation_note_item.py
+++ b/selling/doctype/installation_note_item/installation_note_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/lead/get_leads.py b/selling/doctype/lead/get_leads.py
index 892bfd9..c376f45 100644
--- a/selling/doctype/lead/get_leads.py
+++ b/selling/doctype/lead/get_leads.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/lead/lead.js b/selling/doctype/lead/lead.js
index a20b331..4088739 100644
--- a/selling/doctype/lead/lead.js
+++ b/selling/doctype/lead/lead.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require('app/utilities/doctype/sms_control/sms_control.js');
 wn.require('app/setup/doctype/contact_control/contact_control.js');
diff --git a/selling/doctype/lead/lead.py b/selling/doctype/lead/lead.py
index 4ec213c..b2016aa 100644
--- a/selling/doctype/lead/lead.py
+++ b/selling/doctype/lead/lead.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/lead/lead.txt b/selling/doctype/lead/lead.txt
index 28a8ff4..d66c6a0 100644
--- a/selling/doctype/lead/lead.txt
+++ b/selling/doctype/lead/lead.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-10 11:45:37", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:44:00", 
+  "modified": "2013-08-08 14:22:14", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -53,7 +53,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -111,7 +111,7 @@
   "no_copy": 1, 
   "oldfieldname": "status", 
   "oldfieldtype": "Select", 
-  "options": "\nOpen\nReplied\nAttempted to Contact\nContact in Future\nContacted\nInterested\nNot interested\nLead Lost\nConverted", 
+  "options": "\nOpen\nReplied\nAttempted to Contact\nContact in Future\nContacted\nInterested\nNot interested\nLead Lost\nConverted\nPassive", 
   "reqd": 1, 
   "search_index": 1
  }, 
diff --git a/selling/doctype/lead/test_lead.py b/selling/doctype/lead/test_lead.py
index 3893a3f..3be3ada 100644
--- a/selling/doctype/lead/test_lead.py
+++ b/selling/doctype/lead/test_lead.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 
 test_records = [
diff --git a/selling/doctype/opportunity/opportunity.js b/selling/doctype/opportunity/opportunity.js
index b87fee1..1ec3f3f 100644
--- a/selling/doctype/opportunity/opportunity.js
+++ b/selling/doctype/opportunity/opportunity.js
@@ -1,39 +1,87 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require('app/utilities/doctype/sms_control/sms_control.js');
 
 wn.provide("erpnext.selling");
 // TODO commonify this code
 erpnext.selling.Opportunity = wn.ui.form.Controller.extend({
+	onload: function() {
+		if(!this.frm.doc.enquiry_from && this.frm.doc.customer)
+			this.frm.doc.enquiry_from = "Customer";
+		if(!this.frm.doc.enquiry_from && this.frm.doc.lead)
+			this.frm.doc.enquiry_from = "Lead";
+
+		if(!this.frm.doc.enquiry_from) 
+			hide_field(['customer', 'customer_address', 'contact_person', 'customer_name','lead', 'address_display', 'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']);
+		if(!this.frm.doc.status) 
+			set_multiple(cdt,cdn,{status:'Draft'});
+		if(!this.frm.doc.date) 
+			this.frm.doc.transaction_date = date.obj_to_str(new Date());
+		if(!this.frm.doc.company && wn.defaults.get_default("company")) 
+			set_multiple(cdt,cdn,{company:wn.defaults.get_default("company")});
+		if(!this.frm.doc.fiscal_year && sys_defaults.fiscal_year) 
+			set_multiple(cdt,cdn,{fiscal_year:sys_defaults.fiscal_year});		
+	
+		if(this.frm.doc.enquiry_from) {
+			if(this.frm.doc.enquiry_from == 'Customer') {
+				hide_field('lead');
+			}
+			else if (this.frm.doc.enquiry_from == 'Lead') {
+				hide_field(['customer', 'customer_address', 'contact_person', 'customer_group']);
+			}
+		} 
+
+		if(!this.frm.doc.__islocal) {
+			cur_frm.communication_view = new wn.views.CommunicationList({
+				list: wn.model.get("Communication", {"opportunity": this.frm.doc.name}),
+				parent: cur_frm.fields_dict.communication_html.wrapper,
+				doc: this.frm.doc,
+				recipients: this.frm.doc.contact_email
+			});
+		}
+		
+		if(this.frm.doc.customer && !this.frm.doc.customer_name) cur_frm.cscript.customer(this.frm.doc);
+		
+		this.setup_queries();
+	},
+	
+	setup_queries: function() {
+		var me = this;
+		
+		if(this.frm.fields_dict.contact_by.df.options.match(/^Profile/)) {
+			this.frm.set_query("contact_by", erpnext.queries.profile);
+		}
+		
+		this.frm.set_query("item_code", "enquiry_details", function() {
+			return {
+				query: "controllers.queries.item_query",
+				filters: me.frm.doc.enquiry_type === "Maintenance" ? 
+					{"is_service_item": "Yes"} : {"is_sales_item": "Yes"}
+			};
+		});
+		
+		$.each([["lead", "lead"],
+			["customer", "customer"],
+			["customer_address", "customer_filter"], 
+			["contact_person", "customer_filter"],
+			["territory", "not_a_group_filter"]], function(i, opts) {
+				me.frm.set_query(opts[0], erpnext.queries[opts[1]]);
+			});
+	},
+	
 	customer: function() {
 		var me = this;
 		if(this.frm.doc.customer) {
-			this.frm.call({
-				doc: this.frm.doc,
-				method: "set_customer_defaults",
-				callback: function(r) {
-					if(!r.exc) me.frm.refresh_fields();
-				}
-			});
-			
 			// TODO shift this to depends_on
 			unhide_field(['customer_address', 'contact_person', 'customer_name',
 				'address_display', 'contact_display', 'contact_mobile', 'contact_email', 
 				'territory', 'customer_group']);
+				
+			return this.frm.call({
+				doc: this.frm.doc,
+				method: "set_customer_defaults",
+			});
 		}
 	}, 
 	
@@ -70,52 +118,6 @@
 	
 }
 
-// ONLOAD
-// ===============================================================
-cur_frm.cscript.onload = function(doc, cdt, cdn) {
-
-	if(!doc.enquiry_from && doc.customer)
-		doc.enquiry_from = "Customer";
-	if(!doc.enquiry_from && doc.lead)
-		doc.enquiry_from = "Lead";
-
-	if(!doc.enquiry_from) 
-		hide_field(['customer', 'customer_address', 'contact_person', 'customer_name','lead', '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');
-		}
-		else if (doc.enquiry_from == 'Lead') {
-			hide_field(['customer', 'customer_address', 'contact_person', 'customer_group']);
-		}
-	} 
-
-	if(!doc.__islocal) {
-		cur_frm.communication_view = new wn.views.CommunicationList({
-			list: wn.model.get("Communication", {"opportunity": doc.name}),
-			parent: cur_frm.fields_dict.communication_html.wrapper,
-			doc: doc,
-			recipients: doc.contact_email
-		});
-	}
-	
-	if(cur_frm.fields_dict.contact_by.df.options.match(/^Profile/)) {
-		cur_frm.fields_dict.contact_by.get_query = function(doc,cdt,cdn) {
-				return { query:"controllers.queries.profile_query" } }
-	}
-	
-	if(doc.customer && !doc.customer_name) cur_frm.cscript.customer(doc);
-}
-
 cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) {
 	if(doc.enquiry_from == 'Lead' && doc.lead) {
 	 	cur_frm.cscript.lead(doc,cdt,cdn);
@@ -125,7 +127,7 @@
 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);
+		return get_server_fields('get_item_details',d.item_code, 'enquiry_details',doc, cdt,cdn,1);
 	}
 }
 
@@ -150,27 +152,7 @@
 }
 
 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'].get_query = function(doc, cdt, cdn) {
-	return {
-		filters:{'customer':doc.customer}
-	}
-}
-
-cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-	if (!doc.customer) msgprint("Please select customer first");
-	else {
-		filters:{'customer':doc.customer}
-	}
-}
-
-// lead
-cur_frm.fields_dict['lead'].get_query = function(doc,cdt,cdn){
-	return {
-		query: "selling.doctype.opportunity.opportunity.get_lead"
-	}
+	if(doc.customer) return 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.cscript.lead = function(doc, cdt, cdn) {
@@ -185,19 +167,7 @@
 		'contact_email', 'territory']);	
 }
 
-cur_frm.fields_dict['enquiry_details'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
-	if (doc.enquiry_type == 'Maintenance') {
-		return {
-			query:"controllers.queries.item_query",
-			filters:{ 'is_service_item': 'Yes' }
-		}
-	} else {
-		return {
-			query:"controllers.queries.item_query",
-			filters:{ 'is_sales_item': 'Yes' }
-		}		
-	}
-}
+
 
 cur_frm.cscript['Declare Opportunity Lost'] = function(){
 	var dialog = new wn.ui.Dialog({
@@ -212,7 +182,7 @@
 	dialog.fields_dict.update.$input.click(function() {
 		args = dialog.get_values();
 		if(!args) return;
-		cur_frm.call({
+		return cur_frm.call({
 			doc: cur_frm.doc,
 			method: "declare_enquiry_lost",
 			args: args.reason,
@@ -222,23 +192,10 @@
 					return;
 				}
 				dialog.hide();
-				cur_frm.refresh();
 			},
 			btn: this
 		})
 	});
 	dialog.show();
 	
-}
-
-//get query select Territory
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters:{'is_group': 'No'}
-	}	
-	
-cur_frm.fields_dict.lead.get_query = function(doc,cdt,cdn) {
-				return { query:"controllers.queries.lead_query" } }
-
-cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
-				return { query:"controllers.queries.customer_query" } }
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/selling/doctype/opportunity/opportunity.py b/selling/doctype/opportunity/opportunity.py
index d4a97b6..906e547 100644
--- a/selling/doctype/opportunity/opportunity.py
+++ b/selling/doctype/opportunity/opportunity.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -24,6 +11,7 @@
 sql = webnotes.conn.sql
 	
 from utilities.transaction_base import TransactionBase
+
 class DocType(TransactionBase):
 	def __init__(self,doc,doclist):
 		self.doc = doc
@@ -138,6 +126,7 @@
 	def validate(self):
 		self.set_last_contact_date()
 		self.validate_item_details()
+		self.validate_uom_is_integer("uom", "qty")
 		self.validate_lead_cust()
 		
 		from accounts.utils import validate_fiscal_year
@@ -197,14 +186,4 @@
 		}
 	}, target_doclist)
 		
-	return [d.fields for d in doclist]
-
-def get_lead(doctype, txt, searchfield, start, page_len, filters):
-	from controllers.queries import get_match_cond
-	return webnotes.conn.sql ("""select `tabLead`.name, `tabLead`.lead_name FROM `tabLead` 
-			where `tabLead`.%(key)s like "%(txt)s" 
-				%(mcond)s	
-			order by `tabLead`.`name` asc 
-			limit %(start)s, %(page_len)s """ % {'key': searchfield, 
-			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield),
-			'start': start, 'page_len': page_len})
\ No newline at end of file
+	return [d.fields for d in doclist]
\ No newline at end of file
diff --git a/selling/doctype/opportunity/opportunity.txt b/selling/doctype/opportunity/opportunity.txt
index 318bb49..5b1d93f 100644
--- a/selling/doctype/opportunity/opportunity.txt
+++ b/selling/doctype/opportunity/opportunity.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 18:50:30", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:47:52", 
+  "modified": "2013-08-08 14:22:15", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -56,7 +56,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
diff --git a/selling/doctype/opportunity_item/opportunity_item.py b/selling/doctype/opportunity_item/opportunity_item.py
index 7f48feb..26d0f76 100644
--- a/selling/doctype/opportunity_item/opportunity_item.py
+++ b/selling/doctype/opportunity_item/opportunity_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js
index af49bb3..fcebe35 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/selling/doctype/quotation/quotation.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // Module CRM
 // =====================================================================================
@@ -114,7 +101,8 @@
 
 cur_frm.cscript.lead = function(doc, cdt, cdn) {
 	if(doc.lead) {
-		cur_frm.call({
+		unhide_field('territory');
+		return cur_frm.call({
 			doc: cur_frm.doc,
 			method: "set_lead_defaults",
 			callback: function(r) {
@@ -123,7 +111,6 @@
 				}
 			}
 		});
-		unhide_field('territory');
 	}
 }
 
@@ -152,7 +139,7 @@
 	dialog.fields_dict.update.$input.click(function() {
 		args = dialog.get_values();
 		if(!args) return;
-		cur_frm.call({
+		return cur_frm.call({
 			method: "declare_order_lost",
 			doc: cur_frm.doc,
 			args: args.reason,
diff --git a/selling/doctype/quotation/quotation.py b/selling/doctype/quotation/quotation.py
index 1b286d1..b6ff1d7 100644
--- a/selling/doctype/quotation/quotation.py
+++ b/selling/doctype/quotation/quotation.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -135,6 +122,9 @@
 		self.set_last_contact_date()
 		self.validate_order_type()
 		self.validate_for_items()
+
+		self.validate_uom_is_integer("stock_uom", "qty")
+
 		sales_com_obj = get_obj('Sales Common')
 		sales_com_obj.check_active_sales_items(self)
 		sales_com_obj.validate_max_discount(self,'quotation_details')
@@ -250,8 +240,7 @@
 				"doctype": "Sales Order Item", 
 				"field_map": {
 					"parent": "prevdoc_docname"
-				}, 
-				"add_if_empty": True
+				}
 			}, 
 			"Sales Taxes and Charges": {
 				"doctype": "Sales Taxes and Charges",
diff --git a/selling/doctype/quotation/quotation.txt b/selling/doctype/quotation/quotation.txt
index 19eefa3..c3b2434 100644
--- a/selling/doctype/quotation/quotation.txt
+++ b/selling/doctype/quotation/quotation.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:08", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:48:56", 
+  "modified": "2013-08-09 14:46:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -62,7 +62,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -280,13 +280,13 @@
  {
   "description": "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.", 
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
-  "fieldtype": "Select", 
+  "fieldname": "selling_price_list", 
+  "fieldtype": "Link", 
   "in_filter": 1, 
   "label": "Price List", 
   "oldfieldname": "price_list_name", 
   "oldfieldtype": "Select", 
-  "options": "link:Price List", 
+  "options": "Price List", 
   "print_hide": 1, 
   "read_only": 0, 
   "reqd": 1, 
@@ -301,7 +301,7 @@
   "label": "Price List Currency", 
   "options": "Currency", 
   "print_hide": 1, 
-  "read_only": 0, 
+  "read_only": 1, 
   "reqd": 1
  }, 
  {
@@ -728,6 +728,7 @@
   "fieldname": "status", 
   "fieldtype": "Select", 
   "in_filter": 1, 
+  "in_list_view": 1, 
   "label": "Status", 
   "no_copy": 1, 
   "oldfieldname": "status", 
diff --git a/selling/doctype/quotation/test_quotation.py b/selling/doctype/quotation/test_quotation.py
index 49fa736..cf3881d 100644
--- a/selling/doctype/quotation/test_quotation.py
+++ b/selling/doctype/quotation/test_quotation.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, json
 from webnotes.utils import flt
 import unittest
@@ -41,7 +44,7 @@
 			"order_type": "Sales",
 			"plc_conversion_rate": 1.0, 
 			"price_list_currency": "INR", 
-			"price_list_name": "_Test Price List", 
+			"selling_price_list": "_Test Price List", 
 			"territory": "_Test Territory", 
 			"transaction_date": "2013-02-21",
 			"grand_total": 1000.0, 
diff --git a/selling/doctype/quotation_item/quotation_item.py b/selling/doctype/quotation_item/quotation_item.py
index 7f48feb..26d0f76 100644
--- a/selling/doctype/quotation_item/quotation_item.py
+++ b/selling/doctype/quotation_item/quotation_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/quotation_item/quotation_item.txt b/selling/doctype/quotation_item/quotation_item.txt
index 32b8421..c38116a 100644
--- a/selling/doctype/quotation_item/quotation_item.txt
+++ b/selling/doctype/quotation_item/quotation_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:42:57", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:18", 
+  "modified": "2013-08-07 14:44:28", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -91,7 +91,6 @@
   "label": "Quantity and Rate"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
@@ -110,11 +109,12 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "print_hide": 0, 
   "print_width": "100px", 
   "read_only": 1, 
@@ -122,7 +122,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "ref_rate", 
   "fieldtype": "Currency", 
@@ -138,7 +137,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "adj_rate", 
   "fieldtype": "Float", 
@@ -152,7 +150,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "export_rate", 
   "fieldtype": "Currency", 
@@ -170,7 +167,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "export_amount", 
   "fieldtype": "Currency", 
@@ -202,7 +198,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "basic_rate", 
   "fieldtype": "Currency", 
@@ -220,7 +215,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
diff --git a/selling/doctype/sales_bom/sales_bom.js b/selling/doctype/sales_bom/sales_bom.js
index 7d79340..80e66b8 100644
--- a/selling/doctype/sales_bom/sales_bom.js
+++ b/selling/doctype/sales_bom/sales_bom.js
@@ -1,24 +1,11 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.refresh = function(doc, cdt, cdn) {
 	cur_frm.toggle_enable('new_item_code', doc.__islocal);
 	if(!doc.__islocal) {
 		cur_frm.add_custom_button("Check for Duplicates", function() {
-			cur_frm.call_server('check_duplicate', 1)			
+			return cur_frm.call_server('check_duplicate', 1)			
 		}, 'icon-search')
 	}
 }
@@ -34,6 +21,6 @@
 cur_frm.cscript.item_code = function(doc, dt, dn) {
 	var d = locals[dt][dn];
 	if (d.item_code){
-		get_server_fields('get_item_details', d.item_code, 'sales_bom_items', doc ,dt, dn, 1);
+		return get_server_fields('get_item_details', d.item_code, 'sales_bom_items', doc ,dt, dn, 1);
 	}
 }
\ No newline at end of file
diff --git a/selling/doctype/sales_bom/sales_bom.py b/selling/doctype/sales_bom/sales_bom.py
index 13f68aa..8bcac17 100644
--- a/selling/doctype/sales_bom/sales_bom.py
+++ b/selling/doctype/sales_bom/sales_bom.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -31,6 +18,9 @@
 		self.check_duplicate()
 		self.validate_main_item()
 
+		from utilities.transaction_base import validate_uom_is_integer
+		validate_uom_is_integer(self.doclist, "uom", "qty")
+
 	def validate_main_item(self):
 		"""main item must have Is Stock Item as No and Is Sales Item as Yes"""
 		if not webnotes.conn.sql("""select name from tabItem where name=%s and
@@ -42,7 +32,7 @@
 		det = webnotes.conn.sql("""select description, stock_uom from `tabItem` 
 			where name = %s""", name)
 		rate = webnotes.conn.sql("""select ref_rate from `tabItem Price` 
-			where price_list_name = %s and parent = %s 
+			where price_list = %s and parent = %s 
 			and ref_currency = %s""", (self.doc.price_list, name, self.doc.currency))
 		return {
 			'description' : det and det[0][0] or '', 
@@ -89,7 +79,7 @@
 
 	return webnotes.conn.sql("""select name, description from tabItem 
 		where is_stock_item="No" and is_sales_item="Yes"
-		and name not in (select name from `tabSales BOM`) and %s like "%s" 
+		and name not in (select name from `tabSales BOM`) and %s like %s
 		%s limit %s, %s""" % (searchfield, "%s", 
 		get_match_cond(doctype, searchfield),"%s", "%s"), 
 		("%%%s%%" % txt, start, page_len))
\ No newline at end of file
diff --git a/selling/doctype/sales_bom/test_sales_bom.py b/selling/doctype/sales_bom/test_sales_bom.py
index 850616f..7d273a9 100644
--- a/selling/doctype/sales_bom/test_sales_bom.py
+++ b/selling/doctype/sales_bom/test_sales_bom.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[
 		{
diff --git a/selling/doctype/sales_bom_item/sales_bom_item.py b/selling/doctype/sales_bom_item/sales_bom_item.py
index 7f48feb..26d0f76 100644
--- a/selling/doctype/sales_bom_item/sales_bom_item.py
+++ b/selling/doctype/sales_bom_item/sales_bom_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js
index 9c11eea..fe90b5b 100644
--- a/selling/doctype/sales_common/sales_common.js
+++ b/selling/doctype/sales_common/sales_common.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // Preset
 // ------
@@ -29,6 +16,7 @@
 		this._super();
 		this.toggle_rounded_total();
 		this.setup_queries();
+		this.toggle_editable_price_list_rate();
 	},
 	
 	setup_queries: function() {
@@ -36,22 +24,15 @@
 		
 		this.frm.add_fetch("sales_partner", "commission_rate", "commission_rate");
 		
-		if(this.frm.fields_dict.shipping_address_name && this.frm.fields_dict.customer_address) {
-			this.frm.fields_dict.shipping_address_name.get_query = 
-				this.frm.fields_dict['customer_address'].get_query;
-		}
-		
-		this.frm.set_query("customer_address", function() {
-			return {
-				filters: {'customer': me.frm.doc.customer }
-			}
-		});
-		
-		this.frm.set_query("contact_person", function() {
-			return {
-				filters: {'customer': me.frm.doc.customer }
-			}
-		});
+		$.each([["customer_address", "customer_filter"], 
+			["shipping_address_name", "customer_filter"],
+			["contact_person", "customer_filter"], 
+			["customer", "customer"], 
+			["lead", "lead"]], 
+			function(i, opts) {
+				if(me.frm.fields_dict[opts[0]]) 
+					me.frm.set_query(opts[0], erpnext.queries[opts[1]]);
+			});
 		
 		if(this.frm.fields_dict.charge) {
 			this.frm.set_query("charge", function() {
@@ -63,12 +44,22 @@
 				}
 			});
 		}
-		
-		this.frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
-			return{	query:"controllers.queries.customer_query" } }
 
-		this.frm.fields_dict.lead && this.frm.set_query("lead", function(doc,cdt,cdn) {
-			return{	query:"controllers.queries.lead_query" } });
+		if(this.frm.fields_dict.selling_price_list) {
+			this.frm.set_query("selling_price_list", function() {
+				return { filters: { buying_or_selling: "Selling" } };
+			});
+		
+			this.frm.set_query("price_list_currency", function() {
+				return {
+					query: "controllers.queries.get_price_list_currency",
+					filters: {
+						price_list: me.frm.doc.selling_price_list,
+						buying_or_selling: "Selling"
+					}					
+				};
+			});
+		}
 			
 		if(!this.fname) {
 			return;
@@ -112,12 +103,20 @@
 				}
 			});
 		}
+		
+		if(this.frm.fields_dict.sales_team && this.frm.fields_dict.sales_team.grid.get_field("sales_person")) {
+			this.frm.set_query("sales_person", "sales_team", erpnext.queries.not_a_group_filter);
+		}
 	},
 	
-	refresh: function(doc) {
+	refresh: function() {
+		this._super();
 		this.frm.toggle_display("customer_name", 
 			(this.customer_name && this.frm.doc.customer_name!==this.frm.doc.customer));
-		this._super();
+		if(this.frm.fields_dict.packing_details) {
+			var packing_list_exists = this.frm.get_doclist({parentfield: "packing_details"}).length;
+			this.frm.toggle_display("packing_list", packing_list_exists ? true : false);
+		}
 	},
 	
 	customer: function() {
@@ -127,16 +126,15 @@
 				this.frm.set_value("customer", null);
 				msgprint(wn._("Please specify Company"));
 			} else {
-				var price_list_name = this.frm.doc.price_list_name;
-				this.frm.call({
+				var selling_price_list = this.frm.doc.selling_price_list;
+				return this.frm.call({
 					doc: this.frm.doc,
 					method: "set_customer_defaults",
 					freeze: true,
 					callback: function(r) {
 						if(!r.exc) {
-							me.frm.refresh_fields();
-							(me.frm.doc.price_list_name !== price_list_name) ? 
-								me.price_list_name() :
+							(me.frm.doc.selling_price_list !== selling_price_list) ? 
+								me.selling_price_list() :
 								me.price_list_currency();
 						}
 					}
@@ -148,18 +146,15 @@
 	customer_address: function() {
 		var me = this;
 		if(this.frm.doc.customer) {
-			this.frm.call({
+			return this.frm.call({
 				doc: this.frm.doc,
 				args: {
 					customer: this.frm.doc.customer, 
 					address: this.frm.doc.customer_address, 
 					contact: this.frm.doc.contact_person
 				},
-				method: "get_customer_address",
+				method: "set_customer_address",
 				freeze: true,
-				callback: function(r) {
-					me.frm.refresh_fields();
-				}
 			});
 		}
 	},
@@ -180,7 +175,7 @@
 				item.item_code = null;
 				refresh_field("item_code", item.name, item.parentfield);
 			} else {
-				this.frm.call({
+				return this.frm.call({
 					method: "selling.utils.get_item_details",
 					child: item,
 					args: {
@@ -189,10 +184,11 @@
 							barcode: item.barcode,
 							warehouse: item.warehouse,
 							doctype: me.frm.doc.doctype,
+							parentfield: item.parentfield,
 							customer: me.frm.doc.customer,
 							currency: me.frm.doc.currency,
 							conversion_rate: me.frm.doc.conversion_rate,
-							price_list_name: me.frm.doc.price_list_name,
+							selling_price_list: me.frm.doc.selling_price_list,
 							price_list_currency: me.frm.doc.price_list_currency,
 							plc_conversion_rate: me.frm.doc.plc_conversion_rate,
 							company: me.frm.doc.company,
@@ -202,7 +198,7 @@
 					},
 					callback: function(r) {
 						if(!r.exc) {
-							me.ref_rate(me.frm.doc, cdt, cdn);
+							me.frm.script_manager.trigger("ref_rate", cdt, cdn);
 						}
 					}
 				});
@@ -210,8 +206,8 @@
 		}
 	},
 	
-	price_list_name: function() {
-		this._super("Selling");
+	selling_price_list: function() {
+		this.get_price_list_currency("Selling");
 	},
 	
 	ref_rate: function(doc, cdt, cdn) {
@@ -286,14 +282,14 @@
 	},
 	
 	warehouse: function(doc, cdt, cdn) {
-		var item = webnotes.get_doc(cdt, cdn);
-		if(item.item_code && (item.warehouse || item.reserved_warehouse)) {
-			this.frm.call({
+		var item = wn.model.get_doc(cdt, cdn);
+		if(item.item_code && item.warehouse) {
+			return this.frm.call({
 				method: "selling.utils.get_available_qty",
 				child: item,
 				args: {
 					item_code: item.item_code,
-					warehouse: item.warehouse || item.reserved_warehouse,
+					warehouse: item.warehouse,
 				},
 			});
 		}
@@ -309,6 +305,15 @@
 		}
 	},
 	
+	toggle_editable_price_list_rate: function() {
+		var df = wn.meta.get_docfield(this.tname, "ref_rate", this.frm.doc.name);
+		var editable_price_list_rate = cint(wn.defaults.get_default("editable_price_list_rate"));
+		
+		if(df && editable_price_list_rate) {
+			df.read_only = 0;
+		}
+	},
+	
 	calculate_taxes_and_totals: function() {
 		this._super();
 		this.calculate_total_advance("Sales Invoice", "advance_adjustment_details");
@@ -354,11 +359,11 @@
 			});
 			
 			if(cumulated_tax_fraction) {
-				item.basic_rate = flt(
-					(item.export_rate * me.frm.doc.conversion_rate) / (1 + cumulated_tax_fraction),
-					precision("basic_rate", item));
-				
-				item.amount = flt(item.basic_rate * item.qty, precision("amount", item));
+				item.amount = flt(
+					(item.export_amount * me.frm.doc.conversion_rate) / (1 + cumulated_tax_fraction),
+					precision("amount", item));
+					
+				item.basic_rate = flt(item.amount / item.qty, precision("basic_rate", item));
 				
 				if(item.adj_rate == 100) {
 					item.base_ref_rate = item.basic_rate;
@@ -480,7 +485,7 @@
 	charge: function() {
 		var me = this;
 		if(this.frm.doc.charge) {
-			this.frm.call({
+			return this.frm.call({
 				doc: this.frm.doc,
 				method: "get_other_charges",
 				callback: function(r) {
@@ -495,7 +500,7 @@
 	shipping_rule: function() {
 		var me = this;
 		if(this.frm.doc.shipping_rule) {
-			this.frm.call({
+			return this.frm.call({
 				doc: this.frm.doc,
 				method: "apply_shipping_rule",
 				callback: function(r) {
@@ -587,7 +592,10 @@
 		
 		// toggle columns
 		var item_grid = this.frm.fields_dict[this.fname].grid;
-		var show = this.frm.doc.currency != company_currency;
+		var show = (this.frm.doc.currency != company_currency) || 
+			(wn.model.get_doclist(cur_frm.doctype, cur_frm.docname, 
+				{parentfield: "other_charges", included_in_print_rate: 1}).length);
+		
 		$.each(["basic_rate", "base_ref_rate", "amount"], function(i, fname) {
 			if(wn.meta.get_docfield(item_grid.doctype, fname))
 				item_grid.set_column_disp(fname, show);
@@ -596,7 +604,9 @@
 		// set labels
 		var $wrapper = $(this.frm.wrapper);
 		$.each(field_label_map, function(fname, label) {
-			$wrapper.find('[data-grid-fieldname="'+fname+'"]').text(label);
+			fname = fname.split("-");
+			var df = wn.meta.get_docfield(fname[0], fname[1], me.frm.doc.name);
+			if(df) df.label = label;
 		});
 	},
 	
diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py
index c174b13..3c43c1e 100644
--- a/selling/doctype/sales_common/sales_common.py
+++ b/selling/doctype/sales_common/sales_common.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -21,7 +8,7 @@
 from webnotes.model.doc import addchild
 from webnotes.model.bean import getlist
 from webnotes.model.code import get_obj
-from webnotes import msgprint
+from webnotes import msgprint, _
 from setup.utils import get_company_currency
 
 get_value = webnotes.conn.get_value
@@ -128,6 +115,10 @@
 			reserved_qty_for_main_item = 0
 			
 			if obj.doc.doctype == "Sales Order":
+				if (webnotes.conn.get_value("Item", d.item_code, "is_stock_item") == 'Yes' or 
+					self.has_sales_bom(d.item_code)) and not d.reserved_warehouse:
+						webnotes.throw(_("Please enter Reserved Warehouse for item ") + 
+							d.item_code + _(" as it is stock Item or packing item"))
 				reserved_warehouse = d.reserved_warehouse
 				if flt(d.qty) > flt(d.delivered_qty):
 					reserved_qty_for_main_item = flt(d.qty) - flt(d.delivered_qty)
diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js
index 4368d5b..33699f0 100644
--- a/selling/doctype/sales_order/sales_order.js
+++ b/selling/doctype/sales_order/sales_order.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // Module CRM
 
@@ -97,11 +84,21 @@
 	tc_name: function() {
 		this.get_terms();
 	},
-
-	reserved_warehouse: function(doc, cdt, cdn) {
-		this.warehouse(doc, cdt, cdn);
-	},
 	
+	reserved_warehouse: function(doc, cdt, cdn) {
+		var item = wn.model.get_doc(cdt, cdn);
+		if(item.item_code && item.reserved_warehouse) {
+			return this.frm.call({
+				method: "selling.utils.get_available_qty",
+				child: item,
+				args: {
+					item_code: item.item_code,
+					warehouse: item.reserved_warehouse,
+				},
+			});
+		}
+	},
+
 	make_material_request: function() {
 		wn.model.open_mapped_doc({
 			method: "selling.doctype.sales_order.sales_order.make_material_request",
@@ -163,7 +160,7 @@
 	var check = confirm("Are you sure you want to STOP " + doc.name);
 
 	if (check) {
-		$c('runserverobj', {
+		return $c('runserverobj', {
 			'method':'stop_sales_order', 
 			'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))
 			}, function(r,rt) {
@@ -178,7 +175,7 @@
 	var check = confirm("Are you sure you want to UNSTOP " + doc.name);
 
 	if (check) {
-		$c('runserverobj', {
+		return $c('runserverobj', {
 			'method':'unstop_sales_order', 
 			'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))
 		}, function(r,rt) {
@@ -187,12 +184,6 @@
 	}
 }
 
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters:{ 'is_group': "No"}
-	}
-}
-
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	if(cint(wn.boot.notification_settings.sales_order)) {
 		cur_frm.email_doc(wn.boot.notification_settings.sales_order_message);
diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index 13f0e9f..a9bb7a2 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -139,10 +126,8 @@
 		self.validate_mandatory()
 		self.validate_proj_cust()
 		self.validate_po()
-		
-		if self.doc.docstatus == 1:
-			self.validate_for_items()
-		
+		self.validate_uom_is_integer("stock_uom", "qty")		
+		self.validate_for_items()
 		sales_com_obj = get_obj(dt = 'Sales Common')
 		sales_com_obj.check_active_sales_items(self)
 		sales_com_obj.check_conversion_rate(self)
@@ -166,7 +151,7 @@
 		super(DocType, self).validate_with_previous_doc(self.tname, {
 			"Quotation": {
 				"ref_dn_field": "prevdoc_docname",
-				"compare_fields": [["customer", "="], ["company", "="], ["currency", "="]]
+				"compare_fields": [["company", "="], ["currency", "="]]
 			}
 		})
 
@@ -366,7 +351,7 @@
 		}
 	}, target_doclist, postprocess)
 	
-	return [d.fields for d in doclist]
+	return [(d if isinstance(d, dict) else d.fields) for d in doclist]
 
 @webnotes.whitelist()
 def make_delivery_note(source_name, target_doclist=None):	
@@ -374,7 +359,7 @@
 		target.amount = (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)
 		target.export_amount = (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)
 		target.qty = flt(obj.qty) - flt(obj.delivered_qty)
-	
+			
 	doclist = get_mapped_doclist("Sales Order", source_name, {
 		"Sales Order": {
 			"doctype": "Delivery Note", 
@@ -395,7 +380,8 @@
 				"parenttype": "prevdoc_doctype", 
 				"reserved_warehouse": "warehouse"
 			},
-			"postprocess": update_item
+			"postprocess": update_item,
+			"condition": lambda doc: doc.delivered_qty < doc.qty
 		}, 
 		"Sales Taxes and Charges": {
 			"doctype": "Sales Taxes and Charges", 
@@ -412,10 +398,10 @@
 @webnotes.whitelist()
 def make_sales_invoice(source_name, target_doclist=None):	
 	def update_item(obj, target, source_parent):
-		target.export_amount = flt(obj.amount) - flt(obj.billed_amt)
-		target.amount = target.export_amount / flt(source_parent.conversion_rate)
-		target.qty = obj.basic_rate and target.amount / flt(obj.basic_rate) or obj.qty
-	
+		target.export_amount = flt(obj.export_amount) - flt(obj.billed_amt)
+		target.amount = target.export_amount * flt(source_parent.conversion_rate)
+		target.qty = obj.export_rate and target.export_amount / flt(obj.export_rate) or obj.qty
+			
 	doclist = get_mapped_doclist("Sales Order", source_name, {
 		"Sales Order": {
 			"doctype": "Sales Invoice", 
@@ -501,4 +487,4 @@
 			}
 		}, target_doclist)
 	
-		return [d.fields for d in doclist]
\ No newline at end of file
+		return [d.fields for d in doclist]
diff --git a/selling/doctype/sales_order/sales_order.txt b/selling/doctype/sales_order/sales_order.txt
index 37c9e21..94e6388 100644
--- a/selling/doctype/sales_order/sales_order.txt
+++ b/selling/doctype/sales_order/sales_order.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-18 12:39:59", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:47:46", 
+  "modified": "2013-08-09 14:46:17", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -61,7 +61,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -293,12 +293,12 @@
  {
   "description": "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.", 
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
-  "fieldtype": "Select", 
+  "fieldname": "selling_price_list", 
+  "fieldtype": "Link", 
   "label": "Price List", 
   "oldfieldname": "price_list_name", 
   "oldfieldtype": "Select", 
-  "options": "link:Price List", 
+  "options": "Price List", 
   "print_hide": 1, 
   "reqd": 1, 
   "width": "100px"
@@ -311,6 +311,7 @@
   "label": "Price List Currency", 
   "options": "Currency", 
   "print_hide": 1, 
+  "read_only": 1, 
   "reqd": 1
  }, 
  {
diff --git a/selling/doctype/sales_order/test_sales_order.py b/selling/doctype/sales_order/test_sales_order.py
index 95f4be0..9fd16e8 100644
--- a/selling/doctype/sales_order/test_sales_order.py
+++ b/selling/doctype/sales_order/test_sales_order.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes
 from webnotes.utils import flt
 import unittest
@@ -286,7 +289,7 @@
 			"delivery_date": "2013-02-23",
 			"plc_conversion_rate": 1.0, 
 			"price_list_currency": "INR", 
-			"price_list_name": "_Test Price List", 
+			"selling_price_list": "_Test Price List", 
 			"territory": "_Test Territory", 
 			"transaction_date": "2013-02-21",
 			"grand_total": 1000.0, 
diff --git a/selling/doctype/sales_order_item/sales_order_item.py b/selling/doctype/sales_order_item/sales_order_item.py
index 7f48feb..26d0f76 100644
--- a/selling/doctype/sales_order_item/sales_order_item.py
+++ b/selling/doctype/sales_order_item/sales_order_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/sales_order_item/sales_order_item.txt b/selling/doctype/sales_order_item/sales_order_item.txt
index 84e44b0..eb4dec8 100644
--- a/selling/doctype/sales_order_item/sales_order_item.txt
+++ b/selling/doctype/sales_order_item/sales_order_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:42:58", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:21", 
+  "modified": "2013-08-07 14:44:50", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -88,7 +88,6 @@
   "label": "Quantity and Rate"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
@@ -104,19 +103,19 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "hidden": 0, 
   "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "print_width": "70px", 
   "read_only": 1, 
   "reqd": 0, 
   "width": "70px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "ref_rate", 
   "fieldtype": "Currency", 
@@ -132,7 +131,6 @@
   "width": "70px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "adj_rate", 
   "fieldtype": "Float", 
@@ -146,7 +144,6 @@
   "width": "70px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "export_rate", 
   "fieldtype": "Currency", 
@@ -161,7 +158,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "export_amount", 
   "fieldtype": "Currency", 
@@ -191,7 +187,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "basic_rate", 
   "fieldtype": "Currency", 
@@ -207,7 +202,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
@@ -247,7 +241,6 @@
   "width": "150px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "projected_qty", 
   "fieldtype": "Float", 
@@ -263,7 +256,6 @@
   "width": "70px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "actual_qty", 
   "fieldtype": "Float", 
@@ -276,7 +268,6 @@
   "width": "70px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "delivered_qty", 
   "fieldtype": "Float", 
diff --git a/selling/doctype/sales_team/sales_team.py b/selling/doctype/sales_team/sales_team.py
index 7f48feb..26d0f76 100644
--- a/selling/doctype/sales_team/sales_team.py
+++ b/selling/doctype/sales_team/sales_team.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/doctype/selling_settings/selling_settings.py b/selling/doctype/selling_settings/selling_settings.py
index 5a5dc4c..9386652 100644
--- a/selling/doctype/selling_settings/selling_settings.py
+++ b/selling/doctype/selling_settings/selling_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
@@ -8,5 +11,6 @@
 		self.doc, self.doclist = d, dl
 		
 	def validate(self):
-		for key in ["cust_master_name", "customer_group", "territory"]:
-			webnotes.conn.set_default(key, self.doc.fields.get(key, ""))
+		for key in ["cust_master_name", "customer_group", "territory", "maintain_same_sales_rate",
+			"editable_price_list_rate", "selling_price_list"]:
+				webnotes.conn.set_default(key, self.doc.fields.get(key, ""))
diff --git a/selling/doctype/selling_settings/selling_settings.txt b/selling/doctype/selling_settings/selling_settings.txt
index 35d256e..fed3627 100644
--- a/selling/doctype/selling_settings/selling_settings.txt
+++ b/selling/doctype/selling_settings/selling_settings.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-25 10:25:16", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:54:47", 
+  "modified": "2013-08-09 14:46:24", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -64,7 +64,7 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
+  "fieldname": "selling_price_list", 
   "fieldtype": "Link", 
   "label": "Default Price List", 
   "options": "Price List"
@@ -89,6 +89,18 @@
   "options": "No\nYes"
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "maintain_same_sales_rate", 
+  "fieldtype": "Check", 
+  "label": "Maintain Same Rate Throughout Sales Cycle"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "editable_price_list_rate", 
+  "fieldtype": "Check", 
+  "label": "Allow user to edit Price List Rate in transactions"
+ }, 
+ {
   "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/selling/doctype/sms_center/sms_center.py b/selling/doctype/sms_center/sms_center.py
index 8b404e6..c3b5ac0 100644
--- a/selling/doctype/sms_center/sms_center.py
+++ b/selling/doctype/sms_center/sms_center.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/page/sales_analytics/sales_analytics.js b/selling/page/sales_analytics/sales_analytics.js
index 7fdc3ac..0159ae0 100644
--- a/selling/page/sales_analytics/sales_analytics.js
+++ b/selling/page/sales_analytics/sales_analytics.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.pages['sales-analytics'].onload = function(wrapper) { 
 	wn.ui.make_app_page({
@@ -123,7 +110,7 @@
 		var me = this;
 		this._super();
 		
-		this.trigger_refresh_on_change(["value_or_qty", "tree_type", "based_on"]);
+		this.trigger_refresh_on_change(["value_or_qty", "tree_type", "based_on", "company"]);
 
 		this.show_zero_check()		
 		this.setup_plot_check();
@@ -209,7 +196,7 @@
 		var is_val = this.value_or_qty == 'Value';
 		
 		$.each(this.tl[this.based_on], function(i, tl) {
-			if (me.is_default('company') ? true : me.apply_filter(tl, "company")) { 
+			if (me.is_default('company') ? true : tl.company === me.company) { 
 				var posting_date = dateutil.str_to_obj(tl.posting_date);
 				if (posting_date >= from_date && posting_date <= to_date) {
 					var item = me.item_by_name[tl[me.tree_grid.item_key]] || 
diff --git a/selling/page/sales_browser/sales_browser.js b/selling/page/sales_browser/sales_browser.js
index ed13f9d..53df188 100644
--- a/selling/page/sales_browser/sales_browser.js
+++ b/selling/page/sales_browser/sales_browser.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 pscript['onload_Sales Browser'] = function(wrapper){
 	wn.ui.make_app_page({
@@ -33,7 +20,7 @@
 
 	wrapper.make_tree = function() {
 		var ctype = wn.get_route()[1] || 'Territory';
-		wn.call({
+		return wn.call({
 			method: 'selling.page.sales_browser.sales_browser.get_children',
 			args: {ctype: ctype},
 			callback: function(r) {
@@ -122,16 +109,24 @@
 	},
 	new_node: function() {
 		var me = this;
-
+		
+		var fields = [
+			{fieldtype:'Data', fieldname: 'name_field', 
+				label:'New ' + me.ctype + ' Name', reqd:true},
+			{fieldtype:'Select', fieldname:'is_group', label:'Group Node', options:'No\nYes', 
+				description: "Further nodes can be only created under 'Group' type nodes"}, 
+			{fieldtype:'Button', fieldname:'create_new', label:'Create New' }
+		]
+		
+		if(me.ctype == "Sales Person") {
+			fields.splice(-1, 0, {fieldtype:'Link', fieldname:'employee', label:'Employee',
+				options:'Employee', description: "Please enter Employee Id of this sales parson"});
+		}
+		
 		// the dialog
 		var d = new wn.ui.Dialog({
 			title:'New ' + me.ctype,
-			fields: [
-				{fieldtype:'Data', fieldname: 'name_field', label:'New ' + me.ctype + ' Name', reqd:true},
-				{fieldtype:'Select', fieldname:'is_group', label:'Group Node',
-					options:'No\nYes', description: "Further nodes can be only created under 'Group' type nodes"},
-				{fieldtype:'Button', fieldname:'create_new', label:'Create New' }
-			]
+			fields: fields
 		})		
 	
 		d.set_value("is_group", "No");
@@ -147,7 +142,7 @@
 			v.parent = node.data('label');
 			v.ctype = me.ctype;
 			
-			wn.call({
+			return wn.call({
 				method: 'selling.page.sales_browser.sales_browser.add_node',
 				args: v,
 				callback: function() {
diff --git a/selling/page/sales_browser/sales_browser.py b/selling/page/sales_browser/sales_browser.py
index b12c0f4..6ee80fe 100644
--- a/selling/page/sales_browser/sales_browser.py
+++ b/selling/page/sales_browser/sales_browser.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 
@@ -30,4 +33,7 @@
 		parent_field: webnotes.form_dict['parent'],
 		"is_group": webnotes.form_dict['is_group']
 	}]
+	if ctype == "Sales Person":
+		doclist[0]["employee"] = webnotes.form_dict.get('employee')
+		
 	webnotes.bean(doclist).save()
\ No newline at end of file
diff --git a/selling/page/selling_home/selling_home.js b/selling/page/selling_home/selling_home.js
index de2ccf4..4860d42 100644
--- a/selling/page/selling_home/selling_home.js
+++ b/selling/page/selling_home/selling_home.js
@@ -1,5 +1,5 @@
-// ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-// GNU General Public License. See "license.txt"
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt"
 
 wn.module_page["Selling"] = [
 	{
@@ -158,27 +158,33 @@
 		items: [
 			{
 				"label":wn._("Customer Addresses And Contacts"),
-				route: "query-report/Customer Addresses And Contacts"
+				route: "query-report/Customer Addresses And Contacts",
+				doctype: "Contact"
 			},
 			{
 				"label":wn._("Ordered Items To Be Delivered"),
 				route: "query-report/Ordered Items To Be Delivered",
+				doctype: "Sales Order"
 			},
 			{
 				"label":wn._("Sales Person-wise Transaction Summary"),
-				route: "query-report/Sales Person-wise Transaction Summary"
+				route: "query-report/Sales Person-wise Transaction Summary",
+				doctype: "Sales Order"
 			},
 			{
 				"label":wn._("Item-wise Sales History"),
-				route: "query-report/Item-wise Sales History"
+				route: "query-report/Item-wise Sales History",
+				doctype: "Item"
 			},
 			{
 				"label":wn._("Territory Target Variance (Item Group-Wise)"),
-				route: "query-report/Territory Target Variance Item Group-Wise"
+				route: "query-report/Territory Target Variance Item Group-Wise",
+				doctype: "Territory"
 			},
 			{
 				"label":wn._("Sales Person Target Variance (Item Group-Wise)"),
-				route: "query-report/Sales Person Target Variance Item Group-Wise"
+				route: "query-report/Sales Person Target Variance Item Group-Wise",
+				doctype: "Sales Person",
 			},
 			{
 				"label":wn._("Customers Not Buying Since Long Time"),
@@ -198,10 +204,12 @@
 			{
 				"label":wn._("Available Stock for Packing Items"),
 				route: "query-report/Available Stock for Packing Items",
+				doctype: "Item",
 			},
 			{
 				"label":wn._("Pending SO Items For Purchase Request"),
-				route: "query-report/Pending SO Items For Purchase Request"
+				route: "query-report/Pending SO Items For Purchase Request",
+				doctype: "Sales Order"
 			},
 		]
 	}
diff --git a/selling/report/available_stock_for_packing_items/available_stock_for_packing_items.py b/selling/report/available_stock_for_packing_items/available_stock_for_packing_items.py
index 171c3bb..ec09c18 100644
--- a/selling/report/available_stock_for_packing_items/available_stock_for_packing_items.py
+++ b/selling/report/available_stock_for_packing_items/available_stock_for_packing_items.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.js b/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.js
index 65d6348..d527b34 100644
--- a/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.js
+++ b/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Customers Not Buying Since Long Time"] = {
 	"filters": [
 		{
diff --git a/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.py b/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.py
index 08809a7..fbe1bb8 100644
--- a/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.py
+++ b/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/report/quotation_trends/quotation_trends.js b/selling/report/quotation_trends/quotation_trends.js
index 2f9f236..df8bd49 100644
--- a/selling/report/quotation_trends/quotation_trends.js
+++ b/selling/report/quotation_trends/quotation_trends.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.require("app/js/sales_trends_filters.js");
 
 wn.query_reports["Quotation Trends"] = {
diff --git a/selling/report/quotation_trends/quotation_trends.py b/selling/report/quotation_trends/quotation_trends.py
index 29f9ef8..6eae949 100644
--- a/selling/report/quotation_trends/quotation_trends.py
+++ b/selling/report/quotation_trends/quotation_trends.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/report/sales_order_trends/sales_order_trends.js b/selling/report/sales_order_trends/sales_order_trends.js
index 458fee6..8cab413 100644
--- a/selling/report/sales_order_trends/sales_order_trends.js
+++ b/selling/report/sales_order_trends/sales_order_trends.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.require("app/js/sales_trends_filters.js");
 
 wn.query_reports["Sales Order Trends"] = {
diff --git a/selling/report/sales_order_trends/sales_order_trends.py b/selling/report/sales_order_trends/sales_order_trends.py
index ac7c3ab..7e42a71 100644
--- a/selling/report/sales_order_trends/sales_order_trends.py
+++ b/selling/report/sales_order_trends/sales_order_trends.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.js b/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.js
index c7a5d66..5f2b89c 100644
--- a/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.js
+++ b/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Sales Person Target Variance Item Group-Wise"] = {
 	"filters": [
 		{
diff --git a/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.py b/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.py
index ae3819c..6fdafe0 100644
--- a/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.py
+++ b/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -21,6 +8,7 @@
 import time
 from accounts.utils import get_fiscal_year
 from controllers.trends import get_period_date_ranges, get_period_month_ranges
+from webnotes.model.meta import get_field_precision
 
 def execute(filters=None):
 	if not filters: filters = {}
@@ -29,10 +17,7 @@
 	period_month_ranges = get_period_month_ranges(filters["period"], filters["fiscal_year"])
 	sim_map = get_salesperson_item_month_map(filters)
 
-	precision = webnotes.conn.get_value("Global Defaults", None, "float_precision") or 2
-
 	data = []
-
 	for salesperson, salesperson_items in sim_map.items():
 		for item_group, monthwise_data in salesperson_items.items():
 			row = [salesperson, item_group]
@@ -42,7 +27,7 @@
 				for month in relevant_months:
 					month_data = monthwise_data.get(month, {})
 					for i, fieldname in enumerate(["target", "achieved", "variance"]):
-						value = flt(month_data.get(fieldname), precision)
+						value = flt(month_data.get(fieldname))
 						period_data[i] += value
 						totals[i] += value
 				period_data[2] = period_data[0] - period_data[1]
@@ -60,37 +45,37 @@
 			msgprint(_("Please specify") + ": " + label,
 				raise_exception=True)
 
-	columns = ["Sales Person:Link/Sales Person:80", "Item Group:Link/Item Group:80"]
+	columns = ["Sales Person:Link/Sales Person:120", "Item Group:Link/Item Group:120"]
 
 	group_months = False if filters["period"] == "Monthly" else True
 
 	for from_date, to_date in get_period_date_ranges(filters["period"], filters["fiscal_year"]):
 		for label in ["Target (%s)", "Achieved (%s)", "Variance (%s)"]:
 			if group_months:
-				columns.append(label % (from_date.strftime("%b") + " - " + to_date.strftime("%b")))				
+				label = label % (from_date.strftime("%b") + " - " + to_date.strftime("%b"))
 			else:
-				columns.append(label % from_date.strftime("%b"))
+				label = label % from_date.strftime("%b")
+			
+			columns.append(label+":Float:120")
 
-	return columns + ["Total Target::80", "Total Achieved::80", "Total Variance::80"]
+	return columns + ["Total Target::120", "Total Achieved::120", "Total Variance::120"]
 
 #Get sales person & item group details
 def get_salesperson_details(filters):
 	return webnotes.conn.sql("""select sp.name, td.item_group, td.target_qty, 
 		td.target_amount, sp.distribution_id 
 		from `tabSales Person` sp, `tabTarget Detail` td 
-		where td.parent=sp.name and td.fiscal_year=%s and 
-		ifnull(sp.distribution_id, '')!='' order by sp.name""", 
+		where td.parent=sp.name and td.fiscal_year=%s order by sp.name""", 
 		(filters["fiscal_year"]), as_dict=1)
 
 #Get target distribution details of item group
 def get_target_distribution_details(filters):
 	target_details = {}
 	
-	for d in webnotes.conn.sql("""select bdd.month, bdd.percentage_allocation \
-		from `tabBudget Distribution Detail` bdd, `tabBudget Distribution` bd, \
-		`tabTerritory` t where bdd.parent=bd.name and t.distribution_id=bd.name and \
-		bd.fiscal_year=%s""", (filters["fiscal_year"]), as_dict=1):
-			target_details.setdefault(d.month, d)
+	for d in webnotes.conn.sql("""select bd.name, bdd.month, bdd.percentage_allocation 
+		from `tabBudget Distribution Detail` bdd, `tabBudget Distribution` bd 
+		where bdd.parent=bd.name and bd.fiscal_year=%s""", (filters["fiscal_year"]), as_dict=1):
+			target_details.setdefault(d.name, {}).setdefault(d.month, d.percentage_allocation)
 
 	return target_details
 
@@ -107,32 +92,33 @@
 		(start_date, end_date), as_dict=1)
 
 def get_salesperson_item_month_map(filters):
+	import datetime
 	salesperson_details = get_salesperson_details(filters)
 	tdd = get_target_distribution_details(filters)
 	achieved_details = get_achieved_details(filters)
 
 	sim_map = {}
-
 	for sd in salesperson_details:
-		for month in tdd:
+		for month_id in range(1, 13):
+			month = datetime.date(2013, month_id, 1).strftime('%B')
 			sim_map.setdefault(sd.name, {}).setdefault(sd.item_group, {})\
-			.setdefault(month, webnotes._dict({
-				"target": 0.0, "achieved": 0.0
-			}))
+				.setdefault(month, webnotes._dict({
+					"target": 0.0, "achieved": 0.0
+				}))
 
 			tav_dict = sim_map[sd.name][sd.item_group][month]
-
+			month_percentage = sd.distribution_id and \
+				tdd.get(sd.distribution_id, {}).get(month, 0) or 100.0/12
+			
 			for ad in achieved_details:
 				if (filters["target_on"] == "Quantity"):
-					tav_dict.target = flt(sd.target_qty) * \
-						(tdd[month]["percentage_allocation"]/100)
+					tav_dict.target = flt(flt(sd.target_qty) * month_percentage/100, 2)
 					if ad.month_name == month and get_item_group(ad.item_code) == sd.item_group \
 						and ad.sales_person == sd.name:
 							tav_dict.achieved += ad.qty
 
 				if (filters["target_on"] == "Amount"):
-					tav_dict.target = flt(sd.target_amount) * \
-						(tdd[month]["percentage_allocation"]/100)
+					tav_dict.target = flt(flt(sd.target_amount) * month_percentage/100, 2)
 					if ad.month_name == month and get_item_group(ad.item_code) == sd.item_group \
 						and ad.sales_person == sd.name:
 							tav_dict.achieved += ad.amount
diff --git a/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.js b/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.js
index 2e1996e..6ddb5f9 100644
--- a/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.js
+++ b/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Sales Person-wise Transaction Summary"] = {
 	"filters": [
 		{
@@ -30,7 +33,7 @@
 			label: "Company",
 			fieldtype: "Link",
 			options: "Company",
-			default: sys_defaults.company
+			default: wn.defaults.get_default("company")
 		},
 		{
 			fieldname:"item_group",
diff --git a/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py b/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
index 8ec3a18..45e893e 100644
--- a/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
+++ b/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.js b/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.js
index 146b17d..882cdb6 100644
--- a/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.js
+++ b/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Territory Target Variance Item Group-Wise"] = {
 	"filters": [
 		{
diff --git a/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.py b/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.py
index 109acbd..829f781 100644
--- a/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.py
+++ b/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -59,37 +46,36 @@
 			label = (" ".join(fieldname.split("_"))).title()
 			msgprint(_("Please specify") + ": " + label, raise_exception=True)
 
-	columns = ["Territory:Link/Territory:80", "Item Group:Link/Item Group:80"]
+	columns = ["Territory:Link/Territory:120", "Item Group:Link/Item Group:120"]
 
 	group_months = False if filters["period"] == "Monthly" else True
 
 	for from_date, to_date in get_period_date_ranges(filters["period"], filters["fiscal_year"]):
 		for label in ["Target (%s)", "Achieved (%s)", "Variance (%s)"]:
 			if group_months:
-				columns.append(label % (from_date.strftime("%b") + " - " + to_date.strftime("%b")))				
+				label = label % (from_date.strftime("%b") + " - " + to_date.strftime("%b"))
 			else:
-				columns.append(label % from_date.strftime("%b"))
+				label = label % from_date.strftime("%b")
+			columns.append(label+":Float:120")
 
-	return columns + ["Total Target::80", "Total Achieved::80", "Total Variance::80"]
+	return columns + ["Total Target::120", "Total Achieved::120", "Total Variance::120"]
 
 #Get territory & item group details
 def get_territory_details(filters):
 	return webnotes.conn.sql("""select t.name, td.item_group, td.target_qty, 
 		td.target_amount, t.distribution_id 
 		from `tabTerritory` t, `tabTarget Detail` td 
-		where td.parent=t.name and td.fiscal_year=%s and 
-		ifnull(t.distribution_id, '')!='' order by t.name""", 
+		where td.parent=t.name and td.fiscal_year=%s order by t.name""", 
 		(filters["fiscal_year"]), as_dict=1)
 
 #Get target distribution details of item group
 def get_target_distribution_details(filters):
 	target_details = {}
 
-	for d in webnotes.conn.sql("""select bdd.month, bdd.percentage_allocation \
-		from `tabBudget Distribution Detail` bdd, `tabBudget Distribution` bd, \
-		`tabTerritory` t where bdd.parent=bd.name and t.distribution_id=bd.name and \
-		bd.fiscal_year=%s""", (filters["fiscal_year"]), as_dict=1):
-			target_details.setdefault(d.month, d)
+	for d in webnotes.conn.sql("""select bd.name, bdd.month, bdd.percentage_allocation 
+		from `tabBudget Distribution Detail` bdd, `tabBudget Distribution` bd
+		where bdd.parent=bd.name and bd.fiscal_year=%s""", (filters["fiscal_year"]), as_dict=1):
+			target_details.setdefault(d.name, {}).setdefault(d.month, d.percentage_allocation)
 
 	return target_details
 
@@ -112,25 +98,27 @@
 	tim_map = {}
 
 	for td in territory_details:
-		for month in tdd:
+		for month_id in range(1, 13):
+			month = datetime.date(2013, month_id, 1).strftime('%B')
+			
 			tim_map.setdefault(td.name, {}).setdefault(td.item_group, {})\
-			.setdefault(month, webnotes._dict({
-				"target": 0.0, "achieved": 0.0
-			}))
+				.setdefault(month, webnotes._dict({
+					"target": 0.0, "achieved": 0.0
+				}))
 
 			tav_dict = tim_map[td.name][td.item_group][month]
+			month_percentage = td.distribution_id and \
+				tdd.get(td.distribution_id, {}).get(month, 0) or 100.0/12
 
 			for ad in achieved_details:
 				if (filters["target_on"] == "Quantity"):
-					tav_dict.target = flt(td.target_qty) * \
-						(tdd[month]["percentage_allocation"]/100)
+					tav_dict.target = flt(flt(td.target_qty) * month_percentage /100)
 					if ad.month_name == month and get_item_group(ad.item_code) == td.item_group \
 						and ad.territory == td.name:
 							tav_dict.achieved += ad.qty
 
 				if (filters["target_on"] == "Amount"):
-					tav_dict.target = flt(td.target_amount) * \
-						(tdd[month]["percentage_allocation"]/100)
+					tav_dict.target = flt(flt(td.target_amount) * month_percentage / 100)
 					if ad.month_name == month and get_item_group(ad.item_code) == td.item_group \
 						and ad.territory == td.name:
 							tav_dict.achieved += ad.amount
diff --git a/selling/utils.py b/selling/utils.py
index 5f2cfbd..7ccad6a 100644
--- a/selling/utils.py
+++ b/selling/utils.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -42,7 +29,7 @@
 			"warehouse": None,
 			"customer": "",
 			"conversion_rate": 1.0,
-			"price_list_name": None,
+			"selling_price_list": None,
 			"price_list_currency": None,
 			"plc_conversion_rate": 1.0
 		}
@@ -58,24 +45,32 @@
 	
 	_validate_item_details(args, item_bean.doc)
 	
-	out = _get_basic_details(args, item_bean)
-	
 	meta = webnotes.get_doctype(args.doctype)
+
+	# hack! for Sales Order Item
+	warehouse_fieldname = "warehouse"
+	if meta.get_field("reserved_warehouse", parentfield=args.parentfield):
+		warehouse_fieldname = "reserved_warehouse"
+	
+	out = _get_basic_details(args, item_bean, warehouse_fieldname)
+	
 	if meta.get_field("currency"):
 		out.base_ref_rate = out.basic_rate = out.ref_rate = out.export_rate = 0.0
 		
-		if args.price_list_name and args.price_list_currency:
+		if args.selling_price_list and args.price_list_currency:
 			out.update(_get_price_list_rate(args, item_bean, meta))
+		
+	out.update(_get_item_discount(out.item_group, args.customer))
 	
-	if out.warehouse or out.reserved_warehouse:
-		out.update(get_available_qty(args.item_code, out.warehouse or out.reserved_warehouse))
+	if out.get(warehouse_fieldname):
+		out.update(get_available_qty(args.item_code, out.get(warehouse_fieldname)))
 	
 	out.customer_item_code = _get_customer_item_code(args, item_bean)
 	
 	if cint(args.is_pos):
 		pos_settings = get_pos_settings(args.company)
 		out.update(apply_pos_settings(pos_settings, out))
-	
+
 	return out
 	
 def _get_item_code(barcode):
@@ -106,20 +101,19 @@
 		msgprint(_("Item") + (" %s: " % item.name) + _("not a sales item"),
 			raise_exception=True)
 			
-def _get_basic_details(args, item_bean):
+def _get_basic_details(args, item_bean, warehouse_fieldname):
 	item = item_bean.doc
+	
 	out = webnotes._dict({
 			"item_code": item.name,
 			"description": item.description_html or item.description,
-			"reserved_warehouse": item.default_warehouse or args.warehouse or args.reserved_warehouse,
-			"warehouse": item.default_warehouse or args.warehouse,
+			warehouse_fieldname: item.default_warehouse or args.get(warehouse_fieldname),
 			"income_account": item.default_income_account or args.income_account \
 				or webnotes.conn.get_value("Company", args.company, "default_income_account"),
 			"expense_account": item.purchase_account or args.expense_account \
 				or webnotes.conn.get_value("Company", args.company, "default_expense_account"),
 			"cost_center": item.default_sales_cost_center or args.cost_center,
 			"qty": 1.0,
-			"adj_rate": 0.0,
 			"export_amount": 0.0,
 			"amount": 0.0,
 			"batch_no": None,
@@ -135,10 +129,10 @@
 def _get_price_list_rate(args, item_bean, meta):
 	base_ref_rate = item_bean.doclist.get({
 		"parentfield": "ref_rate_details",
-		"price_list_name": args.price_list_name, 
+		"price_list": args.selling_price_list, 
 		"ref_currency": args.price_list_currency,
 		"buying_or_selling": "Selling"})
-	
+
 	if not base_ref_rate:
 		return {}
 	
@@ -146,7 +140,24 @@
 	from utilities.transaction_base import validate_currency
 	validate_currency(args, item_bean.doc, meta)
 	
-	return {"ref_rate": flt(base_ref_rate[0].ref_rate * args.plc_conversion_rate / args.conversion_rate)}
+	return {"ref_rate": flt(base_ref_rate[0].ref_rate) * flt(args.plc_conversion_rate) / flt(args.conversion_rate)}
+	
+def _get_item_discount(item_group, customer):
+	parent_item_groups = [x[0] for x in webnotes.conn.sql("""SELECT parent.name 
+		FROM `tabItem Group` AS node, `tabItem Group` AS parent 
+		WHERE parent.lft <= node.lft and parent.rgt >= node.rgt and node.name = %s
+		GROUP BY parent.name 
+		ORDER BY parent.lft desc""", item_group)]
+		
+	discount = 0
+	for d in parent_item_groups:
+		res = webnotes.conn.sql("""select discount, name from `tabCustomer Discount` 
+			where parent = %s and item_group = %s""", (customer, d))
+		if res:
+			discount = flt(res[0][0])
+			break
+			
+	return {"adj_rate": discount}
 
 @webnotes.whitelist()
 def get_available_qty(item_code, warehouse):
@@ -162,11 +173,11 @@
 def get_pos_settings(company):
 	pos_settings = webnotes.conn.sql("""select * from `tabPOS Setting` where user = %s 
 		and company = %s""", (webnotes.session['user'], company), as_dict=1)
-		
+	
 	if not pos_settings:
 		pos_settings = webnotes.conn.sql("""select * from `tabPOS Setting` 
 			where ifnull(user,'') = '' and company = %s""", company, as_dict=1)
-
+			
 	return pos_settings and pos_settings[0] or None
 	
 def apply_pos_settings(pos_settings, opts):
diff --git a/setup/doctype/authorization_control/authorization_control.py b/setup/doctype/authorization_control/authorization_control.py
index 33687c7..ddf0791 100644
--- a/setup/doctype/authorization_control/authorization_control.py
+++ b/setup/doctype/authorization_control/authorization_control.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/authorization_rule/authorization_rule.js b/setup/doctype/authorization_rule/authorization_rule.js
index fce0497..02747a0 100644
--- a/setup/doctype/authorization_rule/authorization_rule.js
+++ b/setup/doctype/authorization_rule/authorization_rule.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
  
 
diff --git a/setup/doctype/authorization_rule/authorization_rule.py b/setup/doctype/authorization_rule/authorization_rule.py
index 9f19701..3d2de47 100644
--- a/setup/doctype/authorization_rule/authorization_rule.py
+++ b/setup/doctype/authorization_rule/authorization_rule.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/authorization_rule/authorization_rule.txt b/setup/doctype/authorization_rule/authorization_rule.txt
index 2759480..4af3eaa 100644
--- a/setup/doctype/authorization_rule/authorization_rule.txt
+++ b/setup/doctype/authorization_rule/authorization_rule.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:22", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:25:35", 
+  "modified": "2013-08-07 14:44:52", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -141,7 +141,6 @@
   "options": "Profile"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "value", 
   "fieldtype": "Float", 
diff --git a/setup/doctype/backup_manager/backup_dropbox.py b/setup/doctype/backup_manager/backup_dropbox.py
index 054d2b2..8d16353 100644
--- a/setup/doctype/backup_manager/backup_dropbox.py
+++ b/setup/doctype/backup_manager/backup_dropbox.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # SETUP:
 # install pip install --upgrade dropbox
 #
diff --git a/setup/doctype/backup_manager/backup_googledrive.py b/setup/doctype/backup_manager/backup_googledrive.py
index 533b37d..5d7b6ad 100644
--- a/setup/doctype/backup_manager/backup_googledrive.py
+++ b/setup/doctype/backup_manager/backup_googledrive.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # SETUP:
 # install pip install --upgrade google-api-python-client
 #
diff --git a/setup/doctype/backup_manager/backup_manager.js b/setup/doctype/backup_manager/backup_manager.js
index c78be3a..f2de49c 100644
--- a/setup/doctype/backup_manager/backup_manager.js
+++ b/setup/doctype/backup_manager/backup_manager.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 $.extend(cur_frm.cscript, {
 	refresh: function() {
 		cur_frm.disable_save();
@@ -43,7 +46,7 @@
 	
 	allow_dropbox_access: function() {
 		if(cur_frm.cscript.validate_send_notifications_to()) {
-			wn.call({
+			return wn.call({
 				method: "setup.doctype.backup_manager.backup_dropbox.get_dropbox_authorize_url",
 				callback: function(r) {
 					if(!r.exc) {
@@ -60,7 +63,7 @@
 	
 	allow_gdrive_access: function() {
 		if(cur_frm.cscript.validate_send_notifications_to()) {
-			wn.call({
+			return wn.call({
 				method: "setup.doctype.backup_manager.backup_googledrive.get_gdrive_authorize_url",
 				callback: function(r) {
 					if(!r.exc) {
@@ -72,7 +75,7 @@
 	},
 	
 	validate_gdrive: function() {
-		wn.call({
+		return wn.call({
 			method: "setup.doctype.backup_manager.backup_googledrive.gdrive_callback",
 			args: {
 				verification_code: cur_frm.doc.verification_code
diff --git a/setup/doctype/backup_manager/backup_manager.py b/setup/doctype/backup_manager/backup_manager.py
index c91cf11..aaf17f5 100644
--- a/setup/doctype/backup_manager/backup_manager.py
+++ b/setup/doctype/backup_manager/backup_manager.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/setup/doctype/brand/brand.js b/setup/doctype/brand/brand.js
index 3cad944..e8c3c69 100644
--- a/setup/doctype/brand/brand.js
+++ b/setup/doctype/brand/brand.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
  
 
diff --git a/setup/doctype/brand/brand.py b/setup/doctype/brand/brand.py
index 7794430..8002652 100644
--- a/setup/doctype/brand/brand.py
+++ b/setup/doctype/brand/brand.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/brand/brand.txt b/setup/doctype/brand/brand.txt
index 633e8aa..1fd9cec 100644
--- a/setup/doctype/brand/brand.txt
+++ b/setup/doctype/brand/brand.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:27:54", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:28:33", 
+  "modified": "2013-07-23 12:06:41", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -71,5 +71,17 @@
   "role": "Material User", 
   "submit": 0, 
   "write": 0
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Sales User"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Purchase User"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Accounts User"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/brand/test_brand.py b/setup/doctype/brand/test_brand.py
index 7a18c2e..b97f6b0 100644
--- a/setup/doctype/brand/test_brand.py
+++ b/setup/doctype/brand/test_brand.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Brand",
diff --git a/setup/doctype/company/charts/import_from_openerp.py b/setup/doctype/company/charts/import_from_openerp.py
index ebf8d0d..894c2d7 100644
--- a/setup/doctype/company/charts/import_from_openerp.py
+++ b/setup/doctype/company/charts/import_from_openerp.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 """
 Import chart of accounts from OpenERP sources
 """
diff --git a/setup/doctype/company/company.js b/setup/doctype/company/company.js
index dfe8e2a..6ae1626 100644
--- a/setup/doctype/company/company.js
+++ b/setup/doctype/company/company.js
@@ -1,22 +1,13 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.refresh = function(doc, cdt, cdn) {
 	if(doc.abbr && !doc.__islocal)
 		cur_frm.set_df_property("abbr", "read_only", 1)
+		
+	if(!doc.__islocal) {
+		cur_frm.toggle_enable("default_currency", !cur_frm.doc.__transactions_exist);
+	}
 }
 
 cur_frm.cscript.has_special_chars = function(t) {
diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py
index ae2d8ee..66c83d6 100644
--- a/setup/doctype/company/company.py
+++ b/setup/doctype/company/company.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -29,10 +16,30 @@
 	def __init__(self,d,dl):
 		self.doc, self.doclist = d,dl
 		
+	def onload(self):
+		self.doc.fields["__transactions_exist"] = self.check_if_transactions_exist()
+		
+	def check_if_transactions_exist(self):
+		exists = False
+		for doctype in ["Sales Invoice", "Delivery Note", "Sales Order", "Quotation",
+			"Purchase Invoice", "Purchase Receipt", "Purchase Order", "Supplier Quotation"]:
+				if webnotes.conn.sql("""select name from `tab%s` where company=%s and docstatus=1
+					limit 1""" % (doctype, "%s"), self.doc.name):
+						exists = True
+						break
+		
+		return exists
+		
 	def validate(self):
 		if self.doc.fields.get('__islocal') and len(self.doc.abbr) > 5:
 			webnotes.msgprint("Abbreviation cannot have more than 5 characters",
 				raise_exception=1)
+				
+		self.previous_default_currency = webnotes.conn.get_value("Company", self.doc.name, "default_currency")
+		if self.doc.default_currency and self.previous_default_currency and \
+			self.doc.default_currency != self.previous_default_currency and \
+			self.check_if_transactions_exist():
+				msgprint(_("Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency."), raise_exception=True)
 
 	def on_update(self):
 		if not webnotes.conn.sql("""select name from tabAccount 
@@ -77,12 +84,6 @@
 				website_settings.doclist.append({
 					"doctype": "Top Bar Item",
 					"parentfield": "top_bar_items",
-					"label":"Home",
-					"url": webpage.doc.name
-				})
-				website_settings.doclist.append({
-					"doctype": "Top Bar Item",
-					"parentfield": "top_bar_items",
 					"label":"Contact",
 					"url": "contact"
 				})
diff --git a/setup/doctype/company/company.txt b/setup/doctype/company/company.txt
index 134af2c..768c7b1 100644
--- a/setup/doctype/company/company.txt
+++ b/setup/doctype/company/company.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-10 08:35:39", 
   "docstatus": 0, 
-  "modified": "2013-07-10 18:17:55", 
+  "modified": "2013-08-05 15:39:36", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -25,20 +25,13 @@
   "permlevel": 0
  }, 
  {
-  "amend": 0, 
-  "cancel": 1, 
-  "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Company", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
   "permlevel": 0, 
-  "read": 1, 
-  "report": 1, 
-  "role": "System Manager", 
-  "submit": 0, 
-  "write": 1
+  "read": 1
  }, 
  {
   "doctype": "DocType", 
@@ -164,15 +157,7 @@
   "width": "50%"
  }, 
  {
-  "depends_on": "eval:!doc.__islocal", 
-  "doctype": "DocField", 
-  "fieldname": "cost_center", 
-  "fieldtype": "Link", 
-  "label": "Cost Center", 
-  "no_copy": 1, 
-  "options": "Cost Center"
- }, 
- {
+  "description": "To enable more currencies go to Setup > Currency", 
   "doctype": "DocField", 
   "fieldname": "default_currency", 
   "fieldtype": "Link", 
@@ -184,6 +169,15 @@
  {
   "depends_on": "eval:!doc.__islocal", 
   "doctype": "DocField", 
+  "fieldname": "cost_center", 
+  "fieldtype": "Link", 
+  "label": "Cost Center", 
+  "no_copy": 1, 
+  "options": "Cost Center"
+ }, 
+ {
+  "depends_on": "eval:!doc.__islocal", 
+  "doctype": "DocField", 
   "fieldname": "credit_days", 
   "fieldtype": "Int", 
   "label": "Credit Days", 
@@ -380,6 +374,17 @@
   "read_only": 1
  }, 
  {
-  "doctype": "DocPerm"
+  "amend": 0, 
+  "cancel": 1, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "report": 1, 
+  "role": "System Manager", 
+  "submit": 0, 
+  "write": 1
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "All"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/company/test_company.py b/setup/doctype/company/test_company.py
index e89731f..915657c 100644
--- a/setup/doctype/company/test_company.py
+++ b/setup/doctype/company/test_company.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_ignore = ["Account", "Cost Center"]
 
 test_records = [
diff --git a/setup/doctype/contact_control/contact_control.js b/setup/doctype/contact_control/contact_control.js
index db0ed91..6c3f17d 100755
--- a/setup/doctype/contact_control/contact_control.js
+++ b/setup/doctype/contact_control/contact_control.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 // common partner functions
 // =========================
 
@@ -5,7 +8,7 @@
 // get sates on country trigger
 // -----------------------------
 cur_frm.cscript.get_states=function(doc,dt,dn){
-   $c('runserverobj', args={'method':'check_state', 'docs':wn.model.compress(make_doclist(doc.doctype, doc.name))},
+   return $c('runserverobj', args={'method':'check_state', 'docs':wn.model.compress(make_doclist(doc.doctype, doc.name))},
     function(r,rt){
       if(r.message) {
         set_field_options('state', r.message);
@@ -152,7 +155,7 @@
 	}));
 	if (!go_ahead) return;
 
-	wn.call({
+	return wn.call({
 		method: 'webnotes.model.delete_doc',
 		args: {
 			dt: doctype,
diff --git a/setup/doctype/contact_control/contact_control.py b/setup/doctype/contact_control/contact_control.py
index 54a2fcc..409c663 100644
--- a/setup/doctype/contact_control/contact_control.py
+++ b/setup/doctype/contact_control/contact_control.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 
diff --git a/setup/doctype/country/country.py b/setup/doctype/country/country.py
index 7794430..8002652 100644
--- a/setup/doctype/country/country.py
+++ b/setup/doctype/country/country.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/country/country.txt b/setup/doctype/country/country.txt
index ee54dcf..8b811a3 100644
--- a/setup/doctype/country/country.txt
+++ b/setup/doctype/country/country.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-19 10:23:30", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:33:19", 
+  "modified": "2013-07-23 12:05:08", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -25,7 +25,6 @@
   "permlevel": 0
  }, 
  {
-  "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Country", 
@@ -33,9 +32,7 @@
   "parenttype": "DocType", 
   "permlevel": 0, 
   "read": 1, 
-  "report": 1, 
-  "submit": 0, 
-  "write": 1
+  "report": 1
  }, 
  {
   "doctype": "DocType", 
@@ -65,19 +62,35 @@
  {
   "amend": 0, 
   "cancel": 0, 
+  "create": 1, 
   "doctype": "DocPerm", 
-  "role": "Sales Master Manager"
+  "role": "Sales Master Manager", 
+  "submit": 0, 
+  "write": 1
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "role": "Purchase Master Manager", 
+  "submit": 0, 
+  "write": 1
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "role": "HR User", 
+  "submit": 0, 
+  "write": 1
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "role": "HR Manager", 
+  "submit": 0, 
+  "write": 1
  }, 
  {
   "doctype": "DocPerm", 
-  "role": "Purchase Master Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR User"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "HR Manager"
+  "role": "All"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/country/test_country.py b/setup/doctype/country/test_country.py
index c42e80f..c2caa3c 100644
--- a/setup/doctype/country/test_country.py
+++ b/setup/doctype/country/test_country.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Country",
diff --git a/setup/doctype/currency/currency.js b/setup/doctype/currency/currency.js
index cc0aeb6..58697b0 100644
--- a/setup/doctype/currency/currency.js
+++ b/setup/doctype/currency/currency.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 cur_frm.cscript.refresh = function(doc) {
 	cur_frm.set_intro("");
 	if(!cur_frm.doc.enabled) {
diff --git a/setup/doctype/currency/currency.py b/setup/doctype/currency/currency.py
index 7f48feb..26d0f76 100644
--- a/setup/doctype/currency/currency.py
+++ b/setup/doctype/currency/currency.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/currency/currency.txt b/setup/doctype/currency/currency.txt
index 2954c9f..7476ccf 100644
--- a/setup/doctype/currency/currency.txt
+++ b/setup/doctype/currency/currency.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-28 10:06:02", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:33:39", 
+  "modified": "2013-07-23 12:05:26", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -25,7 +25,6 @@
   "permlevel": 0
  }, 
  {
-  "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Currency", 
@@ -33,9 +32,7 @@
   "parenttype": "DocType", 
   "permlevel": 0, 
   "read": 1, 
-  "report": 1, 
-  "submit": 0, 
-  "write": 1
+  "report": 1
  }, 
  {
   "doctype": "DocType", 
@@ -92,19 +89,32 @@
  }, 
  {
   "cancel": 1, 
+  "create": 1, 
   "doctype": "DocPerm", 
-  "role": "Accounts Manager"
+  "role": "Accounts Manager", 
+  "submit": 0, 
+  "write": 1
  }, 
  {
   "amend": 0, 
   "cancel": 1, 
+  "create": 1, 
   "doctype": "DocPerm", 
-  "role": "Sales Master Manager"
+  "role": "Sales Master Manager", 
+  "submit": 0, 
+  "write": 1
  }, 
  {
   "amend": 0, 
   "cancel": 0, 
+  "create": 1, 
   "doctype": "DocPerm", 
-  "role": "Purchase Master Manager"
+  "role": "Purchase Master Manager", 
+  "submit": 0, 
+  "write": 1
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "All"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/currency/test_currency.py b/setup/doctype/currency/test_currency.py
index 71963f9..a7ae97b 100644
--- a/setup/doctype/currency/test_currency.py
+++ b/setup/doctype/currency/test_currency.py
@@ -1,2 +1,5 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # pre loaded
 test_records = []
\ No newline at end of file
diff --git a/setup/doctype/currency_exchange/currency_exchange.js b/setup/doctype/currency_exchange/currency_exchange.js
index 02cba11..5fd4305 100644
--- a/setup/doctype/currency_exchange/currency_exchange.js
+++ b/setup/doctype/currency_exchange/currency_exchange.js
@@ -1,20 +1,13 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 $.extend(cur_frm.cscript, {
+	onload: function() {
+		if(cur_frm.doc.__islocal) {
+			cur_frm.set_value("to_currency", wn.defaults.get_global_default("currency"));
+		}
+	},
+	
 	refresh: function() {
 		cur_frm.cscript.set_exchange_rate_label();
 	},
diff --git a/setup/doctype/currency_exchange/currency_exchange.py b/setup/doctype/currency_exchange/currency_exchange.py
index f1ff49e..2a53017 100644
--- a/setup/doctype/currency_exchange/currency_exchange.py
+++ b/setup/doctype/currency_exchange/currency_exchange.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/setup/doctype/currency_exchange/test_currency_exchange.py b/setup/doctype/currency_exchange/test_currency_exchange.py
index 542b6af..ea851b4 100644
--- a/setup/doctype/currency_exchange/test_currency_exchange.py
+++ b/setup/doctype/currency_exchange/test_currency_exchange.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Currency Exchange",
diff --git a/setup/doctype/customer_group/customer_group.js b/setup/doctype/customer_group/customer_group.js
index e865860..2953de5 100644
--- a/setup/doctype/customer_group/customer_group.js
+++ b/setup/doctype/customer_group/customer_group.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
  
 cur_frm.cscript.refresh = function(doc, cdt, cdn) {
 	cur_frm.cscript.set_root_readonly(doc);
diff --git a/setup/doctype/customer_group/customer_group.py b/setup/doctype/customer_group/customer_group.py
index de0042e..0940e1f 100644
--- a/setup/doctype/customer_group/customer_group.py
+++ b/setup/doctype/customer_group/customer_group.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -37,6 +24,7 @@
 	def on_update(self):
 		self.validate_name_with_customer()
 		super(DocType, self).on_update()
+		self.validate_one_root()
 		
 	def validate_name_with_customer(self):
 		if webnotes.conn.exists("Customer", self.doc.name):
diff --git a/setup/doctype/customer_group/customer_group.txt b/setup/doctype/customer_group/customer_group.txt
index 6a13500..4f9acc6 100644
--- a/setup/doctype/customer_group/customer_group.txt
+++ b/setup/doctype/customer_group/customer_group.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:23", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:34:20", 
+  "modified": "2013-08-05 18:12:57", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -69,7 +69,7 @@
   "oldfieldname": "parent_customer_group", 
   "oldfieldtype": "Link", 
   "options": "Customer Group", 
-  "reqd": 1
+  "reqd": 0
  }, 
  {
   "description": "Only leaf nodes are allowed in transaction", 
diff --git a/setup/doctype/customer_group/test_customer_group.py b/setup/doctype/customer_group/test_customer_group.py
index 7670824..14233af 100644
--- a/setup/doctype/customer_group/test_customer_group.py
+++ b/setup/doctype/customer_group/test_customer_group.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Customer Group",
diff --git a/setup/doctype/email_digest/email_digest.js b/setup/doctype/email_digest/email_digest.js
index 5206842..5521092 100644
--- a/setup/doctype/email_digest/email_digest.js
+++ b/setup/doctype/email_digest/email_digest.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.refresh = function(doc, dt, dn) {
 	doc = locals[dt][dn];
@@ -22,7 +9,7 @@
 	cur_frm.add_custom_button('View Now', function() {
 		doc = locals[dt][dn];
 		if(doc.__unsaved != 1) {
-			$c_obj(make_doclist(dt, dn), 'get_digest_msg', '', function(r, rt) {
+			return $c_obj(make_doclist(dt, dn), 'get_digest_msg', '', function(r, rt) {
 				if(r.exc) {
 					msgprint(err_msg);
 					console.log(r.exc);
@@ -45,7 +32,7 @@
 	cur_frm.add_custom_button('Send Now', function() {
 		doc = locals[dt][dn];
 		if(doc.__unsaved != 1) {
-			$c_obj(make_doclist(dt, dn), 'send', '', function(r, rt) {
+			return $c_obj(make_doclist(dt, dn), 'send', '', function(r, rt) {
 				if(r.exc) {
 					msgprint(err_msg);
 					console.log(r.exc);
@@ -62,7 +49,7 @@
 
 cur_frm.cscript.addremove_recipients = function(doc, dt, dn) {
 	// Get profile list
-	$c_obj(make_doclist(dt, dn), 'get_profiles', '', function(r, rt) {
+	return $c_obj(make_doclist(dt, dn), 'get_profiles', '', function(r, rt) {
 		if(r.exc) {
 			msgprint(r.exc);
 		} else {
diff --git a/setup/doctype/email_digest/email_digest.py b/setup/doctype/email_digest/email_digest.py
index 881e35a..39e377a 100644
--- a/setup/doctype/email_digest/email_digest.py
+++ b/setup/doctype/email_digest/email_digest.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -294,7 +281,7 @@
 		
 	def get_calendar_events(self, user_id):
 		from core.doctype.event.event import get_events
-		events = get_events(self.future_from_date, self.future_to_date)
+		events = get_events(self.future_from_date.strftime("%Y-%m-%d"), self.future_to_date.strftime("%Y-%m-%d"))
 		
 		html = ""
 		if events:
diff --git a/setup/doctype/email_settings/email_settings.py b/setup/doctype/email_settings/email_settings.py
index b9880d2..219501e 100644
--- a/setup/doctype/email_settings/email_settings.py
+++ b/setup/doctype/email_settings/email_settings.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/features_setup/features_setup.py b/setup/doctype/features_setup/features_setup.py
index 50b2535..3ecefca 100644
--- a/setup/doctype/features_setup/features_setup.py
+++ b/setup/doctype/features_setup/features_setup.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 class DocType:
diff --git a/setup/doctype/for_territory/for_territory.py b/setup/doctype/for_territory/for_territory.py
index 928aa9f..784339d 100644
--- a/setup/doctype/for_territory/for_territory.py
+++ b/setup/doctype/for_territory/for_territory.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/setup/doctype/global_defaults/global_defaults.js b/setup/doctype/global_defaults/global_defaults.js
index fa80025..3999979 100644
--- a/setup/doctype/global_defaults/global_defaults.js
+++ b/setup/doctype/global_defaults/global_defaults.js
@@ -1,22 +1,9 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // Validate
 cur_frm.cscript.validate = function(doc, cdt, cdn) {
-	$c_obj(make_doclist(cdt, cdn), 'get_defaults', '', function(r, rt){
+	return $c_obj(make_doclist(cdt, cdn), 'get_defaults', '', function(r, rt){
 		sys_defaults = r.message;
 	});
 }
\ No newline at end of file
diff --git a/setup/doctype/global_defaults/global_defaults.py b/setup/doctype/global_defaults/global_defaults.py
index 52a291f..1b1d50c 100644
--- a/setup/doctype/global_defaults/global_defaults.py
+++ b/setup/doctype/global_defaults/global_defaults.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 """Global Defaults"""
@@ -32,7 +19,7 @@
 	'float_precision': 'float_precision',
 	'account_url':'account_url',
 	'session_expiry': 'session_expiry',
-	'disable_rounded_total': 'disable_rounded_total'
+	'disable_rounded_total': 'disable_rounded_total',
 }
 
 class DocType:
diff --git a/setup/doctype/global_defaults/global_defaults.txt b/setup/doctype/global_defaults/global_defaults.txt
index b59ca94..fbfa8ca 100644
--- a/setup/doctype/global_defaults/global_defaults.txt
+++ b/setup/doctype/global_defaults/global_defaults.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-02 17:53:24", 
   "docstatus": 0, 
-  "modified": "2013-07-15 15:03:01", 
+  "modified": "2013-08-06 11:22:22", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -71,7 +71,8 @@
   "read_only": 0
  }, 
  {
-  "description": "Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.", 
+  "default": "3", 
+  "description": "Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3", 
   "doctype": "DocField", 
   "fieldname": "float_precision", 
   "fieldtype": "Select", 
@@ -182,15 +183,6 @@
   "read_only": 0
  }, 
  {
-  "description": "Employee record is created using selected field. ", 
-  "doctype": "DocField", 
-  "fieldname": "emp_created_by", 
-  "fieldtype": "Select", 
-  "label": "Employee Records to be created by ", 
-  "options": "Naming Series\nEmployee Number", 
-  "read_only": 0
- }, 
- {
   "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/item_group/item_group.js b/setup/doctype/item_group/item_group.js
index b642735..31edef2 100644
--- a/setup/doctype/item_group/item_group.js
+++ b/setup/doctype/item_group/item_group.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 
 cur_frm.cscript.refresh = function(doc, cdt, cdn) {
@@ -37,7 +24,7 @@
 	return{
 		filters:[
 			['Item Group', 'is_group', '=', 'Yes'],
-			['Item Group', 'naem', '!=', doc.item_group_name]
+			['Item Group', 'name', '!=', doc.item_group_name]
 		]
 	}
 }
\ No newline at end of file
diff --git a/setup/doctype/item_group/item_group.py b/setup/doctype/item_group/item_group.py
index ef3c408..81f6903 100644
--- a/setup/doctype/item_group/item_group.py
+++ b/setup/doctype/item_group/item_group.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -33,7 +20,6 @@
 		
 		from website.helpers.product import invalidate_cache_for
 		
-		
 		if self.doc.show_in_website:
 			from webnotes.webutils import update_page_name
 			# webpage updates
@@ -51,6 +37,8 @@
 			
 			webnotes.conn.set(self.doc, "page_name", None)
 		
+		self.validate_one_root()
+		
 	def validate_name_with_item(self):
 		if webnotes.conn.exists("Item", self.doc.name):
 			webnotes.msgprint("An item exists with same name (%s), please change the \
diff --git a/setup/doctype/item_group/item_group.txt b/setup/doctype/item_group/item_group.txt
index a2b04e7..f573110 100644
--- a/setup/doctype/item_group/item_group.txt
+++ b/setup/doctype/item_group/item_group.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-28 10:35:29", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:43:08", 
+  "modified": "2013-08-05 17:21:14", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -37,8 +37,7 @@
   "parenttype": "DocType", 
   "permlevel": 0, 
   "read": 1, 
-  "report": 1, 
-  "submit": 0
+  "report": 1
  }, 
  {
   "doctype": "DocType", 
@@ -76,7 +75,7 @@
   "oldfieldname": "parent_item_group", 
   "oldfieldtype": "Link", 
   "options": "Item Group", 
-  "reqd": 1, 
+  "reqd": 0, 
   "search_index": 0
  }, 
  {
@@ -180,6 +179,7 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "role": "Material Manager", 
+  "submit": 0, 
   "write": 0
  }, 
  {
@@ -188,20 +188,27 @@
   "create": 0, 
   "doctype": "DocPerm", 
   "role": "Material User", 
+  "submit": 0, 
   "write": 0
  }, 
  {
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "role": "System Manager", 
+  "role": "Material Master Manager", 
+  "submit": 0, 
   "write": 1
  }, 
  {
-  "cancel": 1, 
-  "create": 1, 
   "doctype": "DocPerm", 
-  "role": "Material Master Manager", 
-  "write": 1
+  "role": "Sales User"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Purchase User"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Accounts User"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/item_group/test_item_group.py b/setup/doctype/item_group/test_item_group.py
index 924b367..7d7452e 100644
--- a/setup/doctype/item_group/test_item_group.py
+++ b/setup/doctype/item_group/test_item_group.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Item Group",
diff --git a/setup/doctype/jobs_email_settings/jobs_email_settings.js b/setup/doctype/jobs_email_settings/jobs_email_settings.js
index 0a75b89..b970c96 100644
--- a/setup/doctype/jobs_email_settings/jobs_email_settings.js
+++ b/setup/doctype/jobs_email_settings/jobs_email_settings.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 // For license information, please see license.txt
 
 cur_frm.cscript = {
diff --git a/setup/doctype/jobs_email_settings/jobs_email_settings.py b/setup/doctype/jobs_email_settings/jobs_email_settings.py
index b09cefd..87ed621 100644
--- a/setup/doctype/jobs_email_settings/jobs_email_settings.py
+++ b/setup/doctype/jobs_email_settings/jobs_email_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/setup/doctype/naming_series/naming_series.js b/setup/doctype/naming_series/naming_series.js
index 07d6f82..885b5ed 100644
--- a/setup/doctype/naming_series/naming_series.js
+++ b/setup/doctype/naming_series/naming_series.js
@@ -1,22 +1,9 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // Settings
 cur_frm.cscript.onload_post_render = function(doc, cdt, cdn){
-	cur_frm.call({
+	return cur_frm.call({
 		doc: cur_frm.doc,
 		method: 'get_transactions',
 		callback: function(r) {
@@ -45,15 +32,15 @@
 	}
 
 	if(doc.select_doc_for_series)
-		$c_obj(make_doclist(doc.doctype, doc.name),'get_options','',callback)
+		return $c_obj(make_doclist(doc.doctype, doc.name),'get_options','',callback)
 }
 
 cur_frm.cscript.update = function() {
-	cur_frm.call_server('update_series', '', cur_frm.cscript.update_selects)
+	return cur_frm.call_server('update_series', '', cur_frm.cscript.update_selects)
 }
 
 cur_frm.cscript.prefix = function(doc, dt, dn) {
-	cur_frm.call_server('get_current', '', function(r) {
+	return cur_frm.call_server('get_current', '', function(r) {
 		refresh_field('current_value');
 	})
 }
diff --git a/setup/doctype/naming_series/naming_series.py b/setup/doctype/naming_series/naming_series.py
index eb293f2..9cc4de2 100644
--- a/setup/doctype/naming_series/naming_series.py
+++ b/setup/doctype/naming_series/naming_series.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -134,8 +121,7 @@
 
 	def get_current(self, arg=None):
 		"""get series current"""
-		self.doc.current_value = webnotes.conn.sql("""select current from tabSeries where name=%s""", 
-			self.doc.prefix)[0][0]
+		self.doc.current_value = webnotes.conn.get_value("Series", self.doc.prefix, "current")
 
 	def insert_series(self, series):
 		"""insert series if missing"""
diff --git a/setup/doctype/notification_control/notification_control.js b/setup/doctype/notification_control/notification_control.js
index 619d417..3e16421 100644
--- a/setup/doctype/notification_control/notification_control.js
+++ b/setup/doctype/notification_control/notification_control.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.select_transaction = function(doc, cdt, cdn) {
   if(doc.select_transaction) {
@@ -21,6 +8,6 @@
       doc.custom_message = r.message;
       refresh_field('custom_message');
     }
-    $c_obj(make_doclist(cdt, cdn),'get_message',doc.select_transaction, callback)
+    return $c_obj(make_doclist(cdt, cdn),'get_message',doc.select_transaction, callback)
   }
 }
diff --git a/setup/doctype/notification_control/notification_control.py b/setup/doctype/notification_control/notification_control.py
index d6792f9..6133d9b 100644
--- a/setup/doctype/notification_control/notification_control.py
+++ b/setup/doctype/notification_control/notification_control.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/price_list/price_list.js b/setup/doctype/price_list/price_list.js
index 26c9854..5de8da5 100644
--- a/setup/doctype/price_list/price_list.js
+++ b/setup/doctype/price_list/price_list.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 $.extend(cur_frm.cscript, {
 	onload: function() {
@@ -32,7 +19,7 @@
 	},
 	
 	show_item_prices: function() {
-		var item_price = wn.model.get("Item Price", {price_list_name: cur_frm.doc.name});
+		var item_price = wn.model.get("Item Price", {price_list: cur_frm.doc.name});
 	
 		var show = item_price && item_price.length;
 	
diff --git a/setup/doctype/price_list/price_list.py b/setup/doctype/price_list/price_list.py
index a5f22d9..112ce95 100644
--- a/setup/doctype/price_list/price_list.py
+++ b/setup/doctype/price_list/price_list.py
@@ -1,43 +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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
 from webnotes import msgprint, _
 from webnotes.utils import comma_or, cint
 from webnotes.model.controller import DocListController
+import webnotes.defaults
 
 class DocType(DocListController):
 	def onload(self):
 		self.doclist.extend(webnotes.conn.sql("""select * from `tabItem Price` 
-			where price_list_name=%s""", self.doc.name, as_dict=True, update={"doctype": "Item Price"}))
+			where price_list=%s""", self.doc.name, as_dict=True, update={"doctype": "Item Price"}))
 	
 	def validate(self):
 		if self.doc.buying_or_selling not in ["Buying", "Selling"]:
 			msgprint(_(self.meta.get_label("buying_or_selling")) + " " + _("must be one of") + " " +
 				comma_or(["Buying", "Selling"]), raise_exception=True)
 				
-		# at least one territory
-		self.validate_table_has_rows("valid_for_territories")
+		if not self.doclist.get({"parentfield": "valid_for_territories"}):
+			# if no territory, set default territory
+			if webnotes.defaults.get_user_default("territory"):
+				self.doclist.append({
+					"doctype": "For Territory",
+					"parentfield": "valid_for_territories",
+					"territory": webnotes.defaults.get_user_default("territory")
+				})
+			else:
+				# at least one territory
+				self.validate_table_has_rows("valid_for_territories")
 		
 	def on_update(self):
+		self.set_default_if_missing()
 		cart_settings = webnotes.get_obj("Shopping Cart Settings")
 		if cint(cart_settings.doc.enabled):
 			cart_settings.validate_price_lists()
 				
 	def on_trash(self):
-		webnotes.conn.sql("""delete from `tabItem Price` where price_list_name = %s""", 
-			self.doc.name)
\ No newline at end of file
+		webnotes.conn.sql("""delete from `tabItem Price` where price_list = %s""", 
+			self.doc.name)
+			
+	def set_default_if_missing(self):
+		if self.doc.buying_or_selling=="Selling":
+			if not webnotes.conn.get_value("Selling Settings", None, "selling_price_list"):
+				webnotes.set_value("Selling Settings", "Selling Settings", "selling_price_list", self.doc.name)
+
+		elif self.doc.buying_or_selling=="Buying":
+			if not webnotes.conn.get_value("Buying Settings", None, "buying_price_list"):
+				webnotes.set_value("Buying Settings", "Buying Settings", "buying_price_list", self.doc.name)
\ No newline at end of file
diff --git a/setup/doctype/price_list/price_list.txt b/setup/doctype/price_list/price_list.txt
index 769e3d0..febf471 100644
--- a/setup/doctype/price_list/price_list.txt
+++ b/setup/doctype/price_list/price_list.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-25 11:35:09", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:50:47", 
+  "modified": "2013-07-26 11:19:06", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,7 +29,6 @@
   "permlevel": 0
  }, 
  {
-  "amend": 0, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Price List", 
@@ -37,8 +36,7 @@
   "parenttype": "DocType", 
   "permlevel": 0, 
   "read": 1, 
-  "report": 1, 
-  "submit": 0
+  "report": 1
  }, 
  {
   "doctype": "DocType", 
@@ -57,6 +55,7 @@
   "doctype": "DocField", 
   "fieldname": "currency", 
   "fieldtype": "Link", 
+  "in_list_view": 1, 
   "label": "Currency", 
   "options": "Currency", 
   "reqd": 1
@@ -66,6 +65,7 @@
   "doctype": "DocField", 
   "fieldname": "buying_or_selling", 
   "fieldtype": "Select", 
+  "in_list_view": 1, 
   "label": "Valid for Buying or Selling?", 
   "options": "Buying\nSelling", 
   "reqd": 1
@@ -118,24 +118,32 @@
   "options": "<div class=\"well\">Use the <a href=\"#data-import-tool\">Data Import Tool</a> to upload, update Item Prices in bulk:\n<ol> \n<li>Go to Data Import Tool.\n<li>Select \"Item\"\n<li>Check on \"With Data\"\n<li>Download \"Item Price\" from Child Tables.\n<li>Update the prices required and add new rows if required.\n<li>Check on \"Overwrite\"\n<li>Upload the modified sheet.\n</div>\n"
  }, 
  {
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "role": "Sales Manager", 
-  "write": 0
- }, 
- {
+  "amend": 0, 
   "cancel": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
   "role": "Sales User", 
+  "submit": 0, 
   "write": 0
  }, 
  {
+  "amend": 0, 
+  "cancel": 1, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "role": "Sales Master Manager", 
+  "submit": 0, 
+  "write": 1
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Purchase User"
+ }, 
+ {
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "role": "Sales Master Manager", 
+  "role": "Purchase Master Manager", 
   "write": 1
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/price_list/test_price_list.py b/setup/doctype/price_list/test_price_list.py
index c3633e7..bfa64ec 100644
--- a/setup/doctype/price_list/test_price_list.py
+++ b/setup/doctype/price_list/test_price_list.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[
 		{
diff --git a/setup/doctype/print_heading/print_heading.js b/setup/doctype/print_heading/print_heading.js
index 3cad944..e8c3c69 100644
--- a/setup/doctype/print_heading/print_heading.js
+++ b/setup/doctype/print_heading/print_heading.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
  
 
diff --git a/setup/doctype/print_heading/print_heading.py b/setup/doctype/print_heading/print_heading.py
index d856eb4..ba7114a 100644
--- a/setup/doctype/print_heading/print_heading.py
+++ b/setup/doctype/print_heading/print_heading.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/print_heading/test_print_heading.py b/setup/doctype/print_heading/test_print_heading.py
index d2ef7c3..927ac66 100644
--- a/setup/doctype/print_heading/test_print_heading.py
+++ b/setup/doctype/print_heading/test_print_heading.py
@@ -1 +1,4 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [[{"print_heading": "_Test Print Heading"}]]
\ No newline at end of file
diff --git a/setup/doctype/quotation_lost_reason/quotation_lost_reason.js b/setup/doctype/quotation_lost_reason/quotation_lost_reason.js
index 3cad944..e8c3c69 100644
--- a/setup/doctype/quotation_lost_reason/quotation_lost_reason.js
+++ b/setup/doctype/quotation_lost_reason/quotation_lost_reason.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
  
 
diff --git a/setup/doctype/quotation_lost_reason/quotation_lost_reason.py b/setup/doctype/quotation_lost_reason/quotation_lost_reason.py
index 7794430..8002652 100644
--- a/setup/doctype/quotation_lost_reason/quotation_lost_reason.py
+++ b/setup/doctype/quotation_lost_reason/quotation_lost_reason.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt b/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt
index d580410..d9174e3 100644
--- a/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt
+++ b/setup/doctype/quotation_lost_reason/quotation_lost_reason.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:24", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:52:43", 
+  "modified": "2013-07-22 15:29:22", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -23,6 +23,7 @@
   "permlevel": 0
  }, 
  {
+  "amend": 0, 
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
@@ -33,6 +34,7 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 1, 
+  "role": "Sales Master Manager", 
   "submit": 0, 
   "write": 1
  }, 
@@ -59,12 +61,6 @@
   "reqd": 1
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "amend": 0, 
-  "doctype": "DocPerm", 
-  "role": "Sales Master Manager"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/setup/doctype/quotation_lost_reason/test_quotation_lost_reason.py b/setup/doctype/quotation_lost_reason/test_quotation_lost_reason.py
index 9e98204..4b2bc17 100644
--- a/setup/doctype/quotation_lost_reason/test_quotation_lost_reason.py
+++ b/setup/doctype/quotation_lost_reason/test_quotation_lost_reason.py
@@ -1 +1,4 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [[{"doctype":"Quotation Lost Reason", "order_lost_reason": "_Test Quotation Lost Reason"}]]
\ No newline at end of file
diff --git a/setup/doctype/sales_email_settings/sales_email_settings.js b/setup/doctype/sales_email_settings/sales_email_settings.js
index 0a75b89..b970c96 100644
--- a/setup/doctype/sales_email_settings/sales_email_settings.js
+++ b/setup/doctype/sales_email_settings/sales_email_settings.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 // For license information, please see license.txt
 
 cur_frm.cscript = {
diff --git a/setup/doctype/sales_email_settings/sales_email_settings.py b/setup/doctype/sales_email_settings/sales_email_settings.py
index b09cefd..87ed621 100644
--- a/setup/doctype/sales_email_settings/sales_email_settings.py
+++ b/setup/doctype/sales_email_settings/sales_email_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/setup/doctype/sales_partner/sales_partner.js b/setup/doctype/sales_partner/sales_partner.js
index acf6b31..86b7712 100644
--- a/setup/doctype/sales_partner/sales_partner.js
+++ b/setup/doctype/sales_partner/sales_partner.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require('app/setup/doctype/contact_control/contact_control.js');
 
diff --git a/setup/doctype/sales_partner/sales_partner.py b/setup/doctype/sales_partner/sales_partner.py
index dc46b20..2c39e67 100644
--- a/setup/doctype/sales_partner/sales_partner.py
+++ b/setup/doctype/sales_partner/sales_partner.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/sales_partner/test_sales_partner.py b/setup/doctype/sales_partner/test_sales_partner.py
index 3afb472..7ac835d 100644
--- a/setup/doctype/sales_partner/test_sales_partner.py
+++ b/setup/doctype/sales_partner/test_sales_partner.py
@@ -1 +1,4 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = []
\ No newline at end of file
diff --git a/setup/doctype/sales_person/sales_person.js b/setup/doctype/sales_person/sales_person.js
index fd03a44..34f267e 100644
--- a/setup/doctype/sales_person/sales_person.js
+++ b/setup/doctype/sales_person/sales_person.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.refresh = function(doc, cdt, cdn) {
 	cur_frm.cscript.set_root_readonly(doc);
diff --git a/setup/doctype/sales_person/sales_person.py b/setup/doctype/sales_person/sales_person.py
index 2fe08fa..6161706 100644
--- a/setup/doctype/sales_person/sales_person.py
+++ b/setup/doctype/sales_person/sales_person.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -34,6 +21,10 @@
 				webnotes.msgprint("Either target qty or target amount is mandatory.")
 				raise Exception
 	
+	def on_update(self):
+		super(DocType, self).on_update()
+		self.validate_one_root()
+	
 	def get_email_id(self):
 		profile = webnotes.conn.get_value("Employee", self.doc.employee, "user_id")
 		if not profile:
diff --git a/setup/doctype/sales_person/sales_person.txt b/setup/doctype/sales_person/sales_person.txt
index 56c6397..77ba6af 100644
--- a/setup/doctype/sales_person/sales_person.txt
+++ b/setup/doctype/sales_person/sales_person.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:24", 
   "docstatus": 0, 
-  "modified": "2013-07-10 12:51:58", 
+  "modified": "2013-08-05 18:11:22", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -69,7 +69,7 @@
   "oldfieldname": "parent_sales_person", 
   "oldfieldtype": "Link", 
   "options": "Sales Person", 
-  "reqd": 1
+  "reqd": 0
  }, 
  {
   "doctype": "DocField", 
diff --git a/setup/doctype/sales_person/test_sales_person.py b/setup/doctype/sales_person/test_sales_person.py
index 86a268f..d00736b 100644
--- a/setup/doctype/sales_person/test_sales_person.py
+++ b/setup/doctype/sales_person/test_sales_person.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_dependencies = ["Employee"]
 test_records = [
 	[{
diff --git a/setup/doctype/setup_control/setup_control.py b/setup/doctype/setup_control/setup_control.py
index b029da3..54c0e28 100644
--- a/setup/doctype/setup_control/setup_control.py
+++ b/setup/doctype/setup_control/setup_control.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -28,7 +15,8 @@
 	
 	def setup_account(self, args):
 		import webnotes, json
-		args = json.loads(args)
+		if isinstance(args, basestring):
+			args = json.loads(args)
 		webnotes.conn.begin()
 
 		self.update_profile_name(args)
@@ -256,7 +244,7 @@
 		if name and not webnotes.conn.exists("Territory", name):
 			webnotes.bean({
 				"doctype": "Territory",
-				"territory_name": name,
+				"territory_name": name.replace("'", ""),
 				"parent_territory": root_territory,
 				"is_group": "No"
 			}).insert()
diff --git a/setup/doctype/sms_parameter/sms_parameter.py b/setup/doctype/sms_parameter/sms_parameter.py
index 7f48feb..26d0f76 100644
--- a/setup/doctype/sms_parameter/sms_parameter.py
+++ b/setup/doctype/sms_parameter/sms_parameter.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/sms_settings/sms_settings.py b/setup/doctype/sms_settings/sms_settings.py
index 7f48feb..26d0f76 100644
--- a/setup/doctype/sms_settings/sms_settings.py
+++ b/setup/doctype/sms_settings/sms_settings.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/supplier_type/supplier_type.js b/setup/doctype/supplier_type/supplier_type.js
index 945dec0..b65f67c 100644
--- a/setup/doctype/supplier_type/supplier_type.js
+++ b/setup/doctype/supplier_type/supplier_type.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.refresh = function(doc) {
 	cur_frm.set_intro(doc.__islocal ? "" : "There is nothing to edit.")
diff --git a/setup/doctype/supplier_type/supplier_type.py b/setup/doctype/supplier_type/supplier_type.py
index 7794430..8002652 100644
--- a/setup/doctype/supplier_type/supplier_type.py
+++ b/setup/doctype/supplier_type/supplier_type.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/supplier_type/test_supplier_type.py b/setup/doctype/supplier_type/test_supplier_type.py
index 74dde97..cb6a8b7 100644
--- a/setup/doctype/supplier_type/test_supplier_type.py
+++ b/setup/doctype/supplier_type/test_supplier_type.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Supplier Type",
diff --git a/setup/doctype/target_detail/target_detail.py b/setup/doctype/target_detail/target_detail.py
index 7f48feb..26d0f76 100644
--- a/setup/doctype/target_detail/target_detail.py
+++ b/setup/doctype/target_detail/target_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/terms_and_conditions/terms_and_conditions.js b/setup/doctype/terms_and_conditions/terms_and_conditions.js
index 3cad944..e8c3c69 100644
--- a/setup/doctype/terms_and_conditions/terms_and_conditions.js
+++ b/setup/doctype/terms_and_conditions/terms_and_conditions.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
  
 
diff --git a/setup/doctype/terms_and_conditions/terms_and_conditions.py b/setup/doctype/terms_and_conditions/terms_and_conditions.py
index 7f48feb..26d0f76 100644
--- a/setup/doctype/terms_and_conditions/terms_and_conditions.py
+++ b/setup/doctype/terms_and_conditions/terms_and_conditions.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/terms_and_conditions/test_terms_and_conditions.py b/setup/doctype/terms_and_conditions/test_terms_and_conditions.py
index b0d1fee..268e9e0 100644
--- a/setup/doctype/terms_and_conditions/test_terms_and_conditions.py
+++ b/setup/doctype/terms_and_conditions/test_terms_and_conditions.py
@@ -1 +1,4 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [[{"title": "_Test Terms and Conditions", "terms": "_Test Terms"}]]
\ No newline at end of file
diff --git a/setup/doctype/territory/territory.js b/setup/doctype/territory/territory.js
index 7fdfee5..7561816 100644
--- a/setup/doctype/territory/territory.js
+++ b/setup/doctype/territory/territory.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.refresh = function(doc, cdt, cdn) {
 	cur_frm.cscript.set_root_readonly(doc);
diff --git a/setup/doctype/territory/territory.py b/setup/doctype/territory/territory.py
index 896d5c7..13498fc 100644
--- a/setup/doctype/territory/territory.py
+++ b/setup/doctype/territory/territory.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -33,4 +20,7 @@
 			if not flt(d.target_qty) and not flt(d.target_amount):
 				msgprint("Either target qty or target amount is mandatory.")
 				raise Exception
-				
\ No newline at end of file
+
+	def on_update(self):
+		super(DocType, self).on_update()
+		self.validate_one_root()
diff --git a/setup/doctype/territory/territory.txt b/setup/doctype/territory/territory.txt
index bba7e3e..b647e7b 100644
--- a/setup/doctype/territory/territory.txt
+++ b/setup/doctype/territory/territory.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:24", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:58:15", 
+  "modified": "2013-08-05 18:12:29", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -71,7 +71,7 @@
   "oldfieldname": "parent_territory", 
   "oldfieldtype": "Link", 
   "options": "Territory", 
-  "reqd": 1
+  "reqd": 0
  }, 
  {
   "description": "Only leaf nodes are allowed in transaction", 
diff --git a/setup/doctype/territory/test_territory.py b/setup/doctype/territory/test_territory.py
index 75003f2..1ebcc1e 100644
--- a/setup/doctype/territory/test_territory.py
+++ b/setup/doctype/territory/test_territory.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Territory",
diff --git a/setup/doctype/uom/test_uom.py b/setup/doctype/uom/test_uom.py
index 51c2bdd..044cc11 100644
--- a/setup/doctype/uom/test_uom.py
+++ b/setup/doctype/uom/test_uom.py
@@ -1,6 +1,14 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "UOM",
-		"uom_name": "_Test UOM"
+		"uom_name": "_Test UOM",
+		"must_be_whole_number": 1
+	}],
+	[{
+		"doctype": "UOM",
+		"uom_name": "_Test UOM 1"
 	}]
 ]
\ No newline at end of file
diff --git a/setup/doctype/uom/uom.js b/setup/doctype/uom/uom.js
index 3cad944..e8c3c69 100644
--- a/setup/doctype/uom/uom.js
+++ b/setup/doctype/uom/uom.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
  
 
diff --git a/setup/doctype/uom/uom.py b/setup/doctype/uom/uom.py
index 7794430..8002652 100644
--- a/setup/doctype/uom/uom.py
+++ b/setup/doctype/uom/uom.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/setup/doctype/uom/uom.txt b/setup/doctype/uom/uom.txt
index ac15095..6577f6c 100644
--- a/setup/doctype/uom/uom.txt
+++ b/setup/doctype/uom/uom.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:24", 
   "docstatus": 0, 
-  "modified": "2013-07-05 15:02:01", 
+  "modified": "2013-07-25 16:18:17", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -64,6 +64,13 @@
   "reqd": 1
  }, 
  {
+  "description": "Check this to disallow fractions. (for Nos)", 
+  "doctype": "DocField", 
+  "fieldname": "must_be_whole_number", 
+  "fieldtype": "Check", 
+  "label": "Must be Whole Number"
+ }, 
+ {
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
diff --git a/setup/page/setup/setup.js b/setup/page/setup/setup.js
index 1844d5d..c9532e2 100644
--- a/setup/page/setup/setup.js
+++ b/setup/page/setup/setup.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.pages['Setup'].onload = function(wrapper) { 
 	if(msg_dialog && msg_dialog.display) msg_dialog.hide();
 	wn.ui.make_app_page({
@@ -7,42 +10,21 @@
 	});
 
 	wrapper.appframe.add_module_icon("Setup");
+	wrapper.appframe.add_button("Refresh", function() {
+		wn.pages.Setup.make(wrapper);
+	}, "icon-refresh");
 	
+	wn.pages.Setup.make(wrapper);
+	
+}
+
+wn.pages.Setup.make = function(wrapper) {
 	var body = $(wrapper).find(".layout-main"),
 		total = 0,
 		completed = 0;
 
 	body.html('<div class="progress progress-striped active">\
-		<div class="progress-bar" style="width: 100%;"></div></div>')
-
-	wn.call({
-		method: "setup.page.setup.setup.get",
-		callback: function(r) {
-			if(r.message) {
-				body.empty();
-				if(wn.boot.expires_on) {
-					$(body).prepend("<div class='text-muted' style='text-align:right'>Account expires on "
-							+ wn.datetime.global_date_format(wn.boot.expires_on) + "</div>");
-				}
-
-				$completed = $('<h4>Setup Completed <span class="completed-percent"></span><h4>\
-					<div class="progress"><div class="progress-bar"></div></div>')
-					.appendTo(body);
-
-				$.each(r.message, function(i, item) {
-					render_item(item)
-				});
-				
-				var completed_percent = cint(flt(completed) / total * 100) + "%";
-				$completed
-					.find(".progress-bar")
-					.css({"width": completed_percent});
-				$(body)
-					.find(".completed-percent")
-					.html("(" + completed_percent + ")");
-			}
-		}
-	});
+		<div class="progress-bar" style="width: 100%;"></div></div>');
 	
 	var render_item = function(item, dependency) {		
 		if(item.type==="Section") {
@@ -60,12 +42,12 @@
 			.appendTo(body);
 
 		$('<div class="col col-lg-1"></div>').appendTo(row);
-			
+		
 		if(item.type==="Link") {
 			var col = $('<div class="col col-lg-5"><b><a href="#'
 				+item.route+'"><i class="'+item.icon+'"></i> '
 				+item.title+'</a></b></div>').appendTo(row);
-			
+		
 		} else {
 			var col = $(repl('<div class="col col-lg-5">\
 					<span class="badge view-link">%(count)s</span>\
@@ -94,12 +76,12 @@
 			col.addClass("col-offset-1");
 		else
 			$('<div class="col col-lg-1"></div>').appendTo(row);
-			
+		
 		if(item.doctype) {
 			var badge = col.find(".badge, .data-link")
 				.attr("data-doctype", item.doctype)
 				.css({"cursor": "pointer"})
-				
+			
 			if(item.single) {
 				badge.click(function() {
 					wn.set_route("Form", $(this).attr("data-doctype"))
@@ -110,10 +92,10 @@
 				})
 			}
 		}
-		
+	
 		// tree
 		$links = $('<div class="col col-lg-5">').appendTo(row);
-		
+	
 		if(item.tree) {
 			$('<a class="view-link"><i class="icon-sitemap"></i> Browse</a>\
 				<span class="text-muted">|</span> \
@@ -126,7 +108,7 @@
 			mylink.click(function() {
 				wn.set_route(item.tree, item.doctype);
 			})
-						
+					
 		} else if(item.single) {
 			$('<a class="view-link"><i class="icon-edit"></i> Edit</a>')
 				.appendTo($links)
@@ -175,7 +157,7 @@
 				wn.route_options = {doctype:$(this).attr("data-doctype")}
 				wn.set_route("data-import-tool");
 			})
-			
+		
 		if(item.links) {
 			$.each(item.links, function(i, link) {
 				var newlinks = $('<span class="text-muted"> |</span> \
@@ -184,11 +166,40 @@
 					.appendTo($links)
 			})
 		}
-			
+		
 		if(item.dependencies) {
 			$.each(item.dependencies, function(i, d) {
 				render_item(d, true);
 			})
 		}
 	}
+
+	return wn.call({
+		method: "setup.page.setup.setup.get",
+		callback: function(r) {
+			if(r.message) {
+				body.empty();
+				if(wn.boot.expires_on) {
+					$(body).prepend("<div class='text-muted' style='text-align:right'>Account expires on "
+							+ wn.datetime.global_date_format(wn.boot.expires_on) + "</div>");
+				}
+
+				$completed = $('<h4>Setup Completed <span class="completed-percent"></span><h4>\
+					<div class="progress"><div class="progress-bar"></div></div>')
+					.appendTo(body);
+
+				$.each(r.message, function(i, item) {
+					render_item(item)
+				});
+				
+				var completed_percent = cint(flt(completed) / total * 100) + "%";
+				$completed
+					.find(".progress-bar")
+					.css({"width": completed_percent});
+				$(body)
+					.find(".completed-percent")
+					.html("(" + completed_percent + ")");
+			}
+		}
+	});
 }
\ No newline at end of file
diff --git a/setup/page/setup/setup.py b/setup/page/setup/setup.py
index 4bb1a20..6e6be31 100644
--- a/setup/page/setup/setup.py
+++ b/setup/page/setup/setup.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 import webnotes
 
diff --git a/setup/utils.py b/setup/utils.py
index e1463fa..3d0c1ee 100644
--- a/setup/utils.py
+++ b/setup/utils.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -44,20 +31,6 @@
 	return result or []
 
 @webnotes.whitelist()
-def get_price_list_currency(args):
-	"""
-		args = {
-			"price_list_name": "Something",
-			"buying_or_selling": "Buying" or "Selling"
-		}
-	"""
-	if isinstance(args, basestring):
-		args = json.loads(args)
-	
-	result = webnotes.conn.sql("""select distinct ref_currency from `tabItem Price`
-		where price_list_name=%s and buying_or_selling=%s""",
-		(args.get("price_list_name"), args.get("buying_or_selling")))
-	if result and len(result)==1:
-		return {"price_list_currency": result[0][0]}
-	else:
-		return {}
\ No newline at end of file
+def get_price_list_currency(price_list):
+	return {"price_list_currency": webnotes.conn.get_value("Price List", price_list, 
+		"currency")}
\ No newline at end of file
diff --git a/startup/boot.py b/startup/boot.py
index a75c78a..79f0a7b 100644
--- a/startup/boot.py
+++ b/startup/boot.py
@@ -1,5 +1,5 @@
-# ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-# GNU General Public License. See "license.txt"
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt"
 
 
 from __future__ import unicode_literals
diff --git a/startup/event_handlers.py b/startup/event_handlers.py
index 3f14542..e807797 100644
--- a/startup/event_handlers.py
+++ b/startup/event_handlers.py
@@ -1,5 +1,5 @@
-# ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-# GNU General Public License. See "license.txt"
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt"
 
 
 from __future__ import unicode_literals
@@ -30,7 +30,7 @@
 			login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D')
 		webnotes.conn.commit()
 		
-	if webnotes.conn.get_value("Profile", webnotes.session.user, "user_type") == "Partner":
+	if webnotes.conn.get_value("Profile", webnotes.session.user, "user_type") == "Website User":
 		from website.helpers.cart import set_cart_count
 		set_cart_count()
 		
diff --git a/startup/install.py b/startup/install.py
index 896a6cd..7e9273c 100644
--- a/startup/install.py
+++ b/startup/install.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 
 import webnotes
@@ -104,6 +107,7 @@
 		{'doctype': 'Item Group', 'item_group_name': 'Products', 'is_group': 'No', 'parent_item_group': 'All Item Groups'},
 		{'doctype': 'Item Group', 'item_group_name': 'Raw Material', 'is_group': 'No', 'parent_item_group': 'All Item Groups'},
 		{'doctype': 'Item Group', 'item_group_name': 'Services', 'is_group': 'No', 'parent_item_group': 'All Item Groups'},
+		{'doctype': 'Item Group', 'item_group_name': 'Sub Assemblies', 'is_group': 'No', 'parent_item_group': 'All Item Groups'},
 		
 		# deduction type
 		{'doctype': 'Deduction Type', 'name': 'Income Tax', 'description': 'Income Tax', 'deduction_name': 'Income Tax'},
@@ -151,13 +155,13 @@
 		{'doctype': 'Sales Person', 'sales_person_name': 'Sales Team', 'is_group': "Yes", "parent_sales_person": ""},
 		
 		# UOM
-		{'uom_name': 'Unit', 'doctype': 'UOM', 'name': 'Unit'}, 
-		{'uom_name': 'Box', 'doctype': 'UOM', 'name': 'Box'}, 
+		{'uom_name': 'Unit', 'doctype': 'UOM', 'name': 'Unit', "must_be_whole_number": 1}, 
+		{'uom_name': 'Box', 'doctype': 'UOM', 'name': 'Box', "must_be_whole_number": 1}, 
 		{'uom_name': 'Kg', 'doctype': 'UOM', 'name': 'Kg'}, 
-		{'uom_name': 'Nos', 'doctype': 'UOM', 'name': 'Nos'}, 
-		{'uom_name': 'Pair', 'doctype': 'UOM', 'name': 'Pair'}, 
-		{'uom_name': 'Set', 'doctype': 'UOM', 'name': 'Set'}, 
-		{'uom_name': 'Hour', 'doctype': 'UOM', 'name': 'Hour'}, 
+		{'uom_name': 'Nos', 'doctype': 'UOM', 'name': 'Nos', "must_be_whole_number": 1}, 
+		{'uom_name': 'Pair', 'doctype': 'UOM', 'name': 'Pair', "must_be_whole_number": 1}, 
+		{'uom_name': 'Set', 'doctype': 'UOM', 'name': 'Set', "must_be_whole_number": 1}, 
+		{'uom_name': 'Hour', 'doctype': 'UOM', 'name': 'Hour'},
 		{'uom_name': 'Minute', 'doctype': 'UOM', 'name': 'Minute'}, 
 	]
 	
diff --git a/startup/observers.py b/startup/observers.py
index 89980e4..df827da 100644
--- a/startup/observers.py
+++ b/startup/observers.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 observer_map = {
 	"*:on_update": "home.update_feed",
diff --git a/startup/open_count.py b/startup/open_count.py
index 7a4866b..431ced9 100644
--- a/startup/open_count.py
+++ b/startup/open_count.py
@@ -1,5 +1,5 @@
-# ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-# GNU General Public Licnese. See "license.txt"
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -41,14 +41,10 @@
 
 def get_todays_events():
 	"""Returns a count of todays events in calendar"""
+	from core.doctype.event.event import get_events
 	from webnotes.utils import nowdate
-	todays_events = webnotes.conn.sql("""\
-		SELECT COUNT(*) FROM `tabEvent`
-		WHERE owner = %s
-		AND event_type != 'Cancel'
-		AND %s between date(starts_on) and date(ends_on)""", (
-		webnotes.session.user, nowdate()))
-	return todays_events[0][0]
+	today = nowdate()
+	return len(get_events(today, today))
 
 def get_unread_messages():
 	"returns unread (docstatus-0 messages for a user)"
diff --git a/startup/query_handlers.py b/startup/query_handlers.py
index eb5f99e..56c995e 100644
--- a/startup/query_handlers.py
+++ b/startup/query_handlers.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 from __future__ import unicode_literals
 
 standard_queries = {
diff --git a/startup/report_data_map.py b/startup/report_data_map.py
index c3a5dd2..0f6d4fe 100644
--- a/startup/report_data_map.py
+++ b/startup/report_data_map.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 
diff --git a/startup/schedule_handlers.py b/startup/schedule_handlers.py
index 99cc05b..2ff7b6d 100644
--- a/startup/schedule_handlers.py
+++ b/startup/schedule_handlers.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 """will be called by scheduler"""
@@ -39,6 +26,10 @@
 	run_fn(flush)
 	
 def execute_daily():
+	# event reminders
+	from core.doctype.event.event import send_event_digest
+	run_fn(send_event_digest)
+	
 	# email digest
 	from setup.doctype.email_digest.email_digest import send
 	run_fn(send)
@@ -58,6 +49,9 @@
 	# check reorder level
 	from stock.utils import reorder_item
 	run_fn(reorder_item)
+		
+	# scheduler error
+	scheduler.report_errors()
 
 def execute_weekly():
 	from setup.doctype.backup_manager.backup_manager import take_backups_weekly
diff --git a/startup/webutils.py b/startup/webutils.py
index 87d12e4..eab4948 100644
--- a/startup/webutils.py
+++ b/startup/webutils.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, conf, os
 from webnotes.utils import cint, cstr, encode
 
diff --git a/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt b/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt
index 4f6272d..163dffa 100644
--- a/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt
+++ b/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:31:11", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:20:31", 
+  "modified": "2013-08-07 19:44:55", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "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 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/doc.conversion_rate) + '</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_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><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}\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 ' +\n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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__", 
   "print_format_type": "Client", 
diff --git a/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt b/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt
index 82d2376..f4323a9 100644
--- a/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt
+++ b/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:31:11", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:20:21", 
+  "modified": "2013-08-07 20:12:29", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "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 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/doc.conversion_rate) + '</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_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><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        line-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 ' +\n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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__", 
   "print_format_type": "Client", 
diff --git a/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt b/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt
index 81ecbd2..03fbef5 100644
--- a/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt
+++ b/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2013-04-19 13:31:11", 
   "docstatus": 0, 
-  "modified": "2013-05-28 17:20:39", 
+  "modified": "2013-08-07 19:44:37", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "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 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/doc.conversion_rate) + '</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_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><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}\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 ' +\n\t\t\t\t\t\t\t\tformat_currency(data_row.ref_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\">' + format_currency(oc[i].tax_amount/doc.conversion_rate, doc.currency) + '</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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.net_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.grand_total_export, doc.currency)\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 style=\"width: 38%; text-align: right;\"><script>\n\t\t\t\t\t\t\t\tformat_currency(doc.rounded_total_export, doc.currency)\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__", 
   "print_format_type": "Client", 
diff --git a/stock/doctype/batch/batch.js b/stock/doctype/batch/batch.js
index 8b26d54..ac83b71 100644
--- a/stock/doctype/batch/batch.js
+++ b/stock/doctype/batch/batch.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.fields_dict['item'].get_query = function(doc, cdt, cdn) {
 	return {
diff --git a/stock/doctype/batch/batch.py b/stock/doctype/batch/batch.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/batch/batch.py
+++ b/stock/doctype/batch/batch.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/bin/bin.py b/stock/doctype/bin/bin.py
index cf30c5a..146191f 100644
--- a/stock/doctype/bin/bin.py
+++ b/stock/doctype/bin/bin.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/bin/bin.txt b/stock/doctype/bin/bin.txt
index 676976a..a66b5e8 100644
--- a/stock/doctype/bin/bin.txt
+++ b/stock/doctype/bin/bin.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:25", 
   "docstatus": 0, 
-  "modified": "2013-07-10 18:32:13", 
+  "modified": "2013-08-07 14:45:48", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -146,11 +146,12 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "in_filter": 1, 
   "label": "UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "search_index": 0
  }, 
  {
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index e93e6d3..6d601c2 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // Module Material Management
 cur_frm.cscript.tname = "Delivery Note Item";
@@ -29,13 +16,15 @@
 	refresh: function(doc, dt, dn) {
 		this._super();
 		
-		if(flt(doc.per_billed, 2) < 100 && doc.docstatus==1) cur_frm.add_custom_button('Make Invoice', this.make_sales_invoice);
+		if(!doc.__billing_complete && doc.docstatus==1) cur_frm.add_custom_button('Make Invoice', this.make_sales_invoice);
 	
 		if(flt(doc.per_installed, 2) < 100 && doc.docstatus==1) 
 			cur_frm.add_custom_button('Make Installation Note', this.make_installation_note);
 
 		if (doc.docstatus==1) {
 			cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
+			this.show_stock_ledger();
+			this.show_general_ledger();
 		}
 
 		if(doc.docstatus==0 && !doc.__islocal) {
@@ -46,8 +35,7 @@
 	
 		// unhide expense_account and cost_center is auto_inventory_accounting enabled
 		var aii_enabled = cint(sys_defaults.auto_inventory_accounting)
-		cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("expense_account", aii_enabled);
-		cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("cost_center", aii_enabled);
+		cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp(["expense_account", "cost_center"], aii_enabled);
 
 		if (this.frm.doc.docstatus===0) {
 			cur_frm.add_custom_button(wn._('From Sales Order'), 
@@ -113,7 +101,7 @@
 cur_frm.cscript.serial_no = function(doc, cdt, cdn) {
 	var d = locals[cdt][cdn];
 	if (d.serial_no) {
-		 get_server_fields('get_serial_details',d.serial_no,'delivery_note_details',doc,cdt,cdn,1);
+		 return get_server_fields('get_serial_details',d.serial_no,'delivery_note_details',doc,cdt,cdn,1);
 	}
 }
 
@@ -130,14 +118,6 @@
 	loaddoc('Packing Slip', n);
 }
 
-
-//get query select Territory
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters: { 'is_group': "No" }
-	}
-}
-
 var set_print_hide= function(doc, cdt, cdn){
 	var dn_fields = wn.meta.docfield_map['Delivery Note'];
 	var dn_item_fields = wn.meta.docfield_map['Delivery Note Item'];
diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
index 24df878..679d743 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/stock/doctype/delivery_note/delivery_note.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -50,6 +37,13 @@
 			'keyword': 'Delivered'
 		}]
 		
+	def onload(self):
+		billed_qty = webnotes.conn.sql("""select sum(ifnull(qty, 0)) from `tabSales Invoice Item`
+			where delivery_note=%s""", self.doc.name)
+		if billed_qty:
+			total_qty = sum((item.qty for item in self.doclist.get({"parentfield": "delivery_note_details"})))
+			self.doc.fields["__billing_complete"] = billed_qty[0][0] == total_qty
+		
 	def get_contact_details(self):
 		return get_obj('Sales Common').get_contact_details(self,0)
 
@@ -78,7 +72,7 @@
 
 	def so_required(self):
 		"""check in manage account if sales order required or not"""
-		if webnotes.conn.get_single_value("Selling Settings", 'so_required') == 'Yes':
+		if webnotes.conn.get_value("Selling Settings", None, 'so_required') == 'Yes':
 			 for d in getlist(self.doclist,'delivery_note_details'):
 				 if not d.prevdoc_docname:
 					 msgprint("Sales Order No. required against item %s"%d.item_code)
@@ -99,6 +93,7 @@
 		sales_com_obj.get_prevdoc_date(self)
 		self.validate_for_items()
 		self.validate_warehouse()
+		self.validate_uom_is_integer("stock_uom", "qty")
 		
 		sales_com_obj.validate_max_discount(self, 'delivery_note_details')
 		sales_com_obj.check_conversion_rate(self)
@@ -112,18 +107,26 @@
 		if not self.doc.installation_status: self.doc.installation_status = 'Not Installed'	
 		
 	def validate_with_previous_doc(self):
-		super(DocType, self).validate_with_previous_doc(self.tname, {
-			"Sales Order": {
-				"ref_dn_field": "prevdoc_docname",
-				"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
-					["currency", "="]],
-			},
-			"Sales Order Item": {
-				"ref_dn_field": "prevdoc_detail_docname",
-				"compare_fields": [["export_rate", "="]],
-				"is_child_table": True
-			}
-		})
+		prev_doctype = [d.prevdoc_doctype for d in self.doclist.get({
+			"parentfield": "delivery_note_details"}) if cstr(d.prevdoc_doctype) != ""]
+			
+		if prev_doctype:
+			super(DocType, self).validate_with_previous_doc(self.tname, {
+				prev_doctype[0]: {
+					"ref_dn_field": "prevdoc_docname",
+					"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
+						["currency", "="]],
+				},
+			})
+			if cint(webnotes.defaults.get_global_default('maintain_same_sales_rate')):
+				super(DocType, self).validate_with_previous_doc(self.tname, {
+					prev_doctype[0] + " Item": {
+						"ref_dn_field": "prevdoc_detail_docname",
+						"compare_fields": [["export_rate", "="]],
+						"is_child_table": True
+					}
+				})
+			
 		
 	def validate_proj_cust(self):
 		"""check for does customer belong to same project as entered.."""
@@ -286,6 +289,9 @@
 				
 				if d['reserved_qty'] < 0 :
 					# Reduce reserved qty from reserved warehouse mentioned in so
+					if not d["reserved_warehouse"]:
+						webnotes.throw(_("Reserved Warehouse is missing in Sales Order"))
+						
 					args = {
 						"item_code": d['item_code'],
 						"voucher_type": self.doc.doctype,
@@ -353,16 +359,37 @@
 			from accounts.general_ledger import make_gl_entries
 			make_gl_entries(gl_entries, cancel=(self.doc.docstatus == 2))
 
+def get_invoiced_qty_map(delivery_note):
+	"""returns a map: {dn_detail: invoiced_qty}"""
+	invoiced_qty_map = {}
+	
+	for dn_detail, qty in webnotes.conn.sql("""select dn_detail, qty from `tabSales Invoice Item`
+		where delivery_note=%s and docstatus=1""", delivery_note):
+			if not invoiced_qty_map.get(dn_detail):
+				invoiced_qty_map[dn_detail] = 0
+			invoiced_qty_map[dn_detail] += qty
+	
+	return invoiced_qty_map
+
 @webnotes.whitelist()
-def make_sales_invoice(source_name, target_doclist=None):	
-	def update_item(obj, target, source_parent):
-		target.export_amount = flt(obj.amount)
-		target.amount = target.export_amount / flt(source_parent.conversion_rate)
-		target.qty = obj.basic_rate and target.amount / flt(obj.basic_rate) or obj.qty
-		
+def make_sales_invoice(source_name, target_doclist=None):
+	invoiced_qty_map = get_invoiced_qty_map(source_name)
+	
 	def update_accounts(source, target):
 		si = webnotes.bean(target)
 		si.run_method("onload_post_render")
+		
+		si.set_doclist(si.doclist.get({"parentfield": ["!=", "entries"]}) +
+			si.doclist.get({"parentfield": "entries", "qty": [">", 0]}))
+		
+		if len(si.doclist.get({"parentfield": "entries"})) == 0:
+			webnotes.msgprint(_("Hey! All these items have already been invoiced."),
+				raise_exception=True)
+				
+		return si.doclist
+		
+	def update_item(source_doc, target_doc, source_parent):
+		target_doc.qty = source_doc.qty - invoiced_qty_map.get(source_doc.name, 0)
 	
 	doclist = get_mapped_doclist("Delivery Note", source_name, 	{
 		"Delivery Note": {
@@ -402,6 +429,7 @@
 	def update_item(obj, target, source_parent):
 		target.qty = flt(obj.qty) - flt(obj.installed_qty)
 		target.prevdoc_date = source_parent.posting_date
+		target.serial_no = obj.serial_no
 	
 	doclist = get_mapped_doclist("Delivery Note", source_name, 	{
 		"Delivery Note": {
diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt
index cfdd8cd..f1493bb 100644
--- a/stock/doctype/delivery_note/delivery_note.txt
+++ b/stock/doctype/delivery_note/delivery_note.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:09", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:48:27", 
+  "modified": "2013-08-09 14:46:32", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -63,7 +63,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -285,12 +285,12 @@
  {
   "description": "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.", 
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
-  "fieldtype": "Select", 
+  "fieldname": "selling_price_list", 
+  "fieldtype": "Link", 
   "label": "Price List", 
   "oldfieldname": "price_list_name", 
   "oldfieldtype": "Select", 
-  "options": "link:Price List", 
+  "options": "Price List", 
   "print_hide": 1, 
   "read_only": 0, 
   "reqd": 1
@@ -303,7 +303,7 @@
   "label": "Price List Currency", 
   "options": "Currency", 
   "print_hide": 1, 
-  "read_only": 0, 
+  "read_only": 1, 
   "reqd": 1
  }, 
  {
diff --git a/stock/doctype/delivery_note/test_delivery_note.py b/stock/doctype/delivery_note/test_delivery_note.py
index f4b9bbb..2e3ab07 100644
--- a/stock/doctype/delivery_note/test_delivery_note.py
+++ b/stock/doctype/delivery_note/test_delivery_note.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 
 from __future__ import unicode_literals
@@ -30,6 +17,8 @@
 		pr.submit()
 		
 	def test_over_billing_against_dn(self):
+		self._insert_purchase_receipt()
+		
 		from stock.doctype.delivery_note.delivery_note import make_sales_invoice
 		
 		dn = webnotes.bean(copy=test_records[0]).insert()
@@ -44,8 +33,8 @@
 		self.assertEquals(len(si), len(dn.doclist))
 		
 		# modify export_amount
-		si[1].export_rate = 200
-		self.assertRaises(webnotes.ValidationError, webnotes.bean(si).submit)
+		si[1].ref_rate = 200
+		self.assertRaises(webnotes.ValidationError, webnotes.bean(si).insert)
 		
 	
 	def test_delivery_note_no_gl_entry(self):
@@ -122,7 +111,7 @@
 			"posting_date": "2013-02-21", 
 			"posting_time": "9:00:00", 
 			"price_list_currency": "INR", 
-			"price_list_name": "_Test Price List", 
+			"selling_price_list": "_Test Price List", 
 			"status": "Draft", 
 			"territory": "_Test Territory",
 			"net_total": 500.0,
@@ -141,7 +130,7 @@
 			"export_rate": 100.0,
 			"amount": 500.0,
 			"warehouse": "_Test Warehouse - _TC",
-			"stock_uom": "No."
+			"stock_uom": "_Test UOM"
 		}
 	]
 	
diff --git a/stock/doctype/delivery_note_item/delivery_note_item.py b/stock/doctype/delivery_note_item/delivery_note_item.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/delivery_note_item/delivery_note_item.py
+++ b/stock/doctype/delivery_note_item/delivery_note_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/delivery_note_item/delivery_note_item.txt b/stock/doctype/delivery_note_item/delivery_note_item.txt
index 346673f..83b8f75 100644
--- a/stock/doctype/delivery_note_item/delivery_note_item.txt
+++ b/stock/doctype/delivery_note_item/delivery_note_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-22 13:15:44", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:07", 
+  "modified": "2013-08-07 14:45:30", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -95,7 +95,6 @@
   "label": "Quantity and Rate"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
@@ -111,11 +110,12 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "print_hide": 0, 
   "print_width": "50px", 
   "read_only": 1, 
@@ -123,7 +123,6 @@
   "width": "50px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "ref_rate", 
   "fieldtype": "Currency", 
@@ -140,7 +139,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "adj_rate", 
   "fieldtype": "Float", 
@@ -198,7 +196,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "basic_rate", 
   "fieldtype": "Currency", 
diff --git a/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.py b/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.py
+++ b/stock/doctype/delivery_note_packing_item/delivery_note_packing_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/item/item.js b/stock/doctype/item/item.js
index b2a1ffe..abf1e9e 100644
--- a/stock/doctype/item/item.js
+++ b/stock/doctype/item/item.js
@@ -1,21 +1,25 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
-cur_frm.add_fetch("price_list_name", "currency", "ref_currency");
-cur_frm.add_fetch("price_list_name", "buying_or_selling", "buying_or_selling");
+wn.provide("erpnext.stock");
+
+erpnext.stock.Item = wn.ui.form.Controller.extend({
+	onload: function() {
+		this.frm.add_fetch("price_list", "currency", "ref_currency");
+		this.frm.add_fetch("price_list", "buying_or_selling", "buying_or_selling");
+	},
+	
+	ref_rate_details_add: function(doc, cdt, cdn) {
+		var row = wn.model.get_doc(cdt, cdn);
+		if(row.price_list && !row.ref_currency) {
+			// execute fetch
+			var df = wn.meta.get_docfield(row.doctype, "price_list", row.parent);
+			this.frm.script_manager.validate_link_and_fetch(df, row.name, row.price_list);
+		}
+	}
+});
+
+cur_frm.script_manager.make(erpnext.stock.Item);
 
 cur_frm.cscript.refresh = function(doc) {
 	// make sensitive fields(has_serial_no, is_stock_item, valuation_method)
@@ -34,7 +38,7 @@
 			var enabled = (r.message == 'exists') ? false : true;
 			cur_frm.toggle_enable(['has_serial_no', 'is_stock_item', 'valuation_method'], enabled);
 		}
-		$c_obj(make_doclist(doc.doctype, doc.name),'check_if_sle_exists','',callback);
+		return $c_obj(make_doclist(doc.doctype, doc.name),'check_if_sle_exists','',callback);
 	}
 }
 
@@ -113,7 +117,7 @@
 
 cur_frm.cscript.tax_type = function(doc, cdt, cdn){
   var d = locals[cdt][cdn];
-  get_server_fields('get_tax_rate',d.tax_type,'item_tax',doc, cdt, cdn, 1);
+  return get_server_fields('get_tax_rate',d.tax_type,'item_tax',doc, cdt, cdn, 1);
 }
 
 
@@ -157,11 +161,6 @@
   cur_frm.cscript.weight_to_validate(doc,cdt,cdn);
 }
 
-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');
-}
-
 cur_frm.fields_dict.item_customer_details.grid.get_field("customer_name").get_query = 
 function(doc,cdt,cdn) {
 		return{	query:"controllers.queries.customer_query" } }
@@ -170,13 +169,6 @@
 	function(doc,cdt,cdn) {
 		return{ query:"controllers.queries.supplier_query" } }
 
-cur_frm.cscript.on_remove_attachment = function(doc) {
-	if(!inList(cur_frm.fields_dict.image.df.options.split("\n"), doc.image)) {
-		msgprint(wn._("Attachment removed. You may need to update: ") 
-			+ wn.meta.get_docfield(doc.doctype, "description_html").label);
-	}
-};
-
 cur_frm.cscript.copy_from_item_group = function(doc) {
 	wn.model.with_doc("Item Group", doc.item_group, function() {
 		$.each(wn.model.get("Item Website Specification", {parent:doc.item_group}), 
@@ -194,5 +186,10 @@
 cur_frm.cscript.image = function() {
 	refresh_field("image_view");
 	
-	if(!cur_frm.doc.description_html) cur_frm.cscript.add_image(cur_frm.doc);
+	if(!cur_frm.doc.description_html) {
+		cur_frm.cscript.add_image(cur_frm.doc);
+	} else {
+		msgprint(wn._("You may need to update: ") + 
+			wn.meta.get_docfield(cur_frm.doc.doctype, "description_html").label);
+	}
 }
\ No newline at end of file
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index 4a4cd89..9ae1bfd 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -143,16 +130,16 @@
 	def validate_price_lists(self):
 		price_lists=[]
 		for d in getlist(self.doclist,'ref_rate_details'):
-			if d.price_list_name in price_lists:
-				msgprint(_("Cannot have two prices for same Price List") + ": " + d.price_list_name,
+			if d.price_list in price_lists:
+				msgprint(_("Cannot have two prices for same Price List") + ": " + d.price_list,
 					raise_exception= webnotes.DuplicateEntryError)
 			else:
-				price_list_currency = webnotes.conn.get_value("Price List", d.price_list_name, "currency")
+				price_list_currency = webnotes.conn.get_value("Price List", d.price_list, "currency")
 				if price_list_currency and d.ref_currency != price_list_currency:
 					msgprint(_("Currency does not match Price List Currency for Price List") \
-						+ ": " + d.price_list_name, raise_exception=PriceListCurrencyMismatch)
+						+ ": " + d.price_list, raise_exception=PriceListCurrencyMismatch)
 				
-				price_lists.append(d.price_list_name)
+				price_lists.append(d.price_list)
 			
 					
 	def fill_customer_code(self):
diff --git a/stock/doctype/item/item.txt b/stock/doctype/item/item.txt
index ff9c564..7ceeb4b 100644
--- a/stock/doctype/item/item.txt
+++ b/stock/doctype/item/item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-03 10:45:46", 
   "docstatus": 0, 
-  "modified": "2013-07-08 14:05:47", 
+  "modified": "2013-08-08 14:22:25", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -35,9 +35,7 @@
   "parentfield": "permissions", 
   "parenttype": "DocType", 
   "permlevel": 0, 
-  "read": 1, 
-  "report": 1, 
-  "submit": 0
+  "read": 1
  }, 
  {
   "doctype": "DocType", 
@@ -57,7 +55,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "options": "\nITEM", 
   "read_only": 0
  }, 
@@ -404,6 +402,13 @@
   "reqd": 1
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "default_supplier", 
+  "fieldtype": "Link", 
+  "label": "Default Supplier", 
+  "options": "Supplier"
+ }, 
+ {
   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
   "description": "Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.", 
   "doctype": "DocField", 
@@ -589,17 +594,6 @@
  {
   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
   "doctype": "DocField", 
-  "fieldname": "sales_rate", 
-  "fieldtype": "Float", 
-  "hidden": 1, 
-  "label": "Sales Rate", 
-  "oldfieldname": "sales_rate", 
-  "oldfieldtype": "Currency", 
-  "read_only": 0
- }, 
- {
-  "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
-  "doctype": "DocField", 
   "fieldname": "column_break3", 
   "fieldtype": "Column Break", 
   "oldfieldtype": "Column Break", 
@@ -876,7 +870,9 @@
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
+  "report": 1, 
   "role": "Material Master Manager", 
+  "submit": 0, 
   "write": 1
  }, 
  {
@@ -884,7 +880,9 @@
   "cancel": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
+  "report": 1, 
   "role": "Material Manager", 
+  "submit": 0, 
   "write": 0
  }, 
  {
@@ -892,7 +890,21 @@
   "cancel": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
+  "report": 1, 
   "role": "Material User", 
+  "submit": 0, 
   "write": 0
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Sales User"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Purchase User"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Accounts User"
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/item/test_item.py b/stock/doctype/item/test_item.py
index 0ea8a5d..a1d7852 100644
--- a/stock/doctype/item/test_item.py
+++ b/stock/doctype/item/test_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import unittest
@@ -74,7 +61,7 @@
 	}, {
 		"doctype": "Item Price",
 		"parentfield": "ref_rate_details",
-		"price_list_name": "_Test Price List",
+		"price_list": "_Test Price List",
 		"ref_rate": 100,
 		"ref_currency": "INR",
 		"buying_or_selling": "Selling"
diff --git a/stock/doctype/item_customer_detail/item_customer_detail.py b/stock/doctype/item_customer_detail/item_customer_detail.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/item_customer_detail/item_customer_detail.py
+++ b/stock/doctype/item_customer_detail/item_customer_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/item_price/item_price.py b/stock/doctype/item_price/item_price.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/item_price/item_price.py
+++ b/stock/doctype/item_price/item_price.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/item_price/item_price.txt b/stock/doctype/item_price/item_price.txt
index 8062b57..3a73a00 100644
--- a/stock/doctype/item_price/item_price.txt
+++ b/stock/doctype/item_price/item_price.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-02 16:29:48", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:09", 
+  "modified": "2013-08-09 14:46:58", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,7 +30,7 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
+  "fieldname": "price_list", 
   "fieldtype": "Link", 
   "in_filter": 1, 
   "label": "Price List Name", 
@@ -49,7 +49,7 @@
   "oldfieldname": "ref_rate", 
   "oldfieldtype": "Currency", 
   "options": "ref_currency", 
-  "reqd": 0, 
+  "reqd": 1, 
   "search_index": 0
  }, 
  {
diff --git a/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.py b/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.py
+++ b/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/item_reorder/item_reorder.py b/stock/doctype/item_reorder/item_reorder.py
index 928aa9f..784339d 100644
--- a/stock/doctype/item_reorder/item_reorder.py
+++ b/stock/doctype/item_reorder/item_reorder.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/stock/doctype/item_supplier/item_supplier.py b/stock/doctype/item_supplier/item_supplier.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/item_supplier/item_supplier.py
+++ b/stock/doctype/item_supplier/item_supplier.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/item_tax/item_tax.py b/stock/doctype/item_tax/item_tax.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/item_tax/item_tax.py
+++ b/stock/doctype/item_tax/item_tax.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/item_website_specification/item_website_specification.py b/stock/doctype/item_website_specification/item_website_specification.py
index 928aa9f..784339d 100644
--- a/stock/doctype/item_website_specification/item_website_specification.py
+++ b/stock/doctype/item_website_specification/item_website_specification.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/stock/doctype/landed_cost_item/landed_cost_item.py b/stock/doctype/landed_cost_item/landed_cost_item.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/landed_cost_item/landed_cost_item.py
+++ b/stock/doctype/landed_cost_item/landed_cost_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.py b/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.py
+++ b/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.js b/stock/doctype/landed_cost_wizard/landed_cost_wizard.js
index a093d6f..06f3fd6 100644
--- a/stock/doctype/landed_cost_wizard/landed_cost_wizard.js
+++ b/stock/doctype/landed_cost_wizard/landed_cost_wizard.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
 if(!doc.currency){doc.currency = sys_defaults.currency;}
diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.py b/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
index e5fd12c..0cdad4d 100644
--- a/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
+++ b/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt b/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt
index 36a5d72..53f2407 100644
--- a/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt
+++ b/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-22 16:50:39", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:43:57", 
+  "modified": "2013-07-22 15:31:20", 
   "modified_by": "Administrator", 
   "owner": "wasim@webnotestech.com"
  }, 
@@ -115,10 +115,6 @@
  }, 
  {
   "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
   "role": "Purchase User"
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/material_request/material_request.js b/stock/doctype/material_request/material_request.js
index bd5ab82..6931181 100644
--- a/stock/doctype/material_request/material_request.js
+++ b/stock/doctype/material_request/material_request.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.tname = "Material Request Item";
 cur_frm.cscript.fname = "indent_details";
@@ -124,7 +111,7 @@
 	var check = confirm("Do you really want to STOP this Material Request?");
 
 	if (check) {
-		$c('runserverobj', args={'method':'update_status', 'arg': 'Stopped', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
+		return $c('runserverobj', args={'method':'update_status', 'arg': 'Stopped', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
 			cur_frm.refresh();
 		});
 	}
@@ -135,7 +122,7 @@
 	var check = confirm("Do you really want to UNSTOP this Material Request?");
 	
 	if (check) {
-		$c('runserverobj', args={'method':'update_status', 'arg': 'Submitted','docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
+		return $c('runserverobj', args={'method':'update_status', 'arg': 'Submitted','docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) {
 			cur_frm.refresh();
 		});
 	}
diff --git a/stock/doctype/material_request/material_request.py b/stock/doctype/material_request/material_request.py
index 0830fd4..4952834 100644
--- a/stock/doctype/material_request/material_request.py
+++ b/stock/doctype/material_request/material_request.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # ERPNext - web based ERP (http://erpnext.com)
 # For license information, please see license.txt
 
@@ -60,6 +63,7 @@
 		super(DocType, self).validate()
 		
 		self.validate_schedule_date()
+		self.validate_uom_is_integer("uom", "qty")
 		
 		if not self.doc.status:
 			self.doc.status = "Draft"
@@ -221,18 +225,18 @@
 			"posting_date": controller.doc.posting_date,
 		})
 
-def set_missing_values(source, target):
-	po = webnotes.bean(target)
+def set_missing_values(source, target_doclist):
+	po = webnotes.bean(target_doclist)
 	po.run_method("set_missing_values")
+	
+def update_item(obj, target, source_parent):
+	target.conversion_factor = 1
+	target.qty = flt(obj.qty) - flt(obj.ordered_qty)
 
 @webnotes.whitelist()
 def make_purchase_order(source_name, target_doclist=None):
 	from webnotes.model.mapper import get_mapped_doclist
 
-	def update_item(obj, target, source_parent):
-		target.conversion_factor = 1
-		target.qty = flt(obj.qty) - flt(obj.ordered_qty)
-
 	doclist = get_mapped_doclist("Material Request", source_name, 	{
 		"Material Request": {
 			"doctype": "Purchase Order", 
@@ -257,6 +261,62 @@
 	return [d.fields for d in doclist]
 	
 @webnotes.whitelist()
+def make_purchase_order_based_on_supplier(source_name, target_doclist=None):
+	from webnotes.model.mapper import get_mapped_doclist
+	if target_doclist:
+		if isinstance(target_doclist, basestring):
+			import json
+			target_doclist = webnotes.doclist(json.loads(target_doclist))
+		target_doclist = target_doclist.get({"parentfield": ["!=", "po_details"]})
+		
+	material_requests, supplier_items = get_material_requests_based_on_supplier(source_name)
+	
+	def postprocess(source, target_doclist):
+		target_doclist[0].supplier = source_name
+		set_missing_values(source, target_doclist)
+		
+		po_items = target_doclist.get({"parentfield": "po_details"})
+		target_doclist = target_doclist.get({"parentfield": ["!=", "po_details"]}) + \
+			[d for d in po_items 
+				if d.fields.get("item_code") in supplier_items and d.fields.get("qty") > 0]
+		
+		return target_doclist
+		
+	for mr in material_requests:
+		target_doclist = get_mapped_doclist("Material Request", mr, 	{
+			"Material Request": {
+				"doctype": "Purchase Order", 
+			}, 
+			"Material Request Item": {
+				"doctype": "Purchase Order Item", 
+				"field_map": [
+					["name", "prevdoc_detail_docname"], 
+					["parent", "prevdoc_docname"], 
+					["parenttype", "prevdoc_doctype"], 
+					["uom", "stock_uom"],
+					["uom", "uom"]
+				],
+				"postprocess": update_item
+			}
+		}, target_doclist, postprocess)
+	
+	return [d.fields for d in target_doclist]
+	
+def get_material_requests_based_on_supplier(supplier):
+	supplier_items = [d[0] for d in webnotes.conn.get_values("Item", 
+		{"default_supplier": supplier})]
+	material_requests = webnotes.conn.sql_list("""select distinct mr.name 
+		from `tabMaterial Request` mr, `tabMaterial Request Item` mr_item
+		where mr.name = mr_item.parent
+		and mr_item.item_code in (%s)
+		and mr.material_request_type = 'Purchase'
+		and ifnull(mr.per_ordered, 0) < 99.99
+		and mr.docstatus = 1
+		and mr.status != 'Stopped'""" % ', '.join(['%s']*len(supplier_items)),
+		tuple(supplier_items))
+	return material_requests, supplier_items
+	
+@webnotes.whitelist()
 def make_supplier_quotation(source_name, target_doclist=None):
 	from webnotes.model.mapper import get_mapped_doclist
 
@@ -286,11 +346,6 @@
 
 	def set_purpose(source, target):
 		target[0].purpose = "Material Transfer"
-		
-	def update_item(source, target, source_parent):
-		target.conversion_factor = 1
-		target.qty = flt(source.qty) - flt(source.ordered_qty)
-		
 
 	doclist = get_mapped_doclist("Material Request", source_name, {
 		"Material Request": {
diff --git a/stock/doctype/material_request/material_request.txt b/stock/doctype/material_request/material_request.txt
index f6dd6e6..a5f092d 100644
--- a/stock/doctype/material_request/material_request.txt
+++ b/stock/doctype/material_request/material_request.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 14:48:38", 
   "docstatus": 0, 
-  "modified": "2013-07-15 17:50:38", 
+  "modified": "2013-08-08 14:22:27", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -71,7 +71,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
diff --git a/stock/doctype/material_request/test_material_request.py b/stock/doctype/material_request/test_material_request.py
index f98dc54..80233d7 100644
--- a/stock/doctype/material_request/test_material_request.py
+++ b/stock/doctype/material_request/test_material_request.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # ERPNext - web based ERP (http://erpnext.com)
 # For license information, please see license.txt
 
@@ -84,9 +87,9 @@
 				"parentfield": "mtn_details", 
 				"incoming_rate": 100,
 				"qty": qty1, 
-				"stock_uom": "_Test UOM", 
+				"stock_uom": "_Test UOM 1", 
 				"transfer_qty": qty1, 
-				"uom": "_Test UOM",
+				"uom": "_Test UOM 1",
 				"t_warehouse": "_Test Warehouse 1 - _TC",
 			},
 			{
@@ -96,9 +99,9 @@
 				"parentfield": "mtn_details", 
 				"incoming_rate": 100,
 				"qty": qty2, 
-				"stock_uom": "_Test UOM", 
+				"stock_uom": "_Test UOM 1", 
 				"transfer_qty": qty2, 
-				"uom": "_Test UOM",
+				"uom": "_Test UOM 1",
 				"t_warehouse": "_Test Warehouse 1 - _TC",
 			},
 		])
@@ -316,7 +319,8 @@
 		mr = webnotes.bean(copy=test_records[0])
 		mr.doc.company = "_Test Company 1"
 		self.assertRaises(WrongWarehouseCompany, mr.insert)
-		
+
+test_dependencies = ["Currency Exchange"]
 test_records = [
 	[
 		{
@@ -335,7 +339,7 @@
 			"parentfield": "indent_details", 
 			"qty": 54.0, 
 			"schedule_date": "2013-02-18", 
-			"uom": "_Test UOM",
+			"uom": "_Test UOM 1",
 			"warehouse": "_Test Warehouse - _TC"
 		}, 
 		{
@@ -346,7 +350,7 @@
 			"parentfield": "indent_details", 
 			"qty": 3.0, 
 			"schedule_date": "2013-02-19", 
-			"uom": "_Test UOM",
+			"uom": "_Test UOM 1",
 			"warehouse": "_Test Warehouse - _TC"
 		}
 	],
diff --git a/stock/doctype/material_request_item/material_request_item.py b/stock/doctype/material_request_item/material_request_item.py
index 928aa9f..784339d 100644
--- a/stock/doctype/material_request_item/material_request_item.py
+++ b/stock/doctype/material_request_item/material_request_item.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/stock/doctype/material_request_item/material_request_item.txt b/stock/doctype/material_request_item/material_request_item.txt
index 86cc168..dae97e0 100644
--- a/stock/doctype/material_request_item/material_request_item.txt
+++ b/stock/doctype/material_request_item/material_request_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:02", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:10", 
+  "modified": "2013-08-07 14:45:11", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -47,7 +47,7 @@
   "fieldtype": "Date", 
   "in_list_view": 1, 
   "label": "Required Date", 
-  "no_copy": 1, 
+  "no_copy": 0, 
   "oldfieldname": "schedule_date", 
   "oldfieldtype": "Date", 
   "print_hide": 0, 
@@ -89,7 +89,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
diff --git a/stock/doctype/packing_slip/packing_slip.js b/stock/doctype/packing_slip/packing_slip.js
index e19ab49..f3634f6 100644
--- a/stock/doctype/packing_slip/packing_slip.js
+++ b/stock/doctype/packing_slip/packing_slip.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.fields_dict['delivery_note'].get_query = function(doc, cdt, cdn) {
 	return{
@@ -36,7 +23,7 @@
 }
 
 cur_frm.cscript.get_items = function(doc, cdt, cdn) {
-	this.frm.call({
+	return this.frm.call({
 		doc: this.frm.doc,
 		method: "get_items",
 		callback: function(r) {
diff --git a/stock/doctype/packing_slip/packing_slip.py b/stock/doctype/packing_slip/packing_slip.py
index 63aa6a9..50cdab9 100644
--- a/stock/doctype/packing_slip/packing_slip.py
+++ b/stock/doctype/packing_slip/packing_slip.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -37,6 +24,10 @@
 		self.validate_case_nos()
 		self.validate_qty()
 
+		from utilities.transaction_base import validate_uom_is_integer
+		validate_uom_is_integer(self.doclist, "stock_uom", "qty")
+		validate_uom_is_integer(self.doclist, "weight_uom", "net_weight")
+
 	def validate_delivery_note(self):
 		"""
 			Validates if delivery note has status as draft
diff --git a/stock/doctype/packing_slip/packing_slip.txt b/stock/doctype/packing_slip/packing_slip.txt
index 3252ef8..08e71ec 100644
--- a/stock/doctype/packing_slip/packing_slip.txt
+++ b/stock/doctype/packing_slip/packing_slip.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-11 15:32:24", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:47:57", 
+  "modified": "2013-08-08 14:22:28", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -78,7 +78,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 0, 
   "options": "PS", 
   "print_hide": 1, 
diff --git a/stock/doctype/packing_slip_item/packing_slip_item.py b/stock/doctype/packing_slip_item/packing_slip_item.py
index 928aa9f..784339d 100644
--- a/stock/doctype/packing_slip_item/packing_slip_item.py
+++ b/stock/doctype/packing_slip_item/packing_slip_item.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/stock/doctype/packing_slip_item/packing_slip_item.txt b/stock/doctype/packing_slip_item/packing_slip_item.txt
index 8dea877..41dd044 100644
--- a/stock/doctype/packing_slip_item/packing_slip_item.txt
+++ b/stock/doctype/packing_slip_item/packing_slip_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-08 13:10:16", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:11", 
+  "modified": "2013-07-25 16:37:30", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -61,9 +61,10 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "in_list_view": 0, 
   "label": "UOM", 
+  "options": "UOM", 
   "print_width": "100px", 
   "read_only": 1, 
   "width": "100px"
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/stock/doctype/purchase_receipt/purchase_receipt.js
index e21d6a3..bdf50ee 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.tname = "Purchase Receipt Item";
 cur_frm.cscript.fname = "purchase_receipt_details";
@@ -28,11 +15,14 @@
 		this._super();
 		
 		if(this.frm.doc.docstatus == 1) {
-			if(flt(this.frm.doc.per_billed, 2) < 100) {
+			if(!this.frm.doc.__billing_complete) {
 				cur_frm.add_custom_button('Make Purchase Invoice', 
 					this.make_purchase_invoice);
 			}
 			cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+			
+			this.show_stock_ledger();
+			this.show_general_ledger();
 		}
 
 		cur_frm.add_custom_button(wn._('From Purchase Order'), 
@@ -68,6 +58,10 @@
 		var item = wn.model.get_doc(cdt, cdn);
 		wn.model.round_floats_in(item, ["qty", "received_qty"]);
 		
+		if(!(item.received_qty || item.rejected_qty) && item.qty) {
+			item.received_qty = item.qty;
+		}
+		
 		if(item.qty > item.received_qty) {
 			msgprint(wn._("Error") + ": " + wn._(wn.meta.get_label(item.doctype, "qty", item.name))
 				+ " > " + wn._(wn.meta.get_label(item.doctype, "received_qty", item.name)));
@@ -111,10 +105,6 @@
 // for backward compatibility: combine new and previous states
 $.extend(cur_frm.cscript, new erpnext.stock.PurchaseReceiptController({frm: cur_frm}));
 
-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'].get_query = function(doc, cdt, cdn) {
 	return{
 		filters:{ 'supplier': doc.supplier}
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 14d0c03..c78e759 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -44,6 +31,13 @@
 			'source_field': 'qty',
 			'percent_join_field': 'prevdoc_docname',
 		}]
+		
+	def onload(self):
+		billed_qty = webnotes.conn.sql("""select sum(ifnull(qty, 0)) from `tabPurchase Invoice Item`
+			where purchase_receipt=%s""", self.doc.name)
+		if billed_qty:
+			total_qty = sum((item.qty for item in self.doclist.get({"parentfield": "purchase_receipt_details"})))
+			self.doc.fields["__billing_complete"] = billed_qty[0][0] == total_qty
 
 	# get available qty at warehouse
 	def get_bin_details(self, arg = ''):
@@ -94,14 +88,24 @@
 			},
 			"Purchase Order Item": {
 				"ref_dn_field": "prevdoc_detail_docname",
-				"compare_fields": [["import_rate", "="], ["project_name", "="], ["warehouse", "="], 
+				"compare_fields": [["project_name", "="], ["warehouse", "="], 
 					["uom", "="], ["item_code", "="]],
 				"is_child_table": True
 			}
 		})
+		
+		if cint(webnotes.defaults.get_global_default('maintain_same_rate')):
+			super(DocType, self).validate_with_previous_doc(self.tname, {
+				"Purchase Order Item": {
+					"ref_dn_field": "prevdoc_detail_docname",
+					"compare_fields": [["import_rate", "="]],
+					"is_child_table": True
+				}
+			})
+			
 
 	def po_required(self):
-		if webnotes.conn.get_single_value("Buying Settings", "po_required") == 'Yes':
+		if webnotes.conn.get_value("Buying Settings", None, "po_required") == 'Yes':
 			 for d in getlist(self.doclist,'purchase_receipt_details'):
 				 if not d.prevdoc_docname:
 					 msgprint("Purchse Order No. required against item %s"%d.item_code)
@@ -120,7 +124,10 @@
 
 		self.validate_with_previous_doc()
 		self.validate_accepted_rejected_qty()
-		self.validate_inspection()						 # Validate Inspection
+		self.validate_inspection()
+		self.validate_uom_is_integer("uom", ["qty", "received_qty"])
+		self.validate_uom_is_integer("stock_uom", "stock_qty")
+
 		get_obj('Stock Ledger').validate_serial_no(self, 'purchase_receipt_details')
 		self.validate_challan_no()
 
@@ -350,13 +357,6 @@
 		bean.run_method("set_missing_values")
 		bean.run_method("set_supplier_defaults")
 
-	def update_item(obj, target, source_parent):
-		target.conversion_factor = 1
-		target.import_amount = flt(obj.import_amount)
-		target.amount = target.import_amount / flt(source_parent.conversion_rate)
-		if flt(obj.purchase_rate):
-			target.qty = target.amount / flt(obj.purchase_rate)
-
 	doclist = get_mapped_doclist("Purchase Receipt", source_name,	{
 		"Purchase Receipt": {
 			"doctype": "Purchase Invoice", 
@@ -373,7 +373,6 @@
 				"prevdoc_docname": "purchase_order", 
 				"purchase_rate": "rate"
 			},
-			"postprocess": update_item
 		}, 
 		"Purchase Taxes and Charges": {
 			"doctype": "Purchase Taxes and Charges", 
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/stock/doctype/purchase_receipt/purchase_receipt.txt
index 94136ae..1184643 100755
--- a/stock/doctype/purchase_receipt/purchase_receipt.txt
+++ b/stock/doctype/purchase_receipt/purchase_receipt.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-21 16:16:39", 
   "docstatus": 0, 
-  "modified": "2013-07-09 12:50:25", 
+  "modified": "2013-08-09 14:47:05", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -60,7 +60,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -237,24 +237,25 @@
  {
   "description": "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)", 
   "doctype": "DocField", 
-  "fieldname": "price_list_name", 
+  "fieldname": "buying_price_list", 
   "fieldtype": "Link", 
   "label": "Price List", 
   "options": "Price List", 
   "print_hide": 1
  }, 
  {
-  "depends_on": "price_list_name", 
+  "depends_on": "buying_price_list", 
   "doctype": "DocField", 
   "fieldname": "price_list_currency", 
   "fieldtype": "Link", 
   "hidden": 0, 
   "label": "Price List Currency", 
   "options": "Currency", 
-  "print_hide": 1
+  "print_hide": 1, 
+  "read_only": 1
  }, 
  {
-  "depends_on": "price_list_name", 
+  "depends_on": "buying_price_list", 
   "doctype": "DocField", 
   "fieldname": "plc_conversion_rate", 
   "fieldtype": "Float", 
diff --git a/stock/doctype/purchase_receipt/purchase_receipt_list.js b/stock/doctype/purchase_receipt/purchase_receipt_list.js
index c80f6ae..bc0c9f6 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt_list.js
+++ b/stock/doctype/purchase_receipt/purchase_receipt_list.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 // render
 wn.listview_settings['Purchase Receipt'] = {
 	add_fields: ["group_concat(`tabPurchase Receipt Item`.prevdoc_docname) \
diff --git a/stock/doctype/purchase_receipt/test_purchase_receipt.py b/stock/doctype/purchase_receipt/test_purchase_receipt.py
index b7e27a1..c871b36 100644
--- a/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 
 from __future__ import unicode_literals
diff --git a/stock/doctype/purchase_receipt_item/purchase_receipt_item.py b/stock/doctype/purchase_receipt_item/purchase_receipt_item.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/purchase_receipt_item/purchase_receipt_item.py
+++ b/stock/doctype/purchase_receipt_item/purchase_receipt_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
index 60b1b56..ec3c8e3 100755
--- a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
+++ b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:10", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:16", 
+  "modified": "2013-08-07 14:45:23", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -76,7 +76,6 @@
   "label": "Received and Accepted"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "received_qty", 
   "fieldtype": "Float", 
@@ -91,7 +90,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "qty", 
   "fieldtype": "Float", 
@@ -104,7 +102,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "rejected_qty", 
   "fieldtype": "Float", 
@@ -161,7 +158,6 @@
   "read_only": 0
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "import_rate", 
   "fieldtype": "Currency", 
@@ -197,7 +193,6 @@
   "read_only": 0
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "purchase_rate", 
   "fieldtype": "Currency", 
@@ -213,7 +208,6 @@
   "width": "100px"
  }, 
  {
-  "default": "0.00", 
   "doctype": "DocField", 
   "fieldname": "amount", 
   "fieldtype": "Currency", 
@@ -267,11 +261,12 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "in_list_view": 0, 
   "label": "Stock UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "print_hide": 1, 
   "print_width": "100px", 
   "read_only": 1, 
diff --git a/stock/doctype/serial_no/serial_no.js b/stock/doctype/serial_no/serial_no.js
index 0253ffb..8d2f210 100644
--- a/stock/doctype/serial_no/serial_no.js
+++ b/stock/doctype/serial_no/serial_no.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.onload = function(doc, cdt, cdn) {
 	if(!doc.status) set_multiple(cdt, cdn, {status:'In Store'});
@@ -54,7 +41,7 @@
 // Supplier
 //-------------
 cur_frm.cscript.supplier = function(doc,dt,dn) {
-	if(doc.supplier) get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1);
+	if(doc.supplier) return get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1);
 	if(doc.supplier) unhide_field(['supplier_name','address_display']);
 }
 
diff --git a/stock/doctype/serial_no/serial_no.py b/stock/doctype/serial_no/serial_no.py
index 09181db..7e59d64 100644
--- a/stock/doctype/serial_no/serial_no.py
+++ b/stock/doctype/serial_no/serial_no.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/serial_no/serial_no.txt b/stock/doctype/serial_no/serial_no.txt
index 72f78286..efa35f5 100644
--- a/stock/doctype/serial_no/serial_no.txt
+++ b/stock/doctype/serial_no/serial_no.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-16 10:59:15", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:54:52", 
+  "modified": "2013-07-22 15:29:43", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -524,13 +524,6 @@
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "role": "System Manager", 
-  "write": 1
- }, 
- {
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
   "role": "Material Master Manager", 
   "write": 1
  }, 
diff --git a/stock/doctype/serial_no/test_serial_no.py b/stock/doctype/serial_no/test_serial_no.py
index 58f6226..1898b2f 100644
--- a/stock/doctype/serial_no/test_serial_no.py
+++ b/stock/doctype/serial_no/test_serial_no.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # ERPNext - web based ERP (http://erpnext.com)
 # For license information, please see license.txt
 
diff --git a/stock/doctype/stock_entry/stock_entry.js b/stock/doctype/stock_entry/stock_entry.js
index 123c9fb..53998f8 100644
--- a/stock/doctype/stock_entry/stock_entry.js
+++ b/stock/doctype/stock_entry/stock_entry.js
@@ -1,50 +1,10 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require("public/app/js/controllers/stock_controller.js");
 wn.provide("erpnext.stock");
 
-erpnext.stock.StockEntry = erpnext.stock.StockController.extend({
-	onload: function() {
-		this.set_default_account();
-	}, 
-	
-	set_default_account: function() {
-		var me = this;
-		
-		if (sys_defaults.auto_inventory_accounting && !this.frm.doc.expense_adjustment_account) {
-			if (this.frm.doc.purpose == "Sales Return") 
-				account_for = "stock_in_hand_account";
-			else if (this.frm.doc.purpose == "Purchase Return") 
-				account_for = "stock_received_but_not_billed";
-			else account_for = "stock_adjustment_account";
-			
-			this.frm.call({
-				method: "accounts.utils.get_company_default",
-				args: {
-					"fieldname": account_for, 
-					"company": this.frm.doc.company
-				},
-				callback: function(r) {
-					if (!r.exc) me.frm.set_value("expense_adjustment_account", r.message);
-				}
-			});
-		}
-	},
-	
+erpnext.stock.StockEntry = erpnext.stock.StockController.extend({		
 	setup: function() {
 		var me = this;
 		
@@ -78,7 +38,7 @@
 			}
 		};
 		
-		if (sys_defaults.auto_inventory_accounting) {
+		if(cint(wn.defaults.get_default("auto_inventory_accounting"))) {
 			this.frm.add_fetch("company", "stock_adjustment_account", "expense_adjustment_account");
 
 			this.frm.fields_dict["expense_adjustment_account"].get_query = function() {
@@ -93,11 +53,7 @@
 	},
 	
 	onload_post_render: function() {
-		if(this.frm.doc.__islocal && (this.frm.doc.production_order || this.frm.doc.bom_no) 
-			&& !getchildren('Stock Entry Detail', this.frm.doc.name, 'mtn_details').length) {
-				// if production order / bom is mentioned, get items
-				this.get_items();
-		}
+		this.set_default_account();
 	},
 	
 	refresh: function() {
@@ -105,11 +61,8 @@
 		erpnext.hide_naming_series();
 		this.toggle_related_fields(this.frm.doc);
 		this.toggle_enable_bom();
-		if (this.frm.doc.docstatus==1) {
-			this.show_stock_ledger();
-			if(wn.boot.auto_inventory_accounting)
-				this.show_general_ledger();
-		}
+		this.show_stock_ledger();
+		this.show_general_ledger();
 		
 		if(this.frm.doc.docstatus === 1 && 
 				wn.boot.profile.can_create.indexOf("Journal Voucher")!==-1) {
@@ -131,6 +84,33 @@
 	after_cancel: function() {
 		this.clean_up();
 	},
+
+	set_default_account: function() {
+		var me = this;
+		
+		if (cint(wn.defaults.get_default("auto_inventory_accounting")) && !this.frm.doc.expense_adjustment_account) {
+			var account_for = "stock_adjustment_account";
+			if (this.frm.doc.purpose == "Sales Return")
+				account_for = "stock_in_hand_account";
+			else if (this.frm.doc.purpose == "Purchase Return") 
+				account_for = "stock_received_but_not_billed";
+			
+			return this.frm.call({
+				method: "accounts.utils.get_company_default",
+				args: {
+					"fieldname": account_for, 
+					"company": this.frm.doc.company
+				},
+				callback: function(r) {
+					if (!r.exc) me.frm.set_value("expense_adjustment_account", r.message);
+					
+					me.get_items();
+				}
+			});
+		} else {
+			me.get_items();
+		}
+	},
 	
 	clean_up: function() {
 		// Clear Production Order record from locals, because it is updated via Stock Entry
@@ -142,13 +122,17 @@
 	},
 	
 	get_items: function() {
-		this.frm.call({
-			doc: this.frm.doc,
-			method: "get_items",
-			callback: function(r) {
-				if(!r.exc) refresh_field("mtn_details");
-			}
-		});
+		if(this.frm.doc.__islocal && (this.frm.doc.production_order || this.frm.doc.bom_no) 
+			&& !getchildren('Stock Entry Detail', this.frm.doc.name, 'mtn_details').length) {
+				// if production order / bom is mentioned, get items
+				return this.frm.call({
+					doc: this.frm.doc,
+					method: "get_items",
+					callback: function(r) {
+						if(!r.exc) refresh_field("mtn_details");
+					}
+				});
+		}
 	},
 	
 	qty: function(doc, cdt, cdn) {
@@ -160,7 +144,7 @@
 	production_order: function() {
 		this.toggle_enable_bom();
 		
-		this.frm.call({
+		return this.frm.call({
 			method: "get_production_order_details",
 			args: {production_order: this.frm.doc.production_order}
 		});
@@ -212,7 +196,7 @@
 	
 	make_return_jv: function() {
 		if(this.get_doctype_docname()) {
-			this.frm.call({
+			return this.frm.call({
 				method: "make_return_jv",
 				args: {
 					stock_entry: this.frm.doc.name
@@ -228,15 +212,20 @@
 						});
 						loaddoc("Journal Voucher", jv_name);
 					}
-
 				}
 			});
 		}
 	},
 
+	mtn_details_add: function(doc, cdt, cdn) {
+		var row = wn.model.get_doc(cdt, cdn);
+		
+		if(!row.s_warehouse) row.s_warehouse = this.frm.doc.from_warehouse;
+		if(!row.t_warehouse) row.t_warehouse = this.frm.doc.to_warehouse;
+	},
 });
 
-cur_frm.cscript = new erpnext.stock.StockEntry({frm: cur_frm});
+cur_frm.script_manager.make(erpnext.stock.StockEntry);
 
 cur_frm.cscript.toggle_related_fields = function(doc) {
 	disable_from_warehouse = inList(["Material Receipt", "Sales Return"], doc.purpose);
@@ -263,23 +252,23 @@
 }
 
 cur_frm.cscript.delivery_note_no = function(doc,cdt,cdn){
-	if(doc.delivery_note_no) get_server_fields('get_cust_values','','',doc,cdt,cdn,1);
+	if(doc.delivery_note_no) return get_server_fields('get_cust_values','','',doc,cdt,cdn,1);
 }
 
 cur_frm.cscript.sales_invoice_no = function(doc,cdt,cdn){
-	if(doc.sales_invoice_no) get_server_fields('get_cust_values','','',doc,cdt,cdn,1);
+	if(doc.sales_invoice_no) return get_server_fields('get_cust_values','','',doc,cdt,cdn,1);
 }
 
 cur_frm.cscript.customer = function(doc,cdt,cdn){
-	if(doc.customer) get_server_fields('get_cust_addr','','',doc,cdt,cdn,1);
+	if(doc.customer) return get_server_fields('get_cust_addr','','',doc,cdt,cdn,1);
 }
 
 cur_frm.cscript.purchase_receipt_no = function(doc,cdt,cdn){
-	if(doc.purchase_receipt_no)	get_server_fields('get_supp_values','','',doc,cdt,cdn,1);
+	if(doc.purchase_receipt_no)	return get_server_fields('get_supp_values','','',doc,cdt,cdn,1);
 }
 
 cur_frm.cscript.supplier = function(doc,cdt,cdn){
-	if(doc.supplier) get_server_fields('get_supp_addr','','',doc,cdt,cdn,1);
+	if(doc.supplier) return get_server_fields('get_supp_addr','','',doc,cdt,cdn,1);
 
 }
 
@@ -296,19 +285,6 @@
 	cur_frm.cscript.toggle_related_fields(doc, cdt, cdn);
 }
 
-// copy over source and target warehouses
-cur_frm.fields_dict['mtn_details'].grid.onrowadd = function(doc, cdt, cdn){
-	var d = locals[cdt][cdn];
-	if(!d.s_warehouse && doc.from_warehouse) {
-		d.s_warehouse = doc.from_warehouse
-		refresh_field('s_warehouse', cdn, 'mtn_details')
-	}
-	if(!d.t_warehouse && doc.to_warehouse) {
-		d.t_warehouse = doc.to_warehouse
-		refresh_field('t_warehouse', cdn, 'mtn_details')
-	}
-}
-
 // Overloaded query for link batch_no
 cur_frm.fields_dict['mtn_details'].grid.get_field('batch_no').get_query = function(doc, cdt, cdn) {
 	var d = locals[cdt][cdn];		
@@ -335,7 +311,7 @@
 		'serial_no'		: d.serial_no,
 		'bom_no'		: d.bom_no
 	};
-	get_server_fields('get_item_details',JSON.stringify(args),'mtn_details',doc,cdt,cdn,1);
+	return get_server_fields('get_item_details',JSON.stringify(args),'mtn_details',doc,cdt,cdn,1);
 }
 
 cur_frm.cscript.s_warehouse = function(doc, cdt, cdn) {
@@ -348,7 +324,7 @@
 		'bom_no'		: d.bom_no,
 		'qty'			: d.s_warehouse ? -1* d.qty : d.qty
 	}
-	get_server_fields('get_warehouse_details', JSON.stringify(args), 
+	return get_server_fields('get_warehouse_details', JSON.stringify(args), 
 		'mtn_details', doc, cdt, cdn, 1);
 }
 
@@ -358,7 +334,7 @@
 	var d = locals[cdt][cdn];
 	if(d.uom && d.item_code){
 		var arg = {'item_code':d.item_code, 'uom':d.uom, 'qty':d.qty}
-		get_server_fields('get_uom_details',JSON.stringify(arg),'mtn_details', doc, cdt, cdn, 1);
+		return get_server_fields('get_uom_details',JSON.stringify(arg),'mtn_details', doc, cdt, cdn, 1);
 	}
 }
 
diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py
index 47c0a75..b702316 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/stock/doctype/stock_entry/stock_entry.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -32,11 +19,12 @@
 
 class NotUpdateStockError(webnotes.ValidationError): pass
 class StockOverReturnError(webnotes.ValidationError): pass
+class IncorrectValuationRateError(webnotes.ValidationError): pass
 	
 from controllers.stock_controller import StockController
 
 class DocType(StockController):
-	def __init__(self, doc, doclist=[]):
+	def __init__(self, doc, doclist=None):
 		self.doc = doc
 		self.doclist = doclist
 		self.fname = 'mtn_details' 
@@ -49,6 +37,9 @@
 			get_obj('Production Order', self.doc.production_order) or None
 
 		self.validate_item()
+		self.validate_uom_is_integer("uom", "qty")
+		self.validate_uom_is_integer("stock_uom", "transfer_qty")
+
 		self.validate_warehouse(pro_obj)
 		self.validate_production_order(pro_obj)
 		self.get_stock_and_rate()
@@ -255,7 +246,7 @@
 	def validate_incoming_rate(self):
 		for d in getlist(self.doclist, 'mtn_details'):
 			if d.t_warehouse:
-				self.validate_value("incoming_rate", ">", 0, d)
+				self.validate_value("incoming_rate", ">", 0, d, raise_exception=IncorrectValuationRateError)
 					
 	def validate_bom(self):
 		for d in getlist(self.doclist, 'mtn_details'):
@@ -448,6 +439,7 @@
 	def get_items(self):
 		self.doclist = self.doc.clear_table(self.doclist, 'mtn_details', 1)
 		
+		pro_obj = None
 		if self.doc.production_order:
 			# common validations
 			pro_obj = get_obj('Production Order', self.doc.production_order)
@@ -466,7 +458,8 @@
 				else:
 					item_dict = self.get_bom_raw_materials(self.doc.fg_completed_qty)
 					for item in item_dict.values():
-						item["from_warehouse"] = pro_obj.doc.wip_warehouse
+						if pro_obj:
+							item["from_warehouse"] = pro_obj.doc.wip_warehouse
 						item["to_warehouse"] = ""
 
 				# add raw materials to Stock Entry Detail table
@@ -491,8 +484,12 @@
 				item = webnotes.conn.sql("""select item, description, uom from `tabBOM`
 					where name=%s""", (self.doc.bom_no,), as_dict=1)
 				self.add_to_stock_entry_detail({
-					item[0]["item"] :
-						[self.doc.fg_completed_qty, item[0]["description"], item[0]["uom"]]
+					item[0]["item"] : {
+						"qty": self.doc.fg_completed_qty,
+						"description": item[0]["description"],
+						"stock_uom": item[0]["uom"],
+						"from_warehouse": ""
+					}
 				}, bom_no=self.doc.bom_no)
 		
 		self.get_stock_and_rate()
@@ -551,7 +548,7 @@
 					`tabBOM Item`, `tabItem`
 				where 
 					`tabBOM Item`.parent = %s and 
-					`tabBOM Item`.item_code = tabItem.name
+					`tabBOM Item`.item_code = tabItem.name and
 					`tabBOM Item`.docstatus < 2 
 				group by item_code""", (qty, self.doc.bom_no), as_dict=1)
 			
@@ -614,7 +611,7 @@
 		for d in item_dict:
 			se_child = addchild(self.doc, 'mtn_details', 'Stock Entry Detail', 
 				self.doclist)
-			se_child.s_warehouse = item_dict[d].get("from_warehouse", self.doc.from_warehouse) 
+			se_child.s_warehouse = item_dict[d].get("from_warehouse", self.doc.from_warehouse)
 			se_child.t_warehouse = item_dict[d].get("to_warehouse", self.doc.to_warehouse)
 			se_child.item_code = cstr(d)
 			se_child.description = item_dict[d]["description"]
diff --git a/stock/doctype/stock_entry/stock_entry.txt b/stock/doctype/stock_entry/stock_entry.txt
index 682c054..911c92f 100644
--- a/stock/doctype/stock_entry/stock_entry.txt
+++ b/stock/doctype/stock_entry/stock_entry.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-09 11:43:55", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:56:06", 
+  "modified": "2013-08-08 14:22:31", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -72,7 +72,7 @@
   "fieldtype": "Select", 
   "hidden": 0, 
   "in_filter": 0, 
-  "label": "Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
@@ -298,11 +298,11 @@
   "read_only": 0
  }, 
  {
-  "depends_on": "eval:(doc.purpose!==\"Sales Return\" || doc.purpose!==\"Purchase Return\")", 
+  "depends_on": "eval:(doc.purpose!==\"Sales Return\" && doc.purpose!==\"Purchase Return\")", 
   "doctype": "DocField", 
   "fieldname": "sb1", 
   "fieldtype": "Section Break", 
-  "label": "Reference", 
+  "label": "From Bill of Materials", 
   "read_only": 0
  }, 
  {
diff --git a/stock/doctype/stock_entry/test_stock_entry.py b/stock/doctype/stock_entry/test_stock_entry.py
index 9ff957d..6438116 100644
--- a/stock/doctype/stock_entry/test_stock_entry.py
+++ b/stock/doctype/stock_entry/test_stock_entry.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # ERPNext - web based ERP (http://erpnext.com)
 # For license information, please see license.txt
 
diff --git a/stock/doctype/stock_entry_detail/stock_entry_detail.py b/stock/doctype/stock_entry_detail/stock_entry_detail.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/stock_entry_detail/stock_entry_detail.py
+++ b/stock/doctype/stock_entry_detail/stock_entry_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/stock_ledger/stock_ledger.py b/stock/doctype/stock_ledger/stock_ledger.py
index 5b3d660..0af18b9 100644
--- a/stock/doctype/stock_ledger/stock_ledger.py
+++ b/stock/doctype/stock_ledger/stock_ledger.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -131,7 +118,7 @@
 			elif purpose == 'Sales Return':
 				webnotes.conn.sql("update `tabSerial No` set status = 'Delivered', purchase_document_type = '', purchase_document_no = '' where name = '%s'" % serial_no)
 			else:
-				webnotes.conn.sql("update `tabSerial No` set docstatus = 2, status = 'Not in Use', purchase_document_type = '', purchase_document_no = '', purchase_date = null, purchase_rate = 0, supplier = null, supplier_name = '', supplier_address = '', warehouse = '' where name = '%s'" % serial_no)
+				webnotes.conn.sql("update `tabSerial No` set docstatus = 2, status = 'Not in Use', purchase_document_type = '', purchase_document_no = '', purchase_date = null, purchase_rate = 0, supplier = null, supplier_name = '', address_display = '', warehouse = '' where name = '%s'" % serial_no)
 
 
 	def check_serial_no_exists(self, serial_no, item_code):
diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index 664ead2..3fda3ba 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -125,5 +112,4 @@
 		where Key_name="posting_sort_index" """):
 		webnotes.conn.commit()
 		webnotes.conn.sql("""alter table `tabStock Ledger Entry` 
-			add index posting_sort_index(posting_date, posting_time, name)""")
-		webnotes.conn.begin()
\ No newline at end of file
+			add index posting_sort_index(posting_date, posting_time, name)""")
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt b/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
index 6ca9cc6..5b65e97 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-29 19:25:42", 
   "docstatus": 0, 
-  "modified": "2013-07-10 18:34:09", 
+  "modified": "2013-07-25 16:39:10", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -181,10 +181,11 @@
  {
   "doctype": "DocField", 
   "fieldname": "stock_uom", 
-  "fieldtype": "Data", 
+  "fieldtype": "Link", 
   "label": "Stock UOM", 
   "oldfieldname": "stock_uom", 
   "oldfieldtype": "Data", 
+  "options": "UOM", 
   "print_width": "150px", 
   "read_only": 1, 
   "width": "150px"
diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.js b/stock/doctype/stock_reconciliation/stock_reconciliation.js
index b003e05..fa2600e 100644
--- a/stock/doctype/stock_reconciliation/stock_reconciliation.js
+++ b/stock/doctype/stock_reconciliation/stock_reconciliation.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require("public/app/js/controllers/stock_controller.js");
 wn.provide("erpnext.stock");
@@ -26,7 +13,7 @@
 		var me = this;
 		
 		if (sys_defaults.auto_inventory_accounting && !this.frm.doc.expense_account) {
-			this.frm.call({
+			return this.frm.call({
 				method: "accounts.utils.get_company_default",
 				args: {
 					"fieldname": "stock_adjustment_account", 
@@ -68,6 +55,7 @@
 		} else if(this.frm.doc.docstatus == 1) {
 			this.frm.set_intro("Cancelling this Stock Reconciliation will nullify its effect.");
 			this.show_stock_ledger();
+			this.show_general_ledger();
 		} else {
 			this.frm.set_intro("");
 		}
@@ -108,8 +96,8 @@
 				method: 'stock.doctype.stock_reconciliation.stock_reconciliation.upload'
 			},
 			sample_url: "e.g. http://example.com/somefile.csv",
-			callback: function(r) {
-				me.frm.set_value("reconciliation_json", JSON.stringify(r));
+			callback: function(fid, filename, r) {
+				me.frm.set_value("reconciliation_json", JSON.stringify(r.message));
 				me.show_reconciliation_data();
 				me.frm.save();
 			}
diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.py b/stock/doctype/stock_reconciliation/stock_reconciliation.py
index 8e5698c..617ec69 100644
--- a/stock/doctype/stock_reconciliation/stock_reconciliation.py
+++ b/stock/doctype/stock_reconciliation/stock_reconciliation.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -299,13 +286,15 @@
 		
 		item_list = [d.item_code for d in self.entries]
 		warehouse_list = [d.warehouse for d in self.entries]
+		if not (item_list and warehouse_list):
+			webnotes.throw(_("Invalid Item or Warehouse Data"))
+		
 		stock_ledger_entries = self.get_stock_ledger_entries(item_list, warehouse_list)
 		
 		self.doc.stock_value_difference = 0.0
 		for d in self.entries:
-			self.doc.stock_value_difference -= get_buying_amount(d.item_code, d.warehouse, 
-				d.actual_qty, self.doc.doctype, self.doc.name, d.voucher_detail_no, 
-				stock_ledger_entries)
+			self.doc.stock_value_difference -= get_buying_amount(d.item_code, self.doc.doctype, self.doc.name,
+				d.voucher_detail_no, stock_ledger_entries.get((d.item_code, d.warehouse), []))
 		webnotes.conn.set(self.doc, "stock_value_difference", self.doc.stock_value_difference)
 		
 	def make_gl_entries(self):
diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.txt b/stock/doctype/stock_reconciliation/stock_reconciliation.txt
index fc63b8d..7ddcbf7 100644
--- a/stock/doctype/stock_reconciliation/stock_reconciliation.txt
+++ b/stock/doctype/stock_reconciliation/stock_reconciliation.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-28 10:35:31", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:56:37", 
+  "modified": "2013-07-22 15:22:44", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -31,6 +31,7 @@
   "permlevel": 0
  }, 
  {
+  "amend": 0, 
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
@@ -41,6 +42,7 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 1, 
+  "role": "Material Manager", 
   "submit": 1, 
   "write": 1
  }, 
@@ -156,12 +158,6 @@
   "print_hide": 1
  }, 
  {
-  "amend": 0, 
-  "doctype": "DocPerm", 
-  "role": "Material Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/stock_reconciliation/test_stock_reconciliation.py b/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
index bcd98a9..909dfc7 100644
--- a/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
+++ b/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # ERPNext - web based ERP (http://erpnext.com)
 # For license information, please see license.txt
 
diff --git a/stock/doctype/stock_settings/stock_settings.py b/stock/doctype/stock_settings/stock_settings.py
index f19c8fc..bc7dcba 100644
--- a/stock/doctype/stock_settings/stock_settings.py
+++ b/stock/doctype/stock_settings/stock_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js
index 94b3bf0..65e10dd 100644
--- a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js
+++ b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js
@@ -1,28 +1,17 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
-cur_frm.fields_dict['item_code'].get_query = function(doc) {
- 	return {
- 		query: "controllers.queries.item_std"
- 	}	
-}
-
-//==================== Get Items Stock UOM =====================================================
-cur_frm.cscript.item_code = function(doc,cdt,cdn) {
- if (doc.item_code) {
-    get_server_fields('get_stock_uom', doc.item_code, '', doc, cdt, cdn, 1);
-  }
-}
\ No newline at end of file
+$.extend(cur_frm.cscript, {
+	onload: function() {
+		cur_frm.set_query("item_code", erpnext.queries.item);
+	},
+	
+	item_code: function() {
+		if(cur_frm.doc.item_code) {
+			return cur_frm.call({
+				method: "get_stock_uom",
+				args: { item_code: cur_frm.doc.item_code }
+			});
+		}
+	}
+});
\ No newline at end of file
diff --git a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
index dbcccc4..4e69a37 100644
--- a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
+++ b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
@@ -1,39 +1,21 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
 
-from webnotes.utils import cstr, flt, now
+from webnotes.utils import cstr, flt, now, cint
 from webnotes.model import db_exists
 from webnotes.model.bean import copy_doclist
 from webnotes.model.code import get_obj
 from webnotes import msgprint
 
 sql = webnotes.conn.sql
-	
-
 
 class DocType:
 	def __init__(self, d, dl=[]):
 		self.doc, self.doclist = d,dl
 
-	def get_stock_uom(self, item_code):
-		return {'current_stock_uom': cstr(webnotes.conn.get_value('Item', item_code, 'stock_uom'))}
-	
 	def validate_mandatory(self):
 		if not cstr(self.doc.item_code):
 			msgprint("Please Enter an Item.")
@@ -100,7 +82,8 @@
 	def update_stock_uom(self):
 		# validate mandatory
 		self.validate_mandatory()
-		
+		self.validate_uom_integer_type()
+			
 		# update item master
 		self.update_item_master()
 		
@@ -111,3 +94,21 @@
 		self.update_bin()
 
 		get_obj("Item", self.doc.item_code).on_update()
+		
+	def validate_uom_integer_type(self):
+		current_is_integer = webnotes.conn.get_value("UOM", self.doc.current_stock_uom, "must_be_whole_number")
+		new_is_integer = webnotes.conn.get_value("UOM", self.doc.new_stock_uom, "must_be_whole_number")
+		
+		if current_is_integer and not new_is_integer:
+			webnotes.msgprint("New UOM must be of type Whole Number", raise_exception=True)
+
+		if not current_is_integer and new_is_integer:
+			webnotes.msgprint("New UOM must NOT be of type Whole Number", raise_exception=True)
+
+		if current_is_integer and new_is_integer and cint(self.doc.conversion_factor)!=self.doc.conversion_factor:
+			webnotes.msgprint("Conversion Factor cannot be fraction", raise_exception=True)
+
+@webnotes.whitelist()
+def get_stock_uom(item_code):
+	return { 'current_stock_uom': cstr(webnotes.conn.get_value('Item', item_code, 'stock_uom')) }
+	
diff --git a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt
index d820b01..6862a86 100644
--- a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt
+++ b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:30", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:56:45", 
+  "modified": "2013-07-25 17:39:14", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -64,18 +64,18 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "conversion_factor", 
+  "fieldtype": "Float", 
+  "label": "Conversion Factor"
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "update", 
   "fieldtype": "Button", 
   "label": "Update", 
   "options": "update_stock_uom"
  }, 
  {
-  "doctype": "DocField", 
-  "fieldname": "conversion_factor", 
-  "fieldtype": "Float", 
-  "label": "Conversion Factor"
- }, 
- {
   "doctype": "DocPerm", 
   "role": "Material Master Manager"
  }, 
diff --git a/stock/doctype/uom_conversion_detail/uom_conversion_detail.py b/stock/doctype/uom_conversion_detail/uom_conversion_detail.py
index 7f48feb..26d0f76 100644
--- a/stock/doctype/uom_conversion_detail/uom_conversion_detail.py
+++ b/stock/doctype/uom_conversion_detail/uom_conversion_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt b/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt
index 8b35f64..d775513 100644
--- a/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt
+++ b/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 01:28:04", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:25", 
+  "modified": "2013-07-22 17:17:53", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -15,6 +15,7 @@
  }, 
  {
   "doctype": "DocField", 
+  "in_list_view": 1, 
   "name": "__common__", 
   "parent": "UOM Conversion Detail", 
   "parentfield": "fields", 
@@ -29,7 +30,6 @@
   "doctype": "DocField", 
   "fieldname": "uom", 
   "fieldtype": "Link", 
-  "in_list_view": 0, 
   "label": "UOM", 
   "oldfieldname": "uom", 
   "oldfieldtype": "Link", 
@@ -39,7 +39,6 @@
   "doctype": "DocField", 
   "fieldname": "conversion_factor", 
   "fieldtype": "Float", 
-  "in_list_view": 1, 
   "label": "Conversion Factor", 
   "oldfieldname": "conversion_factor", 
   "oldfieldtype": "Float"
diff --git a/stock/doctype/warehouse/test_warehouse.py b/stock/doctype/warehouse/test_warehouse.py
index 34cc28c..4e47d56 100644
--- a/stock/doctype/warehouse/test_warehouse.py
+++ b/stock/doctype/warehouse/test_warehouse.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Warehouse",
diff --git a/stock/doctype/warehouse/warehouse.js b/stock/doctype/warehouse/warehouse.js
index 0e9cd33..9373c2a 100644
--- a/stock/doctype/warehouse/warehouse.js
+++ b/stock/doctype/warehouse/warehouse.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.refresh = function(doc) {
 	cur_frm.toggle_display('warehouse_name', doc.__islocal);
@@ -26,6 +13,6 @@
 	var check = confirm("Are you sure you want to merge this warehouse into " 
 		+ doc.merge_with + "?");
 	if (check) {
-		$c_obj(make_doclist(cdt, cdn), 'merge_warehouses', '', '');
+		return $c_obj(make_doclist(cdt, cdn), 'merge_warehouses', '', '');
 	}
 }
\ No newline at end of file
diff --git a/stock/doctype/warehouse/warehouse.py b/stock/doctype/warehouse/warehouse.py
index 69d9d06..0de27fe 100644
--- a/stock/doctype/warehouse/warehouse.py
+++ b/stock/doctype/warehouse/warehouse.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/doctype/warehouse/warehouse.txt b/stock/doctype/warehouse/warehouse.txt
index 95b0b52..631b968 100644
--- a/stock/doctype/warehouse/warehouse.txt
+++ b/stock/doctype/warehouse/warehouse.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 18:50:32", 
   "docstatus": 0, 
-  "modified": "2013-07-10 18:46:40", 
+  "modified": "2013-07-23 12:01:16", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -29,9 +29,9 @@
   "parent": "Warehouse", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
+  "permlevel": 0, 
   "read": 1, 
-  "report": 1, 
-  "submit": 0
+  "report": 1
  }, 
  {
   "doctype": "DocType", 
@@ -205,16 +205,8 @@
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "permlevel": 0, 
   "role": "Material Master Manager", 
-  "write": 1
- }, 
- {
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "System Manager", 
+  "submit": 0, 
   "write": 1
  }, 
  {
@@ -222,26 +214,20 @@
   "cancel": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "role": "Material Manager", 
-  "write": 0
- }, 
- {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 0, 
   "role": "Material User", 
+  "submit": 0, 
   "write": 0
  }, 
  {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
   "doctype": "DocPerm", 
-  "permlevel": 2, 
-  "role": "System Manager", 
-  "write": 1
+  "role": "Sales User"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Purchase User"
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Accounts User"
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/warehouse_user/warehouse_user.py b/stock/doctype/warehouse_user/warehouse_user.py
index 928aa9f..784339d 100644
--- a/stock/doctype/warehouse_user/warehouse_user.py
+++ b/stock/doctype/warehouse_user/warehouse_user.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/stock/page/stock_ageing/stock_ageing.js b/stock/page/stock_ageing/stock_ageing.js
index b9b4c80..fe2c0d6 100644
--- a/stock/page/stock_ageing/stock_ageing.js
+++ b/stock/page/stock_ageing/stock_ageing.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 
 wn.pages['stock-ageing'].onload = function(wrapper) { 
diff --git a/stock/page/stock_analytics/stock_analytics.js b/stock/page/stock_analytics/stock_analytics.js
index a52cb7d..547f5ac 100644
--- a/stock/page/stock_analytics/stock_analytics.js
+++ b/stock/page/stock_analytics/stock_analytics.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 
 wn.pages['stock-analytics'].onload = function(wrapper) { 
diff --git a/stock/page/stock_balance/stock_balance.js b/stock/page/stock_balance/stock_balance.js
index 4abd533..1bc5d1c 100644
--- a/stock/page/stock_balance/stock_balance.js
+++ b/stock/page/stock_balance/stock_balance.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require("app/js/stock_analytics.js");
 
@@ -146,8 +133,6 @@
 				} else {
 					break;
 				}
-				
-				me.round_item_values(item);
 			}
 		}
 
diff --git a/stock/page/stock_home/stock_home.js b/stock/page/stock_home/stock_home.js
index 6c315ad..580c2dc 100644
--- a/stock/page/stock_home/stock_home.js
+++ b/stock/page/stock_home/stock_home.js
@@ -1,5 +1,5 @@
-// ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-// GNU General Public License. See "license.txt"
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt"
 
 wn.module_page["Stock"] = [
 	{
@@ -203,23 +203,27 @@
 			{
 				"label":wn._("Purchase In Transit"),
 				route: "query-report/Purchase In Transit",
+				doctype: "Purchase Order"
 			},
 			{
 				"label":wn._("Requested Items To Be Transferred"),
 				route: "query-report/Requested Items To Be Transferred",
+				doctype: "Material Request"
 			},
 			{
 				"label":wn._("Batch-Wise Balance History"),
 				route: "query-report/Batch-Wise Balance History",
+				doctype: "Batch"
 			},
 			{
 				"label":wn._("Warehouse-Wise Stock Balance"),
 				route: "query-report/Warehouse-Wise Stock Balance",
+				doctype: "Warehouse"
 			},
 			{
 				"label":wn._("Item Prices"),
 				route: "query-report/Item Prices",
-
+				doctype: "Price List"
 			},
 			{
 				"label":wn._("Itemwise Recommended Reorder Level"),
diff --git a/stock/page/stock_ledger/stock_ledger.js b/stock/page/stock_ledger/stock_ledger.js
index 3ca27c5..33bceeb 100644
--- a/stock/page/stock_ledger/stock_ledger.js
+++ b/stock/page/stock_ledger/stock_ledger.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.pages['stock-ledger'].onload = function(wrapper) { 
 	wn.ui.make_app_page({
diff --git a/stock/page/stock_level/stock_level.js b/stock/page/stock_level/stock_level.js
index 5f129c3..0699b7d 100644
--- a/stock/page/stock_level/stock_level.js
+++ b/stock/page/stock_level/stock_level.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.pages['stock-level'].onload = function(wrapper) { 
 	wn.ui.make_app_page({
diff --git a/stock/report/batch_wise_balance_history/batch_wise_balance_history.js b/stock/report/batch_wise_balance_history/batch_wise_balance_history.js
index 98293e4..a9d6477 100644
--- a/stock/report/batch_wise_balance_history/batch_wise_balance_history.js
+++ b/stock/report/batch_wise_balance_history/batch_wise_balance_history.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Batch-Wise Balance History"] = {
 	"filters": [
 		{
diff --git a/stock/report/batch_wise_balance_history/batch_wise_balance_history.py b/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
index 530465e..e198b8e 100644
--- a/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
+++ b/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/report/delivery_note_trends/delivery_note_trends.js b/stock/report/delivery_note_trends/delivery_note_trends.js
index 3ec5e59..46e5106 100644
--- a/stock/report/delivery_note_trends/delivery_note_trends.js
+++ b/stock/report/delivery_note_trends/delivery_note_trends.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.require("app/js/sales_trends_filters.js");
 
 wn.query_reports["Delivery Note Trends"] = {
diff --git a/stock/report/delivery_note_trends/delivery_note_trends.py b/stock/report/delivery_note_trends/delivery_note_trends.py
index e5b2cd0..f66ad29 100644
--- a/stock/report/delivery_note_trends/delivery_note_trends.py
+++ b/stock/report/delivery_note_trends/delivery_note_trends.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/report/item_prices/item_prices.py b/stock/report/item_prices/item_prices.py
index fb69086..0a6b29a 100644
--- a/stock/report/item_prices/item_prices.py
+++ b/stock/report/item_prices/item_prices.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -71,7 +58,7 @@
 	rate = {}
 	
 	price_list = webnotes.conn.sql("""select parent, selling, buying, 
-		concat(price_list_name, " - ", ref_currency, " ", ref_rate) as price
+		concat(price_list, " - ", ref_currency, " ", ref_rate) as price
 		from `tabItem Price` where docstatus<2""", as_dict=1)
 
 	for j in price_list:
diff --git a/stock/report/item_wise_price_list/item_wise_price_list.txt b/stock/report/item_wise_price_list/item_wise_price_list.txt
index 824c603..2d5996a 100644
--- a/stock/report/item_wise_price_list/item_wise_price_list.txt
+++ b/stock/report/item_wise_price_list/item_wise_price_list.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-22 18:01:55", 
   "docstatus": 0, 
-  "modified": "2013-05-07 11:50:46", 
+  "modified": "2013-05-07 11:52:00", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -10,7 +10,7 @@
   "doctype": "Report", 
   "is_standard": "Yes", 
   "name": "__common__", 
-  "query": "select\n  item.name as \"ID:Link/Item:120\", \n  item.item_name as \"Item Name::120\", \n  item_price.price_list_name as \"Price List::80\",\n  item_price.ref_currency as \"Currency::40\", \n  item_price.ref_rate as \"Rate:Float:80\",\n  item.description as \"Description::160\",\n  item.item_group as \"Item Group:Link/Item Group:100\",\n  item.brand as \"Brand::100\"\nfrom `tabItem` item, `tabItem Price` item_price\nwhere\n  item_price.parent = item.name", 
+  "query": "select\n  item.name as \"ID:Link/Item:120\", \n  item.item_name as \"Item Name::120\", \n  item_price.price_list as \"Price List::80\",\n  item_price.ref_currency as \"Currency::40\", \n  item_price.ref_rate as \"Rate:Float:80\",\n  item.description as \"Description::160\",\n  item.item_group as \"Item Group:Link/Item Group:100\",\n  item.brand as \"Brand::100\"\nfrom `tabItem` item, `tabItem Price` item_price\nwhere\n  item_price.parent = item.name", 
   "ref_doctype": "Item", 
   "report_name": "Item-Wise Price List", 
   "report_type": "Query Report"
diff --git a/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.js b/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.js
index b8aa378..410feab 100644
--- a/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.js
+++ b/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Itemwise Recommended Reorder Level"] = {
 	"filters": [
 		{
diff --git a/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py b/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
index 588132f..dda2176 100644
--- a/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
+++ b/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 import webnotes
 from webnotes.utils import getdate, flt
diff --git a/utilities/page/markdown_reference/markdown_reference.css b/stock/report/material_requests_for_which_supplier_quotations_are_not_created/__init__.py
similarity index 100%
copy from utilities/page/markdown_reference/markdown_reference.css
copy to stock/report/material_requests_for_which_supplier_quotations_are_not_created/__init__.py
diff --git a/stock/report/material_requests_for_which_supplier_quotations_are_not_created/material_requests_for_which_supplier_quotations_are_not_created.txt b/stock/report/material_requests_for_which_supplier_quotations_are_not_created/material_requests_for_which_supplier_quotations_are_not_created.txt
new file mode 100644
index 0000000..5c842a8
--- /dev/null
+++ b/stock/report/material_requests_for_which_supplier_quotations_are_not_created/material_requests_for_which_supplier_quotations_are_not_created.txt
@@ -0,0 +1,22 @@
+[
+ {
+  "creation": "2013-08-09 12:20:58", 
+  "docstatus": 0, 
+  "modified": "2013-08-09 12:25:29", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "doctype": "Report", 
+  "is_standard": "Yes", 
+  "name": "__common__", 
+  "query": "select \n    mr.name as \"Material Request:Link/Material Request:120\",\n    mr.transaction_date as \"Date:Date:100\",\n\tmr_item.item_code as \"Item Code:Link/Item:120\",\n\tmr_item.qty as \"Qty:Float:100\",\n\tmr_item.item_name as \"Item Name::150\",\n\tmr_item.description as \"Description::200\"\nfrom\n\t`tabMaterial Request` mr, `tabMaterial Request Item` mr_item\nwhere\n\tmr_item.parent = mr.name\n\tand mr.material_request_type = \"Purchase\"\n\tand mr.docstatus = 1\n\tand mr.status != \"Stopped\"\n\tand not exists(select name from `tabSupplier Quotation Item` where prevdoc_docname=mr.name)\norder by mr.transaction_date asc", 
+  "ref_doctype": "Material Request", 
+  "report_name": "Material Requests for which Supplier Quotations are not created", 
+  "report_type": "Query Report"
+ }, 
+ {
+  "doctype": "Report", 
+  "name": "Material Requests for which Supplier Quotations are not created"
+ }
+]
\ No newline at end of file
diff --git a/stock/report/purchase_receipt_trends/purchase_receipt_trends.js b/stock/report/purchase_receipt_trends/purchase_receipt_trends.js
index ecfa5a4..3637ea3 100644
--- a/stock/report/purchase_receipt_trends/purchase_receipt_trends.js
+++ b/stock/report/purchase_receipt_trends/purchase_receipt_trends.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.require("app/js/purchase_trends_filters.js");
 
 wn.query_reports["Purchase Receipt Trends"] = {
diff --git a/stock/report/purchase_receipt_trends/purchase_receipt_trends.py b/stock/report/purchase_receipt_trends/purchase_receipt_trends.py
index b41ce28..395c426 100644
--- a/stock/report/purchase_receipt_trends/purchase_receipt_trends.py
+++ b/stock/report/purchase_receipt_trends/purchase_receipt_trends.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.js b/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.js
index 2ce5b4b..942b465 100644
--- a/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.js
+++ b/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.query_reports["Warehouse-Wise Stock Balance"] = {
 	"filters": [
 		{
diff --git a/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.py b/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.py
index 4389aa5..4d42c22 100644
--- a/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.py
+++ b/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -42,8 +29,8 @@
 	"""return columns based on filters"""
 	
 	columns = ["Item:Link/Item:100", "Item Name::150", "Description::150", \
-	"Warehouse:Link/Warehouse:100", "Opening Qty::90", \
-	"In Qty::80", "Out Qty::80", "Balance Qty::90", "Company:Link/Company:100"]
+	"Warehouse:Link/Warehouse:100", "Opening Qty:Float:90", \
+	"In Qty:Float:80", "Out Qty:Float:80", "Balance Qty:Float:90", "Company:Link/Company:100"]
 
 	return columns
 
diff --git a/stock/stock_ledger.py b/stock/stock_ledger.py
index 10e490c..f0619c7 100644
--- a/stock/stock_ledger.py
+++ b/stock/stock_ledger.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 import webnotes
 from webnotes import msgprint
@@ -21,6 +8,7 @@
 import json
 
 # future reposting
+class NegativeStockError(webnotes.ValidationError): pass
 
 _exceptions = []
 def update_entries_after(args, verbose=1):
@@ -266,9 +254,9 @@
 		_exceptions[0]["voucher_type"], _exceptions[0]["voucher_no"],
 		abs(deficiency))
 	if verbose:
-		msgprint(msg, raise_exception=1)
+		msgprint(msg, raise_exception=NegativeStockError)
 	else:
-		raise webnotes.ValidationError, msg
+		raise NegativeStockError, msg
 		
 def get_previous_sle(args, for_update=False):
 	"""
diff --git a/stock/utils.py b/stock/utils.py
index 942c200..848783b 100644
--- a/stock/utils.py
+++ b/stock/utils.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 import webnotes
 from webnotes import msgprint, _
@@ -82,7 +69,7 @@
 		if valuation_method == 'FIFO':
 			if not previous_sle:
 				return 0.0
-			previous_stock_queue = json.loads(previous_sle.get('stock_queue', '[]'))
+			previous_stock_queue = json.loads(previous_sle.get('stock_queue', '[]') or '[]')
 			in_rate = previous_stock_queue and \
 				get_fifo_rate(previous_stock_queue, args.get("qty") or 0) or 0
 		elif valuation_method == 'Moving Average':
@@ -165,32 +152,28 @@
 				wlist.append([w])
 	return wlist
 
-def get_buying_amount(item_code, warehouse, qty, voucher_type, voucher_no, voucher_detail_no, 
+def get_buying_amount(item_code, voucher_type, voucher_no, voucher_detail_no, 
 		stock_ledger_entries, item_sales_bom=None):
 	if item_sales_bom and item_sales_bom.get(item_code):
 		# sales bom item
 		buying_amount = 0.0
 		for bom_item in item_sales_bom[item_code]:
 			if bom_item.get("parent_detail_docname")==voucher_detail_no:
-				buying_amount += _get_buying_amount(voucher_type, voucher_no, voucher_detail_no,
-					bom_item.item_code, bom_item.warehouse or warehouse, 
-					bom_item.total_qty or (bom_item.qty * qty), stock_ledger_entries)
+				buying_amount += _get_buying_amount(voucher_type, voucher_no, voucher_detail_no, stock_ledger_entries)
 		return buying_amount
 	else:
 		# doesn't have sales bom
-		return _get_buying_amount(voucher_type, voucher_no, voucher_detail_no, 
-			item_code, warehouse, qty, stock_ledger_entries)
+		return _get_buying_amount(voucher_type, voucher_no, voucher_detail_no, stock_ledger_entries)
 		
-def _get_buying_amount(voucher_type, voucher_no, item_row, item_code, warehouse, qty, 
-		stock_ledger_entries):
-	relevant_stock_ledger_entries = [sle for sle in stock_ledger_entries 
-		if sle.item_code == item_code and sle.warehouse == warehouse]
-		
-	for i, sle in enumerate(relevant_stock_ledger_entries):
+def _get_buying_amount(voucher_type, voucher_no, item_row, stock_ledger_entries):
+	# IMP NOTE
+	# stock_ledger_entries should already be filtered by item_code and warehouse and 
+	# sorted by posting_date desc, posting_time desc
+	for i, sle in enumerate(stock_ledger_entries):
 		if sle.voucher_type == voucher_type and sle.voucher_no == voucher_no and \
 			sle.voucher_detail_no == item_row:
-				previous_stock_value = len(relevant_stock_ledger_entries) > i+1 and \
-					flt(relevant_stock_ledger_entries[i+1].stock_value) or 0.0
+				previous_stock_value = len(stock_ledger_entries) > i+1 and \
+					flt(stock_ledger_entries[i+1].stock_value) or 0.0
 				
 				buying_amount =  previous_stock_value - flt(sle.stock_value)						
 				
@@ -201,8 +184,8 @@
 def reorder_item():
 	""" Reorder item if stock reaches reorder level"""
 	if not hasattr(webnotes, "auto_indent"):
-		webnotes.auto_indent = webnotes.conn.get_value('Stock Settings', None, 'auto_indent')
-
+		webnotes.auto_indent = cint(webnotes.conn.get_value('Stock Settings', None, 'auto_indent'))
+	
 	if webnotes.auto_indent:
 		material_requests = {}
 		bin_list = webnotes.conn.sql("""select item_code, warehouse, projected_qty
@@ -254,7 +237,7 @@
 				items = material_requests[request_type][company]
 				if not items:
 					continue
-
+					
 				mr = [{
 					"doctype": "Material Request",
 					"company": company,
@@ -287,7 +270,7 @@
 				mr_bean.insert()
 				mr_bean.submit()
 				mr_list.append(mr_bean)
-				
+
 			except:
 				if webnotes.message_log:
 					exceptions_list.append([] + webnotes.message_log)
@@ -297,8 +280,8 @@
 
 	if mr_list:
 		if not hasattr(webnotes, "reorder_email_notify"):
-			webnotes.reorder_email_notify = webnotes.conn.get_value('Stock Settings', None, 
-				'reorder_email_notify')
+			webnotes.reorder_email_notify = cint(webnotes.conn.get_value('Stock Settings', None, 
+				'reorder_email_notify'))
 			
 		if(webnotes.reorder_email_notify):
 			send_email_notification(mr_list)
@@ -324,7 +307,6 @@
 			msg += "<tr><td>" + item.item_code + "</td><td>" + item.warehouse + "</td><td>" + \
 				cstr(item.qty) + "</td><td>" + cstr(item.uom) + "</td></tr>"
 		msg += "</table>"
-
 	sendmail(email_list, subject='Auto Material Request Generation Notification', msg = msg)
 	
 def notify_errors(exceptions_list):
diff --git a/support/doctype/customer_issue/customer_issue.js b/support/doctype/customer_issue/customer_issue.js
index 2268493..5b670d4 100644
--- a/support/doctype/customer_issue/customer_issue.js
+++ b/support/doctype/customer_issue/customer_issue.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.provide("erpnext.support");
 // TODO commonify this code
@@ -26,16 +13,13 @@
 	customer: function() {
 		var me = this;
 		if(this.frm.doc.customer) {
-			this.frm.call({
-				doc: this.frm.doc,
-				method: "set_customer_defaults",
-				callback: function(r) {
-					if(!r.exc) me.frm.refresh_fields();
-				}
-			});
-			
 			// TODO shift this to depends_on
 			unhide_field(['customer_address', 'contact_person']);
+			
+			return this.frm.call({
+				doc: this.frm.doc,
+				method: "set_customer_defaults",
+			});
 		}
 	}, 
 	
@@ -59,7 +43,7 @@
 
 cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {		
 	if(doc.customer) 
-		get_server_fields('get_customer_address', 
+		return get_server_fields('get_customer_address', 
 			JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
 }
 
@@ -117,11 +101,6 @@
 cur_frm.add_fetch('item_code', 'item_name', 'item_name');
 cur_frm.add_fetch('item_code', 'description', 'description');
 
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters:{ 'is_group': "No"}
-	}
-}
 
 cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
 	return{	query:"controllers.queries.customer_query" } }
diff --git a/support/doctype/customer_issue/customer_issue.py b/support/doctype/customer_issue/customer_issue.py
index 60887f9..910e9b8 100644
--- a/support/doctype/customer_issue/customer_issue.py
+++ b/support/doctype/customer_issue/customer_issue.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 
 from __future__ import unicode_literals
diff --git a/support/doctype/customer_issue/customer_issue.txt b/support/doctype/customer_issue/customer_issue.txt
index 5f89ade..faff298 100644
--- a/support/doctype/customer_issue/customer_issue.txt
+++ b/support/doctype/customer_issue/customer_issue.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:30", 
   "docstatus": 0, 
-  "modified": "2013-07-10 13:13:27", 
+  "modified": "2013-08-08 14:22:33", 
   "modified_by": "Administrator", 
   "owner": "harshada@webnotestech.com"
  }, 
@@ -55,7 +55,7 @@
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "in_filter": 0, 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "oldfieldname": "naming_series", 
   "oldfieldtype": "Select", 
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.js b/support/doctype/maintenance_schedule/maintenance_schedule.js
index fab9b2a..6b69343 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.provide("erpnext.support");
 // TODO commonify this code
@@ -44,12 +31,9 @@
 	customer: function() {
 		var me = this;
 		if(this.frm.doc.customer) {
-			this.frm.call({
+			return this.frm.call({
 				doc: this.frm.doc,
 				method: "set_customer_defaults",
-				callback: function(r) {
-					if(!r.exc) me.frm.refresh_fields();
-				}
 			});
 		}		
 	}, 
@@ -67,7 +51,7 @@
 }
 
 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) return 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'].get_query = function(doc, cdt, cdn) {
@@ -93,7 +77,7 @@
   var fname = cur_frm.cscript.fname;
   var d = locals[cdt][cdn];
   if (d.item_code) {
-    get_server_fields('get_item_details',d.item_code, 'item_maintenance_detail',doc,cdt,cdn,1);
+    return get_server_fields('get_item_details',d.item_code, 'item_maintenance_detail',doc,cdt,cdn,1);
   }
 }
 
@@ -104,7 +88,7 @@
     arg.start_date = d.start_date;
     arg.end_date = d.end_date;
     arg.periodicity = d.periodicity;
-    get_server_fields('get_no_of_visits',docstring(arg),'item_maintenance_detail',doc, cdt, cdn, 1);
+    return get_server_fields('get_no_of_visits',docstring(arg),'item_maintenance_detail',doc, cdt, cdn, 1);
   }
   else{
     msgprint("Please enter Start Date and End Date");
@@ -113,7 +97,7 @@
 
 cur_frm.cscript.generate_schedule = function(doc, cdt, cdn) {
   if (!doc.__islocal) {
-    $c('runserverobj', args={'method':'generate_schedule', 'docs':wn.model.compress(make_doclist(cdt,cdn))},
+    return $c('runserverobj', args={'method':'generate_schedule', 'docs':wn.model.compress(make_doclist(cdt,cdn))},
       function(r,rt){
         refresh_field('maintenance_schedule_detail');
       }
@@ -123,11 +107,5 @@
   }  
 }
 
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-  return{
-    filters:{ 'is_group': "No"}
-  }  
-}
-
 cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
   return{ query:"controllers.queries.customer_query" } }
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.py b/support/doctype/maintenance_schedule/maintenance_schedule.py
index 0e2d1f9..8659b9f 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.py
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.txt b/support/doctype/maintenance_schedule/maintenance_schedule.txt
index 0491946..c14764c 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.txt
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:30", 
   "docstatus": 0, 
-  "modified": "2013-07-10 12:18:19", 
+  "modified": "2013-07-22 15:32:36", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -35,6 +35,7 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 1, 
+  "role": "Maintenance Manager", 
   "submit": 1, 
   "write": 1
  }, 
@@ -249,11 +250,6 @@
   "read_only": 1
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "Maintenance Manager"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py b/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py
index 7f48feb..26d0f76 100644
--- a/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py
+++ b/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/support/doctype/maintenance_schedule_item/maintenance_schedule_item.py b/support/doctype/maintenance_schedule_item/maintenance_schedule_item.py
index 7f48feb..26d0f76 100644
--- a/support/doctype/maintenance_schedule_item/maintenance_schedule_item.py
+++ b/support/doctype/maintenance_schedule_item/maintenance_schedule_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/support/doctype/maintenance_visit/maintenance_visit.js b/support/doctype/maintenance_visit/maintenance_visit.js
index 0b0d010..ef6f110 100644
--- a/support/doctype/maintenance_visit/maintenance_visit.js
+++ b/support/doctype/maintenance_visit/maintenance_visit.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.provide("erpnext.support");
 // TODO commonify this code
@@ -62,16 +49,13 @@
 	customer: function() {
 		var me = this;
 		if(this.frm.doc.customer) {
-			this.frm.call({
+			// TODO shift this to depends_on
+			cur_frm.cscript.hide_contact_info();
+			
+			return this.frm.call({
 				doc: this.frm.doc,
 				method: "set_customer_defaults",
-				callback: function(r) {
-					if(!r.exc) me.frm.refresh_fields();
-				}
 			});
-			
-			// TODO shift this to depends_on
-			cur_frm.cscript.hide_contact_info();			
 		}
 	}, 
 });
@@ -89,7 +73,7 @@
 }
 
 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) return 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'].get_query = function(doc, cdt, cdn) {
@@ -114,18 +98,10 @@
 	var fname = cur_frm.cscript.fname;
 	var d = locals[cdt][cdn];
 	if (d.item_code) {
-		get_server_fields('get_item_details',d.item_code, 'maintenance_visit_details',doc,cdt,cdn,1);
+		return get_server_fields('get_item_details',d.item_code, 'maintenance_visit_details',doc,cdt,cdn,1);
 	}
 }
 
-//get query select Territory
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-  	return{
-    	filters:{
-      		'is_group': "No"
-    	}
-  	}
-}
 
 cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
 	return {query: "controllers.queries.customer_query" }
diff --git a/support/doctype/maintenance_visit/maintenance_visit.py b/support/doctype/maintenance_visit/maintenance_visit.py
index e5f7280..bf8767b 100644
--- a/support/doctype/maintenance_visit/maintenance_visit.py
+++ b/support/doctype/maintenance_visit/maintenance_visit.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/support/doctype/maintenance_visit/maintenance_visit.txt b/support/doctype/maintenance_visit/maintenance_visit.txt
index 478d9ac..ee84f96 100644
--- a/support/doctype/maintenance_visit/maintenance_visit.txt
+++ b/support/doctype/maintenance_visit/maintenance_visit.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:31", 
   "docstatus": 0, 
-  "modified": "2013-07-10 12:26:15", 
+  "modified": "2013-07-22 15:24:40", 
   "modified_by": "Administrator", 
   "owner": "ashwini@webnotestech.com"
  }, 
@@ -35,6 +35,7 @@
   "permlevel": 0, 
   "read": 1, 
   "report": 1, 
+  "role": "Maintenance User", 
   "submit": 1, 
   "write": 1
  }, 
@@ -308,15 +309,6 @@
   "print_hide": 1
  }, 
  {
-  "doctype": "DocPerm", 
-  "role": "System Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "Maintenance Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "Maintenance User"
+  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py b/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py
index 7f48feb..26d0f76 100644
--- a/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py
+++ b/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/support/doctype/newsletter/newsletter.js b/support/doctype/newsletter/newsletter.js
index b7e24d2..0531196 100644
--- a/support/doctype/newsletter/newsletter.js
+++ b/support/doctype/newsletter/newsletter.js
@@ -1,41 +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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
-cur_frm.cscript.refresh = function(doc) {
-	erpnext.hide_naming_series();
-	if(!doc.__islocal && !cint(doc.email_sent) && !doc.__unsaved
-			&& inList(wn.boot.profile.can_write, doc.doctype)) {
-		cur_frm.add_custom_button('Send', function() {
-			$c_obj(make_doclist(doc.doctype, doc.name), 'send_emails', '', function(r) {
-				cur_frm.refresh();
-			});
-		})
-	}
-
-	if(doc.__islocal && !doc.send_from) {
-		cur_frm.set_value("send_from", 
-			repl("%(fullname)s <%(email)s>", wn.user_info(doc.owner)));
-	}
-	
-	wn.call({
+cur_frm.cscript.onload = function(doc) {
+	return wn.call({
 		method: "support.doctype.newsletter.newsletter.get_lead_options",
 		type: "GET",
 		callback: function(r) {
 			set_field_options("lead_source", r.message.sources.join("\n"))
 			set_field_options("lead_status", r.message.statuses.join("\n"))
 		}
-	})
+	});
+}
+
+cur_frm.cscript.refresh = function(doc) {
+	erpnext.hide_naming_series();
+	if(!doc.__islocal && !cint(doc.email_sent) && !doc.__unsaved
+			&& inList(wn.boot.profile.can_write, doc.doctype)) {
+		cur_frm.add_custom_button('Send', function() {
+			return $c_obj(make_doclist(doc.doctype, doc.name), 'send_emails', '', function(r) {
+				cur_frm.refresh();
+			});
+		})
+	}
+	
+	cur_frm.cscript.setup_dashboard();
+
+	if(doc.__islocal && !doc.send_from) {
+		cur_frm.set_value("send_from", 
+			repl("%(fullname)s <%(email)s>", wn.user_info(doc.owner)));
+	}
+}
+
+cur_frm.cscript.setup_dashboard = function() {
+	cur_frm.dashboard.reset();
+	if(!cur_frm.doc.__islocal && cint(cur_frm.doc.email_sent) && cur_frm.doc.__status_count) {
+		var stat = cur_frm.doc.__status_count;
+		var total = wn.utils.sum($.map(stat, function(v) { return v; }));
+		if(total) {
+			$.each(stat, function(k, v) {
+				stat[k] = flt(v * 100 / total, 2);
+			});
+			
+			cur_frm.dashboard.add_progress("Status", [
+				{
+					title: stat["Sent"] + "% Sent",
+					width: stat["Sent"],
+					progress_class: "progress-bar-success"
+				},
+				{
+					title: stat["Sending"] + "% Sending",
+					width: stat["Sending"],
+					progress_class: "progress-bar-warning"
+				},
+				{
+					title: stat["Error"] + "% Error",
+					width: stat["Error"],
+					progress_class: "progress-bar-danger"
+				}
+			]);
+		}
+	}
 }
\ No newline at end of file
diff --git a/support/doctype/newsletter/newsletter.py b/support/doctype/newsletter/newsletter.py
index e654470..b201cc5 100644
--- a/support/doctype/newsletter/newsletter.py
+++ b/support/doctype/newsletter/newsletter.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 
@@ -24,6 +11,12 @@
 class DocType():
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
+		
+	def onload(self):
+		if self.doc.email_sent:
+			self.doc.fields["__status_count"] = dict(webnotes.conn.sql("""select status, count(*)
+				from `tabBulk Email` where ref_doctype=%s and ref_docname=%s
+				group by status""", (self.doc.doctype, self.doc.name))) or None
 
 	def test_send(self, doctype="Lead"):
 		self.recipients = self.doc.test_email_id.split(",")
@@ -87,7 +80,8 @@
 		
 		send(recipients = self.recipients, sender = sender, 
 			subject = self.doc.subject, message = self.doc.message,
-			doctype = self.send_to_doctype, email_field = "email_id")
+			doctype = self.send_to_doctype, email_field = "email_id",
+			ref_doctype = self.doc.doctype, ref_docname = self.doc.name)
 
 		webnotes.conn.auto_commit_on_many_writes = False
 
@@ -104,8 +98,10 @@
 @webnotes.whitelist()
 def get_lead_options():
 	return {
-		"sources": ["All"] + webnotes.conn.sql_list("""select distinct source from tabLead"""),
-		"statuses": ["All"]+ webnotes.conn.sql_list("""select distinct status from tabLead""")
+		"sources": ["All"] + filter(None, 
+			webnotes.conn.sql_list("""select distinct source from tabLead""")),
+		"statuses": ["All"] + filter(None, 
+			webnotes.conn.sql_list("""select distinct status from tabLead"""))
 	}
 
 
diff --git a/support/doctype/newsletter/newsletter.txt b/support/doctype/newsletter/newsletter.txt
index e760135..45f075e 100644
--- a/support/doctype/newsletter/newsletter.txt
+++ b/support/doctype/newsletter/newsletter.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:31", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:47:08", 
+  "modified": "2013-08-08 14:22:34", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -53,7 +53,7 @@
   "doctype": "DocField", 
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "options": "NL-", 
   "reqd": 1
  }, 
diff --git a/support/doctype/newsletter/test_newsletter.py b/support/doctype/newsletter/test_newsletter.py
index 0813cfe..fae3e40 100644
--- a/support/doctype/newsletter/test_newsletter.py
+++ b/support/doctype/newsletter/test_newsletter.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 import webnotes, unittest
 
 class TestNewsletter(unittest.TestCase):
diff --git a/support/doctype/support_ticket/get_support_mails.py b/support/doctype/support_ticket/get_support_mails.py
index fd3d3ea..7e09846 100644
--- a/support/doctype/support_ticket/get_support_mails.py
+++ b/support/doctype/support_ticket/get_support_mails.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/support/doctype/support_ticket/support_ticket.js b/support/doctype/support_ticket/support_ticket.js
index bd7e6cc..2c1f332 100644
--- a/support/doctype/support_ticket/support_ticket.js
+++ b/support/doctype/support_ticket/support_ticket.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
 	return{	query:"controllers.queries.customer_query" } }
@@ -23,12 +10,9 @@
 	customer: function() {
 		var me = this;
 		if(this.frm.doc.customer) {
-			this.frm.call({
+			return this.frm.call({
 				doc: this.frm.doc,
 				method: "set_customer_defaults",
-				callback: function(r) {
-					if(!r.exc) me.frm.refresh_fields();
-				}
 			});			
 		}
 	}
@@ -42,9 +26,6 @@
 			cur_frm.footer.help_area.innerHTML = '<p><a href="#Form/Email Settings/Email Settings">Email Settings</a><br>\
 				<span class="help">Integrate incoming support emails to Support Ticket</span></p>';
 		}
-		
-		if(doc.description)
-			doc.description = wn.utils.escape_script_and_style(doc.description);
 	},
 	
 	refresh: function(doc) {
@@ -96,7 +77,7 @@
 	},
 
 	set_status: function(status) {
-		wn.call({
+		return wn.call({
 			method:"support.doctype.support_ticket.support_ticket.set_status",
 			args: {
 				name: cur_frm.doc.name,
diff --git a/support/doctype/support_ticket/support_ticket.py b/support/doctype/support_ticket/support_ticket.py
index 63548d3..2b8fe85 100644
--- a/support/doctype/support_ticket/support_ticket.py
+++ b/support/doctype/support_ticket/support_ticket.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -50,8 +37,9 @@
 			clear(self.doc.doctype, self.doc.name)
 		
 	def on_communication_sent(self, comm):
-		webnotes.conn.set(self.doc, 'status', 'Waiting for Customer')
-		
+		self.doc.status = "Waiting for Customer"
+		self.update_status()
+		self.doc.save()
 		
 	def set_lead_contact(self, email_id):
 		import email.utils
@@ -72,7 +60,7 @@
 
 	def update_status(self):
 		status = webnotes.conn.get_value("Support Ticket", self.doc.name, "status")
-		if self.doc.status!="Open" and status =="Open":
+		if self.doc.status!="Open" and status =="Open" and not self.doc.first_responded_on:
 			self.doc.first_responded_on = now()
 		if self.doc.status=="Closed" and status !="Closed":
 			self.doc.resolution_date = now()
diff --git a/support/doctype/support_ticket/support_ticket.txt b/support/doctype/support_ticket/support_ticket.txt
index 44801ee..53d1c7c 100644
--- a/support/doctype/support_ticket/support_ticket.txt
+++ b/support/doctype/support_ticket/support_ticket.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-01 10:36:25", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:57:19", 
+  "modified": "2013-08-08 14:22:34", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -53,7 +53,7 @@
   "fieldname": "naming_series", 
   "fieldtype": "Select", 
   "hidden": 0, 
-  "label": "Naming Series", 
+  "label": "Document Numbering Series", 
   "no_copy": 1, 
   "options": "SUP", 
   "print_hide": 1, 
diff --git a/support/page/support_analytics/support_analytics.js b/support/page/support_analytics/support_analytics.js
index 9b46e6d..7e44917 100644
--- a/support/page/support_analytics/support_analytics.js
+++ b/support/page/support_analytics/support_analytics.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 wn.pages['support-analytics'].onload = function(wrapper) { 
 	wn.ui.make_app_page({
 		parent: wrapper,
diff --git a/support/page/support_home/support_home.js b/support/page/support_home/support_home.js
index ea8474c..0ae1b8b 100644
--- a/support/page/support_home/support_home.js
+++ b/support/page/support_home/support_home.js
@@ -1,5 +1,5 @@
-// ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-// GNU General Public License. See "license.txt"
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt"
 
 wn.module_page["Support"] = [
 	{
diff --git a/translations/ar.csv b/translations/ar.csv
index c44bd35..9e075a8 100644
--- a/translations/ar.csv
+++ b/translations/ar.csv
@@ -1,12 +1,18 @@
  (Half Day),(نصف يوم)
+ against sales order,ضد النظام مبيعات
  against same operation,ضد نفس العملية
  already marked,شهدت بالفعل
  and year: ,والسنة:
+ as it is stock Item or packing item,كما هو المخزون البند أو العنصر التعبئة
  at warehouse: ,في المستودع:
  by Role ,بالتخصص
+ can not be made.,لا يمكن أن يتم.
+ can not be marked as a ledger as it has existing child,لا يمكن أن تكون علامة ليدجر كما فعلت الأطفال الحالية
  cannot be 0,لا يمكن أن يكون 0
  cannot be deleted.,لا يمكن حذف.
  does not belong to the company,لا تنتمي إلى الشركة
+ has already been submitted.,وقد تم بالفعل قدمت.
+ has been freezed. ,وقد جمدت.
  has been freezed. \				Only Accounts Manager can do transaction against this account,وقد جمدت. \ يمكن فقط إدارة حسابات القيام المعاملة ضد هذا الحساب
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item",أقل من يساوي الصفر في النظام، ومعدل \ تقييم إلزامي لهذا البند
  is mandatory,إلزامي
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,الآن السنة المالية الافتراضية. \ يرجى تحديث المتصفح الخاص بك لالتغيير نافذ المفعول.
  is present in one or many Active BOMs,موجود في BOMs واحد أو العديد من بالموقع
  not active or does not exists in the system,غير نشطة أو لا موجود في نظام
+ not submitted,لم تقدم
  or the BOM is cancelled or inactive,أو يتم إلغاء BOM أو غير نشطة
  should be 'Yes'. As Item: ,يجب أن يكون &quot;نعم&quot;. كما السلعة:
  should be same as that in ,يجب أن تكون نفسها التي في
  was on leave on ,كان في إجازة في
+ will be ,وسوف يكون
  will be over-billed against mentioned ,وسوف يكون أكثر المنقار ضد المذكورة
  will become ,سوف تصبح
 """Company History""",&quot;نبذة عن تاريخ الشركة&quot;
@@ -56,6 +64,7 @@
 15px,15px
 16px,16px
 2 days ago,2 منذ أيام
+: Duplicate row from same ,: تكرار صف من نفسه
 : It is linked to other active BOM(s),: انها مرتبطة بالموقع BOM الأخرى (ق)
 : Mandatory for a Recurring Invoice.,: إلزامية لفاتورة متكرر.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">لإدارة مجموعات العملاء، انقر هنا</a>"
@@ -102,6 +111,7 @@
 Account Id,رقم الحساب
 Account Name,اسم الحساب
 Account Type,نوع الحساب
+Account for this ,حساب لهذا
 Accounting,المحاسبة
 Accounting Year.,السنة المحاسبية.
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.",قيد محاسبي المجمدة تصل إلى هذا التاريخ، لا أحد يمكن أن تفعل / تعديل إدخال باستثناء دور المحددة أدناه.
@@ -114,6 +124,7 @@
 Action,عمل
 Active,نشط
 Active: Will extract emails from ,نشط: سيتم استخراج رسائل البريد الإلكتروني من
+Activity,نشاط
 Activity Log,سجل النشاط
 Activity Type,النشاط نوع
 Actual,فعلي
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),إضافة لافتة إلى الموقع. (لافتات صغيرة عادة ما تكون جيدة)
 Add attachment,إضافة المرفقات
 Add code as &lt;script&gt;,إضافة التعليمات البرمجية كما &lt;script&gt;
-Add custom code to forms,إضافة التعليمات البرمجية المخصصة لأشكال
-Add fields to forms,إضافة حقول إلى أشكال
-Add headers for standard print formats,إضافة رؤوس الطباعة لتنسيقات القياسية
 Add new row,إضافة صف جديد
 Add or Deduct,إضافة أو خصم
 Add rows to set annual budgets on Accounts.,إضافة صفوف لوضع الميزانيات السنوية على الحسابات.
@@ -158,7 +166,6 @@
 Add to To Do,إضافة إلى المهام
 Add to To Do List of,إضافة إلى قائمة المهام من
 Add/Remove Recipients,إضافة / إزالة المستلمين
-"Add/remove users, set roles, passwords etc",إضافة / إلغاء الأعضاء والأدوار مجموعة، وكلمات السر وغيرها
 Additional Info,معلومات إضافية
 Address,عنوان
 Address & Contact,معالجة والاتصال
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,معالجة ليتم عرضها في صفحة الاتصال
 Adds a custom field to a DocType,يضيف حقل مخصص لDOCTYPE
 Adds a custom script (client or server) to a DocType,يضيف برنامج نصي مخصص (العميل أو الملقم) إلى DOCTYPE
-Administration,إدارة
 Advance Amount,المبلغ مقدما
 Advance amount,مقدما مبلغ
 Advanced Scripting,برمجة متقدمة
@@ -238,6 +244,7 @@
 Allow Users,السماح للمستخدمين
 Allow on Submit,السماح على تقديم
 Allow the following users to approve Leave Applications for block days.,تسمح للمستخدمين التالية للموافقة على طلبات الحصول على إجازة أيام بلوك.
+Allow user to edit Price List Rate in transactions,تسمح للمستخدم لتحرير الأسعار قائمة قيم في المعاملات
 Allow user to login only after this hour (0-24),تسمح للمستخدم لتسجيل الدخول فقط بعد هذه الساعة (0-24)
 Allow user to login only before this hour (0-24),تسمح للمستخدم لتسجيل الدخول فقط قبل هذه الساعة (0-24)
 Allowance Percent,بدل النسبة
@@ -252,8 +259,6 @@
 Amount >=,المبلغ =&gt;
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","ملف رمز التمديد مع منظمة البن الدولية. يجب أن تكون 16 × 16 بكسل. تم إنشاؤها باستخدام مولد فافيكون. [ <a href=""http://favicon-generator.org/"" target=""_blank"">فافيكون-generator.org</a> ]"
 Analytics,تحليلات
-Annual Cost To Company,التكلفة السنوية للشركة
-Annual Cost To Company can not be less than 12 months of Total Earning,التكلفة السنوية للشركة لا يمكن أن يكون أقل من 12 شهرا من إجمالي الدخل
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,هيكل راتب آخر &#39;٪ s&#39; غير النشطة للموظف &#39;٪ S&#39;. يرجى التأكد مكانتها &quot;غير نشطة&quot; والمضي قدما.
 "Any other comments, noteworthy effort that should go in the records.",أي تعليقات أخرى، تجدر الإشارة إلى أن الجهد يجب ان تذهب في السجلات.
 Applicable Holiday List,ينطبق عطلة قائمة
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,تطبيق / الموافقة على أوراق
 Apply Shipping Rule,تنطبق الشحن القاعدة
 Apply Taxes and Charges Master,تطبيق الضرائب والرسوم ماجستير
-Apply latest updates and patches to this app,تطبيق آخر التحديثات وتصحيحات لهذا التطبيق
 Appraisal,تقييم
 Appraisal Goal,تقييم الهدف
 Appraisal Goals,تقييم الأهداف
@@ -300,7 +304,6 @@
 Attached To DocType,تعلق على DOCTYPE
 Attached To Name,تعلق على اسم
 Attachment,التعلق
-Attachment removed. You may need to update: ,تم حذف المرفق. قد تحتاج إلى تحديث:
 Attachments,المرفقات
 Attempted to Contact,حاولت الاتصال
 Attendance,الحضور
@@ -422,7 +425,6 @@
 Brand Name,العلامة التجارية اسم
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px",العلامة التجارية هو ما يظهر على أعلى يمين شريط الأدوات. إذا كان صورة، وجعل متأكد ithas خلفية شفافة واستخدام &lt;img /&gt; العلامة. الحفاظ على حجم و200px 30px X
 Brand master.,العلامة التجارية الرئيسية.
-Branding and Printing,العلامات التجارية والطباعة
 Brands,العلامات التجارية
 Breakdown,انهيار
 Budget,ميزانية
@@ -440,6 +442,7 @@
 Build Sitemap,بناء خريطة الموقع
 Bulk Email,الجزء الأكبر البريد الإلكتروني
 Bulk Email records.,الجزء الأكبر البريد الإلكتروني السجلات.
+Bummer! There are more holidays than working days this month.,المشكله! هناك المزيد من الإجازات أيام عمل من هذا الشهر.
 Bundle items at time of sale.,حزمة البنود في وقت البيع.
 Button,زر
 Buyer of Goods and Services.,المشتري للسلع والخدمات.
@@ -490,7 +493,6 @@
 Center,مركز
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.",يجب أن لا يتم تغيير بعض الوثائق النهائية مرة واحدة، مثل الفاتورة على سبيل المثال. ويسمى <b>قدمت</b> الدولة النهائية لهذه الوثائق. يمكنك تقييد الأدوار التي يمكن أن تقدم.
 Change UOM for an Item.,تغيير UOM للعنصر.
-"Change entry properties (hide fields, make mandatory etc)",تغيير خصائص دخول (حقول إخفاء، وجعل الخ إلزامي)
 Change the starting / current sequence number of an existing series.,تغيير رقم تسلسل بدء / الحالي من سلسلة الموجودة.
 Channel Partner,قناة الشريك
 Charge,تهمة
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,التحقق من ذلك إذا كنت تريد لإجبار المستخدم لتحديد سلسلة قبل الحفظ. لن يكون هناك الافتراضي إذا قمت بتحديد هذا.
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,الاختيار هذا إذا كنت تريد أن ترسل رسائل البريد الإلكتروني في هذا المعرف فقط (في حالة تقييد من قبل مزود البريد الإلكتروني الخاص بك).
 Check this if you want to show in website,التحقق من ذلك إذا كنت تريد أن تظهر في الموقع
+Check this to disallow fractions. (for Nos),الاختيار هذه لكسور عدم السماح بها. (لNOS)
 Check this to make this the default letter head in all prints,التحقق من ذلك لجعل هذه الرسالة الافتراضية الرأس في جميع الطبعات
 Check this to pull emails from your mailbox,التحقق من ذلك لسحب رسائل البريد الإلكتروني من صندوق البريد
 Check to activate,تحقق لتفعيل
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,أرقام تسجيل الشركة للرجوع اليها. أرقام التسجيل ضريبة القيمة المضافة وغير ذلك: المثال
 Company registration numbers for your reference. Tax numbers etc.,أرقام تسجيل الشركة للرجوع اليها. أرقام الضرائب الخ.
 Complaint,شكوى
+Complete,كامل
 Complete By,الكامل من جانب
 Completed,الانتهاء
 Completed Qty,الكمية الانتهاء
@@ -626,12 +630,12 @@
 Cost Center Name,اسم مركز تكلفة
 Cost Center is mandatory for item: ,مركز تكلفة إلزامي للبند:
 Cost Center must be specified for PL Account: ,يجب تحديد مركز التكلفة لحساب PL:
-Cost to Company,تكلفة الشركة
 Costing,تكلف
 Country,بلد
 Country Name,الاسم الدولة
 Create,خلق
 Create Bank Voucher for the total salary paid for the above selected criteria,إنشاء بنك للقسيمة الراتب الإجمالي المدفوع للاختيار المعايير المذكورة أعلاه
+Create Material Requests,إنشاء طلبات المواد
 Create Production Orders,إنشاء أوامر الإنتاج
 Create Receiver List,إنشاء قائمة استقبال
 Create Salary Slip,إنشاء زلة الراتب
@@ -680,6 +684,7 @@
 Custom Startup Code,بدء التشغيل التعليمات البرمجية المخصصة
 Custom?,العرف؟
 Customer,زبون
+Customer (Receivable) Account,حساب العميل (ذمم مدينة)
 Customer / Item Name,العميل / البند الاسم
 Customer Account,حساب العميل
 Customer Account Head,رئيس حساب العملاء
@@ -688,6 +693,8 @@
 Customer Code,قانون العملاء
 Customer Codes,رموز العملاء
 Customer Details,تفاصيل العملاء
+Customer Discount,خصم العملاء
+Customer Discounts,خصومات العملاء
 Customer Feedback,ملاحظات العملاء
 Customer Group,مجموعة العملاء
 Customer Group Name,العملاء اسم المجموعة
@@ -717,11 +724,10 @@
 DN,DN
 DN Detail,DN التفاصيل
 Daily,يوميا
+Daily Event Digest is sent for Calendar Events where reminders are set.,يتم إرسالها حدث الموجز اليومي على أحداث التقويم حيث يتم تعيين التذكير.
 Daily Time Log Summary,الوقت الملخص اليومي دخول
-"Daily, weekly, monthly email Digests",يومية وأسبوعية وشهرية ملخصات البريد الإلكتروني
 Danger,خطر
 Data,معطيات
-Data Import,استيراد البيانات
 Data missing in table,البيانات الناقصة في الجدول
 Database,قاعدة البيانات
 Database Folder ID,ID مجلد قاعدة البيانات
@@ -777,6 +783,7 @@
 Default Settings,الإعدادات الافتراضية
 Default Source Warehouse,المصدر الافتراضي مستودع
 Default Stock UOM,افتراضي ألبوم UOM
+Default Supplier,مزود الافتراضي
 Default Supplier Type,الافتراضي مزود نوع
 Default Target Warehouse,الهدف الافتراضي مستودع
 Default Territory,الافتراضي الإقليم
@@ -795,6 +802,7 @@
 Delete,حذف
 Delete Row,حذف صف
 Delivered,تسليم
+Delivered Items To Be Billed,وحدات تسليمها الى أن توصف
 Delivered Qty,تسليم الكمية
 Delivery Address,التسليم العنوان
 Delivery Date,تاريخ التسليم
@@ -813,7 +821,6 @@
 Delivery Time,التسليم في الوقت المحدد
 Delivery To,التسليم إلى
 Department,قسم
-Depend on LWP,تعتمد على LWP
 Depends On,يعتمد على
 Depends on LWP,يعتمد على LWP
 Descending,تنازلي
@@ -864,6 +871,7 @@
 DocType or Field,DOCTYPE أو حقل
 Document,وثيقة
 Document Description,وصف الوثيقة
+Document Numbering Series,وثيقة ترقيم السلسلة
 Document Status transition from ,وثيقة الانتقال من الحالة
 Document Type,نوع الوثيقة
 Document is only editable by users of role,الوثيقة للتحرير فقط من قبل المستخدمين من دور
@@ -934,7 +942,7 @@
 Employee Leave Balance,الموظف اترك الرصيد
 Employee Name,اسم الموظف
 Employee Number,عدد الموظفين
-Employee Records to be created by ,سجلات الموظفين المراد إنشاؤها من قبل
+Employee Records to be created by,سجلات الموظفين المراد إنشاؤها من قبل
 Employee Setup,موظف الإعداد
 Employee Type,نوع الموظف
 Employee grades,الموظف الدرجات
@@ -944,7 +952,6 @@
 Employees Email Id,موظف البريد الإلكتروني معرف
 Employment Details,تفاصيل العمل
 Employment Type,مجال العمل
-Enable / disable currencies.,تمكين / تعطيل العملات.
 Enable Auto Inventory Accounting,تمكين المحاسبة الجرد السيارات
 Enable Shopping Cart,تمكين سلة التسوق
 Enabled,تمكين
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,تم تعديل الوثيقة بعد أن كنت قد فتحه: خطأ
 Estimated Material Cost,تقدر تكلفة المواد
 Event,حدث
+Event End must be after Start,يجب أن يكون نهاية الحدث بعد بدء
 Event Individuals,الحدث الأفراد
 Event Role,الحدث الدور
 Event Roles,الحدث الأدوار
 Event Type,نوع الحدث
 Event User,حدث المستخدم
+Events In Today's Calendar,الأحداث في التقويم اليوم
+Every Day,كل يوم
+Every Month,كل شهر
+Every Week,كل أسبوع
+Every Year,كل سنة
 Everyone can read,يمكن أن يقرأها الجميع
 Example:,على سبيل المثال:
 Exchange Rate,سعر الصرف
@@ -1019,8 +1032,6 @@
 Exports,صادرات
 External,خارجي
 Extract Emails,استخراج رسائل البريد الإلكتروني
-Extract Job Applicant from jobs email id e.g. jobs@example.com,استخراج طالب العمل من وظائف البريد الإلكتروني على سبيل المثال رقم jobs@example.com
-Extract Leads from sales email id e.g. sales@example.com,استخراج يؤدي من البريد الإلكتروني مثل رقم المبيعات sales@example.com
 FCFS Rate,FCFS قيم
 FIFO,FIFO
 Facebook Share,الفيسبوك شارك
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box",وسيتم إدراج حقول مفصولة بفواصل (،) في <br /> <b>البحث حسب</b> قائمة مربع الحوار بحث
 File,ملف
 File Data,ملف البيانات
-File Manager,إدارة الملفات
 File Name,اسم الملف
 File Size,حجم الملف
 File URL,ملف URL
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,تأكيد تاريخ النهائية
 Financial Analytics,تحليلات مالية
 Financial Statements,القوائم المالية
-Financial Years for books of accounts,المالية للسنوات دفاتر الحسابات
 First Name,الاسم الأول
 First Responded On,أجاب أولا على
 Fiscal Year,السنة المالية
@@ -1090,6 +1099,7 @@
 For Sales Invoice,لفاتورة المبيعات
 For Server Side Print Formats,لتنسيقات طباعة جانب الملقم
 For Territory,من أجل الأرض
+For UOM,لUOM
 For Warehouse,لمستودع
 "For comparative filters, start with",للمرشحات النسبية، وتبدأ مع
 "For e.g. 2012, 2012-13",ل، 2012 على سبيل المثال 2012-13
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,تجميد مقالات المالية
 Friday,الجمعة
 From,من
+From Bill of Materials,من مشروع قانون للمواد
 From Company,من شركة
 From Currency,من العملات
 From Currency and To Currency cannot be same,من العملة لعملة ولا يمكن أن يكون نفس
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,يجب أن تكون من تاريخ إلى تاريخ قبل
 From Delivery Note,من التسليم ملاحظة
 From Employee,من موظف
+From Lead,من الرصاص
 From PR Date,من تاريخ PR
 From Package No.,من رقم حزمة
 From Purchase Order,من أمر الشراء
@@ -1150,8 +1162,8 @@
 Get Current Stock,الحصول على المخزون الحالي
 Get From ,عليه من
 Get Items,الحصول على العناصر
+Get Items From Sales Orders,الحصول على سلع من أوامر المبيعات
 Get Last Purchase Rate,الحصول على آخر سعر شراء
-Get Latest Updates,الحصول على آخر التحديثات
 Get Non Reconciled Entries,الحصول على مقالات غير التوفيق
 Get Outstanding Invoices,الحصول على الفواتير المستحقة
 Get Purchase Receipt,الحصول على إيصال الشراء
@@ -1161,7 +1173,6 @@
 Get Template,الحصول على قالب
 Get Terms and Conditions,الحصول على الشروط والأحكام
 Get Weekly Off Dates,الحصول على مواعيد معطلة أسبوعي
-Get a list of errors encountered by the Scheduler,الحصول على قائمة من الأخطاء حسب جدولة واجه
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.",يذكر الحصول على معدل التقييم والمخزون المتوفر في المصدر / الهدف مستودع تاريخ عرضها على الوقت. إذا تسلسل البند، يرجى الضغط على هذا الزر بعد دخول NOS المسلسل.
 Give additional details about the indent.,إعطاء تفاصيل إضافية حول المسافة البادئة.
 Global Defaults,افتراضيات العالمية
@@ -1193,9 +1204,9 @@
 Group or Ledger,مجموعة أو ليدجر
 Groups,مجموعات
 HR,HR
+HR Settings,إعدادات HR
 HTML,HTML
 HTML / Banner that will show on the top of product list.,HTML / بانر التي سوف تظهر في الجزء العلوي من قائمة المنتجات.
-"HTML print formats for quotes, invoices etc",تنسيقات HTML للطباعة الفواتير الخ الاسعار،
 Half Day,نصف يوم
 Half Yearly,نصف سنوي
 Half-yearly,نصف سنوية
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children",هنا يمكنك الحفاظ على تفاصيل مثل اسم العائلة واحتلال الزوج، الوالدين والأطفال
 "Here you can maintain height, weight, allergies, medical concerns etc",هنا يمكنك الحفاظ على الطول والوزن، والحساسية، الخ المخاوف الطبية
 Hey there! You need to put at least one item in \				the item table.,يا هناك! تحتاج إلى وضع بند واحد على الأقل في الجدول العنصر \.
+Hey! All these items have already been invoiced.,مهلا! وقد تم بالفعل فواتير كل هذه العناصر.
 Hey! There should remain at least one System Manager,مهلا! هناك ينبغي أن تظل إدارة نظام واحد على الأقل
 Hidden,مخفي
 Hide Actions,إخفاء عمليات
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults",كيف ينبغي أن يتم تنسيق هذه العملة؟ إذا لم يتم تعيين و، استخدم افتراضيات النظام
 How to upload,كيفية تحميل
 Hrvatski,هرفاتسكي
+Human Resources,الموارد البشرية
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,يا هلا! اليوم (ق) التي كنت متقدما للحصول على إذن \ تتزامن مع عطلة (ق). لا تحتاج إلى تطبيق للحصول على إذن.
 I,أنا
 ID (name) of the entity whose property is to be set,ID (اسم) للكيان الذي هو الملكية التي سيتم تحديدها
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,إذا تجاوز الميزانية السنوية
 "If a User does not have access at Level 0, then higher levels are meaningless",وإذا كان المستخدم لا يملك الوصول على المستوى 0، ثم لا معنى لها مستويات أعلى
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.",إذا كانت محددة، سينظر BOM لبنود فرعية الجمعية للحصول على المواد الخام. خلاف ذلك، سيتم معاملة جميع البنود الفرعية الجمعية كمادة خام.
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day",إذا تم، المشاركات لا. من أيام عمل وسوف تشمل أيام العطل، وهذا سوف يقلل من قيمة الراتب لكل يوم
 "If checked, all other workflows become inactive.",إذا تم، جميع مهام سير العمل الأخرى تصبح خاملة.
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.",إذا تم، ستضاف رسالة بالبريد الالكتروني مع تنسيق HTML المرفقة لجزء من الجسم البريد الإلكتروني، فضلا المرفق. لإرسال كمرفق فقط، قم بإلغاء تحديد هذا.
 "If checked, the Home page will be the default Item Group for the website.",إذا تم، سيكون في الصفحة الرئيسية يجب أن يكون فريق المدينة الافتراضية للموقع.
@@ -1305,7 +1319,6 @@
 Import,استيراد
 Import Attendance,الحضور الاستيراد
 Import Log,استيراد دخول
-Import data from spreadsheet (csv) files,استيراد البيانات من ملفات (CSV) جدول
 Important dates and commitments in your project life cycle,المهم التواريخ والالتزامات في دورة حياة المشروع الخاص بك
 Imports,واردات
 In Dialog,في مربع حوار
@@ -1314,6 +1327,7 @@
 In List View,في عرض القائمة
 In Process,في عملية
 In Report Filter,في تصفية التقرير
+In Row,في الصف
 In Store,في المتجر
 In Words,في كلمات
 In Words (Company Currency),في كلمات (عملة الشركة)
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.",في إدارة إذن، انقر على زر في عمود &quot;الحالة&quot; لدور تريد تقييد.
 Incentives,الحوافز
 Incharge Name,Incharge اسم
+Include holidays in Total no. of Working Days,تشمل أيام العطل في المجموع لا. أيام العمل
 Income / Expense,الدخل / المصاريف
 Income Account,دخل الحساب
 Income Booked,حجز الدخل
@@ -1347,6 +1362,7 @@
 Industry Type,صناعة نوع
 Info,معلومات
 Insert After,إدراج بعد
+Insert Below,إدراج بالأسفل
 Insert Code,إدراج رمز
 Insert Row,إدراج صف
 Insert Style,إدراج شكل
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,غير صالح للمنازل ملاحظة. تسليم ملاحظة يجب أن تكون موجودة ويجب أن يكون في مشروع الدولة. يرجى تصحيح وحاول مرة أخرى.
 Invalid Email,البريد الإلكتروني غير صحيح
 Invalid Email Address,عنوان البريد الإلكتروني غير صالح
+Invalid Item or Warehouse Data,صنف غير صحيح أو مستودع البيانات
 Invalid Leave Approver,صالح ترك الموافق
 Inventory,جرد
 Inverse,معكوس
@@ -1511,7 +1528,6 @@
 Lead Lost,يؤدي فقدان
 Lead Name,يؤدي اسم
 Lead Owner,يؤدي المالك
-Lead Ref,يؤدي المرجع
 Lead Source,تؤدي المصدر
 Lead Status,تؤدي الحالة
 Lead Time Date,تؤدي تاريخ الوقت
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,ترك فارغا إذا نظرت لجميع التسميات
 Leave blank if considered for all employee types,ترك فارغا إذا نظرت لجميع أنواع موظف
 Leave blank if considered for all grades,اتركه فارغا إذا نظرت لجميع الصفوف
+Leave blank if you have not decided the end date.,اتركه فارغا إذا لم تكن قد قررت نهاية التاريخ.
 Leave by,ترك من قبل
 "Leave can be approved by users with Role, ""Leave Approver""",يمكن الموافقة على الإجازة من قبل المستخدمين مع الدور &quot;اترك الموافق&quot;
 Ledger,دفتر الحسابات
@@ -1553,7 +1570,6 @@
 Letter Head,رسالة رئيس
 Letter Head Image,رسالة رئيس الصور
 Letter Head Name,رسالة رئيس الاسم
-Letter heads for print,رسالة رؤساء للطباعة
 Level,مستوى
 "Level 0 is for document level permissions, higher levels for field level permissions.",0 هو مستوى الأذونات لمستوى الوثيقة، مستويات أعلى للحصول على أذونات المستوى الميداني.
 Lft,LFT
@@ -1563,13 +1579,11 @@
 Linked With,ترتبط
 List,قائمة
 List items that form the package.,عناصر القائمة التي تشكل الحزمة.
-List of companies (not customers / suppliers),قائمة الشركات (وليس العملاء / الموردين)
 List of holidays.,لائحة أيام.
 List of patches executed,قائمة من بقع تنفيذها
 List of records in which this document is linked,قائمة السجلات التي ترتبط هذه الوثيقة
 List of users who can edit a particular Note,قائمة المستخدمين الذين يمكن تعديل معين ملاحظة
 List this Item in multiple groups on the website.,قائمة هذا البند في مجموعات متعددة على شبكة الانترنت.
-"List, delete uploaded files.",القائمة، حذف الملفات التي تم تحميلها.
 Live Chat,حجزي
 Load Print View on opening of an existing form,تحميل نسخة للطباعة على افتتاح نموذج موجود
 Loading,تحميل
@@ -1596,6 +1610,7 @@
 Mail Server,خادم البريد
 Main Reports,الرئيسية تقارير
 Main Section,القسم العام
+Maintain Same Rate Throughout Sales Cycle,الحفاظ على نفس المعدل خلال دورة المبيعات
 Maintain same rate throughout purchase cycle,الحفاظ على نفس معدل طوال دورة الشراء
 Maintenance,صيانة
 Maintenance Date,تاريخ الصيانة
@@ -1616,7 +1631,6 @@
 Make a new,جعل جديدة
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,تأكد من أن المعاملات التي تريد تقييد يكون &#39;إقليم&#39; حقل الارتباط التي تعين على الماجستير الأرض &#39;.
 Male,ذكر
-Manage Numbering Series,إدارة ترقيم السلسلة
 Manage cost of operations,إدارة تكلفة العمليات
 Manage exchange rates for currency conversion,إدارة سعر صرف العملة لتحويل العملات
 Mandatory,إلزامي
@@ -1651,10 +1665,10 @@
 Material Request No,طلب مواد لا
 Material Request Type,طلب نوع المواد
 Material Request used to make this Stock Entry,طلب المواد المستخدمة لجعل هذا المقال الاوراق المالية
+Material Requirement,متطلبات المواد
 Material Transfer,لنقل المواد
 Materials,المواد
 Materials Required (Exploded),المواد المطلوبة (انفجرت)
-Materials Requirement Planning (MRP),مواد متطلبات التخطيط (MRP)
 Max 500 rows only.,ماكس 500 الصفوف فقط.
 Max Attachments,المرفقات ماكس
 Max Days Leave Allowed,اترك أيام كحد أقصى مسموح
@@ -1699,6 +1713,7 @@
 Month,شهر
 Monthly,شهريا
 Monthly Attendance Sheet,ورقة الحضور الشهرية
+Monthly Earning & Deduction,الدخل الشهري وخصم
 Monthly Salary Register,سجل الراتب الشهري
 Monthly salary statement.,بيان الراتب الشهري.
 Monthly salary template.,الراتب الشهري القالب.
@@ -1711,7 +1726,9 @@
 Mr,السيد
 Ms,MS
 Multiple Item Prices,الأسعار الإغلاق متعددة
+Multiple root nodes not allowed.,العقد الجذرية متعددة غير مسموح به.
 Mupltiple Item prices.,أسعار الإغلاق Mupltiple.
+Must be Whole Number,يجب أن يكون عدد صحيح
 Must have report permission to access this report.,يجب أن يكون لديك إذن للوصول إلى تقرير هذا التقرير.
 Must specify a Query to run,يجب تحديد استعلام لتشغيل
 My Settings,الإعدادات
@@ -1737,7 +1754,6 @@
 Net Weight,الوزن الصافي
 Net Weight UOM,الوزن الصافي UOM
 Net Weight of each Item,الوزن الصافي لكل بند
-Net pay can not be greater than 1/12th of Annual Cost To Company,صافي الأجر لا يمكن أن تكون أكبر من 1/12th من التكلفة السنوية للشركة
 Net pay can not be negative,صافي الأجر لا يمكن أن تكون سلبية
 Never,أبدا
 New,جديد
@@ -1795,6 +1811,7 @@
 No of Sent SMS,لا للSMS المرسلة
 No of Visits,لا الزيارات
 No one,لا احد
+No permission to write / remove.,لا توجد صلاحية لكتابة / إزالة.
 No record found,العثور على أي سجل
 No records tagged.,لا توجد سجلات المعلمة.
 No salary slip found for month: ,لا زلة راتب شهر تم العثور عليها ل:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,أمرت عناصر ليتم تسليمها
 Ordered Quantity,أمرت الكمية
 Orders released for production.,أوامر الإفراج عن الإنتاج.
-Organization,منظمة
 Organization Profile,الملف الشخصي المنظمة
 Original Message,رسالة الأصلي
 Other,آخر
 Other Details,تفاصيل أخرى
 Out,خارج
-Out going mail server and support ticket mailbox,ذهاب خادم البريد والدعم علبة التذاكر
 Out of AMC,من AMC
 Out of Warranty,لا تغطيه الضمان
 Outgoing,المنتهية ولايته
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),POP3 خادم البريد (على سبيل المثال pop.gmail.com)
 POP3 server e.g. (pop.gmail.com),خادم POP3 مثل (pop.gmail.com)
 POS Setting,POS إعداد
+POS View,POS مشاهدة
 PR Detail,PR التفاصيل
 PRO,PRO
 PS,PS
@@ -1951,10 +1967,10 @@
 Participants,المشاركين
 Partly Billed,وصفت جزئيا
 Partly Delivered,هذه جزئيا
-Partner,شريك
 Partner Target Detail,شريك الهدف التفاصيل
 Partner Type,نوع الشريك
 Partner's Website,موقع الشريك
+Passive,سلبي
 Passport Number,رقم جواز السفر
 Password,كلمة السر
 Password Expires in (days),انتهاء صلاحية كلمة المرور في (الأيام)
@@ -1964,12 +1980,12 @@
 Payables,الذمم الدائنة
 Payables Group,دائنو مجموعة
 Payment Collection With Ageing,كوكتيل الدفع مع شيخوخة
+Payment Days,يوم الدفع
 Payment Entries,مقالات الدفع
 Payment Entry has been modified after you pulled it. 			Please pull it again.,تم تعديل الدخول الدفع بعد سحبها. يرجى تسحبه مرة أخرى.
 Payment Made With Ageing,دفع يجعل مع شيخوخة
 Payment Reconciliation,دفع المصالحة
 Payment Terms,شروط الدفع
-Payment days,الدفع أيام
 Payment to Invoice Matching Tool,دفع الفاتورة إلى أداة مطابقة
 Payment to Invoice Matching Tool Detail,دفع الفاتورة لتفاصيل أداة مطابقة
 Payments,المدفوعات
@@ -1984,6 +2000,7 @@
 Percent,في المئة
 Percent Complete,كاملة في المئة
 Percentage Allocation,نسبة توزيع
+Percentage Allocation should be equal to ,يجب أن تكون نسبة التوزيع المتساوي لل
 Percentage variation in quantity to be allowed while receiving or delivering this item.,السماح الاختلاف في نسبة الكمية في حين تلقي أو تقديم هذا البند.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,النسبة المئوية يسمح لك لتلقي أو تقديم المزيد من ضد الكمية المطلوبة. على سبيل المثال: إذا كنت قد أمرت 100 وحدة. و10٪ ثم يسمح بدل الخاص بك لتلقي 110 وحدة.
 Performance appraisal.,تقييم الأداء.
@@ -2026,19 +2043,24 @@
 Please check,يرجى مراجعة
 Please enter Default Unit of Measure,الرجاء إدخال حدة القياس الافتراضية
 Please enter Delivery Note No or Sales Invoice No to proceed,الرجاء إدخال التسليم ملاحظة لا أو فاتورة المبيعات لا للمضي قدما
+Please enter Employee Number,الرجاء إدخال رقم الموظف
 Please enter Expense Account,الرجاء إدخال حساب المصاريف
 Please enter Expense/Adjustment Account,الرجاء إدخال حساب المصاريف / تعديل
 Please enter Purchase Receipt No to proceed,الرجاء إدخال شراء الإيصال لا على المضي قدما
+Please enter Reserved Warehouse for item ,الرجاء إدخال مستودع محفوظة لبند
 Please enter valid,الرجاء إدخال صالح
 Please enter valid ,الرجاء إدخال صالح
 Please install dropbox python module,الرجاء تثبيت قطاف بيثون وحدة
 Please make sure that there are no empty columns in the file.,يرجى التأكد من أنه لا توجد أعمدة فارغة في الملف.
 Please mention default value for ',يرجى ذكر القيمة الافتراضية ل&#39;
+Please reduce qty.,يرجى تقليل الكمية.
 Please refresh to get the latest document.,يرجى تحديث للحصول على أحدث وثيقة.
 Please save the Newsletter before sending.,يرجى حفظ النشرة قبل الإرسال.
 Please select Bank Account,الرجاء اختيار حساب البنك
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,الرجاء تحديد مضي قدما إذا كنت تريد أيضا لتشمل التوازن العام المالي السابق يترك لهذه السنة المالية
 Please select Date on which you want to run the report,يرجى تحديد التاريخ الذي تريد تشغيل التقرير
+Please select Naming Neries,الرجاء اختيار تسمية Neries
+Please select Price List,الرجاء اختيار قائمة الأسعار
 Please select Time Logs.,الرجاء اختيار التوقيت السجلات.
 Please select a,الرجاء تحديد
 Please select a csv file,يرجى تحديد ملف CSV
@@ -2051,10 +2073,12 @@
 Please select: ,يرجى تحديد:
 Please set Dropbox access keys in,الرجاء تعيين مفاتيح الوصول دروببوإكس في
 Please set Google Drive access keys in,يرجى تعيين مفاتيح الوصول إلى محرك جوجل في
+Please setup Employee Naming System in Human Resource > HR Settings,يرجى الموظف الإعداد نظام التسمية في الموارد البشرية&gt; إعدادات HR
 Please specify,يرجى تحديد
 Please specify Company,يرجى تحديد شركة
 Please specify Company to proceed,يرجى تحديد الشركة للمضي قدما
 Please specify Default Currency in Company Master \			and Global Defaults,يرجى تحديد العملة الافتراضية في ماجستير شركة \ وافتراضيات العالمية
+Please specify a,الرجاء تحديد
 Please specify a Price List which is valid for Territory,الرجاء تحديد قائمة الأسعار التي هي صالحة للأراضي
 Please specify a valid,يرجى تحديد صالحة
 Please specify a valid 'From Case No.',الرجاء تحديد صالح &#39;من القضية رقم&#39;
@@ -2070,7 +2094,7 @@
 Posts,المشاركات
 Potential Sales Deal,صفقة محتملة المبيعات
 Potential opportunities for selling.,فرص محتملة للبيع.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.",الدقة للحقول تعويم (كميات، والخصومات الخ النسب المئوية،) فقط للعرض. سوف لا يزال يطفو أن تحسب ما يصل إلى 6 عشرية.
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3",الدقة للحقول تعويم (الكميات، الخصومات، والنسب المئوية وغيرها). سوف يتم تقريب يطفو تصل إلى الكسور العشرية المحدد. الافتراضي = 3
 Preferred Billing Address,يفضل عنوان الفواتير
 Preferred Shipping Address,النقل البحري المفضل العنوان
 Prefix,بادئة
@@ -2081,7 +2105,6 @@
 Previous Work Experience,خبرة العمل السابقة
 Price,السعر
 Price List,قائمة الأسعار
-Price List Country,قائمة الأسعار البلد
 Price List Currency,قائمة الأسعار العملات
 Price List Currency Conversion Rate,سعر تحويل عملة قائمة قيم
 Price List Exchange Rate,معدل سعر صرف قائمة
@@ -2089,6 +2112,7 @@
 Price List Name,قائمة الأسعار اسم
 Price List Rate,قائمة الأسعار قيم
 Price List Rate (Company Currency),قائمة الأسعار معدل (عملة الشركة)
+Price List for Costing,قائمة الأسعار لحساب التكاليف
 Price Lists and Rates,قوائم الأسعار وزيادة معدلات
 Primary,أساسي
 Print Format,طباعة شكل
@@ -2107,6 +2131,7 @@
 Produced Quantity,أنتجت الكمية
 Product Enquiry,المنتج استفسار
 Production Order,الإنتاج ترتيب
+Production Orders,أوامر الإنتاج
 Production Plan Item,خطة إنتاج السلعة
 Production Plan Items,عناصر الإنتاج خطة
 Production Plan Sales Order,أمر الإنتاج خطة المبيعات
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,مشروع تتبع حركة الأسهم الحكمة
 Projected Qty,الكمية المتوقع
 Projects,مشاريع
-Prompt email sending to customers and suppliers,موجه ارسال البريد الالكتروني للعملاء والموردين
 Prompt for Email on Submission of,المطالبة البريد الالكتروني على تقديم
 Properties,خصائص
 Property,ممتلكات
@@ -2147,7 +2171,6 @@
 Published On,نشرت يوم
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,سحب رسائل البريد الإلكتروني من علبة الوارد وإرفاقها كسجلات الاتصالات (الاتصالات المعروفة لل).
 Pull Payment Entries,سحب مقالات الدفع
-Pull items from Sales Order mentioned in the above table.,سحب العناصر من ترتيب المبيعات المذكورة في الجدول أعلاه.
 Pull sales orders (pending to deliver) based on the above criteria,سحب أوامر البيع (في انتظار لتسليم) بناء على المعايير المذكورة أعلاه
 Purchase,شراء
 Purchase Analytics,شراء تحليلات
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,الكمية المصنعة بالفعل
 Quantity and Rate,كمية وقيم
 Quantity and Warehouse,الكمية والنماذج
+Quantity cannot be a fraction.,الكمية لا يمكن أن يكون الكسر.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,كمية البند تم الحصول عليها بعد تصنيع / إعادة التعبئة من كميات معينة من المواد الخام
 Quantity should be equal to Manufacturing Quantity. ,يجب أن تكون كمية مساوية لتصنيع الكمية.
 Quarter,ربع
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,فقدت اقتباس السبب
 Quotation Message,اقتباس رسالة
 Quotation Sent,اقتباس المرسلة
+Quotation Series,سلسلة الاقتباس
 Quotation To,اقتباس
 Quotation Trend,تريند الاقتباس
 Quotations received from Suppliers.,الاقتباسات الواردة من الموردين.
 Quotes to Leads or Customers.,اقتباسات لعروض أو العملاء.
-Raise Material Request,رفع طلب المواد
 Raise Material Request when stock reaches re-order level,رفع طلب المواد عند الأسهم تصل إلى مستوى إعادة الطلب
-Raise Production Order,رفع أمر الإنتاج
 Raised By,التي أثارها
 Raised By (Email),التي أثارها (بريد إلكتروني)
 Random,عشوائي
@@ -2280,6 +2303,7 @@
 Receivables / Payables,الذمم المدينة / الدائنة
 Receivables Group,مجموعة المستحقات
 Received Date,تاريخ الاستلام
+Received Items To Be Billed,العناصر الواردة إلى أن توصف
 Received Qty,تلقى الكمية
 Received and Accepted,تلقت ومقبول
 Receiver List,استقبال قائمة
@@ -2293,6 +2317,8 @@
 Recurring Id,رقم المتكررة
 Recurring Invoice,فاتورة المتكررة
 Recurring Type,نوع المتكررة
+Reduce Deduction for Leave Without Pay (LWP),تخفيض خصم لإجازة بدون أجر (LWP)
+Reduce Earning for Leave Without Pay (LWP),خفض عائد لإجازة بدون أجر (LWP)
 Ref Code,الرمز المرجعي لل
 Ref Date is Mandatory if Ref Number is specified,المرجع التسجيل إلزامي إذا تم تحديد المرجع رقم
 Ref DocType,المرجع DOCTYPE
@@ -2302,6 +2328,8 @@
 Ref Type,المرجع نوع
 Reference,مرجع
 Reference Date,المرجع تاريخ
+Reference DocName,إشارة DocName
+Reference DocType,إشارة DOCTYPE
 Reference Name,مرجع اسم
 Reference Number,الرقم المرجعي لل
 Reference Type,مرجع نوع
@@ -2322,10 +2350,12 @@
 Remove Bookmark,أضف إزالة
 Rename Log,إعادة تسمية الدخول
 Rename Tool,إعادة تسمية أداة
-Rename multiple items in one go,إعادة تسمية عناصر متعددة في دفعة واحدة
 Rename...,إعادة تسمية ...
 Rented,مؤجر
+Repeat On,كرر على
+Repeat Till,تكرار حتى
 Repeat on Day of Month,تكرار في يوم من شهر
+Repeat this Event,كرر هذا الحدث
 Replace,استبدل
 Replace Item / BOM in all BOMs,استبدال السلعة / BOM في جميع BOMs
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM",استبدال BOM خاصة في جميع BOMs الأخرى التي يستخدم فيها. وانه سيحل محل الرابط BOM القديمة، وتحديث وتجديد التكلفة &quot;البند انفجار BOM&quot; الجدول الجديد وفقا BOM
@@ -2358,13 +2388,14 @@
 Reseller,بائع التجزئة
 Reserved Quantity,الكمية المحجوزة
 Reserved Warehouse,مستودع محفوظة
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,مستودع محجوزة في ترتيب المبيعات / السلع تامة الصنع في معرض النماذج
+Reserved Warehouse is missing in Sales Order,المحجوزة مستودع مفقود في ترتيب المبيعات
 Resignation Letter Date,استقالة تاريخ رسالة
 Resolution,قرار
 Resolution Date,تاريخ القرار
 Resolution Details,قرار تفاصيل
 Resolved By,حلها عن طريق
 Restrict IP,تقييد IP
-Restrict submission rights based on amount,تقييد حقوق على أساس تقديم مبلغ
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),تقييد المستخدم من هذا العنوان IP فقط. يمكن إضافة عناوين IP متعددة عن طريق فصل بفواصل. يقبل أيضا عناوين IP جزئية مثل (111.111.111)
 Restricting By User,تقييد بواسطة المستخدم
 Retail,بيع بالتجزئة
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,هيكل المرتبات خصم
 Salary Structure Earning,هيكل الرواتب كسب
 Salary Structure Earnings,إعلانات الأرباح الراتب هيكل
+Salary breakup based on Earning and Deduction.,تفكك الراتب على أساس الكسب وخصم.
 Salary components.,الراتب المكونات.
 Sales,مبيعات
 Sales Analytics,مبيعات تحليلات
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),مبيعات الشخص المستهدف الفرق (البند المجموعة الحكيم)
 Sales Person Targets,أهداف المبيعات شخص
 Sales Person-wise Transaction Summary,الشخص الحكيم مبيعات ملخص عملية
-Sales Rate,مبيعات قيم
 Sales Register,سجل مبيعات
 Sales Return,مبيعات العودة
 Sales Taxes and Charges,الضرائب على المبيعات والرسوم
@@ -2484,7 +2515,6 @@
 Scheduled,من المقرر
 Scheduled Confirmation Date,من المقرر تأكيد تاريخ
 Scheduled Date,المقرر تاريخ
-Scheduler Error Log,جدولة سجل خطأ
 Scheduler Log,جدولة دخول
 School/University,مدرسة / جامعة
 Score (0-5),نقاط (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,حدد DOCTYPE
 Select Document Type,حدد نوع الوثيقة
 Select Document Type or Role to start.,حدد نوع الوثيقة أو دور للبدء.
+Select Items,حدد العناصر
 Select PR,حدد PR
 Select Print Format,حدد تنسيق طباعة
 Select Print Heading,حدد طباعة العنوان
@@ -2562,8 +2593,8 @@
 Send SMS,إرسال SMS
 Send To,أرسل إلى
 Send To Type,إرسال إلى كتابة
+Send an email reminder in the morning,إرسال رسالة تذكير في الصباح
 Send automatic emails to Contacts on Submitting transactions.,إرسال رسائل البريد الإلكتروني تلقائيا إلى جهات الاتصال على تقديم المعاملات.
-"Send bulk SMS to leads, customers, contacts",إرسال الرسائل القصيرة بالجملة ل، اعلانات اتصالات، والزبائن
 Send mass SMS to your contacts,إرسال SMS الشامل لجهات الاتصال الخاصة بك
 Send regular summary reports via Email.,إرسال تقارير موجزة منتظمة عن طريق البريد الإلكتروني.
 Send to this list,إرسال إلى هذه القائمة
@@ -2580,7 +2611,6 @@
 Serial No Status,المسلسل لا الحالة
 Serial No Warranty Expiry,المسلسل لا عودة انتهاء الاشتراك
 Serialized Item: ',تسلسل المدينة: &quot;
-Series,سلسلة
 Series List for this Transaction,قائمة سلسلة لهذه الصفقة
 Server,خادم
 Service Address,خدمة العنوان
@@ -2590,19 +2620,13 @@
 Session Expiry,الدورة انتهاء الاشتراك
 Session Expiry in Hours e.g. 06:00,انتهاء الاشتراك في الدورة ساعات مثلا 06:00
 Set Banner from Image,تعيين راية من الصورة
-Set From Image,مجموعة من الصور
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,تعيين مجموعة من الحكمة الإغلاق الميزانيات على هذا الإقليم. يمكنك أيضا تضمين الموسمية عن طريق تعيين التوزيع.
 Set Login and Password if authentication is required.,تعيين كلمة المرور وتسجيل الدخول إذا كان مطلوبا المصادقة.
 Set New Password,تعيين كلمة المرور الجديدة
 Set Value,تعيين القيمة
 "Set a new password and ""Save""",تعيين كلمة مرور جديدة و &quot;حفظ&quot;
-Set default values for entry,تعيين القيم الافتراضية للدخول
-Set default values for users (also used for permissions).,تعيين القيم الافتراضية للمستخدمين (تستخدم أيضا للحصول على أذونات).
-Set multiple numbering series for transactions,تعيين متعددة سلسلة ترقيم المعاملات
-Set permissions on transactions / masters,تعيين الأذونات على المعاملات / الماجستير
 Set prefix for numbering series on your transactions,تعيين بادئة لترقيم السلسلة على المعاملات الخاصة بك
 Set targets Item Group-wise for this Sales Person.,تحديد أهداف المجموعة السلعة الحكيم لهذا الشخص المبيعات.
-Set workflow rules.,وضع قواعد سير العمل.
 "Set your background color, font and image (tiled)",قم بضبط لون الخلفية والخط والصورة (البلاط)
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.",قم بضبط إعدادات البريد الصادر SMTP هنا. كل نظام ولدت الإخطارات، وسوف تذهب رسائل البريد الإلكتروني من خادم البريد هذا. إذا لم تكن متأكدا، اترك هذا المربع فارغا لاستخدام خوادم ERPNext (سوف يتم إرسال رسائل البريد الإلكتروني لا يزال من معرف البريد الإلكتروني الخاص بك) أو اتصل بمزود البريد الإلكتروني.
 Setting Account Type helps in selecting this Account in transactions.,تحديد نوع الحساب يساعد في تحديد هذا الحساب في المعاملات.
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,الإعداد لسلة التسوق.
 Setup of fonts and background.,إعداد الخطوط والخلفية.
 "Setup of top navigation bar, footer and logo.",الإعداد من أعلى الملاحة تذييل وبار والشعار.
-Setup outgoing SMS via your bulk SMS provider,إعداد SMS المنتهية ولايته عن طريق الرسائل القصيرة بالجملة بمزود
 Setup to pull emails from support email account,الإعداد لسحب رسائل البريد الإلكتروني من حساب البريد الإلكتروني دعم
 Share,حصة
 Share With,مشاركة مع
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,نبذة عن سيرة حياة لموقع الويب وغيرها من المطبوعات.
 Shortcut,الاختصار
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",تظهر &quot;في سوق الأسهم&quot; أو &quot;ليس في الأوراق المالية&quot; على أساس الأسهم المتاحة في هذا المخزن.
-Show / Hide Modules,إظهار / إخفاء وحدات
 Show Details,عرض التفاصيل
 Show In Website,تظهر في الموقع
 Show Print First,تظهر أولا طباعة
@@ -2658,11 +2680,9 @@
 Show in Website,تظهر في الموقع
 Show rows with zero values,عرض الصفوف مع قيم الصفر
 Show this slideshow at the top of the page,تظهر هذه الشرائح في أعلى الصفحة
-"Show, hide modules",تظهر وتخفي وحدات
 Showing only for,تظهر فقط لل
 Signature,توقيع
 Signature to be appended at the end of every email,توقيع لإلحاقها في نهاية كل البريد الإلكتروني
-Simplify entry forms by disabling features,تبسيط نماذج إدخال عن طريق تعطيل الميزات
 Single,وحيد
 Single Post (article).,مشاركة واحدة (المادة).
 Single unit of an Item.,واحد وحدة من عنصر.
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,وآسف نتمكن من العثور على ما كنت تبحث عنه.
 Sorry you are not permitted to view this page.,عذرا غير مسموح لك بعرض هذه الصفحة.
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,آسف! يمكننا أن نسمح فقط تصل 100 صف من أجل المصالحة سوق الأسهم.
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.",عذرا! لا يمكنك تغيير العملة الافتراضية الشركة، لأن هناك المعاملات الموجودة ضدها. وسوف تحتاج إلى إلغاء تلك الصفقات إذا كنت ترغب في تغيير العملة الافتراضية.
 Sorry. Companies cannot be merged,آسف. لا يمكن دمج الشركات
 Sorry. Serial Nos. cannot be merged,آسف. لا يمكن دمج الأرقام التسلسلية
 Sort By,فرز حسب
@@ -2759,6 +2780,7 @@
 Suggestions,اقتراحات
 Sunday,الأحد
 Supplier,مزود
+Supplier (Payable) Account,المورد حساب (تدفع)
 Supplier (vendor) name as entered in supplier master,المورد (البائع) الاسم كما تم إدخالها في ماجستير المورد
 Supplier Account Head,رئيس حساب المورد
 Supplier Address,العنوان المورد
@@ -2792,7 +2814,6 @@
 Symbol,رمز
 Sync Inbox,مزامنة البريد الوارد
 Sync Support Mails,مزامنة الرسائل الالكترونية الدعم
-Sync backups with remote tools like Dropbox etc.,مزامنة النسخ الاحتياطي مع أدوات البعيد مثل دروببوإكس الخ
 Sync with Dropbox,مزامنة مع Dropbox
 Sync with Google Drive,متزامنا مع محرك جوجل
 System,نظام
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page",&quot;صفحة ويب&quot; هذا هو الصفحة الرئيسية في الموقع
 The BOM which will be replaced,وBOM التي سيتم استبدالها
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",العنصر الذي يمثل الحزمة. يجب أن يكون لدى هذا البند &quot;هو المخزون السلعة&quot; ب &quot;لا&quot; و &quot;هل المبيعات السلعة&quot; ب &quot;نعم&quot;
-The account to which you will pay (have paid) the money to.,الحساب الذي سوف تدفعه (دفعت) المال ل.
 The date at which current entry is made in system.,التاريخ الذي يتم ادخالها في النظام الحالي.
 The date at which current entry will get or has actually executed.,نفذت فعليا التاريخ الذي سوف تحصل المدخل الحالي أو.
 The date on which next invoice will be generated. It is generated on submit.,التاريخ الذي سيتم إنشاء فاتورة المقبل. يتم إنشاء على الحلقة.
@@ -2927,6 +2947,7 @@
 To Currency,إلى العملات
 To Date,حتى الان
 To Discuss,لمناقشة
+To Do,يمكن ممارستها
 To Do List,والقيام قائمة
 To PR Date,لPR تاريخ
 To Package No.,لحزم رقم
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.",لإنشاء تلقائيا تذاكر الدعم الفني من البريد الوارد، قم بضبط إعدادات POP3 هنا. من الناحية المثالية يجب إنشاء معرف البريد الإلكتروني منفصلة لنظام تخطيط موارد المؤسسات بحيث تتم مزامنة جميع رسائل البريد الإلكتروني في النظام من أن معرف البريد. إذا لم تكن متأكدا، يرجى الاتصال موفر خدمة البريد الإلكتروني.
 "To create an Account Head under a different company, select the company and save customer.",لإنشاء حساب تحت رئيس شركة مختلفة، حدد الشركة وانقاذ العملاء.
 To enable <b>Point of Sale</b> features,لتمكين <b>نقطة من</b> الميزات <b>بيع</b>
+To enable more currencies go to Setup > Currency,لتمكين مزيد من العملات انتقل إلى الإعداد&gt; العملات
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.",لجلب العناصر مرة أخرى، انقر على &quot;الحصول على عناصر &#39;زر \ الكمية أو تحديث يدويا.
 "To format columns, give column labels in the query.",لتنسيق الأعمدة، وإعطاء تسميات الأعمدة في الاستعلام.
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.",لفرض مزيد من القيود أذونات استنادا إلى قيم معينة في وثيقة، استخدم &#39;حالة&#39; الإعدادات.
@@ -2953,7 +2975,6 @@
 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.,لتتبع البند في المبيعات وثائق الشراء على أساس غ من المسلسل. ويمكن أيضا استخدام هذه المعلومات لتعقب الضمان للمنتج.
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,لتعقب العناصر في المبيعات وثائق الشراء مع NOS دفعة <br> <b>الصناعة المفضل: الكيمياء الخ</b>
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,لتعقب العناصر باستخدام الباركود. سوف تكون قادرة على الدخول في بنود مذكرة التسليم والفاتورة المبيعات عن طريق مسح الباركود من العنصر.
-"To update your HTML from attachment, click here",لتحديث HTML الخاص بك من المرفقات، انقر هنا
 ToDo,قائمة المهام
 Tools,أدوات
 Top,أعلى
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),مجموع الضرائب (عملة الشركة)
 Total Taxes and Charges,مجموع الضرائب والرسوم
 Total Taxes and Charges (Company Currency),مجموع الضرائب والرسوم (عملة الشركة)
+Total Working Days In The Month,مجموع أيام العمل في الشهر
 Total amount of invoices received from suppliers during the digest period,المبلغ الإجمالي للفواتير الواردة من الموردين خلال فترة هضم
 Total amount of invoices sent to the customer during the digest period,المبلغ الإجمالي للفواتير المرسلة إلى العملاء خلال الفترة دايجست
-Total days in month,مجموع أيام في الشهر
 Total in words,وبعبارة مجموع
+Total production order qty for item,إجمالي إنتاج الكمية نظام للبند
 Totals,المجاميع
 Track separate Income and Expense for product verticals or divisions.,تعقب الدخل والمصروفات للمنفصلة قطاعات المنتجات أو الانقسامات.
 Track this Delivery Note against any Project,تتبع هذه ملاحظة التوصيل ضد أي مشروع
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,UOM تحويل التفاصيل
 UOM Conversion Details,تفاصيل التحويل UOM
 UOM Conversion Factor,UOM تحويل عامل
+UOM Conversion Factor is mandatory,UOM معامل التحويل إلزامي
 UOM Details,تفاصيل UOM
 UOM Name,UOM اسم
 UOM Replace Utility,UOM استبدال الأداة المساعدة
@@ -3044,6 +3067,7 @@
 Unread Messages,رسائل غير مقروءة
 Unscheduled,غير المجدولة
 Unsubscribed,إلغاء اشتراكك
+Upcoming Events for Today,الأحداث القادمة لهذا اليوم
 Update,تحديث
 Update Clearance Date,تحديث تاريخ التخليص
 Update Field,تحديث الميدانية
@@ -3052,7 +3076,6 @@
 Update Series Number,تحديث سلسلة رقم
 Update Stock,تحديث الأسهم
 Update Stock should be checked.,وينبغي التحقق من التحديث الأوراق المالية.
-Update This Application,تحديث هذا التطبيق
 Update Value,تحديث القيمة
 "Update allocated amount in the above table and then click ""Allocate"" button",تحديث المبلغ المخصص في الجدول أعلاه ومن ثم انقر فوق &quot;تخصيص&quot; الزر
 Update bank payment dates with journals.,تحديث البنك دفع التواريخ مع المجلات.
@@ -3065,6 +3088,7 @@
 Upload HTML,تحميل HTML
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,تحميل ملف CSV مع عمودين:. الاسم القديم والاسم الجديد. ماكس 500 الصفوف.
 Upload a file,تحميل ملف
+Upload and Import,تحميل واستيراد
 Upload attendance from a .csv file,تحميل الحضور من ملف CSV.
 Upload stock balance via csv.,تحميل المال عن طريق التوازن CSV.
 Uploading...,تحميل ...
@@ -3078,7 +3102,6 @@
 User ID,المستخدم ID
 User Image,صورة العضو
 User Name,اسم المستخدم
-User Properties,خصائص المستخدم
 User Remark,ملاحظة المستخدم
 User Remark will be added to Auto Remark,ملاحظة سيتم إضافة مستخدم لملاحظة السيارات
 User Tags,الكلمات المستخدم
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,المستخدم لا يسمح لحذفه.
 UserRole,UserRole
 Username,اسم المستخدم
-Users,المستخدمين
 Users who can approve a specific employee's leave applications,المستخدمين الذين يمكنهم الموافقة على طلبات إجازات الموظف معينة
 Users with this role are allowed to do / modify accounting entry before frozen date,ويسمح للمستخدمين القيام بهذا الدور / تعديل القيد المحاسبي قبل تاريخ المجمدة
 Utilities,خدمات
@@ -3116,6 +3138,7 @@
 Voucher No,لا قسيمة
 Voucher Type,قسيمة نوع
 Voucher Type and Date,نوع قسيمة والتسجيل
+WIP Warehouse required before Submit,WIP النماذج المطلوبة قبل إرسال
 Waiting for Customer,في انتظار الزبائن
 Walk In,المشي في
 Warehouse,مستودع
@@ -3149,6 +3172,7 @@
 Website Settings,موقع إعدادات
 Website Slideshow,موقع عرض الشرائح
 Website Slideshow Item,موقع السلعة عرض شرائح
+Website User,موقع العضو
 Website Warehouse,موقع مستودع
 Wednesday,الأربعاء
 Weekly,الأسبوعية
@@ -3214,21 +3238,22 @@
 Yes,نعم
 Yesterday,أمس
 You are not authorized to do/modify back dated entries before ,لا يحق لك أن تفعل / تعديل العودة مقالات بتاريخ قبل
-You can create more earning and deduction type from Setup --> HR,يمكنك إنشاء المزيد من الأرباح وخصم نوع من الإعداد -&gt; HR
 You can enter any date manually,يمكنك إدخال أي تاريخ يدويا
 You can enter the minimum quantity of this item to be ordered.,يمكنك إدخال كمية الحد الأدنى في هذا البند إلى أن يؤمر.
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,لا يمكنك إدخال كل من التسليم ملاحظة لا والمبيعات رقم الفاتورة \ الرجاء إدخال أي واحد.
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,يمكنك تعيين مختلف &#39;خصائص&#39; للمستخدمين لضبط القيم الافتراضية وتطبيق القواعد إذن على أساس قيمة هذه الخصائص في أشكال مختلفة.
 You can start by selecting backup frequency and \					granting access for sync,يمكنك أن تبدأ من خلال تحديد تردد النسخ الاحتياطي و\ منح الوصول لمزامنة
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,يمكنك استخدام <a href='#Form/Customize Form'>نموذج تخصيص</a> لتحديد مستويات على الحقول.
+You may need to update: ,قد تحتاج إلى تحديث:
 Your Customer's TAX registration numbers (if applicable) or any general information,عميلك أرقام التسجيل الضريبي (إن وجدت) أو أي معلومات عامة
 "Your download is being built, this may take a few moments...",ويجري بناء التنزيل، وهذا قد يستغرق بضع لحظات ...
-Your letter head content in HTML.,المحتوى رأس الرسالة في HTML.
+Your letter head content,محتوى رأسك الرسالة
 Your sales person who will contact the customer in future,مبيعاتك الشخص الذي سوف اتصل العميل في المستقبل
 Your sales person who will contact the lead in future,مبيعاتك الشخص الذي سوف اتصل زمام المبادرة في المستقبل
 Your sales person will get a reminder on this date to contact the customer,سيكون لديك مبيعات شخص الحصول على تذكرة في هذا التاريخ للاتصال العملاء
 Your sales person will get a reminder on this date to contact the lead,سيكون لديك مبيعات شخص الحصول على تذكرة في هذا التاريخ في الاتصال الصدارة
 Your support email id - must be a valid email - this is where your emails will come!,معرف بريدا إلكترونيا الدعم - يجب أن يكون عنوان بريد إلكتروني صالح - وهذا هو المكان الذي سوف يأتي رسائل البريد الإلكتروني!
+[Error],[خطأ]
 [Label]:[Field Type]/[Options]:[Width],[تسمية]: [نوع الحقل] / [خيارات]: [العرض]
 add your own CSS (careful!),إضافة CSS الخاصة بك (careful!)
 adjust,ضبط
@@ -3430,6 +3455,7 @@
 volume-up,حجم المتابعة
 warning-sign,علامة إنذار
 website page link,الموقع رابط الصفحة
+which is greater than sales order qty ,الذي هو أكبر من أجل المبيعات الكمية
 wrench,وجع
 yyyy-mm-dd,YYYY-MM-DD
 zoom-in,التكبير في
diff --git a/translations/de.csv b/translations/de.csv
index 77d9fb5..ccb2c88 100644
--- a/translations/de.csv
+++ b/translations/de.csv
@@ -1,26 +1,34 @@
  (Half Day),(Halber Tag)
+ against sales order,gegen Kundenauftrag
  against same operation,gegen dieselbe Operation
- already marked,شهدت بالفعل
+ already marked,bereits markierten
  and year: ,und Jahr:
+ as it is stock Item or packing item,wie es ist lagernd Artikel oder Packstück
  at warehouse: ,im Warenlager:
  by Role ,von Rolle
+ can not be made.,nicht vorgenommen werden.
+ can not be marked as a ledger as it has existing child,"nicht als Ledger gekennzeichnet, da es bestehenden Kind"
  cannot be 0,nicht 0 sein kann
- cannot be deleted.,لا يمكن حذف.
- does not belong to the company,لا تنتمي إلى الشركة
+ cannot be deleted.,kann nicht gelöscht werden.
+ does not belong to the company,nicht dem Unternehmen gehören
+ has already been submitted.,wurde bereits eingereicht.
+ has been freezed. ,wurde eingefroren.
  has been freezed. \				Only Accounts Manager can do transaction against this account,Wurde eingefroren. \ Nur Accounts Manager kann Transaktion gegen dieses Konto zu tun
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item",weniger als gleich im System Null ist \ Wertansatz für diesen Artikel zwingend
  is mandatory,zwingend
  is mandatory for GL Entry,ist für GL Eintrag zwingend
  is not a ledger,ist nicht ein Ledger
  is not active,nicht aktiv
- is not set,لم يتم تعيين
+ is not set,nicht gesetzt
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,"Ist nun der Standard Geschäftsjahr. \ Bitte Ihren Browser aktualisieren, damit die Änderungen wirksam werden."
- is present in one or many Active BOMs,موجود في BOMs واحد أو العديد من بالموقع
- not active or does not exists in the system,غير نشطة أو لا موجود في نظام
+ is present in one or many Active BOMs,ist in einer oder mehreren Active BOMs
+ not active or does not exists in the system,nicht aktiv oder existiert nicht im System
+ not submitted,nicht vorgelegt
  or the BOM is cancelled or inactive,oder das BOM wird abgebrochen oder inaktiv
  should be 'Yes'. As Item: ,sollte &quot;Ja&quot;. Als Item:
  should be same as that in ,sollte dieselbe wie die in
  was on leave on ,war im Urlaub aus
+ will be ,wird
  will be over-billed against mentioned ,wird gegen erwähnt überrepräsentiert in Rechnung gestellt werden
  will become ,werden
 """Company History""",Firmengeschichte
@@ -28,26 +36,26 @@
 %  Delivered,% Lieferung
 % Amount Billed,% Rechnungsbetrag
 % Billed,% Billed
-% Completed,٪ مكتمل
+% Completed,% Abgeschlossen
 % Installed,% Installierte
 % Received,% Erhaltene
 % of materials billed against this Purchase Order.,% Der Materialien gegen diese Bestellung in Rechnung gestellt.
 % of materials billed against this Sales Order,% Der Materialien gegen diesen Kundenauftrag abgerechnet
 % of materials delivered against this Delivery Note,% Der Materialien gegen diese Lieferschein
 % of materials delivered against this Sales Order,% Der Materialien gegen diesen Kundenauftrag geliefert
-% of materials ordered against this Material Request,٪ من المواد المطلوبة ضد هذه المادة طلب
+% of materials ordered against this Material Request,% Der bestellten Materialien gegen diesen Werkstoff anfordern
 % of materials received against this Purchase Order,% Der Materialien erhalten gegen diese Bestellung
-"' can not be managed using Stock Reconciliation.\					You can add/delete Serial No directly, \					to modify stock of this item.",&#39;لا يمكن إدارتها باستخدام المصالحة المالية. \ يمكنك إضافة / حذف رقم المسلسل مباشرة، \ لتعديل الأوراق المالية من هذا البند.
+"' can not be managed using Stock Reconciliation.\					You can add/delete Serial No directly, \					to modify stock of this item.",&#39;Kann nicht verwaltet mit Lager Versöhnung werden. \ Sie können hinzufügen / löschen Seriennummer direkt \ to stock dieses Artikels ändern.
 ' in Company: ,&#39;In Unternehmen:
-'To Case No.' cannot be less than 'From Case No.',&#39;بالقضية رقم&#39; لا يمكن أن يكون أقل من &#39;من القضية رقم&#39;
+'To Case No.' cannot be less than 'From Case No.',&#39;To Fall Nr.&#39; kann nicht kleiner sein als &quot;Von Fall Nr. &#39;
 * Will be calculated in the transaction.,* Wird in der Transaktion berechnet werden.
 "**Budget Distribution** helps you distribute your budget across months if you have seasonality in your business.To distribute a budget using this distribution, set this **Budget Distribution** in the **Cost Center**","** Budget Verteilung ** hilft Ihnen verteilen Sie Ihr Budget über Monate, wenn Sie Saisonalität in Ihrem business.To vertreiben ein Budget Verwendung dieser Verteilung, setzen Sie diesen ** Budget Verteilung ** in der ** Cost Center ** haben"
 **Currency** Master,** Währung ** Meister
 **Fiscal Year** represents a Financial Year. All accounting entries and other major transactions are tracked against **Fiscal Year**.,** Geschäftsjahr ** ein Geschäftsjahr. Alle Buchungen und anderen wichtigen Transaktionen gegen ** Geschäftsjahr ** verfolgt.
-. Outstanding cannot be less than zero. \				 	Please match exact outstanding.,. المعلقة لا يمكن أن يكون أقل من الصفر. \ الرجاء تطابق تام المعلقة.
-. Please set status of the employee as 'Left',. يرجى تغيير الحالة للموظف ب &quot;الزمن&quot;
-. You can not mark his attendance as 'Present',. لا يمكنك وضع علامة حضوره ك &#39;هدية&#39;
-"000 is black, fff is white",000 سوداء، بيضاء FFF
+. Outstanding cannot be less than zero. \				 	Please match exact outstanding.,. Herausragende kann nicht kleiner als Null ist. \ Bitte Exakte hervorragend.
+. Please set status of the employee as 'Left',. Bitte setzen Sie den Status des Mitarbeiters als &quot;links&quot;
+. You can not mark his attendance as 'Present',. Sie können nicht markieren seine Teilnahme als &quot;Gegenwart&quot;
+"000 is black, fff is white","000 ist schwarz, weiß fff"
 1 Currency = [?] FractionFor e.g. 1 USD = 100 Cent,1 Währung = [?] FractionFor beispielsweise 1 USD = 100 Cent
 1. To maintain the customer wise item code and to make them searchable based on their code use this option,Ein. Um den Kunden kluge Artikel Code zu pflegen und um sie durchsuchbar basierend auf ihren Code um diese Option
 12px,12px
@@ -56,15 +64,16 @@
 15px,15px
 16px,16px
 2 days ago,Vor 2 Tagen
+: Duplicate row from same ,: Doppelte Reihe von gleichen
 : It is linked to other active BOM(s),: Es wird mit anderen aktiven BOM (s) verbunden
 : Mandatory for a Recurring Invoice.,: Obligatorisch für ein Recurring Invoice.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group""> Kundengruppen zu verwalten, klicken Sie hier </ a>"
 "<a href=""#!Sales Browser/Item Group"">Manage Item Groups</a>","<a href=""#!Sales Browser/Item Group""> Artikel Gruppen verwalten </ a>"
 "<a href=""#!Sales Browser/Territory"">To manage Territory, click here</a>","<a href=""#!Sales Browser/Territory""> Um Territory zu verwalten, klicken Sie hier </ a>"
-"<a href=""#Sales Browser/Customer Group"">Manage Customer Groups</a>","<a href=""#Sales Browser/Customer Group"">إدارة مجموعات العملاء</a>"
+"<a href=""#Sales Browser/Customer Group"">Manage Customer Groups</a>","<a href=""#Sales Browser/Customer Group"">Verwalten von Kunden-Gruppen</a>"
 "<a href=""#Sales Browser/Customer Group"">To manage Territory, click here</a>","<a href=""#Sales Browser/Customer Group""> Um Territory zu verwalten, klicken Sie hier </ a>"
-"<a href=""#Sales Browser/Item Group"">Manage Item Groups</a>","<a href=""#Sales Browser/Item Group"">إدارة مجموعات السلعة</a>"
-"<a href=""#Sales Browser/Territory"">Territory</a>","<a href=""#Sales Browser/Territory"">إقليم</a>"
+"<a href=""#Sales Browser/Item Group"">Manage Item Groups</a>","<a href=""#Sales Browser/Item Group"">Artikel verwalten Gruppen</a>"
+"<a href=""#Sales Browser/Territory"">Territory</a>","<a href=""#Sales Browser/Territory"">Bereich</a>"
 "<a href=""#Sales Browser/Territory"">To manage Territory, click here</a>","<a href=""#Sales Browser/Territory""> Um Territory zu verwalten, klicken Sie hier </ a>"
 "<a onclick=""msgprint('<ol>\<li><b>field:[fieldname]</b> - By Field\<li><b>naming_series:</b> - By Naming Series (field called naming_series must be present\<li><b>eval:[expression]</b> - Evaluate an expression in python (self is doc)\<li><b>Prompt</b> - Prompt user for a name\<li><b>[series]</b> - Series by prefix (separated by a dot); for example PRE.#####\</ol>')"">Naming Options</a>","<A onclick = ""msgprint ('<ol> \ <li> <b> Feld: [Feldname] </ b> - Durch Feld \ <li> <b> naming_series: </ b> - durch die Benennung Series (Feld namens naming_series muss vorhanden sein \ <li> <b> eval: [Ausdruck] </ b> - Bewerten Sie einen Ausdruck in python (Selbst ist doc) \ <li> <b> Prompt </ b> - Benutzer nach einem Namen \ <li> <b> [Serie] </ b> - Series by Prefix (getrennt durch einen Punkt);. zum Beispiel PRE # # # # # \ </ ol> ') ""> Naming Optionen </ a>"
 <b>Cancel</b> allows you change Submitted documents by cancelling them and amending them.,<b> Abbrechen </ b> können Sie ändern eingereichten Unterlagen durch Vernichtung von ihnen und zur Änderung ihnen.
@@ -73,7 +82,7 @@
 A Lead with this email id should exist,Ein Lead mit dieser E-Mail-ID sollte vorhanden sein
 "A Product or a Service that is bought, sold or kept in stock.","Ein Produkt oder eine Dienstleistung, die gekauft, verkauft oder gehalten auf Lager."
 A Supplier exists with same name,Ein Lieferant existiert mit dem gleichen Namen
-A condition for a Shipping Rule,وهناك شرط للشحن قاعدة
+A condition for a Shipping Rule,Eine Bedingung für einen Versand Rule
 A logical Warehouse against which stock entries are made.,Eine logische Warehouse gegen die Lager-Einträge vorgenommen werden.
 A new popup will open that will ask you to select further conditions.,"Ein neues Pop-up öffnet das wird Sie bitten, weitere Bedingungen zu wählen."
 A symbol for this currency. For e.g. $,Ein Symbol für diese Währung. Für z.B. $
@@ -102,18 +111,20 @@
 Account Id,Konto-ID
 Account Name,Account Name
 Account Type,Kontotyp
-Accounting,المحاسبة
-Accounting Year.,السنة المحاسبية.
-"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.",قيد محاسبي المجمدة تصل إلى هذا التاريخ، لا أحد يمكن أن تفعل / تعديل إدخال باستثناء دور المحددة أدناه.
+Account for this ,Konto für diese
+Accounting,Buchhaltung
+Accounting Year.,Rechnungsjahres.
+"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Buchhaltungseingaben bis zu diesem Zeitpunkt eingefroren, kann niemand / nicht ändern Eintrag außer Rolle unten angegebenen."
 Accounting journal entries.,Accounting Journaleinträge.
 Accounts,Konten
 Accounts Frozen Upto,Konten Bis gefroren
 Accounts Payable,Kreditorenbuchhaltung
 Accounts Receivable,Debitorenbuchhaltung
-Accounts Settings,إعدادات الحسابات
+Accounts Settings,Konten-Einstellungen
 Action,Aktion
 Active,Aktiv
 Active: Will extract emails from ,Aktiv: Werden E-Mails extrahieren
+Activity,Aktivität
 Activity Log,Activity Log
 Activity Type,Art der Tätigkeit
 Actual,Tatsächlich
@@ -121,8 +132,8 @@
 Actual Completion Date,Tatsächliche Datum der Fertigstellung
 Actual Date,Aktuelles Datum
 Actual End Date,Actual End Datum
-Actual Invoice Date,الفعلي تاريخ الفاتورة
-Actual Posting Date,تاريخ النشر الفعلي
+Actual Invoice Date,Tag der Rechnungslegung
+Actual Posting Date,Tatsächliche Buchungsdatum
 Actual Qty,Tatsächliche Menge
 Actual Qty (at source/target),Tatsächliche Menge (an der Quelle / Ziel)
 Actual Qty After Transaction,Tatsächliche Menge Nach Transaction
@@ -136,32 +147,28 @@
 Add Bookmark,Lesezeichen hinzufügen
 Add CSS,Fügen Sie CSS
 Add Column,Spalte hinzufügen
-Add Comment,إضافة تعليق
-Add Google Analytics ID: eg. UA-89XXX57-1. Please search help on Google Analytics for more information.,إضافة خدمة Google Analytics ID: على سبيل المثال. UA-89XXX57-1. الرجاء بحث المساعدة على تحليلات جوجل لمزيد من المعلومات.
+Add Comment,Kommentar hinzufügen
+Add Google Analytics ID: eg. UA-89XXX57-1. Please search help on Google Analytics for more information.,In Google Analytics ID: zB. UA-89XXX57-1. Bitte suchen Sie Hilfe zu Google Analytics für weitere Informationen.
 Add Message,Nachricht hinzufügen
 Add New Permission Rule,Add New Permission Rule
 Add Reply,Fügen Sie Antworten
-Add Terms and Conditions for the Material Request. You can also prepare a Terms and Conditions Master and use the Template,إضافة بنود وشروط لطلب المواد. يمكنك أيضا إعداد الشروط والأحكام الماجستير واستخدام القالب
+Add Terms and Conditions for the Material Request. You can also prepare a Terms and Conditions Master and use the Template,In Allgemeinen Geschäftsbedingungen für das Material-Request. Sie können auch ein Master-AGB und verwenden Sie die Vorlage
 Add Terms and Conditions for the Purchase Receipt. You can also prepare a Terms and Conditions Master and use the Template.,Hinzufügen Geschäftsbedingungen für den Kaufbeleg. Sie können auch eine AGB-Master und verwenden Sie die Vorlage.
 "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","Fügen AGB für das Angebot wie Zahlungsbedingungen, Gültigkeit des Angebots etc. Sie können auch ein AGB-Master und verwenden Sie die Vorlage"
-Add Total Row,إضافة صف الإجمالي
-Add a banner to the site. (small banners are usually good),إضافة لافتة إلى الموقع. (لافتات صغيرة عادة ما تكون جيدة)
-Add attachment,إضافة المرفقات
+Add Total Row,In insgesamt Row
+Add a banner to the site. (small banners are usually good),Hinzufügen einen Banner auf der Website. (Kleine Banner sind in der Regel gut)
+Add attachment,Anhang hinzufügen
 Add code as &lt;script&gt;,Fügen Sie Code wie <script>
-Add custom code to forms,Fügen Sie benutzerdefinierte Code Formen
-Add fields to forms,Hinzufügen von Feldern zu Formen
-Add headers for standard print formats,Hinzufügen von Kopf für Standard-Druckformate
-Add new row,إضافة صف جديد
+Add new row,In neue Zeile
 Add or Deduct,Hinzufügen oder abziehen
 Add rows to set annual budgets on Accounts.,Fügen Sie Zeilen hinzu jährlichen Budgets für Konten festgelegt.
-"Add the name of <a href=""http://google.com/webfonts"" target=""_blank"">Google Web Font</a> e.g. ""Open Sans""","إضافة اسم <a href=""http://google.com/webfonts"" target=""_blank"">جوجل خط ويب</a> على سبيل المثال &quot;بلا فتح&quot;"
+"Add the name of <a href=""http://google.com/webfonts"" target=""_blank"">Google Web Font</a> e.g. ""Open Sans""","Fügen Sie den Namen <a href=""http://google.com/webfonts"" target=""_blank"">Google Web Font</a> zB &quot;Offene Sans&quot;"
 Add to To Do,In den To Do
 Add to To Do List of,In den Um-Liste von Do
 Add/Remove Recipients,Hinzufügen / Entfernen von Empfängern
-"Add/remove users, set roles, passwords etc","Hinzufügen / Entfernen von Benutzern, Satz Rollen, etc. Passwörter"
 Additional Info,Zusätzliche Informationen
 Address,Adresse
-Address & Contact,معالجة والاتصال
+Address & Contact,Adresse &amp; Kontakt
 Address & Contacts,Adresse und Kontakte
 Address Desc,Adresse Desc
 Address Details,Adressdaten
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,Adresse auf der Kontakt Seite angezeigt werden
 Adds a custom field to a DocType,Fügt ein benutzerdefiniertes Feld zu einem DocType
 Adds a custom script (client or server) to a DocType,Fügt ein benutzerdefiniertes Skript (Client oder Server) zu einem DocType
-Administration,إدارة
 Advance Amount,Voraus Betrag
 Advance amount,Vorschuss in Höhe
 Advanced Scripting,Advanced Scripting
@@ -211,12 +217,12 @@
 All Sales Person,Alle Sales Person
 All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.,"Alle Verkäufe Transaktionen können gegen mehrere ** Umsatz Personen **, so dass Sie und überwachen Ziele können markiert werden."
 All Supplier Contact,Alle Lieferanten Kontakt
-"All account columns should be after \							standard columns and on the right.							If you entered it properly, next probable reason \							could be wrong account name.							Please rectify it in the file and try again.",يجب أن تكون جميع الأعمدة حساب بعد \ الأعمدة القياسية وعلى اليمين. إذا كنت دخلت بشكل صحيح، يمكن أن المقبل من المحتمل السبب \ يكون اسم حساب خاطئ. يرجى تصحيح ذلك في ملف وحاول مرة أخرى.
+"All account columns should be after \							standard columns and on the right.							If you entered it properly, next probable reason \							could be wrong account name.							Please rectify it in the file and try again.","Alle Spalten Konto sollte nach \ standard Säulen und auf der rechten Seite. Wenn Sie es richtig eingegeben, könnte nächste wahrscheinliche Grund \ falsche Konto-Name sein. Bitte berichtigen in der Datei und versuchen Sie es erneut."
 "All export related fields like currency, conversion rate, export total, export grand total etc are available in <br>Delivery Note, POS, Quotation, Sales Invoice, Sales Order etc.","Alle Export-verwandten Bereichen wie Währung, Conversion-Rate, Export Insgesamt Export Gesamtsumme etc sind in <br> Lieferschein, POS, Angebot, Sales Invoice, Auftragsabwicklung, etc."
 "All import related fields like currency, conversion rate, import total, import grand total etc are available in <br>Purchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.","Alle Import-verwandten Bereichen wie Währung, Conversion-Rate, Import Insgesamt sind Import Gesamtsumme etc in <br> Kaufbeleg Lieferant Angebot, Auftragsbestätigung, Bestellung etc. zur Verfügung"
 All items have already been transferred \				for this Production Order.,Alle Elemente wurden bereits \ für diesen Fertigungsauftrag übertragen.
 "All possible Workflow States and roles of the workflow. <br>Docstatus Options: 0 is""Saved"", 1 is ""Submitted"" and 2 is ""Cancelled""","Alle möglichen Workflow-Status und Rollen des Workflows. <br> DocStatus Optionen: 0 wird ""Gespeichert"" wird ein ""Eingereicht"" und 2 ""Cancelled"""
-All posts by,عن المشاركات التي كتبها
+All posts by,Alle Beiträge
 Allocate,Zuweisen
 Allocate leaves for the year.,Weisen Blätter für das Jahr.
 Allocated Amount,Zugeteilten Betrag
@@ -224,11 +230,11 @@
 Allocated amount,Zugeteilten Betrag
 Allow Attach,Lassen Befestigen
 Allow Bill of Materials,Lassen Bill of Materials
-Allow Dropbox Access,تسمح قطاف الدخول
-Allow Editing of Frozen Accounts For,السماح بتحرير الحسابات المجمدة لل
-Allow Google Drive Access,تسمح جوجل محرك الوصول
-Allow Import,تسمح استيراد
-Allow Import via Data Import Tool,تسمح استيراد عبر أداة استيراد البيانات
+Allow Dropbox Access,Erlauben Dropbox-Zugang
+Allow Editing of Frozen Accounts For,Erlauben Bearbeiten von eingefrorenen Konten für
+Allow Google Drive Access,Erlauben Sie Google Drive Zugang
+Allow Import,Erlauben Sie importieren
+Allow Import via Data Import Tool,Erlauben Import via Datenimport-Werkzeug
 Allow Negative Balance,Lassen Negative Bilanz
 Allow Negative Stock,Lassen Negative Lager
 Allow Production Order,Lassen Fertigungsauftrag
@@ -237,24 +243,23 @@
 Allow User,Benutzer zulassen
 Allow Users,Ermöglichen
 Allow on Submit,Lassen Sie auf Absenden
-Allow the following users to approve Leave Applications for block days.,تسمح للمستخدمين التالية للموافقة على طلبات الحصول على إجازة أيام بلوك.
+Allow the following users to approve Leave Applications for block days.,Lassen Sie die folgenden Benutzer zu verlassen Anwendungen für Block Tage genehmigen.
+Allow user to edit Price List Rate in transactions,Benutzer zulassen Preis List in Transaktionen bearbeiten
 Allow user to login only after this hour (0-24),"Lassen Sie Benutzer nur anmelden, nach dieser Stunde (0-24)"
 Allow user to login only before this hour (0-24),"Lassen Sie Benutzer nur anmelden, bevor dieser Stunde (0-24)"
 Allowance Percent,Allowance Prozent
 Allowed,Erlaubt
-Already Registered,مسجل بالفعل
-Always use Login Id as sender,دائما استخدام معرف تسجيل الدخول ومرسل
+Already Registered,Bereits angemeldete
+Always use Login Id as sender,Immer Login ID als Absender
 Amend,Ändern
 Amended From,Geändert von
 Amount,Menge
-Amount (Company Currency),المبلغ (عملة الشركة)
+Amount (Company Currency),Betrag (Gesellschaft Währung)
 Amount <=,Betrag <=
 Amount >=,Betrag> =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","Ein Symbol-Datei mit. Ico. Sollte 16 x 16 px sein. Erzeugt mit ein Favicon-Generator. [<a Href=""http://favicon-generator.org/"" target=""_blank""> favicon-generator.org </ a>]"
 Analytics,Analytics
-Annual Cost To Company,التكلفة السنوية للشركة
-Annual Cost To Company can not be less than 12 months of Total Earning,التكلفة السنوية للشركة لا يمكن أن يكون أقل من 12 شهرا من إجمالي الدخل
-Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,هيكل راتب آخر &#39;٪ s&#39; غير النشطة للموظف &#39;٪ S&#39;. يرجى التأكد مكانتها &quot;غير نشطة&quot; والمضي قدما.
+Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,"Another Gehaltsstruktur &#39;% s&#39; ist für Mitarbeiter &#39;% s&#39; aktiv. Bitte stellen Sie den Status &quot;inaktiv&quot;, um fortzufahren."
 "Any other comments, noteworthy effort that should go in the records.","Weitere Kommentare, bemerkenswerte Anstrengungen, die in den Aufzeichnungen gehen sollte."
 Applicable Holiday List,Anwendbar Ferienwohnung Liste
 Applicable To (Designation),Für (Bezeichnung)
@@ -263,13 +268,12 @@
 Applicable To (User),Anwendbar auf (User)
 Applicant Name,Name des Antragstellers
 Applicant for a Job,Antragsteller für einen Job
-Applicant for a Job.,المتقدم للحصول على الوظيفة.
+Applicant for a Job.,Antragsteller für einen Job.
 Applications for leave.,Bei Anträgen auf Urlaub.
 Applies to Company,Gilt für Unternehmen
 Apply / Approve Leaves,Übernehmen / Genehmigen Leaves
-Apply Shipping Rule,تنطبق الشحن القاعدة
-Apply Taxes and Charges Master,تطبيق الضرائب والرسوم ماجستير
-Apply latest updates and patches to this app,تطبيق آخر التحديثات وتصحيحات لهذا التطبيق
+Apply Shipping Rule,Bewerben Versand Rule
+Apply Taxes and Charges Master,Bewerben Steuern und Gebühren Meister
 Appraisal,Bewertung
 Appraisal Goal,Bewertung Goal
 Appraisal Goals,Bewertung Details
@@ -287,20 +291,19 @@
 "As a best practice, do not assign the same set of permission rule to different Roles instead set multiple Roles to the User","Als Best Practice, nicht die gleiche Menge von Berechtigungen Vorschrift auf unterschiedliche Rollen stattdessen mehrere Rollen für den Benutzer"
 As existing qty for item: ,Da sich die bestehenden Menge für Artikel:
 As per Stock UOM,Wie pro Lagerbestand UOM
-"As there are existing stock transactions for this \							item, you can not change the values of 'Has Serial No', \							'Is Stock Item' and 'Valuation Method'",كما أن هناك معاملات المخزون الحالي لهذا \ البند، لا يمكنك تغيير قيم &quot;لقد المسلسل لا &#39;، \&#39; هو المخزون السلعة&quot; و &quot;أسلوب التقييم&quot;
+"As there are existing stock transactions for this \							item, you can not change the values of 'Has Serial No', \							'Is Stock Item' and 'Valuation Method'","Da es Bestand Transaktionen dieser \ item sind, können Sie nicht ändern, die Werte von &#39;Hat Seriennummer&#39;, &#39;Ist Lager Item&#39; \ und &quot;Valuation Method &#39;"
 Ascending,Aufsteigend
 Assign To,Zuordnen zu
 Assigned By,Zugewiesen von
-Assignment,مهمة
-Assignments,تعيينات
+Assignment,Zuordnung
+Assignments,Zuordnungen
 Associate a DocType to the Print Format,Zuordnen eines DocType der Print Format
 Atleast one warehouse is mandatory,Mindestens eines Lagers ist obligatorisch
 Attach,Befestigen
 Attach Document Print,Anhängen Dokument drucken
-Attached To DocType,تعلق على DOCTYPE
-Attached To Name,تعلق على اسم
-Attachment,التعلق
-Attachment removed. You may need to update: ,Anlage entfernt. Möglicherweise müssen Sie aktualisieren:
+Attached To DocType,Hinzugefügt zu DOCTYPE
+Attached To Name,An den Dateinamen
+Attachment,Anhang
 Attachments,Zubehör
 Attempted to Contact,"Versucht, Kontakt"
 Attendance,Teilnahme
@@ -308,25 +311,25 @@
 Attendance Details,Teilnahme Einzelheiten
 Attendance From Date,Teilnahme ab-Datum
 Attendance To Date,Teilnahme To Date
-Attendance can not be marked for future dates,لا يمكن أن تكون علامة لحضور تواريخ مستقبلية
+Attendance can not be marked for future dates,Die Teilnahme kann nicht für zukünftige Termine markiert werden
 Attendance for the employee: ,Die Teilnahme für die Mitarbeiter:
 Attendance record.,Zuschauerrekord.
 Attributions,Zuschreibungen
 Authorization Control,Authorization Control
 Authorization Rule,Autorisierungsregel
 Auto Email Id,Auto Email Id
-Auto Inventory Accounting,المحاسبة الجرد السيارات
-Auto Inventory Accounting Settings,إعدادات المحاسبة الجرد السيارات
-Auto Material Request,السيارات مادة طلب
+Auto Inventory Accounting,Auto Vorratsbuchhaltung
+Auto Inventory Accounting Settings,Auto Vorratsbuchhaltung Einstellungen
+Auto Material Request,Auto Werkstoff anfordern
 Auto Name,Auto Name
 Auto generated,Auto generiert
-Auto-raise Material Request if quantity goes below re-order level in a warehouse,لصناعة السيارات في رفع طلب المواد إذا كمية يذهب دون مستوى إعادة الطلب في مستودع
+Auto-raise Material Request if quantity goes below re-order level in a warehouse,"Auto-Raise Werkstoff anfordern, wenn Quantität geht unten re-order-Ebene in einer Lagerhalle"
 Automatically updated via Stock Entry of type Manufacture/Repack,Automatisch über Lager Eintrag vom Typ Manufacture / Repack aktualisiert
 Autoreply when a new mail is received,Autoreply wenn eine neue E-Mail empfangen
 Available Qty at Warehouse,Verfügbare Menge bei Warehouse
-Available Stock for Packing Items,الأسهم المتاحة للتعبئة وحدات
+Available Stock for Packing Items,Lagerbestand für Packstücke
 "Available in BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet","Erhältlich in Stücklisten, Lieferschein, Bestellung, Fertigungsauftrag, Bestellung, Kaufbeleg, Sales Invoice, Sales Order, Stock Entry, Timesheet"
-Avatar,الصورة الرمزية
+Avatar,Avatar
 Average Discount,Durchschnittliche Discount
 B+,B +
 B-,B-
@@ -344,43 +347,43 @@
 BOM replaced,BOM ersetzt
 Background Color,Hintergrundfarbe
 Background Image,Background Image
-Backup Manager,مدير النسخ الاحتياطي
-Backup Right Now,النسخ الاحتياطي الحق الآن
-Backups will be uploaded to,وسيتم تحميلها النسخ الاحتياطي إلى
-"Balances of Accounts of type ""Bank or Cash""",أرصدة الحسابات من نوع &quot;البنك أو نقدا&quot;
+Backup Manager,Backup Manager
+Backup Right Now,Sichern Right Now
+Backups will be uploaded to,"Backups werden, die hochgeladen werden"
+"Balances of Accounts of type ""Bank or Cash""",Kontostände vom Typ &quot;Bank-oder Cash&quot;
 Bank,Bank
 Bank A/C No.,Bank A / C Nr.
 Bank Account,Bankkonto
 Bank Account No.,Bank Konto-Nr
-Bank Clearance Summary,بنك ملخص التخليص
+Bank Clearance Summary,Bank-Ausverkauf Zusammenfassung
 Bank Name,Name der Bank
 Bank Reconciliation,Kontenabstimmung
 Bank Reconciliation Detail,Kontenabstimmung Details
-Bank Reconciliation Statement,بيان التسويات المصرفية
+Bank Reconciliation Statement,Kontenabstimmung Statement
 Bank Voucher,Bankgutschein
 Bank or Cash,Bank oder Bargeld
-Bank/Cash Balance,بنك / النقد وما في حكمه
+Bank/Cash Balance,Banken / Cash Balance
 Banner,Banner
 Banner HTML,Banner HTML
-Banner Image,راية صورة
-Banner is above the Top Menu Bar.,راية فوق أعلى شريط القوائم.
+Banner Image,Banner Bild
+Banner is above the Top Menu Bar.,Banner über der oberen Menüleiste.
 Barcode,Strichcode
 Based On,Basierend auf
 Basic Info,Basic Info
 Basic Information,Grundlegende Informationen
 Basic Rate,Basic Rate
-Basic Rate (Company Currency),المعدل الأساسي (عملة الشركة)
+Basic Rate (Company Currency),Basic Rate (Gesellschaft Währung)
 Batch,Stapel
 Batch (lot) of an Item.,Batch (Los) eines Item.
 Batch Finished Date,Batch Beendet Datum
 Batch ID,Batch ID
 Batch No,Batch No
 Batch Started Date,Batch gestartet Datum
-Batch Time Logs for Billing.,سجلات ترتبط بفترات زمنية لإعداد الفواتير.
-Batch Time Logs for billing.,سجلات ترتبط بفترات زمنية لإعداد الفواتير.
-Batch-Wise Balance History,دفعة الحكيم التاريخ الرصيد
-Batched for Billing,دفعات عن الفواتير
-Be the first one to comment,كن أول واحد للتعليق
+Batch Time Logs for Billing.,Batch Zeit Protokolle für Billing.
+Batch Time Logs for billing.,Batch Zeit Logs für die Abrechnung.
+Batch-Wise Balance History,Batch-Wise Gleichgewicht History
+Batched for Billing,Batch für Billing
+Be the first one to comment,"Seien Sie der Erste, der einen Kommentar"
 Begin this page with a slideshow of images,Beginnen Sie diese Seite mit einer Diashow von Bildern
 Better Prospects,Bessere Aussichten
 Bill Date,Bill Datum
@@ -388,32 +391,32 @@
 Bill of Material to be considered for manufacturing,"Bill of Material, um für die Fertigung berücksichtigt werden"
 Bill of Materials,Bill of Materials
 Bill of Materials (BOM),Bill of Materials (BOM)
-Billable,فوترة
+Billable,Billable
 Billed,Angekündigt
 Billed Amt,Billed Amt
-Billing,الفواتير
-Billing Address,عنوان الفواتير
-Billing Address Name,الفواتير اسم العنوان
+Billing,Billing
+Billing Address,Rechnungsadresse
+Billing Address Name,Rechnungsadresse Name
 Billing Status,Billing-Status
 Bills raised by Suppliers.,Bills erhöht durch den Lieferanten.
 Bills raised to Customers.,"Bills angehoben, um Kunden."
 Bin,Kasten
 Bio,Bio
-Bio will be displayed in blog section etc.,سيتم عرض الحيوي في بلوق القسم الخ
+Bio will be displayed in blog section etc.,Bio wird in Blog-Bereich usw. angezeigt werden
 Birth Date,Geburtsdatum
 Blob,Klecks
 Block Date,Blockieren Datum
 Block Days,Block Tage
 Block Holidays on important days.,Blockieren Urlaub auf wichtige Tage.
 Block leave applications by department.,Block verlassen Anwendungen nach Abteilung.
-Blog Category,بلوق التصنيف
-Blog Intro,بلوق مقدمة
-Blog Introduction,بلوق مقدمة
-Blog Post,بلوق وظيفة
-Blog Settings,إعدادات بلوق
+Blog Category,Blog Kategorie
+Blog Intro,Blog Intro
+Blog Introduction,Blog Einführung
+Blog Post,Blog Post
+Blog Settings,Blog-Einstellungen
 Blog Subscriber,Blog Subscriber
-Blog Title,بلوق العنوان
-Blogger,مدون
+Blog Title,Blog Titel
+Blogger,Blogger
 Blood Group,Blutgruppe
 Bookmarks,Bookmarks
 Branch,Zweig
@@ -422,7 +425,6 @@
 Brand Name,Markenname
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","Marke ist das, was in der oberen rechten Ecke des Symbolleiste. Wenn es ein Bild ist, stellen Sie sicher, ithas einen transparenten Hintergrund und verwenden Sie die <img />-Tag. Halten Größe wie 200px x 30px"
 Brand master.,Marke Meister.
-Branding and Printing,Branding und Druck
 Brands,Marken
 Breakdown,Zusammenbruch
 Budget,Budget
@@ -433,19 +435,20 @@
 Budget Distribution,Budget Verteilung
 Budget Distribution Detail,Budget Verteilung Detailansicht
 Budget Distribution Details,Budget Ausschüttungsinformationen
-Budget Variance Report,تقرير الفرق الميزانية
-Build Modules,بناء وحدات
-Build Pages,بناء الصفحات
-Build Server API,بناء API ملقم
-Build Sitemap,بناء خريطة الموقع
+Budget Variance Report,Budget Variance melden
+Build Modules,Bauen Module
+Build Pages,Bauen Seiten
+Build Server API,Build-Server API
+Build Sitemap,Bauen Sitemap
 Bulk Email,Bulk Email
 Bulk Email records.,Bulk Email Datensätze.
+Bummer! There are more holidays than working days this month.,Bummer! Es gibt mehr Feiertage als Arbeitstage in diesem Monat.
 Bundle items at time of sale.,Bundle Artikel zum Zeitpunkt des Verkaufs.
 Button,Taste
 Buyer of Goods and Services.,Käufer von Waren und Dienstleistungen.
 Buying,Kauf
-Buying Amount,شراء المبلغ
-Buying Settings,شراء إعدادات
+Buying Amount,Einkaufsführer Betrag
+Buying Settings,Einkaufsführer Einstellungen
 By,Durch
 C-FORM/,C-FORM /
 C-Form,C-Form
@@ -457,7 +460,7 @@
 CSS,CSS
 CUST,CUST
 CUSTMUM,CUSTMUM
-Calculate Based On,حساب الربح بناء على
+Calculate Based On,Berechnen Basierend auf
 Calculate Total Score,Berechnen Gesamtpunktzahl
 Calendar,Kalender
 Calendar Events,Kalendereintrag
@@ -469,28 +472,27 @@
 Cancel permission also allows the user to delete a document (if it is not linked to any other document).,"Abbrechen Erlaubnis ermöglicht dem Benutzer auch, um ein Dokument (wenn sie nicht auf irgendeine andere Dokument verknüpft) zu löschen."
 Cancelled,Abgesagt
 Cannot ,Kann nicht
-Cannot approve leave as you are not authorized to approve leaves on Block Dates.,لا يمكن الموافقة على ترك كما لا يحق لك الموافقة الأوراق في تواريخ بلوك.
-Cannot change from,لا يمكن تغيير من
-Cannot continue.,لا يمكن أن يستمر.
-Cannot have two prices for same Price List,لا يمكن أن يكون سعرين لنفس قائمة الأسعار
+Cannot approve leave as you are not authorized to approve leaves on Block Dates.,"Kann nicht genehmigen lassen, wie Sie sind nicht berechtigt, Blätter auf Block-Termine genehmigen."
+Cannot change from,Kann nicht ändern
+Cannot continue.,Kann nicht fortgesetzt werden.
+Cannot have two prices for same Price List,Kann nicht zwei Preise für das gleiche Preisliste
 Cannot map because following condition fails: ,"Kann nicht zuordnen, da folgende Bedingung nicht:"
 Capacity,Kapazität
 Capacity Units,Capacity Units
 Carry Forward,Vortragen
 Carry Forwarded Leaves,Carry Weitergeleitete Leaves
-Case No(s) already in use. Please rectify and try again.				Recommended <b>From Case No. = %s</b>,القضية رقم (ق) قيد الاستخدام بالفعل. يرجى تصحيح وحاول مرة أخرى. الموصى بها <b>من القضية رقم =٪ S</b>
+Case No(s) already in use. Please rectify and try again.				Recommended <b>From Case No. = %s</b>,Fall Nr. (n) bereits im Einsatz. Bitte korrigieren und versuchen Sie es erneut. Empfohlen <b>von Fall Nr. =% s</b>
 Cash,Bargeld
 Cash Voucher,Cash Gutschein
 Cash/Bank Account,Cash / Bank Account
-Categorize blog posts.,تصنيف بلوق وظيفة.
+Categorize blog posts.,Kategorisieren Blog-Posts.
 Category,Kategorie
-Category Name,اسم التصنيف
+Category Name,Kategorie Name
 Category of customer as entered in Customer master,"Kategorie von Kunden, wie in Customer Master eingetragen"
 Cell Number,Cell Number
 Center,Zentrum
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.","Bestimmte Dokumente sollten nicht geändert werden, nachdem endgültig angesehen werden, wie eine Rechnung zum Beispiel. Der Endzustand für solche Dokumente wird als <b> Eingereicht </ b>. Sie können einschränken, welche Rollen können Sie auf Absenden."
 Change UOM for an Item.,Ändern UOM für ein Item.
-"Change entry properties (hide fields, make mandatory etc)",Eintrag ändern Eigenschaften (hide Feldern machen obligatorischen etc)
 Change the starting / current sequence number of an existing series.,Ändern Sie den Start / aktuelle Sequenznummer eines bestehenden Serie.
 Channel Partner,Channel Partner
 Charge,Ladung
@@ -506,8 +508,9 @@
 "Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.","Überprüfen Sie, ob Sie die automatische wiederkehrende Rechnungen benötigen. Nach dem Absenden eine Rechnung über den Verkauf wird Recurring Abschnitt sichtbar sein."
 Check if you want to send salary slip in mail to each employee while submitting salary slip,"Überprüfen Sie, ob Sie Gehaltsabrechnung in Mail an jeden Mitarbeiter wollen, während Einreichung Gehaltsabrechnung"
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,"Aktivieren Sie diese Option, wenn Sie den Benutzer zwingen, eine Reihe vor dem Speichern auswählen möchten. Es wird kein Standard sein, wenn Sie dies zu überprüfen."
-Check this if you want to send emails as this id only (in case of restriction by your email provider).,الاختيار هذا إذا كنت تريد أن ترسل رسائل البريد الإلكتروني في هذا المعرف فقط (في حالة تقييد من قبل مزود البريد الإلكتروني الخاص بك).
+Check this if you want to send emails as this id only (in case of restriction by your email provider).,"Aktivieren Sie diese Option, wenn Sie E-Mails, da diese id nur (im Falle von Beschränkungen durch Ihre E-Mail-Provider) gesendet werden soll."
 Check this if you want to show in website,"Aktivieren Sie diese Option, wenn Sie in der Website zeigen wollen"
+Check this to disallow fractions. (for Nos),Aktivieren Sie diese verbieten Fraktionen. (Für Nos)
 Check this to make this the default letter head in all prints,"Aktivieren Sie diese Option, um es als Standard-Briefkopf in allen Ausdrucke"
 Check this to pull emails from your mailbox,"Aktivieren Sie diese Option, um E-Mails aus Ihrer Mailbox ziehen"
 Check to activate,Überprüfen Sie aktivieren
@@ -521,19 +524,19 @@
 City,City
 City/Town,Stadt / Ort
 Claim Amount,Schadenhöhe
-Claims for company expense.,مطالبات لحساب الشركة.
+Claims for company expense.,Ansprüche für Unternehmen Kosten.
 Class / Percentage,Klasse / Anteil
-Classic,كلاسيكي
+Classic,Klassische
 Classification of Customers by region,Klassifizierung der Kunden nach Regionen
 Clear Cache & Refresh,Clear Cache & Refresh
 Clear Table,Tabelle löschen
 Clearance Date,Clearance Datum
-"Click on ""Get Latest Updates""",انقر على &quot;الحصول على آخر التحديثات&quot;
-Click on 'Make Sales Invoice' button to create a new Sales Invoice.,انقر على &#39;جعل مبيعات الفاتورة &quot;الزر لإنشاء فاتورة مبيعات جديدة.
+"Click on ""Get Latest Updates""",Klicken Sie auf &quot;Get Latest Updates&quot;
+Click on 'Make Sales Invoice' button to create a new Sales Invoice.,"Klicken Sie auf &quot;Als Sales Invoice&quot;, um einen neuen Sales Invoice erstellen."
 Click on button in the 'Condition' column and select the option 'User is the creator of the document',"Klicken Sie auf die Schaltfläche in der 'Bedingung' Spalte und wählen Sie die Option ""Benutzer ist der Schöpfer des Dokuments"""
 Click to Expand / Collapse,Klicken Sie auf Erweitern / Reduzieren
 Client,Auftraggeber
-Close,أغلق
+Close,Schließen
 Closed,Geschlossen
 Closing Account Head,Konto schließen Leiter
 Closing Date,Einsendeschluss
@@ -566,26 +569,27 @@
 Company History Heading,Unternehmensgeschichte Überschrift
 Company Info,Firmeninfo
 Company Introduction,Vorstellung der Gesellschaft
-Company Master.,ماجستير الشركة.
+Company Master.,Firma Meister.
 Company Name,Firmenname
-Company Settings,إعدادات الشركة
+Company Settings,Gesellschaft Einstellungen
 Company branches.,Unternehmen Niederlassungen.
 Company departments.,Abteilungen des Unternehmens.
-Company is missing or entered incorrect value,شركة مفقود أو دخلت قيمة غير صحيحة
-Company mismatch for Warehouse,عدم تطابق الشركة للمستودع
+Company is missing or entered incorrect value,Unternehmen fehlt oder falsch eingegeben Wert
+Company mismatch for Warehouse,Unternehmen Mismatch für Warehouse
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,Handelsregisternummer für Ihre Referenz. Beispiel: Umsatzsteuer-Identifikationsnummern usw.
 Company registration numbers for your reference. Tax numbers etc.,Handelsregisternummer für Ihre Referenz. MwSt.-Nummern etc.
 Complaint,Beschwerde
+Complete,Vervollständigen
 Complete By,Complete von
 Completed,Fertiggestellt
-Completed Qty,الكمية الانتهاء
+Completed Qty,Abgeschlossene Menge
 Completion Date,Datum der Fertigstellung
 Completion Status,Completion Status
 Confirmed orders from Customers.,Bestätigte Bestellungen von Kunden.
 Consider Tax or Charge for,Betrachten Sie Steuern oder Gebühren für die
 "Consider this Price List for fetching rate. (only which have ""For Buying"" as checked)","Betrachten Sie diese Preisliste für das Abrufen bewerten. (Nur die haben ""für den Kauf"", wie geprüft)"
-Considered as Opening Balance,يعتبر الرصيد الافتتاحي
-Considered as an Opening Balance,يعتبر رصيد أول المدة
+Considered as Opening Balance,Er gilt als Eröffnungsbilanz
+Considered as an Opening Balance,Er gilt als einer Eröffnungsbilanz
 Consultant,Berater
 Consumed Qty,Verbrauchte Menge
 Contact,Kontakt
@@ -610,15 +614,15 @@
 Content web page.,Inhalt Web-Seite.
 Contra Voucher,Contra Gutschein
 Contract End Date,Contract End Date
-Contribution (%),مساهمة (٪)
-Contribution to Net Total,المساهمة في صافي إجمالي
+Contribution (%),Anteil (%)
+Contribution to Net Total,Beitrag zum Net Total
 Control Panel,Control Panel
 Conversion Factor,Umrechnungsfaktor
 Conversion Rate,Conversion Rate
 Convert into Recurring Invoice,Konvertieren in Wiederkehrende Rechnung
 Converted,Umgerechnet
-Copy,نسخ
-Copy From Item Group,نسخة من المجموعة السلعة
+Copy,Kopieren
+Copy From Item Group,Kopieren von Artikel-Gruppe
 Copyright,Copyright
 Core,Kern
 Cost Center,Kostenstellenrechnung
@@ -626,26 +630,26 @@
 Cost Center Name,Kosten Center Name
 Cost Center is mandatory for item: ,Kostenstelle ist obligatorisch für Artikel:
 Cost Center must be specified for PL Account: ,Kostenstelle muss für PL Konto angegeben werden:
-Cost to Company,Kosten Unternehmen
 Costing,Kalkulation
 Country,Land
 Country Name,Land Name
 Create,Schaffen
 Create Bank Voucher for the total salary paid for the above selected criteria,Erstellen Bankgutschein für die Lohnsumme für die oben ausgewählten Kriterien gezahlt
+Create Material Requests,Material anlegen Requests
 Create Production Orders,Erstellen Fertigungsaufträge
 Create Receiver List,Erstellen Receiver Liste
 Create Salary Slip,Erstellen Gehaltsabrechnung
-Create Stock Ledger Entries when you submit a Sales Invoice,إنشاء ألبوم ليدجر مقالات عند إرسال فاتورة المبيعات
+Create Stock Ledger Entries when you submit a Sales Invoice,"Neues Lager Ledger Einträge, wenn Sie einen Sales Invoice vorlegen"
 "Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.","Erstellen Sie eine Preisliste von Preisliste Master und geben Sie Standard-ref Preise gegen jeden von ihnen. Bei Auswahl einer Preisliste Angebot, Auftrag oder Lieferschein, werden entsprechende ref für dieser Artikel abgeholt werden."
 Create and Send Newsletters,Erstellen und Senden Newsletters
 Created Account Head: ,Erstellt Konto Kopf:
-Created By,التي أنشأتها
+Created By,Erstellt von
 Created Customer Issue,Erstellt Kunde Ausgabe
 Created Group ,Erstellt Gruppe
 Created Opportunity,Erstellt Chance
 Created Support Ticket,Erstellt Support Ticket
 Creates salary slip for above mentioned criteria.,Erstellt Gehaltsabrechnung für die oben genannten Kriterien.
-Credentials,أوراق اعتماد
+Credentials,Referenzen
 Credit,Kredit
 Credit Amt,Kredit-Amt
 Credit Card Voucher,Credit Card Gutschein
@@ -656,12 +660,12 @@
 Credit To,Kredite an
 Cross Listing of Item in multiple groups,Überqueren Auflistung der Artikel in mehreren Gruppen
 Currency,Währung
-Currency Exchange,تحويل العملات
+Currency Exchange,Geldwechsel
 Currency Format,Währung Format
 Currency Name,Währung Name
-Currency Settings,إعدادات العملة
-Currency and Price List,العملة وقائمة الأسعار
-Currency does not match Price List Currency for Price List,العملة لا يطابق قائمة الأسعار العملات لقائمة الأسعار
+Currency Settings,Währung Einstellungen
+Currency and Price List,Währungs-und Preisliste
+Currency does not match Price List Currency for Price List,Währung nicht mit Preisliste Währung für Preisliste
 Current Accommodation Type,Aktuelle Unterkunftstyp
 Current Address,Aktuelle Adresse
 Current BOM,Aktuelle Stückliste
@@ -680,33 +684,36 @@
 Custom Startup Code,Benutzerdefinierte Startup Code
 Custom?,Custom?
 Customer,Kunde
+Customer (Receivable) Account,Kunde (Forderungen) Konto
 Customer / Item Name,Kunde / Item Name
 Customer Account,Kundenkonto
-Customer Account Head,رئيس حساب العملاء
+Customer Account Head,Kundenkonto Kopf
 Customer Address,Kundenadresse
 Customer Addresses And Contacts,Kundenadressen und Kontakte
 Customer Code,Customer Code
 Customer Codes,Kunde Codes
 Customer Details,Customer Details
+Customer Discount,Kunden-Rabatt
+Customer Discounts,Kunden Rabatte
 Customer Feedback,Kundenfeedback
 Customer Group,Customer Group
 Customer Group Name,Kunden Group Name
 Customer Intro,Kunden Intro
 Customer Issue,Das Anliegen des Kunden
-Customer Issue against Serial No.,العدد العملاء ضد الرقم التسلسلي
+Customer Issue against Serial No.,Das Anliegen des Kunden gegen Seriennummer
 Customer Name,Name des Kunden
-Customer Naming By,العملاء تسمية بواسطة
+Customer Naming By,Kunden Benennen von
 Customer Type,Kundentyp
 Customer classification tree.,Einteilung der Kunden Baum.
 Customer database.,Kunden-Datenbank.
 Customer's Currency,Kunden Währung
 Customer's Item Code,Kunden Item Code
-Customer's Purchase Order Date,طلب شراء الزبون التسجيل
-Customer's Purchase Order No,الزبون أمر الشراء لا
+Customer's Purchase Order Date,Bestellung des Kunden Datum
+Customer's Purchase Order No,Bestellung des Kunden keine
 Customer's Vendor,Kunden Hersteller
 Customer's currency,Kunden Währung
 "Customer's currency - If you want to select a currency that is not the default currency, then you must also specify the Currency Conversion Rate.","Kunden Währung - Wenn Sie eine Währung, die nicht die Standard-Währung auswählen wollen, dann müssen Sie auch die Currency Conversion Rate."
-Customers Not Buying Since Long Time,الزبائن لا يشترون منذ وقت طويل
+Customers Not Buying Since Long Time,Kunden Kaufen nicht seit langer Zeit
 Customerwise Discount,Customerwise Discount
 Customize,Anpassen
 Customize Form,Formular anpassen
@@ -717,21 +724,20 @@
 DN,DN
 DN Detail,DN Detailansicht
 Daily,Täglich
-Daily Time Log Summary,الوقت الملخص اليومي دخول
-"Daily, weekly, monthly email Digests","Täglich Digests wöchentlich, monatlich E-Mail-"
+Daily Event Digest is sent for Calendar Events where reminders are set.,Täglich Termin Digest ist für Kalendereintrag wo Erinnerungen eingestellt gesendet.
+Daily Time Log Summary,Täglich Log Zusammenfassung
 Danger,Gefahr
 Data,Daten
-Data Import,Datenimport
-Data missing in table,البيانات الناقصة في الجدول
+Data missing in table,Fehlende Daten in der Tabelle
 Database,Datenbank
-Database Folder ID,ID مجلد قاعدة البيانات
+Database Folder ID,Database Folder ID
 Database of potential customers.,Datenbank von potentiellen Kunden.
 Date,Datum
 Date Format,Datumsformat
 Date Of Retirement,Datum der Pensionierung
-Date and Number Settings,إعدادات التاريخ وعدد
+Date and Number Settings,Datum und Anzahl Einstellungen
 Date is repeated,Datum wird wiederholt
-Date must be in format,يجب أن يكون التاريخ في شكل
+Date must be in format,Datum muss im Format
 Date of Birth,Geburtsdatum
 Date of Issue,Datum der Ausgabe
 Date of Joining,Datum der Verbindungstechnik
@@ -758,7 +764,7 @@
 Default BOM,Standard BOM
 Default Bank / Cash account will be automatically updated in POS Invoice when this mode is selected.,"Standard Bank / Cash-Konto werden automatisch in POS Rechnung aktualisiert werden, wenn dieser Modus ausgewählt ist."
 Default Bank Account,Standard Bank Account
-Default Cash Account,الحساب النقدي الافتراضي
+Default Cash Account,Standard Cashkonto
 Default Commission Rate,Standard Kommission bewerten
 Default Company,Standard Unternehmen
 Default Cost Center,Standard Kostenstelle
@@ -777,24 +783,26 @@
 Default Settings,Default Settings
 Default Source Warehouse,Default Source Warehouse
 Default Stock UOM,Standard Lager UOM
+Default Supplier,Standard Lieferant
 Default Supplier Type,Standard Lieferant Typ
 Default Target Warehouse,Standard Ziel Warehouse
 Default Territory,Standard Territory
 Default Unit of Measure,Standard-Maßeinheit
 Default Valuation Method,Standard Valuation Method
 Default Value,Default Value
-Default Warehouse,النماذج الافتراضية
-Default Warehouse is mandatory for Stock Item.,النماذج الافتراضية هي إلزامية لالبند الأسهم.
-Default settings for Shopping Cart,الإعدادات الافتراضية لسلة التسوق
-"Default: ""Contact Us""",الافتراضي: &quot;اتصل بنا&quot;
+Default Warehouse,Standard Warehouse
+Default Warehouse is mandatory for Stock Item.,Standard Warehouse ist obligatorisch für Lagerware.
+Default settings for Shopping Cart,Standardeinstellungen für Einkaufswagen
+"Default: ""Contact Us""",Default: &quot;Kontaktieren Sie uns&quot;
 DefaultValue,DefaultValue
 Defaults,Defaults
 "Define Budget for this Cost Center. To set budget action, see <a href=""#!List/Company"">Company Master</a>","Definieren Budget für diese Kostenstelle. Um Budget Aktion finden Sie unter <a href=""#!List/Company""> Firma Master </ a>"
 Defines actions on states and the next step and allowed roles.,Definiert Aktionen auf Staaten und den nächsten Schritt und erlaubt Rollen.
 Defines workflow states and rules for a document.,Definiert Workflow-Status und Regeln für ein Dokument.
 Delete,Löschen
-Delete Row,حذف صف
+Delete Row,Zeile löschen
 Delivered,Lieferung
+Delivered Items To Be Billed,Liefergegenstände in Rechnung gestellt werden
 Delivered Qty,Geliefert Menge
 Delivery Address,Lieferanschrift
 Delivery Date,Liefertermin
@@ -808,33 +816,32 @@
 Delivery Note No,Lieferschein Nein
 Delivery Note Packing Item,Lieferschein Verpackung Artikel
 Delivery Note Required,Lieferschein erforderlich
-Delivery Note Trends,ملاحظة اتجاهات التسليم
+Delivery Note Trends,Lieferschein Trends
 Delivery Status,Lieferstatus
 Delivery Time,Lieferzeit
-Delivery To,التسليم إلى
+Delivery To,Liefern nach
 Department,Abteilung
-Depend on LWP,Verlassen Sie sich auf LWP
 Depends On,Depends On
 Depends on LWP,Abhängig von LWP
 Descending,Absteigend
 Description,Beschreibung
 Description HTML,Beschreibung HTML
-"Description for listing page, in plain text, only a couple of lines. (max 140 characters)",وصف لصفحة القائمة، في نص عادي، فقط بضعة أسطر. (حد أقصى 140 حرف)
-Description for page header.,وصف لرأس الصفحة.
+"Description for listing page, in plain text, only a couple of lines. (max 140 characters)","Beschreibung für die Auflistung Seite, im Klartext, nur ein paar Zeilen. (Max 140 Zeichen)"
+Description for page header.,Beschreibung für Seitenkopf.
 Description of a Job Opening,Beschreibung eines Job Opening
 Designation,Bezeichnung
 Desktop,Desktop
 Detailed Breakup of the totals,Detaillierte Breakup der Gesamtsummen
 Details,Details
-Deutsch,الرغبات
+Deutsch,Deutsch
 Did not add.,Haben Sie nicht hinzuzufügen.
 Did not cancel,Haben Sie nicht abbrechen
 Did not save,Nicht speichern
 Difference,Unterschied
 "Different ""States"" this document can exist in. Like ""Open"", ""Pending Approval"" etc.","Different ""Staaten"" in diesem Dokument existieren kann in. Gefällt mir ""Open"", ""Pending Approval"" etc."
-Disable Customer Signup link in Login page,تعطيل الرابط اشترك العملاء في صفحة تسجيل الدخول
-Disable Rounded Total,تعطيل إجمالي مدور
-Disable Signup,تعطيل الاشتراك
+Disable Customer Signup link in Login page,Deaktivieren Kunde anmelden Link in Login-Seite
+Disable Rounded Total,Deaktivieren Abgerundete insgesamt
+Disable Signup,Deaktivieren Anmelden
 Disabled,Behindert
 Discount  %,Discount%
 Discount %,Discount%
@@ -846,7 +853,7 @@
 Display all the individual items delivered with the main items,Alle anzeigen die einzelnen Punkte mit den wichtigsten Liefergegenstände
 Distinct unit of an Item,Separate Einheit eines Elements
 Distribute transport overhead across items.,Verteilen Transport-Overhead auf Gegenstände.
-Distribution,التوزيع
+Distribution,Aufteilung
 Distribution Id,Verteilung Id
 Distribution Name,Namen der Distribution
 Distributor,Verteiler
@@ -864,26 +871,27 @@
 DocType or Field,DocType oder Field
 Document,Dokument
 Document Description,Document Beschreibung
+Document Numbering Series,Belegnummerierung Series
 Document Status transition from ,Document Status Übergang von
 Document Type,Document Type
 Document is only editable by users of role,Dokument ist nur editierbar Nutzer Rolle
 Documentation,Dokumentation
-Documentation Generator Console,وثائق وحدة التحكم مولد
-Documentation Tool,أداة التوثيق
+Documentation Generator Console,Documentation Generator Console
+Documentation Tool,Documentation Tool
 Documents,Unterlagen
-Domain,مجال
+Domain,Domain
 Download Backup,Download von Backup
 Download Materials Required,Herunterladen benötigte Materialien
 Download Template,Vorlage herunterladen
 Download a report containing all raw materials with their latest inventory status,Laden Sie einen Bericht mit allen Rohstoffen mit ihren neuesten Inventar Status
-"Download the Template, fill appropriate data and attach the modified file.All dates and employee combination in the selected period will come in the template, with existing attendance records",تحميل قالب، وملء البيانات المناسبة وإرفاق تواريخ file.All تعديل والجمع بين الموظف في الفترة الزمنية المحددة وسوف يأتي في القالب، مع سجلات الحضور القائمة
+"Download the Template, fill appropriate data and attach the modified file.All dates and employee combination in the selected period will come in the template, with existing attendance records","Laden Sie die Vorlage, füllen entsprechenden Daten und befestigen Sie die modifizierte file.All Termine und Mitarbeiter Kombination in der gewählten Zeit wird in der Vorlage zu kommen, mit den bestehenden Anwesenheitslisten"
 Draft,Entwurf
 Drafts,Dame
 Drag to sort columns,Ziehen Sie Spalten sortieren
-Dropbox,المربع المنسدل
-Dropbox Access Allowed,دروببوإكس الدخول الأليفة
-Dropbox Access Key,دروببوإكس مفتاح الوصول
-Dropbox Access Secret,دروببوإكس الدخول السرية
+Dropbox,Dropbox
+Dropbox Access Allowed,Dropbox-Zugang erlaubt
+Dropbox Access Key,Dropbox Access Key
+Dropbox Access Secret,Dropbox Zugang Geheimnis
 Due Date,Due Date
 EMP/,EMP /
 ESIC CARD No,ESIC CARD Nein
@@ -914,27 +922,27 @@
 Email Signature,E-Mail Signatur
 Email Use SSL,E-Mail verwenden SSL
 "Email addresses, separted by commas",E-Mail-Adressen durch Komma separted
-Email ids separated by commas.,معرفات البريد الإلكتروني مفصولة بفواصل.
+Email ids separated by commas.,E-Mail-IDs durch Komma getrennt.
 "Email settings for jobs email id ""jobs@example.com""","E-Mail-Einstellungen für Jobs email id ""jobs@example.com"""
 "Email settings to extract Leads from sales email id e.g. ""sales@example.com""","E-Mail-Einstellungen zu extrahieren Leads aus dem Verkauf email id zB ""Sales@example.com"""
-Email...,البريد الإلكتروني ...
+Email...,E-Mail ...
 Embed image slideshows in website pages.,Einbetten Bild Diashows in Web-Seiten.
 Emergency Contact Details,Notfall Kontakt
 Emergency Phone Number,Notrufnummer
 Employee,Mitarbeiter
-Employee Birthday,عيد ميلاد موظف
+Employee Birthday,Angestellter Geburtstag
 Employee Designation.,Mitarbeiter Bezeichnung.
 Employee Details,Mitarbeiterdetails
 Employee Education,Mitarbeiterschulung
 Employee External Work History,Mitarbeiter Externe Arbeit Geschichte
-Employee Information,معلومات الموظف
+Employee Information,Employee Information
 Employee Internal Work History,Mitarbeiter Interner Arbeitsbereich Geschichte
 Employee Internal Work Historys,Mitarbeiter Interner Arbeitsbereich Historys
-Employee Leave Approver,الموظف إجازة الموافق
-Employee Leave Balance,الموظف اترك الرصيد
+Employee Leave Approver,Mitarbeiter Leave Approver
+Employee Leave Balance,Mitarbeiter Leave Bilanz
 Employee Name,Name des Mitarbeiters
 Employee Number,Mitarbeiternummer
-Employee Records to be created by ,Mitarbeiter Records erstellt werden
+Employee Records to be created by,Mitarbeiter Records erstellt werden
 Employee Setup,Mitarbeiter-Setup
 Employee Type,Arbeitnehmertyp
 Employee grades,Mitarbeiter-Typen
@@ -944,9 +952,8 @@
 Employees Email Id,Mitarbeiter Email Id
 Employment Details,Beschäftigung Einzelheiten
 Employment Type,Beschäftigungsart
-Enable / disable currencies.,Aktivieren / Deaktivieren der Währungen.
-Enable Auto Inventory Accounting,تمكين المحاسبة الجرد السيارات
-Enable Shopping Cart,تمكين سلة التسوق
+Enable Auto Inventory Accounting,Enable Auto Vorratsbuchhaltung
+Enable Shopping Cart,Aktivieren Einkaufswagen
 Enabled,Aktiviert
 Enables <b>More Info.</b> in all documents,Ermöglicht <b> Mehr Info. </ B> in alle Dokumente
 Encashment Date,Inkasso Datum
@@ -957,7 +964,7 @@
 Enter Email Id to receive Error Report sent by users.E.g.: support@iwebnotes.com,Ihre Email-Id Fehler Bericht users.Eg geschickt bekommen: support@iwebnotes.com
 Enter Form Type,Geben Formulartyp
 Enter Row,Geben Row
-Enter Verification Code,أدخل رمز التحقق
+Enter Verification Code,Sicherheitscode eingeben
 Enter campaign name if the source of lead is campaign.,"Geben Sie Namen der Kampagne, wenn die Quelle von Blei-Kampagne."
 "Enter default value fields (keys) and values. If you add multiple values for a field, the first one will be picked. These defaults are also used to set ""match"" permission rules. To see list of fields, go to <a href=""#Form/Customize Form/Customize Form"">Customize Form</a>.","Geben Standardwert Felder (keys) und Werten. Wenn Sie mehrere Werte für ein Feld hinzufügen, wird die erste abgeholt werden. Diese Standardwerte werden auch verwendet, um ""match"" permission Regeln. Um eine Liste der Felder zu sehen, <a gehen href=""#Form/Customize Form/Customize Form""> Formular anpassen </ a>."
 Enter department to which this Contact belongs,"Geben Abteilung, auf die diese Kontakt gehört"
@@ -973,17 +980,23 @@
 Entries,Einträge
 Entries are not allowed against this Fiscal Year if the year is closed.,"Die Einträge sind nicht gegen diese Geschäftsjahr zulässig, wenn die Jahre geschlossen ist."
 Error,Fehler
-Error for,خطأ لل
-Error: Document has been modified after you have opened it,تم تعديل الوثيقة بعد أن كنت قد فتحه: خطأ
+Error for,Fehler für
+Error: Document has been modified after you have opened it,"Fehler: Dokument wurde geändert, nachdem Sie es geöffnet haben"
 Estimated Material Cost,Geschätzter Materialkalkulationen
 Event,Veranstaltung
+Event End must be after Start,Termin Ende muss nach Anfang sein
 Event Individuals,Event Personen
 Event Role,Event Rolle
 Event Roles,Event Rollen
 Event Type,Ereignistyp
 Event User,Ereignis Benutzer
-Everyone can read,يمكن أن يقرأها الجميع
-Example:,على سبيل المثال:
+Events In Today's Calendar,Events in der heutigen Kalender
+Every Day,Every Day
+Every Month,Jeden Monat
+Every Week,Jede Woche
+Every Year,Jährlich
+Everyone can read,Jeder kann lesen
+Example:,Beispiel:
 Exchange Rate,Wechselkurs
 Excise Page Number,Excise Page Number
 Excise Voucher,Excise Gutschein
@@ -997,7 +1010,7 @@
 Expected End Date,Erwartete Enddatum
 Expected Start Date,Frühestes Eintrittsdatum
 Expense Account,Expense Konto
-Expense Account is mandatory,حساب المصاريف إلزامي
+Expense Account is mandatory,Expense Konto ist obligatorisch
 Expense Claim,Expense Anspruch
 Expense Claim Approved,Expense Anspruch Genehmigt
 Expense Claim Approved Message,Expense Anspruch Genehmigt Nachricht
@@ -1010,20 +1023,18 @@
 Expense Details,Expense Einzelheiten
 Expense Head,Expense Leiter
 Expense account is mandatory for item: ,Expense Konto ist verpflichtend für Artikel:
-Expense/Adjustment Account,حساب المصاريف / تعديل
+Expense/Adjustment Account,Aufwand / Adjustment Konto
 Expenses Booked,Aufwand gebucht
-Expenses Included In Valuation,وشملت النفقات في التقييم
-Expenses booked for the digest period,نفقات حجزها لفترة هضم
+Expenses Included In Valuation,Aufwendungen enthalten In Bewertungstag
+Expenses booked for the digest period,Aufwendungen für den gebuchten Zeitraum Digest
 Expiry Date,Verfallsdatum
 Export,Exportieren
 Exports,Ausfuhr
 External,Extern
 Extract Emails,Auszug Emails
-Extract Job Applicant from jobs email id e.g. jobs@example.com,Auszug Bewerber aus Jobs E-Mail-ID beispielsweise jobs@example.com
-Extract Leads from sales email id e.g. sales@example.com,Auszug Leads aus dem Verkauf email id beispielsweise sales@example.com
 FCFS Rate,FCFS Rate
 FIFO,FIFO
-Facebook Share,الفيسبوك شارك
+Facebook Share,Facebook
 Failed: ,Failed:
 Family Background,Familiärer Hintergrund
 FavIcon,FavIcon
@@ -1042,20 +1053,19 @@
 Fieldname,Fieldname
 Fields,Felder
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Felder durch ein Komma (,) getrennt werden in der <br /> Suche aufgenommen werden </ b> Liste der Such-Dialogfeld"
-File,ملف
+File,Datei
 File Data,File Data
-File Manager,إدارة الملفات
 File Name,File Name
-File Size,حجم الملف
+File Size,Dateigröße
 File URL,File URL
-File size exceeded the maximum allowed size,حجم الملف تجاوز الحجم الأقصى المسموح به
-Files Folder ID,ملفات ID المجلد
+File size exceeded the maximum allowed size,Dateigröße überschritten die maximal zulässige Größe
+Files Folder ID,Dateien Ordner-ID
 Filing in Additional Information about the Opportunity will help you analyze your data better.,"Die Einreichung in Weitere Informationen über die Möglichkeit wird Ihnen helfen, Ihre Daten analysieren besser."
 Filing in Additional Information about the Purchase Receipt will help you analyze your data better.,"Die Einreichung in Zusätzliche Informationen über den Kaufbeleg wird Ihnen helfen, Ihre Daten analysieren besser."
 Filling in Additional Information about the Delivery Note will help you analyze your data better.,"Ausfüllen Zusätzliche Informationen über den Lieferschein wird Ihnen helfen, Ihre Daten analysieren besser."
 Filling in additional information about the Quotation will help you analyze your data better.,"Ausfüllen zusätzliche Informationen über das Angebot wird Ihnen helfen, Ihre Daten analysieren besser."
 Filling in additional information about the Sales Order will help you analyze your data better.,"Ausfüllen zusätzliche Informationen über das Sales Order wird Ihnen helfen, Ihre Daten analysieren besser."
-Filter,تحديد
+Filter,Filtern
 Filter By Amount,Filtern nach Betrag
 Filter By Date,Nach Datum filtern
 Filter based on customer,Filtern basierend auf Kunden-
@@ -1063,20 +1073,19 @@
 Final Confirmation Date,Final Confirmation Datum
 Financial Analytics,Financial Analytics
 Financial Statements,Financial Statements
-Financial Years for books of accounts,Geschäftsjahre Bücher von Konten
 First Name,Vorname
 First Responded On,Zunächst reagierte am
 Fiscal Year,Geschäftsjahr
 Fixed Asset Account,Fixed Asset Konto
 Float,Schweben
 Float Precision,Gleitkommatgenauigkeit
-Follow via Email,متابعة عبر البريد الإلكتروني
-Following Journal Vouchers have been created automatically,تم إنشاؤها في أعقاب قسائم مجلة تلقائيا
+Follow via Email,Folgen Sie via E-Mail
+Following Journal Vouchers have been created automatically,Nach Journal Gutscheine wurden automatisch erstellt
 "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.","Folgende Tabelle zeigt Werte, wenn Artikel sub sind - vergeben werden. Vertragsgegenständen - Diese Werte werden vom Meister der ""Bill of Materials"" von Sub geholt werden."
-Font (Heading),الخط (العنوان)
-Font (Text),الخط (نص)
-Font Size (Text),حجم الخط (نص)
-Fonts,الخطوط
+Font (Heading),Font (Überschrift)
+Font (Text),Font (Text)
+Font Size (Text),Schriftgröße (Text)
+Fonts,Fonts
 Footer,Fußzeile
 Footer Items,Footer Artikel
 For All Users,Für alle Benutzer
@@ -1087,9 +1096,10 @@
 "For Links, enter the DocType as rangeFor Select, enter list of Options separated by comma","Für Links, geben Sie die DocType als rangeFor Select, geben Liste der Optionen durch Komma getrennt"
 For Production,For Production
 For Reference Only.,Nur als Referenz.
-For Sales Invoice,لفاتورة المبيعات
-For Server Side Print Formats,لتنسيقات طباعة جانب الملقم
-For Territory,من أجل الأرض
+For Sales Invoice,Für Sales Invoice
+For Server Side Print Formats,Für Server Side Druckformate
+For Territory,Für Territory
+For UOM,Für Verpackung
 For Warehouse,Für Warehouse
 "For comparative filters, start with","Für vergleichende Filter, mit zu beginnen"
 "For e.g. 2012, 2012-13","Für z.B. 2012, 2012-13"
@@ -1099,34 +1109,36 @@
 For ranges,Für Bereiche
 For reference,Als Referenz
 For reference only.,Nur als Referenz.
-For row,لصف
+For row,Für Zeile
 "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes","Für die Bequemlichkeit der Kunden, können diese Codes in Druckformate wie Rechnungen und Lieferscheine werden"
 Form,Form
 Format: hh:mm example for one hour expiry set as 01:00. Max expiry will be 72 hours. Default is 24 hours,Format: hh: mm Beispiel für 1 Stunde Ablauf als 1.00 eingestellt. Max Ablauf wird 72 Stunden. Standardwert ist 24 Stunden
 Forum,Forum
 Fraction,Bruchteil
 Fraction Units,Fraction Units
-Freeze Stock Entries,تجميد مقالات المالية
+Freeze Stock Entries,Frieren Lager Einträge
 Friday,Freitag
-From,من
+From,Von
+From Bill of Materials,Von Bill of Materials
 From Company,Von Unternehmen
-From Currency,من العملات
-From Currency and To Currency cannot be same,من العملة لعملة ولا يمكن أن يكون نفس
+From Currency,Von Währung
+From Currency and To Currency cannot be same,Von Währung und To Währung dürfen nicht identisch sein
 From Customer,Von Kunden
 From Date,Von Datum
 From Date must be before To Date,Von Datum muss vor dem Laufenden bleiben
-From Delivery Note,من التسليم ملاحظة
+From Delivery Note,Von Lieferschein
 From Employee,Von Mitarbeiter
+From Lead,Von Blei
 From PR Date,Von PR Datum
 From Package No.,Von Package No
-From Purchase Order,من أمر الشراء
-From Purchase Receipt,من إيصال الشراء
-From Sales Order,من ترتيب المبيعات
-From Time,من وقت
-From Value,من القيمة
-From Value should be less than To Value,من القيمة يجب أن تكون أقل من أن القيمة
+From Purchase Order,Von Bestellung
+From Purchase Receipt,Von Kaufbeleg
+From Sales Order,Von Sales Order
+From Time,From Time
+From Value,Von Wert
+From Value should be less than To Value,Von Wert sollte weniger als To Value
 Frozen,Eingefroren
-Fulfilled,الوفاء
+Fulfilled,Erfüllte
 Full Name,Vollständiger Name
 Fully Completed,Vollständig ausgefüllte
 GL Entry,GL Eintrag
@@ -1144,14 +1156,14 @@
 "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.","Generieren Packzettel für Pakete geliefert werden. Verwendet, um Paket-Nummer, der Lieferumfang und sein Gewicht zu benachrichtigen."
 Generates HTML to include selected image in the description,Erzeugt HTML ausgewählte Bild sind in der Beschreibung
 Georgia,Georgia
-Get,الحصول على
+Get,Holen Sie sich
 Get Advances Paid,Holen Geleistete
 Get Advances Received,Holen Erhaltene Anzahlungen
 Get Current Stock,Holen Aktuelle Stock
 Get From ,Holen Sie sich ab
 Get Items,Holen Artikel
+Get Items From Sales Orders,Holen Sie Angebote aus Kundenaufträgen
 Get Last Purchase Rate,Get Last Purchase Rate
-Get Latest Updates,الحصول على آخر التحديثات
 Get Non Reconciled Entries,Holen Non versöhnt Einträge
 Get Outstanding Invoices,Holen Ausstehende Rechnungen
 Get Purchase Receipt,Holen Kaufbeleg
@@ -1161,25 +1173,24 @@
 Get Template,Holen Template
 Get Terms and Conditions,Holen AGB
 Get Weekly Off Dates,Holen Weekly Off Dates
-Get a list of errors encountered by the Scheduler,الحصول على قائمة من الأخطاء حسب جدولة واجه
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Holen Bewertungskurs und verfügbaren Bestand an der Quelle / Ziel-Warehouse am genannten Buchungsdatum-Zeit. Wenn serialisierten Objekt, drücken Sie bitte diese Taste nach Eingabe der Seriennummern nos."
-Give additional details about the indent.,إعطاء تفاصيل إضافية حول المسافة البادئة.
+Give additional details about the indent.,Geben Sie weitere Details zu dem Gedankenstrich.
 Global Defaults,Globale Defaults
 Go back to home,Zurück nach Hause
 Go to Setup > <a href='#user-properties'>User Properties</a> to set \			'territory' for diffent Users.,"Gehe zu> <a Richten href='#user-properties'> User Properties </ a> \ Gebiet ""für diffent Benutzer eingestellt."""
 Goal,Ziel
 Goals,Ziele
 Goods received from Suppliers.,Wareneingang vom Lieferanten.
-Google Analytics ID,جوجل تحليلات ID
-Google Drive,محرك جوجل
-Google Drive Access Allowed,جوجل محرك الوصول الأليفة
-Google Plus One,جوجل زائد واحد
-Google Web Font (Heading),Google ويب الخط (العنوان)
-Google Web Font (Text),Google ويب الخط (نص)
+Google Analytics ID,Google Analytics ID
+Google Drive,Google Drive
+Google Drive Access Allowed,Google Drive Zugang erlaubt
+Google Plus One,Google Plus One
+Google Web Font (Heading),Google Web Font (Überschrift)
+Google Web Font (Text),Google Web Font (Text)
 Grade,Klasse
 Graduate,Absolvent
 Grand Total,Grand Total
-Grand Total (Company Currency),المجموع الكلي (العملات شركة)
+Grand Total (Company Currency),Grand Total (Gesellschaft Währung)
 Gratuity LIC ID,Gratuity LIC ID
 Gross Margin %,Gross Margin%
 Gross Margin Value,Gross Margin Wert
@@ -1193,9 +1204,9 @@
 Group or Ledger,Gruppe oder Ledger
 Groups,Gruppen
 HR,HR
+HR Settings,HR-Einstellungen
 HTML,HTML
 HTML / Banner that will show on the top of product list.,"HTML / Banner, die auf der Oberseite des Produkt-Liste zeigen."
-"HTML print formats for quotes, invoices etc","HTML Druckformate für Angebote, Rechnungen etc"
 Half Day,Half Day
 Half Yearly,Halbjahresfinanzbericht
 Half-yearly,Halbjährlich
@@ -1204,20 +1215,21 @@
 Has Serial No,Hat Serial No
 Header,Kopfzeile
 Heading,Überschrift
-Heading Text As,عنوان النص
+Heading Text As,Unterwegs Text As
 Heads (or groups) against which Accounting Entries are made and balances are maintained.,"Heads (oder Gruppen), gegen die Accounting-Einträge und sind Guthaben gehalten werden."
 Health Concerns,Gesundheitliche Bedenken
 Health Details,Gesundheit Details
 Held On,Hielt
 Help,Hilfe
 Help HTML,Helfen Sie HTML
-"Help: To link to another record in the system, use ""#Form/Note/[Note Name]"" as the Link URL. (don't use ""http://"")",مساعدة: لربط إلى سجل آخر في النظام، استخدم &quot;# نموذج / ملاحظة / [اسم ملاحظة]&quot;، كما URL رابط. (لا تستخدم &quot;الإلكتروني http://&quot;)
+"Help: To link to another record in the system, use ""#Form/Note/[Note Name]"" as the Link URL. (don't use ""http://"")","Hilfe: Um zu einem anderen Datensatz im System zu verknüpfen, verwenden Sie &quot;# Form / Note / [Anmerkung Name]&quot;, wie der Link URL. (Verwenden Sie nicht &quot;http://&quot;)"
 Helvetica Neue,Helvetica Neue
 "Hence, maximum allowed Manufacturing Quantity",Daher maximal erlaubte Menge Fertigung
 "Here you can maintain family details like name and occupation of parent, spouse and children","Hier können Sie pflegen Familie Details wie Name und Beruf der Eltern, Ehepartner und Kinder"
 "Here you can maintain height, weight, allergies, medical concerns etc","Hier können Sie pflegen Größe, Gewicht, Allergien, medizinischen Bedenken etc"
 Hey there! You need to put at least one item in \				the item table.,Hey there! Sie müssen mindestens ein Element in \ dem Punkt Tisch zu legen.
-Hey! There should remain at least one System Manager,مهلا! هناك ينبغي أن تظل إدارة نظام واحد على الأقل
+Hey! All these items have already been invoiced.,Hey! Alle diese Elemente sind bereits in Rechnung gestellt.
+Hey! There should remain at least one System Manager,Hey! Es sollte mindestens eine System-Manager bleiben
 Hidden,Versteckt
 Hide Actions,Ausblenden Aktionen
 Hide Copy,Ausblenden kopieren
@@ -1228,7 +1240,7 @@
 Hide Toolbar,Symbolleiste ausblenden
 High,Hoch
 Highlight,Hervorheben
-History,تاريخ
+History,Geschichte
 History In Company,Geschichte Im Unternehmen
 Hold,Halten
 Holiday,Urlaub
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults","Wie soll diese Währung formatiert werden? Wenn nicht gesetzt, verwenden Standardeinstellungen des Systems"
 How to upload,So laden
 Hrvatski,Hrvatski
+Human Resources,Human Resources
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,"Hurra! Der Tag (e), an dem Sie verlassen \ zusammen mit Urlaub (s) bewerben. Sie müssen nicht für Urlaub beantragen."
 I,Ich
 ID (name) of the entity whose property is to be set,"ID (Name) des Unternehmens, dessen Eigenschaft gesetzt werden"
@@ -1260,25 +1273,26 @@
 IN,IN
 INV,INV
 INV/10-11/,INV/10-11 /
-ITEM,البند
+ITEM,ITEM
 IV,IV
 Icon,Symbol
 Icon will appear on the button,Icon wird auf der Schaltfläche angezeigt
 Id of the profile will be the email.,Id des Profils wird die E-Mail.
 Identification of the package for the delivery (for print),Identifikation des Pakets für die Lieferung (für den Druck)
-If Income or Expense,إذا دخل أو مصروف
+If Income or Expense,Wenn Ertrags-oder Aufwandsposten
 If Monthly Budget Exceeded,Wenn Monthly Budget überschritten
 "If Sale BOM is defined, the actual BOM of the Pack is displayed as table.Available in Delivery Note and Sales Order","Wenn Sale Stücklisten definiert ist, wird die tatsächliche Stückliste des Pack als table.Available in Lieferschein und Sales Order angezeigt"
 "If Supplier Part Number exists for given Item, it gets stored here","Wenn der Lieferant Teilenummer existiert für bestimmte Artikel, wird es hier gespeichert"
 If Yearly Budget Exceeded,Wenn Jahresbudget überschritten
 "If a User does not have access at Level 0, then higher levels are meaningless","Wenn ein Benutzer keinen Zugriff auf Level 0, dann höheren Ebenen sind bedeutungslos"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","Wenn aktiviert, wird Stückliste Baugruppe Artikel für immer Rohstoff betrachtet werden. Andernfalls werden alle Unterbaugruppe Elemente als Ausgangsmaterial behandelt werden."
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Wenn aktiviert, insgesamt nicht. der Arbeitstage zählen Ferien, und dies wird den Wert der Gehalt pro Tag zu reduzieren"
 "If checked, all other workflows become inactive.","Wenn aktiviert, werden alle anderen Workflows inaktiv."
-"If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.",إذا تم، ستضاف رسالة بالبريد الالكتروني مع تنسيق HTML المرفقة لجزء من الجسم البريد الإلكتروني، فضلا المرفق. لإرسال كمرفق فقط، قم بإلغاء تحديد هذا.
+"If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","Wenn aktiviert, wird eine E-Mail mit einer angehängten HTML-Format, einen Teil der EMail Körper sowie Anhang hinzugefügt werden. Um nur als Anhang zu senden, deaktivieren Sie diese."
 "If checked, the Home page will be the default Item Group for the website.","Wenn aktiviert, wird die Startseite der Standard Artikel-Gruppe für die Website."
 "If checked, the tax amount will be considered as already included in the Print Rate / Print Amount","Wenn aktiviert, wird der Steuerbetrag als bereits in der Print Rate / Print Menge aufgenommen werden"
-"If disable, 'Rounded Total' field will not be visible in any transaction",إذا تعطيل، &#39;مدور المشاركات &quot;سيتم الميدان لا تكون مرئية في أي صفقة
-"If enabled, the system will post accounting entries for inventory automatically.",إذا مكن، سيقوم النظام إضافة القيود المحاسبية للمخزون تلقائيا.
+"If disable, 'Rounded Total' field will not be visible in any transaction",Wenn deaktivieren &#39;Abgerundete Total&#39; Feld nicht in einer Transaktion sichtbar
+"If enabled, the system will post accounting entries for inventory automatically.","Wenn aktiviert, wird das System Buchungsposten für Inventar automatisch erstellen."
 "If image is selected, color will be ignored (attach first)","Wenn das Bild ausgewählt ist, wird die Farbe ignoriert (legen zuerst) werden"
 If more than one package of the same type (for print),Wenn mehr als ein Paket des gleichen Typs (print)
 If non standard port (e.g. 587),Wenn Nicht-Standard-Port (zum Beispiel 587)
@@ -1299,24 +1313,24 @@
 Ignore,Ignorieren
 Ignored: ,Ignoriert:
 Image,Bild
-Image Link,رابط الصورة
+Image Link,Link zum Bild
 Image View,Bild anzeigen
 Implementation Partner,Implementation Partner
 Import,Importieren
-Import Attendance,الحضور الاستيراد
+Import Attendance,Import Teilnahme
 Import Log,Import-Logbuch
-Import data from spreadsheet (csv) files,Importieren von Daten aus Tabellen (csv-Dateien)
 Important dates and commitments in your project life cycle,Wichtige Termine und Verpflichtungen in Ihrem Projekt-Lebenszyklus
 Imports,Imports
 In Dialog,Im Dialog
 In Filter,In Filter
-In Hours,في ساعات
+In Hours,In Stunden
 In List View,In Listenansicht
 In Process,In Process
 In Report Filter,Im Berichts-Filter
+In Row,In Row
 In Store,In Store
 In Words,In Worte
-In Words (Company Currency),في كلمات (عملة الشركة)
+In Words (Company Currency),In Words (Gesellschaft Währung)
 In Words (Export) will be visible once you save the Delivery Note.,"In Words (Export) werden sichtbar, sobald Sie den Lieferschein zu speichern."
 In Words will be visible once you save the Delivery Note.,"In Worte sichtbar sein wird, sobald Sie den Lieferschein zu speichern."
 In Words will be visible once you save the Purchase Invoice.,"In Worte sichtbar sein wird, wenn Sie den Kaufbeleg speichern."
@@ -1329,13 +1343,14 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","In der Permission Manager, auf die Schaltfläche in der 'Bedingung' Spalte für die Rolle, die Sie einschränken möchten."
 Incentives,Incentives
 Incharge Name,InCharge Namen
-Income / Expense,الدخل / المصاريف
+Include holidays in Total no. of Working Days,Fügen Sie Urlaub in Summe nicht. der Arbeitstage
+Income / Expense,Erträge / Aufwendungen
 Income Account,Income Konto
-Income Booked,حجز الدخل
+Income Booked,Erträge gebucht
 Income Year to Date,Income Jahr bis Datum
-Income booked for the digest period,حجزت الدخل للفترة هضم
+Income booked for the digest period,Erträge gebucht für die Auszugsperiodeninformation
 Incoming,Eingehende
-Incoming / Support Mail Setting,واردة / دعم إعداد البريد
+Incoming / Support Mail Setting,Incoming / Support Mail Setting
 Incoming Rate,Incoming Rate
 Incoming Time,Eingehende Zeit
 Incoming quality inspection.,Eingehende Qualitätskontrolle.
@@ -1347,8 +1362,9 @@
 Industry Type,Industry Typ
 Info,Info
 Insert After,Einfügen nach
+Insert Below,Darunter einfügen
 Insert Code,Code einfügen
-Insert Row,إدراج صف
+Insert Row,Zeile einfügen
 Insert Style,Legen Stil
 Inspected By,Geprüft von
 Inspection Criteria,Prüfkriterien
@@ -1363,16 +1379,17 @@
 Installed Qty,Installierte Anzahl
 Instructions,Anleitung
 Int,Int
-Integrations,التكاملات
+Integrations,Integrations
 Interested,Interessiert
 Internal,Intern
 Introduce your company to the website visitor.,Präsentieren Sie Ihr Unternehmen auf der Website Besucher.
 Introduction,Einführung
 Introductory information for the Contact Us Page,Einführende Informationen für den Kontakt Seite
-Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,غير صالح للمنازل ملاحظة. تسليم ملاحظة يجب أن تكون موجودة ويجب أن يكون في مشروع الدولة. يرجى تصحيح وحاول مرة أخرى.
-Invalid Email,البريد الإلكتروني غير صحيح
+Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,Ungültige Lieferschein. Lieferschein sollte vorhanden sein und sollte im Entwurf Zustand sein. Bitte korrigieren und versuchen Sie es erneut.
+Invalid Email,Ungültige E-Mail
 Invalid Email Address,Ungültige E-Mail-Adresse
-Invalid Leave Approver,صالح ترك الموافق
+Invalid Item or Warehouse Data,Ungültiger Artikel oder Warehouse Data
+Invalid Leave Approver,Ungültige Lassen Approver
 Inventory,Inventar
 Inverse,Umgekehrt
 Invoice Date,Rechnungsdatum
@@ -1391,7 +1408,7 @@
 Is LWP,Ist LWP
 Is Mandatory Field,Ist Pflichtfeld
 Is Opening,Eröffnet
-Is Opening Entry,تم افتتاح الدخول
+Is Opening Entry,Öffnet Eintrag
 Is PL Account,Ist PL Konto
 Is POS,Ist POS
 Is Primary Contact,Ist Hauptansprechpartner
@@ -1409,16 +1426,16 @@
 Issue,Ausgabe
 Issue Date,Issue Date
 Issue Details,Issue Details
-Issued Items Against Production Order,الأصناف التي صدرت بحق أمر الإنتاج
-It is needed to fetch Item Details.,وهناك حاجة لجلب السلعة.
-It was raised because the (actual + ordered + indented - reserved) 						quantity reaches re-order level when the following record was created,تم رفعه لأن (الفعلي + + أمر بادئة - محفوظة) كمية تصل إلى مستوى إعادة الطلب عندما تم إنشاء السجل التالي
+Issued Items Against Production Order,Ausgestellt Titel Against Fertigungsauftrag
+It is needed to fetch Item Details.,"Es wird benötigt, um Einzelteil-Details zu holen."
+It was raised because the (actual + ordered + indented - reserved) 						quantity reaches re-order level when the following record was created,"Es wurde erhoben, weil die (tatsächliche + Bestellung + eingerückt - reserviert) Menge erreicht re-order-Ebene, wenn die folgenden Datensatz erstellt wurde"
 Item,Artikel
 Item Advanced,Erweiterte Artikel
 Item Barcode,Barcode Artikel
 Item Batch Nos,In Batch Artikel
 Item Classification,Artikel Klassifizierung
 Item Code,Item Code
-Item Code (item_code) is mandatory because Item naming is not sequential.,رمز المدينة (item_code) إلزامي لأن التسمية ليس مادة متسلسلة.
+Item Code (item_code) is mandatory because Item naming is not sequential.,"Item Code (item_code) ist zwingend erforderlich, da Artikel Nennung ist nicht sequentiell."
 Item Customer Detail,Artikel Kundenrezensionen
 Item Description,Artikelbeschreibung
 Item Desription,Artikel Desription
@@ -1428,7 +1445,7 @@
 Item Groups in Details,Details Gruppen in Artikel
 Item Image (if not slideshow),Item Image (wenn nicht Diashow)
 Item Name,Item Name
-Item Naming By,البند تسمية بواسطة
+Item Naming By,Artikel Benennen von
 Item Price,Artikel Preis
 Item Prices,Produkt Preise
 Item Quality Inspection Parameter,Qualitätsprüfung Artikel Parameter
@@ -1451,16 +1468,16 @@
 Item will be saved by this name in the data base.,Einzelteil wird mit diesem Namen in der Datenbank gespeichert werden.
 "Item, Warranty, AMC (Annual Maintenance Contract) details will be automatically fetched when Serial Number is selected.","Artikel, Garantie, wird AMC (Annual Maintenance Contract) Details werden automatisch abgerufen Wenn Serial Number ausgewählt ist."
 Item-Wise Price List,Item-Wise Preisliste
-Item-wise Last Purchase Rate,البند الحكيم آخر سعر الشراء
-Item-wise Purchase History,البند الحكيم تاريخ الشراء
-Item-wise Purchase Register,البند من الحكمة الشراء تسجيل
-Item-wise Sales History,البند الحكيم تاريخ المبيعات
-Item-wise Sales Register,مبيعات البند الحكيم سجل
+Item-wise Last Purchase Rate,Artikel-wise Letzte Purchase Rate
+Item-wise Purchase History,Artikel-wise Kauf-Historie
+Item-wise Purchase Register,Artikel-wise Kauf Register
+Item-wise Sales History,Artikel-wise Vertrieb Geschichte
+Item-wise Sales Register,Artikel-wise Vertrieb Registrieren
 Items,Artikel
 "Items to be requested which are ""Out of Stock"" considering all warehouses based on projected qty and minimum order qty","Welche Gegenstände werden gebeten, sich ""Out of Stock"" unter Berücksichtigung aller Hallen auf projizierte minimale Bestellmenge und Menge der Basis"
 Items which do not exist in Item master can also be entered on customer's request,"Gegenstände, die nicht in Artikelstammdaten nicht existieren kann auch auf Wunsch des Kunden eingegeben werden"
 Itemwise Discount,Discount Itemwise
-Itemwise Recommended Reorder Level,يوصى به Itemwise إعادة ترتيب مستوى
+Itemwise Recommended Reorder Level,Itemwise Empfohlene Meldebestand
 JSON,JSON
 JV,JV
 Javascript,Javascript
@@ -1473,7 +1490,7 @@
 Jobs Email Settings,Jobs per E-Mail Einstellungen
 Journal Entries,Journal Entries
 Journal Entry,Journal Entry
-Journal Entry for inventory that is received but not yet invoiced,إدخال دفتر اليومية عن المخزون التي تم تلقيها حتى الآن ولكن ليس فواتير
+Journal Entry for inventory that is received but not yet invoiced,"Journal Entry für die Inventur, die empfangen, aber noch nicht in Rechnung gestellt"
 Journal Voucher,Journal Gutschein
 Journal Voucher Detail,Journal Voucher Detail
 Journal Voucher Detail No,In Journal Voucher Detail
@@ -1511,7 +1528,6 @@
 Lead Lost,Führung verloren
 Lead Name,Name der Person
 Lead Owner,Blei Owner
-Lead Ref,Blei Ref
 Lead Source,Blei Quelle
 Lead Status,Lead-Status
 Lead Time Date,Lead Time Datum
@@ -1522,8 +1538,8 @@
 Leave Allocation Tool,Lassen Allocation-Tool
 Leave Application,Lassen Anwendung
 Leave Approver,Lassen Approver
-Leave Approver can be one of,ترك الموافق يمكن أن تكون واحدة من
-Leave Approvers,ترك الموافقون
+Leave Approver can be one of,Lassen Approver kann einen der
+Leave Approvers,Lassen genehmigende
 Leave Balance Before Application,Lassen Vor Saldo Anwendung
 Leave Block List,Lassen Block List
 Leave Block List Allow,Lassen Lassen Block List
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,"Freilassen, wenn für alle Bezeichnungen betrachtet"
 Leave blank if considered for all employee types,"Freilassen, wenn für alle Mitarbeiter Typen betrachtet"
 Leave blank if considered for all grades,"Freilassen, wenn für alle Typen gilt als"
+Leave blank if you have not decided the end date.,"Leer lassen, wenn Sie noch nicht entschieden haben, das Enddatum."
 Leave by,Lassen Sie von
 "Leave can be approved by users with Role, ""Leave Approver""","Kann von Benutzern mit Role zugelassen zu verlassen, ""Leave Approver"""
 Ledger,Hauptbuch
@@ -1553,34 +1570,31 @@
 Letter Head,Briefkopf
 Letter Head Image,Briefkopf Bild
 Letter Head Name,Brief Leitung Name
-Letter heads for print,Briefköpfe für Print
 Level,Ebene
 "Level 0 is for document level permissions, higher levels for field level permissions.","Level 0 ist für Dokumenten-Berechtigungen, höhere für die Feldebene Berechtigungen."
 Lft,Lft
 Link,Link
 Link to other pages in the side bar and next section,Link zu anderen Seiten in der Seitenleiste und im nächsten Abschnitt
-Linked In Share,ترتبط في حصة
+Linked In Share,Linked In Teilen
 Linked With,Verbunden mit
 List,Liste
 List items that form the package.,Diese Liste Artikel bilden das Paket.
-List of companies (not customers / suppliers),Liste der Unternehmen (keine Kunden / Lieferanten)
 List of holidays.,Liste der Feiertage.
 List of patches executed,Liste der Patches ausgeführt
 List of records in which this document is linked,Welche Liste der Datensätze in diesem Dokument verknüpft ist
-List of users who can edit a particular Note,قائمة المستخدمين الذين يمكن تعديل معين ملاحظة
+List of users who can edit a particular Note,"Liste der Benutzer, die eine besondere Note bearbeiten können"
 List this Item in multiple groups on the website.,Liste Diesen Artikel in mehrere Gruppen auf der Website.
-"List, delete uploaded files.",القائمة، حذف الملفات التي تم تحميلها.
 Live Chat,Live-Chat
 Load Print View on opening of an existing form,Legen Druckansicht beim Öffnen eines vorhandenen Formulars
 Loading,Laden
 Loading Report,Loading
-Log,سجل
-"Log of Activities performed by users against Tasks that can be used for tracking time, billing.",تسجيل الدخول من الأنشطة التي يقوم بها المستخدمين من المهام التي يمكن استخدامها لتتبع الوقت، والفواتير.
+Log,Anmelden
+"Log of Activities performed by users against Tasks that can be used for tracking time, billing.","Protokoll der Aktivitäten von Nutzern gegen Aufgaben, die zur Zeiterfassung, Abrechnung verwendet werden können durchgeführt werden."
 Log of Scheduler Errors,Melden von Fehlern Scheduler
 Login After,Nach dem Login
 Login Before,Login vor
 Login Id,Login ID
-Logo,شعار
+Logo,Logo
 Logout,Ausloggen
 Long Text,Langtext
 Lost Reason,Verlorene Reason
@@ -1596,6 +1610,7 @@
 Mail Server,Mail Server
 Main Reports,Haupt-Reports
 Main Section,Main Section
+Maintain Same Rate Throughout Sales Cycle,Pflegen gleichen Rate Während Sales Cycle
 Maintain same rate throughout purchase cycle,Pflegen gleichen Rate gesamten Kauf-Zyklus
 Maintenance,Wartung
 Maintenance Date,Wartung Datum
@@ -1603,7 +1618,7 @@
 Maintenance Schedule,Wartungsplan
 Maintenance Schedule Detail,Wartungsplan Details
 Maintenance Schedule Item,Wartungsplan Artikel
-Maintenance Schedules,جداول الصيانة
+Maintenance Schedules,Wartungspläne
 Maintenance Status,Wartungsstatus
 Maintenance Time,Wartung Zeit
 Maintenance Type,Wartung Type
@@ -1612,15 +1627,14 @@
 Major/Optional Subjects,Major / Wahlfächer
 Make Bank Voucher,Machen Bankgutschein
 Make Difference Entry,Machen Difference Eintrag
-Make Time Log Batch,جعل الوقت الدفعة دخول
+Make Time Log Batch,Nehmen Sie sich Zeit Log Batch
 Make a new,Machen Sie einen neuen
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,"Stellen Sie sicher, dass die Transaktionen, die Sie möchten, um die Link-Feld zu beschränken ""Gebiet"" haben, dass die Karten auf den ""Territory"" Master."
 Male,Männlich
-Manage Numbering Series,إدارة ترقيم السلسلة
 Manage cost of operations,Verwalten Kosten der Operationen
-Manage exchange rates for currency conversion,إدارة سعر صرف العملة لتحويل العملات
+Manage exchange rates for currency conversion,Verwalten Wechselkurse für die Währungsumrechnung
 Mandatory,Verpflichtend
-"Mandatory if Stock Item is ""Yes"". Also the default warehouse where reserved quantity is set from Sales Order.",إلزامية إذا البند الأسهم هو &quot;نعم&quot;. أيضا المستودع الافتراضي حيث يتم تعيين الكمية المحجوزة من ترتيب المبيعات.
+"Mandatory if Stock Item is ""Yes"". Also the default warehouse where reserved quantity is set from Sales Order.","Obligatorisch, wenn Lager Artikel ist &quot;Ja&quot;. Auch die Standard-Lager, wo reservierte Menge von Sales Order eingestellt ist."
 Manufacture against Sales Order,Herstellung gegen Sales Order
 Manufacture/Repack,Herstellung / Repack
 Manufactured Qty,Hergestellt Menge
@@ -1650,23 +1664,23 @@
 Material Request Items,Material anfordern Artikel
 Material Request No,Material anfordern On
 Material Request Type,Material Request Type
-Material Request used to make this Stock Entry,طلب المواد المستخدمة لجعل هذا المقال الاوراق المالية
+Material Request used to make this Stock Entry,"Material anfordern verwendet, um dieses Lager Eintrag machen"
+Material Requirement,Material Requirement
 Material Transfer,Material Transfer
 Materials,Materialien
 Materials Required (Exploded),Benötigte Materialien (Explosionszeichnung)
-Materials Requirement Planning (MRP),Materialien Requirement Planning (MRP)
-Max 500 rows only.,ماكس 500 الصفوف فقط.
+Max 500 rows only.,Max 500 Zeilen nur.
 Max Attachments,Max Attachments
 Max Days Leave Allowed,Max Leave Tage erlaubt
 Max Discount (%),Discount Max (%)
 "Meaning of Submit, Cancel, Amend","Bedeutung Absenden, Abbrechen, Amend"
 Medium,Medium
-"Menu items in the Top Bar. For setting the color of the Top Bar, go to <a href=""#Form/Style Settings"">Style Settings</a>","عناصر القائمة في الشريط العلوي. لتحديد لون الشريط العلوي، انتقل إلى <a href=""#Form/Style Settings"">إعدادات نمط</a>"
+"Menu items in the Top Bar. For setting the color of the Top Bar, go to <a href=""#Form/Style Settings"">Style Settings</a>","Menüpunkte in der oberen Leiste. Zum Einstellen der Farbe der Top Bar, zu gehen <a href=""#Form/Style Settings"">Style Einstellungen</a>"
 Merge,Verschmelzen
-Merge Into,الاندماج في
+Merge Into,Verschmelzen zu
 Merge Warehouses,Merge Warehouses
-Merging is only possible between Group-to-Group or 					Ledger-to-Ledger,دمج ممكن فقط بين مجموعة مجموعة إلى مجموعة أو ليدجر إلى ليدجر
-"Merging is only possible if following \					properties are same in both records.					Group or Ledger, Debit or Credit, Is PL Account",دمج غير ممكن إلا إذا عقب \ الخصائص هي نفسها في كل السجلات. مجموعة أو ليدجر، الخصم أو الائتمان، هل الحساب PL
+Merging is only possible between Group-to-Group or 					Ledger-to-Ledger,"Merging ist nur möglich, zwischen Gruppe-zu-Gruppe oder Ledger-to-Ledger"
+"Merging is only possible if following \					properties are same in both records.					Group or Ledger, Debit or Credit, Is PL Account","Merging ist nur möglich, wenn nach \ Eigenschaften sind in beiden Datensätzen gleich. Gruppen-oder Ledger, Debit-oder Kreditkarten, PL Konto"
 Message,Nachricht
 Message Parameter,Nachricht Parameter
 Message greater than 160 character will be splitted into multiple mesage,Größer als 160 Zeichen Nachricht in mehrere mesage aufgeteilt werden
@@ -1688,7 +1702,7 @@
 Mobile No,In Mobile
 Mobile No.,Handy Nr.
 Mode of Payment,Zahlungsweise
-Modern,حديث
+Modern,Moderne
 Modified Amount,Geändert Betrag
 Modified by,Geändert von
 Module,Modul
@@ -1698,8 +1712,9 @@
 Monday,Montag
 Month,Monat
 Monthly,Monatlich
-Monthly Attendance Sheet,ورقة الحضور الشهرية
-Monthly Salary Register,سجل الراتب الشهري
+Monthly Attendance Sheet,Monatliche Anwesenheitsliste
+Monthly Earning & Deduction,Monatlichen Einkommen &amp; Abzug
+Monthly Salary Register,Monatsgehalt Register
 Monthly salary statement.,Monatsgehalt Aussage.
 Monthly salary template.,Monatsgehalt Vorlage.
 More,Mehr
@@ -1711,35 +1726,36 @@
 Mr,Herr
 Ms,Ms
 Multiple Item Prices,Mehrere Artikel Preise
+Multiple root nodes not allowed.,Mehrere Wurzelknoten nicht erlaubt.
 Mupltiple Item prices.,Artikel Mupltiple Preisen.
-Must have report permission to access this report.,يجب أن يكون لديك إذن للوصول إلى تقرير هذا التقرير.
-Must specify a Query to run,يجب تحديد استعلام لتشغيل
+Must be Whole Number,Muss ganze Zahl sein
+Must have report permission to access this report.,"Muss Bericht Erlaubnis, diesen Bericht zugreifen."
+Must specify a Query to run,Muss eine Abfrage angeben zu laufen
 My Settings,Meine Einstellungen
 NL-,NL-
 Name,Name
 Name Case,Name Gehäuse
-Name and Description,الاسم والوصف
-Name and Employee ID,الاسم والرقم الوظيفي
+Name and Description,Name und Beschreibung
+Name and Employee ID,Name und Employee ID
 Name as entered in Sales Partner master,Eingegebene Name in der Master-Vertriebspartner
-Name is required,مطلوب اسم
+Name is required,Name wird benötigt
 Name of organization from where lead has come,"Name der Organisation, wo Blei hat kommen"
 Name of person or organization that this address belongs to.,"Name der Person oder Organisation, dass diese Adresse gehört."
 Name of the Budget Distribution,Name der Verteilung Budget
-Name of the entity who has requested for the Material Request,اسم الكيان الذي المطلوبة لطلب المواد
+Name of the entity who has requested for the Material Request,"Name der Organisation, die für das Material-Anfrage angefordert hat"
 Naming,Benennung
 Naming Series,Benennen Series
-Naming Series mandatory,تسمية السلسلة إلزامية
+Naming Series mandatory,Benennen Series obligatorisch
 Negative balance is not allowed for account ,Negative Bilanz ist nicht für Konto erlaubt
 Net Pay,Net Pay
 Net Pay (in words) will be visible once you save the Salary Slip.,"Net Pay (in Worten) sichtbar sein wird, sobald Sie die Gehaltsabrechnung zu speichern."
 Net Total,Total Net
-Net Total (Company Currency),المجموع الصافي (عملة الشركة)
+Net Total (Company Currency),Net Total (Gesellschaft Währung)
 Net Weight,Nettogewicht
 Net Weight UOM,Nettogewicht UOM
 Net Weight of each Item,Nettogewicht der einzelnen Artikel
-Net pay can not be greater than 1/12th of Annual Cost To Company,صافي الأجر لا يمكن أن تكون أكبر من 1/12th من التكلفة السنوية للشركة
-Net pay can not be negative,صافي الأجر لا يمكن أن تكون سلبية
-Never,أبدا
+Net pay can not be negative,Net Pay kann nicht negativ sein
+Never,Nie
 New,Neu
 New BOM,New BOM
 New Communications,New Communications
@@ -1766,7 +1782,7 @@
 Newsletter,Mitteilungsblatt
 Newsletter Content,Newsletter Inhalt
 Newsletter Status,Status Newsletter
-"Newsletters to contacts, leads.",النشرات الإخبارية إلى جهات الاتصال، ويؤدي.
+"Newsletters to contacts, leads.",Newsletters zu Kontakten führt.
 Next Communcation On,Weiter Communcation On
 Next Contact By,Von Next Kontakt
 Next Contact Date,Weiter Kontakt Datum
@@ -1775,31 +1791,32 @@
 Next actions,Nächste Veranstaltungen
 Next email will be sent on:,Weiter E-Mail wird gesendet:
 No,Auf
-"No Account found in csv file, 							May be company abbreviation is not correct",لم يتم العثور على ملف CSV في الحساب، قد يكون اختصار الشركة ليست تصحيح
+"No Account found in csv file, 							May be company abbreviation is not correct","Kein Konto in csv-Datei gefunden wird, kann sein Unternehmen Abkürzung ist nicht richtig"
 No Action,In Aktion
 No Communication tagged with this ,Keine Kommunikation mit diesem getaggt
 No Copy,No Copy
-No Customer Accounts found. Customer Accounts are identified based on \			'Master Type' value in account record.,لم يتم العثور على حسابات العملاء. ويتم تحديد حسابات العملاء على أساس القيمة \ &#39;نوع الماجستير في سجل الحساب.
-No Item found with Barcode,البند رقم جدت مع الباركود
-No Items to Pack,أي عناصر لحزمة
-No Leave Approvers. Please assign 'Leave Approver' Role to atleast one user.,لا اترك الموافقون. يرجى تعيين &#39;اترك الموافق&#39; دور أتلست مستخدم واحد.
+No Customer Accounts found. Customer Accounts are identified based on \			'Master Type' value in account record.,Keine Kundenkonten gefunden. Kundenkonten werden basierend auf \ &#39;Master Type&#39; Wert in Kontodatensatz identifiziert.
+No Item found with Barcode,Kein Artikel mit Barcode gefunden
+No Items to Pack,Keine Einträge zu packen
+No Leave Approvers. Please assign 'Leave Approver' Role to atleast one user.,Kein genehmigende hinterlassen. Bitte weisen &#39;Leave Approver&#39; Rolle zu einem Benutzer atleast.
 No Permission,In Permission
 No Permission to ,Keine Berechtigung um
 No Permissions set for this criteria.,In die Berechtigungen für diese Kriterien.
-No Report Loaded. Please use query-report/[Report Name] to run a report.,أي تقرير المحملة. الرجاء استخدام استعلام تقرير / [اسم التقرير] لتشغيل التقرير.
-No Supplier Accounts found. Supplier Accounts are identified based on \			'Master Type' value in account record.,لم يتم العثور على مزود الحسابات. ويتم تحديد حسابات المورد على أساس القيمة \ &#39;نوع الماجستير في سجل الحساب.
+No Report Loaded. Please use query-report/[Report Name] to run a report.,"Nein Missbrauch geladen. Bitte verwenden query-Bericht / [Report Name], um einen Bericht auszuführen."
+No Supplier Accounts found. Supplier Accounts are identified based on \			'Master Type' value in account record.,Keine Lieferant Accounts gefunden. Lieferant Accounts basieren auf \ &#39;Master Type&#39; Wert in Kontodatensatz identifiziert.
 No User Properties found.,In der User Properties gefunden.
 No default BOM exists for item: ,Kein Standard BOM existiert für Artikel:
-No further records,لا توجد سجلات أخرى
+No further records,Keine weiteren Datensätze
 No of Requested SMS,Kein SMS Erwünschte
 No of Sent SMS,Kein SMS gesendet
 No of Visits,Anzahl der Besuche
-No one,لا احد
-No record found,العثور على أي سجل
+No one,Keiner
+No permission to write / remove.,Keine Berechtigung zu schreiben / zu entfernen.
+No record found,Kein Eintrag gefunden
 No records tagged.,In den Datensätzen markiert.
 No salary slip found for month: ,Kein Gehaltsabrechnung für den Monat gefunden:
 "No table is created for Single DocTypes, all values are stored in tabSingles as a tuple.","Auf dem Tisch wird für Single doctypes erstellt wurden, werden alle Werte in den tabSingles das Tupel gespeichert."
-None,لا شيء
+None,Keine
 None: End of Workflow,None: End of-Workflow
 Not,Nicht
 Not Active,Nicht aktiv
@@ -1814,13 +1831,13 @@
 Not in Use,Nicht im Einsatz
 Not interested,Kein Interesse
 Not linked,Nicht verbunden
-Note,لاحظ
-Note User,ملاحظة العضو
-Note is a free page where users can share documents / notes,ملاحظة عبارة عن صفحة الحرة حيث يمكن للمستخدمين تبادل الوثائق / ملاحظات
-"Note: Backups and files are not deleted from Dropbox, you will have to delete them manually.",ملاحظة: لا يتم حذف النسخ الاحتياطية والملفات من قطاف، وسوف تضطر إلى حذف عليها يدويا.
-"Note: Backups and files are not deleted from Google Drive, you will have to delete them manually.",ملاحظة: لا يتم حذف النسخ الاحتياطية والملفات من محرك جوجل، سيكون لديك لحذفها يدويا.
+Note,Hinweis
+Note User,Hinweis: User
+Note is a free page where users can share documents / notes,"Hinweis ist eine kostenlose Seite, wo Nutzer Dokumente / Notizen austauschen können"
+"Note: Backups and files are not deleted from Dropbox, you will have to delete them manually.","Hinweis: Backups und Dateien werden nicht von Dropbox gelöscht wird, müssen Sie sie manuell löschen."
+"Note: Backups and files are not deleted from Google Drive, you will have to delete them manually.","Hinweis: Backups und Dateien nicht von Google Drive gelöscht, müssen Sie sie manuell löschen."
 Note: Email will not be sent to disabled users,Hinweis: E-Mail wird nicht für behinderte Nutzer gesendet werden
-"Note: For best results, images must be of the same size and width must be greater than height.",ملاحظة: للحصول على أفضل النتائج، يجب أن تكون الصور من نفس الحجم والعرض يجب أن تكون أكبر من الارتفاع.
+"Note: For best results, images must be of the same size and width must be greater than height.","Hinweis: Für beste Ergebnisse, Bilder müssen die gleiche Größe und Breite muss größer sein als die Höhe."
 Note: Other permission rules may also apply,Hinweis: Weitere Regeln können die Erlaubnis auch gelten
 Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts,Hinweis: Sie können mehrere Kontakte oder Adresse via Adressen & Kontakte verwalten
 Note: maximum attachment size = 1mb,Hinweis: Die maximale Größe von Anhängen = 1mb
@@ -1830,29 +1847,29 @@
 Notification Control,Meldungssteuervorrichtung
 Notification Email Address,Benachrichtigung per E-Mail-Adresse
 Notify By Email,Benachrichtigen Sie Per E-Mail
-Notify by Email on creation of automatic Material Request,إبلاغ عن طريق البريد الإلكتروني على خلق مادة التلقائي طلب
+Notify by Email on creation of automatic Material Request,Benachrichtigen Sie per E-Mail bei der Erstellung von automatischen Werkstoff anfordern
 Number Format,Number Format
 O+,Die +
 O-,O-
 OPPT,OPPT
-Office,مكتب
+Office,Geschäftsstelle
 Old Parent,Old Eltern
 On,Auf
 On Net Total,On Net Total
 On Previous Row Amount,Auf Previous Row Betrag
 On Previous Row Total,Auf Previous Row insgesamt
 "Once you have set this, the users will only be able access documents with that property.","Sobald Sie dies eingestellt haben, werden die Benutzer nur Zugriff auf Dokumente mit dieser Eigenschaft sein."
-Only Administrator allowed to create Query / Script Reports,المسؤول الوحيد المسموح به لإنشاء تقارير الاستعلام / سكربت
-Only Administrator can save a standard report. Please rename and save.,مسؤول فقط يمكن حفظ تقرير القياسية. الرجاء إعادة تسمية وحفظ.
+Only Administrator allowed to create Query / Script Reports,"Nur Administrator erlaubt, Query / Script Reports erstellen"
+Only Administrator can save a standard report. Please rename and save.,Nur Administrator können eine Standard-Bericht. Bitte benennen und zu speichern.
 Only Allow Edit For,Für nur erlauben bearbeiten
-Only Stock Items are allowed for Stock Entry,ويسمح فقط البنود المالية للدخول الاوراق المالية
+Only Stock Items are allowed for Stock Entry,Nur Lagerware für lizenzfreie Eintrag erlaubt
 Only System Manager can create / edit reports,Nur System-Manager können / Berichte bearbeiten
 Only leaf nodes are allowed in transaction,Nur Blattknoten in Transaktion zulässig
 Open,Öffnen
 Open Sans,Offene Sans
 Open Tickets,Open Tickets
 Opening Date,Eröffnungsdatum
-Opening Entry,فتح دخول
+Opening Entry,Öffnungszeiten Eintrag
 Opening Time,Öffnungszeit
 Opening for a Job.,Öffnung für den Job.
 Operating Cost,Betriebskosten
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,Bestellte Artikel geliefert werden
 Ordered Quantity,Bestellte Menge
 Orders released for production.,Bestellungen für die Produktion freigegeben.
-Organization,Organisation
-Organization Profile,الملف الشخصي المنظمة
+Organization Profile,Organisation Profil
 Original Message,Original Message
 Other,Andere
 Other Details,Weitere Details
-Out,خارج
-Out going mail server and support ticket mailbox,Fahren Sie Mail-Server und Mailbox Support-Ticket
+Out,Heraus
 Out of AMC,Von AMC
 Out of Warranty,Außerhalb der Garantie
 Outgoing,Abgehend
@@ -1892,7 +1907,7 @@
 Outstanding for Voucher ,Herausragend für Gutschein
 Over Heads,Über Heads
 Overhead,Oben
-Overlapping Conditions found between,وجدت الشروط المتداخلة بين
+Overlapping Conditions found between,Überschneidungen zwischen AGB gefunden
 Owned,Besitz
 PAN Number,PAN-Nummer
 PF No.,PF Nr.
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),POP3-Mail-Server (pop.gmail.com beispielsweise)
 POP3 server e.g. (pop.gmail.com),POP3-Server beispielsweise (pop.gmail.com)
 POS Setting,POS Setting
+POS View,POS anzeigen
 PR Detail,PR Detailansicht
 PRO,PRO
 PS,PS
@@ -1918,20 +1934,20 @@
 Packing Slip,Packzettel
 Packing Slip Item,Packzettel Artikel
 Packing Slip Items,Packzettel Artikel
-Packing Slip(s) Cancelled,التعبئة زلة (ق) ألغي
+Packing Slip(s) Cancelled,Verpackung Slip (s) Gelöscht
 Page,Seite
-Page Background,خلفية الصفحة
-Page Border,حد الصفحة
+Page Background,Seite Hintergrund
+Page Border,Seite Border
 Page Break,Seitenwechsel
 Page HTML,HTML-Seite
-Page Headings,عناوين الصفحة
-Page Links,الصفحة روابط
+Page Headings,Seite Rubriken
+Page Links,Diese Seite Links
 Page Name,Page Name
 Page Role,Seite Role
-Page Text,نص الصفحة
+Page Text,Seite Text
 Page content,Seiteninhalt
 Page not found,Seite nicht gefunden
-Page text and background is same color. Please change.,نص الصفحة والخلفية هي نفس اللون. الرجاء تغيير.
+Page text and background is same color. Please change.,Text und Hintergrund ist die gleiche Farbe. Bitte ändern.
 Page to show on the website,Seite auf der Webseite zeigen
 "Page url name (auto-generated) (add "".html"")","Seite url Namen (automatisch generierte) (zus. ""Html"")"
 Paid Amount,Gezahlten Betrag
@@ -1945,16 +1961,16 @@
 Parent Label,Eltern Etikett
 Parent Sales Person,Eltern Sales Person
 Parent Territory,Eltern Territory
-Parent is required.,مطلوب الأصل.
+Parent is required.,Elternteil erforderlich.
 Parenttype,ParentType
 Partially Completed,Teilweise abgeschlossen
 Participants,Die Teilnehmer
 Partly Billed,Teilweise Billed
 Partly Delivered,Teilweise Lieferung
-Partner,Partner
 Partner Target Detail,Partner Zieldetailbericht
 Partner Type,Partner Typ
-Partner's Website,موقع الشريك
+Partner's Website,Partner Website
+Passive,Passive
 Passport Number,Passnummer
 Password,Kennwort
 Password Expires in (days),Kennwort läuft ab in (Tage)
@@ -1963,36 +1979,37 @@
 Pay To / Recd From,Pay To / From RECD
 Payables,Verbindlichkeiten
 Payables Group,Verbindlichkeiten Gruppe
-Payment Collection With Ageing,كوكتيل الدفع مع شيخوخة
+Payment Collection With Ageing,Inkasso Mit Ageing
+Payment Days,Zahltage
 Payment Entries,Payment Einträge
 Payment Entry has been modified after you pulled it. 			Please pull it again.,"Payment Eintrag wurde geändert, nachdem Sie ihn gezogen. Bitte ziehen Sie es erneut."
-Payment Made With Ageing,دفع يجعل مع شيخوخة
+Payment Made With Ageing,Zahlung Mit Ageing Gemacht
 Payment Reconciliation,Payment Versöhnung
 Payment Terms,Zahlungsbedingungen
-Payment days,Payment Tag
 Payment to Invoice Matching Tool,Zahlung an Rechnung Matching-Tool
 Payment to Invoice Matching Tool Detail,Zahlung an Rechnung Matching Werkzeug-Detail
 Payments,Zahlungen
-Payments Made,المبالغ المدفوعة
-Payments Received,الدفعات المستلمة
-Payments made during the digest period,المبالغ المدفوعة خلال الفترة دايجست
-Payments received during the digest period,المبالغ التي وردت خلال الفترة دايجست
+Payments Made,Zahlungen
+Payments Received,Erhaltene Anzahlungen
+Payments made during the digest period,Zahlungen während der Auszugsperiodeninformation gemacht
+Payments received during the digest period,Einzahlungen während der Auszugsperiodeninformation
 Payroll Setup,Payroll-Setup
 Pending,Schwebend
 Pending Review,Bis Bewertung
-Pending SO Items For Purchase Request,العناصر المعلقة وذلك لطلب الشراء
+Pending SO Items For Purchase Request,Ausstehend SO Artikel zum Kauf anfordern
 Percent,Prozent
 Percent Complete,Percent Complete
 Percentage Allocation,Prozentuale Aufteilung
+Percentage Allocation should be equal to ,Prozentuale Aufteilung sollte gleich
 Percentage variation in quantity to be allowed while receiving or delivering this item.,Prozentuale Veränderung in der Menge zu dürfen während des Empfangs oder der Lieferung diesen Artikel werden.
-Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,النسبة المئوية يسمح لك لتلقي أو تقديم المزيد من ضد الكمية المطلوبة. على سبيل المثال: إذا كنت قد أمرت 100 وحدة. و10٪ ثم يسمح بدل الخاص بك لتلقي 110 وحدة.
+Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,"Prozentual Sie erlaubt zu empfangen oder zu liefern, mehr gegen die Menge bestellt werden. Zum Beispiel: Wenn Sie 100 Einheiten bestellt. und Ihre Allowance ist 10%, dann dürfen Sie 110 Einheiten erhalten."
 Performance appraisal.,Leistungsbeurteilung.
 Period Closing Voucher,Periodenverschiebung Gutschein
 Periodicity,Periodizität
 Perm Level,Perm Stufe
 Permanent Accommodation Type,Permanent Art der Unterkunft
 Permanent Address,Permanent Address
-Permission,إذن
+Permission,Permission
 Permission Level,Berechtigungsstufe
 Permission Levels,Berechtigungsstufen
 Permission Manager,Permission Manager
@@ -2006,7 +2023,7 @@
 Permissions translate to Users based on what Role they are assigned,"Berechtigungen für Benutzer auf, welche Rolle sie zugeordnet sind, basiert übersetzen"
 Person,Person
 Person To Be Contacted,Person kontaktiert werden
-Personal,الشخصية
+Personal,Persönliche
 Personal Details,Persönliche Details
 Personal Email,Persönliche E-Mail
 Phone,Telefon
@@ -2015,64 +2032,71 @@
 Pick Columns,Wählen Sie Spalten
 Pincode,Pincode
 Place of Issue,Ausstellungsort
-Plan for maintenance visits.,خطة للزيارات الصيانة.
+Plan for maintenance visits.,Plan für die Wartung Besuche.
 Planned Qty,Geplante Menge
 Planned Quantity,Geplante Menge
-Plant,مصنع
+Plant,Pflanze
 Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.,Bitte geben Abkürzung oder das Kurzer Name enquiry.c es auf alle Suffix Konto Heads hinzugefügt werden.
-Please Update Stock UOM with the help of Stock UOM Replace Utility.,يرجى تحديث UOM الأسهم مع مساعدة من الأسهم UOM المرافق استبدال.
-Please attach a file first.,يرجى إرفاق ملف الأول.
-Please attach a file or set a URL,يرجى إرفاق ملف أو تعيين URL
+Please Update Stock UOM with the help of Stock UOM Replace Utility.,Bitte aktualisiere Lager Verpackung mit Hilfe von Auf UOM ersetzen Dienstprogramm.
+Please attach a file first.,Bitte fügen Sie eine Datei zuerst.
+Please attach a file or set a URL,Bitte fügen Sie eine Datei oder stellen Sie eine URL
 Please check,Bitte überprüfen Sie
-Please enter Default Unit of Measure,الرجاء إدخال حدة القياس الافتراضية
-Please enter Delivery Note No or Sales Invoice No to proceed,الرجاء إدخال التسليم ملاحظة لا أو فاتورة المبيعات لا للمضي قدما
-Please enter Expense Account,الرجاء إدخال حساب المصاريف
-Please enter Expense/Adjustment Account,الرجاء إدخال حساب المصاريف / تعديل
-Please enter Purchase Receipt No to proceed,الرجاء إدخال شراء الإيصال لا على المضي قدما
+Please enter Default Unit of Measure,Bitte geben Sie Standard Maßeinheit
+Please enter Delivery Note No or Sales Invoice No to proceed,"Bitte geben Sie Lieferschein oder No Sales Invoice Nein, um fortzufahren"
+Please enter Employee Number,Bitte geben Sie Anzahl der Mitarbeiter
+Please enter Expense Account,Bitte geben Sie Expense Konto
+Please enter Expense/Adjustment Account,Bitte geben Sie Aufwand / Adjustment Konto
+Please enter Purchase Receipt No to proceed,"Bitte geben Kaufbeleg Nein, um fortzufahren"
+Please enter Reserved Warehouse for item ,Bitte geben Reserviert Warehouse für Artikel
 Please enter valid,Bitte geben Sie eine gültige
 Please enter valid ,Bitte geben Sie eine gültige
-Please install dropbox python module,الرجاء تثبيت قطاف بيثون وحدة
-Please make sure that there are no empty columns in the file.,يرجى التأكد من أنه لا توجد أعمدة فارغة في الملف.
-Please mention default value for ',يرجى ذكر القيمة الافتراضية ل&#39;
-Please refresh to get the latest document.,يرجى تحديث للحصول على أحدث وثيقة.
+Please install dropbox python module,Bitte installieren Sie Dropbox Python-Modul
+Please make sure that there are no empty columns in the file.,"Bitte stellen Sie sicher, dass es keine leeren Spalten in der Datei."
+Please mention default value for ',Bitte erwähnen Standardwert für &#39;
+Please reduce qty.,Bitte reduzieren Menge.
+Please refresh to get the latest document.,Bitte aktualisieren Sie das neueste Dokument zu erhalten.
 Please save the Newsletter before sending.,Bitte bewahren Sie den Newsletter vor dem Versenden.
-Please select Bank Account,الرجاء اختيار حساب البنك
+Please select Bank Account,Bitte wählen Sie Bank Account
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Bitte wählen Sie Carry Forward Auch wenn Sie zum vorherigen Geschäftsjahr die Blätter aufnehmen möchten zum Ausgleich in diesem Geschäftsjahr
-Please select Date on which you want to run the report,يرجى تحديد التاريخ الذي تريد تشغيل التقرير
-Please select Time Logs.,الرجاء اختيار التوقيت السجلات.
-Please select a,الرجاء تحديد
-Please select a csv file,يرجى تحديد ملف CSV
-Please select a file or url,يرجى تحديد ملف أو URL
-Please select a service item or change the order type to Sales.,يرجى تحديد عنصر الخدمة أو تغيير نوع النظام في المبيعات.
-Please select a sub-contracted item or do not sub-contract the transaction.,يرجى تحديد عنصر التعاقد من الباطن أو لا التعاقد من الباطن على الصفقة.
-Please select a valid csv file with data.,يرجى تحديد ملف CSV صالح مع البيانات.
-Please select month and year,الرجاء اختيار الشهر والسنة
-Please select the document type first,الرجاء اختيار نوع الوثيقة الأولى
+Please select Date on which you want to run the report,"Bitte wählen Sie Datum, an dem Sie den Bericht ausführen"
+Please select Naming Neries,Bitte wählen Naming Neries
+Please select Price List,Bitte wählen Preisliste
+Please select Time Logs.,Bitte wählen Sie Zeit Logs.
+Please select a,Bitte wählen Sie eine
+Please select a csv file,Bitte wählen Sie eine CSV-Datei
+Please select a file or url,Bitte wählen Sie eine Datei oder URL
+Please select a service item or change the order type to Sales.,"Bitte wählen Sie einen Dienst Artikel oder die Reihenfolge ändern, Typ Sales."
+Please select a sub-contracted item or do not sub-contract the transaction.,Bitte wählen Sie einen Artikel Unteraufträge vergeben werden oder nicht sub-contract die Transaktion.
+Please select a valid csv file with data.,Bitte wählen Sie eine gültige CSV-Datei mit Daten.
+Please select month and year,Bitte wählen Sie Monat und Jahr
+Please select the document type first,Bitte wählen Sie den Dokumententyp ersten
 Please select: ,Bitte wählen Sie:
-Please set Dropbox access keys in,الرجاء تعيين مفاتيح الوصول دروببوإكس في
-Please set Google Drive access keys in,يرجى تعيين مفاتيح الوصول إلى محرك جوجل في
-Please specify,يرجى تحديد
-Please specify Company,يرجى تحديد شركة
-Please specify Company to proceed,يرجى تحديد الشركة للمضي قدما
+Please set Dropbox access keys in,Bitte setzen Dropbox Access Keys in
+Please set Google Drive access keys in,Bitte setzen Google Drive Access Keys in
+Please setup Employee Naming System in Human Resource > HR Settings,Bitte Setup Mitarbeiter Naming System in Human Resource&gt; HR Einstellungen
+Please specify,Bitte geben Sie
+Please specify Company,Bitte geben Unternehmen
+Please specify Company to proceed,"Bitte geben Sie Unternehmen, um fortzufahren"
 Please specify Default Currency in Company Master \			and Global Defaults,Bitte geben Sie Standardwährung in Company Master \ Global and Defaults
-Please specify a Price List which is valid for Territory,الرجاء تحديد قائمة الأسعار التي هي صالحة للأراضي
+Please specify a,Bitte geben Sie eine
+Please specify a Price List which is valid for Territory,Bitte geben Sie einen gültigen Preisliste für Territory ist
 Please specify a valid,Bitte geben Sie eine gültige
-Please specify a valid 'From Case No.',الرجاء تحديد صالح &#39;من القضية رقم&#39;
-Please specify currency in Company,يرجى تحديد العملة في شركة
+Please specify a valid 'From Case No.',Bitte geben Sie eine gültige &quot;Von Fall Nr. &#39;
+Please specify currency in Company,Bitte geben Sie die Währung in Unternehmen
 Point of Sale,Point of Sale
 Point-of-Sale Setting,Point-of-Sale-Einstellung
 Post Graduate,Post Graduate
 Post Topic,Beitrag Thema
-Postal,بريدي
+Postal,Postal
 Posting Date,Buchungsdatum
-Posting Date Time cannot be before,تاريخ النشر التوقيت لا يمكن أن يكون قبل
+Posting Date Time cannot be before,"Buchungsdatum Zeit kann nicht sein, bevor"
 Posting Time,Posting Zeit
-Posts,المشاركات
+Posts,Beiträge
 Potential Sales Deal,Sales Potential Deal
 Potential opportunities for selling.,Potenzielle Chancen für den Verkauf.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","Präzision ist Float Felder (quantities, Rabatte, Prozente etc) nur zur Anzeige. Floats noch bis zu 6 Dezimalstellen berechnet werden."
-Preferred Billing Address,يفضل عنوان الفواتير
-Preferred Shipping Address,النقل البحري المفضل العنوان
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","Präzision für Float Felder (Mengen, Rabatte, Prozente etc). Floats werden bis zu angegebenen Dezimalstellen gerundet werden. Standard = 3"
+Preferred Billing Address,Bevorzugte Rechnungsadresse
+Preferred Shipping Address,Bevorzugte Lieferadresse
 Prefix,Präfix
 Present,Präsentieren
 Prevdoc DocType,Prevdoc DocType
@@ -2081,32 +2105,33 @@
 Previous Work Experience,Berufserfahrung
 Price,Preis
 Price List,Preisliste
-Price List Country,قائمة الأسعار البلد
 Price List Currency,Währung Preisliste
 Price List Currency Conversion Rate,Preisliste Currency Conversion Rate
 Price List Exchange Rate,Preisliste Wechselkurs
 Price List Master,Meister Preisliste
 Price List Name,Preis Name
 Price List Rate,Preis List
-Price List Rate (Company Currency),قائمة الأسعار معدل (عملة الشركة)
+Price List Rate (Company Currency),Preisliste Rate (Gesellschaft Währung)
+Price List for Costing,Preisliste für die Kalkulation
 Price Lists and Rates,Preislisten und Preise
 Primary,Primär
 Print Format,Drucken Format
-Print Format Style,طباعة شكل ستايل
-Print Format Type,طباعة نوع تنسيق
+Print Format Style,Druckformat Stil
+Print Format Type,Drucken Format Type
 Print Heading,Unterwegs drucken
 Print Hide,Drucken ausblenden
 Print Width,Druckbreite
 Print Without Amount,Drucken ohne Amount
-Print...,طباعة ...
+Print...,Drucken ...
 Priority,Priorität
 Private,Privat
-Proceed to Setup,المضي قدما في الإعداد
+Proceed to Setup,Gehen Sie auf Setup
 Process,Prozess
 Process Payroll,Payroll-Prozess
 Produced Quantity,Produziert Menge
 Product Enquiry,Produkt-Anfrage
 Production Order,Fertigungsauftrag
+Production Orders,Fertigungsaufträge
 Production Plan Item,Production Plan Artikel
 Production Plan Items,Production Plan Artikel
 Production Plan Sales Order,Production Plan Sales Order
@@ -2117,8 +2142,8 @@
 Profile,Profil
 Profile Defaults,Profil Defaults
 Profile Represents a User in the system.,Stellt ein Benutzerprofil im System.
-Profile of a Blogger,الملف الشخصي من مدون
-Profile of a blog writer.,الملف الشخصي للكاتب بلوق.
+Profile of a Blogger,Profil eines Blogger
+Profile of a blog writer.,Profil eines Blog-Schreiber.
 Project,Projekt
 Project Costing,Projektkalkulation
 Project Details,Project Details
@@ -2131,10 +2156,9 @@
 Project activity / task.,Projektaktivität / Aufgabe.
 Project master.,Projekt Meister.
 Project will get saved and will be searchable with project name given,Projekt wird gespeichert und erhalten werden durchsuchbare mit Projekt-Namen
-Project wise Stock Tracking,مشروع تتبع حركة الأسهم الحكمة
+Project wise Stock Tracking,Projekt weise Rohteilnachführung
 Projected Qty,Prognostizierte Anzahl
 Projects,Projekte
-Prompt email sending to customers and suppliers,Prompt Mail senden an Kunden und Lieferanten
 Prompt for Email on Submission of,Eingabeaufforderung für E-Mail auf Vorlage von
 Properties,Eigenschaften
 Property,Eigentum
@@ -2144,10 +2168,9 @@
 Provide email id registered in company,Bieten E-Mail-ID in Unternehmen registriert
 Public,Öffentlichkeit
 Published,Veröffentlicht
-Published On,نشرت يوم
+Published On,Veröffentlicht am
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,Ziehen Sie Emails aus dem Posteingang und bringen Sie die Kommunikation Them zeichnet (für bekannte Kontakte).
 Pull Payment Entries,Ziehen Sie Payment Einträge
-Pull items from Sales Order mentioned in the above table.,Ziehen Sie Elemente aus Sales Order in der obigen Tabelle erwähnt.
 Pull sales orders (pending to deliver) based on the above criteria,"Ziehen Sie Kundenaufträge (anhängig zu liefern), basierend auf den oben genannten Kriterien"
 Purchase,Kaufen
 Purchase Analytics,Kauf Analytics
@@ -2157,12 +2180,12 @@
 Purchase Discounts,Kauf Rabatte
 Purchase Document No,Die Kaufdokument
 Purchase Document Type,Kauf Document Type
-Purchase In Transit,شراء في العبور
+Purchase In Transit,Erwerben In Transit
 Purchase Invoice,Kaufrechnung
 Purchase Invoice Advance,Advance Purchase Rechnung
 Purchase Invoice Advances,Kaufrechnung Advances
 Purchase Invoice Item,Kaufrechnung Artikel
-Purchase Invoice Trends,شراء اتجاهات الفاتورة
+Purchase Invoice Trends,Kauf Rechnung Trends
 Purchase Order,Auftragsbestätigung
 Purchase Order Date,Bestelldatum
 Purchase Order Item,Bestellposition
@@ -2170,11 +2193,11 @@
 Purchase Order Item Supplied,Bestellposition geliefert
 Purchase Order Items,Bestellpositionen
 Purchase Order Items Supplied,Bestellung Lieferumfang
-Purchase Order Items To Be Billed,أمر الشراء البنود لتكون وصفت
+Purchase Order Items To Be Billed,Bestellpositionen in Rechnung gestellt werden
 Purchase Order Items To Be Received,Bestellpositionen empfangen werden
 Purchase Order Message,Purchase Order Nachricht
 Purchase Order Required,Bestellung erforderlich
-Purchase Order Trends,شراء اتجاهات ترتيب
+Purchase Order Trends,Purchase Order Trends
 Purchase Order sent by customer,Bestellung durch den Kunden geschickt
 Purchase Orders given to Suppliers.,Bestellungen Angesichts zu Lieferanten.
 Purchase Receipt,Kaufbeleg
@@ -2185,15 +2208,15 @@
 Purchase Receipt Message,Kaufbeleg Nachricht
 Purchase Receipt No,Kaufbeleg
 Purchase Receipt Required,Kaufbeleg erforderlich
-Purchase Receipt Trends,شراء اتجاهات الإيصال
-Purchase Register,سجل شراء
+Purchase Receipt Trends,Kaufbeleg Trends
+Purchase Register,Erwerben Registrieren
 Purchase Return,Kauf zurückgeben
 Purchase Returned,Kehrte Kauf
 Purchase Taxes and Charges,Purchase Steuern und Abgaben
 Purchase Taxes and Charges Master,Steuern und Gebühren Meister Kauf
 Purpose,Zweck
 Purpose must be one of ,Zweck muss einer sein
-Python Module Name,بيثون اسم وحدة
+Python Module Name,Python Module Name
 QA Inspection,QA Inspection
 QAI/11-12/,QAI/11-12 /
 QTN,QTN
@@ -2210,8 +2233,9 @@
 Quantity,Menge
 Quantity Requested for Purchase,Beantragten Menge für Kauf
 Quantity already manufactured,Bereits Menge hergestellt
-Quantity and Rate,كمية وقيم
-Quantity and Warehouse,الكمية والنماذج
+Quantity and Rate,Menge und Preis
+Quantity and Warehouse,Menge und Warehouse
+Quantity cannot be a fraction.,Menge kann nicht ein Bruchteil sein.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Anzahl der Artikel nach der Herstellung / Umpacken vom Angesichts quantities von Rohstoffen Erhalten
 Quantity should be equal to Manufacturing Quantity. ,Menge sollte gleich zum Verarbeitenden Menge.
 Quarter,Quartal
@@ -2219,7 +2243,7 @@
 Query,Abfrage
 Query Options,Abfrageoptionen
 Query Report,Query Report
-Query must be a SELECT,يجب أن يكون الاستعلام SELECT
+Query must be a SELECT,Abfrage muss ein SELECT sein
 Quick Help for Setting Permissions,Schnelle Hilfe für Festlegen von Berechtigungen
 Quick Help for User Properties,Schnelle Hilfe für User Properties
 Quotation,Zitat
@@ -2229,22 +2253,21 @@
 Quotation Lost Reason,Zitat Passwort Reason
 Quotation Message,Quotation Nachricht
 Quotation Sent,Gesendete Quotation
+Quotation Series,Zitat Series
 Quotation To,Um Angebot
-Quotation Trend,تريند الاقتباس
-Quotations received from Suppliers.,الاقتباسات الواردة من الموردين.
+Quotation Trend,Zitat Trend
+Quotations received from Suppliers.,Zitate von Lieferanten erhalten.
 Quotes to Leads or Customers.,Zitate oder Leads zu Kunden.
-Raise Material Request,Heben Material anfordern
 Raise Material Request when stock reaches re-order level,"Heben Anfrage Material erreicht, wenn der Vorrat re-order-Ebene"
-Raise Production Order,Heben Fertigungsauftrag
 Raised By,Raised By
 Raised By (Email),Raised By (E-Mail)
 Random,Zufällig
 Range,Reichweite
 Rate,Rate
 Rate ,Rate
-Rate (Company Currency),معدل (عملة الشركة)
+Rate (Company Currency),Rate (Gesellschaft Währung)
 Rate Of Materials Based On,Rate Of Materialien auf Basis von
-Rate and Amount,معدل والمبلغ
+Rate and Amount,Geschwindigkeit und Menge
 Rate at which Customer Currency is converted to customer's base currency,"Kunden Rate, mit der Währung wird nach Kundenwunsch Basiswährung umgerechnet"
 Rate at which Price list currency is converted to company's base currency,"Geschwindigkeit, mit der Währung der Preisliste zu Unternehmen der Basiswährung umgewandelt wird"
 Rate at which Price list currency is converted to customer's base currency,"Geschwindigkeit, mit der Währung der Preisliste des Kunden Basiswährung umgewandelt wird"
@@ -2252,7 +2275,7 @@
 Rate at which supplier's currency is converted to company's base currency,"Geschwindigkeit, mit der Lieferanten Währung Unternehmens Basiswährung umgewandelt wird"
 Rate at which this tax is applied,"Geschwindigkeit, mit der dieser Steuer an"
 Raw Material Item Code,Artikel Raw Material Code
-Raw Materials Supplied,المواد الخام الموردة
+Raw Materials Supplied,Rohstoffe verfügbar
 Raw Materials Supplied Cost,Kostengünstige Rohstoffe geliefert
 Re-Order Level,Re-Order Stufe
 Re-Order Qty,Re-Order Menge
@@ -2275,13 +2298,14 @@
 Reason for Leaving,Grund für das Verlassen
 Reason for Resignation,Grund zur Resignation
 Recd Quantity,Menge RECD
-Receivable / Payable account will be identified based on the field Master Type,وسوف يتم تحديد حساب القبض / الدفع على أساس نوع ماستر الميدان
+Receivable / Payable account will be identified based on the field Master Type,Forderungen / Verbindlichkeiten Konto wird basierend auf dem Feld Meister Typ identifiziert werden
 Receivables,Forderungen
-Receivables / Payables,الذمم المدينة / الدائنة
+Receivables / Payables,Forderungen / Verbindlichkeiten
 Receivables Group,Forderungen Gruppe
 Received Date,Datum empfangen
+Received Items To Be Billed,Empfangene Nachrichten in Rechnung gestellt werden
 Received Qty,Erhaltene Menge
-Received and Accepted,تلقت ومقبول
+Received and Accepted,Erhalten und angenommen
 Receiver List,Receiver Liste
 Receiver Parameter,Empfänger Parameter
 Recipient,Empfänger
@@ -2289,12 +2313,14 @@
 Reconciliation Data,Datenabgleich
 Reconciliation HTML,HTML Versöhnung
 Reconciliation JSON,Überleitung JSON
-Record item movement.,تسجيل حركة البند.
+Record item movement.,Notieren Sie Artikel Bewegung.
 Recurring Id,Wiederkehrende Id
 Recurring Invoice,Wiederkehrende Rechnung
 Recurring Type,Wiederkehrende Typ
+Reduce Deduction for Leave Without Pay (LWP),Reduzieren Abzug für unbezahlten Urlaub (LWP)
+Reduce Earning for Leave Without Pay (LWP),Reduzieren Sie verdienen für unbezahlten Urlaub (LWP)
 Ref Code,Ref Code
-Ref Date is Mandatory if Ref Number is specified,المرجع التسجيل إلزامي إذا تم تحديد المرجع رقم
+Ref Date is Mandatory if Ref Number is specified,"Ref Datum ist obligatorisch, wenn Ref-Nummer angegeben ist"
 Ref DocType,Ref DocType
 Ref Name,Ref Namen
 Ref Rate,Ref Rate
@@ -2302,13 +2328,15 @@
 Ref Type,Ref Type
 Reference,Referenz
 Reference Date,Stichtag
+Reference DocName,Referenz DocName
+Reference DocType,Referenz DocType
 Reference Name,Reference Name
 Reference Number,Reference Number
 Reference Type,Referenztyp
 Refresh,Erfrischen
-Registered but disabled.,سجل لكن تعطيل.
+Registered but disabled.,"Registriert, aber deaktiviert."
 Registration Details,Registrierung Details
-Registration Details Emailed.,تفاصيل التسجيل عبر البريد الالكتروني.
+Registration Details Emailed.,Details zur Anmeldung zugeschickt.
 Registration Info,Registrierung Info
 Rejected,Abgelehnt
 Rejected Quantity,Abgelehnt Menge
@@ -2320,23 +2348,25 @@
 Remark,Bemerkung
 Remarks,Bemerkungen
 Remove Bookmark,Lesezeichen entfernen
-Rename Log,إعادة تسمية الدخول
+Rename Log,Benennen Anmelden
 Rename Tool,Umbenennen-Tool
-Rename multiple items in one go,إعادة تسمية عناصر متعددة في دفعة واحدة
-Rename...,إعادة تسمية ...
+Rename...,Benennen Sie ...
 Rented,Gemietet
+Repeat On,Wiederholen On
+Repeat Till,Wiederholen Bis
 Repeat on Day of Month,Wiederholen Sie auf Tag des Monats
+Repeat this Event,Wiederholen Sie diesen Termin
 Replace,Ersetzen
 Replace Item / BOM in all BOMs,Ersetzen Item / BOM in allen Stücklisten
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Ersetzen Sie die insbesondere gut in allen anderen Stücklisten, wo sie verwendet wird. Es wird die alte BOM Link zu ersetzen, aktualisieren kosten und regenerieren ""Explosion Stücklistenposition"" Tabelle pro neuen GOOD"
 Replied,Beantwortet
 Report,Bericht
-Report Builder,تقرير منشئ
-Report Builder reports are managed directly by the report builder. Nothing to do.,تدار تقارير منشئ التقرير مباشرة بواسطة منشئ التقرير. لا شيء للقيام به.
+Report Builder,Report Builder
+Report Builder reports are managed directly by the report builder. Nothing to do.,Report Builder-Berichte werden direkt vom Report Builder verwaltet. Nichts zu tun.
 Report Date,Report Date
 Report Hide,Ausblenden Bericht
 Report Name,Report Name
-Report Type,نوع التقرير
+Report Type,Melden Typ
 Report was not saved (there were errors),Bericht wurde nicht gespeichert (es gab Fehler)
 Reports,Reports
 Reports to,Berichte an
@@ -2347,9 +2377,9 @@
 Request for Information,Request for Information
 Request for purchase.,Ankaufsgesuch.
 Requested By,Angefordert von
-Requested Items To Be Ordered,البنود المطلوبة إلى أن يؤمر
-Requested Items To Be Transferred,العناصر المطلوبة على أن يتم تحويلها
-Requests for items.,طلبات البنود.
+Requested Items To Be Ordered,Erwünschte Artikel bestellt werden
+Requested Items To Be Transferred,Erwünschte Objekte übertragen werden
+Requests for items.,Anfragen für Einzelteile.
 Required By,Erforderliche By
 Required Date,Erforderlich Datum
 Required Qty,Erwünschte Stückzahl
@@ -2358,39 +2388,40 @@
 Reseller,Wiederverkäufer
 Reserved Quantity,Reserviert Menge
 Reserved Warehouse,Warehouse Reserved
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,Reserviert Warehouse in Sales Order / Fertigwarenlager
+Reserved Warehouse is missing in Sales Order,Reserviert Warehouse ist in Sales Order fehlt
 Resignation Letter Date,Rücktrittsschreiben Datum
 Resolution,Auflösung
 Resolution Date,Resolution Datum
 Resolution Details,Auflösung Einzelheiten
 Resolved By,Gelöst von
 Restrict IP,Beschränken IP
-Restrict submission rights based on amount,Beschränken Einreichung Rechte nach Betrag
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),Beschränken Sie Benutzer aus dieser IP-Adresse nur. Mehrere IP-Adressen können durch Trennung mit einem Komma hinzugefügt werden. Nimmt auch Teil einer IP-Adressen wie (111.111.111)
 Restricting By User,Durch Einschränken von Benutzerrechten
-Retail,بيع بالتجزئة
+Retail,Einzelhandel
 Retailer,Einzelhändler
 Review Date,Bewerten Datum
 Rgt,Rgt
 Right,Rechts
 Role,Rolle
-Role Allowed to edit frozen stock,دور الأليفة لتحرير الأسهم المجمدة
+Role Allowed to edit frozen stock,Rolle erlaubt den gefrorenen bearbeiten
 Role Name,Rolle Name
-Role that is allowed to submit transactions that exceed credit limits set.,الدور الذي يسمح بتقديم المعاملات التي تتجاوز حدود الائتمان تعيين.
+Role that is allowed to submit transactions that exceed credit limits set.,"Rolle, die erlaubt, Transaktionen, die Kreditlimiten gesetzt überschreiten vorlegen wird."
 Roles,Rollen
 Roles Assigned,Assigned Roles
 Roles Assigned To User,Zugewiesenen Rollen Benutzer
 Roles HTML,Rollen HTML
 Root ,Wurzel
-Root cannot have a parent cost center,الجذر لا يمكن أن يكون مركز تكلفة الأصل
+Root cannot have a parent cost center,Wurzel kann kein übergeordnetes Kostenstelle
 Rounded Total,Abgerundete insgesamt
-Rounded Total (Company Currency),المشاركات تقريب (العملة الشركة)
+Rounded Total (Company Currency),Abgerundete Total (Gesellschaft Währung)
 Row,Reihe
 Row ,Reihe
 Row #,Zeile #
 Row # ,Zeile #
 Rules defining transition of state in the workflow.,Regeln definieren Zustandsübergang im Workflow.
 "Rules for how states are transitions, like next state and which role is allowed to change state etc.","Regeln für die Staaten sind Übergänge, wie neben Staat und welche Rolle darf Staates usw. ändern"
-Rules to calculate shipping amount for a sale,قواعد لحساب كمية الشحن لبيع
+Rules to calculate shipping amount for a sale,Regeln zum Versand Betrag für einen Verkauf berechnen
 SLE Exists,SLE Exists
 SMS,SMS
 SMS Center,SMS Center
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,Gehaltsstruktur Abzug
 Salary Structure Earning,Earning Gehaltsstruktur
 Salary Structure Earnings,Ergebnis Gehaltsstruktur
+Salary breakup based on Earning and Deduction.,Gehalt Trennung auf die Ertragskraft und Deduktion basiert.
 Salary components.,Gehaltsbestandteile.
 Sales,Vertrieb
 Sales Analytics,Sales Analytics
@@ -2438,10 +2470,10 @@
 Sales Invoice,Sales Invoice
 Sales Invoice Advance,Sales Invoice Geleistete
 Sales Invoice Item,Sales Invoice Artikel
-Sales Invoice Items,فاتورة مبيعات وحدات
+Sales Invoice Items,Sales Invoice Artikel
 Sales Invoice Message,Sales Invoice Nachricht
 Sales Invoice No,Sales Invoice In
-Sales Invoice Trends,اتجاهات فاتورة المبيعات
+Sales Invoice Trends,Sales Invoice Trends
 Sales Order,Sales Order
 Sales Order Date,Sales Order Datum
 Sales Order Item,Auftragsposition
@@ -2449,19 +2481,18 @@
 Sales Order Message,Sales Order Nachricht
 Sales Order No,In Sales Order
 Sales Order Required,Sales Order erforderlich
-Sales Order Trend,ترتيب مبيعات تريند
+Sales Order Trend,Sales Order Trend
 Sales Partner,Vertriebspartner
 Sales Partner Name,Sales Partner Name
 Sales Partner Target,Partner Sales Target
-Sales Partners Commission,مبيعات اللجنة الشركاء
+Sales Partners Commission,Vertriebspartner Kommission
 Sales Person,Sales Person
-Sales Person Incharge,شخص المبيعات Incharge
+Sales Person Incharge,Sales Person Incharge
 Sales Person Name,Sales Person Vorname
-Sales Person Target Variance (Item Group-Wise),مبيعات الشخص المستهدف الفرق (البند المجموعة الحكيم)
+Sales Person Target Variance (Item Group-Wise),Sales Person Ziel Variance (Artikel-Nr. Gruppe-Wise)
 Sales Person Targets,Sales Person Targets
-Sales Person-wise Transaction Summary,الشخص الحكيم مبيعات ملخص عملية
-Sales Rate,Vertrieb bewerten
-Sales Register,سجل مبيعات
+Sales Person-wise Transaction Summary,Sales Person-wise Transaction Zusammenfassung
+Sales Register,Verkäufe registrieren
 Sales Return,Umsatzrendite
 Sales Taxes and Charges,Vertrieb Steuern und Abgaben
 Sales Taxes and Charges Master,Vertrieb Steuern und Abgaben Meister
@@ -2474,24 +2505,23 @@
 Sales taxes template.,Umsatzsteuer-Vorlage.
 Sales territories.,Vertriebsgebieten.
 Salutation,Gruß
-Same file has already been attached to the record,وقد تم بالفعل تعلق نفس الملف إلى السجل
+Same file has already been attached to the record,Gleiche Datei bereits auf den Rekordwert angebracht
 Sample Size,Stichprobenumfang
 Sanctioned Amount,Sanktioniert Betrag
 Saturday,Samstag
 Save,Sparen
 Schedule,Planen
-Schedule Details,جدول تفاصيل
+Schedule Details,Termine Details
 Scheduled,Geplant
 Scheduled Confirmation Date,Voraussichtlicher Bestätigung
 Scheduled Date,Voraussichtlicher
-Scheduler Error Log,جدولة سجل خطأ
 Scheduler Log,Scheduler Log
 School/University,Schule / Universität
 Score (0-5),Score (0-5)
 Score Earned,Ergebnis Bekommen
 Scrap %,Scrap%
 Script,Skript
-Script Report,تقرير النصي
+Script Report,Script melden
 Script Type,Script Type
 Script to attach to all web pages.,Script auf alle Webseiten zu befestigen.
 Search,Suchen
@@ -2499,7 +2529,7 @@
 Seasonality for setting budgets.,Saisonalität setzt Budgets.
 Section Break,Section Break
 Security Settings,Security Settings
-"See ""Rate Of Materials Based On"" in Costing Section",انظر &quot;نسبة المواد على أساس&quot; التكلفة في القسم
+"See ""Rate Of Materials Based On"" in Costing Section",Siehe &quot;Rate Of Materials Based On&quot; in der Kalkulation Abschnitt
 Select,Wählen
 "Select ""Yes"" for sub - contracting items","Wählen Sie ""Ja"" für - Zulieferer Artikel"
 "Select ""Yes"" if this item is to be sent to a customer or received from a supplier as a sample. Delivery notes and Purchase Receipts will update stock levels but there will be no invoice against this item.","Wählen Sie ""Ja"", wenn dieser Punkt ist es, an den Kunden gesendet oder empfangen werden vom Lieferanten auf die Probe. Lieferscheine und Kaufbelege werden aktualisiert Lagerbestände, aber es wird auf der Rechnung vor diesem Element sein."
@@ -2516,6 +2546,7 @@
 Select DocType,Wählen DocType
 Select Document Type,Wählen Sie Document Type
 Select Document Type or Role to start.,Wählen Sie Dokumenttyp oder Rolle zu beginnen.
+Select Items,Elemente auswählen
 Select PR,Select PR
 Select Print Format,Wählen Sie Print Format
 Select Print Heading,Wählen Sie Drucken Überschrift
@@ -2524,17 +2555,17 @@
 Select Sales Orders,Wählen Sie Kundenaufträge
 Select Sales Orders from which you want to create Production Orders.,Wählen Sie Aufträge aus der Sie Fertigungsaufträge erstellen.
 Select Terms and Conditions,Wählen AGB
-Select Time Logs and Submit to create a new Sales Invoice.,حدد وقت السجلات وتقديمها إلى إنشاء فاتورة مبيعات جديدة.
+Select Time Logs and Submit to create a new Sales Invoice.,"Wählen Sie Zeit Logs und abschicken, um einen neuen Sales Invoice erstellen."
 Select Transaction,Wählen Sie Transaction
 Select Type,Typ wählen
 Select User or Property to start.,Wählen Sie Benutzer-oder Property zu starten.
-Select a Banner Image first.,تحديد صورة بانر الأول.
+Select a Banner Image first.,Wählen Sie ein Banner Bild zuerst.
 Select account head of the bank where cheque was deposited.,"Wählen Sie den Kopf des Bankkontos, wo Kontrolle abgelagert wurde."
-Select an image of approx width 150px with a transparent background for best results.,اختر صورة من تقريبا عرض 150px مع خلفية شفافة للحصول على أفضل النتائج.
+Select an image of approx width 150px with a transparent background for best results.,Wählen Sie ein Bild von ca. 150px Breite mit einem transparenten Hintergrund für beste Ergebnisse.
 Select company name first.,Wählen Firmennamen erste.
 Select dates to create a new ,"Wählen Sie ihre Reisedaten, um eine neue zu erstellen"
 Select name of Customer to whom project belongs,"Wählen Sie den Namen des Kunden, dem gehört Projekts"
-Select or drag across time slots to create a new event.,حدد أو اسحب عبر فتحات الوقت لإنشاء حدث جديد.
+Select or drag across time slots to create a new event.,Wählen oder ziehen in Zeitfenstern um ein neues Ereignis zu erstellen.
 Select template from which you want to get the Goals,"Wählen Sie aus, welche Vorlage Sie die Ziele erhalten möchten"
 Select the Employee for whom you are creating the Appraisal.,"Wählen Sie den Mitarbeiter, für den Sie erstellen Appraisal."
 Select the currency in which price list is maintained,"Wählen Sie die Währung, in der Preisliste wird beibehalten"
@@ -2550,20 +2581,20 @@
 "Selecting ""Yes"" will allow you to make a Production Order for this item.","Wählen Sie ""Ja"" ermöglicht es Ihnen, einen Fertigungsauftrag für diesen Artikel machen."
 "Selecting ""Yes"" will give a unique identity to each entity of this item which can be viewed in the Serial No master.","Wählen Sie ""Ja"" wird eine einzigartige Identität zu jeder Einheit dieses Artikels, die in der Serial No Master eingesehen werden kann geben."
 Selling,Verkauf
-Selling Settings,بيع إعدادات
+Selling Settings,Verkauf Einstellungen
 Send,Senden
 Send Autoreply,Senden Autoreply
 Send Email,E-Mail senden
 Send From,Senden Von
 Send Invite Email,Senden Sie E-Mail einladen
 Send Me A Copy,Senden Sie mir eine Kopie
-Send Notifications To,إرسال إشعارات إلى
-Send Print in Body and Attachment,إرسال طباعة في الجسم والتعلق
+Send Notifications To,Benachrichtigungen an
+Send Print in Body and Attachment,Senden Drucker in Körper und Anhang
 Send SMS,Senden Sie eine SMS
 Send To,Send To
 Send To Type,Send To Geben
+Send an email reminder in the morning,Senden Sie eine E-Mail-Erinnerung in den Morgen
 Send automatic emails to Contacts on Submitting transactions.,Senden Sie automatische E-Mails an Kontakte auf Einreichen Transaktionen.
-"Send bulk SMS to leads, customers, contacts","Senden Sie Massen-SMS, um Leads, Kunden, Kontakte"
 Send mass SMS to your contacts,Senden Sie Massen-SMS an Ihre Kontakte
 Send regular summary reports via Email.,Senden regelmäßige zusammenfassende Berichte per E-Mail.
 Send to this list,Senden Sie zu dieser Liste
@@ -2580,93 +2611,82 @@
 Serial No Status,Serielle In-Status
 Serial No Warranty Expiry,Serial No Scheckheftgepflegt
 Serialized Item: ',Serialisiert Item '
-Series,Serie
 Series List for this Transaction,Serien-Liste für diese Transaktion
 Server,Server
 Service Address,Service Adresse
-Services,الخدمات
+Services,Dienstleistungen
 Session Expired. Logging you out,Session abgelaufen. Sie werden abgemeldet
 Session Expires in (time),Läuft in Session (Zeit)
 Session Expiry,Session Verfall
 Session Expiry in Hours e.g. 06:00,Session Verfall z. B. in Stunden 06.00
-Set Banner from Image,تعيين راية من الصورة
-Set From Image,Set Von Image
+Set Banner from Image,Set Banner von Image
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,"Set Artikel gruppenweise Budgets auf diesem Gebiet. Sie können Saisonalität auch gehören, indem Sie die Distribution."
 Set Login and Password if authentication is required.,"Stellen Sie Login und Passwort, wenn eine Authentifizierung erforderlich ist."
 Set New Password,Set New Password
 Set Value,Wert festlegen
 "Set a new password and ""Save""","Stellen Sie das neue Kennwort und ""Speichern"""
-Set default values for entry,Standardwerte für die Einreise
-Set default values for users (also used for permissions).,Standardwerte für die Benutzer (auch für Berechtigungen verwendet).
-Set multiple numbering series for transactions,Set Nummerierung Serie für mehrere Transaktionen
-Set permissions on transactions / masters,Festlegen von Berechtigungen für Transaktionen / masters
 Set prefix for numbering series on your transactions,Nummerierung einstellen Serie Präfix für Ihre Online-Transaktionen
 Set targets Item Group-wise for this Sales Person.,Set zielt Artikel gruppenweise für diesen Sales Person.
-Set workflow rules.,Stellen Sie Workflow-Regeln.
 "Set your background color, font and image (tiled)","Stellen Sie Ihre Hintergrundfarbe, Schrift und Bild (Kachel)"
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","Stellen Sie Ihre ausgehende Mail SMTP-Einstellungen hier. Alle System generierten Meldungen werden E-Mails von diesen Mail-Server gehen. Wenn Sie sich nicht sicher sind, lassen Sie dieses Feld leer, um ERPNext Server (E-Mails werden immer noch von Ihrer E-Mail-ID gesendet werden) verwenden oder kontaktieren Sie Ihren E-Mail-Provider."
 Setting Account Type helps in selecting this Account in transactions.,Einstellung Kontotyp hilft bei der Auswahl der Transaktionen in diesem Konto.
-Settings,إعدادات
+Settings,Einstellungen
 Settings for About Us Page.,Einstellungen für Über uns Seite.
-Settings for Accounts,إعدادات الحسابات
-Settings for Buying Module,إعدادات لشراء وحدة
+Settings for Accounts,Einstellungen für Konten
+Settings for Buying Module,Einstellungen für den Kauf Module
 Settings for Contact Us Page,Einstellungen für Kontakt Seite
 Settings for Contact Us Page.,Einstellungen für Kontakt-Seite.
-Settings for Selling Module,إعدادات لبيع وحدة
+Settings for Selling Module,Einstellungen für den Verkauf Module
 Settings for the About Us Page,Einstellungen für die Über uns Seite
 "Settings to extract Job Applicants from a mailbox e.g. ""jobs@example.com""","Einstellungen für Bewerber aus einer Mailbox zB ""jobs@example.com"" extrahieren"
 Setup,Setup
 Setup Control,Setup Control
 Setup Series,Setup-Series
-Setup of Shopping Cart.,الإعداد لسلة التسوق.
+Setup of Shopping Cart.,Aufbau Einkaufswagen.
 Setup of fonts and background.,Setup von Schriftarten und Hintergrund.
 "Setup of top navigation bar, footer and logo.","Setup der oberen Navigationsleiste, Fußzeile und Logo."
-Setup outgoing SMS via your bulk SMS provider,Richten ausgehende SMS über Ihre Massen-SMS-Anbieter
 Setup to pull emails from support email account,Richten Sie E-Mails von E-Mail-Account-Support ziehen
-Share,حصة
-Share With,مشاركة مع
-Shipments to customers.,الشحنات للعملاء.
-Shipping,الشحن
-Shipping Account,حساب الشحن
+Share,Teilen
+Share With,Anziehen
+Shipments to customers.,Lieferungen an Kunden.
+Shipping,Schifffahrt
+Shipping Account,Liefer-Konto
 Shipping Address,Versandadresse
 Shipping Address Name,Liefer-Adresse Name
-Shipping Amount,الشحن المبلغ
-Shipping Rule,الشحن القاعدة
-Shipping Rule Condition,الشحن القاعدة حالة
-Shipping Rule Conditions,الشحن شروط القاعدة
-Shipping Rule Label,الشحن تسمية القاعدة
-Shipping Rules,قواعد الشحن
-Shop,تسوق
-Shopping Cart,سلة التسوق
-Shopping Cart Price List,عربة التسوق قائمة الأسعار
-Shopping Cart Price Lists,سلة التسوق قوائم الأسعار
-Shopping Cart Settings,إعدادات سلة التسوق
-Shopping Cart Shipping Rule,سلة التسوق الشحن القاعدة
-Shopping Cart Shipping Rules,سلة التسوق قواعد الشحن
-Shopping Cart Taxes and Charges Master,التسوق سلة الضرائب والرسوم ماجستير
-Shopping Cart Taxes and Charges Masters,التسوق سلة الضرائب والرسوم الماجستير
-Short Bio,بيو قصيرة
-Short Name,الاسم المختصر
+Shipping Amount,Liefer-Betrag
+Shipping Rule,Liefer-Regel
+Shipping Rule Condition,Liefer-Rule Condition
+Shipping Rule Conditions,Liefer-Rule AGB
+Shipping Rule Label,Liefer-Rule Etikett
+Shipping Rules,Liefer-Regeln
+Shop,Im Shop
+Shopping Cart,Einkaufswagen
+Shopping Cart Price List,Einkaufswagen Preisliste
+Shopping Cart Price Lists,Einkaufswagen Preislisten
+Shopping Cart Settings,Einkaufswagen Einstellungen
+Shopping Cart Shipping Rule,Einkaufswagen Versandkosten Rule
+Shopping Cart Shipping Rules,Einkaufswagen Versandkosten Rules
+Shopping Cart Taxes and Charges Master,Einkaufswagen Steuern und Gebühren Meister
+Shopping Cart Taxes and Charges Masters,Einkaufswagen Steuern und Gebühren Masters
+Short Bio,Kurzbiografie
+Short Name,Kurzer Name
 Short biography for website and other publications.,Kurzbiographie für die Website und anderen Publikationen.
 Shortcut,Abkürzung
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Anzeigen ""Im Lager"" oder ""Nicht auf Lager"", basierend auf verfügbaren Bestand in diesem Lager."
-Show / Hide Modules,Show / Hide Modules
 Show Details,Details anzeigen
-Show In Website,تظهر في الموقع
+Show In Website,Zeigen Sie in der Webseite
 Show Print First,Erste Show Print
 Show a slideshow at the top of the page,Zeige die Slideshow an der Spitze der Seite
 Show in Website,Zeigen Sie im Website
 Show rows with zero values,Zeige Zeilen mit Nullwerten
 Show this slideshow at the top of the page,Zeige diese Slideshow an der Spitze der Seite
-"Show, hide modules","Anzeigen, Ausblenden Modulen"
 Showing only for,Zeige nur für
 Signature,Unterschrift
 Signature to be appended at the end of every email,Unterschrift am Ende jeder E-Mail angehängt werden
-Simplify entry forms by disabling features,Vereinfachen Anmeldeformulare durch Deaktivieren von Funktionen
 Single,Single
-Single Post (article).,مشاركة واحدة (المادة).
+Single Post (article).,Single Post (Artikel).
 Single unit of an Item.,Einzelgerät eines Elements.
-Sitemap Domain,خريطة الموقع المجال
+Sitemap Domain,Sitemap Domain
 Slideshow,Slideshow
 Slideshow Items,Slideshow Artikel
 Slideshow Name,Slideshow Namen
@@ -2676,22 +2696,23 @@
 Sorry we were unable to find what you were looking for.,"Leider waren wir nicht in der Lage zu finden, was Sie suchen."
 Sorry you are not permitted to view this page.,"Leider sind Sie nicht berechtigt, diese Seite anzuzeigen."
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,Sorry! Wir können nur bis zu 100 Zeilen für Stock Reconciliation ermöglichen.
-Sorry. Companies cannot be merged,آسف. لا يمكن دمج الشركات
-Sorry. Serial Nos. cannot be merged,آسف. لا يمكن دمج الأرقام التسلسلية
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","Es tut uns leid! Sie können nicht ändern Unternehmens Standard-Währung, weil es bestehende Transaktionen dagegen sind. Sie müssen diese Transaktionen zu stornieren, wenn Sie die Standard-Währung ändern möchten."
+Sorry. Companies cannot be merged,Entschuldigung. Unternehmen können nicht zusammengeführt werden
+Sorry. Serial Nos. cannot be merged,Entschuldigung. Seriennummern können nicht zusammengeführt werden
 Sort By,Sortieren nach
 Source,Quelle
 Source Warehouse,Quelle Warehouse
 Source and Target Warehouse cannot be same,Quelle und Ziel Warehouse kann nicht gleichzeitig
 Source of th,Quelle th
 "Source of the lead. If via a campaign, select ""Campaign""","Quelle der Leitung. Wenn über die Kampagne, wählen Sie ""Kampagne"""
-Spartan,إسبارطي
+Spartan,Spartan
 Special Page Settings,Spezielle Einstellungen Seite
 Specification Details,Ausschreibungstexte
-Specify Exchange Rate to convert one currency into another,تحديد سعر الصرف لتحويل العملة واحد إلى آخر
-"Specify a list of Territories, for which, this Price List is valid",تحديد قائمة الأقاليم، والتي، وهذا قائمة السعر غير صالحة
-"Specify a list of Territories, for which, this Shipping Rule is valid",تحديد قائمة الأقاليم، والتي، وهذا الشحن القاعدة صالحة
-"Specify a list of Territories, for which, this Taxes Master is valid",تحديد قائمة الأقاليم، والتي، وهذا ماستر الضرائب غير صالحة
-Specify conditions to calculate shipping amount,تحديد شروط لحساب كمية الشحن
+Specify Exchange Rate to convert one currency into another,Geben Wechselkurs einer Währung in eine andere umzuwandeln
+"Specify a list of Territories, for which, this Price List is valid","Geben Sie eine Liste der Gebiete, für die ist diese Preisliste gültig"
+"Specify a list of Territories, for which, this Shipping Rule is valid","Geben Sie eine Liste der Gebiete, für die ist diese Regel gültig Versand"
+"Specify a list of Territories, for which, this Taxes Master is valid","Geben Sie eine Liste der Gebiete, für die ist diese Steuern Meister gültig"
+Specify conditions to calculate shipping amount,Geben Sie Bedingungen für die Schifffahrt zu berechnen
 Split Delivery Note into packages.,Aufgeteilt in Pakete Lieferschein.
 Standard,Standard
 Standard Rate,Standardpreis
@@ -2708,32 +2729,32 @@
 Static Parameters,Statische Parameter
 Status,Status
 Status must be one of ,Der Status muss einer sein
-Status should be Submitted,وينبغي أن الوضع أحيل
+Status should be Submitted,Der Status vorgelegt werden sollte
 Statutory info and other general information about your Supplier,Gesetzliche Informationen und andere allgemeine Informationen über Ihr Lieferant
 Stock,Lager
-Stock Adjustment Account,حساب تسوية الأوراق المالية
-Stock Adjustment Cost Center,أسهم التكيف مركز التكلفة
+Stock Adjustment Account,Auf Adjustment Konto
+Stock Adjustment Cost Center,Auf die Anpassung der Kostenstellenrechnung
 Stock Ageing,Lager Ageing
 Stock Analytics,Lager Analytics
 Stock Balance,Bestandsliste
 Stock Entry,Lager Eintrag
 Stock Entry Detail,Lager Eintrag Details
 Stock Frozen Upto,Lager Bis gefroren
-Stock In Hand Account,الأسهم في حساب اليد
+Stock In Hand Account,Vorrat in der Hand Konto
 Stock Ledger,Lager Ledger
 Stock Ledger Entry,Lager Ledger Eintrag
 Stock Level,Stock Level
 Stock Qty,Lieferbar Menge
 Stock Queue (FIFO),Lager Queue (FIFO)
-Stock Received But Not Billed,الأسهم المتلقى ولكن لا توصف
+Stock Received But Not Billed,"Auf empfangen, aber nicht Angekündigt"
 Stock Reconciliation,Lager Versöhnung
 Stock Reconciliation file not uploaded,Lager Versöhnung Datei nicht hochgeladen
-Stock Settings,إعدادات الأسهم
+Stock Settings,Auf Einstellungen
 Stock UOM,Lager UOM
 Stock UOM Replace Utility,Lager UOM ersetzen Dienstprogramm
 Stock Uom,Lager ME
 Stock Value,Bestandswert
-Stock Value Difference,قيمة الأسهم الفرق
+Stock Value Difference,Auf Wertdifferenz
 Stop,Stoppen
 Stop users from making Leave Applications on following days.,Stoppen Sie den Nutzer von Leave Anwendungen auf folgenden Tagen.
 Stopped,Gestoppt
@@ -2751,32 +2772,33 @@
 Submit Salary Slip,Senden Gehaltsabrechnung
 Submit all salary slips for the above selected criteria,Reichen Sie alle Gehaltsabrechnungen für die oben ausgewählten Kriterien
 Submitted,Eingereicht
-Submitted Record cannot be deleted,لا يمكن حذف سجل المقدمة
-Subsidiary,شركة فرعية
+Submitted Record cannot be deleted,Eingereicht Datensatz kann nicht gelöscht werden
+Subsidiary,Tochtergesellschaft
 Success,Erfolg
 Successful: ,Erfolgreich:
 Suggestion,Vorschlag
 Suggestions,Vorschläge
 Sunday,Sonntag
 Supplier,Lieferant
+Supplier (Payable) Account,Lieferant (zahlbar) Konto
 Supplier (vendor) name as entered in supplier master,Lieferant (Kreditor) Namen wie im Lieferantenstamm eingetragen
-Supplier Account Head,رئيس حساب المورد
+Supplier Account Head,Lieferant Konto Leiter
 Supplier Address,Lieferant Adresse
 Supplier Details,Supplier Details
 Supplier Intro,Lieferant Intro
-Supplier Invoice Date,المورد فاتورة التسجيل
-Supplier Invoice No,المورد الفاتورة لا
+Supplier Invoice Date,Lieferantenrechnung Datum
+Supplier Invoice No,Lieferant Rechnung Nr.
 Supplier Name,Name des Anbieters
-Supplier Naming By,المورد تسمية بواسطة
+Supplier Naming By,Lieferant Benennen von
 Supplier Part Number,Lieferant Teilenummer
 Supplier Quotation,Lieferant Angebot
 Supplier Quotation Item,Lieferant Angebotsposition
 Supplier Reference,Lieferant Reference
-Supplier Shipment Date,شحنة المورد والتسجيل
-Supplier Shipment No,شحنة المورد لا
+Supplier Shipment Date,Lieferant Warensendung Datum
+Supplier Shipment No,Lieferant Versand Keine
 Supplier Type,Lieferant Typ
 Supplier Warehouse,Lieferant Warehouse
-Supplier Warehouse mandatory subcontracted purchase receipt,مستودع المورد إلزامية إيصال الشراء من الباطن
+Supplier Warehouse mandatory subcontracted purchase receipt,Lieferant Warehouse zwingend vergeben Kaufbeleg
 Supplier classification.,Lieferant Klassifizierung.
 Supplier database.,Lieferanten-Datenbank.
 Supplier of Goods or Services.,Lieferant von Waren oder Dienstleistungen.
@@ -2788,19 +2810,18 @@
 Support Email Id,Unterstützt E-Mail-Id
 Support Password,Support Passwort
 Support Ticket,Support Ticket
-Support queries from customers.,دعم الاستفسارات من العملاء.
+Support queries from customers.,Support-Anfragen von Kunden.
 Symbol,Symbol
 Sync Inbox,Sync Posteingang
 Sync Support Mails,Sync Unterstützung Mails
-Sync backups with remote tools like Dropbox etc.,مزامنة النسخ الاحتياطي مع أدوات البعيد مثل دروببوإكس الخ
-Sync with Dropbox,مزامنة مع Dropbox
-Sync with Google Drive,متزامنا مع محرك جوجل
+Sync with Dropbox,Sync mit Dropbox
+Sync with Google Drive,Sync mit Google Drive
 System,System
 System Defaults,System Defaults
-System Settings,إعدادات النظام
+System Settings,Systemeinstellungen
 System User,System User
 "System User (login) ID. If set, it will become default for all HR forms.","System User (login) ID. Wenn gesetzt, wird es standardmäßig für alle HR-Formulare werden."
-System for managing Backups,نظام لإدارة النسخ الاحتياطية
+System for managing Backups,System zur Verwaltung von Backups
 System generated mails will be sent from this email id.,System generierten E-Mails werden von dieser E-Mail-ID gesendet werden.
 TL-,TL-
 TLB-,TLB-
@@ -2822,8 +2843,8 @@
 Task Details,Task Details
 Tax,Steuer
 Tax Calculation,Steuerberechnung
-Tax Category can not be 'Valuation' or 'Valuation and Total' 					as all items are non-stock items,ضريبة الفئة لا يمكن أن يكون &#39;التقييم&#39; أو &#39;التقييم وتوتال&#39; كما كل العناصر هي العناصر غير الأسهم
-Tax Master,ماستر الضرائب
+Tax Category can not be 'Valuation' or 'Valuation and Total' 					as all items are non-stock items,"MwSt. Kategorie kann nicht &quot;Bewertungstag&quot; oder &quot;Bewertung und Total &#39;sein, da alle Artikel nicht auf Lager gehalten werden"
+Tax Master,Tax Meister
 Tax Rate,Tax Rate
 Tax Template for Purchase,MwSt. Vorlage für Kauf
 Tax Template for Sales,MwSt. Template für Vertrieb
@@ -2833,12 +2854,12 @@
 Taxes,Steuern
 Taxes and Charges,Steuern und Abgaben
 Taxes and Charges Added,Steuern und Abgaben am
-Taxes and Charges Added (Company Currency),الضرائب والرسوم المضافة (عملة الشركة)
+Taxes and Charges Added (Company Currency),Steuern und Gebühren Added (Gesellschaft Währung)
 Taxes and Charges Calculation,Steuern und Gebühren Berechnung
 Taxes and Charges Deducted,Steuern und Gebühren Abgezogen
-Taxes and Charges Deducted (Company Currency),الضرائب والرسوم مقطوعة (عملة الشركة)
+Taxes and Charges Deducted (Company Currency),Steuern und Gebühren Abzug (Gesellschaft Währung)
 Taxes and Charges Total,Steuern und Gebühren gesamt
-Taxes and Charges Total (Company Currency),الضرائب والرسوم المشاركات (عملة الشركة)
+Taxes and Charges Total (Company Currency),Steuern und Abgaben insgesamt (Gesellschaft Währung)
 Taxes and Charges1,Steuern und Kosten1
 Team Members,Teammitglieder
 Team Members Heading,Teammitglieder Überschrift
@@ -2853,7 +2874,7 @@
 Territory,Gebiet
 Territory Manager,Territory Manager
 Territory Name,Territory Namen
-Territory Target Variance (Item Group-Wise),الأراضي المستهدفة الفرق (البند المجموعة الحكيم)
+Territory Target Variance (Item Group-Wise),Territory Ziel Variance (Artikel-Nr. Gruppe-Wise)
 Territory Targets,Territory Targets
 Test,Test
 Test Email Id,Test Email Id
@@ -2865,13 +2886,12 @@
 "The ""Web Page"" that is the website home page","Die ""Web Page"", die Homepage der Website ist"
 The BOM which will be replaced,"Die Stückliste, die ersetzt werden"
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""","Das Element, das das Paket darstellt. Dieser Artikel muss ""Ist Stock Item"" als ""Nein"" und ""Ist Vertrieb Item"" als ""Ja"""
-The account to which you will pay (have paid) the money to.,"Das Konto, auf die Sie bezahlen (bezahlt) das Geld."
 The date at which current entry is made in system.,"Das Datum, an dem aktuellen Eintrag im System hergestellt wird."
 The date at which current entry will get or has actually executed.,"Das Datum, an dem aktuellen Eintrag zu erhalten oder wird tatsächlich ausgeführt."
 The date on which next invoice will be generated. It is generated on submit.,"Der Tag, an dem nächsten Rechnung generiert werden. Es basiert auf einzureichen generiert."
 The date on which recurring invoice will be stop,"Der Tag, an dem wiederkehrende Rechnung werden aufhören wird"
 "The day of the month on which auto invoice will be generated e.g. 05, 28 etc ","Der Tag des Monats, an dem auto Rechnung zB 05, 28 usw. generiert werden"
-The first Leave Approver in the list will be set as the default Leave Approver,سيتم تعيين أول اترك الموافق في القائمة بوصفها الإجازة الموافق الافتراضي
+The first Leave Approver in the list will be set as the default Leave Approver,Die erste Leave Approver in der Liste wird als Standard-Leave Approver eingestellt werden
 The gross weight of the package. Usually net weight + packaging material weight. (for print),Das Bruttogewicht des Pakets. Normalerweise Eigengewicht + Verpackungsmaterial Gewicht. (Zum Drucken)
 The name of your company / website as you want to appear on browser title bar. All pages will have this as the prefix to the title.,"Der Name Ihrer Firma / Website, wie Sie auf Titelleiste des Browsers angezeigt werden soll. Alle Seiten werden diese als Präfix für den Titel haben."
 The net weight of this package. (calculated automatically as sum of net weight of items),Das Nettogewicht dieses Pakets. (Automatisch als Summe der Netto-Gewicht der Sendungen berechnet)
@@ -2885,35 +2905,35 @@
 These properties will appear as values in forms that contain them.,"Diese Eigenschaften werden als Werte in Formen, die sie enthalten, erscheinen."
 These values will be automatically updated in transactions and also will be useful to restrict permissions for this user on transactions containing these values.,"Diese Werte werden automatisch in Transaktionen aktualisiert werden und wird auch nützlich sein, um Berechtigungen für diesen Benutzer auf Transaktionen mit diesen Werten zu beschränken."
 This Price List will be selected as default for all Customers under this Group.,Diese Preisliste wird als Standard für alle Kunden unter dieser Gruppe ausgewählt werden.
-This Time Log Batch has been billed.,وتوصف هذه الدفعة دخول الوقت.
-This Time Log Batch has been cancelled.,تم إلغاء هذه الدفعة دخول الوقت.
-This Time Log conflicts with,الصراعات دخول هذه المرة مع
-This account will be used to maintain value of available stock,سيتم استخدام هذا الحساب للحفاظ على قيمة الأوراق المالية المتاحة
+This Time Log Batch has been billed.,This Time Log Batch abgerechnet hat.
+This Time Log Batch has been cancelled.,This Time Log Batch wurde abgebrochen.
+This Time Log conflicts with,This Time Log Konflikte mit
+This account will be used to maintain value of available stock,Dieses Konto wird auf den Wert der verfügbaren Bestand zu halten
 This currency will get fetched in Purchase transactions of this supplier,Diese Währung wird in Kauf Transaktionen dieser Lieferanten bekommen geholt
 This currency will get fetched in Sales transactions of this customer,Diese Währung wird in Sales Transaktionen dieser Kunden erhalten geholt
-"This feature is for merging duplicate warehouses. It will replace all the links of this warehouse by ""Merge Into"" warehouse. After merging you can delete this warehouse, as stock level for this warehouse will be zero.",وتعتبر هذه الميزة لدمج المستودعات مكررة. فإنه سيتم استبدال جميع الروابط من هذا المستودع عن طريق &quot;الاندماج في&quot; مستودع. بعد دمج يمكنك حذف هذا المستودع، ومستوى المخزون لهذا المستودع سوف يكون صفرا.
-This feature is only applicable to self hosted instances,هذه الميزة لا ينطبق إلا على الحالات المستضافة ذاتيا
+"This feature is for merging duplicate warehouses. It will replace all the links of this warehouse by ""Merge Into"" warehouse. After merging you can delete this warehouse, as stock level for this warehouse will be zero.","Diese Funktion ist für das Zusammenführen von doppelten Lagern. Es werden alle Links dieses Lager durch warehouse &quot;Into Merge&quot; zu ersetzen. Nach dem Zusammenführen löschen Sie dieses Warehouse, da Lagerbestände für dieses Lager wird gleich Null sein."
+This feature is only applicable to self hosted instances,Diese Funktion ist nur für selbst gehostete Instanzen
 This field will appear only if the fieldname defined here has value OR the rules are true (examples): <br>myfieldeval:doc.myfield=='My Value'<br>eval:doc.age>18,"Dieses Feld wird nur angezeigt, wenn der Feldname hier definierten Wert hat oder die Regeln wahr sind (Beispiele): <br> myfieldeval: doc.myfield == 'My Value' <br> eval: doc.age> 18"
 This goes above the slideshow.,Dies geht über die Diashow.
 This is PERMANENT action and you cannot undo. Continue?,Dies ist PERMANENT Aktion und können nicht rückgängig gemacht werden. Weiter?
-This is an auto generated Material Request.,هذه هي السيارات التي ولدت طلب المواد.
+This is an auto generated Material Request.,Dies ist eine automatische generierte Werkstoff anfordern.
 This is permanent action and you cannot undo. Continue?,Dies ist ständige Aktion und können nicht rückgängig gemacht werden. Weiter?
 This is the number of the last created transaction with this prefix,Dies ist die Nummer des zuletzt erzeugte Transaktion mit diesem Präfix
-This message goes away after you create your first customer.,هذه الرسالة يذهب بعيدا بعد إنشاء أول زبون لديك.
+This message goes away after you create your first customer.,"Diese Meldung geht weg, nachdem Sie Ihre ersten Kunden zu schaffen."
 This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.,"Dieses Tool hilft Ihnen zu aktualisieren oder zu beheben die Menge und die Bewertung der Aktie im System. Es wird normalerweise verwendet, um das System abzugleichen und was tatsächlich existiert in Ihrem Lager."
 This will be used for setting rule in HR module,Dies wird für die Einstellung der Regel im HR-Modul verwendet werden
 Thread HTML,Themen HTML
 Thursday,Donnerstag
 Time,Zeit
-Time Log,وقت دخول
-Time Log Batch,الوقت الدفعة دخول
-Time Log Batch Detail,وقت دخول دفعة التفاصيل
-Time Log Batch Details,وقت دخول تفاصيل الدفعة
-Time Log Batch status must be 'Submitted',وقت دخول وضع دفعة يجب &#39;المقدمة&#39;
-Time Log Status must be Submitted.,يجب تقديم الوقت حالة السجل.
-Time Log for tasks.,وقت دخول للمهام.
-Time Log is not billable,الوقت السجل غير القابلة للفوترة
-Time Log must have status 'Submitted',يجب أن يكون وقت دخول وضع &#39;نشره&#39;
+Time Log,Log Zeit
+Time Log Batch,Zeit Log Batch
+Time Log Batch Detail,Zeit Log Batch Detailansicht
+Time Log Batch Details,Zeit Log Chargendetails
+Time Log Batch status must be 'Submitted',Zeit Log Batch-Status muss &quot;vorgelegt&quot; werden
+Time Log Status must be Submitted.,Zeit Log-Status vorzulegen.
+Time Log for tasks.,Log Zeit für Aufgaben.
+Time Log is not billable,Log Zeit ist nicht abrechenbar
+Time Log must have status 'Submitted',Log Zeit muss Status &#39;Änderung&#39;
 Time Zone,Zeitzone
 Time Zones,Time Zones
 Time and Budget,Zeit und Budget
@@ -2924,45 +2944,46 @@
 Title Case,Titel Case
 Title Prefix,Title Prefix
 To,Auf
-To Currency,إلى العملات
+To Currency,Um Währung
 To Date,To Date
 To Discuss,Zu diskutieren
+To Do,To Do
 To Do List,To Do List
 To PR Date,Um PR Datum
 To Package No.,Um Nr. Paket
 To Reply,Um Antworten
-To Time,إلى وقت
-To Value,إلى القيمة
+To Time,Um Zeit
+To Value,To Value
 To Warehouse,Um Warehouse
 "To add a tag, open the document and click on ""Add Tag"" on the sidebar","Um einen Tag hinzuzufügen, öffnen Sie das Dokument und klicken Sie auf ""Add Tag"" in der Seitenleiste"
 "To assign this issue, use the ""Assign"" button in the sidebar.","Um dieses Problem zu zuzuweisen, verwenden Sie die Schaltfläche ""Zuordnen"" in der Seitenleiste."
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","Um automatisch Support Tickets von Ihrem Posteingang, stellen Sie Ihren POP3-Einstellungen hier. Sie müssen im Idealfall eine separate E-Mail-ID für das ERP-System, so dass alle E-Mails in das System von diesem Mail-ID synchronisiert werden. Wenn Sie nicht sicher sind, wenden Sie sich bitte EMail Provider."
 "To create an Account Head under a different company, select the company and save customer.","Um ein Konto Kopf unter einem anderen Unternehmen zu erstellen, wählen das Unternehmen und sparen Kunden."
 To enable <b>Point of Sale</b> features,Zum <b> Point of Sale </ b> Funktionen ermöglichen
+To enable more currencies go to Setup > Currency,Um weitere Währungen ermöglichen weiter zu&gt; Währung einrichten
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","Um Elemente wieder zu holen, auf 'Get Items' Taste \ oder aktualisieren Sie die Menge manuell auf."
-"To format columns, give column labels in the query.",لتنسيق الأعمدة، وإعطاء تسميات الأعمدة في الاستعلام.
+"To format columns, give column labels in the query.","Um Spalten zu formatieren, geben Spaltenbeschriftungen in der Abfrage."
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.","Um weiter einschränken Berechtigungen für bestimmte Werte in einem Dokument basiert, verwenden Sie die 'Bedingung' Einstellungen."
 To get Item Group in details table,Zu Artikelnummer Gruppe im Detail Tisch zu bekommen
 To manage multiple series please go to Setup > Manage Series,Um mehrere Reihen zu verwalten gehen Sie bitte auf Setup> Verwalten Series
 To restrict a User of a particular Role to documents that are explicitly assigned to them,"Um einen Benutzer einer bestimmten Rolle zu Dokumenten, die ihnen ausdrücklich zugeordnet beschränken"
 To restrict a User of a particular Role to documents that are only self-created.,"Um einen Benutzer einer bestimmten Rolle zu Dokumenten, die nur selbst erstellte sind zu beschränken."
-"To set reorder level, item must be Purchase Item",لضبط مستوى إعادة الطلب، يجب أن يكون بند شراء السلعة
+"To set reorder level, item must be Purchase Item","Um Meldebestand, muss Einzelteil Kaufsache sein"
 "To set user roles, just go to <a href='#List/Profile'>Setup > Users</a> and click on the user to assign roles.","Benutzerrollen, nur um <a gehen href='#List/Profile'> Setup> Benutzer </ a> und klicken Sie auf den Benutzer Rollen zuweisen."
 To track any installation or commissioning related work after sales,Um jegliche Installation oder Inbetriebnahme verwandte Arbeiten After Sales verfolgen
 "To track brand name in the following documents<br>Delivery Note, Enuiry, Material Request, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Sales Invoice, Sales BOM, Sales Order, Serial No","Um Markennamen in den folgenden Dokumenten zu verfolgen <br> Lieferschein, Enuiry, Material anfordern, Artikel, Bestellung, Kauf Voucher, Käufer Receipt, Angebot, Sales Invoice, Sales BOM, Sales Order, Serial No"
 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.,"Um Artikel in Vertrieb und Einkauf Dokumente auf ihrem Werknummern Basis zu verfolgen. Dies wird auch verwendet, um Details zum Thema Gewährleistung des Produktes zu verfolgen."
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,Um Elemente in An-und Verkauf von Dokumenten mit Batch-nos <br> <b> Preferred Industry verfolgen: Chemicals etc </ b>
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,"Um Objekte mit Barcode verfolgen. Sie werden in der Lage sein, um Elemente in Lieferschein und Sales Invoice durch Scannen Barcode einzusteigen."
-"To update your HTML from attachment, click here","Um Ihre HTML von Anhaftung zu aktualisieren, klicken Sie hier"
 ToDo,ToDo
 Tools,Werkzeuge
-Top,أعلى
+Top,Spitze
 Top Bar,Top Bar
 Top Bar Background,Top Bar Hintergrund
 Top Bar Item,Top Bar Artikel
 Top Bar Items,Top Bar Artikel
-Top Bar Text,الشريط العلوي نص
-Top Bar text and background is same color. Please change.,أعلى نص شريط والخلفية هي نفس اللون. الرجاء تغيير.
+Top Bar Text,Top Bar Text
+Top Bar text and background is same color. Please change.,Top Bar Text und Hintergrund ist die gleiche Farbe. Bitte ändern.
 Total,Gesamt
 Total (sum of) points distribution for all goals should be 100.,Total (Summe) Punkte Verteilung für alle Ziele sollten 100 sein.
 Total Advance,Insgesamt Geleistete
@@ -2978,7 +2999,7 @@
 Total Deduction,Insgesamt Abzug
 Total Earning,Insgesamt Earning
 Total Experience,Total Experience
-Total Hours,مجموع ساعات
+Total Hours,Gesamtstunden
 Total Hours (Expected),Total Hours (Erwartete)
 Total Invoiced Amount,Insgesamt Rechnungsbetrag
 Total Leave Days,Insgesamt Leave Tage
@@ -2989,13 +3010,14 @@
 Total SMS Sent,Insgesamt SMS gesendet
 Total Sanctioned Amount,Insgesamt Sanctioned Betrag
 Total Score (Out of 5),Gesamtpunktzahl (von 5)
-Total Tax (Company Currency),مجموع الضرائب (عملة الشركة)
+Total Tax (Company Currency),Total Tax (Gesellschaft Währung)
 Total Taxes and Charges,Insgesamt Steuern und Abgaben
-Total Taxes and Charges (Company Currency),مجموع الضرائب والرسوم (عملة الشركة)
-Total amount of invoices received from suppliers during the digest period,المبلغ الإجمالي للفواتير الواردة من الموردين خلال فترة هضم
-Total amount of invoices sent to the customer during the digest period,المبلغ الإجمالي للفواتير المرسلة إلى العملاء خلال الفترة دايجست
-Total days in month,Insgesamt Tage im Monat
+Total Taxes and Charges (Company Currency),Insgesamt Steuern und Gebühren (Gesellschaft Währung)
+Total Working Days In The Month,Insgesamt Arbeitstagen im Monat
+Total amount of invoices received from suppliers during the digest period,Gesamtbetrag der erhaltenen Rechnungen von Lieferanten während der Auszugsperiodeninformation
+Total amount of invoices sent to the customer during the digest period,Gesamtbetrag der Rechnungen an die Kunden während der Auszugsperiodeninformation
 Total in words,Total in Worten
+Total production order qty for item,Gesamtproduktion Bestellmenge für Artikel
 Totals,Totals
 Track separate Income and Expense for product verticals or divisions.,Verfolgen separaten Erträge und Aufwendungen für die Produktentwicklung Branchen oder Geschäftsbereichen.
 Track this Delivery Note against any Project,Verfolgen Sie diesen Lieferschein gegen Projekt
@@ -3012,11 +3034,11 @@
 Tree of item classification,Tree of Artikelzugehörigkeit
 Trial Balance,Rohbilanz
 Tuesday,Dienstag
-Tweet will be shared via your user account (if specified),وسيتم تقاسم تويت عبر حساب المستخدم الخاص بك (في حالة تحديد)
-Twitter Share,تويتر شارك
-Twitter Share via,Twitter المشاركة عبر
+Tweet will be shared via your user account (if specified),Tweet wird via E-Mail Account geteilt werden (falls angegeben)
+Twitter Share,Twitter
+Twitter Share via,Twitter teilen
 Type,Typ
-Type of document to rename.,نوع الوثيقة إلى إعادة تسمية.
+Type of document to rename.,Art des Dokuments umbenennen.
 Type of employment master.,Art der Beschäftigung Master.
 "Type of leaves like casual, sick etc.","Art der Blätter wie beiläufig, krank usw."
 Types of Expense Claim.,Arten von Expense Anspruch.
@@ -3025,11 +3047,12 @@
 UOM Conversion Detail,UOM Conversion Details
 UOM Conversion Details,UOM Conversion Einzelheiten
 UOM Conversion Factor,UOM Umrechnungsfaktor
+UOM Conversion Factor is mandatory,UOM Umrechnungsfaktor ist obligatorisch
 UOM Details,UOM Einzelheiten
 UOM Name,UOM Namen
 UOM Replace Utility,UOM ersetzen Dienstprogramm
 UPPER CASE,UPPER CASE
-UPPERCASE,أحرف كبيرة
+UPPERCASE,UPPERCASE
 URL,URL
 Unable to complete request: ,Kann Anforderung abzuschließen:
 Under AMC,Unter AMC
@@ -3040,10 +3063,11 @@
 Units/Hour,Einheiten / Stunde
 Units/Shifts,Units / Shifts
 Unmatched Amount,Unübertroffene Betrag
-Unpaid,غير مدفوع
+Unpaid,Unbezahlte
 Unread Messages,Ungelesene Nachrichten
 Unscheduled,Außerplanmäßig
 Unsubscribed,Unsubscribed
+Upcoming Events for Today,Die nächsten Termine für heute
 Update,Aktualisieren
 Update Clearance Date,Aktualisieren Restposten Datum
 Update Field,Felder aktualisieren
@@ -3051,23 +3075,23 @@
 Update Series,Update Series
 Update Series Number,Update Series Number
 Update Stock,Aktualisieren Lager
-Update Stock should be checked.,وينبغي التحقق من التحديث الأوراق المالية.
-Update This Application,تحديث هذا التطبيق
+Update Stock should be checked.,Update-Lager sollte überprüft werden.
 Update Value,Aktualisieren Wert
 "Update allocated amount in the above table and then click ""Allocate"" button","Aktualisieren Zuteilungsbetrag in der obigen Tabelle und klicken Sie dann auf ""Allocate""-Taste"
 Update bank payment dates with journals.,Update Bank Zahlungstermine mit Zeitschriften.
-Update is in progress. This may take some time.,التحديث قيد التقدم. قد يستغرق هذا بعض الوقت.
-Updated,تحديث
+Update is in progress. This may take some time.,Update ist im Gange. Dies kann einige Zeit dauern.
+Updated,Aktualisiert
 Upload Attachment,Anhang hochladen
-Upload Attendance,تحميل الحضور
-Upload Backups to Dropbox,تحميل النسخ الاحتياطي إلى دروببوإكس
-Upload Backups to Google Drive,تحميل النسخ الاحتياطية إلى Google Drive
+Upload Attendance,Hochladen Teilnahme
+Upload Backups to Dropbox,Backups auf Dropbox hochladen
+Upload Backups to Google Drive,Laden Sie Backups auf Google Drive
 Upload HTML,Hochladen HTML
-Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,تحميل ملف CSV مع عمودين:. الاسم القديم والاسم الجديد. ماكس 500 الصفوف.
+Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Laden Sie eine CSV-Datei mit zwei Spalten:. Den alten Namen und der neue Name. Max 500 Zeilen.
 Upload a file,Hochladen einer Datei
+Upload and Import,Upload und Import
 Upload attendance from a .csv file,Fotogalerie Besuch aus einer. Csv-Datei
 Upload stock balance via csv.,Hochladen Bestandsliste über csv.
-Uploading...,تحميل ...
+Uploading...,Uploading ...
 Upper Income,Obere Income
 Urgent,Dringend
 Use Multi-Level BOM,Verwenden Sie Multi-Level BOM
@@ -3078,34 +3102,32 @@
 User ID,Benutzer-ID
 User Image,User Image
 User Name,User Name
-User Properties,User Properties
 User Remark,Benutzer Bemerkung
 User Remark will be added to Auto Remark,Benutzer Bemerkung auf Auto Bemerkung hinzugefügt werden
 User Tags,Nutzertags
 User Type,User Type
 User must always select,Der Benutzer muss immer wählen
 User not allowed entry in the Warehouse,Benutzer nicht erlaubt Eintrag in der Warehouse
-User not allowed to delete.,المستخدم لا يسمح لحذفه.
+User not allowed to delete.,"Benutzer nicht erlaubt, zu löschen."
 UserRole,UserRole
 Username,Benutzername
-Users,Benutzer
-Users who can approve a specific employee's leave applications,المستخدمين الذين يمكنهم الموافقة على طلبات إجازات الموظف معينة
+Users who can approve a specific employee's leave applications,"Benutzer, die Arbeit eines bestimmten Urlaubs Anwendungen genehmigen können"
 Users with this role are allowed to do / modify accounting entry before frozen date,Benutzer mit dieser Rolle tun dürfen / ändern Verbuchung vor dem gefrorenen Datum
 Utilities,Dienstprogramme
 Utility,Nutzen
-Valid For Territories,صالحة للالأقاليم
+Valid For Territories,Gültig für Territories
 Valid Upto,Gültig Bis
-Valid for Buying or Selling?,صالحة للشراء أو البيع؟
-Valid for Territories,صالحة للالأقاليم
-Validate,التحقق من صحة
+Valid for Buying or Selling?,Gültig für den Kauf oder Verkauf?
+Valid for Territories,Gültig für Territories
+Validate,Bestätigen
 Valuation,Bewertung
 Valuation Method,Valuation Method
 Valuation Rate,Valuation bewerten
 Valuation and Total,Bewertung und insgesamt
 Value,Wert
-Value missing for,قيمة مفقودة لل
-Vehicle Dispatch Date,سيارة الإرسال التسجيل
-Vehicle No,السيارة لا
+Value missing for,Fehlender Wert für
+Vehicle Dispatch Date,Fahrzeug Versanddatum
+Vehicle No,Kein Fahrzeug
 Verdana,Verdana
 Verified By,Verified By
 Visit,Besuchen
@@ -3115,7 +3137,8 @@
 Voucher Import Tool,Gutschein Import Tool
 Voucher No,Gutschein Nein
 Voucher Type,Gutschein Type
-Voucher Type and Date,نوع قسيمة والتسجيل
+Voucher Type and Date,Gutschein Art und Datum
+WIP Warehouse required before Submit,"WIP Warehouse erforderlich, bevor abschicken"
 Waiting for Customer,Warten auf Kunden
 Walk In,Walk In
 Warehouse,Lager
@@ -3124,15 +3147,15 @@
 Warehouse Name,Warehouse Namen
 Warehouse User,Warehouse Benutzer
 Warehouse Users,Warehouse-Benutzer
-Warehouse and Reference,مستودع والمراجع
-Warehouse does not belong to company.,مستودع لا تنتمي إلى الشركة.
+Warehouse and Reference,Warehouse und Referenz
+Warehouse does not belong to company.,Warehouse nicht auf Unternehmen gehören.
 Warehouse where you are maintaining stock of rejected items,"Warehouse, wo Sie erhalten Bestand abgelehnt Elemente werden"
-Warehouse-Wise Stock Balance,مستودع الحكيم رصيد المخزون
+Warehouse-Wise Stock Balance,Warehouse-Wise Bestandsliste
 Warehouse-wise Item Reorder,Warehouse-weise Artikel Reorder
-Warehouses,المستودعات
+Warehouses,Gewerberäume
 Warn,Warnen
 Warning,Warnung
-Warning: Leave application contains following block dates,يحتوي التطبيق اترك التواريخ الكتلة التالية: تحذير
+Warning: Leave application contains following block dates,Achtung: Leave Anwendung enthält folgende Block Termine
 Warranty / AMC Details,Garantie / AMC Einzelheiten
 Warranty / AMC Status,Garantie / AMC-Status
 Warranty Expiry Date,Garantie Ablaufdatum
@@ -3149,6 +3172,7 @@
 Website Settings,Website-Einstellungen
 Website Slideshow,Website Slideshow
 Website Slideshow Item,Website Slideshow Artikel
+Website User,Webseite User
 Website Warehouse,Website Warehouse
 Wednesday,Mittwoch
 Weekly,Wöchentlich
@@ -3156,7 +3180,7 @@
 Weight UOM,Gewicht UOM
 Weightage,Gewichtung
 Weightage (%),Gewichtung (%)
-Welcome,ترحيب
+Welcome,Willkommen
 "When any of the checked transactions are ""Submitted"", an email pop-up automatically opened to send an email to the associated ""Contact"" in that transaction, with the transaction as an attachment. The user may or may not send the email.","Wenn eine der überprüften Transaktionen werden ""Eingereicht"", ein E-Mail-pop-up automatisch geöffnet, um eine E-Mail mit dem zugehörigen ""Kontakt"" in dieser Transaktion zu senden, mit der Transaktion als Anhang. Der Benutzer kann oder nicht-Mail senden."
 "When you <b>Amend</b> a document after cancel and save it, it will get a new number that is a version of the old number.","Wenn Sie <b> Amend </ b> ein Dokument nach abbrechen und speichern Sie es, es wird eine neue Nummer, die eine Version der alten Nummer erhalten."
 Where items are stored.,Wo Elemente gespeichert werden.
@@ -3165,15 +3189,15 @@
 Width,Breite
 Will be calculated automatically when you enter the details,"Wird automatisch berechnet, wenn Sie die Daten eingeben"
 Will be fetched from Customer,Wird vom Kunden abgeholt werden
-Will be updated after Sales Invoice is Submitted.,سيتم تحديث بعد تقديم فاتورة المبيعات.
-Will be updated when batched.,سيتم تحديث عندما دفعات.
-Will be updated when billed.,سيتم تحديث عندما توصف.
-Will be used in url (usually first name).,وسوف تستخدم في رابط (عادة الاسم الأول).
+Will be updated after Sales Invoice is Submitted.,Wird aktualisiert After-Sales-Rechnung vorgelegt werden.
+Will be updated when batched.,"Wird aktualisiert, wenn dosiert werden."
+Will be updated when billed.,"Wird aktualisiert, wenn in Rechnung gestellt."
+Will be used in url (usually first name).,Wird in url (in der Regel zuerst Name) verwendet werden.
 With Operations,Mit Operations
-Work Details,تفاصيل العمل
+Work Details,Werk Details
 Work Done,Arbeit
 Work In Progress,Work In Progress
-Work-in-Progress Warehouse,مستودع العمل قيد التنفيذ
+Work-in-Progress Warehouse,Work-in-Progress Warehouse
 Workflow,Workflow
 Workflow Action,Workflow-Aktion
 Workflow Action Master,Workflow-Aktion Meister
@@ -3199,12 +3223,12 @@
 Write Off Cost Center,Write Off Kostenstellenrechnung
 Write Off Outstanding Amount,Write Off ausstehenden Betrag
 Write Off Voucher,Write Off Gutschein
-Write a Python file in the same folder where this is saved and return column and result.,كتابة ملف بيثون في نفس المجلد حيث تم حفظ هذا العمود والعودة والنتيجة.
-Write a SELECT query. Note result is not paged (all data is sent in one go).,كتابة استعلام SELECT. لم يتم ترحيلها علما نتيجة (يتم إرسال جميع البيانات دفعة واحدة).
-Write sitemap.xml,اكتب sitemap.xml
-Write titles and introductions to your blog.,تكتب العناوين والمقدمات لبلوق الخاص بك.
-Writers Introduction,الكتاب مقدمة
-Wrong Template: Unable to find head row.,قالب الخطأ: تعذر العثور على صف الرأس.
+Write a Python file in the same folder where this is saved and return column and result.,"Schreiben Sie eine Python-Datei im gleichen Ordner, in dem diese gespeichert oder Rückgabebelehrung Spalte und Ergebnis."
+Write a SELECT query. Note result is not paged (all data is sent in one go).,Schreiben Sie eine SELECT-Abfrage. Hinweis Ergebnis nicht ausgelagert (alle Daten in einem Rutsch gesendet).
+Write sitemap.xml,Schreiben sitemap.xml
+Write titles and introductions to your blog.,Schreiben Sie Titel und Einführungen in Ihrem Blog.
+Writers Introduction,Writers Einführung
+Wrong Template: Unable to find head row.,Falsche Vorlage: Kann Kopfzeile zu finden.
 Year,Jahr
 Year Closed,Jahr geschlossen
 Year Name,Jahr Name
@@ -3214,35 +3238,36 @@
 Yes,Ja
 Yesterday,Gestern
 You are not authorized to do/modify back dated entries before ,Sie sind nicht berechtigt / nicht ändern zurück datierte Einträge vor
-You can create more earning and deduction type from Setup --> HR,Sie können mehr verdienen und Deduktion Typ aus Setup -> HR
 You can enter any date manually,Sie können ein beliebiges Datum manuell eingeben
 You can enter the minimum quantity of this item to be ordered.,Sie können die minimale Menge von diesem Artikel bestellt werden.
-You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,لا يمكنك إدخال كل من التسليم ملاحظة لا والمبيعات رقم الفاتورة \ الرجاء إدخال أي واحد.
+You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,Sie können nicht sowohl Lieferschein Nein und Sales Invoice No \ Bitte geben Sie eine beliebige.
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,"Sie können verschiedene ""Eigenschaften"", um Benutzer auf Standardwerte gesetzt und gelten Erlaubnis Vorschriften über den Wert dieser Eigenschaften in verschiedenen Formen."
-You can start by selecting backup frequency and \					granting access for sync,يمكنك أن تبدأ من خلال تحديد تردد النسخ الاحتياطي و\ منح الوصول لمزامنة
+You can start by selecting backup frequency and \					granting access for sync,Sie können durch Auswahl der Backup-Frequenz beginnen und \ Gewährung des Zugangs für die Synchronisation
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,Sie können <a href='#Form/Customize Form'> Formular anpassen </ a> auf ein Niveau auf den Feldern eingestellt.
+You may need to update: ,Möglicherweise müssen Sie aktualisieren:
 Your Customer's TAX registration numbers (if applicable) or any general information,Ihre Kunden TAX Kennzeichen (falls zutreffend) oder allgemeine Informationen
 "Your download is being built, this may take a few moments...","Ihr Download gebaut wird, kann dies einige Zeit dauern ..."
-Your letter head content in HTML.,Ihr Briefkopf Inhalte in HTML.
+Your letter head content,Ihr Briefkopf Inhalt
 Your sales person who will contact the customer in future,"Ihr Umsatz Person, die die Kunden in Zukunft in Verbindung setzen"
 Your sales person who will contact the lead in future,"Ihr Umsatz Person, die die Führung in der Zukunft an"
 Your sales person will get a reminder on this date to contact the customer,"Ihre Vertriebsmitarbeiter erhalten eine Erinnerung an diesem Tag, um den Kunden an"
 Your sales person will get a reminder on this date to contact the lead,Ihre Vertriebsmitarbeiter erhalten eine Erinnerung an diesem Tag an die Spitze setzen
 Your support email id - must be a valid email - this is where your emails will come!,"Ihre Unterstützung email id - muss eine gültige E-Mail-sein - das ist, wo Ihre E-Mails wird kommen!"
-[Label]:[Field Type]/[Options]:[Width],[تسمية]: [نوع الحقل] / [خيارات]: [العرض]
+[Error],[Error]
+[Label]:[Field Type]/[Options]:[Width],[Label]: [Feldtyp] / [Optionen]: [Breite]
 add your own CSS (careful!),fügen Sie Ihre eigenen CSS (Vorsicht!)
 adjust,einstellen
 align-center,align-center
 align-justify,Ausrichtung zu rechtfertigen
 align-left,-links ausrichten
 align-right,align-right
-also be included in Item's rate,أيضا يتم تضمينها في سعر السلعة في
+also be included in Item's rate,auch in Artikelbeschreibung inbegriffen sein
 and,und
 arrow-down,arrow-down
 arrow-left,Pfeil-links
 arrow-right,arrow-right
 arrow-up,arrow-up
-assigned by,يكلفه بها
+assigned by,zugewiesen durch
 asterisk,Sternchen
 backward,rückwärts
 ban-circle,ban-Kreis
@@ -3257,11 +3282,11 @@
 camera,Kamera
 cancel,kündigen
 cannot be 0,nicht 0 sein kann
-cannot be empty,لا يمكن أن تكون فارغة
-cannot be greater than 100,لا يمكن أن تكون أكبر من 100
-cannot be included in Item's rate,لا يمكن متضمنة في سعر السلعة لل
-"cannot have a URL, because it has child item(s)",لا يمكن أن يكون URL، لأنه لديه بند الطفل (ق)
-cannot start with,لا يمكن أن تبدأ مع
+cannot be empty,darf nicht leer sein
+cannot be greater than 100,kann nicht größer sein als 100
+cannot be included in Item's rate,kann nicht in der Artikelbeschreibung enthalten sein
+"cannot have a URL, because it has child item(s)","kann nicht eine URL, weil es Kind item (s) hat"
+cannot start with,kann nicht mit starten
 certificate,Zertifikat
 check,überprüfen
 chevron-down,Chevron-down
@@ -3279,9 +3304,9 @@
 dd/mm/yyyy,dd / mm / yyyy
 deactivate,deaktivieren
 does not belong to BOM: ,nicht auf BOM gehören:
-does not exist,غير موجود
-does not have role 'Leave Approver',ليس لديها دور &#39;اترك الموافق&#39;
-does not match,لا يطابق
+does not exist,nicht vorhanden
+does not have role 'Leave Approver',keine Rolle &#39;Leave Approver&#39;
+does not match,stimmt nicht
 download,Download
 download-alt,Download-alt
 "e.g. Bank, Cash, Credit Card","z.B. Bank, Bargeld, Kreditkarte"
@@ -3292,8 +3317,8 @@
 english,Englisch
 envelope,Umschlag
 español,español
-example: Next Day Shipping,مثال: اليوم التالي شحن
-example: http://help.erpnext.com,مثال: http://help.erpnext.com
+example: Next Day Shipping,Beispiel: Versand am nächsten Tag
+example: http://help.erpnext.com,Beispiel: http://help.erpnext.com
 exclamation-sign,Ausrufezeichen-Zeichen
 eye-close,Auge-Schließ
 eye-open,Augen öffnen
@@ -3319,20 +3344,20 @@
 hand-right,Hand-Rechts
 hand-up,Hand-up
 has been entered atleast twice,wurde atleast zweimal eingegeben
-have a common territory,لديها أراضي مشتركة
-have the same Barcode,لها نفس الباركود
+have a common territory,haben ein gemeinsames Territorium
+have the same Barcode,haben den gleichen Barcode
 hdd,hdd
 headphones,Kopfhörer
 heart,Herz
 home,Zuhause
-icon,رمز
-in,في
+icon,icon
+in,in
 inbox,Posteingang
 indent-left,Gedankenstrich links
 indent-right,indent-Recht
 info-sign,info-Zeichen
 is a cancelled Item,ist ein gestempeltes
-is linked in,ويرتبط في
+is linked in,in Zusammenhang
 is not a Stock Item,ist kein Lagerartikel
 is not allowed.,ist nicht erlaubt.
 italic,kursiv
@@ -3341,7 +3366,7 @@
 list,Liste
 list-alt,list-alt
 lock,sperren
-lowercase,أحرف صغيرة
+lowercase,Kleinbuchstaben
 magnet,Magnet
 map-marker,map-Marker
 minus,minus
@@ -3350,15 +3375,15 @@
 mm/dd/yyyy,mm / dd / yyyy
 move,bewegen
 music,Musik
-must be one of,يجب أن يكون واحدا من
+must be one of,muss einer sein
 nederlands,nederlands
-not a purchase item,ليس شراء مادة
-not a sales item,ليس البند مبيعات
-not a service item.,ليس خدمة المدينة.
-not a sub-contracted item.,ليس البند الفرعي المتعاقد عليها.
-not in,ليس في
+not a purchase item,kein Kaufsache
+not a sales item,kein Verkaufsartikel
+not a service item.,nicht ein service Produkt.
+not a sub-contracted item.,keine Unteraufträge vergeben werden Artikel.
+not in,nicht in
 not within Fiscal Year,nicht innerhalb Geschäftsjahr
-of,من
+of,von
 of type Link,vom Typ Link-
 off,ab
 ok,Ok
@@ -3398,7 +3423,7 @@
 share,Aktie
 share-alt,Aktien-alt
 shopping-cart,Shopping-cart
-should be 100%,يجب أن تكون 100٪
+should be 100%,sollte 100% sein
 signal,signalisieren
 star,Stern
 star-empty,star-empty
@@ -3430,6 +3455,7 @@
 volume-up,Volumen-up
 warning-sign,Warn-Schild
 website page link,Website-Link
+which is greater than sales order qty ,die größer ist als der Umsatz Bestellmenge
 wrench,Schraubenschlüssel
 yyyy-mm-dd,yyyy-mm-dd
 zoom-in,zoom-in
diff --git a/translations/es.csv b/translations/es.csv
index 3b9754b..d30649d 100644
--- a/translations/es.csv
+++ b/translations/es.csv
@@ -1,12 +1,18 @@
  (Half Day),(Medio día)
+ against sales order,contra la orden de venta
  against same operation,contra la misma operación
  already marked,ya marcada
  and year: ,y el año:
+ as it is stock Item or packing item,ya que es la acción del artículo o elemento de embalaje
  at warehouse: ,en el almacén:
  by Role ,por función
+ can not be made.,no puede ser hecho.
+ can not be marked as a ledger as it has existing child,"no puede ser marcado como un libro de contabilidad, ya que tiene menor existente"
  cannot be 0,no puede ser 0
  cannot be deleted.,no se puede eliminar.
  does not belong to the company,no pertenece a la empresa
+ has already been submitted.,ya se ha presentado.
+ has been freezed. ,ha sido freezed.
  has been freezed. \				Only Accounts Manager can do transaction against this account,ha sido congelado. \ Sólo Administrador de cuentas puede hacer en contra de esta transacción cuenta
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item","es menor que es igual a cero en el sistema, \ tasa de valoración es obligatoria para este artículo"
  is mandatory,es obligatorio
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,"Ahora es el Año Fiscal defecto. \ Por favor, actualiza tu navegador para que los cambios surtan efecto."
  is present in one or many Active BOMs,está presente en una o varias listas de materiales activos
  not active or does not exists in the system,no activa o no se existe en el sistema
+ not submitted,no presentado
  or the BOM is cancelled or inactive,o la lista de materiales se cancela o inactivo
  should be 'Yes'. As Item: ,debería ser &quot;sí&quot;. Como artículo:
  should be same as that in ,debe ser el mismo que el de
  was on leave on ,estaba en situación de excedencia
+ will be ,será
  will be over-billed against mentioned ,sobre-será facturado contra la mencionada
  will become ,se convertirá
 """Company History""",&quot;Historia de la empresa&quot;
@@ -56,6 +64,7 @@
 15px,15px
 16px,16px
 2 days ago,Hace 2 días
+: Duplicate row from same ,: Duplicar fila del mismo
 : It is linked to other active BOM(s),: Está vinculado a otro BOM activo (s)
 : Mandatory for a Recurring Invoice.,: Obligatorio para una factura recurrente.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">Para administrar grupos de clientes, haga clic aquí</a>"
@@ -102,6 +111,7 @@
 Account Id,ID de la cuenta
 Account Name,Nombre de la cuenta
 Account Type,Tipo de Cuenta
+Account for this ,Cuenta para este
 Accounting,Contabilidad
 Accounting Year.,Ejercicio contable.
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Asiento contable congelado hasta la fecha, nadie puede hacer / modificar la entrada, excepto el papel se especifica a continuación."
@@ -114,6 +124,7 @@
 Action,Acción
 Active,Activo
 Active: Will extract emails from ,Activo: Will extraer correos electrónicos de
+Activity,Actividad
 Activity Log,Registro de actividad
 Activity Type,Tipo de actividad
 Actual,Real
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),Añadir un banner en el sitio. (Pequeños banners son generalmente buenos)
 Add attachment,Añadir adjunto
 Add code as &lt;script&gt;,Agregue código como &lt;script&gt;
-Add custom code to forms,Agregar código personalizado a las formas
-Add fields to forms,Agregar campos a las formas
-Add headers for standard print formats,Agregar encabezados para los formatos de impresión estándar
 Add new row,Añadir nueva fila
 Add or Deduct,Agregar o deducir
 Add rows to set annual budgets on Accounts.,Añada filas para fijar presupuestos anuales de Cuentas.
@@ -158,7 +166,6 @@
 Add to To Do,Añadir a To Do
 Add to To Do List of,Agregar a la lista de tareas de
 Add/Remove Recipients,Agregar / Quitar destinatarios
-"Add/remove users, set roles, passwords etc","Añadir / eliminar usuarios, roles establecidos, contraseñas, etc"
 Additional Info,Información adicional
 Address,Dirección
 Address & Contact,Dirección y contacto
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,Dirección que se mostrará en la página de contacto
 Adds a custom field to a DocType,Agrega un campo personalizado a un tipo de documento
 Adds a custom script (client or server) to a DocType,Añade un script personalizado (cliente o servidor) a un tipo de documento
-Administration,Administración
 Advance Amount,Avance Importe
 Advance amount,Avance cantidad
 Advanced Scripting,Advanced Scripting
@@ -238,6 +244,7 @@
 Allow Users,Permitir que los usuarios
 Allow on Submit,Deje en Enviar
 Allow the following users to approve Leave Applications for block days.,Permitir que los usuarios siguientes para aprobar solicitudes Dejar de días de bloque.
+Allow user to edit Price List Rate in transactions,Permitir al usuario editar Lista de precios Tarifa en transacciones
 Allow user to login only after this hour (0-24),Permitir al usuario iniciar sesión sólo después de esta hora (0-24)
 Allow user to login only before this hour (0-24),Permitir al usuario iniciar sesión sólo antes de esta hora (0-24)
 Allowance Percent,Asignación porcentual
@@ -252,8 +259,6 @@
 Amount >=,Monto&gt; =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","Un archivo con el icono. Ico. En caso de ser de 16 x 16 px. Generado utilizando un generador de favicon. [ <a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a> ]"
 Analytics,Analítica
-Annual Cost To Company,Coste anual para la empresa
-Annual Cost To Company can not be less than 12 months of Total Earning,Coste anual para la empresa no puede ser inferior a 12 meses de Ganancia total
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,Otra estructura salarial &#39;% s&#39; es empleado activo para &#39;% s&#39;. Por favor haga su estado &quot;Inactivo&quot; para proceder.
 "Any other comments, noteworthy effort that should go in the records.","Cualquier otro comentario, el esfuerzo notable que debe ir en los registros."
 Applicable Holiday List,Lista Casas aplicable
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,Aplicar / Aprobar Hojas
 Apply Shipping Rule,Aplicar la regla del envío
 Apply Taxes and Charges Master,Aplicar impuestos y las cargas Maestro
-Apply latest updates and patches to this app,Aplicar últimas actualizaciones y parches de esta aplicación
 Appraisal,Evaluación
 Appraisal Goal,Evaluación Meta
 Appraisal Goals,Objetivos Apreciación
@@ -300,7 +304,6 @@
 Attached To DocType,Se adjunta a DOCTYPE
 Attached To Name,Atribuida al apellido
 Attachment,Accesorio
-Attachment removed. You may need to update: ,Adjunto eliminado. Es posible que tenga que actualizar:
 Attachments,Archivos adjuntos
 Attempted to Contact,Intentó establecer contacto con
 Attendance,Asistencia
@@ -422,7 +425,6 @@
 Brand Name,Marca
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","La marca es lo que aparece en la parte superior derecha de la barra de herramientas. Si se trata de una imagen, hacer ithas seguro de un fondo transparente y el uso de la etiqueta &lt;img /&gt;. Mantener el tamaño 200px x 30px como"
 Brand master.,Marca maestro.
-Branding and Printing,Branding y prensa
 Brands,Marcas
 Breakdown,Desglose
 Budget,Presupuesto
@@ -440,6 +442,7 @@
 Build Sitemap,Construir Sitemap
 Bulk Email,E-mail a granel
 Bulk Email records.,Correo electrónico masivo registros.
+Bummer! There are more holidays than working days this month.,Bummer! Hay más vacaciones que los días de trabajo este mes.
 Bundle items at time of sale.,Agrupe elementos en tiempo de venta.
 Button,Botón
 Buyer of Goods and Services.,Comprador de Bienes y Servicios.
@@ -490,7 +493,6 @@
 Center,Centro
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.","Algunos documentos no se deben cambiar una vez final, como una factura, por ejemplo. El estado final de dichos documentos se llama <b>Enviado.</b> Puede restringir qué roles pueden Submit."
 Change UOM for an Item.,Cambiar UOM de un elemento.
-"Change entry properties (hide fields, make mandatory etc)","Cambiar las propiedades de entrada (campos ocultar, maquillaje etc obligatorio)"
 Change the starting / current sequence number of an existing series.,Cambiar el número de secuencia de arranque / corriente de una serie existente.
 Channel Partner,Channel Partner
 Charge,Cargo
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Seleccione esta opción si desea forzar al usuario a seleccionar una serie antes de guardar. No habrá ningún defecto si usted comprueba esto.
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,"Seleccione esta opción si desea enviar mensajes de correo electrónico, ya que sólo este id (en caso de restricción de su proveedor de correo electrónico)."
 Check this if you want to show in website,Seleccione esta opción si desea mostrar en la página web
+Check this to disallow fractions. (for Nos),Active esta opción para no permitir fracciones. (De números)
 Check this to make this the default letter head in all prints,Marca esta casilla para hacer esta cabeza defecto la carta en todas las impresiones
 Check this to pull emails from your mailbox,Marque esta opción para extraer los correos electrónicos de su buzón
 Check to activate,Compruebe para activar
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,"Número de registro mercantil para su referencia. Ejemplo: Números de Registro de IVA, etc"
 Company registration numbers for your reference. Tax numbers etc.,"Número de registro mercantil para su referencia. Cifras impositivas, etc"
 Complaint,Queja
+Complete,Completar
 Complete By,Completa Por
 Completed,Terminado
 Completed Qty,Completado Cantidad
@@ -626,12 +630,12 @@
 Cost Center Name,Costo Nombre del centro
 Cost Center is mandatory for item: ,Centro de Costo es obligatoria para el artículo:
 Cost Center must be specified for PL Account: ,Centro de coste se debe especificar para la Cuenta PL:
-Cost to Company,El costo para la empresa
 Costing,Costeo
 Country,País
 Country Name,Nombre País
 Create,Crear
 Create Bank Voucher for the total salary paid for the above selected criteria,"Crear comprobante bancario por el salario total pagado por los criterios anteriormente indicados,"
+Create Material Requests,Crear solicitudes de material
 Create Production Orders,Cree órdenes de producción
 Create Receiver List,Crear Lista de receptores
 Create Salary Slip,Crear nómina
@@ -680,6 +684,7 @@
 Custom Startup Code,Código de inicio personalizada
 Custom?,Custom?
 Customer,Cliente
+Customer (Receivable) Account,Cuenta Cliente (por cobrar)
 Customer / Item Name,Cliente / Nombre del elemento
 Customer Account,Atención al cliente
 Customer Account Head,Jefe de Cuenta Cliente
@@ -688,6 +693,8 @@
 Customer Code,Código de Cliente
 Customer Codes,Códigos de clientes
 Customer Details,Detalles del Cliente
+Customer Discount,Descuento al cliente
+Customer Discounts,Descuentos Cliente
 Customer Feedback,Comentarios del cliente
 Customer Group,Grupo de clientes
 Customer Group Name,Nombre del cliente Grupo
@@ -717,11 +724,10 @@
 DN,DN
 DN Detail,DN Detalle
 Daily,Diario
+Daily Event Digest is sent for Calendar Events where reminders are set.,Diario Evento Resumen se envía para eventos de calendario en que se configura recordatorios.
 Daily Time Log Summary,Resumen del registro de tiempo diario
-"Daily, weekly, monthly email Digests","Diariamente, el correo electrónico semanal, mensual Digests"
 Danger,Peligro
 Data,Datos
-Data Import,Importación de datos
 Data missing in table,Los datos que faltan en la tabla
 Database,Base de datos
 Database Folder ID,Base de datos ID Folder
@@ -777,6 +783,7 @@
 Default Settings,Configuración predeterminada
 Default Source Warehouse,Predeterminado fuente de depósito
 Default Stock UOM,Defecto de la UOM
+Default Supplier,Defecto Proveedor
 Default Supplier Type,Tipo predeterminado Proveedor
 Default Target Warehouse,Por defecto destino de depósito
 Default Territory,Por defecto Territorio
@@ -795,6 +802,7 @@
 Delete,Borrar
 Delete Row,Eliminar fila
 Delivered,Liberado
+Delivered Items To Be Billed,Material que se adjunta a facturar
 Delivered Qty,Cantidad Entregada
 Delivery Address,Dirección de entrega
 Delivery Date,Fecha de Entrega
@@ -813,7 +821,6 @@
 Delivery Time,Tiempo de Entrega
 Delivery To,Entrega Para
 Department,Departamento
-Depend on LWP,Depende LWP
 Depends On,Depende del
 Depends on LWP,Depende LWP
 Descending,Descendente
@@ -864,6 +871,7 @@
 DocType or Field,Tipo de documento o Campo
 Document,Documento
 Document Description,Descripción del documento
+Document Numbering Series,Documento Serie de numeración
 Document Status transition from ,Documento de transición de estado de
 Document Type,Tipo de documento
 Document is only editable by users of role,Documento es sólo editable por los usuarios de papel
@@ -934,7 +942,7 @@
 Employee Leave Balance,Equilibrio licencia Empleado
 Employee Name,Nombre del empleado
 Employee Number,Número de empleado
-Employee Records to be created by ,Registros de Empleados de crearse
+Employee Records to be created by,Registros de Empleados de crearse
 Employee Setup,Empleado de configuración
 Employee Type,Tipo de empleado
 Employee grades,Los grados de empleados
@@ -944,7 +952,6 @@
 Employees Email Id,Empleados de correo electrónico de identificación
 Employment Details,Detalles de Empleo
 Employment Type,Tipo de empleo
-Enable / disable currencies.,Activar / desactivar monedas.
 Enable Auto Inventory Accounting,Activar el control de la Auto
 Enable Shopping Cart,Habilitar Compras
 Enabled,Habilitado
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,Error: El documento se ha modificado después de que usted lo ha abierto
 Estimated Material Cost,Costo estimado de material
 Event,Evento
+Event End must be after Start,Evento final debe ser posterior al inicio
 Event Individuals,Los individuos del Evento
 Event Role,Evento Papel
 Event Roles,Roles de eventos
 Event Type,Tipo de evento
 Event User,Evento del usuario
+Events In Today's Calendar,Eventos en el Calendario de hoy
+Every Day,Todos los días
+Every Month,Cada mes
+Every Week,Cada semana
+Every Year,Cada Año
 Everyone can read,Todo el mundo puede leer
 Example:,Ejemplo:
 Exchange Rate,Tipo de cambio
@@ -1019,8 +1032,6 @@
 Exports,Exportaciones
 External,Externo
 Extract Emails,Extracto de mensajes de correo electrónico
-Extract Job Applicant from jobs email id e.g. jobs@example.com,Extracto solicitante de empleo de puestos de trabajo Identificación del email por ejemplo jobs@example.com
-Extract Leads from sales email id e.g. sales@example.com,Extracto Leads de ventas email id por ejemplo sales@example.com
 FCFS Rate,Tasa FCFS
 FIFO,FIFO
 Facebook Share,Facebook Share
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Campos separados por una coma (,) se incluirá en la <br /> <b>Búsqueda por</b> lista de cuadro de diálogo Búsqueda"
 File,Expediente
 File Data,Archivo de datos
-File Manager,Administrador de archivos
 File Name,Nombre de archivo
 File Size,Tamaño del archivo
 File URL,URL del archivo
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,Confirmación de la fecha límite
 Financial Analytics,Financial Analytics
 Financial Statements,Estados Financieros
-Financial Years for books of accounts,Ejercicios económicos respecto a los libros de contabilidad
 First Name,Nombre
 First Responded On,Primero respondió el
 Fiscal Year,Año Fiscal
@@ -1090,6 +1099,7 @@
 For Sales Invoice,Para Factura
 For Server Side Print Formats,Por el lado de impresión Formatos Server
 For Territory,Por Territorio
+For UOM,Para UOM
 For Warehouse,Para el almacén
 "For comparative filters, start with","Para los filtros comparativas, comience con"
 "For e.g. 2012, 2012-13","Por ejemplo, 2012, 2012-13"
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,Congelar los comentarios de
 Friday,Viernes
 From,De
+From Bill of Materials,De la lista de materiales
 From Company,De Compañía
 From Currency,De Moneda
 From Currency and To Currency cannot be same,De la moneda y moneda no puede ser el mismo
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,Desde la fecha debe ser anterior a la Fecha
 From Delivery Note,De la nota de entrega
 From Employee,Del Empleado
+From Lead,De Plomo
 From PR Date,Desde la fecha PR
 From Package No.,De Paquete No.
 From Purchase Order,De la Orden de Compra
@@ -1150,8 +1162,8 @@
 Get Current Stock,Obtener Stock actual
 Get From ,Obtener de
 Get Items,Obtener elementos
+Get Items From Sales Orders,Obtener elementos de órdenes de venta
 Get Last Purchase Rate,Cómo Tarifa de Último
-Get Latest Updates,Obtenga Últimas actualizaciones
 Get Non Reconciled Entries,Consigue entradas para no conciliadas
 Get Outstanding Invoices,Recibe facturas pendientes
 Get Purchase Receipt,Obtener recibo de compra
@@ -1161,7 +1173,6 @@
 Get Template,Cómo Plantilla
 Get Terms and Conditions,Cómo Términos y Condiciones
 Get Weekly Off Dates,Cómo semanales Fechas Off
-Get a list of errors encountered by the Scheduler,Obtenga una lista de los errores detectados por el Programador
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Obtener tasa de valorización y stock disponible en el almacén de origen / destino en la publicación mencionada fecha y hora. Si serializado artículo, por favor pulse este botón después de introducir los números de serie."
 Give additional details about the indent.,Dar detalles sobre el guión.
 Global Defaults,Predeterminados globales
@@ -1193,9 +1204,9 @@
 Group or Ledger,Grupo o Ledger
 Groups,Grupos
 HR,HR
+HR Settings,Configuración de recursos humanos
 HTML,HTML
 HTML / Banner that will show on the top of product list.,HTML / Banner que se mostrará en la parte superior de la lista de productos.
-"HTML print formats for quotes, invoices etc","Formatos HTML impresión de cotizaciones, facturas, etc"
 Half Day,Medio Día
 Half Yearly,Semestral
 Half-yearly,Semestral
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children","Aquí usted puede mantener los detalles de la familia, como el nombre y la ocupación de los padres, cónyuge e hijos"
 "Here you can maintain height, weight, allergies, medical concerns etc","Aquí se puede mantener la altura, el peso, alergias, etc preocupaciones médicas"
 Hey there! You need to put at least one item in \				the item table.,Hey there! Es necesario poner al menos un artículo en \ table del elemento.
+Hey! All these items have already been invoiced.,Hey! Todos estos elementos ya han sido facturados.
 Hey! There should remain at least one System Manager,Hey! No debe permanecer al menos un administrador del sistema de
 Hidden,Oculto
 Hide Actions,Ocultar Acciones
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults","¿Cómo debe ser formateada esta moneda? Si no se define, se usará valores predeterminados del sistema"
 How to upload,Cómo subir
 Hrvatski,Hrvatski
+Human Resources,Recursos humanos
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,¡Hurra! El día (s) en el cual usted está solicitando para salir \ coincidir con día de fiesta (s). No es necesario solicitar permiso.
 I,Yo
 ID (name) of the entity whose property is to be set,Identificación (nombre) de la entidad cuya propiedad se va a establecer
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,Si el presupuesto anual ha superado el
 "If a User does not have access at Level 0, then higher levels are meaningless","Si un usuario no tiene acceso en el nivel 0, los niveles más altos no tienen sentido"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","Si se selecciona, la lista de materiales para los elementos de sub-ensamble serán considerados para obtener materias primas. De lo contrario, todos los elementos de montaje sub-será tratada como una materia prima."
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Si se marca, no total. de días laborables se comprenderán los días feriados, y esto reducirá el valor del salario por día"
 "If checked, all other workflows become inactive.","Si se selecciona, todos los flujos de trabajo pasan a ser inactivos."
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","Si se selecciona, se agregará un correo electrónico con un formato HTML adjunto a una parte del cuerpo del correo electrónico, así como datos adjuntos. Para enviar sólo como archivo adjunto, desmarque esta."
 "If checked, the Home page will be the default Item Group for the website.","Si se selecciona, la página de inicio será el grupo de elementos predeterminado para el sitio web."
@@ -1305,7 +1319,6 @@
 Import,Importar
 Import Attendance,Asistencia Import
 Import Log,Importar sesión
-Import data from spreadsheet (csv) files,Importar datos de hojas de cálculo (CSV)
 Important dates and commitments in your project life cycle,Fechas importantes y compromisos en el ciclo de vida del proyecto
 Imports,Importaciones
 In Dialog,En diálogo
@@ -1314,6 +1327,7 @@
 In List View,En Vista de lista
 In Process,En proceso
 In Report Filter,En Filtro de informe
+In Row,En Fila
 In Store,En las tiendas
 In Words,En las palabras
 In Words (Company Currency),En palabras (Empresa moneda)
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","En el Administrador de autorización, haga clic en el botón de la &quot;condición&quot; de columna para la función que desea restringir."
 Incentives,Incentivos
 Incharge Name,InCharge Nombre
+Include holidays in Total no. of Working Days,Incluya vacaciones en N º total. de días laborables
 Income / Expense,Ingresos / gastos
 Income Account,Cuenta de ingresos
 Income Booked,Ingresos reserva
@@ -1347,6 +1362,7 @@
 Industry Type,Industria Tipo
 Info,Info
 Insert After,Insertar después
+Insert Below,Insertar abajo
 Insert Code,Insertar código
 Insert Row,Insertar fila
 Insert Style,Inserte Estilo
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,"Nota de entrega no válido. Nota de entrega debe existir y debe estar en estado de borrador. Por favor, rectificar y vuelva a intentarlo."
 Invalid Email,Inválido Email
 Invalid Email Address,Correo electrónico no es válido
+Invalid Item or Warehouse Data,Artículo Inválido o Data Warehouse
 Invalid Leave Approver,No válido Agregar aprobador
 Inventory,Inventario
 Inverse,Inverso
@@ -1511,7 +1528,6 @@
 Lead Lost,El plomo Perdido
 Lead Name,Plomo Nombre
 Lead Owner,El plomo Propietario
-Lead Ref,El plomo Ref
 Lead Source,Plomo Fuente
 Lead Status,Lead Estado
 Lead Time Date,Plomo Fecha Hora
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,Dejar en blanco si se considera para todas las designaciones
 Leave blank if considered for all employee types,Dejar en blanco si se considera para todos los tipos de empleados
 Leave blank if considered for all grades,Dejar en blanco si se considera para todos los grados
+Leave blank if you have not decided the end date.,Dejar en blanco si no se ha decidido la fecha de finalización.
 Leave by,Deja por
 "Leave can be approved by users with Role, ""Leave Approver""","Deje puede ser aprobado por los usuarios con rol, &quot;Deja Aprobador&quot;"
 Ledger,Libro mayor
@@ -1553,7 +1570,6 @@
 Letter Head,Carta Head
 Letter Head Image,Carta de imagen Head
 Letter Head Name,Carta Nombre Head
-Letter heads for print,Cabezas de la letra para impresión
 Level,Nivel
 "Level 0 is for document level permissions, higher levels for field level permissions.","El nivel 0 es para los permisos de nivel de documento, mayores niveles de permisos a nivel de campo."
 Lft,Lft
@@ -1563,13 +1579,11 @@
 Linked With,Vinculada con
 List,Lista
 List items that form the package.,Lista de tareas que forman el paquete.
-List of companies (not customers / suppliers),Lista de las empresas (no clientes / proveedores)
 List of holidays.,Lista de los días festivos.
 List of patches executed,Lista de parches ejecutados
 List of records in which this document is linked,Lista de los registros en los que está vinculado este documento
 List of users who can edit a particular Note,Lista de usuarios que pueden editar una nota en particular
 List this Item in multiple groups on the website.,Enumero este artículo en varios grupos en la web.
-"List, delete uploaded files.","Lista, elimine los archivos subidos."
 Live Chat,Chat en Directo
 Load Print View on opening of an existing form,Cargar Vista de Impresión en la apertura de un formulario existente
 Loading,Carga
@@ -1596,6 +1610,7 @@
 Mail Server,Servidor de correo
 Main Reports,Informes Principales
 Main Section,Sección principal
+Maintain Same Rate Throughout Sales Cycle,Mantener el mismo ritmo durante todo el ciclo de ventas
 Maintain same rate throughout purchase cycle,Mantener el mismo ritmo durante todo el ciclo de compra
 Maintenance,Mantenimiento
 Maintenance Date,Mantenimiento Fecha
@@ -1616,7 +1631,6 @@
 Make a new,Hacer una nueva
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,Asegúrese de que las operaciones que desea restringir tener &quot;territorio&quot; un campo de enlace que se asigna a un &#39;territorio&#39; master.
 Male,Masculino
-Manage Numbering Series,Gestione Numeración Series
 Manage cost of operations,Gestione costo de las operaciones
 Manage exchange rates for currency conversion,Administrar los tipos de cambio para la conversión de divisas
 Mandatory,Obligatorio
@@ -1651,10 +1665,10 @@
 Material Request No,Material de Solicitud de No
 Material Request Type,Tipo de material Solicitud
 Material Request used to make this Stock Entry,Solicitud de material utilizado para hacer esto Stock entrada
+Material Requirement,Requisito material
 Material Transfer,Transferencia de material
 Materials,Materiales
 Materials Required (Exploded),Materiales necesarios (despiece)
-Materials Requirement Planning (MRP),Materiales planificación de necesidades (MRP)
 Max 500 rows only.,Sólo Max 500 filas.
 Max Attachments,Max Adjuntos
 Max Days Leave Allowed,Días máx Deja animales
@@ -1699,6 +1713,7 @@
 Month,Mes
 Monthly,Mensual
 Monthly Attendance Sheet,Hoja de Asistencia Mensual
+Monthly Earning & Deduction,Ingresos mensuales y deducción
 Monthly Salary Register,Registrarse Salario Mensual
 Monthly salary statement.,Nómina mensual.
 Monthly salary template.,Plantilla salario mensual.
@@ -1711,7 +1726,9 @@
 Mr,Sr.
 Ms,Ms
 Multiple Item Prices,Los precios de varios artículos
+Multiple root nodes not allowed.,Nodos raíz múltiples no están permitidos.
 Mupltiple Item prices.,Precios Mupltiple artículo.
+Must be Whole Number,Debe ser un número entero
 Must have report permission to access this report.,Debe tener informe de permiso para acceder a este informe.
 Must specify a Query to run,Debe especificar una consulta para ejecutar
 My Settings,Mis Opciones
@@ -1737,7 +1754,6 @@
 Net Weight,Peso neto
 Net Weight UOM,UOM Peso neto
 Net Weight of each Item,Peso neto de cada artículo
-Net pay can not be greater than 1/12th of Annual Cost To Company,Salario neto no puede ser superior a 1/12th de coste anual para la empresa
 Net pay can not be negative,Salario neto no puede ser negativo
 Never,Nunca
 New,Nuevo
@@ -1795,6 +1811,7 @@
 No of Sent SMS,N º de SMS enviados
 No of Visits,N º de Visitas
 No one,Nadie
+No permission to write / remove.,No tiene permiso para escribir / eliminar.
 No record found,Ningún registro encontrado
 No records tagged.,No hay registros marcados.
 No salary slip found for month: ,No nómina encontrado al mes:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,Los artículos pedidos para ser entregados
 Ordered Quantity,Cantidad ordenada
 Orders released for production.,Los pedidos a producción.
-Organization,Organización
 Organization Profile,Perfil de la organización
 Original Message,Mensaje original
 Other,Otro
 Other Details,Otros detalles
 Out,Fuera
-Out going mail server and support ticket mailbox,Dirigirse hacia el servidor de correo y buzón de ticket de soporte
 Out of AMC,Fuera de AMC
 Out of Warranty,Fuera de la Garantía
 Outgoing,Saliente
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),POP3 del servidor de correo (por ejemplo pop.gmail.com)
 POP3 server e.g. (pop.gmail.com),"Por ejemplo, el servidor POP3 (pop.gmail.com)"
 POS Setting,Configuración POS
+POS View,POS View
 PR Detail,PR Detalle
 PRO,PRO
 PS,PS
@@ -1951,10 +1967,10 @@
 Participants,Los participantes
 Partly Billed,Mayormente Anunciado
 Partly Delivered,Mayormente Entregado
-Partner,Socio
 Partner Target Detail,Socio Detalle Target
 Partner Type,Tipo de Socio
 Partner's Website,Sitio Web del Socio
+Passive,Pasivo
 Passport Number,Número de pasaporte
 Password,Contraseña
 Password Expires in (days),Password Expires in (días)
@@ -1964,12 +1980,12 @@
 Payables,Cuentas por pagar
 Payables Group,Deudas Grupo
 Payment Collection With Ageing,Cobro Con el Envejecimiento
+Payment Days,Días de pago
 Payment Entries,Las entradas de pago
 Payment Entry has been modified after you pulled it. 			Please pull it again.,"Registro de pagos ha sido modificado después de que lo tiró. Por favor, tire de él otra vez."
 Payment Made With Ageing,Pagos con el Envejecimiento
 Payment Reconciliation,Pago Reconciliación
 Payment Terms,Condiciones de pago
-Payment days,Día de pago
 Payment to Invoice Matching Tool,El pago a la herramienta Matching Factura
 Payment to Invoice Matching Tool Detail,Pago al detalle de la factura Matching Tool
 Payments,Pagos
@@ -1984,6 +2000,7 @@
 Percent,Por ciento
 Percent Complete,Porcentaje completado
 Percentage Allocation,Porcentaje de asignación
+Percentage Allocation should be equal to ,Porcentaje de asignación debe ser igual a
 Percentage variation in quantity to be allowed while receiving or delivering this item.,Variación porcentual de la cantidad que se le permita al recibir o entregar este artículo.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,"Porcentaje que se les permite recibir o entregar más en contra de la cantidad pedida. Por ejemplo: Si se ha pedido 100 unidades. y el subsidio es de 10%, entonces se le permite recibir 110 unidades."
 Performance appraisal.,Evaluación del desempeño.
@@ -2026,19 +2043,24 @@
 Please check,"Por favor, compruebe"
 Please enter Default Unit of Measure,Introduce unidad de medida
 Please enter Delivery Note No or Sales Invoice No to proceed,Introduce albarán o factura de venta No No para continuar
+Please enter Employee Number,"Por favor, introduzca el Número de Empleado"
 Please enter Expense Account,Introduce Cuenta de Gastos
 Please enter Expense/Adjustment Account,Introduce Cuenta de Gastos / ajuste
 Please enter Purchase Receipt No to proceed,Introduce recibo de compra en No para continuar
+Please enter Reserved Warehouse for item ,Introduce Almacén reservada para concepto
 Please enter valid,Introduce válida
 Please enter valid ,Introduce válida
 Please install dropbox python module,"Por favor, instale módulos python dropbox"
 Please make sure that there are no empty columns in the file.,"Por favor, asegúrese de que no hay columnas vacías en el archivo."
 Please mention default value for ',"Por favor, mencionar el valor por defecto para &#39;"
+Please reduce qty.,Reduzca Cantidad.
 Please refresh to get the latest document.,Favor de actualización para obtener las últimas documento.
 Please save the Newsletter before sending.,"Por favor, guarde el boletín antes de enviarlo."
 Please select Bank Account,Por favor seleccione la cuenta bancaria
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,"Por favor, seleccione Arrastre de si también desea incluir saldo del ejercicio fiscal anterior deja a este año fiscal"
 Please select Date on which you want to run the report,"Por favor, seleccione Fecha en la que desea ejecutar el informe"
+Please select Naming Neries,Por favor seleccione Neries nomenclatura
+Please select Price List,"Por favor, seleccione Lista de Precios"
 Please select Time Logs.,Por favor seleccione Time Registros.
 Please select a,Por favor seleccione una
 Please select a csv file,"Por favor, seleccione un archivo csv"
@@ -2051,10 +2073,12 @@
 Please select: ,Por favor seleccione:
 Please set Dropbox access keys in,"Por favor, establece las claves de acceso en Dropbox"
 Please set Google Drive access keys in,"Por favor, establece las claves de acceso de Google Drive en"
+Please setup Employee Naming System in Human Resource > HR Settings,"Por favor, configure empleado del sistema de nombres de Recursos Humanos&gt; Configuración HR"
 Please specify,"Por favor, especifique"
 Please specify Company,"Por favor, especifique la empresa"
 Please specify Company to proceed,"Por favor, especifique la empresa para proceder"
 Please specify Default Currency in Company Master \			and Global Defaults,"Por favor, especifique Moneda predeterminada en Master Compañía \ y predeterminados globales"
+Please specify a,"Por favor, especifique un"
 Please specify a Price List which is valid for Territory,"Por favor, especifique una lista de precios que es válido para el territorio"
 Please specify a valid,"Por favor, especifique una dirección válida"
 Please specify a valid 'From Case No.',Especifique un válido &#39;De Caso No.&#39;
@@ -2070,7 +2094,7 @@
 Posts,Mensajes
 Potential Sales Deal,Ventas posible acuerdo
 Potential opportunities for selling.,Oportunidades potenciales para la venta.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","Precisión de los campos de flotador (cantidades, descuentos, etc porcentajes) sólo para su visualización. Siempre queda aún se calcularán hasta 6 decimales."
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","La precisión de los campos de flotador (cantidades, descuentos, porcentajes, etc.) Flotadores se redondearán a decimales especificados. Por defecto = 3"
 Preferred Billing Address,Preferred dirección de facturación
 Preferred Shipping Address,Preferred Dirección de envío
 Prefix,Prefijo
@@ -2081,7 +2105,6 @@
 Previous Work Experience,Experiencia laboral previa
 Price,Precio
 Price List,Precio de lista
-Price List Country,Precio de lista País
 Price List Currency,Precio de Lista Currency
 Price List Currency Conversion Rate,Lista de precios de divisas Conversión de Tasa de
 Price List Exchange Rate,Lista de precios Tipo de Cambio
@@ -2089,6 +2112,7 @@
 Price List Name,Nombre Precio de lista
 Price List Rate,Precio Califica
 Price List Rate (Company Currency),Precio de lista Cambio (monedas de la compañía)
+Price List for Costing,Lista de precios de Costeo
 Price Lists and Rates,Listas de precios y tarifas
 Primary,Primario
 Print Format,Formato de impresión
@@ -2107,6 +2131,7 @@
 Produced Quantity,Cantidad producida
 Product Enquiry,Consulta de producto
 Production Order,Orden de Producción
+Production Orders,Órdenes de Producción
 Production Plan Item,Producción del artículo Plan de
 Production Plan Items,Elementos del Plan de Producción
 Production Plan Sales Order,Plan de Ventas Orden de Producción
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,Proyecto sabio Tracking Stock
 Projected Qty,Cantidad proyectada
 Projects,Proyectos
-Prompt email sending to customers and suppliers,Solicitar el envío de correo electrónico a clientes y proveedores
 Prompt for Email on Submission of,Preguntar por correo electrónico en la presentación de
 Properties,Propiedades
 Property,Propiedad
@@ -2147,7 +2171,6 @@
 Published On,Publicado el
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,Tire de la bandeja de entrada de mensajes de correo electrónico que se adjuntarán como documentos de comunicación (para contactos conocidos).
 Pull Payment Entries,Tire de las entradas de pago
-Pull items from Sales Order mentioned in the above table.,Tire de los artículos en órdenes de venta mencionados en el cuadro anterior.
 Pull sales orders (pending to deliver) based on the above criteria,Tire de órdenes de venta (pendiente de entregar) sobre la base de los criterios anteriores
 Purchase,Comprar
 Purchase Analytics,Compra Analytics
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,Cantidad ya fabricado
 Quantity and Rate,Cantidad y Precio
 Quantity and Warehouse,Cantidad y Almacén
+Quantity cannot be a fraction.,Cantidad no puede ser una fracción.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Cantidad de material obtenido después de la fabricación / reempaque de determinadas cantidades de materias primas
 Quantity should be equal to Manufacturing Quantity. ,Cantidad debe ser igual a la cantidad de fabricación.
 Quarter,Trimestre
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,Cita Perdida Razón
 Quotation Message,Cita Mensaje
 Quotation Sent,Presupuesto enviado
+Quotation Series,Series Cotización
 Quotation To,PRESUPUESTO a
 Quotation Trend,Tendencia Cotización
 Quotations received from Suppliers.,Citas recibidas de los proveedores.
 Quotes to Leads or Customers.,Cotizaciones a clientes potenciales o clientes.
-Raise Material Request,Levante solicitar material
 Raise Material Request when stock reaches re-order level,Levante solicitar material cuando el stock llega a re-ordenar nivel
-Raise Production Order,Levante orden de producción
 Raised By,Raised By
 Raised By (Email),Raised By (correo electrónico)
 Random,Azar
@@ -2280,6 +2303,7 @@
 Receivables / Payables,Cobrar / por pagar
 Receivables Group,Deudores Grupo
 Received Date,Fecha de recepción
+Received Items To Be Billed,Elementos recibidos a facturar
 Received Qty,Cantidad recibida
 Received and Accepted,Recibidas y aceptadas
 Receiver List,Receptor Lista
@@ -2293,6 +2317,8 @@
 Recurring Id,Id recurrente
 Recurring Invoice,Factura Recurrente
 Recurring Type,Tipo recurrente
+Reduce Deduction for Leave Without Pay (LWP),Reducir Deducción por licencia sin sueldo (LWP)
+Reduce Earning for Leave Without Pay (LWP),Reducir ganar por licencia sin sueldo (LWP)
 Ref Code,Ref. Código
 Ref Date is Mandatory if Ref Number is specified,Ref de la fecha es obligatoria si no se especifica Número Ref
 Ref DocType,Ref DocType
@@ -2302,6 +2328,8 @@
 Ref Type,Tipo de referencia
 Reference,Referencia
 Reference Date,Fecha de referencia
+Reference DocName,Referencia DocNombre
+Reference DocType,Referencia del tipo de documento
 Reference Name,Referencia Nombre
 Reference Number,Referencia
 Reference Type,Tipo de referencia
@@ -2322,10 +2350,12 @@
 Remove Bookmark,Retire Bookmark
 Rename Log,Cambiar el nombre de sesión
 Rename Tool,Cambiar el nombre de la herramienta
-Rename multiple items in one go,Cambiar el nombre de varios elementos de una sola vez
 Rename...,Cambiar el nombre de ...
 Rented,Alquilado
+Repeat On,Repita On
+Repeat Till,Repita Hasta
 Repeat on Day of Month,Repita el Día del Mes
+Repeat this Event,Repita este Evento
 Replace,Reemplazar
 Replace Item / BOM in all BOMs,Reemplazar elemento / BOM en todas las listas de materiales
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Reemplazar un BOM particular en todas las listas de materiales de otros en los que se utiliza. Se sustituirá el enlace BOM viejo, actualizar el costo y regenerar &quot;Explosión lista de materiales Item&quot; tabla según nueva lista de materiales"
@@ -2358,13 +2388,14 @@
 Reseller,Revendedores
 Reserved Quantity,Cantidad reservada
 Reserved Warehouse,Reservado Almacén
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,Almacén reservada en órdenes de venta / almacén de productos terminados
+Reserved Warehouse is missing in Sales Order,Reservado Almacén falta de órdenes de venta
 Resignation Letter Date,Renuncia Fecha Carta
 Resolution,Resolución
 Resolution Date,Resolución Fecha
 Resolution Details,Detalles de la resolución
 Resolved By,Resuelto por
 Restrict IP,Restringir IP
-Restrict submission rights based on amount,Restringir el derecho de presentación basado en la cantidad
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),Restringir el usuario desde esta dirección IP. Varias direcciones IP se pueden agregar al separar con comas. También acepta parciales direcciones IP similares (111.111.111)
 Restricting By User,Restricción por usuario
 Retail,Venta al por menor
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,Salario Deducción Estructura
 Salary Structure Earning,Estructura salarial ganar
 Salary Structure Earnings,Ganancias Estructura salarial
+Salary breakup based on Earning and Deduction.,Ruptura Salario basado en la ganancia y la deducción.
 Salary components.,Componentes salariales.
 Sales,Venta
 Sales Analytics,Sales Analytics
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),Sales Person Varianza del objetivo (punto Group-Wise)
 Sales Person Targets,Objetivos de ventas Persona
 Sales Person-wise Transaction Summary,Resumen de transacciones de persona prudente Ventas
-Sales Rate,Ventas Precio
 Sales Register,Ventas Registrarse
 Sales Return,Ventas Retorno
 Sales Taxes and Charges,Ventas Impuestos y Cargos
@@ -2484,7 +2515,6 @@
 Scheduled,Programado
 Scheduled Confirmation Date,Confirmación Fecha programada
 Scheduled Date,Fecha Programada
-Scheduler Error Log,Programador de registro de errores
 Scheduler Log,Programador de sesión
 School/University,Escuela / Universidad
 Score (0-5),Puntuación (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,Seleccione tipo de documento
 Select Document Type,Seleccione el tipo de documento
 Select Document Type or Role to start.,Seleccione el tipo de documento o papel para comenzar.
+Select Items,Seleccione Artículos
 Select PR,Seleccione PR
 Select Print Format,Seleccione Formato de impresión
 Select Print Heading,Seleccione Imprimir Encabezado
@@ -2562,8 +2593,8 @@
 Send SMS,Enviar SMS
 Send To,Enviar a un
 Send To Type,Enviar a un tipo
+Send an email reminder in the morning,Enviar un recordatorio por correo electrónico en la mañana
 Send automatic emails to Contacts on Submitting transactions.,Enviar correos electrónicos automáticos en Contactos de Envío de transacciones.
-"Send bulk SMS to leads, customers, contacts","Envíe SMS a granel a clientes potenciales, clientes, contactos"
 Send mass SMS to your contacts,Envíe SMS masivos a sus contactos
 Send regular summary reports via Email.,Enviar informes resumidos periódicos por correo electrónico.
 Send to this list,Enviar a esta lista
@@ -2580,7 +2611,6 @@
 Serial No Status,Serial No Estado
 Serial No Warranty Expiry,Número de serie Garantía de caducidad
 Serialized Item: ',Artículo serializado: &#39;
-Series,Serie
 Series List for this Transaction,Series de lista para esta transacción
 Server,Servidor
 Service Address,Dirección del Servicio
@@ -2590,19 +2620,13 @@
 Session Expiry,Sesión de caducidad
 Session Expiry in Hours e.g. 06:00,"Sesión de caducidad en horas, por ejemplo 06:00"
 Set Banner from Image,Conjunto de la bandera de la Imagen
-Set From Image,Set De Imagen
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Conjunto de objetos inteligentes Group-presupuestos en este Territorio. También puede incluir la estacionalidad mediante el establecimiento de la distribución.
 Set Login and Password if authentication is required.,"Establecer inicio de sesión y contraseña, si se requiere autenticación."
 Set New Password,Establecer nueva contraseña
 Set Value,Establecer valor
 "Set a new password and ""Save""",Establezca una contraseña nueva y &quot;Guardar&quot;
-Set default values for entry,Establecer valores por defecto para la entrada
-Set default values for users (also used for permissions).,Establecer valores predeterminados para los usuarios (también se usa para los permisos).
-Set multiple numbering series for transactions,Establecer varias series de numeración para las transacciones
-Set permissions on transactions / masters,Establecer permisos en las transacciones / maestros
 Set prefix for numbering series on your transactions,Establecer prefijo de numeración de serie en sus transacciones
 Set targets Item Group-wise for this Sales Person.,Establecer metas grupo que tienen el artículo de esta persona de ventas.
-Set workflow rules.,Establezca reglas de flujo de trabajo.
 "Set your background color, font and image (tiled)","Establezca su color de fondo, tipo de letra y la imagen (mosaico)"
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","Establezca la configuración de correo SMTP salientes aquí. Todo el sistema genera notificaciones, correos electrónicos irá desde este servidor de correo. Si no está seguro, deje este campo en blanco para utilizar servidores ERPNext (correos electrónicos seguirán siendo enviados a su correo electrónico de identificación) o póngase en contacto con su proveedor de correo electrónico."
 Setting Account Type helps in selecting this Account in transactions.,Tipo de Ajuste de cuentas ayuda en la selección de esta cuenta en las transacciones.
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,Configuración de Compras.
 Setup of fonts and background.,Configuración de fuentes y el fondo.
 "Setup of top navigation bar, footer and logo.","Configuración de la barra de navegación superior, pie de página y el logotipo."
-Setup outgoing SMS via your bulk SMS provider,Configuración de SMS salientes a través de su proveedor de SMS a granel
 Setup to pull emails from support email account,Configuración para extraer mensajes de correo electrónico desde la cuenta de correo electrónico de apoyo
 Share,Participación
 Share With,Compartir Con
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,Breve biografía de la página web y otras publicaciones.
 Shortcut,Atajo
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Mostrar &quot;En Stock&quot; o &quot;no está en stock&quot;, basada en el stock disponible en este almacén."
-Show / Hide Modules,Mostrar / Ocultar Módulos
 Show Details,Mostrar detalles
 Show In Website,Mostrar en el sitio web
 Show Print First,Mostrar Imprimir Primera
@@ -2658,11 +2680,9 @@
 Show in Website,Mostrar en el sitio web
 Show rows with zero values,Mostrar filas con valores iguales a cero
 Show this slideshow at the top of the page,Ver este vídeo en la parte superior de la página
-"Show, hide modules","Mostrar, ocultar módulos"
 Showing only for,Mostrando sólo para
 Signature,Firma
 Signature to be appended at the end of every email,Firma que se adjunta al final de cada correo electrónico
-Simplify entry forms by disabling features,Simplificar los formularios de inscripción mediante la desactivación de funciones
 Single,Solo
 Single Post (article).,Mensaje Individual (artículo).
 Single unit of an Item.,Una sola unidad de un elemento.
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,Lamentablemente no hemos podido encontrar lo que estabas buscando.
 Sorry you are not permitted to view this page.,"Disculpe, no tiene permiso para ver esta página."
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,¡Lo siento! Sólo podemos permitir hasta 100 filas por la Reconciliación de Valores.
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","¡Lo siento! No se puede cambiar la moneda por defecto de la empresa, porque existen operaciones existentes en su contra. Usted tendrá que cancelar esas transacciones si desea cambiar la moneda por defecto."
 Sorry. Companies cannot be merged,Lo siento. Las empresas no pueden fusionarse
 Sorry. Serial Nos. cannot be merged,Lo siento. Nos. de serie no se puede fusionar
 Sort By,Ordenado por
@@ -2759,6 +2780,7 @@
 Suggestions,Sugerencias
 Sunday,Domingo
 Supplier,Proveedor
+Supplier (Payable) Account,Cuenta de proveedor (de pago)
 Supplier (vendor) name as entered in supplier master,Proveedor (vendedor) Nombre tal como aparece en Maestro de proveedores
 Supplier Account Head,Head cuenta de proveedor
 Supplier Address,Proveedor Dirección
@@ -2792,7 +2814,6 @@
 Symbol,Símbolo
 Sync Inbox,Bandeja de entrada Sync
 Sync Support Mails,Sincronizar correos de apoyo
-Sync backups with remote tools like Dropbox etc.,"Sincronizar copias de seguridad con herramientas remotas como Dropbox, etc"
 Sync with Dropbox,Sincronización con Dropbox
 Sync with Google Drive,Sincronización con Google Drive
 System,Sistema
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page","La &quot;Página Web&quot;, que es la página de inicio del sitio web"
 The BOM which will be replaced,La lista de materiales que será sustituido
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",El punto que representa el paquete. Este elemento debe tener &quot;es el tema de&quot; como &quot;No&quot; y &quot;¿Sales Item&quot; como &quot;Sí&quot;
-The account to which you will pay (have paid) the money to.,La cuenta a la que va a pagar (he pagado) el dinero.
 The date at which current entry is made in system.,La fecha en que se efectúe la entrada actual en el sistema.
 The date at which current entry will get or has actually executed.,La fecha en la que la entrada actual se consigue o se ejecuta realmente.
 The date on which next invoice will be generated. It is generated on submit.,La fecha en la que será la próxima factura generada. Se genera en enviar.
@@ -2927,6 +2947,7 @@
 To Currency,A la moneda
 To Date,Conocer
 To Discuss,Para discutir
+To Do,Para hacer
 To Do List,Para hacer la lista
 To PR Date,Conocer PR
 To Package No.,Para Paquete No.
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","Para crear automáticamente Tickets de Soporte de su correo entrante, establecer la configuración de POP3 aquí. Lo ideal debe crear un ID de correo electrónico por separado para el sistema ERP para que todos los correos electrónicos se sincronizan en el sistema desde que id electrónico. Si no está seguro, póngase en contacto con su proveedor de correo electrónico."
 "To create an Account Head under a different company, select the company and save customer.","Para crear un Jefe de Cuenta bajo una empresa diferente, seleccione la empresa y ahorrar al cliente."
 To enable <b>Point of Sale</b> features,Para habilitar <b>Punto de Venta</b> características
+To enable more currencies go to Setup > Currency,Para permitir que más divisas vaya a Configuración&gt; Moneda
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","Para buscar elementos de nuevo, haga clic en &quot;Obtener elementos&quot; botón \ o actualizar la cantidad manualmente."
 "To format columns, give column labels in the query.","Para dar formato a columnas, dar títulos de las columnas en la consulta."
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.","Para restringir aún más permisos en función de determinados valores en un documento, utilice la &quot;condición&quot; de configuración."
@@ -2953,7 +2975,6 @@
 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.,Para realizar el seguimiento elemento en documentos de ventas y compras en base a sus números de serie. Esto también se puede utilizar para rastrear detalles de la garantía del producto.
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,"Para el seguimiento de los elementos de documentos de ventas y compras con los números de lote <br> <b>Industria de Preferencia: Productos químicos, etc</b>"
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Para el seguimiento de elementos mediante código de barras. Usted será capaz de entrar en los elementos de albarán y factura de venta mediante el escaneo de código de barras del artículo.
-"To update your HTML from attachment, click here","Para actualizar el código HTML de archivo adjunto, haga clic aquí"
 ToDo,ToDo
 Tools,Instrumentos
 Top,Superior
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),Total de Impuestos (Empresa moneda)
 Total Taxes and Charges,Total de Impuestos y Cargos
 Total Taxes and Charges (Company Currency),Total de Impuestos y Cargos (Compañía moneda)
+Total Working Days In The Month,Total de días hábiles del mes
 Total amount of invoices received from suppliers during the digest period,Importe total de las facturas recibidas de los proveedores durante el período de digestión
 Total amount of invoices sent to the customer during the digest period,Importe total de las facturas se envía al cliente durante el período de digestión
-Total days in month,Número total de días en el mes
 Total in words,Total en palabras
+Total production order qty for item,Cantidad total de la orden de fabricación para el artículo
 Totals,Totales
 Track separate Income and Expense for product verticals or divisions.,Seguimiento de Ingresos y Gastos por separado para los productos o divisiones verticales.
 Track this Delivery Note against any Project,Seguir este albarán en contra de cualquier proyecto
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,UOM Detalle de conversión
 UOM Conversion Details,UOM detalles de la conversión
 UOM Conversion Factor,UOM factor de conversión
+UOM Conversion Factor is mandatory,UOM factor de conversión es obligatoria
 UOM Details,UOM Detalles
 UOM Name,Nombre UOM
 UOM Replace Utility,UOM utilidad replace
@@ -3044,6 +3067,7 @@
 Unread Messages,Los mensajes no leídos
 Unscheduled,No programada
 Unsubscribed,No suscrito
+Upcoming Events for Today,Eventos para hoy
 Update,Actualizar
 Update Clearance Date,Actualizado Liquidación
 Update Field,Actualizar campos
@@ -3052,7 +3076,6 @@
 Update Series Number,Actualización Número de Serie
 Update Stock,Actualización de almacen
 Update Stock should be checked.,Actualización de stock debe ser revisado.
-Update This Application,Actualizar esta aplicación
 Update Value,Actualizar Valor
 "Update allocated amount in the above table and then click ""Allocate"" button",Actualizar importe asignado en la tabla anterior y haga clic en &quot;Asignar&quot; botón
 Update bank payment dates with journals.,Actualización de las fechas de pago bancario de las revistas.
@@ -3065,6 +3088,7 @@
 Upload HTML,Sube HTML
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Subir un archivo csv con dos columnas:. El nombre antiguo y el nuevo nombre. Max 500 filas.
 Upload a file,Subir un archivo
+Upload and Import,Subir e importar
 Upload attendance from a .csv file,Sube la asistencia de un archivo. Csv
 Upload stock balance via csv.,Sube saldo de existencias a través csv.
 Uploading...,Subiendo ...
@@ -3078,7 +3102,6 @@
 User ID,ID de usuario
 User Image,Imagen del usuario
 User Name,Nombre de usuario
-User Properties,Propiedades del usuario
 User Remark,Usuario Comentario
 User Remark will be added to Auto Remark,Observación de usuario se añadirá a Auto Observación
 User Tags,Nube de etiquetas
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,El usuario no permite eliminar.
 UserRole,UserRole
 Username,Nombre de usuario
-Users,Usuarios
 Users who can approve a specific employee's leave applications,Los usuarios que pueden aprobar las solicitudes de licencia de un empleado específico
 Users with this role are allowed to do / modify accounting entry before frozen date,Los usuarios con este rol pueden ver / modificar registro contable antes de la fecha congelado
 Utilities,Utilidades
@@ -3116,6 +3138,7 @@
 Voucher No,Vale No
 Voucher Type,Vale Tipo
 Voucher Type and Date,Tipo Bono y Fecha
+WIP Warehouse required before Submit,WIP Depósito requerido antes de Enviar
 Waiting for Customer,Esperando al Cliente
 Walk In,Walk In
 Warehouse,Almacén
@@ -3149,6 +3172,7 @@
 Website Settings,Ajustes del Sitio Web
 Website Slideshow,Sitio Web Presentación
 Website Slideshow Item,Sitio Web Presentación del artículo
+Website User,Sitio web del usuario
 Website Warehouse,Website Almacén
 Wednesday,Miércoles
 Weekly,Semanal
@@ -3214,21 +3238,22 @@
 Yes,Sí
 Yesterday,Ayer
 You are not authorized to do/modify back dated entries before ,Usted no está autorizado a hacer / modificar de nuevo las entradas de fecha anterior
-You can create more earning and deduction type from Setup --> HR,Puede crear más ingresos y el tipo de deducción de Configuración -&gt; HR
 You can enter any date manually,Puede introducir cualquier fecha manualmente
 You can enter the minimum quantity of this item to be ordered.,Puede introducir la cantidad mínima de este artículo para ser ordenado.
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,No se puede introducir tanto Albarán No y No. de venta de facturas \ Introduce cualquiera.
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,Puede establecer varias &quot;propiedades&quot; a los usuarios configurar los valores por defecto y aplicar reglas de permisos basados ​​en el valor de estas propiedades en diversas formas.
 You can start by selecting backup frequency and \					granting access for sync,Puedes empezar por seleccionar la frecuencia de copia de seguridad y \ otorgar acceso para la sincronización
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,Puede utilizar <a href='#Form/Customize Form'>Personalizar formulario</a> para establecer los niveles en los campos.
+You may need to update: ,Es posible que tenga que actualizar:
 Your Customer's TAX registration numbers (if applicable) or any general information,De sus clientes números impuesto de matriculación (si es aplicable) o cualquier otra información de carácter general
 "Your download is being built, this may take a few moments...","Su descarga se está construyendo, esto puede tardar unos minutos ..."
-Your letter head content in HTML.,Su carta de contenido cabeza en HTML.
+Your letter head content,El contenido de su carta de cabeza
 Your sales person who will contact the customer in future,Su persona de las ventas que se comunicará con el cliente en el futuro
 Your sales person who will contact the lead in future,Su persona de las ventas que se comunicará con el plomo en el futuro
 Your sales person will get a reminder on this date to contact the customer,Su persona de ventas se pondrá un aviso en la fecha de contacto con el cliente
 Your sales person will get a reminder on this date to contact the lead,Su persona de ventas se pondrá un aviso en la fecha en contacto con el plomo
 Your support email id - must be a valid email - this is where your emails will come!,Su ID de correo electrónico de apoyo - debe ser un correo electrónico válido - aquí es donde tus correos electrónicos vendrá!
+[Error],[Error]
 [Label]:[Field Type]/[Options]:[Width],[Label]: [Tipo de campo] / [Opciones]: [Ancho]
 add your own CSS (careful!),añadir su propio CSS (¡cuidado!)
 adjust,ajustar
@@ -3430,6 +3455,7 @@
 volume-up,volumen-up
 warning-sign,advertencia signo
 website page link,enlace de la página web
+which is greater than sales order qty ,que es mayor que la cantidad de pedidos de ventas
 wrench,llave inglesa
 yyyy-mm-dd,aaaa-mm-dd
 zoom-in,zoom-in
diff --git a/translations/fr.csv b/translations/fr.csv
index 1722af3..dacdd2f 100644
--- a/translations/fr.csv
+++ b/translations/fr.csv
@@ -1,12 +1,18 @@
  (Half Day),(Demi-journée)
+ against sales order,contre l&#39;ordre de vente
  against same operation,contre une même opération
  already marked,déjà marqué
  and year: ,et l&#39;année:
+ as it is stock Item or packing item,comme il est stock Article ou article d&#39;emballage
  at warehouse: ,à l&#39;entrepôt:
  by Role ,par rôle
+ can not be made.,ne peuvent pas être réalisés.
+ can not be marked as a ledger as it has existing child,ne peut pas être marqué comme un grand livre comme elle a un enfant existant
  cannot be 0,ne peut pas être égal à 0
  cannot be deleted.,ne peut pas être supprimé.
  does not belong to the company,n&#39;appartient pas à l&#39;entreprise
+ has already been submitted.,a déjà été soumis.
+ has been freezed. ,a été gelé.
  has been freezed. \				Only Accounts Manager can do transaction against this account,a été gelé. \ Seul Accounts Manager peut faire contre cette transaction compte
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item","est moins égale à zéro dans le système, \ taux d&#39;évaluation est obligatoire pour ce produit"
  is mandatory,est obligatoire
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,est maintenant l&#39;année fiscale défaut. \ S&#39;il vous plaît rafraîchir votre navigateur pour que le changement prenne effet.
  is present in one or many Active BOMs,est présent dans une ou plusieurs nomenclatures actifs
  not active or does not exists in the system,pas actif ou n&#39;existe pas dans le système
+ not submitted,pas soumis
  or the BOM is cancelled or inactive,ou la nomenclature est annulé ou inactif
  should be 'Yes'. As Item: ,devrait être «oui». Comme objet:
  should be same as that in ,doit être le même que celui de l&#39;
  was on leave on ,était en congé
+ will be ,sera
  will be over-billed against mentioned ,sera terminée à bec contre mentionné
  will become ,deviendra
 """Company History""",&quot;Histoire de la société&quot;
@@ -56,6 +64,7 @@
 15px,15px
 16px,16px
 2 days ago,Il ya 2 jours
+: Duplicate row from same ,: Double rangée de même
 : It is linked to other active BOM(s),: Elle est liée à d&#39;autres actifs BOM (s)
 : Mandatory for a Recurring Invoice.,: Obligatoire pour une facture récurrente.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">Pour gérer les groupes de clients, cliquez ici</a>"
@@ -102,6 +111,7 @@
 Account Id,Id compte
 Account Name,Nom du compte
 Account Type,Type de compte
+Account for this ,Tenir compte de cette
 Accounting,Comptabilité
 Accounting Year.,Année de la comptabilité.
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Saisie comptable gelé jusqu&#39;à cette date, personne ne peut faire / modifier entrée sauf rôle spécifié ci-dessous."
@@ -114,6 +124,7 @@
 Action,Action
 Active,Actif
 Active: Will extract emails from ,Actif: va extraire des emails à partir de
+Activity,Activité
 Activity Log,Journal d&#39;activité
 Activity Type,Type d&#39;activité
 Actual,Réel
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),Ajouter une bannière sur le site. (Petites bannières sont généralement bien)
 Add attachment,Ajouter une pièce jointe
 Add code as &lt;script&gt;,Ajoutez le code que &lt;script&gt;
-Add custom code to forms,Ajouter un code personnalisé à des formes
-Add fields to forms,Ajoutez des champs à des formes
-Add headers for standard print formats,Ajouter en-têtes pour les formats d&#39;impression standard
 Add new row,Ajouter une nouvelle ligne
 Add or Deduct,Ajouter ou déduire
 Add rows to set annual budgets on Accounts.,Ajoutez des lignes d&#39;établir des budgets annuels des comptes.
@@ -158,7 +166,6 @@
 Add to To Do,Ajouter à To Do
 Add to To Do List of,Ajouter à To Do List des
 Add/Remove Recipients,Ajouter / supprimer des destinataires
-"Add/remove users, set roles, passwords etc","Ajouter / supprimer des utilisateurs, des rôles définis, les mots de passe etc"
 Additional Info,Informations additionnelles à
 Address,Adresse
 Address & Contact,Adresse et coordonnées
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,L&#39;adresse doit être affichée sur la page de contact
 Adds a custom field to a DocType,Ajoute un champ personnalisé à un DocType
 Adds a custom script (client or server) to a DocType,Ajoute un script personnalisé (client ou serveur) à un DocType
-Administration,Administration
 Advance Amount,Montant de l&#39;avance
 Advance amount,Montant de l&#39;avance
 Advanced Scripting,Scripting avancée
@@ -238,6 +244,7 @@
 Allow Users,Autoriser les utilisateurs
 Allow on Submit,Permettez sur Soumettre
 Allow the following users to approve Leave Applications for block days.,Autoriser les utilisateurs suivants d&#39;approuver demandes d&#39;autorisation pour les jours de bloc.
+Allow user to edit Price List Rate in transactions,Permettre à l&#39;utilisateur d&#39;éditer Prix List Noter dans les transactions
 Allow user to login only after this hour (0-24),Permettre à l&#39;utilisateur de se connecter seulement après cette heure (0-24)
 Allow user to login only before this hour (0-24),Permettre à l&#39;utilisateur de se connecter seulement avant cette heure (0-24)
 Allowance Percent,Pourcentage allocation
@@ -252,8 +259,6 @@
 Amount >=,Montant&gt; =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","Un fichier d&#39;icône avec l&#39;extension. Ico. Doit être de 16 x 16 px. Généré à l&#39;aide d&#39;un générateur de favicon. [ <a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a> ]"
 Analytics,Analytique
-Annual Cost To Company,Coût annuel pour la société
-Annual Cost To Company can not be less than 12 months of Total Earning,Coût annuel pour la société ne peut pas être inférieure à 12 mois de gagner totale
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,Une autre structure salariale &#39;% s&#39; est actif pour l&#39;employé &#39;% s&#39;. Veuillez faire son statut inactif »pour continuer.
 "Any other comments, noteworthy effort that should go in the records.","D&#39;autres commentaires, l&#39;effort remarquable qui devrait aller dans les dossiers."
 Applicable Holiday List,Liste de vacances applicable
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,Appliquer / Approuver les feuilles
 Apply Shipping Rule,Appliquer la règle de livraison
 Apply Taxes and Charges Master,Appliquer les taxes et charges Maître
-Apply latest updates and patches to this app,Appliquer dernières mises à jour et des correctifs à cette application
 Appraisal,Évaluation
 Appraisal Goal,Objectif d&#39;évaluation
 Appraisal Goals,Objectifs d&#39;évaluation
@@ -300,7 +304,6 @@
 Attached To DocType,Attaché à DOCTYPE
 Attached To Name,Accolé au nom
 Attachment,Attachment
-Attachment removed. You may need to update: ,Pièce jointe supprimée. Vous devrez peut-être mettre à jour:
 Attachments,Pièces jointes
 Attempted to Contact,Tenté de contacter
 Attendance,Présence
@@ -422,7 +425,6 @@
 Brand Name,Nom de marque
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","La marque est ce qui apparaît en haut à droite de la barre d&#39;outils. Si c&#39;est une image, assurez-vous que ithas un fond transparent et utilisez la balise &lt;img /&gt;. Conserver la taille 200px x 30px comme"
 Brand master.,Marque maître.
-Branding and Printing,Image de marque et d&#39;impression
 Brands,Marques
 Breakdown,Panne
 Budget,Budget
@@ -440,6 +442,7 @@
 Build Sitemap,Construire Plan du site
 Bulk Email,Bulk Email
 Bulk Email records.,Bulk Email enregistrements.
+Bummer! There are more holidays than working days this month.,Déception! Il ya plus de vacances que les jours ouvrables du mois.
 Bundle items at time of sale.,Regrouper des envois au moment de la vente.
 Button,Bouton
 Buyer of Goods and Services.,Lors de votre achat de biens et services.
@@ -490,7 +493,6 @@
 Center,Centre
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.","Certains documents ne doivent pas être modifiés une fois définitif, comme une facture par exemple. L&#39;état final de ces documents est appelée <b>Soumis.</b> Vous pouvez restreindre les rôles qui peuvent Soumettre."
 Change UOM for an Item.,Changer Emballage pour un article.
-"Change entry properties (hide fields, make mandatory etc)","Modifier les propriétés d&#39;entrée (champs peau, etc rendent obligatoire)"
 Change the starting / current sequence number of an existing series.,Changer le numéro de séquence de démarrage / courant d&#39;une série existante.
 Channel Partner,Channel Partner
 Charge,Charge
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Cochez cette case si vous voulez forcer l&#39;utilisateur à sélectionner une série avant de l&#39;enregistrer. Il n&#39;y aura pas défaut si vous cochez cette.
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,Cochez cette case si vous souhaitez envoyer des emails que cette id seulement (en cas de restriction par votre fournisseur de messagerie).
 Check this if you want to show in website,Cochez cette case si vous souhaitez afficher sur le site
+Check this to disallow fractions. (for Nos),Cochez cette case pour interdire les fractions. (Pour les numéros)
 Check this to make this the default letter head in all prints,Cochez cette case pour faire de cette tête de lettre par défaut dans toutes les copies
 Check this to pull emails from your mailbox,Cochez cette case pour extraire des emails de votre boîte aux lettres
 Check to activate,Vérifiez pour activer
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,"Numéros d&#39;immatriculation de la Société pour votre référence. Numéros d&#39;enregistrement TVA, etc: par exemple"
 Company registration numbers for your reference. Tax numbers etc.,"Numéros d&#39;immatriculation de la Société pour votre référence. Numéros de taxes, etc"
 Complaint,Plainte
+Complete,Compléter
 Complete By,Compléter par
 Completed,Terminé
 Completed Qty,Complété Quantité
@@ -626,12 +630,12 @@
 Cost Center Name,Coût Nom du centre
 Cost Center is mandatory for item: ,Centre de coûts est obligatoire pour objet:
 Cost Center must be specified for PL Account: ,Centre de coûts doit être spécifiée pour compte PL:
-Cost to Company,Coût pour l&#39;entreprise
 Costing,Costing
 Country,Pays
 Country Name,Nom Pays
 Create,Créer
 Create Bank Voucher for the total salary paid for the above selected criteria,Créer Chèques de la Banque pour le salaire total payé pour les critères ci-dessus sélectionnées
+Create Material Requests,Créer des demandes de matériel
 Create Production Orders,Créer des ordres de fabrication
 Create Receiver List,Créer une liste Receiver
 Create Salary Slip,Créer bulletin de salaire
@@ -680,6 +684,7 @@
 Custom Startup Code,Code de démarrage personnalisée
 Custom?,Custom?
 Customer,Client
+Customer (Receivable) Account,Compte client (à recevoir)
 Customer / Item Name,Client / Nom d&#39;article
 Customer Account,Compte client
 Customer Account Head,Compte client Head
@@ -688,6 +693,8 @@
 Customer Code,Code client
 Customer Codes,Codes du Client
 Customer Details,Détails du client
+Customer Discount,Remise à la clientèle
+Customer Discounts,Réductions des clients
 Customer Feedback,Réactions des clients
 Customer Group,Groupe de clients
 Customer Group Name,Nom du groupe client
@@ -717,11 +724,10 @@
 DN,DN
 DN Detail,Détail DN
 Daily,Quotidien
+Daily Event Digest is sent for Calendar Events where reminders are set.,Daily Digest événement est envoyé pour le calendrier des événements où les rappels sont fixés.
 Daily Time Log Summary,Daily Time Sommaire du journal
-"Daily, weekly, monthly email Digests","Quotidien, hebdomadaire, mensuel et résumés"
 Danger,Danger
 Data,Données
-Data Import,Importation de données
 Data missing in table,Données manquantes dans le tableau
 Database,Base de données
 Database Folder ID,Database ID du dossier
@@ -777,6 +783,7 @@
 Default Settings,Paramètres par défaut
 Default Source Warehouse,Source d&#39;entrepôt par défaut
 Default Stock UOM,Stock défaut Emballage
+Default Supplier,Par défaut Fournisseur
 Default Supplier Type,Fournisseur Type par défaut
 Default Target Warehouse,Cible d&#39;entrepôt par défaut
 Default Territory,Territoire défaut
@@ -795,6 +802,7 @@
 Delete,Effacer
 Delete Row,Supprimer la ligne
 Delivered,Livré
+Delivered Items To Be Billed,Les articles livrés être facturé
 Delivered Qty,Qté livrée
 Delivery Address,Adresse de livraison
 Delivery Date,Date de livraison
@@ -813,7 +821,6 @@
 Delivery Time,Délai de livraison
 Delivery To,Pour livraison
 Department,Département
-Depend on LWP,Dépendent LWP
 Depends On,Sur dépend
 Depends on LWP,Dépend de LWP
 Descending,Descendant
@@ -864,6 +871,7 @@
 DocType or Field,DocType ou Champ
 Document,Document
 Document Description,Description du document
+Document Numbering Series,Série de documents de numérotation
 Document Status transition from ,transition de l&#39;état du document de
 Document Type,Type de document
 Document is only editable by users of role,Document est modifiable uniquement par les utilisateurs de rôle
@@ -934,7 +942,7 @@
 Employee Leave Balance,Congé employé Solde
 Employee Name,Nom de l&#39;employé
 Employee Number,Numéro d&#39;employé
-Employee Records to be created by ,Dossiers sur les employés à être créées par
+Employee Records to be created by,Dossiers sur les employés à être créées par
 Employee Setup,Configuration des employés
 Employee Type,Type de contrat
 Employee grades,Grades du personnel
@@ -944,7 +952,6 @@
 Employees Email Id,Les employés Id Email
 Employment Details,Détails de l&#39;emploi
 Employment Type,Type d&#39;emploi
-Enable / disable currencies.,Activer / désactiver devises.
 Enable Auto Inventory Accounting,Activer Auto Inventory Accounting
 Enable Shopping Cart,Activer Panier
 Enabled,Activé
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,Erreur: document a été modifié après que vous l&#39;avez ouvert
 Estimated Material Cost,Coût des matières premières estimée
 Event,Événement
+Event End must be after Start,Fin de l&#39;événement doit être postérieure au début
 Event Individuals,Les individus de l&#39;événement
 Event Role,Rôle de l&#39;événement
 Event Roles,Rôles de l&#39;événement
 Event Type,Type d&#39;événement
 Event User,L&#39;utilisateur d&#39;Event
+Events In Today's Calendar,Événements dans le calendrier d&#39;aujourd&#39;hui
+Every Day,Every Day
+Every Month,Chaque mois
+Every Week,Chaque semaine
+Every Year,Chaque année
 Everyone can read,Tout le monde peut lire
 Example:,Exemple:
 Exchange Rate,Taux de change
@@ -1019,8 +1032,6 @@
 Exports,Exportations
 External,Externe
 Extract Emails,Extrait Emails
-Extract Job Applicant from jobs email id e.g. jobs@example.com,Extrait du demandeur d&#39;emploi à partir des emplois email id jobs@example.com par exemple
-Extract Leads from sales email id e.g. sales@example.com,"Extrait des ventes Leads email id sales@example.com par exemple,"
 FCFS Rate,Taux PAPS
 FIFO,FIFO
 Facebook Share,Facebook Partager
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Les champs séparés par des virgules (,) seront inclus dans le <br /> <b>Recherche par</b> liste de la boîte de dialogue Rechercher"
 File,Fichier
 File Data,Fichier de données
-File Manager,Gestionnaire de fichiers
 File Name,Nom du fichier
 File Size,Taille du fichier
 File URL,URL du fichier
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,Date de confirmation finale
 Financial Analytics,Financial Analytics
 Financial Statements,États financiers
-Financial Years for books of accounts,Exercices pour les livres de comptes
 First Name,Prénom
 First Responded On,D&#39;abord répondu le
 Fiscal Year,Exercice
@@ -1090,6 +1099,7 @@
 For Sales Invoice,Pour Facture de vente
 For Server Side Print Formats,Server Side Formats d&#39;impression
 For Territory,Pour le territoire
+For UOM,Pour UOM
 For Warehouse,Pour Entrepôt
 "For comparative filters, start with","Pour les filtres de comparaison, commencez par"
 "For e.g. 2012, 2012-13","Pour exemple, 2012, 2012-13"
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,Congeler entrées en stocks
 Friday,Vendredi
 From,À partir de
+From Bill of Materials,De Bill of Materials
 From Company,De Company
 From Currency,De Monnaie
 From Currency and To Currency cannot be same,De leur monnaie et à devises ne peut pas être la même
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,Partir de la date doit être antérieure à ce jour
 From Delivery Note,De bon de livraison
 From Employee,De employés
+From Lead,Du plomb
 From PR Date,De PR Date
 From Package No.,De Ensemble numéro
 From Purchase Order,De bon de commande
@@ -1150,8 +1162,8 @@
 Get Current Stock,Obtenez Stock actuel
 Get From ,Obtenez partir
 Get Items,Obtenir les éléments
+Get Items From Sales Orders,Obtenir des éléments de Sales Orders
 Get Last Purchase Rate,Obtenez Purchase Rate Dernière
-Get Latest Updates,Obtenez Dernières mises à jour
 Get Non Reconciled Entries,Obtenez Non Entrées rapprochées
 Get Outstanding Invoices,Obtenez Factures en souffrance
 Get Purchase Receipt,Obtenez reçu d&#39;achat
@@ -1161,7 +1173,6 @@
 Get Template,Obtenez modèle
 Get Terms and Conditions,Obtenez Termes et Conditions
 Get Weekly Off Dates,Obtenez hebdomadaires Dates Off
-Get a list of errors encountered by the Scheduler,Obtenez une liste des erreurs rencontrées par le Scheduler
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Obtenez taux d&#39;évaluation et le stock disponible à la source / cible d&#39;entrepôt sur l&#39;affichage mentionné de date-heure. Si sérialisé article, s&#39;il vous plaît appuyez sur cette touche après avoir entré numéros de série."
 Give additional details about the indent.,Donnez des détails supplémentaires sur le tiret.
 Global Defaults,Par défaut mondiaux
@@ -1193,9 +1204,9 @@
 Group or Ledger,Groupe ou Ledger
 Groups,Groupes
 HR,RH
+HR Settings,Réglages RH
 HTML,HTML
 HTML / Banner that will show on the top of product list.,HTML / bannière qui apparaîtra sur le haut de la liste des produits.
-"HTML print formats for quotes, invoices etc","Formats d&#39;impression HTML pour les devis, les factures, etc"
 Half Day,Demi-journée
 Half Yearly,La moitié annuel
 Half-yearly,Semestriel
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children","Ici vous pouvez conserver les détails de famille comme nom et la profession des parents, le conjoint et les enfants"
 "Here you can maintain height, weight, allergies, medical concerns etc","Ici vous pouvez maintenir la hauteur, le poids, allergies, etc médicaux préoccupations"
 Hey there! You need to put at least one item in \				the item table.,Hey there! Vous devez mettre au moins un article dans \ l&#39;élément de table.
+Hey! All these items have already been invoiced.,Hey! Tous ces éléments ont déjà été facturés.
 Hey! There should remain at least one System Manager,Hey! Il devrait y rester au moins un System Manager
 Hidden,Caché
 Hide Actions,Masquer Actions
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults","Comment cette monnaie est formaté? S&#39;il n&#39;est pas défini, utilisera par défaut du système"
 How to upload,Comment faire pour télécharger
 Hrvatski,Hrvatski
+Human Resources,Ressources humaines
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,Hourra! Le jour (s) sur lequel vous faites une demande d&#39;autorisation \ coïncider avec séjour (s). Vous n&#39;avez pas besoin demander un congé.
 I,Je
 ID (name) of the entity whose property is to be set,ID (nom) de l&#39;entité dont la propriété doit être définie
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,Si le budget annuel dépassé
 "If a User does not have access at Level 0, then higher levels are meaningless","Si un utilisateur n&#39;a pas accès au niveau 0, puis des niveaux plus élevés n&#39;ont pas de sens"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","Si elle est cochée, la nomenclature des sous-ensembles points seront examinés pour obtenir des matières premières. Sinon, tous les éléments du sous-ensemble sera traitée comme une matière première."
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Si elle est cochée, aucune totale. des jours de travail comprennent vacances, ce qui réduira la valeur de salaire par jour"
 "If checked, all other workflows become inactive.","Si elle est cochée, tous les autres flux de production deviennent inactifs."
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","Si elle est cochée, un e-mail avec un format HTML ci-joint sera ajouté à une partie du corps du message ainsi que l&#39;attachement. Pour envoyer uniquement en pièce jointe, décochez cette."
 "If checked, the Home page will be the default Item Group for the website.","Si elle est cochée, la page d&#39;accueil sera le groupe d&#39;éléments par défaut pour le site."
@@ -1305,7 +1319,6 @@
 Import,Importer
 Import Attendance,Importer Participation
 Import Log,Importer Connexion
-Import data from spreadsheet (csv) files,Importation de données depuis la feuille de calcul (CSV)
 Important dates and commitments in your project life cycle,Dates importantes et des engagements dans votre cycle de vie du projet
 Imports,Importations
 In Dialog,Dans la boîte de dialogue
@@ -1314,6 +1327,7 @@
 In List View,Dans la Fenêtre
 In Process,In Process
 In Report Filter,Dans le rapport de filtre
+In Row,En Ligne
 In Store,En magasin
 In Words,Dans les mots
 In Words (Company Currency),En Words (Société Monnaie)
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","Dans le Gestionnaire d&#39;autorisations, cliquez sur le bouton dans la &#39;condition&#39; de colonne pour le rôle que vous souhaitez restreindre."
 Incentives,Incitations
 Incharge Name,Nom Incharge
+Include holidays in Total no. of Working Days,Inclure les vacances en aucun totale. de jours de travail
 Income / Expense,Produits / charges
 Income Account,Compte de revenu
 Income Booked,Revenu Réservé
@@ -1347,6 +1362,7 @@
 Industry Type,Secteur d&#39;activité
 Info,Infos
 Insert After,Insérer après
+Insert Below,Insérer en dessous
 Insert Code,Insérez le code
 Insert Row,Insérer une ligne
 Insert Style,Insérez style
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,Invalide bordereau de livraison. Livraison note doit exister et doit être en état de brouillon. S&#39;il vous plaît corriger et essayer à nouveau.
 Invalid Email,Invalid Email
 Invalid Email Address,Adresse email invalide
+Invalid Item or Warehouse Data,Objet non valide ou Data Warehouse
 Invalid Leave Approver,Invalide Laisser approbateur
 Inventory,Inventaire
 Inverse,Inverse
@@ -1511,7 +1528,6 @@
 Lead Lost,Conduire perdu
 Lead Name,Nom du chef de
 Lead Owner,Conduire du propriétaire
-Lead Ref,Le plomb Réf
 Lead Source,Source plomb
 Lead Status,Lead Etat
 Lead Time Date,Plomb Date Heure
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,Laisser vide si cela est jugé pour toutes les désignations
 Leave blank if considered for all employee types,Laisser vide si cela est jugé pour tous les types d&#39;employés
 Leave blank if considered for all grades,Laisser vide si cela est jugé pour tous les grades
+Leave blank if you have not decided the end date.,Laissez ce champ vide si vous n&#39;avez pas encore décidé de la date de fin.
 Leave by,Sortez par
 "Leave can be approved by users with Role, ""Leave Approver""",Le congé peut être approuvées par les utilisateurs avec le rôle «Laissez approbateur&quot;
 Ledger,Grand livre
@@ -1553,7 +1570,6 @@
 Letter Head,A en-tête
 Letter Head Image,Image Tête Lettre
 Letter Head Name,Nom de A en-tête
-Letter heads for print,Têtes de lettre pour l&#39;impression
 Level,Niveau
 "Level 0 is for document level permissions, higher levels for field level permissions.","Le niveau 0 est pour les autorisations de niveau document, des niveaux plus élevés pour les autorisations au niveau du terrain."
 Lft,Lft
@@ -1563,13 +1579,11 @@
 Linked With,Lié avec
 List,Liste
 List items that form the package.,Liste des articles qui composent le paquet.
-List of companies (not customers / suppliers),Liste des sociétés (non clients / fournisseurs)
 List of holidays.,Liste des jours fériés.
 List of patches executed,Liste des patchs exécutés
 List of records in which this document is linked,Liste des enregistrements dans lesquels ce document est lié
 List of users who can edit a particular Note,Liste des utilisateurs qui peuvent modifier une note particulière
 List this Item in multiple groups on the website.,Liste cet article dans plusieurs groupes sur le site.
-"List, delete uploaded files.","Liste, supprimer des fichiers téléchargés."
 Live Chat,Chat en direct
 Load Print View on opening of an existing form,Chargez Voir impression à l&#39;ouverture d&#39;un formulaire existant
 Loading,Chargement
@@ -1596,6 +1610,7 @@
 Mail Server,Mail Server
 Main Reports,Rapports principaux
 Main Section,Section principale
+Maintain Same Rate Throughout Sales Cycle,Maintenir même taux long cycle de vente
 Maintain same rate throughout purchase cycle,Maintenir le taux de même tout au long du cycle d&#39;achat
 Maintenance,Entretien
 Maintenance Date,Date de l&#39;entretien
@@ -1616,7 +1631,6 @@
 Make a new,Faire une nouvelle
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,Assurez-vous que les transactions que vous souhaitez restreindre l&#39;ont «territoire» d&#39;un champ Lien qui correspond à un «territoire» maître.
 Male,Masculin
-Manage Numbering Series,Gérer Numérotation Series
 Manage cost of operations,Gérer les coûts d&#39;exploitation
 Manage exchange rates for currency conversion,Gérer des taux de change pour la conversion de devises
 Mandatory,Obligatoire
@@ -1651,10 +1665,10 @@
 Material Request No,Demande de Support Aucun
 Material Request Type,Type de demande de matériel
 Material Request used to make this Stock Entry,Demande de Matériel utilisé pour réaliser cette Stock Entrée
+Material Requirement,Material Requirement
 Material Transfer,De transfert de matériel
 Materials,Matériels
 Materials Required (Exploded),Matériel nécessaire (éclatée)
-Materials Requirement Planning (MRP),Planification des besoins matières (MRP)
 Max 500 rows only.,Max 500 lignes seulement.
 Max Attachments,Attachments Max
 Max Days Leave Allowed,Laisser jours Max admis
@@ -1699,6 +1713,7 @@
 Month,Mois
 Monthly,Mensuel
 Monthly Attendance Sheet,Feuille de présence mensuel
+Monthly Earning & Deduction,Revenu mensuel &amp; Déduction
 Monthly Salary Register,S&#39;enregistrer Salaire mensuel
 Monthly salary statement.,Fiche de salaire mensuel.
 Monthly salary template.,Modèle de salaire mensuel.
@@ -1711,7 +1726,9 @@
 Mr,M.
 Ms,Mme
 Multiple Item Prices,Prix ​​des articles multiples
+Multiple root nodes not allowed.,Noeuds racines multiples interdits.
 Mupltiple Item prices.,Prix ​​du lot Mupltiple.
+Must be Whole Number,Doit être un nombre entier
 Must have report permission to access this report.,Doit avoir rapport autorisation d&#39;accéder à ce rapport.
 Must specify a Query to run,Vous devez spécifier une requête pour exécuter
 My Settings,Mes réglages
@@ -1737,7 +1754,6 @@
 Net Weight,Poids net
 Net Weight UOM,Emballage Poids Net
 Net Weight of each Item,Poids net de chaque article
-Net pay can not be greater than 1/12th of Annual Cost To Company,Le salaire net ne peut pas être supérieure à 1/12e du coût annuel pour la société
 Net pay can not be negative,Le salaire net ne peut pas être négatif
 Never,Jamais
 New,Nouveau
@@ -1795,6 +1811,7 @@
 No of Sent SMS,Pas de SMS envoyés
 No of Visits,Pas de visites
 No one,Personne
+No permission to write / remove.,Pas de permission pour écrire / supprimer.
 No record found,Aucun enregistrement trouvé
 No records tagged.,Aucun dossier étiqueté.
 No salary slip found for month: ,Pas de bulletin de salaire trouvé en un mois:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,Articles commandés à livrer
 Ordered Quantity,Quantité commandée
 Orders released for production.,Commandes validé pour la production.
-Organization,Organisation
 Organization Profile,Profil de l&#39;organisation
 Original Message,Message d&#39;origine
 Other,Autre
 Other Details,Autres détails
 Out,Out
-Out going mail server and support ticket mailbox,Out going serveur de messagerie et boîte aux lettres ticket de support
 Out of AMC,Sur AMC
 Out of Warranty,Hors garantie
 Outgoing,Sortant
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),POP3 serveur de messagerie (par exemple pop.gmail.com)
 POP3 server e.g. (pop.gmail.com),Serveur POP3 par exemple (pop.gmail.com)
 POS Setting,Réglage POS
+POS View,POS View
 PR Detail,Détail PR
 PRO,PRO
 PS,PS
@@ -1951,10 +1967,10 @@
 Participants,Les participants
 Partly Billed,Présentée en partie
 Partly Delivered,Livré en partie
-Partner,Partenaire
 Partner Target Detail,Détail Cible partenaire
 Partner Type,Type de partenaire
 Partner's Website,Le site web du partenaire
+Passive,Passif
 Passport Number,Numéro de passeport
 Password,Mot de passe
 Password Expires in (days),Mot de passe Expire dans (jours)
@@ -1964,12 +1980,12 @@
 Payables,Dettes
 Payables Group,Groupe Dettes
 Payment Collection With Ageing,Collection de paiement avec le vieillissement
+Payment Days,Jours de paiement
 Payment Entries,Les entrées de paiement
 Payment Entry has been modified after you pulled it. 			Please pull it again.,Entrée paiement a été modifié après l&#39;avoir retiré. S&#39;il vous plaît tirez à nouveau.
 Payment Made With Ageing,Paiement effectué avec le vieillissement
 Payment Reconciliation,Rapprochement de paiement
 Payment Terms,Conditions de paiement
-Payment days,Jours de paiement
 Payment to Invoice Matching Tool,Paiement à l&#39;outil Invoice Matching
 Payment to Invoice Matching Tool Detail,Paiement à l&#39;outil Détail Facture Matching
 Payments,Paiements
@@ -1984,6 +2000,7 @@
 Percent,Pour cent
 Percent Complete,Pour cent complet
 Percentage Allocation,Répartition en pourcentage
+Percentage Allocation should be equal to ,Pourcentage allocation doit être égale à
 Percentage variation in quantity to be allowed while receiving or delivering this item.,Pourcentage de variation de la quantité à être autorisé lors de la réception ou la livraison de cet article.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,Pourcentage que vous êtes autorisé à recevoir ou de livrer plus sur la quantité commandée. Par exemple: Si vous avez commandé 100 unités. et votre allocation est de 10% alors que vous êtes autorisé à recevoir 110 unités.
 Performance appraisal.,L&#39;évaluation des performances.
@@ -2026,19 +2043,24 @@
 Please check,S&#39;il vous plaît vérifier
 Please enter Default Unit of Measure,S&#39;il vous plaît entrer unité de mesure par défaut
 Please enter Delivery Note No or Sales Invoice No to proceed,S&#39;il vous plaît entrer livraison Remarque Aucune facture de vente ou Non pour continuer
+Please enter Employee Number,S&#39;il vous plaît entrer Nombre d&#39;employés
 Please enter Expense Account,S&#39;il vous plaît entrer Compte de dépenses
 Please enter Expense/Adjustment Account,S&#39;il vous plaît entrer Charges / Ajustement compte
 Please enter Purchase Receipt No to proceed,S&#39;il vous plaît entrer Achat réception Non pour passer
+Please enter Reserved Warehouse for item ,S&#39;il vous plaît entrer entrepôt réservé pour objet
 Please enter valid,S&#39;il vous plaît entrer une adresse valide
 Please enter valid ,S&#39;il vous plaît entrer une adresse valide
 Please install dropbox python module,S&#39;il vous plaît installer Dropbox module Python
 Please make sure that there are no empty columns in the file.,S&#39;il vous plaît assurez-vous qu&#39;il n&#39;y a pas de colonnes vides dans le fichier.
 Please mention default value for ',S&#39;il vous plaît mentionner la valeur par défaut pour &#39;
+Please reduce qty.,S&#39;il vous plaît réduire Cdt.
 Please refresh to get the latest document.,S&#39;il vous plaît Refresh pour obtenir la dernière version du document.
 Please save the Newsletter before sending.,S&#39;il vous plaît enregistrer le bulletin avant de l&#39;envoyer.
 Please select Bank Account,S&#39;il vous plaît sélectionner compte bancaire
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,S&#39;il vous plaît sélectionnez Report si vous souhaitez également inclure le solde de l&#39;exercice précédent ne laisse à cet exercice
 Please select Date on which you want to run the report,S&#39;il vous plaît sélectionner la date à laquelle vous souhaitez exécuter le rapport
+Please select Naming Neries,S&#39;il vous plaît choisir Neries nommage
+Please select Price List,S&#39;il vous plaît sélectionnez Liste des Prix
 Please select Time Logs.,S&#39;il vous plaît choisir registres de temps.
 Please select a,S&#39;il vous plaît sélectionner un
 Please select a csv file,S&#39;il vous plaît sélectionner un fichier csv
@@ -2051,10 +2073,12 @@
 Please select: ,S&#39;il vous plaît choisir:
 Please set Dropbox access keys in,S&#39;il vous plaît configurer les touches d&#39;accès Dropbox dans
 Please set Google Drive access keys in,S&#39;il vous plaît configurer Google touches d&#39;accès au lecteur de
+Please setup Employee Naming System in Human Resource > HR Settings,S&#39;il vous plaît configuration Naming System employés en ressources humaines&gt; Paramètres RH
 Please specify,S&#39;il vous plaît spécifier
 Please specify Company,S&#39;il vous plaît préciser Company
 Please specify Company to proceed,Veuillez indiquer Société de procéder
 Please specify Default Currency in Company Master \			and Global Defaults,S&#39;il vous plaît indiquer Devise par défaut en Master Société \ et valeurs par défaut globales
+Please specify a,S&#39;il vous plaît spécifier une
 Please specify a Price List which is valid for Territory,S&#39;il vous plaît spécifier une liste de prix qui est valable pour le territoire
 Please specify a valid,S&#39;il vous plaît spécifier une validité
 Please specify a valid 'From Case No.',S&#39;il vous plaît indiquer une valide »De Affaire n &#39;
@@ -2070,7 +2094,7 @@
 Posts,Messages
 Potential Sales Deal,Potentiel de l&#39;offre de vente
 Potential opportunities for selling.,Possibilités pour la vente.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","Précision pour les champs flotteur (quantités, escomptes, etc pourcentages) uniquement pour l&#39;affichage. Flotteurs seront toujours calculés jusqu&#39;à 6 décimales."
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","Précision pour les champs de flotteur (quantités, des réductions, des pourcentages, etc.) Flotteurs seront arrondies à décimales spécifiées. Par défaut = 3"
 Preferred Billing Address,Préféré adresse de facturation
 Preferred Shipping Address,Preferred Adresse de livraison
 Prefix,Préfixe
@@ -2081,7 +2105,6 @@
 Previous Work Experience,L&#39;expérience de travail antérieure
 Price,Prix
 Price List,Liste des Prix
-Price List Country,Prix ​​Liste des pays
 Price List Currency,Devise Prix
 Price List Currency Conversion Rate,Liste de prix de conversion de devises Taux
 Price List Exchange Rate,Taux de change Prix de liste
@@ -2089,6 +2112,7 @@
 Price List Name,Nom Liste des Prix
 Price List Rate,Prix ​​Liste des Prix
 Price List Rate (Company Currency),Tarifs Taux (Société Monnaie)
+Price List for Costing,Liste de prix pour Costing
 Price Lists and Rates,Liste des prix et tarifs
 Primary,Primaire
 Print Format,Format d&#39;impression
@@ -2107,6 +2131,7 @@
 Produced Quantity,Quantité produite
 Product Enquiry,Demande d&#39;information produit
 Production Order,Ordre de fabrication
+Production Orders,ordres de fabrication
 Production Plan Item,Élément du plan de production
 Production Plan Items,Éléments du plan de production
 Production Plan Sales Order,Plan de Production Ventes Ordre
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,Projet sage Stock Tracking
 Projected Qty,Qté projeté
 Projects,Projets
-Prompt email sending to customers and suppliers,Invite email envoyer aux clients et fournisseurs
 Prompt for Email on Submission of,Prompt for Email relative à la présentation des
 Properties,Propriétés
 Property,Propriété
@@ -2147,7 +2171,6 @@
 Published On,Publié le
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,Tirez e-mails à partir de la boîte de réception et les attacher comme des enregistrements de communication (pour les contacts connus).
 Pull Payment Entries,Tirez entrées de paiement
-Pull items from Sales Order mentioned in the above table.,Tirez articles de Commande mentionné dans le tableau ci-dessus.
 Pull sales orders (pending to deliver) based on the above criteria,Tirez les ordres de vente (en attendant de livrer) sur la base des critères ci-dessus
 Purchase,Acheter
 Purchase Analytics,Achat Analytics
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,Quantité déjà fabriqué
 Quantity and Rate,Quantité et taux
 Quantity and Warehouse,Quantité et entrepôt
+Quantity cannot be a fraction.,Quantité ne peut pas être une fraction.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Quantité de produit obtenue après fabrication / reconditionnement des quantités données de matières premières
 Quantity should be equal to Manufacturing Quantity. ,Quantité devrait être égale à la fabrication quantité.
 Quarter,Trimestre
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,Devis perdu la raison
 Quotation Message,Devis message
 Quotation Sent,Citation Envoyé
+Quotation Series,Série de devis
 Quotation To,Devis Pour
 Quotation Trend,Tendance devis
 Quotations received from Suppliers.,Citations reçues des fournisseurs.
 Quotes to Leads or Customers.,Citations à prospects ou clients.
-Raise Material Request,Soulever la Demande de Matériel
 Raise Material Request when stock reaches re-order level,Soulever demande de matériel lorsque le stock atteint le niveau de réapprovisionnement
-Raise Production Order,Soulever des ordres de fabrication
 Raised By,Raised By
 Raised By (Email),Raised By (e-mail)
 Random,Aléatoire
@@ -2280,6 +2303,7 @@
 Receivables / Payables,Créances / dettes
 Receivables Group,Groupe de créances
 Received Date,Date de réception
+Received Items To Be Billed,Articles reçus à être facturé
 Received Qty,Quantité reçue
 Received and Accepted,Reçus et acceptés
 Receiver List,Liste des récepteurs
@@ -2293,6 +2317,8 @@
 Recurring Id,Id récurrent
 Recurring Invoice,Facture récurrente
 Recurring Type,Type de courant
+Reduce Deduction for Leave Without Pay (LWP),Réduire la déduction de congé sans solde (PLT)
+Reduce Earning for Leave Without Pay (LWP),Réduire Gagner de congé sans solde (PLT)
 Ref Code,Code de référence de
 Ref Date is Mandatory if Ref Number is specified,Ref date est obligatoire si le numéro de Ref est spécifié
 Ref DocType,Réf DocType
@@ -2302,6 +2328,8 @@
 Ref Type,Type de référence
 Reference,Référence
 Reference Date,Date de Référence
+Reference DocName,Référence DocName
+Reference DocType,Référence DocType
 Reference Name,Nom de référence
 Reference Number,Numéro de référence
 Reference Type,Type de référence
@@ -2322,10 +2350,12 @@
 Remove Bookmark,Supprimer le signet
 Rename Log,Renommez identifiez-vous
 Rename Tool,Renommer l&#39;outil
-Rename multiple items in one go,Renommer plusieurs articles en une seule fois
 Rename...,Renommer ...
 Rented,Loué
+Repeat On,Répéter l&#39;opération sur
+Repeat Till,Répétez Till
 Repeat on Day of Month,Répétez le Jour du Mois
+Repeat this Event,Répétez cette événement
 Replace,Remplacer
 Replace Item / BOM in all BOMs,Remplacer l&#39;élément / BOM dans toutes les nomenclatures
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Remplacer une nomenclature particulière dans toutes les nomenclatures d&#39;autres où il est utilisé. Il remplacera le lien de nomenclature ancienne, mettre à jour les coûts et régénérer &quot;Explosion de nomenclature article&quot; la table comme pour une nouvelle nomenclature"
@@ -2358,13 +2388,14 @@
 Reseller,Revendeur
 Reserved Quantity,Quantité réservés
 Reserved Warehouse,Réservé Entrepôt
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,Entrepôt réservé à des commandes clients / entrepôt de produits finis
+Reserved Warehouse is missing in Sales Order,Réservé entrepôt est manquant dans l&#39;ordre des ventes
 Resignation Letter Date,Date de lettre de démission
 Resolution,Résolution
 Resolution Date,Date de Résolution
 Resolution Details,Détails de la résolution
 Resolved By,Résolu par
 Restrict IP,Restreindre IP
-Restrict submission rights based on amount,Restreindre les droits de présentation basé sur le montant
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),Restreindre l&#39;utilisateur à partir de cette adresse IP. Plusieurs adresses IP peuvent être ajoutés par séparant par des virgules. Accepte également les adresses IP partielles comme (111.111.111)
 Restricting By User,En restreignant l&#39;utilisateur
 Retail,Détail
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,Déduction structure salariale
 Salary Structure Earning,Structure salariale Gagner
 Salary Structure Earnings,Bénéfice structure salariale
+Salary breakup based on Earning and Deduction.,rupture des salaires basée sur l&#39;obtention et la déduction.
 Salary components.,Éléments du salaire.
 Sales,Ventes
 Sales Analytics,Analytics Sales
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),Sales Person Variance cible (Point Group-Wise)
 Sales Person Targets,Personne objectifs de vente
 Sales Person-wise Transaction Summary,Sales Person-sage Résumé de la transaction
-Sales Rate,Taux de vente
 Sales Register,Registre des ventes
 Sales Return,Ventes de retour
 Sales Taxes and Charges,Taxes de vente et frais
@@ -2484,7 +2515,6 @@
 Scheduled,Prévu
 Scheduled Confirmation Date,Date de confirmation prévue
 Scheduled Date,Date prévue
-Scheduler Error Log,Planificateur Error Log
 Scheduler Log,Scheduler Connexion
 School/University,Ecole / Université
 Score (0-5),Score (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,Sélectionnez DocType
 Select Document Type,Sélectionnez Type de document
 Select Document Type or Role to start.,Sélectionnez Type de document ou le rôle de démarrer.
+Select Items,Sélectionner les objets
 Select PR,Sélectionnez PR
 Select Print Format,Sélectionnez Format d&#39;impression
 Select Print Heading,Sélectionnez Imprimer Cap
@@ -2562,8 +2593,8 @@
 Send SMS,Envoyer un SMS
 Send To,Send To
 Send To Type,Envoyer à taper
+Send an email reminder in the morning,Envoyer un courriel de rappel dans la matinée
 Send automatic emails to Contacts on Submitting transactions.,Envoyer des emails automatiques vers les Contacts sur Envoi transactions.
-"Send bulk SMS to leads, customers, contacts","Envoyer un SMS en vrac de prospects, clients, contacts"
 Send mass SMS to your contacts,Envoyer un SMS en masse à vos contacts
 Send regular summary reports via Email.,Envoyer des rapports de synthèse réguliers par e-mail.
 Send to this list,Envoyer cette liste
@@ -2580,7 +2611,6 @@
 Serial No Status,N ° de série Statut
 Serial No Warranty Expiry,N ° de série expiration de garantie
 Serialized Item: ',Article sérialisé: &#39;
-Series,Série
 Series List for this Transaction,Liste série pour cette transaction
 Server,Serveur
 Service Address,Adresse du service
@@ -2590,19 +2620,13 @@
 Session Expiry,Session d&#39;expiration
 Session Expiry in Hours e.g. 06:00,"Expiration session en heures, par exemple 06:00"
 Set Banner from Image,Réglez bannière de l&#39;image
-Set From Image,Set De l&#39;image
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Set Point du Groupe sages budgets sur ce territoire. Vous pouvez également inclure la saisonnalité en réglant la distribution.
 Set Login and Password if authentication is required.,Set de connexion et mot de passe si l&#39;authentification est requise.
 Set New Password,Réglez nouveau mot de passe
 Set Value,Définir la valeur
 "Set a new password and ""Save""",Définir un nouveau mot de passe et &quot;Save&quot;
-Set default values for entry,Définir les valeurs par défaut pour l&#39;entrée
-Set default values for users (also used for permissions).,Définir les valeurs par défaut pour les utilisateurs (également utilisé pour les autorisations).
-Set multiple numbering series for transactions,Définir plusieurs séries de numérotation pour les transactions
-Set permissions on transactions / masters,Définissez les autorisations sur les transactions / maîtres
 Set prefix for numbering series on your transactions,Définir le préfixe de numérotation des séries sur vos transactions
 Set targets Item Group-wise for this Sales Person.,Fixer des objectifs élément de groupe-sage pour cette personne des ventes.
-Set workflow rules.,Définir des règles de workflow.
 "Set your background color, font and image (tiled)","Réglez votre couleur de fond, la police et l&#39;image (carrelage)"
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","Réglez vos paramètres de messagerie SMTP sortants ici. Toutes les notifications générées par le système, e-mails passera de ce serveur de messagerie. Si vous n&#39;êtes pas sûr, laissez ce champ vide pour utiliser des serveurs ERPNext (e-mails seront toujours envoyés à partir de votre email id) ou communiquez avec votre fournisseur de messagerie."
 Setting Account Type helps in selecting this Account in transactions.,Type de compte Configuration aide à sélectionner ce compte dans les transactions.
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,Configuration de votre panier.
 Setup of fonts and background.,Configuration des polices et le fond.
 "Setup of top navigation bar, footer and logo.","Configuration de la barre de navigation en haut, pied de page et logo."
-Setup outgoing SMS via your bulk SMS provider,Configuration SMS sortants SMS via votre fournisseur de vrac
 Setup to pull emails from support email account,Configuration pour tirer des courriels de compte de messagerie soutien
 Share,Partager
 Share With,Partager avec
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,Courte biographie pour le site Web et d&#39;autres publications.
 Shortcut,Raccourci
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",Voir &quot;En stock&quot; ou &quot;Pas en stock» basée sur le stock disponible dans cet entrepôt.
-Show / Hide Modules,Afficher / Masquer les Modules
 Show Details,Afficher les détails
 Show In Website,Afficher dans un site Web
 Show Print First,Montrer Imprimer Première
@@ -2658,11 +2680,9 @@
 Show in Website,Afficher dans Site Web
 Show rows with zero values,Afficher lignes avec des valeurs nulles
 Show this slideshow at the top of the page,Voir ce diaporama en haut de la page
-"Show, hide modules","Afficher, masquer modules"
 Showing only for,Affichage seulement pour
 Signature,Signature
 Signature to be appended at the end of every email,Signature d&#39;être ajouté à la fin de chaque e-mail
-Simplify entry forms by disabling features,Simplifier les formulaires d&#39;inscription en désactivant les fonctionnalités
 Single,Unique
 Single Post (article).,Simple Post (article).
 Single unit of an Item.,Une seule unité d&#39;un élément.
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,"Désolé, nous n&#39;avons pas pu trouver ce que vous recherchez."
 Sorry you are not permitted to view this page.,"Désolé, vous n&#39;êtes pas autorisé à afficher cette page."
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,Désolé! Nous ne pouvons permettre jusqu&#39;à 100 lignes pour la réconciliation Droits.
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","Désolé! Vous ne pouvez pas changer la devise par défaut de la société, parce qu&#39;il ya des transactions en cours à son encontre. Vous aurez besoin d&#39;annuler ces opérations si vous voulez changer la devise par défaut."
 Sorry. Companies cannot be merged,Désolé. Les entreprises ne peuvent pas être fusionnés
 Sorry. Serial Nos. cannot be merged,Désolé. Numéros de série ne peut pas être fusionnée
 Sort By,Trier par
@@ -2759,6 +2780,7 @@
 Suggestions,Suggestions
 Sunday,Dimanche
 Supplier,Fournisseur
+Supplier (Payable) Account,Fournisseur compte (à payer)
 Supplier (vendor) name as entered in supplier master,Fournisseur (vendeur) le nom saisi dans master fournisseur
 Supplier Account Head,Fournisseur compte Head
 Supplier Address,Adresse du fournisseur
@@ -2792,7 +2814,6 @@
 Symbol,Symbole
 Sync Inbox,Sync boîte de réception
 Sync Support Mails,Synchroniser mails de soutien
-Sync backups with remote tools like Dropbox etc.,"Synchroniser les sauvegardes avec les outils à distance comme Dropbox, etc"
 Sync with Dropbox,Synchroniser avec Dropbox
 Sync with Google Drive,Synchronisation avec Google Drive
 System,Système
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page",La «page Web» qui est la page d&#39;accueil du site
 The BOM which will be replaced,La nomenclature qui sera remplacé
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",L&#39;article qui représente le package. Cet article doit avoir «Est Produit en stock&quot; comme &quot;No&quot; et &quot;Est Point de vente&quot; que &quot;Oui&quot;
-The account to which you will pay (have paid) the money to.,Le compte sur lequel vous allez payer (payé) de l&#39;argent pour.
 The date at which current entry is made in system.,La date à laquelle l&#39;entrée courante est faite dans le système.
 The date at which current entry will get or has actually executed.,La date à laquelle l&#39;entrée actuelle permet de lire ou a réellement exécuté.
 The date on which next invoice will be generated. It is generated on submit.,La date à laquelle la facture suivante sera généré. Il est généré sur soumettre.
@@ -2927,6 +2947,7 @@
 To Currency,Pour Devise
 To Date,À ce jour
 To Discuss,Pour discuter
+To Do,To Do
 To Do List,To Do List
 To PR Date,Date de PR
 To Package No.,Pour Emballer n °
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","Pour créer automatiquement des tickets de support à partir de votre courrier entrant, définissez vos paramètres POP3 ici. Vous devez idéalement créer un id e-mail séparé pour le système erp afin que tous les e-mails seront synchronisés dans le système à partir de ce mail id. Si vous n&#39;êtes pas sûr, s&#39;il vous plaît contactez votre fournisseur de messagerie."
 "To create an Account Head under a different company, select the company and save customer.","Pour créer un compte Head en vertu d&#39;une autre entreprise, sélectionnez l&#39;entreprise et sauver client."
 To enable <b>Point of Sale</b> features,Pour permettre <b>Point de Vente</b> fonctionnalités
+To enable more currencies go to Setup > Currency,Pour permettre plus de devises allez dans Réglages&gt; Monnaie
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","Pour récupérer des éléments à nouveau, cliquez sur «Obtenir les éléments&quot; bouton \ ou mettre à jour la quantité manuellement."
 "To format columns, give column labels in the query.","Pour formater colonnes, donner des étiquettes de colonne dans la requête."
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.","Afin de restreindre les autorisations sur la base de certaines valeurs dans un document, utilisez la «condition» des paramètres."
@@ -2953,7 +2975,6 @@
 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.,Pour suivre pièce documents de vente et d&#39;achat en fonction de leurs numéros de série. Ce n&#39;est peut également être utilisé pour suivre les détails de la garantie du produit.
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,"Pour suivre les articles de chiffre d&#39;affaires et des documents d&#39;achat avec nos lots <br> <b>Industrie préféré: produits chimiques, etc</b>"
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Pour suivre les éléments à l&#39;aide de code à barres. Vous serez en mesure d&#39;entrer dans les articles bon de livraison et la facture de vente par balayage de code à barres de l&#39;article.
-"To update your HTML from attachment, click here","Pour mettre à jour votre code HTML pièce jointe, cliquez ici"
 ToDo,ToDo
 Tools,Outils
 Top,Supérieur
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),Total des Taxes (Société Monnaie)
 Total Taxes and Charges,Total Taxes et frais
 Total Taxes and Charges (Company Currency),Total des taxes et charges (Société Monnaie)
+Total Working Days In The Month,Nombre total de jours ouvrables du mois
 Total amount of invoices received from suppliers during the digest period,Montant total des factures reçues des fournisseurs durant la période digest
 Total amount of invoices sent to the customer during the digest period,Montant total des factures envoyées au client au cours de la période digest
-Total days in month,Nombre total de jours dans le mois
 Total in words,Total en mots
+Total production order qty for item,Totale pour la production de quantité pour l&#39;article
 Totals,Totaux
 Track separate Income and Expense for product verticals or divisions.,Suivre distincte sur le revenu et dépenses pour des produits ou des divisions verticales.
 Track this Delivery Note against any Project,Suivre ce bon de livraison contre tout projet
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,Détail de conversion Emballage
 UOM Conversion Details,Détails conversion UOM
 UOM Conversion Factor,Facteur de conversion Emballage
+UOM Conversion Factor is mandatory,Facteur de conversion UOM est obligatoire
 UOM Details,Détails UOM
 UOM Name,Nom UDM
 UOM Replace Utility,Utilitaire Remplacer Emballage
@@ -3044,6 +3067,7 @@
 Unread Messages,Messages non lus
 Unscheduled,Non programmé
 Unsubscribed,Désabonné
+Upcoming Events for Today,Prochains événements pour Aujourd&#39;hui
 Update,Mettre à jour
 Update Clearance Date,Mettre à jour Date de Garde
 Update Field,Mise à jour de terrain
@@ -3052,7 +3076,6 @@
 Update Series Number,Numéro de série mise à jour
 Update Stock,Mise à jour Stock
 Update Stock should be checked.,Mise à jour Stock doit être vérifiée.
-Update This Application,Mise à jour de cette application
 Update Value,Mettez à jour la valeur
 "Update allocated amount in the above table and then click ""Allocate"" button","Mise à jour montant alloué dans le tableau ci-dessus, puis cliquez sur &quot;Occupation&quot; bouton"
 Update bank payment dates with journals.,Mise à jour bancaire dates de paiement des revues.
@@ -3065,6 +3088,7 @@
 Upload HTML,Téléchargez HTML
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Télécharger un fichier csv avec deux colonnes:. L&#39;ancien nom et le nouveau nom. Max 500 lignes.
 Upload a file,Télécharger un fichier
+Upload and Import,Téléchargez et importation
 Upload attendance from a .csv file,Téléchargez la présence d&#39;un fichier. Csv
 Upload stock balance via csv.,Téléchargez solde disponible via csv.
 Uploading...,Téléchargement ...
@@ -3078,7 +3102,6 @@
 User ID,ID utilisateur
 User Image,De l&#39;utilisateur
 User Name,Nom d&#39;utilisateur
-User Properties,Propriétés de l&#39;utilisateur
 User Remark,Remarque l&#39;utilisateur
 User Remark will be added to Auto Remark,Remarque l&#39;utilisateur sera ajouté à Remarque Auto
 User Tags,Nuage de Tags
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,Utilisateur non autorisé à supprimer.
 UserRole,UserRole
 Username,Nom d&#39;utilisateur
-Users,Utilisateurs
 Users who can approve a specific employee's leave applications,Les utilisateurs qui peuvent approuver les demandes de congé d&#39;un employé spécifique
 Users with this role are allowed to do / modify accounting entry before frozen date,Les utilisateurs disposant de ce rôle sont autorisés à faire / modifier écriture comptable avant la date congelés
 Utilities,Utilitaires
@@ -3116,6 +3138,7 @@
 Voucher No,Bon Pas
 Voucher Type,Type de Bon
 Voucher Type and Date,Type de chèques et date
+WIP Warehouse required before Submit,WIP Entrepôt nécessaire avant Soumettre
 Waiting for Customer,En attente de la clientèle
 Walk In,Walk In
 Warehouse,Entrepôt
@@ -3149,6 +3172,7 @@
 Website Settings,Réglages Site web
 Website Slideshow,Diaporama site web
 Website Slideshow Item,Point Diaporama site web
+Website User,Utilisateur
 Website Warehouse,Entrepôt site web
 Wednesday,Mercredi
 Weekly,Hebdomadaire
@@ -3214,21 +3238,22 @@
 Yes,Oui
 Yesterday,Hier
 You are not authorized to do/modify back dated entries before ,Vous n&#39;êtes pas autorisé à faire / modifier dos entrées datées avant
-You can create more earning and deduction type from Setup --> HR,Vous pouvez créer plusieurs gain et le type de déduction à partir de Configuration -&gt; RH
 You can enter any date manually,Vous pouvez entrer une date manuellement
 You can enter the minimum quantity of this item to be ordered.,Vous pouvez entrer la quantité minimale de cet élément à commander.
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,Vous ne pouvez pas entrer à la fois bon de livraison et de vente Aucune facture n \ S&#39;il vous plaît entrer personne.
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,Vous pouvez définir plusieurs «propriétés» aux utilisateurs de définir des valeurs par défaut et d&#39;appliquer des règles d&#39;autorisation sur la base de la valeur de ces propriétés sous diverses formes.
 You can start by selecting backup frequency and \					granting access for sync,Vous pouvez commencer par sélectionner la fréquence de sauvegarde et \ octroi de l&#39;accès pour la synchronisation
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,Vous pouvez utiliser <a href='#Form/Customize Form'>Personnaliser le formulaire</a> de fixer des niveaux de champs.
+You may need to update: ,Vous devrez peut-être mettre à jour:
 Your Customer's TAX registration numbers (if applicable) or any general information,Votre Client numéros d&#39;immatriculation fiscale (le cas échéant) ou toute autre information générale
 "Your download is being built, this may take a few moments...","Votre téléchargement est en cours de construction, ce qui peut prendre quelques instants ..."
-Your letter head content in HTML.,Votre contenu tête lettre en HTML.
+Your letter head content,Le contenu de votre tête de lettre
 Your sales person who will contact the customer in future,Votre personne de ventes qui prendra contact avec le client dans le futur
 Your sales person who will contact the lead in future,Votre personne de ventes qui prendra contact avec le plomb dans l&#39;avenir
 Your sales person will get a reminder on this date to contact the customer,Votre personne de ventes recevoir un rappel de cette date pour contacter le client
 Your sales person will get a reminder on this date to contact the lead,Votre personne de ventes recevoir un rappel à cette date pour contacter le plomb
 Your support email id - must be a valid email - this is where your emails will come!,Votre e-mail id soutien - doit être une adresse email valide - c&#39;est là que vos e-mails viendra!
+[Error],[Error]
 [Label]:[Field Type]/[Options]:[Width],[Étiquette]: [Type de champ] / [Options]: [Largeur]
 add your own CSS (careful!),ajouter vos propres CSS (méfiance!)
 adjust,ajuster
@@ -3430,6 +3455,7 @@
 volume-up,volume-up
 warning-sign,avertissement signe
 website page link,Lien vers page web
+which is greater than sales order qty ,qui est supérieur à l&#39;ordre ventes qté
 wrench,clé
 yyyy-mm-dd,aaaa-mm-jj
 zoom-in,zoom-in
diff --git a/translations/hi.csv b/translations/hi.csv
index 8d9c5d6..6f9576c 100644
--- a/translations/hi.csv
+++ b/translations/hi.csv
@@ -1,12 +1,18 @@
  (Half Day),(आधे दिन)
+ against sales order,बिक्री के आदेश के खिलाफ
  against same operation,एक ही आपरेशन के खिलाफ
  already marked,पहले से ही चिह्नित
  and year: ,और वर्ष:
+ as it is stock Item or packing item,यह स्टॉक आइटम या पैकिंग आइटम के रूप में है
  at warehouse: ,गोदाम में:
  by Role ,रोल से
+ can not be made.,नहीं बनाया जा सकता.
+ can not be marked as a ledger as it has existing child,यह मौजूदा बच्चे के रूप में एक खाता के रूप में चिह्नित नहीं किया जा सकता
  cannot be 0,0 नहीं हो सकते हैं
  cannot be deleted.,हटाया नहीं जा सकता.
  does not belong to the company,कंपनी का नहीं है
+ has already been submitted.,पहले से ही प्रस्तुत किया गया है.
+ has been freezed. ,freezed किया गया है.
  has been freezed. \				Only Accounts Manager can do transaction against this account,freezed किया गया है. केवल \ लेखा प्रबंधक इस खाते के खिलाफ लेन - देन कर सकते हैं
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item","प्रणाली में शून्य के बराबर होती है कम से कम, \ मूल्यांकन दर इस मद के लिए अनिवार्य है"
  is mandatory,अनिवार्य है
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,अब डिफ़ॉल्ट वित्त वर्ष है. \ कृपया को प्रभावी करने के बदलाव के लिए अपने ब्राउज़र को ताज़ा.
  is present in one or many Active BOMs,एक या कई सक्रिय BOMs में मौजूद है
  not active or does not exists in the system,सक्रिय नहीं या सिस्टम में मौजूद नहीं है
+ not submitted,प्रस्तुत नहीं
  or the BOM is cancelled or inactive,या BOM रद्द कर दिया है या निष्क्रिय
  should be 'Yes'. As Item: ,&#39;हाँ&#39; होना चाहिए. आइटम के रूप में:
  should be same as that in ,में उस के रूप में ही किया जाना चाहिए
  was on leave on ,था पर छोड़ पर
+ will be ,हो जाएगा
  will be over-billed against mentioned ,उल्लेख के खिलाफ ज्यादा बिल भेजा जाएगा
  will become ,हो जाएगा
 """Company History""",&quot;कंपनी इतिहास&quot;
@@ -56,6 +64,7 @@
 15px,15px
 16px,16px
 2 days ago,2 दिन पहले
+: Duplicate row from same ,: उसी से पंक्ति डुप्लिकेट
 : It is linked to other active BOM(s),: यह अन्य सक्रिय बीओएम (ओं) से जुड़ा हुआ है
 : Mandatory for a Recurring Invoice.,: एक आवर्ती चालान के लिए अनिवार्य है.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">ग्राहक समूहों को प्रबंधित करने के लिए, यहाँ क्लिक करें</a>"
@@ -102,6 +111,7 @@
 Account Id,खाता आईडी
 Account Name,खाते का नाम
 Account Type,खाता प्रकार
+Account for this ,इस के लिए खाता
 Accounting,लेखांकन
 Accounting Year.,लेखा वर्ष.
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","इस तारीख तक कर जम लेखा प्रविष्टि, कोई नहीं / नीचे निर्दिष्ट भूमिका छोड़कर प्रविष्टि को संशोधित कर सकते हैं."
@@ -114,6 +124,7 @@
 Action,कार्रवाई
 Active,सक्रिय
 Active: Will extract emails from ,सक्रिय: से ईमेल निकालने विल
+Activity,सक्रियता
 Activity Log,गतिविधि लॉग
 Activity Type,गतिविधि प्रकार
 Actual,वास्तविक
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),साइट के लिए एक बैनर जोड़ें. (छोटे बैनर आमतौर पर अच्छा कर रहे हैं)
 Add attachment,लगाव जोड़ें
 Add code as &lt;script&gt;,&lt;script&gt; कोड के रूप में जोड़ें
-Add custom code to forms,रूपों के लिए कस्टम कोड जोड़ें
-Add fields to forms,रूपों के लिए क्षेत्रों जोड़ें
-Add headers for standard print formats,मानक प्रिंट प्रारूपों के लिए हेडर जोड़ें
 Add new row,नई पंक्ति जोड़ें
 Add or Deduct,जोड़ें या घटा
 Add rows to set annual budgets on Accounts.,पंक्तियाँ जोड़ें लेखा पर वार्षिक बजट निर्धारित.
@@ -158,7 +166,6 @@
 Add to To Do,जोड़ें करने के लिए क्या
 Add to To Do List of,को जोड़ने के लिए की सूची
 Add/Remove Recipients,प्राप्तकर्ता जोड़ें / निकालें
-"Add/remove users, set roles, passwords etc","जोड़ें / उपयोगकर्ताओं को दूर करने के लिए, सेट भूमिकाओं, पासवर्ड आदि"
 Additional Info,अतिरिक्त जानकारी
 Address,पता
 Address & Contact,पता और संपर्क
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,पता संपर्क पृष्ठ पर प्रदर्शित किया
 Adds a custom field to a DocType,एक DOCTYPE एक कस्टम फ़ील्ड जोड़ता है
 Adds a custom script (client or server) to a DocType,एक DOCTYPE के लिए एक कस्टम स्क्रिप्ट (क्लाइंट या सर्वर) जोड़ता है
-Administration,प्रशासन
 Advance Amount,अग्रिम राशि
 Advance amount,अग्रिम राशि
 Advanced Scripting,उन्नत स्क्रीप्टिंग
@@ -238,6 +244,7 @@
 Allow Users,उपयोगकर्ताओं को अनुमति दें
 Allow on Submit,भेजें पर अनुमति दें
 Allow the following users to approve Leave Applications for block days.,निम्नलिखित उपयोगकर्ता ब्लॉक दिनों के लिए छोड़ एप्लीकेशन को स्वीकृत करने की अनुमति दें.
+Allow user to edit Price List Rate in transactions,उपयोगकर्ता लेनदेन में मूल्य सूची दर को संपादित करने की अनुमति दें
 Allow user to login only after this hour (0-24),उपयोगकर्ता इस घंटे के बाद ही प्रवेश करने की अनुमति दें (0-24)
 Allow user to login only before this hour (0-24),उपयोगकर्ता इस घंटे से पहले ही प्रवेश करने की अनुमति दें (0-24)
 Allowance Percent,भत्ता प्रतिशत
@@ -252,8 +259,6 @@
 Amount >=,राशि&gt; =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","Ico विस्तार के साथ एक आइकन फ़ाइल. 16 x 16 पिक्सल होना चाहिए. एक favicon जनरेटर का उपयोग करते हुए उत्पन्न. [ <a href=""http://favicon-generator.org/"" target=""_blank"">favicon generator.org</a> ]"
 Analytics,विश्लेषिकी
-Annual Cost To Company,कंपनी के वार्षिक मूल्य
-Annual Cost To Company can not be less than 12 months of Total Earning,कंपनी के लिए वार्षिक लागत कुल कमाई का 12 महीने से कम नहीं हो सकता
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,एक और वेतन संरचना में &#39;% s&#39; कर्मचारी &#39;% s&#39; के लिए सक्रिय है. अपनी स्थिति को &#39;निष्क्रिय&#39; आगे बढ़ने के लिए करें.
 "Any other comments, noteworthy effort that should go in the records.","किसी भी अन्य टिप्पणी, उल्लेखनीय प्रयास है कि रिकॉर्ड में जाना चाहिए."
 Applicable Holiday List,लागू अवकाश सूची
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,पत्तियां लागू / स्वीकृत
 Apply Shipping Rule,नौवहन नियम लागू करें
 Apply Taxes and Charges Master,करों और शुल्कों मास्टर लागू करें
-Apply latest updates and patches to this app,इस अनुप्रयोग के लिए नवीनतम अद्यतन और पैच लागू करें
 Appraisal,मूल्यांकन
 Appraisal Goal,मूल्यांकन लक्ष्य
 Appraisal Goals,मूल्यांकन लक्ष्य
@@ -300,7 +304,6 @@
 Attached To DocType,टैग से जुड़ी
 Attached To Name,नाम से जुड़ी
 Attachment,आसक्ति
-Attachment removed. You may need to update: ,अनुलग्नक हटा दिया. आप अद्यतन करने की आवश्यकता हो सकती है:
 Attachments,किए गए अनुलग्नकों के
 Attempted to Contact,संपर्क करने का प्रयास
 Attendance,उपस्थिति
@@ -422,7 +425,6 @@
 Brand Name,ब्रांड नाम
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","ब्रांड है क्या सही उपकरण पट्टी के शीर्ष पर प्रकट होता है. यदि यह एक छवि है, यकीन है कि एक पारदर्शी पृष्ठभूमि ithas और &lt;img /&gt; टैग का उपयोग करें. 200px x 30px के रूप में आकार रखें"
 Brand master.,ब्रांड गुरु.
-Branding and Printing,ब्रांडिंग और मुद्रण
 Brands,ब्रांड
 Breakdown,भंग
 Budget,बजट
@@ -440,6 +442,7 @@
 Build Sitemap,साइटमैप बनाएँ
 Bulk Email,थोक ईमेल
 Bulk Email records.,थोक ईमेल रिकॉर्ड.
+Bummer! There are more holidays than working days this month.,Bummer! कार्य दिवसों में इस महीने की तुलना में अधिक छुट्टियां हैं.
 Bundle items at time of sale.,बिक्री के समय में आइटम बंडल.
 Button,बटन
 Buyer of Goods and Services.,सामान और सेवाओं के खरीदार.
@@ -490,7 +493,6 @@
 Center,केंद्र
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.","कुछ दस्तावेजों एक बार अंतिम नहीं उदाहरण के लिए एक चालान की तरह बदल गया है,. ऐसे दस्तावेजों के लिए अंतिम राज्य <b>प्रस्तुत</b> कहा जाता है. आप को सीमित कर सकते हैं जो भूमिका प्रस्तुत कर सकते हैं."
 Change UOM for an Item.,एक आइटम के लिए UOM बदलें.
-"Change entry properties (hide fields, make mandatory etc)","प्रवेश गुण (छुपाने के क्षेत्रों, आदि अनिवार्य बनाने के लिए) बदलें"
 Change the starting / current sequence number of an existing series.,एक मौजूदा श्रृंखला के शुरू / वर्तमान अनुक्रम संख्या बदलें.
 Channel Partner,चैनल पार्टनर
 Charge,प्रभार
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,यह जाँच लें कि आप उपयोगकर्ता बचत से पहले एक श्रृंखला का चयन करने के लिए मजबूर करना चाहते हैं. कोई डिफ़ॉल्ट हो सकता है अगर आप इस जाँच करेगा.
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,आप केवल इस आईडी (अपने ईमेल प्रदाता द्वारा प्रतिबंध के मामले में) के रूप में ईमेल भेजना चाहते हैं तो चेक करें.
 Check this if you want to show in website,यह जाँच लें कि आप वेबसाइट में दिखाना चाहते हैं
+Check this to disallow fractions. (for Nos),नामंज़ूर भिन्न करने के लिए इसे चेक करें. (ओपन स्कूल के लिए)
 Check this to make this the default letter head in all prints,इस जाँच के लिए सभी प्रिंट में इस डिफ़ॉल्ट पत्र सिर
 Check this to pull emails from your mailbox,इस जाँच के लिए अपने मेलबॉक्स से ईमेल खींच
 Check to activate,सक्रिय करने के लिए जाँच करें
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,कंपनी अपने संदर्भ के लिए पंजीकरण संख्या. उदाहरण: वैट पंजीकरण नंबर आदि
 Company registration numbers for your reference. Tax numbers etc.,कंपनी अपने संदर्भ के लिए पंजीकरण संख्या. टैक्स आदि संख्या
 Complaint,शिकायत
+Complete,पूरा
 Complete By,द्वारा पूरा करें
 Completed,पूरा
 Completed Qty,पूरी की मात्रा
@@ -626,12 +630,12 @@
 Cost Center Name,लागत केन्द्र का नाम
 Cost Center is mandatory for item: ,लागत केंद्र मद के लिए अनिवार्य है:
 Cost Center must be specified for PL Account: ,लागत केंद्र पीएल खाते के लिए निर्दिष्ट किया जाना चाहिए:
-Cost to Company,कंपनी के लिए मूल्य
 Costing,लागत
 Country,देश
 Country Name,देश का नाम
 Create,बनाना
 Create Bank Voucher for the total salary paid for the above selected criteria,कुल ऊपर चयनित मानदंड के लिए वेतन भुगतान के लिए बैंक वाउचर बनाएँ
+Create Material Requests,सामग्री अनुरोध बनाएँ
 Create Production Orders,उत्पादन के आदेश बनाएँ
 Create Receiver List,रिसीवर सूची बनाएँ
 Create Salary Slip,वेतनपर्ची बनाएँ
@@ -680,6 +684,7 @@
 Custom Startup Code,कस्टम स्टार्टअप कोड
 Custom?,कस्टम?
 Customer,ग्राहक
+Customer (Receivable) Account,ग्राहक (प्राप्ति) खाता
 Customer / Item Name,ग्राहक / मद का नाम
 Customer Account,ग्राहक खाता
 Customer Account Head,ग्राहक खाता हेड
@@ -688,6 +693,8 @@
 Customer Code,ग्राहक कोड
 Customer Codes,ग्राहक संहिताओं
 Customer Details,ग्राहक विवरण
+Customer Discount,ग्राहक डिस्काउंट
+Customer Discounts,ग्राहक छूट
 Customer Feedback,ग्राहक प्रतिक्रिया
 Customer Group,ग्राहक समूह
 Customer Group Name,ग्राहक समूह का नाम
@@ -717,11 +724,10 @@
 DN,डी.एन.
 DN Detail,डी.एन. विस्तार
 Daily,दैनिक
+Daily Event Digest is sent for Calendar Events where reminders are set.,रोज की घटना डाइजेस्ट अनुस्मारक सेट कर रहे हैं जहां कैलेंडर घटनाक्रम के लिए भेज दिया जाता है.
 Daily Time Log Summary,दैनिक समय प्रवेश सारांश
-"Daily, weekly, monthly email Digests","दैनिक, साप्ताहिक, मासिक ईमेल हज़म"
 Danger,खतरा
 Data,डेटा
-Data Import,डेटा आयात
 Data missing in table,तालिका में लापता डेटा
 Database,डेटाबेस
 Database Folder ID,डेटाबेस फ़ोल्डर आईडी
@@ -777,6 +783,7 @@
 Default Settings,डिफ़ॉल्ट सेटिंग
 Default Source Warehouse,डिफ़ॉल्ट स्रोत वेअरहाउस
 Default Stock UOM,Default स्टॉक UOM
+Default Supplier,डिफ़ॉल्ट प्रदायक
 Default Supplier Type,डिफ़ॉल्ट प्रदायक प्रकार
 Default Target Warehouse,डिफ़ॉल्ट लक्ष्य वेअरहाउस
 Default Territory,Default टेरिटरी
@@ -795,6 +802,7 @@
 Delete,हटाना
 Delete Row,पंक्ति हटाएँ
 Delivered,दिया गया
+Delivered Items To Be Billed,बिल के लिए दिया आइटम
 Delivered Qty,वितरित मात्रा
 Delivery Address,डिलिवरी पता
 Delivery Date,प्रसव की तारीख
@@ -813,7 +821,6 @@
 Delivery Time,सुपुर्दगी समय
 Delivery To,करने के लिए डिलिवरी
 Department,विभाग
-Depend on LWP,LWP पर निर्भर करती है
 Depends On,पर निर्भर करता है
 Depends on LWP,LWP पर निर्भर करता है
 Descending,अवरोही
@@ -864,6 +871,7 @@
 DocType or Field,Doctype या फील्ड
 Document,दस्तावेज़
 Document Description,दस्तावेज का विवरण
+Document Numbering Series,दस्तावेज़ क्रमांकन सीरीज
 Document Status transition from ,से दस्तावेज स्थिति संक्रमण
 Document Type,दस्तावेज़ प्रकार
 Document is only editable by users of role,दस्तावेज़ भूमिका के उपयोगकर्ताओं द्वारा केवल संपादन है
@@ -934,7 +942,7 @@
 Employee Leave Balance,कर्मचारी छुट्टी शेष
 Employee Name,कर्मचारी का नाम
 Employee Number,कर्मचारियों की संख्या
-Employee Records to be created by ,कर्मचारी रिकॉर्ड्स द्वारा पैदा किए जाने की
+Employee Records to be created by,कर्मचारी रिकॉर्ड्स द्वारा पैदा किए जाने की
 Employee Setup,कर्मचारी सेटअप
 Employee Type,कर्मचारी प्रकार
 Employee grades,कर्मचारी ग्रेड
@@ -944,7 +952,6 @@
 Employees Email Id,ईमेल आईडी कर्मचारी
 Employment Details,रोजगार के विवरण
 Employment Type,रोजगार के प्रकार
-Enable / disable currencies.,मुद्राओं सक्षम / अक्षम करें.
 Enable Auto Inventory Accounting,ऑटो सूची लेखा सक्षम करें
 Enable Shopping Cart,शॉपिंग कार्ट सक्षम करें
 Enabled,Enabled
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,त्रुटि: आप इसे खोल दिया है के बाद दस्तावेज़ संशोधित किया गया है
 Estimated Material Cost,अनुमानित मटेरियल कॉस्ट
 Event,घटना
+Event End must be after Start,घटना अंत प्रारंभ के बाद होना चाहिए
 Event Individuals,घटना व्यक्तियों
 Event Role,घटना रोल
 Event Roles,घटना भूमिकाओं
 Event Type,इवेंट प्रकार
 Event User,इवेंट उपयोगकर्ता के
+Events In Today's Calendar,आज के कैलेंडर में घटनाक्रम
+Every Day,हर दिन
+Every Month,हर महीने
+Every Week,हर हफ्ते
+Every Year,हर साल
 Everyone can read,हर कोई पढ़ सकता है
 Example:,उदाहरण:
 Exchange Rate,विनिमय दर
@@ -1019,8 +1032,6 @@
 Exports,निर्यात
 External,बाहरी
 Extract Emails,ईमेल निकालें
-Extract Job Applicant from jobs email id e.g. jobs@example.com,नौकरियों ईमेल आईडी जैसे jobs@example.com से नौकरी आवेदक निकालें
-Extract Leads from sales email id e.g. sales@example.com,बिक्री ईमेल आईडी जैसे sales@example.com से बिक्रीसूत्र निकालें
 FCFS Rate,FCFS दर
 FIFO,फीफो
 Facebook Share,फेसबुक के शेयर
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","अल्पविराम (,) द्वारा अलग क्षेत्रों में शामिल किया जाएगा <br /> खोज संवाद बॉक्स की सूची <b>तक खोजें</b>"
 File,फ़ाइल
 File Data,डेटा फ़ाइल
-File Manager,फ़ाइल प्रबंधक
 File Name,फ़ाइल नाम
 File Size,फ़ाइल का आकार
 File URL,फ़ाइल URL
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,अंतिम पुष्टि तिथि
 Financial Analytics,वित्तीय विश्लेषिकी
 Financial Statements,वित्तीय विवरण
-Financial Years for books of accounts,खातों की पुस्तकों के लिए वित्तीय वर्ष
 First Name,प्रथम नाम
 First Responded On,पर पहले जवाब
 Fiscal Year,वित्तीय वर्ष
@@ -1090,6 +1099,7 @@
 For Sales Invoice,बिक्री चालान के लिए
 For Server Side Print Formats,सर्वर साइड प्रिंट स्वरूपों के लिए
 For Territory,राज्य क्षेत्र के लिए
+For UOM,UOM लिए
 For Warehouse,गोदाम के लिए
 "For comparative filters, start with","तुलनात्मक फिल्टर करने के लिए, के साथ शुरू"
 "For e.g. 2012, 2012-13","जैसे 2012, 2012-13 के लिए"
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,स्टॉक प्रविष्टियां रुक
 Friday,शुक्रवार
 From,से
+From Bill of Materials,सामग्री के बिल से
 From Company,कंपनी से
 From Currency,मुद्रा से
 From Currency and To Currency cannot be same,मुद्रा से और मुद्रा ही नहीं किया जा सकता है
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,दिनांक से पहले तिथि करने के लिए होना चाहिए
 From Delivery Note,डिलिवरी नोट से
 From Employee,कर्मचारी से
+From Lead,लीड से
 From PR Date,पीआर तारीख से
 From Package No.,पैकेज सं से
 From Purchase Order,खरीद आदेश से
@@ -1150,8 +1162,8 @@
 Get Current Stock,मौजूदा स्टॉक
 Get From ,से प्राप्त करें
 Get Items,आइटम पाने के लिए
+Get Items From Sales Orders,विक्रय आदेश से आइटम प्राप्त करें
 Get Last Purchase Rate,पिछले खरीद दर
-Get Latest Updates,नवीनतम अद्यतन प्राप्त करें
 Get Non Reconciled Entries,गैर मेल मिलाप प्रविष्टियां
 Get Outstanding Invoices,बकाया चालान
 Get Purchase Receipt,खरीद रसीद
@@ -1161,7 +1173,6 @@
 Get Template,टेम्पलेट जाओ
 Get Terms and Conditions,नियम और शर्तें
 Get Weekly Off Dates,साप्ताहिक ऑफ तिथियां
-Get a list of errors encountered by the Scheduler,समयबद्धक द्वारा सामना की त्रुटियों की एक सूची प्राप्त करें
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","मूल्यांकन और स्रोत / लक्ष्य पर गोदाम में उपलब्ध स्टाक दर दिनांक - समय पोस्टिंग का उल्लेख किया. यदि आइटम serialized, धारावाहिक नग में प्रवेश करने के बाद इस बटन को दबाएं."
 Give additional details about the indent.,मांगपत्र के बारे में अतिरिक्त जानकारी दे.
 Global Defaults,वैश्विक मूलभूत
@@ -1193,9 +1204,9 @@
 Group or Ledger,समूह या लेजर
 Groups,समूह
 HR,मानव संसाधन
+HR Settings,मानव संसाधन सेटिंग्स
 HTML,HTML
 HTML / Banner that will show on the top of product list.,HTML बैनर / कि उत्पाद सूची के शीर्ष पर दिखाई देगा.
-"HTML print formats for quotes, invoices etc","उद्धरण, चालान आदि के लिए HTML प्रिंट प्रारूप"
 Half Day,आधे दिन
 Half Yearly,छमाही
 Half-yearly,आधे साल में एक बार
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children","यहाँ आप परिवार और माता - पिता, पति या पत्नी और बच्चों के नाम, व्यवसाय की तरह बनाए रख सकते हैं"
 "Here you can maintain height, weight, allergies, medical concerns etc","यहाँ आप ऊंचाई, वजन, एलर्जी, चिकित्सा चिंताओं आदि बनाए रख सकते हैं"
 Hey there! You need to put at least one item in \				the item table.,अरे वहाँ! आप \ आइटम तालिका में कम से कम एक आइटम डाल करने की आवश्यकता है.
+Hey! All these items have already been invoiced.,अरे! इन सभी मदों पहले से चालान किया गया है.
 Hey! There should remain at least one System Manager,अरे! कम से कम एक सिस्टम मैनेजर वहाँ रहना चाहिए
 Hidden,छुपा
 Hide Actions,प्रक्रिया छिपाएँ
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults","इस मुद्रा को कैसे स्वरूपित किया जाना चाहिए? अगर सेट नहीं किया, प्रणाली चूक का उपयोग करेगा"
 How to upload,कैसे अपलोड करने के लिए
 Hrvatski,क्रोएशियाई
+Human Resources,मानवीय संसाधन
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,हुर्रे! दिन (s) \ जिस पर आप छोड़ने के लिए आवेदन कर रहे हैं छुट्टी (एस) के साथ मेल. आप छुट्टी के लिए लागू नहीं की जरूरत है.
 I,मैं
 ID (name) of the entity whose property is to be set,इकाई जिनकी संपत्ति को सेट किया जा रहा है की आईडी (नाम)
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,अगर वार्षिक बजट से अधिक हो
 "If a User does not have access at Level 0, then higher levels are meaningless","यदि एक उपयोगकर्ता पहुंच 0 स्तर पर नहीं है, तो उच्च स्तर व्यर्थ कर रहे हैं"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","अगर चेक्ड उप विधानसभा आइटम के लिए बीओएम कच्चे माल प्राप्त करने के लिए विचार किया जाएगा. अन्यथा, सभी उप विधानसभा वस्तुओं एक कच्चे माल के रूप में इलाज किया जाएगा."
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","जाँच की, तो कुल नहीं. कार्य दिवस की छुट्टियों में शामिल होगा, और यह प्रति दिन वेतन का मूल्य कम हो जाएगा"
 "If checked, all other workflows become inactive.","अगर जाँच की है, सभी अन्य वर्कफ़्लोज़ निष्क्रिय हो जाते हैं."
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","जाँच की है, तो एक संलग्न HTML स्वरूप के साथ एक ईमेल ईमेल शरीर के रूप में अच्छी तरह से लगाव के हिस्से में जोड़ दिया जाएगा. केवल अनुलग्नक के रूप में भेजने के लिए, इस अचयनित."
 "If checked, the Home page will be the default Item Group for the website.",अगर चेक्ड होम पेज वेबसाइट के लिए डिफ़ॉल्ट आइटम समूह होगा.
@@ -1305,7 +1319,6 @@
 Import,आयात
 Import Attendance,आयात उपस्थिति
 Import Log,प्रवेश करें आयात
-Import data from spreadsheet (csv) files,स्प्रेडशीट फ़ाइलों (csv) से डेटा आयात
 Important dates and commitments in your project life cycle,अपनी परियोजना के जीवन चक्र में महत्वपूर्ण तिथियाँ और प्रतिबद्धताओं
 Imports,आयात
 In Dialog,संवाद में
@@ -1314,6 +1327,7 @@
 In List View,सूची दृश्य में
 In Process,इस प्रक्रिया में
 In Report Filter,रिपोर्ट फिल्टर में
+In Row,पंक्ति में
 In Store,दुकान में
 In Words,शब्दों में
 In Words (Company Currency),शब्दों में (कंपनी मुद्रा)
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","अनुमति मैनेजर में, &#39;स्थिति&#39; कॉलम में रोल आप प्रतिबंधित करना चाहते हैं, उसके लिए बटन पर क्लिक करें."
 Incentives,प्रोत्साहन
 Incharge Name,नाम प्रभारी
+Include holidays in Total no. of Working Days,कुल संख्या में छुट्टियों को शामिल करें. कार्य दिवस की
 Income / Expense,आय / व्यय
 Income Account,आय खाता
 Income Booked,आय में बुक
@@ -1347,6 +1362,7 @@
 Industry Type,उद्योग के प्रकार
 Info,जानकारी
 Insert After,बाद सम्मिलित करें
+Insert Below,नीचे डालें
 Insert Code,कोड डालने के लिए
 Insert Row,पंक्ति डालें
 Insert Style,शैली सम्मिलित करें
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,अवैध डिलिवरी नोट. डिलिवरी नोट मौजूद होना चाहिए और मसौदा राज्य में होना चाहिए. सुधारने और पुन: प्रयास करें.
 Invalid Email,अवैध ईमेल
 Invalid Email Address,अमान्य ईमेल पता
+Invalid Item or Warehouse Data,अवैध मद या गोदाम डेटा
 Invalid Leave Approver,अवैध अनुमोदक छोड़ दो
 Inventory,इनवेंटरी
 Inverse,उलटा
@@ -1511,7 +1528,6 @@
 Lead Lost,खोया लीड
 Lead Name,नाम लीड
 Lead Owner,मालिक लीड
-Lead Ref,रेफरी लीड
 Lead Source,स्रोत लीड
 Lead Status,स्थिति लीड
 Lead Time Date,लीड दिनांक और समय
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,रिक्त छोड़ अगर सभी पदनाम के लिए विचार
 Leave blank if considered for all employee types,रिक्त छोड़ दो अगर सभी कर्मचारी प्रकार के लिए विचार
 Leave blank if considered for all grades,रिक्त छोड़ अगर सभी ग्रेड के लिए माना जाता है
+Leave blank if you have not decided the end date.,तुम अंत की तारीख तय नहीं किया है तो खाली छोड़ दें.
 Leave by,द्वारा छोड़ दो
 "Leave can be approved by users with Role, ""Leave Approver""",", &quot;अनुमोदक&quot; छोड़ छोड़ भूमिका के साथ उपयोगकर्ताओं द्वारा अनुमोदित किया जा सकता है"
 Ledger,खाता
@@ -1553,7 +1570,6 @@
 Letter Head,पत्रशीर्ष
 Letter Head Image,लेटर हेड छवि
 Letter Head Name,लेटर हेड का नाम
-Letter heads for print,प्रिंट के लिए पत्र सिर
 Level,स्तर
 "Level 0 is for document level permissions, higher levels for field level permissions.","0 स्तर दस्तावेज़ स्तर अनुमतियाँ, क्षेत्र स्तर अनुमति के लिए उच्च स्तर के लिए है."
 Lft,LFT
@@ -1563,13 +1579,11 @@
 Linked With,के साथ जुड़ा हुआ
 List,सूची
 List items that form the package.,सूची आइटम है कि पैकेज का फार्म.
-List of companies (not customers / suppliers),"कंपनियों की सूची (ग्राहकों, आपूर्तिकर्ताओं / नहीं)"
 List of holidays.,छुट्टियों की सूची.
 List of patches executed,निष्पादित पैच की सूची
 List of records in which this document is linked,रिकॉर्ड की सूची है जो इस दस्तावेज़ में जुड़ा हुआ है
 List of users who can edit a particular Note,एक विशेष नोट संपादित कर सकते हैं जो उपयोगकर्ताओं की सूची
 List this Item in multiple groups on the website.,कई समूहों में वेबसाइट पर इस मद की सूची.
-"List, delete uploaded files.","अपलोड की गई फ़ाइलों को हटा दें, सूचीबद्ध करें."
 Live Chat,लाइव चैट
 Load Print View on opening of an existing form,एक मौजूदा फार्म के उद्घाटन के अवसर पर प्रिंट लोड
 Loading,लदान
@@ -1596,6 +1610,7 @@
 Mail Server,मेल सर्वर
 Main Reports,मुख्य रिपोर्ट
 Main Section,मुख्य धारा
+Maintain Same Rate Throughout Sales Cycle,बिक्री चक्र के दौरान एक ही दर बनाए रखें
 Maintain same rate throughout purchase cycle,खरीद चक्र के दौरान एक ही दर बनाए रखें
 Maintenance,रखरखाव
 Maintenance Date,रखरखाव तिथि
@@ -1616,7 +1631,6 @@
 Make a new,एक नया
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,कि यह सुनिश्चित करें कि आप लेनदेन के लिए प्रतिबंधित करना चाहते हैं एक लिंक फ़ील्ड &#39;क्षेत्र&#39; एक &#39;क्षेत्र&#39; मास्टर नक्शे.
 Male,नर
-Manage Numbering Series,सीरीज नंबरिंग प्रबंधन
 Manage cost of operations,संचालन की लागत का प्रबंधन
 Manage exchange rates for currency conversion,मुद्रा रूपांतरण के लिए विनिमय दरों प्रबंधन
 Mandatory,अनिवार्य
@@ -1651,10 +1665,10 @@
 Material Request No,सामग्री अनुरोध नहीं
 Material Request Type,सामग्री अनुरोध प्रकार
 Material Request used to make this Stock Entry,इस स्टॉक एंट्री बनाने के लिए इस्तेमाल सामग्री अनुरोध
+Material Requirement,सामग्री की आवश्यकताएँ
 Material Transfer,सामग्री स्थानांतरण
 Materials,सामग्री
 Materials Required (Exploded),माल आवश्यक (विस्फोट)
-Materials Requirement Planning (MRP),सामग्री आवश्यकताएँ योजना (एमआरपी)
 Max 500 rows only.,केवल अधिकतम 500 पंक्तियाँ.
 Max Attachments,अधिकतम किए गए अनुलग्नकों के
 Max Days Leave Allowed,अधिकतम दिन छोड़ने की अनुमति दी
@@ -1699,6 +1713,7 @@
 Month,माह
 Monthly,मासिक
 Monthly Attendance Sheet,मासिक उपस्थिति शीट
+Monthly Earning & Deduction,मासिक आय और कटौती
 Monthly Salary Register,मासिक वेतन पंजीकरण
 Monthly salary statement.,मासिक वेतन बयान.
 Monthly salary template.,मासिक वेतन टेम्पलेट.
@@ -1711,7 +1726,9 @@
 Mr,श्री
 Ms,सुश्री
 Multiple Item Prices,एकाधिक आइटम मूल्य
+Multiple root nodes not allowed.,बहु रूट नोड्स की अनुमति नहीं है.
 Mupltiple Item prices.,Mupltiple आइटम की कीमतों.
+Must be Whole Number,पूर्ण संख्या होनी चाहिए
 Must have report permission to access this report.,इस रिपोर्ट का उपयोग करने की रिपोर्ट की अनुमति होनी चाहिए.
 Must specify a Query to run,को चलाने के लिए एक प्रश्न जरूर निर्दिष्ट
 My Settings,मेरी सेटिंग्स
@@ -1737,7 +1754,6 @@
 Net Weight,निवल भार
 Net Weight UOM,नेट वजन UOM
 Net Weight of each Item,प्रत्येक आइटम के नेट वजन
-Net pay can not be greater than 1/12th of Annual Cost To Company,नेट वेतन कंपनी के लिए वार्षिक लागत के 1/12th से अधिक नहीं हो सकता
 Net pay can not be negative,नेट वेतन ऋणात्मक नहीं हो सकता
 Never,कभी नहीं
 New,नई
@@ -1795,6 +1811,7 @@
 No of Sent SMS,भेजे गए एसएमएस की संख्या
 No of Visits,यात्राओं की संख्या
 No one,कोई नहीं
+No permission to write / remove.,लिखने के लिए कोई अनुमति / हटा दें.
 No record found,कोई रिकॉर्ड पाया
 No records tagged.,कोई रिकॉर्ड टैग.
 No salary slip found for month: ,महीने के लिए नहीं मिला वेतन पर्ची:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,हिसाब से दिया जा आइटम
 Ordered Quantity,आदेशित मात्रा
 Orders released for production.,उत्पादन के लिए आदेश जारी किया.
-Organization,संगठन
 Organization Profile,संगठन प्रोफाइल
 Original Message,मूल संदेश
 Other,अन्य
 Other Details,अन्य विवरण
 Out,आउट
-Out going mail server and support ticket mailbox,मेल सर्वर और समर्थन टिकट मेलबॉक्स बाहर जा रहा है
 Out of AMC,एएमसी के बाहर
 Out of Warranty,वारंटी के बाहर
 Outgoing,बाहर जाने वाला
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),POP3 मेल सर्वर (जैसे pop.gmail.com)
 POP3 server e.g. (pop.gmail.com),POP3 सर्वर जैसे (pop.gmail.com)
 POS Setting,स्थिति सेटिंग
+POS View,स्थिति देखें
 PR Detail,पीआर विस्तार
 PRO,प्रो
 PS,पुनश्च
@@ -1951,10 +1967,10 @@
 Participants,प्रतिभागियों
 Partly Billed,आंशिक रूप से बिल
 Partly Delivered,आंशिक रूप से वितरित
-Partner,साथी
 Partner Target Detail,साथी लक्ष्य विवरण
 Partner Type,साथी के प्रकार
 Partner's Website,साथी की वेबसाइट
+Passive,निष्क्रिय
 Passport Number,पासपोर्ट नंबर
 Password,पासवर्ड
 Password Expires in (days),पासवर्ड में समाप्त (दिन)
@@ -1964,12 +1980,12 @@
 Payables,देय
 Payables Group,देय समूह
 Payment Collection With Ageing,बूढ़े के साथ भुगतान संग्रह
+Payment Days,भुगतान दिन
 Payment Entries,भुगतान प्रविष्टियां
 Payment Entry has been modified after you pulled it. 			Please pull it again.,भुगतान एंट्री के बाद आप इसे खींच संशोधित किया गया है. कृपया इसे फिर से खींच.
 Payment Made With Ageing,भुगतान बूढ़े के साथ मेड
 Payment Reconciliation,भुगतान सुलह
 Payment Terms,अदायगी की शर्तें
-Payment days,भुगतान दिन
 Payment to Invoice Matching Tool,चालान मिलान उपकरण के लिए भुगतान
 Payment to Invoice Matching Tool Detail,चालान मिलान उपकरण विस्तार करने के लिए भुगतान
 Payments,भुगतान
@@ -1984,6 +2000,7 @@
 Percent,प्रतिशत
 Percent Complete,पूरा प्रतिशत
 Percentage Allocation,प्रतिशत आवंटन
+Percentage Allocation should be equal to ,प्रतिशत आवंटन के बराबर होना चाहिए
 Percentage variation in quantity to be allowed while receiving or delivering this item.,मात्रा में प्रतिशत परिवर्तन प्राप्त करने या इस मद के लिए अनुमति दी गई है.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,आप मात्रा के खिलाफ और अधिक प्राप्त या वितरित करने के लिए अनुमति दी जाती प्रतिशत का आदेश दिया. उदाहरण के लिए: यदि आप 100 यूनिट का आदेश दिया है. और अपने भत्ता 10% तो आप 110 इकाइयों को प्राप्त करने के लिए अनुमति दी जाती है.
 Performance appraisal.,प्रदर्शन मूल्यांकन.
@@ -2026,19 +2043,24 @@
 Please check,कृपया जाँच करें
 Please enter Default Unit of Measure,उपाय के डिफ़ॉल्ट यूनिट दर्ज करें
 Please enter Delivery Note No or Sales Invoice No to proceed,नहीं या बिक्री चालान नहीं आगे बढ़ने के लिए डिलिवरी नोट दर्ज करें
+Please enter Employee Number,कर्मचारी संख्या दर्ज करें
 Please enter Expense Account,व्यय खाते में प्रवेश करें
 Please enter Expense/Adjustment Account,व्यय / समायोजन खाता दर्ज करें
 Please enter Purchase Receipt No to proceed,आगे बढ़ने के लिए कोई खरीद रसीद दर्ज करें
+Please enter Reserved Warehouse for item ,आइटम के लिए आरक्षित गोदाम दर्ज करें
 Please enter valid,वैध दर्ज करें
 Please enter valid ,वैध दर्ज करें
 Please install dropbox python module,ड्रॉपबॉक्स अजगर मॉड्यूल स्थापित करें
 Please make sure that there are no empty columns in the file.,फाइल में कोई रिक्त स्तंभ हैं कि कृपया सुनिश्चित करें.
 Please mention default value for ',डिफ़ॉल्ट मान के लिए उल्लेख करें &#39;
+Please reduce qty.,मात्रा कम करें.
 Please refresh to get the latest document.,नवीनतम दस्तावेज प्राप्त करने के लिए ताज़ा करें.
 Please save the Newsletter before sending.,भेजने से पहले न्यूज़लैटर बचाने.
 Please select Bank Account,बैंक खाते का चयन करें
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,का चयन करें कृपया आगे ले जाना है अगर तुम भी शामिल करना चाहते हैं पिछले राजकोषीय वर्ष की शेष राशि इस वित्त वर्ष के लिए छोड़ देता है
 Please select Date on which you want to run the report,"आप रिपोर्ट को चलाना चाहते हैं, जिस पर तिथि का चयन करें"
+Please select Naming Neries,नामकरण Neries का चयन करें
+Please select Price List,मूल्य सूची का चयन करें
 Please select Time Logs.,समय लॉग्स का चयन करें.
 Please select a,कृपया चुनें एक
 Please select a csv file,एक csv फ़ाइल का चयन करें
@@ -2051,10 +2073,12 @@
 Please select: ,कृपया चुनें:
 Please set Dropbox access keys in,में ड्रॉपबॉक्स पहुँच कुंजियों को सेट करें
 Please set Google Drive access keys in,गूगल ड्राइव पहुंच कुंजी में सेट करें
+Please setup Employee Naming System in Human Resource > HR Settings,मानव संसाधन में सेटअप कर्मचारी नामकरण प्रणाली कृपया&gt; मानव संसाधन सेटिंग्स
 Please specify,कृपया बताएं
 Please specify Company,कंपनी निर्दिष्ट करें
 Please specify Company to proceed,कंपनी आगे बढ़ने के लिए निर्दिष्ट करें
 Please specify Default Currency in Company Master \			and Global Defaults,कंपनी \ मास्टर और वैश्विक मूलभूत में डिफ़ॉल्ट मुद्रा निर्दिष्ट करें
+Please specify a,कृपया बताएं एक
 Please specify a Price List which is valid for Territory,राज्य क्षेत्र के लिए मान्य है जो एक मूल्य सूची निर्दिष्ट करें
 Please specify a valid,एक वैध निर्दिष्ट करें
 Please specify a valid 'From Case No.',&#39;केस नंबर से&#39; एक वैध निर्दिष्ट करें
@@ -2070,7 +2094,7 @@
 Posts,डाक
 Potential Sales Deal,संभावित बिक्री सौदा
 Potential opportunities for selling.,बेचने के लिए संभावित अवसरों.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","प्रेसिजन केवल प्रदर्शन के लिए फ्लोट क्षेत्र (मात्रा, छूट, प्रतिशत आदि) के लिए. तैरता अभी भी 6 दशमलव की गणना की जा."
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","फ्लोट क्षेत्रों के लिए प्रेसिजन (मात्रा, छूट, प्रतिशत आदि). तैरता निर्दिष्ट दशमलव के लिए गोल किया जाएगा. डिफ़ॉल्ट = 3"
 Preferred Billing Address,पसंदीदा बिलिंग पता
 Preferred Shipping Address,पसंदीदा शिपिंग पता
 Prefix,उपसर्ग
@@ -2081,7 +2105,6 @@
 Previous Work Experience,पिछले कार्य अनुभव
 Price,कीमत
 Price List,कीमत सूची
-Price List Country,मूल्य सूची के देश
 Price List Currency,मूल्य सूची मुद्रा
 Price List Currency Conversion Rate,मूल्य सूची मुद्रा रूपांतरण दर
 Price List Exchange Rate,मूल्य सूची विनिमय दर
@@ -2089,6 +2112,7 @@
 Price List Name,मूल्य सूची का नाम
 Price List Rate,मूल्य सूची दर
 Price List Rate (Company Currency),मूल्य सूची दर (कंपनी मुद्रा)
+Price List for Costing,लागत के लिए मूल्य सूची
 Price Lists and Rates,मूल्य सूची और दरें
 Primary,प्राथमिक
 Print Format,प्रारूप प्रिंट
@@ -2107,6 +2131,7 @@
 Produced Quantity,उत्पादित मात्रा
 Product Enquiry,उत्पाद पूछताछ
 Production Order,उत्पादन का आदेश
+Production Orders,उत्पादन के आदेश
 Production Plan Item,उत्पादन योजना मद
 Production Plan Items,उत्पादन योजना आइटम
 Production Plan Sales Order,उत्पादन योजना बिक्री आदेश
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,परियोजना वार स्टॉक ट्रैकिंग
 Projected Qty,अनुमानित मात्रा
 Projects,परियोजनाओं
-Prompt email sending to customers and suppliers,प्रॉम्प्ट आपूर्तिकर्ताओं और ग्राहकों को ईमेल भेजने
 Prompt for Email on Submission of,प्रस्तुत करने पर ईमेल के लिए संकेत
 Properties,गुण
 Property,संपत्ति
@@ -2147,7 +2171,6 @@
 Published On,पर प्रकाशित
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,ईमेल इनबॉक्स से खींचो और उन्हें संचार रिकॉर्ड (ज्ञात संपर्कों के लिए) के रूप में देते हैं.
 Pull Payment Entries,भुगतान प्रविष्टियां खींचो
-Pull items from Sales Order mentioned in the above table.,उपरोक्त तालिका में उल्लिखित बिक्री आदेश से आइटम खींचो.
 Pull sales orders (pending to deliver) based on the above criteria,उपरोक्त मानदंडों के आधार पर बिक्री के आदेश (वितरित करने के लिए लंबित) खींचो
 Purchase,क्रय
 Purchase Analytics,खरीद विश्लेषिकी
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,मात्रा पहले से ही निर्मित
 Quantity and Rate,मात्रा और दर
 Quantity and Warehouse,मात्रा और वेयरहाउस
+Quantity cannot be a fraction.,मात्रा एक अंश नहीं हो सकता.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,वस्तु की मात्रा विनिर्माण / कच्चे माल की दी गई मात्रा से repacking के बाद प्राप्त
 Quantity should be equal to Manufacturing Quantity. ,मात्रा विनिर्माण मात्रा के बराबर होना चाहिए.
 Quarter,तिमाही
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,कोटेशन कारण खोया
 Quotation Message,कोटेशन संदेश
 Quotation Sent,कोटेशन भेजे गए
+Quotation Series,कोटेशन सीरीज
 Quotation To,करने के लिए कोटेशन
 Quotation Trend,कोटेशन रुझान
 Quotations received from Suppliers.,कोटेशन आपूर्तिकर्ता से प्राप्त किया.
 Quotes to Leads or Customers.,सुराग या ग्राहक के लिए उद्धरण.
-Raise Material Request,सामग्री अनुरोध उठाएँ
 Raise Material Request when stock reaches re-order level,सामग्री अनुरोध उठाएँ जब शेयर पुनः आदेश के स्तर तक पहुँच
-Raise Production Order,उत्पादन का आदेश उठाएँ
 Raised By,द्वारा उठाए गए
 Raised By (Email),(ई) द्वारा उठाए गए
 Random,यादृच्छिक
@@ -2280,6 +2303,7 @@
 Receivables / Payables,प्राप्तियों / देय
 Receivables Group,प्राप्तियों समूह
 Received Date,प्राप्त तिथि
+Received Items To Be Billed,बिल करने के लिए प्राप्त आइटम
 Received Qty,प्राप्त मात्रा
 Received and Accepted,प्राप्त और स्वीकृत
 Receiver List,रिसीवर सूची
@@ -2293,6 +2317,8 @@
 Recurring Id,आवर्ती आईडी
 Recurring Invoice,आवर्ती चालान
 Recurring Type,आवर्ती प्रकार
+Reduce Deduction for Leave Without Pay (LWP),बिना वेतन छुट्टी के लिए कटौती में कमी (LWP)
+Reduce Earning for Leave Without Pay (LWP),वेतन (LWP) के बिना छुट्टी लिए कमाई कम करें
 Ref Code,रेफरी कोड
 Ref Date is Mandatory if Ref Number is specified,रेफरी संख्या निर्दिष्ट किया जाता है तो रेफरी तिथि अनिवार्य है
 Ref DocType,रेफरी doctype
@@ -2302,6 +2328,8 @@
 Ref Type,रेफरी के प्रकार
 Reference,संदर्भ
 Reference Date,संदर्भ तिथि
+Reference DocName,संदर्भ DocName
+Reference DocType,संदर्भ टैग
 Reference Name,संदर्भ नाम
 Reference Number,संदर्भ संख्या
 Reference Type,संदर्भ प्रकार
@@ -2322,10 +2350,12 @@
 Remove Bookmark,बुकमार्क निकालें
 Rename Log,प्रवेश का नाम बदलें
 Rename Tool,उपकरण का नाम बदलें
-Rename multiple items in one go,एक ही बार में एकाधिक आइटम का नाम बदलें
 Rename...,नाम बदलें ...
 Rented,किराये पर
+Repeat On,पर दोहराएँ
+Repeat Till,जब तक दोहराएँ
 Repeat on Day of Month,महीने का दिन पर दोहराएँ
+Repeat this Event,इस इवेंट दोहराएँ
 Replace,बदलें
 Replace Item / BOM in all BOMs,सभी BOMs आइटम / BOM बदलें
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","अन्य सभी BOMs जहां यह प्रयोग किया जाता है में एक विशेष बीओएम बदलें. यह पुराने बीओएम लिंक की जगह, लागत अद्यतन और नया बीओएम के अनुसार &quot;BOM धमाका आइटम&quot; तालिका पुनर्जन्म"
@@ -2358,13 +2388,14 @@
 Reseller,पुनर्विक्रेता
 Reserved Quantity,आरक्षित मात्रा
 Reserved Warehouse,सुरक्षित वेयरहाउस
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,बिक्री आदेश / तैयार माल गोदाम में सुरक्षित गोदाम
+Reserved Warehouse is missing in Sales Order,सुरक्षित गोदाम बिक्री आदेश में लापता है
 Resignation Letter Date,इस्तीफा पत्र दिनांक
 Resolution,संकल्प
 Resolution Date,संकल्प तिथि
 Resolution Details,संकल्प विवरण
 Resolved By,द्वारा हल किया
 Restrict IP,आईपी ​​प्रतिबंधित करें
-Restrict submission rights based on amount,जमा राशि पर आधारित अधिकार प्रतिबंधित
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),इस आईपी पते से ही उपयोगकर्ता प्रतिबंधित. एकाधिक आईपी पतों को अल्पविरामों से अलग से जोड़ा जा सकता है. इसके अलावा तरह आंशिक आईपी पते (111.111.111) स्वीकार
 Restricting By User,USER के द्वारा प्रतिबंधित
 Retail,खुदरा
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,वेतन संरचना कटौती
 Salary Structure Earning,कमाई वेतन संरचना
 Salary Structure Earnings,वेतन संरचना आय
+Salary breakup based on Earning and Deduction.,वेतन गोलमाल अर्जन और कटौती पर आधारित है.
 Salary components.,वेतन घटकों.
 Sales,विक्रय
 Sales Analytics,बिक्री विश्लेषिकी
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),बिक्री व्यक्ति लक्ष्य विचरण (आइटम समूह वार)
 Sales Person Targets,बिक्री व्यक्ति लक्ष्य
 Sales Person-wise Transaction Summary,बिक्री व्यक्ति के लिहाज गतिविधि सारांश
-Sales Rate,बिक्री दर
 Sales Register,बिक्री रजिस्टर
 Sales Return,बिक्री लौटें
 Sales Taxes and Charges,बिक्री कर और शुल्क
@@ -2484,7 +2515,6 @@
 Scheduled,अनुसूचित
 Scheduled Confirmation Date,अनुसूचित पुष्टि तिथि
 Scheduled Date,अनुसूचित तिथि
-Scheduler Error Log,शेड्यूलर त्रुटि प्रवेश
 Scheduler Log,समयबद्धक प्रवेश
 School/University,स्कूल / विश्वविद्यालय
 Score (0-5),कुल (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,Doctype का चयन करें
 Select Document Type,दस्तावेज़ प्रकार का चयन करें
 Select Document Type or Role to start.,दस्तावेज़ प्रकार या शुरू करने के लिए रोल का चयन करें.
+Select Items,आइटम का चयन करें
 Select PR,का चयन करें पीआर
 Select Print Format,प्रिंट प्रारूप का चयन करें
 Select Print Heading,चयन शीर्षक प्रिंट
@@ -2562,8 +2593,8 @@
 Send SMS,एसएमएस भेजें
 Send To,इन्हें भेजें
 Send To Type,टाइप करने के लिए भेजें
+Send an email reminder in the morning,सुबह में एक ईमेल अनुस्मारक भेजें
 Send automatic emails to Contacts on Submitting transactions.,लेनदेन भेजने पर संपर्क करने के लिए स्वत: ईमेल भेजें.
-"Send bulk SMS to leads, customers, contacts","जाता है, ग्राहकों, संपर्क, थोक एसएमएस भेजें"
 Send mass SMS to your contacts,अपने संपर्कों के लिए बड़े पैमाने पर एसएमएस भेजें
 Send regular summary reports via Email.,ईमेल के माध्यम से नियमित रूप से सारांश रिपोर्ट भेजें.
 Send to this list,इस सूची को भेजें
@@ -2580,7 +2611,6 @@
 Serial No Status,सीरियल कोई स्थिति
 Serial No Warranty Expiry,सीरियल कोई वारंटी समाप्ति
 Serialized Item: ',श्रृंखलाबद्ध आइटम: &#39;
-Series,कई
 Series List for this Transaction,इस लेन - देन के लिए सीरीज सूची
 Server,सेवक
 Service Address,सेवा पता
@@ -2590,19 +2620,13 @@
 Session Expiry,सत्र समाप्ति
 Session Expiry in Hours e.g. 06:00,घंटे में सत्र समाप्ति जैसे 06:00
 Set Banner from Image,छवि से बैनर सेट
-Set From Image,छवि से सेट
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,इस क्षेत्र पर आइटम ग्रुप - वाईस बजट निर्धारित करें. तुम भी वितरण की स्थापना द्वारा मौसमी शामिल कर सकते हैं.
 Set Login and Password if authentication is required.,लॉगिन और पासवर्ड सेट अगर प्रमाणीकरण की आवश्यकता है.
 Set New Password,नया पासवर्ड सेट
 Set Value,मूल्य सेट
 "Set a new password and ""Save""",एक नया पासवर्ड और &quot;सहेजें&quot; सेट
-Set default values for entry,प्रविष्टि के लिए डिफ़ॉल्ट मान सेट
-Set default values for users (also used for permissions).,उपयोगकर्ताओं के लिए डिफ़ॉल्ट मान सेट (भी अनुमति के लिए प्रयोग किया जाता है).
-Set multiple numbering series for transactions,लेनदेन के लिए कई नंबर श्रृंखला की स्थापना
-Set permissions on transactions / masters,लेनदेन / स्वामी पर अनुमतियाँ सेट
 Set prefix for numbering series on your transactions,अपने लेनदेन पर श्रृंखला नंबरिंग के लिए उपसर्ग सेट
 Set targets Item Group-wise for this Sales Person.,सेट आइटम इस बिक्री व्यक्ति के लिए समूह - वार लक्ष्य.
-Set workflow rules.,सेट कार्यप्रवाह नियमों.
 "Set your background color, font and image (tiled)","अपनी पृष्ठभूमि रंग, फ़ॉन्ट और छवि (टाइलों) सेट"
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","अपने निवर्तमान मेल SMTP सेटिंग्स यहाँ सेट. सभी प्रणाली सूचनाएं उत्पन्न, ईमेल इस मेल सर्वर से जाना जाएगा. यदि आप सुनिश्चित नहीं कर रहे हैं, इस लिए ERPNext सर्वर (ईमेल अभी भी अपनी ईमेल आईडी से भेजा जाएगा) का उपयोग करने के लिए या अपने ईमेल प्रदाता से संपर्क करने के लिए खाली छोड़ दें."
 Setting Account Type helps in selecting this Account in transactions.,की स्थापना खाता प्रकार के लेनदेन में इस खाते का चयन करने में मदद करता है.
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,शॉपिंग कार्ट का सेटअप.
 Setup of fonts and background.,फ़ॉन्ट और पृष्ठभूमि का सेटअप.
 "Setup of top navigation bar, footer and logo.","शीर्ष नेविगेशन पट्टी, पाद लेख, और लोगो का सेटअप."
-Setup outgoing SMS via your bulk SMS provider,अपने थोक एसएमएस प्रदाता के माध्यम से निवर्तमान एसएमएस सेटअप
 Setup to pull emails from support email account,समर्थन ईमेल खाते से ईमेल खींचने सेटअप
 Share,शेयर
 Share With,के साथ शेयर करें
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,वेबसाइट और अन्य प्रकाशनों के लिए लघु जीवनी.
 Shortcut,शॉर्टकट
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",स्टॉक में दिखाएँ &quot;&quot; या &quot;नहीं&quot; स्टॉक में इस गोदाम में उपलब्ध स्टॉक के आधार पर.
-Show / Hide Modules,मॉड्यूल दिखाएँ / छुपाएँ
 Show Details,विवरण दिखाएं
 Show In Website,वेबसाइट में दिखाएँ
 Show Print First,शो के पहले प्रिंट
@@ -2658,11 +2680,9 @@
 Show in Website,वेबसाइट में दिखाने
 Show rows with zero values,शून्य मान के साथ पंक्तियों दिखाएं
 Show this slideshow at the top of the page,पृष्ठ के शीर्ष पर इस स्लाइड शो दिखाएँ
-"Show, hide modules","दिखाएँ, मॉड्यूल को छिपाने के"
 Showing only for,के लिए ही दिखा रहा है
 Signature,हस्ताक्षर
 Signature to be appended at the end of every email,हर ईमेल के अंत में संलग्न किया हस्ताक्षर
-Simplify entry forms by disabling features,सुविधाओं को अक्षम द्वारा प्रवेश फार्म सरल
 Single,एक
 Single Post (article).,सिंगल पोस्ट (लेख).
 Single unit of an Item.,एक आइटम के एकल इकाई.
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,खेद है कि हम खोजने के लिए आप क्या देख रहे थे करने में असमर्थ थे.
 Sorry you are not permitted to view this page.,खेद है कि आपको इस पृष्ठ को देखने की अनुमति नहीं है.
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,क्षमा करें! हम केवल स्टॉक सुलह के लिए 100 पंक्तियों तक अनुमति दे सकते हैं.
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","क्षमा करें! इसके खिलाफ मौजूदा लेनदेन कर रहे हैं, क्योंकि आप कंपनी की डिफ़ॉल्ट मुद्रा बदल नहीं सकते. आप डिफ़ॉल्ट मुद्रा में परिवर्तन करना चाहते हैं तो आप उन लेनदेन को रद्द करने की आवश्यकता होगी."
 Sorry. Companies cannot be merged,माफ़ कीजिए. कंपनियों का विलय कर दिया नहीं किया जा सकता
 Sorry. Serial Nos. cannot be merged,माफ़ कीजिए. सीरियल नंबर मिला दिया नहीं जा सकता
 Sort By,द्वारा क्रमबद्ध करें
@@ -2759,6 +2780,7 @@
 Suggestions,सुझाव
 Sunday,रविवार
 Supplier,प्रदायक
+Supplier (Payable) Account,प्रदायक (देय) खाता
 Supplier (vendor) name as entered in supplier master,प्रदायक नाम (विक्रेता) के रूप में आपूर्तिकर्ता मास्टर में प्रवेश
 Supplier Account Head,प्रदायक खाता हेड
 Supplier Address,प्रदायक पता
@@ -2792,7 +2814,6 @@
 Symbol,प्रतीक
 Sync Inbox,सिंक इनबॉक्स
 Sync Support Mails,समर्थन मेल समन्वयित
-Sync backups with remote tools like Dropbox etc.,ड्रॉपबॉक्स आदि जैसे दूरदराज के उपकरणों के साथ बैकअप सिंक करें
 Sync with Dropbox,ड्रॉपबॉक्स के साथ सिंक
 Sync with Google Drive,गूगल ड्राइव के साथ सिंक
 System,प्रणाली
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page",&quot;वेब पेज&quot; कि वेबसाइट के होम पेज
 The BOM which will be replaced,बीओएम जो प्रतिस्थापित किया जाएगा
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",आइटम है कि पैकेज का प्रतिनिधित्व करता है. इस मद &quot;स्टॉक आइटम&quot; &quot;नहीं&quot; के रूप में और के रूप में &quot;हाँ&quot; &quot;बिक्री आइटम है&quot;
-The account to which you will pay (have paid) the money to.,खाते जो आप भुगतान भुगतान किया जाएगा करने के लिए पैसा है.
 The date at which current entry is made in system.,"तारीख, जिस पर वर्तमान प्रविष्टि प्रणाली में किया जाता है."
 The date at which current entry will get or has actually executed.,"तारीख, जिस पर वर्तमान प्रविष्टि पाने के लिए या वास्तव में मार डाला गया है."
 The date on which next invoice will be generated. It is generated on submit.,"तारीख, जिस पर अगले चालान उत्पन्न हो जाएगा. यह प्रस्तुत करने पर उत्पन्न होता है."
@@ -2927,6 +2947,7 @@
 To Currency,मुद्रा के लिए
 To Date,तिथि करने के लिए
 To Discuss,चर्चा करने के लिए
+To Do,क्या करने के लिए
 To Do List,सूची
 To PR Date,पीआर तिथि
 To Package No.,सं पैकेज
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","स्वचालित रूप से अपनी आने वाली मेल से समर्थन टिकट बनाने के लिए, अपने POP3 सेटिंग्स यहाँ सेट. तुम आदर्श erp प्रणाली के लिए एक अलग ईमेल आईडी बनाने के लिए इतना है कि सभी ईमेल प्रणाली में है कि मेल आईडी से synced जाएगा चाहिए. यदि आप सुनिश्चित नहीं कर रहे हैं, अपने ईमेल प्रदाता से संपर्क करें."
 "To create an Account Head under a different company, select the company and save customer.","एक अलग कंपनी के तहत एक खाता प्रमुख बनाने के लिए, कंपनी का चयन करें और ग्राहक को बचाने."
 To enable <b>Point of Sale</b> features,<b>बिक्री</b> सुविधाओं <b>के प्वाइंट को</b> सक्षम
+To enable more currencies go to Setup > Currency,अधिक मुद्राओं सक्षम करने के लिए&gt; मुद्रा सेटअप करने के लिए जाना
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","आइटम फिर से लाने, बटन &#39;जाओ आइटम \&#39; या मात्रा मैन्युअल रूप से अद्यतन पर क्लिक करें."
 "To format columns, give column labels in the query.",", कॉलम प्रारूप क्वेरी में स्तंभ लेबल दे. करने के लिए"
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.","आगे एक दस्तावेज़ में कुछ मूल्यों के आधार पर अनुमति को प्रतिबंधित करने के लिए, &#39;स्थिति&#39; सेटिंग का उपयोग करें."
@@ -2953,7 +2975,6 @@
 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.,बिक्री और खरीद के दस्तावेजों के आधार पर उनके धारावाहिक नग में आइटम पर नज़र रखने के लिए. यह भी उत्पाद की वारंटी के विवरण को ट्रैक करने के लिए प्रयोग किया जाता है.
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,बैच ओपन स्कूल के साथ बिक्री और खरीद दस्तावेजों में आइटम्स ट्रैक <br> <b>पसंदीदा उद्योग: आदि रसायन</b>
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,बारकोड का उपयोग करके आइटम्स ट्रैक. आप आइटम के बारकोड स्कैनिंग द्वारा डिलिवरी नोट और बिक्री चालान में आइटम दर्ज करने में सक्षम हो जाएगा.
-"To update your HTML from attachment, click here","लगाव से अपने HTML को अद्यतन करने के लिए, यहाँ क्लिक करें"
 ToDo,ToDo
 Tools,उपकरण
 Top,शीर्ष
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),कुल टैक्स (कंपनी मुद्रा)
 Total Taxes and Charges,कुल कर और शुल्क
 Total Taxes and Charges (Company Currency),कुल करों और शुल्कों (कंपनी मुद्रा)
+Total Working Days In The Month,महीने में कुल कार्य दिन
 Total amount of invoices received from suppliers during the digest period,चालान की कुल राशि को पचाने की अवधि के दौरान आपूर्तिकर्ताओं से प्राप्त
 Total amount of invoices sent to the customer during the digest period,चालान की कुल राशि को पचाने की अवधि के दौरान ग्राहक को भेजा
-Total days in month,महीने में कुल दिनों
 Total in words,शब्दों में कुल
+Total production order qty for item,आइटम के लिए कुल उत्पादन आदेश मात्रा
 Totals,योग
 Track separate Income and Expense for product verticals or divisions.,अलग और उत्पाद कार्यक्षेत्र या विभाजन के लिए आय और खर्च हुए.
 Track this Delivery Note against any Project,किसी भी परियोजना के खिलाफ इस डिलिवरी नोट हुए
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,UOM रूपांतरण विस्तार
 UOM Conversion Details,UOM रूपांतरण विवरण
 UOM Conversion Factor,UOM रूपांतरण फैक्टर
+UOM Conversion Factor is mandatory,UOM रूपांतरण फैक्टर अनिवार्य है
 UOM Details,UOM विवरण
 UOM Name,UOM नाम
 UOM Replace Utility,UOM बदलें उपयोगिता
@@ -3044,6 +3067,7 @@
 Unread Messages,अपठित संदेशों
 Unscheduled,अनिर्धारित
 Unsubscribed,आपकी सदस्यता समाप्त कर दी
+Upcoming Events for Today,आज के लिए आगामी घटनाएँ
 Update,अद्यतन
 Update Clearance Date,अद्यतन क्लीयरेंस तिथि
 Update Field,फील्ड अद्यतन
@@ -3052,7 +3076,6 @@
 Update Series Number,अद्यतन सीरीज नंबर
 Update Stock,स्टॉक अद्यतन
 Update Stock should be checked.,अद्यतन स्टॉक की जाँच की जानी चाहिए.
-Update This Application,इस आवेदन की अद्यतन
 Update Value,मूल्य अद्यतन
 "Update allocated amount in the above table and then click ""Allocate"" button",उपरोक्त तालिका में आवंटित राशि का अद्यतन और फिर &quot;आवंटित&quot; बटन पर क्लिक करें
 Update bank payment dates with journals.,अद्यतन बैंक भुगतान पत्रिकाओं के साथ तिथियाँ.
@@ -3065,6 +3088,7 @@
 Upload HTML,HTML अपलोड
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,पुराने नाम और नया नाम:. दो कॉलम के साथ एक csv फ़ाइल अपलोड करें. अधिकतम 500 पंक्तियाँ.
 Upload a file,एक फ़ाइल अपलोड करें
+Upload and Import,अपलोड करें और आयात करें
 Upload attendance from a .csv file,. Csv फ़ाइल से उपस्थिति अपलोड करें
 Upload stock balance via csv.,Csv के माध्यम से शेयर संतुलन अपलोड करें.
 Uploading...,अपलोड हो रहा है ...
@@ -3078,7 +3102,6 @@
 User ID,प्रयोक्ता आईडी
 User Image,User Image
 User Name,यूज़र नेम
-User Properties,उपयोगकर्ता के गुण
 User Remark,उपयोगकर्ता के टिप्पणी
 User Remark will be added to Auto Remark,उपयोगकर्ता टिप्पणी ऑटो टिप्पणी करने के लिए जोड़ दिया जाएगा
 User Tags,उपयोगकर्ता के टैग
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,प्रयोक्ता को नष्ट करने की अनुमति नहीं है.
 UserRole,UserRole
 Username,प्रयोक्ता नाम
-Users,उपयोगकर्ता
 Users who can approve a specific employee's leave applications,एक विशिष्ट कर्मचारी की छुट्टी आवेदनों को स्वीकृत कर सकते हैं जो उपयोगकर्ता
 Users with this role are allowed to do / modify accounting entry before frozen date,इस भूमिका के साथ उपयोगकर्ता / जमे हुए तारीख से पहले लेखा प्रविष्टि को संशोधित करने के लिए अनुमति दी जाती है
 Utilities,उपयोगिताएँ
@@ -3116,6 +3138,7 @@
 Voucher No,कोई वाउचर
 Voucher Type,वाउचर प्रकार
 Voucher Type and Date,वाउचर का प्रकार और तिथि
+WIP Warehouse required before Submit,WIP के गोदाम सबमिट करने से पहले आवश्यक
 Waiting for Customer,ग्राहक के लिए प्रतीक्षा की जा रही है
 Walk In,में चलो
 Warehouse,गोदाम
@@ -3149,6 +3172,7 @@
 Website Settings,वेबसाइट सेटिंग
 Website Slideshow,वेबसाइट स्लाइड शो
 Website Slideshow Item,वेबसाइट स्लाइड शो आइटम
+Website User,वेबसाइट प्रयोक्ता
 Website Warehouse,वेबसाइट वेअरहाउस
 Wednesday,बुधवार
 Weekly,साप्ताहिक
@@ -3214,21 +3238,22 @@
 Yes,हां
 Yesterday,कल
 You are not authorized to do/modify back dated entries before ,आप पहले / दिनांक प्रविष्टियों पीठ को संशोधित करने के लिए अधिकृत नहीं हैं
-You can create more earning and deduction type from Setup --> HR,आप अधिक कमाई और सेटअप से कटौती प्रकार बना सकते हैं -&gt; मानव संसाधन
 You can enter any date manually,आप किसी भी तारीख को मैन्युअल रूप से दर्ज कर सकते हैं
 You can enter the minimum quantity of this item to be ordered.,आप इस मद की न्यूनतम मात्रा में करने के लिए आदेश दिया जा में प्रवेश कर सकते हैं.
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,आप नहीं दोनों डिलिवरी नोट दर्ज करें और बिक्री चालान सं \ किसी भी एक दर्ज करें. नहीं कर सकते
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,आप विभिन्न &#39;गुण&#39; उपयोगकर्ताओं को स्थापित करने के लिए मूलभूत मूल्यों को निर्धारित करने के लिए और अनुमति विभिन्न रूपों में इन गुणों के मूल्य के आधार पर नियमों को लागू कर सकते हैं.
 You can start by selecting backup frequency and \					granting access for sync,आप बैकअप आवृत्ति का चयन करके शुरू और सिंक के लिए \ देने का उपयोग कर सकते हैं
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,आप <a href='#Form/Customize Form'>प्रपत्र को अनुकूलित</a> करने के लिए खेतों पर स्तर सेट का उपयोग कर सकते हैं .
+You may need to update: ,आप अद्यतन करने की आवश्यकता हो सकती है:
 Your Customer's TAX registration numbers (if applicable) or any general information,अपने ग्राहक कर पंजीकरण संख्या (यदि लागू हो) या किसी भी सामान्य जानकारी
 "Your download is being built, this may take a few moments...","आपका डाउनलोड का निर्माण किया जा रहा है, इसमें कुछ समय लग सकता है ..."
-Your letter head content in HTML.,HTML में आपका पत्र सिर सामग्री.
+Your letter head content,अपने पत्र सिर सामग्री
 Your sales person who will contact the customer in future,अपनी बिक्री व्यक्ति जो भविष्य में ग्राहकों से संपर्क करेंगे
 Your sales person who will contact the lead in future,अपनी बिक्री व्यक्ति जो भविष्य में नेतृत्व संपर्क करेंगे
 Your sales person will get a reminder on this date to contact the customer,अपनी बिक्री व्यक्ति इस तिथि पर एक चेतावनी प्राप्त करने के लिए ग्राहकों से संपर्क करेंगे
 Your sales person will get a reminder on this date to contact the lead,अपनी बिक्री व्यक्ति इस तिथि पर एक चेतावनी प्राप्त करने के लिए नेतृत्व संपर्क करेंगे
 Your support email id - must be a valid email - this is where your emails will come!,आपका समर्थन ईमेल आईडी - एक मान्य ईमेल होना चाहिए - यह है जहाँ आपके ईमेल आ जाएगा!
+[Error],[त्रुटि]
 [Label]:[Field Type]/[Options]:[Width],[लेबल] [फील्ड प्रकार] / [विकल्प] [चौड़ाई]
 add your own CSS (careful!),अपने खुद के सीएसएस (careful!) जोड़ें
 adjust,को समायोजित
@@ -3430,6 +3455,7 @@
 volume-up,मात्रा
 warning-sign,चेतावनी संकेत
 website page link,वेबसाइट के पेज लिंक
+which is greater than sales order qty ,जो बिक्री आदेश मात्रा से अधिक है
 wrench,रिंच
 yyyy-mm-dd,yyyy-mm-dd
 zoom-in,ज़ूम
diff --git a/translations/hr.csv b/translations/hr.csv
index 74c7856..d60f85b 100644
--- a/translations/hr.csv
+++ b/translations/hr.csv
@@ -1,12 +1,18 @@
  (Half Day),(Poludnevni)
+ against sales order,protiv prodajnog naloga
  against same operation,protiv istog radu
  already marked,Već obilježena
  and year: ,i godina:
+ as it is stock Item or packing item,kao što je dionica artikla ili pakiranje stavku
  at warehouse: ,na skladištu:
  by Role ,prema ulozi
+ can not be made.,ne može biti.
+ can not be marked as a ledger as it has existing child,"Ne može biti označena kao knjigu, kao da ima postojeće dijete"
  cannot be 0,ne može biti 0
  cannot be deleted.,nije moguće izbrisati.
  does not belong to the company,ne pripadaju tvrtki
+ has already been submitted.,je već poslan.
+ has been freezed. ,je freezed.
  has been freezed. \				Only Accounts Manager can do transaction against this account,je freezed. \ Samo računi vlasnici mogu učiniti transakciju protiv tog računa
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item","je manje nego jednaka nuli u sustavu, \ stopa za vrednovanje je obvezna za tu stavku"
  is mandatory,je obavezno
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,Sada je zadana Fiskalna godina. \ Osvježite svoj preglednik za promjene stupiti na snagu.
  is present in one or many Active BOMs,prisutan je u jednom ili više aktivnih sastavnicama
  not active or does not exists in the system,Nije aktivan ili ne postoji u sustavu
+ not submitted,nije podnesen
  or the BOM is cancelled or inactive,ili BOM je otkazan ili neaktivne
  should be 'Yes'. As Item: ,trebao biti &#39;Da&#39;. Kao točke:
  should be same as that in ,bi trebao biti isti kao u
  was on leave on ,bio na dopustu na
+ will be ,biti
  will be over-billed against mentioned ,će biti više-naplaćeno protiv spomenuto
  will become ,će postati
 """Company History""",&quot;Povijest tvrtke&quot;
@@ -56,6 +64,7 @@
 15px,15px
 16px,16px
 2 days ago,Prije 2 dana
+: Duplicate row from same ,: Dvostruki red od istog
 : It is linked to other active BOM(s),: To je povezano s drugom aktivnom BOM (e)
 : Mandatory for a Recurring Invoice.,: Obvezni za Ponavljajući fakture.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">Za upravljati skupine kupaca, kliknite ovdje</a>"
@@ -102,6 +111,7 @@
 Account Id,ID računa
 Account Name,Naziv računa
 Account Type,Vrsta računa
+Account for this ,Račun za to
 Accounting,Računovodstvo
 Accounting Year.,Računovodstvo godina.
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Knjiženje zamrznuta do tog datuma, nitko ne može učiniti / mijenjati ulazak, osim uloge naveden u nastavku."
@@ -114,6 +124,7 @@
 Action,Akcija
 Active,Aktivan
 Active: Will extract emails from ,Aktivno: Hoće li izdvojiti e-pošte iz
+Activity,Djelatnost
 Activity Log,Aktivnost Prijava
 Activity Type,Aktivnost Tip
 Actual,Stvaran
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),Dodaj banner na licu mjesta. (Mali banneri su obično dobar)
 Add attachment,Dodaj privitak
 Add code as &lt;script&gt;,Dodaj kod kao &lt;script&gt;
-Add custom code to forms,Dodaj prilagođeni kod oblika
-Add fields to forms,Dodaj polja na obrascima
-Add headers for standard print formats,Dodaj zaglavlja za standardne formate ispisa
 Add new row,Dodaj novi redak
 Add or Deduct,Dodavanje ili Oduzmite
 Add rows to set annual budgets on Accounts.,Dodavanje redaka postaviti godišnje proračune na računima.
@@ -158,7 +166,6 @@
 Add to To Do,Dodaj u Raditi
 Add to To Do List of,Dodaj u napraviti popis od
 Add/Remove Recipients,Dodaj / Ukloni primatelja
-"Add/remove users, set roles, passwords etc","Dodavanje / uklanjanje korisnika, postaviti uloge, lozinke i sl."
 Additional Info,Dodatne informacije
 Address,Adresa
 Address & Contact,Adresa &amp; Kontakt
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,Adresa biti prikazana na Kontakt stranici
 Adds a custom field to a DocType,Dodaje prilagođeni polja DOCTYPE
 Adds a custom script (client or server) to a DocType,Dodaje prilagođeni scenarij (klijent ili poslužitelj) na DOCTYPE
-Administration,Uprava
 Advance Amount,Predujam Iznos
 Advance amount,Predujam iznos
 Advanced Scripting,Napredna Scripting
@@ -238,6 +244,7 @@
 Allow Users,Omogućiti korisnicima
 Allow on Submit,Dopusti na Submit
 Allow the following users to approve Leave Applications for block days.,Dopusti sljedeći korisnici odobriti ostavite aplikacije za blok dana.
+Allow user to edit Price List Rate in transactions,Dopustite korisniku da uredite Ocijenite cjeniku u prometu
 Allow user to login only after this hour (0-24),Dopustite korisniku da prijavite tek nakon tog vremena (0-24)
 Allow user to login only before this hour (0-24),Dopustite korisniku se prijaviti samo prije tog vremena (0-24)
 Allowance Percent,Dodatak posto
@@ -252,8 +259,6 @@
 Amount >=,Iznos&gt; =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","Ikona datoteke s nastavkom. Ico. Treba biti 16 x 16 px. Generirano pomoću favicon generator. [ <a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a> ]"
 Analytics,Analitika
-Annual Cost To Company,Godišnji trošak za tvrtke
-Annual Cost To Company can not be less than 12 months of Total Earning,Godišnji trošak za tvrtke ne mogu biti manje od 12 mjeseci od ukupnog poslovanja
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,Drugi strukture plaća &#39;% s&#39; je aktivna zaposlenika &#39;% s&#39;. Provjerite svoj status &#39;Neaktivan&#39; za nastavak.
 "Any other comments, noteworthy effort that should go in the records.","Svi ostali komentari, značajan napor da bi trebao ići u evidenciji."
 Applicable Holiday List,Primjenjivo odmor Popis
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,Nanesite / Odobri lišće
 Apply Shipping Rule,Primijeni pravilo otprema
 Apply Taxes and Charges Master,Nanesite poreze i troškove Master
-Apply latest updates and patches to this app,Nanesite najnovija ažuriranja i zakrpe za ovaj app
 Appraisal,Procjena
 Appraisal Goal,Procjena gol
 Appraisal Goals,Ocjenjivanje Golovi
@@ -300,7 +304,6 @@
 Attached To DocType,U prilogu vrstu dokumenata
 Attached To Name,U prilogu naziv
 Attachment,Vezanost
-Attachment removed. You may need to update: ,Prilog uklonjen. Možda ćete morati ažurirati:
 Attachments,Privitci
 Attempted to Contact,Pokušaj Kontakt
 Attendance,Pohađanje
@@ -422,7 +425,6 @@
 Brand Name,Brand Name
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","Brand je ono što se pojavljuje na gornjem desnom kutu alatne trake. Ako je to slika, pobrinite ithas transparentan pozadini i koristiti &lt;img /&gt; oznaku. Držite veličinu 200px x 30px"
 Brand master.,Marka majstor.
-Branding and Printing,Branding i ispis
 Brands,Marke
 Breakdown,Slom
 Budget,Budžet
@@ -440,6 +442,7 @@
 Build Sitemap,Izgradite Sitemap
 Bulk Email,Bulk Email
 Bulk Email records.,Bulk Email Records.
+Bummer! There are more holidays than working days this month.,Sori! Postoji više od blagdana radnih dana ovog mjeseca.
 Bundle items at time of sale.,Bala stavke na vrijeme prodaje.
 Button,Dugme
 Buyer of Goods and Services.,Kupac robe i usluga.
@@ -490,7 +493,6 @@
 Center,Centar
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.","Određene dokumente ne treba mijenjati jednom finalu, kao i račun za primjer. Konačno stanje za takvim dokumentima se zove <b>Postavio.</b> Možete ograničiti koje uloge mogu Submit."
 Change UOM for an Item.,Promjena UOM za predmet.
-"Change entry properties (hide fields, make mandatory etc)","Promjena ulazne svojstva (skrivanje polja, čine obaveznu itd.)"
 Change the starting / current sequence number of an existing series.,Promjena polaznu / tekući redni broj postojeće serije.
 Channel Partner,Channel Partner
 Charge,Naboj
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Označite ovo ako želite prisiliti korisniku odabir seriju prije spremanja. Tu će biti zadana ako to provjerili.
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,"Provjerite to, ako želite poslati e-mail, jer to samo ID (u slučaju ograničenja po vašem e-mail usluga)."
 Check this if you want to show in website,Označite ovo ako želite pokazati u web
+Check this to disallow fractions. (for Nos),Provjerite to da ne dopušta frakcija. (Za br)
 Check this to make this the default letter head in all prints,Provjerite to napraviti ovu glavu zadani slovo u svim otisaka
 Check this to pull emails from your mailbox,Provjerite to povući e-pošte iz poštanskog sandučića
 Check to activate,Provjerite za aktiviranje
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,Tvrtka registracijski brojevi za svoju referencu. Primjer: PDV registracijski brojevi i sl.
 Company registration numbers for your reference. Tax numbers etc.,Tvrtka registracijski brojevi za svoju referencu. Porezni brojevi itd.
 Complaint,Prigovor
+Complete,Dovršiti
 Complete By,Kompletan Do
 Completed,Dovršen
 Completed Qty,Završen Kol
@@ -626,12 +630,12 @@
 Cost Center Name,Troška Name
 Cost Center is mandatory for item: ,Troška je obavezan za stavke:
 Cost Center must be specified for PL Account: ,Troška mora biti navedeno za PL račun:
-Cost to Company,Troškovi Društva
 Costing,Koštanje
 Country,Zemlja
 Country Name,Država Ime
 Create,Stvoriti
 Create Bank Voucher for the total salary paid for the above selected criteria,Stvaranje Bank bon za ukupne plaće isplaćene za gore odabranih kriterija
+Create Material Requests,Stvaranje materijalni zahtijevi
 Create Production Orders,Stvaranje radne naloge
 Create Receiver List,Stvaranje Receiver popis
 Create Salary Slip,Stvaranje plaće Slip
@@ -680,6 +684,7 @@
 Custom Startup Code,Prilagođena Pokretanje Šifra
 Custom?,Prilagođena?
 Customer,Kupac
+Customer (Receivable) Account,Kupac (Potraživanja) račun
 Customer / Item Name,Kupac / Stavka Ime
 Customer Account,Kupac račun
 Customer Account Head,Kupac račun Head
@@ -688,6 +693,8 @@
 Customer Code,Kupac Šifra
 Customer Codes,Kupac Kodovi
 Customer Details,Korisnički podaci
+Customer Discount,Kupac Popust
+Customer Discounts,Kupac Popusti
 Customer Feedback,Kupac Ocjena
 Customer Group,Kupac Grupa
 Customer Group Name,Kupac Grupa Ime
@@ -717,11 +724,10 @@
 DN,DN
 DN Detail,DN Detalj
 Daily,Svakodnevno
+Daily Event Digest is sent for Calendar Events where reminders are set.,"Dnevni događaji Digest je poslan za kalendar događanja, gdje su postavljene podsjetnici."
 Daily Time Log Summary,Dnevno vrijeme Log Profila
-"Daily, weekly, monthly email Digests","Dnevno, tjedno, mjesečno e Razgradni"
 Danger,Opasnost
 Data,Podaci
-Data Import,Uvoz podataka
 Data missing in table,Podaci koji nedostaju u tablici
 Database,Baza podataka
 Database Folder ID,Baza mapa ID
@@ -777,6 +783,7 @@
 Default Settings,Tvorničke postavke
 Default Source Warehouse,Zadani Izvor galerija
 Default Stock UOM,Zadani kataloški UOM
+Default Supplier,Default Dobavljač
 Default Supplier Type,Zadani Dobavljač Tip
 Default Target Warehouse,Zadani Ciljana galerija
 Default Territory,Zadani Regija
@@ -795,6 +802,7 @@
 Delete,Izbrisati
 Delete Row,Izbriši redak
 Delivered,Isporučena
+Delivered Items To Be Billed,Isporučena Proizvodi se naplaćuje
 Delivered Qty,Isporučena Kol
 Delivery Address,Dostava Adresa
 Delivery Date,Dostava Datum
@@ -813,7 +821,6 @@
 Delivery Time,Vrijeme isporuke
 Delivery To,Dostava na
 Department,Odsjek
-Depend on LWP,Ovise o lwp
 Depends On,Ovisi o
 Depends on LWP,Ovisi o lwp
 Descending,Spuštanje
@@ -864,6 +871,7 @@
 DocType or Field,DOCTYPE ili polja
 Document,Dokument
 Document Description,Dokument Opis
+Document Numbering Series,Numeriranje Serija
 Document Status transition from ,Dokument Status prijelaz iz
 Document Type,Document Type
 Document is only editable by users of role,Dokument je samo uređivati ​​korisnika ulozi
@@ -934,7 +942,7 @@
 Employee Leave Balance,Zaposlenik napuste balans
 Employee Name,Zaposlenik Ime
 Employee Number,Zaposlenik Broj
-Employee Records to be created by ,Zaposlenik Records bi se stvorili
+Employee Records to be created by,Zaposlenik Records bi se stvorili
 Employee Setup,Zaposlenik konfiguracija
 Employee Type,Zaposlenik Tip
 Employee grades,Zaposlenih razreda
@@ -944,7 +952,6 @@
 Employees Email Id,Zaposlenici Email ID
 Employment Details,Zapošljavanje Detalji
 Employment Type,Zapošljavanje Tip
-Enable / disable currencies.,Omogućite / onemogućite valute.
 Enable Auto Inventory Accounting,Omogućite Računovodstvo zaliha Auto
 Enable Shopping Cart,Omogućite Košarica
 Enabled,Omogućeno
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,Pogreška: Dokument je promijenjen nakon što ste ga otvorili
 Estimated Material Cost,Procjena troškova materijala
 Event,Događaj
+Event End must be after Start,Događaj Kraj mora biti nakon početnog
 Event Individuals,Događaj Pojedinci
 Event Role,Događaj Uloga
 Event Roles,Događaj Uloge
 Event Type,Vrsta događaja
 Event User,Događaj Upute
+Events In Today's Calendar,Događanja u današnjem kalendaru
+Every Day,Svaki dan
+Every Month,Svaki mjesec
+Every Week,Svaki tjedan
+Every Year,Svaki Godina
 Everyone can read,Svatko može pročitati
 Example:,Primjer:
 Exchange Rate,Tečaj
@@ -1019,8 +1032,6 @@
 Exports,Izvoz
 External,Vanjski
 Extract Emails,Ekstrakt e-pošte
-Extract Job Applicant from jobs email id e.g. jobs@example.com,Ekstrakt posao podnositelja zahtjeva iz radnih email id npr. jobs@example.com
-Extract Leads from sales email id e.g. sales@example.com,Ekstrakt vodi od prodaje email id npr. sales@example.com
 FCFS Rate,FCFS Stopa
 FIFO,FIFO
 Facebook Share,Facebook Share
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Polja odvojene zarezom (,) će biti uključen u <br /> <b>Traži po</b> popisu Pretraživanje dijaloškom okviru"
 File,File
 File Data,File Podaci
-File Manager,File Manager
 File Name,File Name
 File Size,Veličina
 File URL,URL datoteke
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,Konačna potvrda Datum
 Financial Analytics,Financijski Analytics
 Financial Statements,Financijska izvješća
-Financial Years for books of accounts,Financijska godina za knjigama računa
 First Name,Ime
 First Responded On,Prvo Odgovorili Na
 Fiscal Year,Fiskalna godina
@@ -1090,6 +1099,7 @@
 For Sales Invoice,Za prodaju fakture
 For Server Side Print Formats,Za Server formati stranom za ispis
 For Territory,Za Territory
+For UOM,Za UOM
 For Warehouse,Za galeriju
 "For comparative filters, start with","Za komparativne filtera, početi s"
 "For e.g. 2012, 2012-13","Za npr. 2012, 2012-13"
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,Zamrzavanje Stock Unosi
 Friday,Petak
 From,Od
+From Bill of Materials,Od Bill of Materials
 From Company,Iz Društva
 From Currency,Od novca
 From Currency and To Currency cannot be same,Od valute i valuta ne mogu biti isti
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,Od datuma mora biti prije do danas
 From Delivery Note,Od otpremnici
 From Employee,Od zaposlenika
+From Lead,Od Olovo
 From PR Date,Iz PR Datum
 From Package No.,Iz paketa broj
 From Purchase Order,Od narudžbenice
@@ -1150,8 +1162,8 @@
 Get Current Stock,Nabavite trenutne zalihe
 Get From ,Nabavite Od
 Get Items,Nabavite artikle
+Get Items From Sales Orders,Get artikle iz narudžbe
 Get Last Purchase Rate,Nabavite Zadnji Ocijeni Kupnja
-Get Latest Updates,Nabavite najnovija ažuriranja
 Get Non Reconciled Entries,Get Non pomirio tekstova
 Get Outstanding Invoices,Nabavite neplaćene račune
 Get Purchase Receipt,Get Kupnja Račun
@@ -1161,7 +1173,6 @@
 Get Template,Nabavite predloška
 Get Terms and Conditions,Nabavite Uvjeti i pravila
 Get Weekly Off Dates,Nabavite Tjedno Off datumi
-Get a list of errors encountered by the Scheduler,Nabavite popis pogrešaka s kojima se susreće Planer
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Nabavite stopa za vrednovanje i dostupni zaliha na izvor / cilj skladištu na spomenuti datum knjiženja radno vrijeme. Ako serijaliziranom stavku, molimo pritisnite ovu tipku nakon ulaska serijskih brojeva."
 Give additional details about the indent.,Daj dodatne pojedinosti o alineje.
 Global Defaults,Globalni Zadano
@@ -1193,9 +1204,9 @@
 Group or Ledger,Grupa ili knjiga
 Groups,Grupe
 HR,HR
+HR Settings,HR Postavke
 HTML,HTML
 HTML / Banner that will show on the top of product list.,HTML / bannera koji će se prikazivati ​​na vrhu liste proizvoda.
-"HTML print formats for quotes, invoices etc","HTML ispis formata za citati, fakture, itd."
 Half Day,Pola dana
 Half Yearly,Pola Godišnji
 Half-yearly,Polugodišnje
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children","Ovdje možete održavati obiteljske pojedinosti kao što su ime i okupacije roditelja, supružnika i djecu"
 "Here you can maintain height, weight, allergies, medical concerns etc","Ovdje možete održavati visina, težina, alergije, medicinske brige itd."
 Hey there! You need to put at least one item in \				the item table.,Hej tamo! Vi trebate da stavite barem jednu stavku u \ tablicu artikala.
+Hey! All these items have already been invoiced.,Hej! Svi ti predmeti su već fakturirana.
 Hey! There should remain at least one System Manager,Hej! Tu bi trebao ostati barem jedan Manager sustav
 Hidden,Skriven
 Hide Actions,Sakrij Akcije
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults","Kako bi se to valuta biti formatiran? Ako nije postavljeno, koristit će zadane postavke sustava"
 How to upload,Kako prenijeti
 Hrvatski,Hrvatski
+Human Resources,Ljudski resursi
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,Ura! Dan (e) na koje se prijavljuje za ostaviti \ podudara s odmora (s). Vi ne trebate podnijeti zahtjev za dopust.
 I,Ja
 ID (name) of the entity whose property is to be set,ID (ime) subjekta čiji je objekt se postaviti
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,Ako Godišnji proračun Exceeded
 "If a User does not have access at Level 0, then higher levels are meaningless","Ako korisnik ne imati pristup na razini 0, onda je viša razina su besmislene"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","Ako je označeno, BOM za pod-zbor stavke će biti uzeti u obzir za dobivanje sirovine. Inače, sve pod-montaža stavke će biti tretirani kao sirovinu."
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Ako je označeno, Ukupan broj. radnih dana će uključiti odmor, a to će smanjiti vrijednost plaća po danu"
 "If checked, all other workflows become inactive.","Ako je označeno, svi ostali tijekovi postaju neaktivne."
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","Ako je označeno, e-mail s priloženom HTML formatu će biti dodan u dijelu u tijelo, kao i privrženosti. Za samo poslati kao privitak, isključite ovu."
 "If checked, the Home page will be the default Item Group for the website.","Ako je označeno, stranica Home će biti zadana Grupa za web stranice predmeta."
@@ -1305,7 +1319,6 @@
 Import,Uvoz
 Import Attendance,Uvoz posjećenost
 Import Log,Uvoz Prijavite
-Import data from spreadsheet (csv) files,Uvoz podataka iz proračunske tablice (CSV) datoteka
 Important dates and commitments in your project life cycle,Važni datumi i obveze u svoj ciklus projekta života
 Imports,Uvoz
 In Dialog,U Dialog
@@ -1314,6 +1327,7 @@
 In List View,U prikazu popisa
 In Process,U procesu
 In Report Filter,U Prijavi Filter
+In Row,U nizu
 In Store,U trgovini
 In Words,U riječi
 In Words (Company Currency),U riječi (Društvo valuta)
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","U dozvole Manager, kliknite na gumb u &#39;hotela&#39; stupcu za ulogu želite ograničiti."
 Incentives,Poticaji
 Incharge Name,Incharge Name
+Include holidays in Total no. of Working Days,Uključi odmor u ukupnom. radnih dana
 Income / Expense,Prihodi / rashodi
 Income Account,Prihodi račun
 Income Booked,Prihodi Rezervirani
@@ -1347,6 +1362,7 @@
 Industry Type,Industrija Tip
 Info,Info
 Insert After,Umetni Nakon
+Insert Below,Umetnite Ispod
 Insert Code,Umetnite kod
 Insert Row,Umetnite Row
 Insert Style,Umetni stil
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,Nevažeći Otpremnica. Otpremnica mora postojati i treba biti u stanju nacrta. Molimo ispraviti i pokušajte ponovno.
 Invalid Email,Nevažeći Email
 Invalid Email Address,Neispravan e-mail adresu
+Invalid Item or Warehouse Data,Nevalja ili skladište podataka
 Invalid Leave Approver,Nevažeći Ostavite Odobritelj
 Inventory,Inventar
 Inverse,Inverzan
@@ -1511,7 +1528,6 @@
 Lead Lost,Olovo Lost
 Lead Name,Olovo Ime
 Lead Owner,Olovo Vlasnik
-Lead Ref,Olovo Ref.
 Lead Source,Olovo Source
 Lead Status,Olovo Status
 Lead Time Date,Olovo Time Date
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,Ostavite prazno ako smatra za sve oznake
 Leave blank if considered for all employee types,Ostavite prazno ako smatra za sve tipove zaposlenika
 Leave blank if considered for all grades,Ostavite prazno ako smatra za sve razrede
+Leave blank if you have not decided the end date.,Ostavite prazno ako niste odlučili datum završetka.
 Leave by,Ostavite po
 "Leave can be approved by users with Role, ""Leave Approver""","Ostavite može biti odobren od strane korisnika s uloge, &quot;Ostavite odobravatelju&quot;"
 Ledger,Glavna knjiga
@@ -1553,7 +1570,6 @@
 Letter Head,Pismo Head
 Letter Head Image,Pismo Head slike
 Letter Head Name,Pismo Head Ime
-Letter heads for print,Pismo glave za ispis
 Level,Nivo
 "Level 0 is for document level permissions, higher levels for field level permissions.","Razina 0 je za dokument na razini dozvole, višim razinama za terenske razine dozvola."
 Lft,LFT
@@ -1563,13 +1579,11 @@
 Linked With,Povezan s
 List,Popis
 List items that form the package.,Popis stavki koje čine paket.
-List of companies (not customers / suppliers),Popis tvrtki (ne kupci / dobavljači)
 List of holidays.,Popis blagdana.
 List of patches executed,Popis zakrpe izvršenih
 List of records in which this document is linked,Popis zapisa u kojoj je ovaj dokument povezanih
 List of users who can edit a particular Note,Popis korisnika koji mogu urediti posebnu napomenu
 List this Item in multiple groups on the website.,Popis ovaj predmet u više grupa na web stranici.
-"List, delete uploaded files.","Navedite, brisanje učitane datoteke."
 Live Chat,Live Chat
 Load Print View on opening of an existing form,Učitaj Print Pogled na otvaranju postojećem obliku
 Loading,Utovar
@@ -1596,6 +1610,7 @@
 Mail Server,Mail Server
 Main Reports,Glavni Izvješća
 Main Section,Glavni Odjeljak
+Maintain Same Rate Throughout Sales Cycle,Održavati ista stopa Tijekom cijele prodajni ciklus
 Maintain same rate throughout purchase cycle,Održavanje istu stopu tijekom kupnje ciklusa
 Maintenance,Održavanje
 Maintenance Date,Održavanje Datum
@@ -1616,7 +1631,6 @@
 Make a new,Napravite novi
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,Pobrinite se da su transakcije želite ograničiti imati vezu polje &#39;teritorij&#39; koji mapira u &#39;teritorij&#39; gospodara.
 Male,Muški
-Manage Numbering Series,Upravljanje numeriranje serija
 Manage cost of operations,Upravljanje troškove poslovanja
 Manage exchange rates for currency conversion,Upravljanje tečajeve za pretvorbu valuta
 Mandatory,Obavezan
@@ -1651,10 +1665,10 @@
 Material Request No,Materijal Zahtjev Ne
 Material Request Type,Materijal Zahtjev Tip
 Material Request used to make this Stock Entry,Materijal Zahtjev se koristi da bi se ova Stock unos
+Material Requirement,Materijal Zahtjev
 Material Transfer,Materijal transfera
 Materials,Materijali
 Materials Required (Exploded),Materijali Obavezno (eksplodirala)
-Materials Requirement Planning (MRP),Materijali Zahtjev za planiranje (MRP)
 Max 500 rows only.,Max 500 redaka jedini.
 Max Attachments,Max Privitci
 Max Days Leave Allowed,Max Dani Ostavite dopuštenih
@@ -1699,6 +1713,7 @@
 Month,Mjesec
 Monthly,Mjesečno
 Monthly Attendance Sheet,Mjesečna posjećenost list
+Monthly Earning & Deduction,Mjesečna zarada &amp; Odbitak
 Monthly Salary Register,Mjesečna plaća Registracija
 Monthly salary statement.,Mjesečna plaća izjava.
 Monthly salary template.,Mjesečna plaća predložak.
@@ -1711,7 +1726,9 @@
 Mr,G.
 Ms,Gospođa
 Multiple Item Prices,Više Stavka Cijene
+Multiple root nodes not allowed.,Više korijen čvorovi nisu dopušteni.
 Mupltiple Item prices.,Mupltiple Stavka cijene.
+Must be Whole Number,Mora biti cijeli broj
 Must have report permission to access this report.,Mora imati izvješće dozvolu za pristup ovom izvješću.
 Must specify a Query to run,Mora se odrediti upita za pokretanje
 My Settings,Moje postavke
@@ -1737,7 +1754,6 @@
 Net Weight,Neto težina
 Net Weight UOM,Težina UOM
 Net Weight of each Item,Težina svake stavke
-Net pay can not be greater than 1/12th of Annual Cost To Company,Neto plaća ne može biti veći od 1/12th godišnjeg trošak za tvrtke
 Net pay can not be negative,Neto plaća ne može biti negativan
 Never,Nikad
 New,Novi
@@ -1795,6 +1811,7 @@
 No of Sent SMS,Ne poslanih SMS
 No of Visits,Bez pregleda
 No one,Niko
+No permission to write / remove.,Nema dozvole za pisanje / uklanjanje.
 No record found,Ne rekord naći
 No records tagged.,Nema zapisa tagged.
 No salary slip found for month: ,Bez plaće slip naći za mjesec dana:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,Naručeni Proizvodi se dostavljaju
 Ordered Quantity,Količina Ž
 Orders released for production.,Narudžbe objavljen za proizvodnju.
-Organization,Organizacija
 Organization Profile,Organizacija Profil
 Original Message,Izvorni Poruka
 Other,Drugi
 Other Details,Ostali podaci
 Out,Van
-Out going mail server and support ticket mailbox,Od odlaska mail server i podršku ulaznica spremnik
 Out of AMC,Od AMC
 Out of Warranty,Od jamstvo
 Outgoing,Društven
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),POP3 mail server (npr. pop.gmail.com)
 POP3 server e.g. (pop.gmail.com),POP3 poslužitelj npr. (pop.gmail.com)
 POS Setting,POS Podešavanje
+POS View,POS Pogledaj
 PR Detail,PR Detalj
 PRO,PRO
 PS,PS
@@ -1951,10 +1967,10 @@
 Participants,Sudionici
 Partly Billed,Djelomično Naplaćeno
 Partly Delivered,Djelomično Isporučeno
-Partner,Partner
 Partner Target Detail,Partner Ciljana Detalj
 Partner Type,Partner Tip
 Partner's Website,Web stranica partnera
+Passive,Pasivan
 Passport Number,Putovnica Broj
 Password,Lozinka
 Password Expires in (days),Lozinka Istječe (dana)
@@ -1964,12 +1980,12 @@
 Payables,Obveze
 Payables Group,Obveze Grupa
 Payment Collection With Ageing,Plaćanje Collection S Starenje
+Payment Days,Plaćanja Dana
 Payment Entries,Plaćanja upisi
 Payment Entry has been modified after you pulled it. 			Please pull it again.,Plaćanje Stupanje je izmijenjen nakon što ga je izvukao. Molimo povucite ga opet.
 Payment Made With Ageing,Uplaćeno S Starenje
 Payment Reconciliation,Plaćanje pomirenje
 Payment Terms,Uvjeti plaćanja
-Payment days,Plaćanja dana
 Payment to Invoice Matching Tool,Plaćanje fakture podudaranje alat
 Payment to Invoice Matching Tool Detail,Plaćanje fakture podudaranje alat Detalj
 Payments,Plaćanja
@@ -1984,6 +2000,7 @@
 Percent,Postotak
 Percent Complete,Postotak Cijela
 Percentage Allocation,Postotak Raspodjela
+Percentage Allocation should be equal to ,Postotak Raspodjela treba biti jednaka
 Percentage variation in quantity to be allowed while receiving or delivering this item.,Postotak varijacije u količini biti dopušteno dok prima ili isporuku ovu stavku.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,Postotak koju smiju primiti ili isporučiti više od naručene količine. Na primjer: Ako ste naručili 100 jedinica. i tvoj ispravak je 10% onda se smiju primati 110 jedinica.
 Performance appraisal.,Ocjenjivanje.
@@ -2026,19 +2043,24 @@
 Please check,Molimo provjerite
 Please enter Default Unit of Measure,Unesite Zadana jedinica mjere
 Please enter Delivery Note No or Sales Invoice No to proceed,Unesite otpremnica br ili prodaja Račun br postupiti
+Please enter Employee Number,Unesite broj zaposlenika
 Please enter Expense Account,Unesite trošak računa
 Please enter Expense/Adjustment Account,Unesite Rashodi / Prilagodba račun
 Please enter Purchase Receipt No to proceed,Unesite kupiti primitka No za nastavak
+Please enter Reserved Warehouse for item ,Unesite Rezervirano skladište za stavku
 Please enter valid,Unesite vrijede
 Please enter valid ,Unesite vrijede
 Please install dropbox python module,Molimo instalirajte Dropbox piton modul
 Please make sure that there are no empty columns in the file.,Molimo provjerite da nema praznih stupaca u datoteci.
 Please mention default value for ',Molimo spomenuti zadanu vrijednost za &#39;
+Please reduce qty.,Molimo smanjiti Qty.
 Please refresh to get the latest document.,Osvježite se dobiti najnovije dokument.
 Please save the Newsletter before sending.,Molimo spremite Newsletter prije slanja.
 Please select Bank Account,Odaberite bankovni račun
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Molimo odaberite prenositi ako želite uključiti prethodnoj fiskalnoj godini je ravnoteža ostavlja na ovoj fiskalnoj godini
 Please select Date on which you want to run the report,Molimo odaberite datum na koji želite pokrenuti izvješće
+Please select Naming Neries,Molimo odaberite Imenovanje Neries
+Please select Price List,Molimo odaberite Cjenik
 Please select Time Logs.,Molimo odaberite vrijeme Evidencije.
 Please select a,Molimo odaberite
 Please select a csv file,Odaberite CSV datoteku
@@ -2051,10 +2073,12 @@
 Please select: ,Molimo odaberite:
 Please set Dropbox access keys in,Molimo postavite Dropbox pristupne ključeve
 Please set Google Drive access keys in,Molimo postavite Google Drive pristupne tipke u
+Please setup Employee Naming System in Human Resource > HR Settings,Molimo postavljanje zaposlenika sustav imenovanja u ljudskim resursima&gt; HR Postavke
 Please specify,Navedite
 Please specify Company,Navedite tvrtke
 Please specify Company to proceed,Navedite Tvrtka postupiti
 Please specify Default Currency in Company Master \			and Global Defaults,Navedite Default valutu u trgovačkim društvima Master \ i Global defaultno
+Please specify a,Navedite
 Please specify a Price List which is valid for Territory,Navedite cjenik koji vrijedi za teritoriju
 Please specify a valid,Navedite važeći
 Please specify a valid 'From Case No.',Navedite važeću &#39;iz Predmet br&#39;
@@ -2070,7 +2094,7 @@
 Posts,Postovi
 Potential Sales Deal,Potencijal Prodaja Deal
 Potential opportunities for selling.,Potencijalni mogućnosti za prodaju.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","Precizna za Float polja (količina, popusti, postoci itd.) samo za prikaz. Pluta i dalje će biti izračunata do šest decimala."
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","Precision za plutaju polja (količine, popusti, postoci i sl.). Pluta će se zaokružuje na navedenim decimala. Default = 3"
 Preferred Billing Address,Željena adresa za naplatu
 Preferred Shipping Address,Željena Dostava Adresa
 Prefix,Prefiks
@@ -2081,7 +2105,6 @@
 Previous Work Experience,Radnog iskustva
 Price,Cijena
 Price List,Cjenik
-Price List Country,Cjenik Zemlja
 Price List Currency,Cjenik valuta
 Price List Currency Conversion Rate,Cjenik valuta pretvorbe Stopa
 Price List Exchange Rate,Cjenik tečajna
@@ -2089,6 +2112,7 @@
 Price List Name,Cjenik Ime
 Price List Rate,Cjenik Stopa
 Price List Rate (Company Currency),Cjenik stopa (Društvo valuta)
+Price List for Costing,Cjenik za obračun troškova
 Price Lists and Rates,Cjenike i cijene
 Primary,Osnovni
 Print Format,Ispis formata
@@ -2107,6 +2131,7 @@
 Produced Quantity,Proizveden Količina
 Product Enquiry,Na upit
 Production Order,Proizvodnja Red
+Production Orders,Nalozi
 Production Plan Item,Proizvodnja plan artikla
 Production Plan Items,Plan proizvodnje Proizvodi
 Production Plan Sales Order,Proizvodnja plan prodajnog naloga
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,Projekt mudar Stock Praćenje
 Projected Qty,Predviđen Kol
 Projects,Projekti
-Prompt email sending to customers and suppliers,Brz e-mail slanje kupcima i dobavljačima
 Prompt for Email on Submission of,Pitaj za e-poštu na podnošenje
 Properties,Nekretnine
 Property,Vlasništvo
@@ -2147,7 +2171,6 @@
 Published On,Objavljeno Dana
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,"Povucite e-pošte iz mape Primljeno, te ih priložiti kao Communication zapisa (za poznate kontakte)."
 Pull Payment Entries,Povucite plaćanja tekstova
-Pull items from Sales Order mentioned in the above table.,Povucite stavke iz prodaje Reda navedene u gornjoj tablici.
 Pull sales orders (pending to deliver) based on the above criteria,Povucite prodajne naloge (na čekanju za isporuku) na temelju navedenih kriterija
 Purchase,Kupiti
 Purchase Analytics,Kupnja Analytics
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,Količina je već proizvedeni
 Quantity and Rate,Količina i stopa
 Quantity and Warehouse,Količina i skladišta
+Quantity cannot be a fraction.,Količina ne može biti dio.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Količina predmeta dobije nakon proizvodnju / pakiranje od navedenih količina sirovina
 Quantity should be equal to Manufacturing Quantity. ,Količina trebala biti jednaka količina proizvodnju.
 Quarter,Četvrtina
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,Citat Izgubili razlog
 Quotation Message,Citat Poruka
 Quotation Sent,Citat Sent
+Quotation Series,Ponuda Serija
 Quotation To,Ponuda za
 Quotation Trend,Citat Trend
 Quotations received from Suppliers.,Citati dobio od dobavljače.
 Quotes to Leads or Customers.,Citati na vodi ili kupaca.
-Raise Material Request,Podignite Materijal Zahtjev
 Raise Material Request when stock reaches re-order level,Podignite Materijal Zahtjev kad dionica dosegne ponovno poredak razinu
-Raise Production Order,Podignite proizvodnom nalogu
 Raised By,Povišena Do
 Raised By (Email),Povišena Do (e)
 Random,Slučajan
@@ -2280,6 +2303,7 @@
 Receivables / Payables,Potraživanja / obveze
 Receivables Group,Potraživanja Grupa
 Received Date,Datum pozicija
+Received Items To Be Billed,Primljeni Proizvodi se naplaćuje
 Received Qty,Pozicija Kol
 Received and Accepted,Primljeni i prihvaćeni
 Receiver List,Prijemnik Popis
@@ -2293,6 +2317,8 @@
 Recurring Id,Ponavljajući Id
 Recurring Invoice,Ponavljajući Račun
 Recurring Type,Ponavljajući Tip
+Reduce Deduction for Leave Without Pay (LWP),Smanjite odbitak za ostaviti bez plaća (lwp)
+Reduce Earning for Leave Without Pay (LWP),Smanjenje plaća za ostaviti bez plaće (lwp)
 Ref Code,Ref. Šifra
 Ref Date is Mandatory if Ref Number is specified,Ref. Datum obvezni ako Ref. broj je navedeno
 Ref DocType,Ref. DOCTYPE
@@ -2302,6 +2328,8 @@
 Ref Type,Ref. Tip
 Reference,Upućivanje
 Reference Date,Referentni datum
+Reference DocName,Referentna DocName
+Reference DocType,Referentna DOCTYPEhtml
 Reference Name,Referenca Ime
 Reference Number,Referentni broj
 Reference Type,Referentna Tip
@@ -2322,10 +2350,12 @@
 Remove Bookmark,Uklonite Bookmark
 Rename Log,Preimenovanje Prijavite
 Rename Tool,Preimenovanje alat
-Rename multiple items in one go,Preimenovanje više stavki u jednom potezu
 Rename...,Promjena naziva ...
 Rented,Iznajmljuje
+Repeat On,Ponovite Na
+Repeat Till,Ponovite Do
 Repeat on Day of Month,Ponovite na dan u mjesecu
+Repeat this Event,Ponovite ovaj događaj
 Replace,Zamijeniti
 Replace Item / BOM in all BOMs,Zamijenite predmet / BOM u svim sastavnicama
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Zamijenite određeni BOM u svim drugim sastavnicama gdje se koriste. To će zamijeniti staru vezu BOM, ažurirati troškove i regenerirati &quot;BOM eksploziju predmeta&quot; stol kao i po novom BOM"
@@ -2358,13 +2388,14 @@
 Reseller,Prodavač
 Reserved Quantity,Rezervirano Količina
 Reserved Warehouse,Rezervirano galerija
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,Rezervirano Warehouse u prodajni nalog / skladišta gotovih proizvoda
+Reserved Warehouse is missing in Sales Order,Rezervirano Warehouse nedostaje u prodajni nalog
 Resignation Letter Date,Ostavka Pismo Datum
 Resolution,Rezolucija
 Resolution Date,Rezolucija Datum
 Resolution Details,Rezolucija o Brodu
 Resolved By,Riješen Do
 Restrict IP,Zabraniti IP
-Restrict submission rights based on amount,Zabraniti podnošenje prava na temelju iznosa
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),Zabraniti korisnika iz ove IP adrese samo. Višestruki IP adrese može biti dodan odvajajući zarezima. Također prihvaća djelomične IP adrese kao što su (111.111.111)
 Restricting By User,Ograničavanje strane korisnika
 Retail,Maloprodaja
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,Plaća Struktura Odbitak
 Salary Structure Earning,Plaća Struktura Zarada
 Salary Structure Earnings,Plaća Struktura Zarada
+Salary breakup based on Earning and Deduction.,Plaća raspada temelju zarađivati ​​i odbitka.
 Salary components.,Plaća komponente.
 Sales,Prodajni
 Sales Analytics,Prodaja Analitika
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),Prodaja Osoba Target varijance (točka Group-Wise)
 Sales Person Targets,Prodaje osobi Mete
 Sales Person-wise Transaction Summary,Prodaja Osobne mudar Transakcija Sažetak
-Sales Rate,Prodaja Stopa
 Sales Register,Prodaja Registracija
 Sales Return,Prodaje Povratak
 Sales Taxes and Charges,Prodaja Porezi i naknade
@@ -2484,7 +2515,6 @@
 Scheduled,Planiran
 Scheduled Confirmation Date,Planirano Potvrda Datum
 Scheduled Date,Planirano Datum
-Scheduler Error Log,Raspored Zapisnik pogrešaka
 Scheduler Log,Planer Prijava
 School/University,Škola / Sveučilište
 Score (0-5),Ocjena (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,Odaberite DOCTYPE
 Select Document Type,Odaberite vrstu dokumenta
 Select Document Type or Role to start.,Odaberite vrstu dokumenta ili ulogu za početak.
+Select Items,Odaberite stavke
 Select PR,Odaberite PR
 Select Print Format,Odaberite Print Format
 Select Print Heading,Odaberite Ispis Naslov
@@ -2562,8 +2593,8 @@
 Send SMS,Pošalji SMS
 Send To,Pošalji
 Send To Type,Pošalji Upišite
+Send an email reminder in the morning,Pošaljite e-mail podsjetnik u jutarnjim satima
 Send automatic emails to Contacts on Submitting transactions.,Pošalji automatske poruke u Kontakte o podnošenju transakcije.
-"Send bulk SMS to leads, customers, contacts","Pošalji bulk SMS vodi, klijentima, kontaktima"
 Send mass SMS to your contacts,Pošalji masovne SMS svojim kontaktima
 Send regular summary reports via Email.,Pošalji redovite sažetak izvješća putem e-pošte.
 Send to this list,Pošalji na ovom popisu
@@ -2580,7 +2611,6 @@
 Serial No Status,Serijski Bez Status
 Serial No Warranty Expiry,Serijski Nema jamstva isteka
 Serialized Item: ',Serijaliziranom artikla: &#39;
-Series,Serija
 Series List for this Transaction,Serija Popis za ovu transakciju
 Server,Server
 Service Address,Usluga Adresa
@@ -2590,19 +2620,13 @@
 Session Expiry,Sjednica isteka
 Session Expiry in Hours e.g. 06:00,Sjednica Rok u Hours npr. 06:00
 Set Banner from Image,Postavite banner sa slike
-Set From Image,Postavite Od Slika
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Postavite Stavka Grupa-mudre proračune na ovom području. Također možete uključiti sezonalnost postavljanjem Distribution.
 Set Login and Password if authentication is required.,"Postavite prijavu i lozinku, ako je autorizacija potrebna."
 Set New Password,Set New Password
 Set Value,Postavite vrijednost
 "Set a new password and ""Save""",Postavite novu lozinku i &quot;Save&quot;
-Set default values for entry,Postavljanje zadanih vrijednosti za ulazak
-Set default values for users (also used for permissions).,Postavljanje zadanih vrijednosti za korisnike (također se koristi za dozvole).
-Set multiple numbering series for transactions,Postavite više brojeva seriju transakcija
-Set permissions on transactions / masters,Postavite dozvole na transakcije / Masters
 Set prefix for numbering series on your transactions,Postavite prefiks za numeriranje niza na svoje transakcije
 Set targets Item Group-wise for this Sales Person.,Set cilja predmet Grupa-mudar za ovaj prodavač.
-Set workflow rules.,Postavite tijeka pravila.
 "Set your background color, font and image (tiled)","Postavite boju pozadine, font i sliku (popločan)"
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","Postavite odlazne postavke SMTP mail ovdje. Svi sustav generira obavijesti, e-mail će otići s ovog poslužitelja e-pošte. Ako niste sigurni, ostavite prazno za korištenje ERPNext poslužitelja (e-mailove i dalje će biti poslan na vaš e-mail id) ili se obratite davatelja usluga."
 Setting Account Type helps in selecting this Account in transactions.,Postavljanje Vrsta računa pomaže u odabiru ovaj račun u prometu.
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,Postavljanje Košarica.
 Setup of fonts and background.,Postavljanje fontova i pozadine.
 "Setup of top navigation bar, footer and logo.","Postavljanje gornjoj navigacijskoj traci, podnožje i logo."
-Setup outgoing SMS via your bulk SMS provider,Postava odlaznih SMS putem svog bulk SMS usluga
 Setup to pull emails from support email account,Postava povući e-mailove od podrške email računa
 Share,Udio
 Share With,Podijelite s
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,Kratka biografija za web stranice i drugih publikacija.
 Shortcut,Prečac
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",Show &quot;na lageru&quot; ili &quot;Nije u skladištu&quot; temelji se na skladištu dostupna u tom skladištu.
-Show / Hide Modules,Prikaži / sakrij modula
 Show Details,Prikaži pojedinosti
 Show In Website,Pokaži Na web stranice
 Show Print First,Pokaži Ispis Prvo
@@ -2658,11 +2680,9 @@
 Show in Website,Prikaži u web
 Show rows with zero values,Prikaži retke s nula vrijednosti
 Show this slideshow at the top of the page,Prikaži ovaj slideshow na vrhu stranice
-"Show, hide modules","Show, skrivanje module"
 Showing only for,Prikaz samo za
 Signature,Potpis
 Signature to be appended at the end of every email,Potpis se dodaje na kraju svakog e
-Simplify entry forms by disabling features,Pojednostavite prijavnice onemogućavanjem značajke
 Single,Singl
 Single Post (article).,Single Post (članak).
 Single unit of an Item.,Jedna jedinica stavku.
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,Nažalost nismo uspjeli pronaći ono što su tražili.
 Sorry you are not permitted to view this page.,Žao nam je što nije dozvoljeno da vidite ovu stranicu.
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,Žao nam je! Mi samo možemo dopustiti upto 100 redova za burze pomirenja.
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","Žao mi je! Ne možete promijeniti tvrtke zadanu valutu, jer već postoje transakcija protiv njega. Vi ćete morati odustati od te transakcije, ako želite promijeniti zadanu valutu."
 Sorry. Companies cannot be merged,Žao nam je. Tvrtke ne mogu se spojiti
 Sorry. Serial Nos. cannot be merged,Žao nam je. Serijski broj ne može spojiti
 Sort By,Sortiraj po
@@ -2759,6 +2780,7 @@
 Suggestions,Prijedlozi
 Sunday,Nedjelja
 Supplier,Dobavljač
+Supplier (Payable) Account,Dobavljač (Plaća) račun
 Supplier (vendor) name as entered in supplier master,Dobavljač (prodavatelja) ime kao ušao u dobavljača gospodara
 Supplier Account Head,Dobavljač račun Head
 Supplier Address,Dobavljač Adresa
@@ -2792,7 +2814,6 @@
 Symbol,Simbol
 Sync Inbox,Sync inbox
 Sync Support Mails,Sinkronizacija Podrška mailova
-Sync backups with remote tools like Dropbox etc.,Sinkronizacija sigurnosnih kopija s udaljenim alatima kao što su Dropbox i sl.
 Sync with Dropbox,Sinkronizacija s Dropbox
 Sync with Google Drive,Sinkronizacija s Google Drive
 System,Sistem
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page",&quot;Web stranica&quot; da je stranica web kući
 The BOM which will be replaced,BOM koji će biti zamijenjen
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",Stavka koja predstavlja paket. Ova stavka mora imati &quot;Je kataloški Stavka&quot; kao &quot;Ne&quot; i &quot;Je li prodaja artikla&quot; kao &quot;Da&quot;
-The account to which you will pay (have paid) the money to.,Računa na koji ćete uplatiti (platio) novac.
 The date at which current entry is made in system.,Datum na koji tekući zapis se sastoji u sustavu.
 The date at which current entry will get or has actually executed.,Datum na koji tekući zapis će dobiti ili zapravo je pogubljen.
 The date on which next invoice will be generated. It is generated on submit.,Datum na koji sljedeći račun će biti generiran. To je generiran na podnijeti.
@@ -2927,6 +2947,7 @@
 To Currency,Valutno
 To Date,Za datum
 To Discuss,Za Raspravljajte
+To Do,Raditi
 To Do List,Da li popis
 To PR Date,Za PR Datum
 To Package No.,Za Paket br
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","Da biste automatski stvorili podršku ulaznice iz vašeg dolaznog maila, postaviti POP3 postavke ovdje. Vi idealno mora stvoriti zasebnu e-mail ID za ERP sustava, tako da sve e-mailove će biti sinkronizirane u sustav iz tog mail id. Ako niste sigurni, obratite se davatelju usluge e."
 "To create an Account Head under a different company, select the company and save customer.","Za stvaranje računa glavu pod drugom tvrtkom, odaberite tvrtku i spasiti kupca."
 To enable <b>Point of Sale</b> features,Da biste omogućili <b>Point of Sale</b> značajke
+To enable more currencies go to Setup > Currency,Da biste omogućili više valuta ići na Postavke&gt; Valuta
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","Za preuzimanje stavke opet, kliknite na &quot;Get stavke&quot; gumb \ ili ažurirati Količina ručno."
 "To format columns, give column labels in the query.","Za formatiranje stupaca, daju natpise stupaca u upitu."
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.","Kako bi se dodatno ograničiti dozvole na temelju određenih vrijednosti u dokumentu, koristite &#39;stanje&#39; postavke."
@@ -2953,7 +2975,6 @@
 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.,Za praćenje stavke u prodaji i kupnji dokumenata na temelju njihovih serijskih br. To je također može koristiti za praćenje jamstvene podatke o proizvodu.
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,Za praćenje stavke u prodaji i kupnji dokumenata s batch br <br> <b>Prošle Industrija: Kemikalije itd</b>
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Za praćenje stavki pomoću barkod. Vi ćete biti u mogućnosti da unesete stavke u otpremnici i prodaje Računa skeniranjem barkod stavke.
-"To update your HTML from attachment, click here","Da biste ažurirali svoj HTML iz vezanosti, kliknite ovdje"
 ToDo,ToDo
 Tools,Alat
 Top,Vrh
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),Ukupno poreza (Društvo valuta)
 Total Taxes and Charges,Ukupno Porezi i naknade
 Total Taxes and Charges (Company Currency),Ukupno Porezi i naknade (Društvo valuta)
+Total Working Days In The Month,Ukupno radnih dana u mjesecu
 Total amount of invoices received from suppliers during the digest period,Ukupan iznos primljenih računa od dobavljača tijekom razdoblja digest
 Total amount of invoices sent to the customer during the digest period,Ukupan iznos računa šalje kupcu tijekom razdoblja digest
-Total days in month,Ukupno dana u mjesecu
 Total in words,Ukupno je u riječima
+Total production order qty for item,Ukupna proizvodnja kako kom za stavku
 Totals,Ukupan rezultat
 Track separate Income and Expense for product verticals or divisions.,Pratite posebnu prihodi i rashodi za proizvode vertikalama ili podjele.
 Track this Delivery Note against any Project,Prati ovu napomenu isporuke protiv bilo Projekta
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,UOM pretvorbe Detalj
 UOM Conversion Details,UOM pretvorbe Detalji
 UOM Conversion Factor,UOM konverzijski faktor
+UOM Conversion Factor is mandatory,UOM pretvorbe Factor je obvezna
 UOM Details,UOM Detalji
 UOM Name,UOM Ime
 UOM Replace Utility,UOM Zamjena Utility
@@ -3044,6 +3067,7 @@
 Unread Messages,Nepročitane poruke
 Unscheduled,Neplanski
 Unsubscribed,Pretplatu
+Upcoming Events for Today,Buduća događanja za danas
 Update,Ažurirati
 Update Clearance Date,Ažurirajte provjeri datum
 Update Field,Update Field
@@ -3052,7 +3076,6 @@
 Update Series Number,Update serije Broj
 Update Stock,Ažurirajte Stock
 Update Stock should be checked.,Update Stock treba provjeriti.
-Update This Application,Osvježi ovu aplikaciju
 Update Value,Ažurirajte vrijednost
 "Update allocated amount in the above table and then click ""Allocate"" button","Ažurirajte dodijeljeni iznos u gornjoj tablici, a zatim kliknite na &quot;alocirati&quot; gumb"
 Update bank payment dates with journals.,Update banka datum plaćanja s časopisima.
@@ -3065,6 +3088,7 @@
 Upload HTML,Prenesi HTML
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Učitajte CSV datoteku s dva stupca.: Stari naziv i novi naziv. Max 500 redaka.
 Upload a file,Prenesi datoteku
+Upload and Import,Upload i uvoz
 Upload attendance from a .csv file,Prenesi dolazak iz. Csv datoteku
 Upload stock balance via csv.,Prenesi dionica ravnotežu putem CSV.
 Uploading...,Prijenos ...
@@ -3078,7 +3102,6 @@
 User ID,Korisnički ID
 User Image,Upute slike
 User Name,Korisničko ime
-User Properties,Svojstva korisnika
 User Remark,Upute Zabilješka
 User Remark will be added to Auto Remark,Upute Napomena će biti dodan Auto Napomena
 User Tags,Upute Tags
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,Korisnik ne smije izbrisati.
 UserRole,UserRole
 Username,Korisničko ime
-Users,Korisnici
 Users who can approve a specific employee's leave applications,Korisnici koji može odobriti određenog zaposlenika dopust aplikacija
 Users with this role are allowed to do / modify accounting entry before frozen date,Korisnici s tom ulogom smiju raditi / mijenjati računovodstvenu ulazak prije zamrznute dana
 Utilities,Komunalne usluge
@@ -3116,6 +3138,7 @@
 Voucher No,Bon Ne
 Voucher Type,Bon Tip
 Voucher Type and Date,Tip bon i datum
+WIP Warehouse required before Submit,WIP skladišta potrebno prije Podnijeti
 Waiting for Customer,Čeka kupca
 Walk In,Šetnja u
 Warehouse,Skladište
@@ -3149,6 +3172,7 @@
 Website Settings,Website Postavke
 Website Slideshow,Web Slideshow
 Website Slideshow Item,Web Slideshow artikla
+Website User,Web User
 Website Warehouse,Web stranica galerije
 Wednesday,Srijeda
 Weekly,Tjedni
@@ -3214,21 +3238,22 @@
 Yes,Da
 Yesterday,Jučer
 You are not authorized to do/modify back dated entries before ,Niste ovlašteni za to / mijenjati vratiti prije nadnevaka
-You can create more earning and deduction type from Setup --> HR,Možete stvoriti više plaća i dedukcije tipa iz Setup -&gt; HR
 You can enter any date manually,Možete unijeti bilo koji datum ručno
 You can enter the minimum quantity of this item to be ordered.,Možete unijeti minimalnu količinu ove točke biti naređeno.
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,Ne možete ući i bilješku isporuke Ne i prodaja Račun br \ Unesite bilo jedno.
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,Možete postaviti različite &#39;Properties&#39; za korisnike postaviti zadane vrijednosti i primjenjivati ​​pravila dozvola na temelju vrijednosti tih svojstava u različitim oblicima.
 You can start by selecting backup frequency and \					granting access for sync,Možete početi odabirom sigurnosnu frekvenciju i \ davanje pristupa za sinkronizaciju
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,Možete koristiti <a href='#Form/Customize Form'>Prilagodite obrazac</a> za postavljanje razine na poljima.
+You may need to update: ,Možda ćete morati ažurirati:
 Your Customer's TAX registration numbers (if applicable) or any general information,Vaš klijent je poreznoj registraciji brojevi (ako je primjenjivo) ili bilo opće informacije
 "Your download is being built, this may take a few moments...","Vaš preuzimanje se gradi, to može potrajati nekoliko trenutaka ..."
-Your letter head content in HTML.,Vaše pismo glava sadržaj u HTML.
+Your letter head content,Vaše pismo glava sadržaj
 Your sales person who will contact the customer in future,Vaš prodaje osobi koja će kontaktirati kupca u budućnosti
 Your sales person who will contact the lead in future,Vaš prodaje osobi koja će kontaktirati vodstvo u budućnosti
 Your sales person will get a reminder on this date to contact the customer,Vaš prodavač će dobiti podsjetnik na taj datum kontaktirati kupca
 Your sales person will get a reminder on this date to contact the lead,Vaš prodavač će dobiti podsjetnik na taj datum da se obratite vodstvo
 Your support email id - must be a valid email - this is where your emails will come!,Vaša podrška e-mail id - mora biti valjana e-mail - ovo je mjesto gdje svoje e-mailove će doći!
+[Error],[Error]
 [Label]:[Field Type]/[Options]:[Width],[Label]: [Field Type] / [Options]: [Širina]
 add your own CSS (careful!),dodati svoj vlastiti CSS (careful!)
 adjust,prilagoditi
@@ -3430,6 +3455,7 @@
 volume-up,glasnoće prema gore
 warning-sign,upozorenje-znak
 website page link,web stranica vode
+which is greater than sales order qty ,što je više od prodajnog naloga Kol
 wrench,ključ
 yyyy-mm-dd,gggg-mm-dd
 zoom-in,zoom-u
diff --git a/translations/nl.csv b/translations/nl.csv
index e19844c..3cc7152 100644
--- a/translations/nl.csv
+++ b/translations/nl.csv
@@ -1,12 +1,18 @@
  (Half Day),(Halve dag)
+ against sales order,tegen verkooporder
  against same operation,tegen dezelfde handeling
  already marked,al gemarkeerd
  and year: ,en jaar:
+ as it is stock Item or packing item,zoals het is voorraad Punt of verpakkingsitem
  at warehouse: ,in het magazijn:
  by Role ,per rol
+ can not be made.,kan niet worden gemaakt.
+ can not be marked as a ledger as it has existing child,kan niet worden gemarkeerd als een grootboek als het heeft bestaande kind
  cannot be 0,mag niet 0
  cannot be deleted.,kunnen niet worden verwijderd.
  does not belong to the company,behoort niet tot de onderneming
+ has already been submitted.,al is ingediend.
+ has been freezed. ,is bevroren.
  has been freezed. \				Only Accounts Manager can do transaction against this account,is bevroren. \ Accounts Manager kan doen transactie tegen deze account
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item","is minder dan gelijk aan nul in het systeem, \ taxatie tarief is verplicht voor dit item"
  is mandatory,is verplicht
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,is nu de standaard boekjaar. \ Vernieuw uw browser om de wijziging door te voeren.
  is present in one or many Active BOMs,aanwezig is in een of vele Actieve stuklijsten
  not active or does not exists in the system,niet actief of niet bestaat in het systeem
+ not submitted,niet ingediend
  or the BOM is cancelled or inactive,of de BOM wordt geannuleerd of inactief
  should be 'Yes'. As Item: ,zou moeten zijn &#39;Yes&#39;. Als Item:
  should be same as that in ,dezelfde als die moeten worden in
  was on leave on ,was op verlof op
+ will be ,zal
  will be over-billed against mentioned ,wordt over-gefactureerd tegen genoemde
  will become ,zal worden
 """Company History""",&quot;Geschiedenis&quot;
@@ -56,6 +64,7 @@
 15px,15px
 16px,16px
 2 days ago,2 dagen geleden
+: Duplicate row from same ,: Dubbele rij van dezelfde
 : It is linked to other active BOM(s),: Het is gekoppeld aan andere actieve BOM (s)
 : Mandatory for a Recurring Invoice.,: Verplicht voor een terugkerende factuur.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">Om Doelgroepen beheren, klik hier</a>"
@@ -102,6 +111,7 @@
 Account Id,Account Id
 Account Name,Accountnaam
 Account Type,Account Type
+Account for this ,Account voor deze
 Accounting,Rekening
 Accounting Year.,Accounting Jaar.
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Boekhoudkundige afschrijving bevroren tot deze datum, kan niemand / te wijzigen toegang behalve rol hieronder aangegeven."
@@ -114,6 +124,7 @@
 Action,Actie
 Active,Actief
 Active: Will extract emails from ,Actief: Zal ​​e-mails uittreksel uit
+Activity,Activiteit
 Activity Log,Activiteitenlogboek
 Activity Type,Activiteit Type
 Actual,Daadwerkelijk
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),Plaats ook een banner op de site. (Kleine banners zijn meestal goed)
 Add attachment,Bijlage toevoegen
 Add code as &lt;script&gt;,Voeg code als &lt;script&gt;
-Add custom code to forms,Voeg aangepaste code aan formulieren
-Add fields to forms,Velden toevoegen aan formulieren
-Add headers for standard print formats,Voeg headers voor standaard afdrukformaten
 Add new row,Voeg een nieuwe rij
 Add or Deduct,Toevoegen of aftrekken
 Add rows to set annual budgets on Accounts.,Rijen toevoegen aan jaarlijkse begrotingen op Accounts in te stellen.
@@ -158,7 +166,6 @@
 Add to To Do,Toevoegen aan To Do
 Add to To Do List of,Toevoegen aan To Do List van Do
 Add/Remove Recipients,Toevoegen / verwijderen Ontvangers
-"Add/remove users, set roles, passwords etc","Gebruikers toevoegen / verwijderen, set rollen, wachtwoorden enz."
 Additional Info,Extra informatie
 Address,Adres
 Address & Contact,Adres &amp; Contact
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,Adres moet worden weergegeven op de Contact Pagina
 Adds a custom field to a DocType,Voegt een aangepast veld aan een DocType
 Adds a custom script (client or server) to a DocType,Hiermee wordt een aangepast script (client of server) om een ​​DocType
-Administration,Administratie
 Advance Amount,Advance Bedrag
 Advance amount,Advance hoeveelheid
 Advanced Scripting,Geavanceerde Scripting
@@ -238,6 +244,7 @@
 Allow Users,Gebruikers toestaan
 Allow on Submit,Laat op Submit
 Allow the following users to approve Leave Applications for block days.,Laat de volgende gebruikers te keuren Verlof Aanvragen voor blok dagen.
+Allow user to edit Price List Rate in transactions,Zodat de gebruiker te bewerken prijslijst Rate bij transacties
 Allow user to login only after this hour (0-24),Gebruiker mag alleen inloggen na dit uur (0-24)
 Allow user to login only before this hour (0-24),Gebruiker mag alleen inloggen voordat dit uur (0-24)
 Allowance Percent,Toelage Procent
@@ -252,8 +259,6 @@
 Amount >=,Bedrag&gt; =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","Een icoon bestand met. Ico extensie. Moet 16 x 16 px. Gegenereerd met behulp van een favicon generator. [ <a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a> ]"
 Analytics,Analytics
-Annual Cost To Company,Jaarlijkse kosten aan bedrijf
-Annual Cost To Company can not be less than 12 months of Total Earning,Jaarlijkse kosten aan bedrijf kan niet minder zijn dan 12 maanden Totaal Earning
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,Andere Salaris Structure &#39;% s&#39; is actief voor werknemer &#39;% s&#39;. Maak dan de status &#39;Inactief&#39; om door te gaan.
 "Any other comments, noteworthy effort that should go in the records.","Eventuele andere opmerkingen, opmerkelijke inspanning die moet gaan in de administratie."
 Applicable Holiday List,Toepasselijk Holiday Lijst
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,Toepassen / goedkeuren Leaves
 Apply Shipping Rule,Solliciteer Scheepvaart Rule
 Apply Taxes and Charges Master,Toepassing en-heffingen Master
-Apply latest updates and patches to this app,Solliciteer nieuwste updates en patches om deze app
 Appraisal,Taxatie
 Appraisal Goal,Beoordeling Doel
 Appraisal Goals,Beoordeling Doelen
@@ -300,7 +304,6 @@
 Attached To DocType,Bijlage Aan DocType
 Attached To Name,Gehecht Aan Naam
 Attachment,Gehechtheid
-Attachment removed. You may need to update: ,Gehechtheid verwijderd. U kan nodig zijn om bij te werken:
 Attachments,Toebehoren
 Attempted to Contact,Geprobeerd om contact
 Attendance,Opkomst
@@ -422,7 +425,6 @@
 Brand Name,Merknaam
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","Brand is wat er op de rechterbovenhoek van de werkbalk. Als het een afbeelding, zorg ervoor dat ithas een transparante achtergrond en gebruik de &lt;img /&gt; tag. Houd grootte als 200px x 30px"
 Brand master.,Brand meester.
-Branding and Printing,Branding en afdrukken
 Brands,Merken
 Breakdown,Storing
 Budget,Begroting
@@ -440,6 +442,7 @@
 Build Sitemap,Bouwen Sitemap
 Bulk Email,Bulk Email
 Bulk Email records.,Bulk Email records.
+Bummer! There are more holidays than working days this month.,Bummer! Er zijn meer feestdagen dan werkdagen deze maand.
 Bundle items at time of sale.,Bundel artikelen op moment van verkoop.
 Button,Knop
 Buyer of Goods and Services.,Bij uw aankoop van goederen en diensten.
@@ -490,7 +493,6 @@
 Center,Centrum
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.","Bepaalde documenten mogen niet worden gewijzigd zodra de definitieve, zoals een factuur bijvoorbeeld. De eindtoestand van deze documenten wordt genoemd <b>Ingediend.</b> U kunt beperken welke rollen kunnen op Verzenden."
 Change UOM for an Item.,Wijzig Verpakking voor een item.
-"Change entry properties (hide fields, make mandatory etc)","Wijzig eigenschappen van een item (verberg velden, een verplichtend karakter, enz.)"
 Change the starting / current sequence number of an existing series.,Wijzig de start-/ huidige volgnummer van een bestaande serie.
 Channel Partner,Channel Partner
 Charge,Lading
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Controleer dit als u wilt dwingen de gebruiker om een ​​reeks voor het opslaan te selecteren. Er zal geen standaard zijn als je dit controleren.
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,Controleer dit als u wilt e-mails als enige deze id (in geval van beperking door uw e-mailprovider) te sturen.
 Check this if you want to show in website,Selecteer dit als u wilt weergeven in de website
+Check this to disallow fractions. (for Nos),Controleer dit te verbieden fracties. (Voor Nos)
 Check this to make this the default letter head in all prints,Vink dit aan om deze de standaard briefpapier maken in alle afdrukken
 Check this to pull emails from your mailbox,Vink dit aan om e-mails uit je mailbox
 Check to activate,Controleer activeren
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,"Registratienummers van de onderneming voor uw referentie. Voorbeeld: BTW-nummers, enz."
 Company registration numbers for your reference. Tax numbers etc.,"Registratienummers van de onderneming voor uw referentie. Fiscale nummers, enz."
 Complaint,Klacht
+Complete,Compleet
 Complete By,Compleet Door
 Completed,Voltooid
 Completed Qty,Voltooide Aantal
@@ -626,12 +630,12 @@
 Cost Center Name,Kosten Center Naam
 Cost Center is mandatory for item: ,Kostenplaats is verplicht voor artikel:
 Cost Center must be specified for PL Account: ,Kostenplaats moet worden opgegeven voor PL-account:
-Cost to Company,Kosten voor Bedrijf
 Costing,Costing
 Country,Land
 Country Name,Naam van het land
 Create,Creëren
 Create Bank Voucher for the total salary paid for the above selected criteria,Maak Bank Voucher voor het totale loon voor de bovenstaande geselecteerde criteria
+Create Material Requests,Maak Materiaal Aanvragen
 Create Production Orders,Maak productieorders
 Create Receiver List,Maak Receiver Lijst
 Create Salary Slip,Maak loonstrook
@@ -680,6 +684,7 @@
 Custom Startup Code,Custom Startup Code
 Custom?,Custom?
 Customer,Klant
+Customer (Receivable) Account,Klant (Debiteuren) Account
 Customer / Item Name,Klant / Naam van het punt
 Customer Account,Customer Account
 Customer Account Head,Customer Account Head
@@ -688,6 +693,8 @@
 Customer Code,Klantcode
 Customer Codes,Klant Codes
 Customer Details,Klant Details
+Customer Discount,Klanten Korting
+Customer Discounts,Klant Kortingen
 Customer Feedback,Klantenfeedback
 Customer Group,Klantengroep
 Customer Group Name,Klant Groepsnaam
@@ -717,11 +724,10 @@
 DN,DN
 DN Detail,DN Detail
 Daily,Dagelijks
+Daily Event Digest is sent for Calendar Events where reminders are set.,Dagelijkse gebeurtenis Digest wordt gestuurd voor Agenda Events waar herinneringen worden ingesteld.
 Daily Time Log Summary,Daily Time Log Samenvatting
-"Daily, weekly, monthly email Digests","Dagelijks, wekelijks, maandelijks e-mail Digests"
 Danger,Gevaar
 Data,Gegevens
-Data Import,Gegevens importeren
 Data missing in table,Ontbreekt in tabel data
 Database,Database
 Database Folder ID,Database Folder ID
@@ -777,6 +783,7 @@
 Default Settings,Standaardinstellingen
 Default Source Warehouse,Standaard Bron Warehouse
 Default Stock UOM,Default Stock Verpakking
+Default Supplier,Standaardleverancier
 Default Supplier Type,Standaard Leverancier Type
 Default Target Warehouse,Standaard Target Warehouse
 Default Territory,Standaard Territory
@@ -795,6 +802,7 @@
 Delete,Verwijder
 Delete Row,Rij verwijderen
 Delivered,Geleverd
+Delivered Items To Be Billed,Geleverd Items te factureren
 Delivered Qty,Geleverd Aantal
 Delivery Address,Afleveradres
 Delivery Date,Leveringsdatum
@@ -813,7 +821,6 @@
 Delivery Time,Levertijd
 Delivery To,Levering To
 Department,Afdeling
-Depend on LWP,Vertrouw op LWP
 Depends On,Hangt af van
 Depends on LWP,Afhankelijk van LWP
 Descending,Aflopend
@@ -864,6 +871,7 @@
 DocType or Field,DocType of Field
 Document,Document
 Document Description,Document Beschrijving
+Document Numbering Series,Document Numbering Series
 Document Status transition from ,Document Status overgang van
 Document Type,Soort document
 Document is only editable by users of role,Document is alleen bewerkbaar door gebruikers van de rol van
@@ -934,7 +942,7 @@
 Employee Leave Balance,Werknemer Verlof Balance
 Employee Name,Naam werknemer
 Employee Number,Medewerker Aantal
-Employee Records to be created by ,Werknemer Records worden gecreëerd door
+Employee Records to be created by,Werknemer Records worden gecreëerd door
 Employee Setup,Medewerker Setup
 Employee Type,Type werknemer
 Employee grades,Medewerker cijfers
@@ -944,7 +952,6 @@
 Employees Email Id,Medewerkers E-mail Identiteitskaart
 Employment Details,Werkgelegenheid Details
 Employment Type,Type baan
-Enable / disable currencies.,Inschakelen / uitschakelen valuta.
 Enable Auto Inventory Accounting,Enable Auto Inventory Accounting
 Enable Shopping Cart,Enable Winkelwagen
 Enabled,Ingeschakeld
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,Fout: Document is gewijzigd nadat u het hebt geopend
 Estimated Material Cost,Geschatte Materiaal Kosten
 Event,Evenement
+Event End must be after Start,Event End moet na Start
 Event Individuals,Event Personen
 Event Role,Event Rol
 Event Roles,Event Rollen
 Event Type,Type gebeurtenis
 Event User,Evenement Gebruiker
+Events In Today's Calendar,Evenementen In Kalender Today&#39;s
+Every Day,Elke Dag
+Every Month,Elke maand
+Every Week,Elke Week
+Every Year,Elk jaar
 Everyone can read,Iedereen kan lezen
 Example:,Voorbeeld:
 Exchange Rate,Wisselkoers
@@ -1019,8 +1032,6 @@
 Exports,Export
 External,Extern
 Extract Emails,Extract Emails
-Extract Job Applicant from jobs email id e.g. jobs@example.com,Uittreksel sollicitant van banen e-id bijvoorbeeld jobs@example.com
-Extract Leads from sales email id e.g. sales@example.com,Uittreksel Leads uit de verkoop e-id bijvoorbeeld sales@example.com
 FCFS Rate,FCFS Rate
 FIFO,FIFO
 Facebook Share,Facebook Share
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Velden gescheiden door komma (,) opgenomen in de <br /> <b>Zoeken op</b> lijst van dialoogvenster Zoeken"
 File,Bestand
 File Data,File Data
-File Manager,File Manager
 File Name,Bestandsnaam
 File Size,Bestand Grootte
 File URL,File-URL
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,Definitieve bevestiging Datum
 Financial Analytics,Financiële Analytics
 Financial Statements,Jaarrekening
-Financial Years for books of accounts,Financiële Jaren voor boeken van de rekeningen
 First Name,Voornaam
 First Responded On,Eerste reageerden op
 Fiscal Year,Boekjaar
@@ -1090,6 +1099,7 @@
 For Sales Invoice,Voor verkoopfactuur
 For Server Side Print Formats,Voor Server Side Print Formats
 For Territory,Voor Territory
+For UOM,Voor UOM
 For Warehouse,Voor Warehouse
 "For comparative filters, start with","Voor vergelijkingsdoeleinden filters, te beginnen met"
 "For e.g. 2012, 2012-13","Voor bijvoorbeeld 2012, 2012-13"
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,Freeze Stock Entries
 Friday,Vrijdag
 From,Van
+From Bill of Materials,Van Bill of Materials
 From Company,Van Company
 From Currency,Van Valuta
 From Currency and To Currency cannot be same,Van Munt en naar Valuta kan niet hetzelfde zijn
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,Van datum moet voor-to-date
 From Delivery Note,Van Delivery Note
 From Employee,Van Medewerker
+From Lead,Van Lood
 From PR Date,Van PR Datum
 From Package No.,Van Pakket No
 From Purchase Order,Van Purchase Order
@@ -1150,8 +1162,8 @@
 Get Current Stock,Get Huidige voorraad
 Get From ,Get Van
 Get Items,Get Items
+Get Items From Sales Orders,Krijg Items Van klantorders
 Get Last Purchase Rate,Get Laatst Purchase Rate
-Get Latest Updates,Ontvang de meest recente updates
 Get Non Reconciled Entries,Get Niet Reconciled reacties
 Get Outstanding Invoices,Get openstaande facturen
 Get Purchase Receipt,Get Aankoop Ontvangst
@@ -1161,7 +1173,6 @@
 Get Template,Get Sjabloon
 Get Terms and Conditions,Get Algemene Voorwaarden
 Get Weekly Off Dates,Ontvang wekelijkse Uit Data
-Get a list of errors encountered by the Scheduler,Hier krijg je een lijst van fouten die door de Scheduler
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Get waardering tarief en beschikbare voorraad bij de bron / doel pakhuis op de genoemde plaatsen van datum-tijd. Als geserialiseerde item, drukt u op deze toets na het invoeren van seriële nos."
 Give additional details about the indent.,Geven extra informatie over het streepje.
 Global Defaults,Global Standaardwaarden
@@ -1193,9 +1204,9 @@
 Group or Ledger,Groep of Ledger
 Groups,Groepen
 HR,HR
+HR Settings,HR-instellingen
 HTML,HTML
 HTML / Banner that will show on the top of product list.,HTML / Banner dat zal laten zien op de bovenkant van het product lijst.
-"HTML print formats for quotes, invoices etc","HTML afdrukformaten voor offertes, facturen enz."
 Half Day,Halve dag
 Half Yearly,Halfjaarlijkse
 Half-yearly,Halfjaarlijks
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children","Hier kunt u onderhouden familie gegevens zoals naam en beroep van de ouder, echtgenoot en kinderen"
 "Here you can maintain height, weight, allergies, medical concerns etc","Hier kunt u onderhouden lengte, gewicht, allergieën, medische zorgen, enz."
 Hey there! You need to put at least one item in \				the item table.,Hey there! U moet ten minste een item zet in \ het item tafel.
+Hey! All these items have already been invoiced.,Hey! Al deze items zijn al gefactureerd.
 Hey! There should remain at least one System Manager,Hey! Er moet minstens een System Manager blijven
 Hidden,Verborgen
 Hide Actions,Verberg Acties
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults","Hoe moet deze valuta worden geformatteerd? Indien niet ingesteld, zal gebruik maken van het systeem standaard"
 How to upload,Hoe om te uploaden
 Hrvatski,Hrvatski
+Human Resources,Human Resources
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,Hoera! De dag (en) waarop u een aanvraag voor verlof \ samenvallen met vakantie (s). Je moet niet van toepassing voor verlof.
 I,Ik
 ID (name) of the entity whose property is to be set,ID (naam) van de entiteit waarvan de eigenschap moet worden ingesteld
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,Als jaarlijks budget overschreden
 "If a User does not have access at Level 0, then higher levels are meaningless","Als een gebruiker geen toegang hebben op niveau 0, dan is een hoger niveau zijn betekenisloos"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","Indien aangevinkt, zal BOM voor sub-assemblage zaken geacht voor het krijgen van grondstoffen. Anders zullen alle subeenheid items worden behandeld als een grondstof."
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Indien aangevinkt, Totaal niet. van Werkdagen zal omvatten feestdagen, en dit zal de waarde van het salaris per dag te verminderen"
 "If checked, all other workflows become inactive.","Indien aangevinkt, alle andere werkstromen worden inactief."
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","Indien aangevinkt, zal een e-mail met een bijgevoegd HTML-formaat worden toegevoegd aan een deel van het EMail lichaam als attachment. Om alleen te verzenden als bijlage, vink dit."
 "If checked, the Home page will be the default Item Group for the website.","Indien aangevinkt, zal de Home pagina zijn de standaard Item Groep voor de website."
@@ -1305,7 +1319,6 @@
 Import,Importeren
 Import Attendance,Import Toeschouwers
 Import Log,Importeren Inloggen
-Import data from spreadsheet (csv) files,Gegevens importeren uit spreadsheet (csv-bestanden)
 Important dates and commitments in your project life cycle,Belangrijke data en verplichtingen in uw project levenscyclus
 Imports,Invoer
 In Dialog,In Dialog
@@ -1314,6 +1327,7 @@
 In List View,In lijstweergave
 In Process,In Process
 In Report Filter,In Report Filter
+In Row,In Rij
 In Store,In Store
 In Words,In Woorden
 In Words (Company Currency),In Woorden (Company Munt)
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","In de Permission Manager, klik op de knop in de &#39;Staat&#39; op de kolom voor de rol die u wilt beperken."
 Incentives,Incentives
 Incharge Name,InCharge Naam
+Include holidays in Total no. of Working Days,Onder meer vakanties in Total nee. van Werkdagen
 Income / Expense,Inkomsten / Uitgaven
 Income Account,Inkomen account
 Income Booked,Inkomen Geboekt
@@ -1347,6 +1362,7 @@
 Industry Type,Industry Type
 Info,Info
 Insert After,Invoegen na
+Insert Below,Hieronder invoegen
 Insert Code,Plaats Code
 Insert Row,Rij invoegen
 Insert Style,Plaats Style
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,Ongeldige Delivery Note. Delivery Note moet bestaan ​​en moet in ontwerp staat. Gelieve te corrigeren en opnieuw te proberen.
 Invalid Email,Ongeldig E-mail
 Invalid Email Address,Ongeldig e-mailadres
+Invalid Item or Warehouse Data,Ongeldig artikel of Warehouse gegevens
 Invalid Leave Approver,Ongeldige Laat Fiatteur
 Inventory,Inventaris
 Inverse,Omgekeerde
@@ -1511,7 +1528,6 @@
 Lead Lost,Lood Verloren
 Lead Name,Lead Naam
 Lead Owner,Lood Owner
-Lead Ref,Lood Ref
 Lead Source,Lood Bron
 Lead Status,Lead Status
 Lead Time Date,Lead Tijd Datum
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,Laat leeg indien overwogen voor alle aanduidingen
 Leave blank if considered for all employee types,Laat leeg indien overwogen voor alle werknemer soorten
 Leave blank if considered for all grades,Laat leeg indien dit voor alle soorten
+Leave blank if you have not decided the end date.,Laat leeg als je niet hebt besloten de einddatum.
 Leave by,Laat door
 "Leave can be approved by users with Role, ""Leave Approver""",Laat kan worden goedgekeurd door gebruikers met Role: &quot;Laat Fiatteur&quot;
 Ledger,Grootboek
@@ -1553,7 +1570,6 @@
 Letter Head,Brief Hoofd
 Letter Head Image,Brief Hoofd afbeelding
 Letter Head Name,Brief Hoofd Naam
-Letter heads for print,Briefpapier voor print
 Level,Niveau
 "Level 0 is for document level permissions, higher levels for field level permissions.","Niveau 0 is voor document niveau machtigingen, hogere niveaus voor veldniveau machtigingen."
 Lft,Lft
@@ -1563,13 +1579,11 @@
 Linked With,Linked Met
 List,Lijst
 List items that form the package.,Lijst items die het pakket vormen.
-List of companies (not customers / suppliers),Lijst van bedrijven (niet klanten / leveranciers)
 List of holidays.,Lijst van feestdagen.
 List of patches executed,Lijst van de uitgevoerde stukken
 List of records in which this document is linked,Lijst van records waarin dit document wordt gekoppeld
 List of users who can edit a particular Note,Lijst van gebruikers die een bepaalde Note kan bewerken
 List this Item in multiple groups on the website.,Lijst deze post in meerdere groepen op de website.
-"List, delete uploaded files.","Lijst, geüploade bestanden verwijderen."
 Live Chat,Live Chat
 Load Print View on opening of an existing form,Laad Print Bekijk op opening van een bestaand formulier
 Loading,Het laden
@@ -1596,6 +1610,7 @@
 Mail Server,Mail Server
 Main Reports,Belangrijkste Rapporten
 Main Section,Hoofd Sectie
+Maintain Same Rate Throughout Sales Cycle,Onderhouden Zelfde Rate Gedurende Salescyclus
 Maintain same rate throughout purchase cycle,Handhaaf dezelfde snelheid gedurende aankoop cyclus
 Maintenance,Onderhoud
 Maintenance Date,Onderhoud Datum
@@ -1616,7 +1631,6 @@
 Make a new,Maak een nieuw
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,Zorg ervoor dat de transacties die u wilt beperken een link veld &#39;grondgebied&#39; hebben die verwijst naar een &#39;Territory&#39; meester.
 Male,Mannelijk
-Manage Numbering Series,Beheren Nummering Series
 Manage cost of operations,Beheer kosten van de operaties
 Manage exchange rates for currency conversion,Beheer wisselkoersen voor valuta-omrekening
 Mandatory,Verplicht
@@ -1651,10 +1665,10 @@
 Material Request No,Materiaal aanvragen Geen
 Material Request Type,Materiaal Soort aanvraag
 Material Request used to make this Stock Entry,Materiaal Request gebruikt om dit Stock Entry maken
+Material Requirement,Material Requirement
 Material Transfer,Materiaaloverdracht
 Materials,Materieel
 Materials Required (Exploded),Benodigde materialen (Exploded)
-Materials Requirement Planning (MRP),Materials Requirement Planning (MRP)
 Max 500 rows only.,Alleen max. 500 rijen.
 Max Attachments,Max Bijlagen
 Max Days Leave Allowed,Max Dagen Laat toegestaan
@@ -1699,6 +1713,7 @@
 Month,Maand
 Monthly,Maandelijks
 Monthly Attendance Sheet,Maandelijkse Toeschouwers Sheet
+Monthly Earning & Deduction,Maandelijkse Verdienen &amp; Aftrek
 Monthly Salary Register,Maandsalaris Register
 Monthly salary statement.,Maandsalaris verklaring.
 Monthly salary template.,Maandsalaris sjabloon.
@@ -1711,7 +1726,9 @@
 Mr,De heer
 Ms,Mevrouw
 Multiple Item Prices,Meerdere Item Prijzen
+Multiple root nodes not allowed.,Meerdere wortel nodes niet toegestaan.
 Mupltiple Item prices.,Mupltiple Item prijzen.
+Must be Whole Number,Moet heel getal zijn
 Must have report permission to access this report.,Moet verslag toestemming om toegang tot dit rapport.
 Must specify a Query to run,Moet een query opgeven om te draaien
 My Settings,Mijn instellingen
@@ -1737,7 +1754,6 @@
 Net Weight,Netto Gewicht
 Net Weight UOM,Netto Gewicht Verpakking
 Net Weight of each Item,Netto gewicht van elk item
-Net pay can not be greater than 1/12th of Annual Cost To Company,Nettoloon kan niet groter zijn dan 1/12de van de jaarlijkse kosten aan bedrijf zijn
 Net pay can not be negative,Nettoloon kan niet negatief
 Never,Nooit
 New,Nieuw
@@ -1795,6 +1811,7 @@
 No of Sent SMS,Geen van Sent SMS
 No of Visits,Geen van bezoeken
 No one,Niemand
+No permission to write / remove.,Geen toestemming om te schrijven / te verwijderen.
 No record found,Geen record gevonden
 No records tagged.,Geen records gelabeld.
 No salary slip found for month: ,Geen loonstrook gevonden voor de maand:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,Besteld te leveren zaken
 Ordered Quantity,Bestelde hoeveelheid
 Orders released for production.,Bestellingen vrijgegeven voor productie.
-Organization,Organisatie
 Organization Profile,Organisatie Profiel
 Original Message,Oorspronkelijk bericht
 Other,Ander
 Other Details,Andere Details
 Out,Uit
-Out going mail server and support ticket mailbox,Out gaan mailserver en support ticket mailbox
 Out of AMC,Uit AMC
 Out of Warranty,Out of Warranty
 Outgoing,Uitgaande
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),POP3-mailserver (bv pop.gmail.com)
 POP3 server e.g. (pop.gmail.com),POP3-server bijvoorbeeld (pop.gmail.com)
 POS Setting,POS-instelling
+POS View,POS View
 PR Detail,PR Detail
 PRO,PRO
 PS,PS
@@ -1951,10 +1967,10 @@
 Participants,Deelnemers
 Partly Billed,Deels Gefactureerd
 Partly Delivered,Deels geleverd
-Partner,Partner
 Partner Target Detail,Partner Target Detail
 Partner Type,Partner Type
 Partner's Website,Website partner
+Passive,Passief
 Passport Number,Nummer van het paspoort
 Password,Wachtwoord
 Password Expires in (days),Wachtwoord Verloopt (dagen)
@@ -1964,12 +1980,12 @@
 Payables,Schulden
 Payables Group,Schulden Groep
 Payment Collection With Ageing,Betaling Collection Met Vergrijzing
+Payment Days,Betaling Dagen
 Payment Entries,Betaling Entries
 Payment Entry has been modified after you pulled it. 			Please pull it again.,Betaling Bericht is gewijzigd nadat u trok het. Gelieve opnieuw te trekken.
 Payment Made With Ageing,Betaling Gemaakt Met Vergrijzing
 Payment Reconciliation,Betaling Verzoening
 Payment Terms,Betalingscondities
-Payment days,Betaling dagen
 Payment to Invoice Matching Tool,Betaling aan Factuurvergelijk Tool
 Payment to Invoice Matching Tool Detail,Betaling aan Factuurvergelijk Tool Detail
 Payments,Betalingen
@@ -1984,6 +2000,7 @@
 Percent,Percentage
 Percent Complete,Percentage voltooid
 Percentage Allocation,Percentage Toewijzing
+Percentage Allocation should be equal to ,Percentage toewijzing moet gelijk zijn aan
 Percentage variation in quantity to be allowed while receiving or delivering this item.,Percentage variërende hoeveelheid te mogen tijdens het ontvangen of versturen van dit item.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,Percentage dat u mag ontvangen of te leveren meer tegen de bestelde hoeveelheid. Bijvoorbeeld: Als u heeft besteld 100 eenheden. en uw Allowance is 10% dan mag je 110 eenheden ontvangen.
 Performance appraisal.,Beoordeling van de prestaties.
@@ -2026,19 +2043,24 @@
 Please check,Controleer
 Please enter Default Unit of Measure,Vul Default Meeteenheid
 Please enter Delivery Note No or Sales Invoice No to proceed,Vul Delivery Note Geen of verkoopfactuur Nee om door te gaan
+Please enter Employee Number,Vul Employee Number
 Please enter Expense Account,Vul Expense Account
 Please enter Expense/Adjustment Account,Vul Expense / Aanpassing Account
 Please enter Purchase Receipt No to proceed,Vul Kwitantie Nee om door te gaan
+Please enter Reserved Warehouse for item ,Vul Gereserveerde Warehouse voor punt
 Please enter valid,Voer geldige
 Please enter valid ,Voer geldige
 Please install dropbox python module,Installeer dropbox python module
 Please make sure that there are no empty columns in the file.,Zorg ervoor dat er geen lege kolommen in het bestand.
 Please mention default value for ',Vermeld standaardwaarde voor &#39;
+Please reduce qty.,Gelieve te verminderen Verpak.inh.
 Please refresh to get the latest document.,Vernieuw om de nieuwste document te krijgen.
 Please save the Newsletter before sending.,Sla de Nieuwsbrief voor verzending.
 Please select Bank Account,Selecteer Bankrekening
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Selecteer Carry Forward als u ook wilt opnemen vorige boekjaar uit balans laat dit fiscale jaar
 Please select Date on which you want to run the report,Selecteer Datum waarop u het rapport wilt uitvoeren
+Please select Naming Neries,Selecteer Naming Neries
+Please select Price List,Selecteer Prijs Lijst
 Please select Time Logs.,Selecteer Time Logs.
 Please select a,Selecteer een
 Please select a csv file,Selecteer een CSV-bestand
@@ -2051,10 +2073,12 @@
 Please select: ,Maak een keuze:
 Please set Dropbox access keys in,Stel Dropbox toegang sleutels in
 Please set Google Drive access keys in,Stel Google Drive toegang sleutels in
+Please setup Employee Naming System in Human Resource > HR Settings,Gelieve setup Employee Naming System in Human Resource&gt; HR-instellingen
 Please specify,Gelieve te specificeren
 Please specify Company,Specificeer Company
 Please specify Company to proceed,Specificeer Company om verder te gaan
 Please specify Default Currency in Company Master \			and Global Defaults,Geef Standaard valuta in Bedrijf Master \ en Global Standaardwaarden
+Please specify a,Geef een
 Please specify a Price List which is valid for Territory,Geef een prijslijst die geldig is voor het grondgebied
 Please specify a valid,Geef een geldige
 Please specify a valid 'From Case No.',Geef een geldige &#39;Van Case No&#39;
@@ -2070,7 +2094,7 @@
 Posts,Berichten
 Potential Sales Deal,Potentiële Sales Deal
 Potential opportunities for selling.,Potentiële mogelijkheden voor de verkoop.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","Precisie voor Float velden (aantallen, kortingen, percentages, enz.) alleen voor weergave. Praalwagens worden nog steeds berekend tot 6 decimalen."
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","Precisie voor Float velden (hoeveelheden, kortingen, percentages, enz.). Praalwagens zal worden afgerond naar opgegeven decimalen. Default = 3"
 Preferred Billing Address,Voorkeur Factuuradres
 Preferred Shipping Address,Voorkeur verzendadres
 Prefix,Voorvoegsel
@@ -2081,7 +2105,6 @@
 Previous Work Experience,Vorige Werkervaring
 Price,Prijs
 Price List,Prijslijst
-Price List Country,Prijslijst Land
 Price List Currency,Prijslijst Valuta
 Price List Currency Conversion Rate,Prijslijst Currency Conversion Rate
 Price List Exchange Rate,Prijslijst Wisselkoers
@@ -2089,6 +2112,7 @@
 Price List Name,Prijslijst Naam
 Price List Rate,Prijslijst Prijs
 Price List Rate (Company Currency),Prijslijst Rate (Company Munt)
+Price List for Costing,Prijslijst voor Costing
 Price Lists and Rates,Prijslijsten en tarieven
 Primary,Primair
 Print Format,Print Formaat
@@ -2107,6 +2131,7 @@
 Produced Quantity,Geproduceerd Aantal
 Product Enquiry,Product Aanvraag
 Production Order,Productieorder
+Production Orders,Productieorders
 Production Plan Item,Productie Plan Item
 Production Plan Items,Productie Plan Items
 Production Plan Sales Order,Productie Plan Verkooporder
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,Project verstandig Stock Tracking
 Projected Qty,Verwachte Aantal
 Projects,Projecten
-Prompt email sending to customers and suppliers,Prompt e-mail verzenden naar klanten en leveranciers
 Prompt for Email on Submission of,Vragen om E-mail op Indiening van
 Properties,Eigenschappen
 Property,Eigendom
@@ -2147,7 +2171,6 @@
 Published On,Gepubliceerd op
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,Trek E-mails van het Postvak IN en bevestig ze als communicatie-records (voor bekende contacten).
 Pull Payment Entries,Trek Betaling Entries
-Pull items from Sales Order mentioned in the above table.,Trek items van Verkooporder vermeld in de bovenstaande tabel.
 Pull sales orders (pending to deliver) based on the above criteria,Trek verkooporders (in afwachting van te leveren) op basis van de bovengenoemde criteria
 Purchase,Kopen
 Purchase Analytics,Aankoop Analytics
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,Aantal reeds vervaardigd
 Quantity and Rate,Hoeveelheid en Prijs
 Quantity and Warehouse,Hoeveelheid en Warehouse
+Quantity cannot be a fraction.,Afname kan een fractie zijn.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Hoeveelheid product verkregen na de productie / ompakken van de gegeven hoeveelheden grondstoffen
 Quantity should be equal to Manufacturing Quantity. ,Hoeveelheid moet gelijk zijn aan Manufacturing Hoeveelheid.
 Quarter,Kwartaal
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,Offerte Verloren Reden
 Quotation Message,Offerte Bericht
 Quotation Sent,Offerte Verzonden
+Quotation Series,Offerte Series
 Quotation To,Offerte Voor
 Quotation Trend,Offerte Trend
 Quotations received from Suppliers.,Offertes ontvangen van leveranciers.
 Quotes to Leads or Customers.,Quotes om leads of klanten.
-Raise Material Request,Raise Materiaal aanvragen
 Raise Material Request when stock reaches re-order level,Raise Materiaal aanvragen bij voorraad strekt re-order niveau
-Raise Production Order,Raise Productieorder
 Raised By,Opgevoed door
 Raised By (Email),Verhoogde Door (E-mail)
 Random,Toeval
@@ -2280,6 +2303,7 @@
 Receivables / Payables,Debiteuren / Crediteuren
 Receivables Group,Vorderingen Groep
 Received Date,Ontvangen Datum
+Received Items To Be Billed,Ontvangen items te factureren
 Received Qty,Ontvangen Aantal
 Received and Accepted,Ontvangen en geaccepteerd
 Receiver List,Ontvanger Lijst
@@ -2293,6 +2317,8 @@
 Recurring Id,Terugkerende Id
 Recurring Invoice,Terugkerende Factuur
 Recurring Type,Terugkerende Type
+Reduce Deduction for Leave Without Pay (LWP),Verminderen Aftrek voor onbetaald verlof (LWP)
+Reduce Earning for Leave Without Pay (LWP),Verminderen Verdienen voor onbetaald verlof (LWP)
 Ref Code,Ref Code
 Ref Date is Mandatory if Ref Number is specified,Ref Date is Verplicht indien Ref nummer is opgegeven
 Ref DocType,Ref DocType
@@ -2302,6 +2328,8 @@
 Ref Type,Ref Type
 Reference,Verwijzing
 Reference Date,Referentie Datum
+Reference DocName,Referentie DocName
+Reference DocType,Referentie DocType
 Reference Name,Referentie Naam
 Reference Number,Referentienummer
 Reference Type,Referentie Type
@@ -2322,10 +2350,12 @@
 Remove Bookmark,Bladwijzer verwijderen
 Rename Log,Hernoemen Inloggen
 Rename Tool,Wijzig de naam van Tool
-Rename multiple items in one go,Hernoemen meerdere items in een keer
 Rename...,Hernoemen ...
 Rented,Verhuurd
+Repeat On,Herhaal On
+Repeat Till,Herhaal Till
 Repeat on Day of Month,Herhaal dit aan Dag van de maand
+Repeat this Event,Herhaal dit evenement
 Replace,Vervang
 Replace Item / BOM in all BOMs,Vervang Item / BOM in alle stuklijsten
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Vervang een bepaalde BOM in alle andere BOMs waar het wordt gebruikt. Deze vervangt de oude BOM link, updaten kosten en regenereren &quot;BOM Explosion Item&quot; tafel als per nieuwe BOM"
@@ -2358,13 +2388,14 @@
 Reseller,Reseller
 Reserved Quantity,Gereserveerde Aantal
 Reserved Warehouse,Gereserveerde Warehouse
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,Gereserveerde Warehouse in Sales Order / Finished Goods Warehouse
+Reserved Warehouse is missing in Sales Order,Gereserveerde Warehouse ontbreekt in verkooporder
 Resignation Letter Date,Ontslagbrief Datum
 Resolution,Resolutie
 Resolution Date,Resolutie Datum
 Resolution Details,Resolutie Details
 Resolved By,Opgelost door
 Restrict IP,Beperken IP
-Restrict submission rights based on amount,Beperk de indiening rechten op basis van hoeveelheid
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),"Beperk de gebruiker van dit IP-adres alleen. Meerdere IP-adressen kunnen worden toegevoegd door het scheiden van met komma&#39;s. Ook aanvaardt gedeeltelijke IP-adres, zoals (111.111.111)"
 Restricting By User,Het beperken van deze gebruiker
 Retail,Kleinhandel
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,Salaris Structuur Aftrek
 Salary Structure Earning,Salaris Structuur verdienen
 Salary Structure Earnings,Salaris Structuur winst
+Salary breakup based on Earning and Deduction.,Salaris verbreken op basis Verdienen en Aftrek.
 Salary components.,Salaris componenten.
 Sales,Sales
 Sales Analytics,Sales Analytics
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),Sales Person Target Variance (Post Group-Wise)
 Sales Person Targets,Sales Person Doelen
 Sales Person-wise Transaction Summary,Sales Person-wise Overzicht opdrachten
-Sales Rate,Sales Rate
 Sales Register,Sales Registreer
 Sales Return,Verkoop Terug
 Sales Taxes and Charges,Verkoop en-heffingen
@@ -2484,7 +2515,6 @@
 Scheduled,Geplande
 Scheduled Confirmation Date,Geplande Bevestiging Datum
 Scheduled Date,Geplande Datum
-Scheduler Error Log,Planner Foutenlog
 Scheduler Log,Scheduler Inloggen
 School/University,School / Universiteit
 Score (0-5),Score (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,Selecteer DocType
 Select Document Type,Selecteer de documenttypen die
 Select Document Type or Role to start.,Selecteer Soort document of rol om te beginnen.
+Select Items,Selecteer Items
 Select PR,Selecteer PR
 Select Print Format,Selecteer Print Format
 Select Print Heading,Selecteer Print rubriek
@@ -2562,8 +2593,8 @@
 Send SMS,SMS versturen
 Send To,Verzenden naar
 Send To Type,Verzenden naar type
+Send an email reminder in the morning,Stuur dan een e-mail reminder in de ochtend
 Send automatic emails to Contacts on Submitting transactions.,Stuur automatische e-mails naar Contacten op Indienen van transacties.
-"Send bulk SMS to leads, customers, contacts","Stuur bulk SMS naar leads, klanten, contacten"
 Send mass SMS to your contacts,Stuur massa SMS naar uw contacten
 Send regular summary reports via Email.,Stuur regelmatig beknopte verslagen via e-mail.
 Send to this list,Stuur deze lijst
@@ -2580,7 +2611,6 @@
 Serial No Status,Serienummer Status
 Serial No Warranty Expiry,Serial Geen garantie Expiry
 Serialized Item: ',Geserialiseerde Item: &#39;
-Series,Serie
 Series List for this Transaction,Series Lijst voor deze transactie
 Server,Server
 Service Address,Service Adres
@@ -2590,19 +2620,13 @@
 Session Expiry,Sessie Vervaldatum
 Session Expiry in Hours e.g. 06:00,"Sessie Vervaldatum in uren, bijvoorbeeld 06:00"
 Set Banner from Image,Stel Banner uit Afbeelding
-Set From Image,Set Van Afbeelding
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Set Item Group-wise budgetten op dit gebied. U kunt ook seizoensinvloeden door de Distribution.
 Set Login and Password if authentication is required.,Aanmelding en wachtwoorden instellen als verificatie vereist is.
 Set New Password,Set Nieuw wachtwoord
 Set Value,Set Value
 "Set a new password and ""Save""",Stel een nieuw wachtwoord in en &quot;Opslaan&quot;
-Set default values for entry,Stel standaardwaarden voor de toegang
-Set default values for users (also used for permissions).,Stel standaardwaarden voor gebruikers (ook gebruikt voor permissies).
-Set multiple numbering series for transactions,Stel meerdere nummerreeks voor transacties
-Set permissions on transactions / masters,Machtigingen voor transacties / masters
 Set prefix for numbering series on your transactions,Stel prefix voor het nummeren van serie over uw transacties
 Set targets Item Group-wise for this Sales Person.,Set richt Item Group-wise voor deze verkoper.
-Set workflow rules.,Stel workflow regels.
 "Set your background color, font and image (tiled)","Zet je achtergrond kleur, lettertype en afbeelding (tegel)"
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","Stel hier uw uitgaande e-mail SMTP-instellingen. Alle systeem gegenereerde meldingen, zal e-mails gaan van deze e-mail server. Als u niet zeker bent, laat dit leeg om ERPNext servers (e-mails worden nog steeds verzonden vanaf uw e-id) te gebruiken of uw e-mailprovider te contacteren."
 Setting Account Type helps in selecting this Account in transactions.,Instellen Account Type helpt bij het selecteren van deze account in transacties.
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,Setup van de Winkelwagen.
 Setup of fonts and background.,Instellen van lettertypen en de achtergrond.
 "Setup of top navigation bar, footer and logo.",Instellen van bovenste navigatiebalk voettekst en logo.
-Setup outgoing SMS via your bulk SMS provider,Stel uitgaande SMS via uw bulk SMS-aanbieder
 Setup to pull emails from support email account,Setup om e-mails te trekken van ondersteuning e-mailaccount
 Share,Aandeel
 Share With,Delen
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,Korte biografie voor website en andere publicaties.
 Shortcut,Kortere weg
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",Toon &quot;Op voorraad&quot; of &quot;Niet op voorraad&quot; op basis van de beschikbare voorraad in dit magazijn.
-Show / Hide Modules,Weergeven / verbergen Modules
 Show Details,Show Details
 Show In Website,Toon in Website
 Show Print First,Eerste Show Print
@@ -2658,11 +2680,9 @@
 Show in Website,Toon in Website
 Show rows with zero values,Toon rijen met nulwaarden
 Show this slideshow at the top of the page,Laat deze slideshow aan de bovenkant van de pagina
-"Show, hide modules","Weergeven, verbergen modules"
 Showing only for,Resultaat alleen voor
 Signature,Handtekening
 Signature to be appended at the end of every email,Handtekening moet worden toegevoegd aan het einde van elke e-mail
-Simplify entry forms by disabling features,Vereenvoudig inschrijfformulieren door het uitschakelen van functies
 Single,Single
 Single Post (article).,Los bericht (artikel).
 Single unit of an Item.,Enkele eenheid van een item.
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,Sorry we waren niet in staat om te vinden wat u zocht.
 Sorry you are not permitted to view this page.,Sorry dat je niet toegestaan ​​om deze pagina te bekijken.
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,Sorry! We kunnen alleen maar staan ​​tot 100 rijen voor Stock Verzoening.
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","Sorry! U kunt het bedrijf standaardvaluta niet veranderen, want er zijn bestaande transacties tegen. Je nodig hebt om deze transacties te annuleren als u de standaardinstelling voor valuta te veranderen."
 Sorry. Companies cannot be merged,Sorry. Bedrijven kunnen niet worden samengevoegd
 Sorry. Serial Nos. cannot be merged,Sorry. Serienummers worden niet samengevoegd
 Sort By,Sorteer op
@@ -2759,6 +2780,7 @@
 Suggestions,Tips
 Sunday,Zondag
 Supplier,Leverancier
+Supplier (Payable) Account,Leverancier (te betalen) Account
 Supplier (vendor) name as entered in supplier master,Leverancier (vendor) naam als die in leverancier meester
 Supplier Account Head,Leverancier Account Head
 Supplier Address,Leverancier Adres
@@ -2792,7 +2814,6 @@
 Symbol,Symbool
 Sync Inbox,Sync Inbox
 Sync Support Mails,Sync Ondersteuning Mails
-Sync backups with remote tools like Dropbox etc.,"Synchroniseren backups met remote tools zoals Dropbox, enz."
 Sync with Dropbox,Synchroniseren met Dropbox
 Sync with Google Drive,Synchroniseren met Google Drive
 System,Systeem
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page",De &quot;Web Page&quot; dat is de homepagina van de site
 The BOM which will be replaced,De BOM die zal worden vervangen
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",Het item dat het pakket vertegenwoordigt. Dit artikel moet hebben &quot;Is Stock Item&quot; als &quot;No&quot; en &quot;Is Sales Item&quot; als &quot;Yes&quot;
-The account to which you will pay (have paid) the money to.,De account waarnaar u betaalt (heeft betaald) het geld aan.
 The date at which current entry is made in system.,De datum waarop huidige item wordt gemaakt in het systeem.
 The date at which current entry will get or has actually executed.,De datum waarop huidige item krijgt of heeft daadwerkelijk zijn uitgevoerd.
 The date on which next invoice will be generated. It is generated on submit.,De datum waarop volgende factuur wordt gegenereerd. Het wordt gegenereerd op te dienen.
@@ -2927,6 +2947,7 @@
 To Currency,Naar Valuta
 To Date,To-date houden
 To Discuss,Om Bespreek
+To Do,Te doen
 To Do List,To Do List
 To PR Date,Om PR Datum
 To Package No.,Op Nee Pakket
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","Als u automatisch Support Tickets maken van uw inkomende e-mail, hier stelt u uw POP3-instellingen. U moet idealiter een aparte e-id voor het ERP-systeem, zodat alle e-mails worden gesynchroniseerd in het systeem van die e-mail-ID. Als u niet zeker bent, neem dan contact op met uw e-mailprovider."
 "To create an Account Head under a different company, select the company and save customer.","Om een ​​account te creëren hoofd onder een andere onderneming, selecteert u het bedrijf en op te slaan klant."
 To enable <b>Point of Sale</b> features,Om <b>Point of Sale</b> functies in te schakelen
+To enable more currencies go to Setup > Currency,Om meer munten kunnen gaan naar&gt; Currency Setup
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","Om weer op te halen items, klikt u op &#39;Get Items&#39; knop \ of handmatig bijwerken van de hoeveelheid."
 "To format columns, give column labels in the query.","Om kolommen opmaken, geef kolom labels in de query."
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.","Om verder te beperken rechten op basis van bepaalde waarden in een document, gebruikt u de &#39;Staat&#39; instellingen."
@@ -2953,7 +2975,6 @@
 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.,Om object in verkoop-en inkoopdocumenten op basis van hun seriële nos. Dit wordt ook gebruikt om informatie over de garantie van het product volgen.
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,"Als u items in verkoop-en inkoopdocumenten volgen met batch nos <br> <b>Voorkeur Industrie: Chemische stoffen, enz.</b>"
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Om items met behulp van barcode te volgen. Je zult in staat zijn om items in leveringsbon en Sales Invoice voer door het scannen van barcodes van item.
-"To update your HTML from attachment, click here","Om uw HTML van gehechtheid bij te werken, klik hier"
 ToDo,ToDo
 Tools,Gereedschap
 Top,Top
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),Total Tax (Company Munt)
 Total Taxes and Charges,Totaal belastingen en heffingen
 Total Taxes and Charges (Company Currency),Total en-heffingen (Company Munt)
+Total Working Days In The Month,Totaal Werkdagen In De Maand
 Total amount of invoices received from suppliers during the digest period,Totaal bedrag van de facturen van leveranciers ontvangen tijdens de digest periode
 Total amount of invoices sent to the customer during the digest period,Totaalbedrag van de verzonden facturen aan de klant tijdens de digest periode
-Total days in month,Totaal aantal dagen in maand
 Total in words,Totaal in woorden
+Total production order qty for item,Totale productie aantallen bestellen voor punt
 Totals,Totalen
 Track separate Income and Expense for product verticals or divisions.,Track aparte Inkomsten en uitgaven voor product verticals of divisies.
 Track this Delivery Note against any Project,Volg dit pakbon tegen elke Project
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,Verpakking Conversie Detail
 UOM Conversion Details,Verpakking Conversie Details
 UOM Conversion Factor,Verpakking Conversie Factor
+UOM Conversion Factor is mandatory,UOM Conversie Factor is verplicht
 UOM Details,Verpakking Details
 UOM Name,Verpakking Naam
 UOM Replace Utility,Verpakking Vervang Utility
@@ -3044,6 +3067,7 @@
 Unread Messages,Ongelezen berichten
 Unscheduled,Ongeplande
 Unsubscribed,Uitgeschreven
+Upcoming Events for Today,Evenementen voor vandaag
 Update,Bijwerken
 Update Clearance Date,Werk Clearance Datum
 Update Field,Veld bijwerken
@@ -3052,7 +3076,6 @@
 Update Series Number,Update Serie Nummer
 Update Stock,Werk Stock
 Update Stock should be checked.,Update Stock moeten worden gecontroleerd.
-Update This Application,Update Deze Application
 Update Value,Werk Value
 "Update allocated amount in the above table and then click ""Allocate"" button",Werk toegewezen bedrag in de bovenstaande tabel en klik vervolgens op &quot;Toewijzen&quot; knop
 Update bank payment dates with journals.,Update bank betaaldata met tijdschriften.
@@ -3065,6 +3088,7 @@
 Upload HTML,Upload HTML
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Upload een csv-bestand met twee kolommen:. De oude naam en de nieuwe naam. Max. 500 rijen.
 Upload a file,Een bestand uploaden
+Upload and Import,Upload en importeren
 Upload attendance from a .csv file,Upload aanwezigheid van een. Csv-bestand
 Upload stock balance via csv.,Upload voorraadsaldo via csv.
 Uploading...,Uploaden ...
@@ -3078,7 +3102,6 @@
 User ID,Gebruikers-ID
 User Image,GEBR.AFB
 User Name,Gebruikersnaam
-User Properties,Gebruikerseigenschappen
 User Remark,Gebruiker Opmerking
 User Remark will be added to Auto Remark,Gebruiker Opmerking zal worden toegevoegd aan Auto Opmerking
 User Tags,Gebruiker-tags
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,Gebruiker niet toegestaan ​​om te verwijderen.
 UserRole,UserRole
 Username,Gebruikersnaam
-Users,Gebruikers
 Users who can approve a specific employee's leave applications,Gebruikers die verlofaanvragen van een specifieke werknemer kan goedkeuren
 Users with this role are allowed to do / modify accounting entry before frozen date,Gebruikers met deze rol mogen doen / inschrijving in de boekhouding aanpassen voordat bevroren datum
 Utilities,Utilities
@@ -3116,6 +3138,7 @@
 Voucher No,Blad nr.
 Voucher Type,Voucher Type
 Voucher Type and Date,Voucher Type en Date
+WIP Warehouse required before Submit,WIP Warehouse vereist voordat Submit
 Waiting for Customer,Wachten op klanten
 Walk In,Walk In
 Warehouse,Magazijn
@@ -3149,6 +3172,7 @@
 Website Settings,Website-instellingen
 Website Slideshow,Website Diashow
 Website Slideshow Item,Website Diashow Item
+Website User,Website Gebruiker
 Website Warehouse,Website Warehouse
 Wednesday,Woensdag
 Weekly,Wekelijks
@@ -3214,21 +3238,22 @@
 Yes,Ja
 Yesterday,Gisteren
 You are not authorized to do/modify back dated entries before ,U bent niet bevoegd om te doen / te wijzigen gedateerde gegevens terug voor
-You can create more earning and deduction type from Setup --> HR,U kunt meer verdienen en deductie type uit Setup -&gt; HR
 You can enter any date manually,U kunt elke datum handmatig
 You can enter the minimum quantity of this item to be ordered.,U kunt de minimale hoeveelheid van dit product te bestellen.
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,U kunt niet in Voer zowel Delivery Note en Sales Invoice No \ Geef iemand.
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,U kunt verschillende &#39;eigenschappen&#39; om gebruikers op de standaardwaarden in te stellen en toestemming regels op basis van de waarde van deze eigenschappen in verschillende vormen toe te passen.
 You can start by selecting backup frequency and \					granting access for sync,U kunt beginnen door het selecteren van back-up frequentie en \ verlenen van toegang voor synchronisatie
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,U kunt gebruik maken <a href='#Form/Customize Form'>Customize Form</a> om in te stellen op velden.
+You may need to update: ,U kan nodig zijn om bij te werken:
 Your Customer's TAX registration numbers (if applicable) or any general information,Uw klant fiscale nummers (indien van toepassing) of een algemene informatie
 "Your download is being built, this may take a few moments...","Uw download wordt gebouwd, kan dit enige tijd duren ..."
-Your letter head content in HTML.,Uw brief hoofd-inhoud in HTML.
+Your letter head content,Uw brief hoofd-inhoud
 Your sales person who will contact the customer in future,Uw verkoop persoon die de klant in de toekomst contact op te nemen
 Your sales person who will contact the lead in future,Uw verkoop persoon die de leiding contact in de toekomst
 Your sales person will get a reminder on this date to contact the customer,Uw verkoop persoon krijgt een herinnering op deze datum aan de klant contact op te nemen
 Your sales person will get a reminder on this date to contact the lead,Uw verkoop persoon krijgt een herinnering op deze datum om de leiding te contacteren
 Your support email id - must be a valid email - this is where your emails will come!,Uw steun e-id - moet een geldig e zijn - dit is waar je e-mails zal komen!
+[Error],[Error]
 [Label]:[Field Type]/[Options]:[Width],[Label]: [Veld Type] / [Opties]: [Breedte]
 add your own CSS (careful!),voeg uw eigen CSS (careful!)
 adjust,aanpassen
@@ -3430,6 +3455,7 @@
 volume-up,volume-up
 warning-sign,waarschuwing-teken
 website page link,website Paginalink
+which is greater than sales order qty ,die groter is dan de verkoop aantallen bestellen
 wrench,moersleutel
 yyyy-mm-dd,yyyy-mm-dd
 zoom-in,zoom-in
diff --git a/translations/pt-BR.csv b/translations/pt-BR.csv
index 134408b..274c7d4 100644
--- a/translations/pt-BR.csv
+++ b/translations/pt-BR.csv
@@ -1,12 +1,18 @@
  (Half Day),(Meio Dia)
+ against sales order,contra a ordem de venda
  against same operation,contra a mesma operação
  already marked,já marcada
  and year: ,e ano:
+ as it is stock Item or packing item,como é o estoque do item ou item de embalagem
  at warehouse: ,em armazém:
  by Role ,por função
+ can not be made.,não podem ser feitas.
+ can not be marked as a ledger as it has existing child,"não pode ser marcado como um livro, pois tem criança existente"
  cannot be 0,não pode ser 0
  cannot be deleted.,não pode ser excluído.
  does not belong to the company,não pertence à empresa
+ has already been submitted.,já foi apresentado.
+ has been freezed. ,foi congelado.
  has been freezed. \				Only Accounts Manager can do transaction against this account,foi congelado. \ Apenas Gerente de Contas pode fazer transação contra essa conta
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item","é menor do que é igual a zero no sistema, \ taxa de avaliação é obrigatória para este item"
  is mandatory,é obrigatório(a)
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,"é agora o padrão de Ano Fiscal. \ Por favor, atualize seu navegador para que a alteração tenha efeito."
  is present in one or many Active BOMs,está presente em uma ou várias BOMs ativos
  not active or does not exists in the system,não está ativo ou não existe no sistema
+ not submitted,não apresentou
  or the BOM is cancelled or inactive,ou a LDM é cancelada ou inativa
  should be 'Yes'. As Item: ,deve ser &quot;sim&quot;. Como item:
  should be same as that in ,deve ser o mesmo que na
  was on leave on ,estava de licença em
+ will be ,será
  will be over-billed against mentioned ,será super-faturados contra mencionada
  will become ,ficará
 """Company History""",&quot;Histórico da Empresa&quot;
@@ -56,6 +64,7 @@
 15px,15px
 16px,16px
 2 days ago,Há 2 dias
+: Duplicate row from same ,: Duplicar linha do mesmo
 : It is linked to other active BOM(s),: Está ligado a outra(s) LDM(s) ativa(s)
 : Mandatory for a Recurring Invoice.,: Obrigatório para uma Fatura Recorrente.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">Para gerenciar Grupos de Clientes, clique aqui</a>"
@@ -102,6 +111,7 @@
 Account Id,Id da Conta
 Account Name,Nome da Conta
 Account Type,Tipo de Conta
+Account for this ,Conta para isso
 Accounting,Contabilidade
 Accounting Year.,Ano de contabilidade.
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Registro contábil congelado até a presente data, ninguém pode fazer / modificar entrada exceto papel especificado abaixo."
@@ -114,6 +124,7 @@
 Action,Ação
 Active,Ativo
 Active: Will extract emails from ,Ativo: Será que extrair e-mails a partir de
+Activity,Atividade
 Activity Log,Log de Atividade
 Activity Type,Tipo da Atividade
 Actual,Real
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),Adicionar um banner para o site. (Pequenos banners são geralmente boas)
 Add attachment,Adicionar anexo
 Add code as &lt;script&gt;,Adicionar código como &lt;script&gt;
-Add custom code to forms,Adicionar código personalizado aos formulários
-Add fields to forms,Adicionar campos aos formulários
-Add headers for standard print formats,Adicionar cabeçalhos para formatos de impressão padrão
 Add new row,Adicionar nova linha
 Add or Deduct,Adicionar ou Deduzir
 Add rows to set annual budgets on Accounts.,Adicionar linhas para definir orçamentos anuais nas Contas.
@@ -158,7 +166,6 @@
 Add to To Do,Adicionar à Lista de Tarefas
 Add to To Do List of,Adicionar à Lista de Tarefas de
 Add/Remove Recipients,Adicionar / Remover Destinatários
-"Add/remove users, set roles, passwords etc","Adicionar / remover usuários, definir funções, senhas etc"
 Additional Info,Informações Adicionais
 Address,Endereço
 Address & Contact,Address &amp; Contact
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,O endereço a ser exibida na Página de Contato
 Adds a custom field to a DocType,Adiciona um campo personalizado em um DocType
 Adds a custom script (client or server) to a DocType,Adiciona um script personalizado (cliente ou servidor) em um DocType
-Administration,Administração
 Advance Amount,Quantidade Antecipada
 Advance amount,Valor do adiantamento
 Advanced Scripting,Scripts Avançados
@@ -238,6 +244,7 @@
 Allow Users,Permitir que os usuários
 Allow on Submit,Permitir ao Enviar
 Allow the following users to approve Leave Applications for block days.,Permitir que os usuários a seguir para aprovar aplicações deixam para os dias de bloco.
+Allow user to edit Price List Rate in transactions,Permitir ao usuário editar Lista de Preços Taxa em transações
 Allow user to login only after this hour (0-24),Permitir que o usuário faça o login somente após esta hora (0-24)
 Allow user to login only before this hour (0-24),Permitir que o usuário faça o login somente antes desta hora (0-24)
 Allowance Percent,Percentual de tolerância
@@ -252,8 +259,6 @@
 Amount >=,Quantidade&gt; =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","Um arquivo de ícone com extensão .ico. Deve ser de 16 x 16 px. Gerado usando um gerador de favicon. [ <a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a> ]"
 Analytics,Analítica
-Annual Cost To Company,Custo Anual To Empresa
-Annual Cost To Company can not be less than 12 months of Total Earning,Custo Anual To Company não pode ser inferior a 12 meses de Earning Total de
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,"Outra estrutura Salário &#39;% s&#39; está ativo para o empregado &#39;% s&#39;. Por favor, faça seu status &#39;inativo&#39; para prosseguir."
 "Any other comments, noteworthy effort that should go in the records.","Quaisquer outros comentários, esforço notável que deva ir para os registros."
 Applicable Holiday List,Lista de Férias Aplicável
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,Aplicar / Aprovar Licenças
 Apply Shipping Rule,Aplicar Rule Envios
 Apply Taxes and Charges Master,"Aplicar Impostos, taxas e Encargos mestras"
-Apply latest updates and patches to this app,Aplicar atualizações mais recentes e patches de para this app
 Appraisal,Avaliação
 Appraisal Goal,Meta de Avaliação
 Appraisal Goals,Metas de Avaliação
@@ -300,7 +304,6 @@
 Attached To DocType,Anexado To DOCTYPE
 Attached To Name,Anexado Para Nome
 Attachment,Acessório
-Attachment removed. You may need to update: ,Anexo removido. Você pode precisar atualizar:
 Attachments,Anexos
 Attempted to Contact,Tentou entrar em Contato
 Attendance,Comparecimento
@@ -309,7 +312,7 @@
 Attendance From Date,Data Inicial de Comparecimento
 Attendance To Date,Data Final de Comparecimento
 Attendance can not be marked for future dates,Atendimento não pode ser marcado para datas futuras
-Attendance for the employee: ,De Presença para o empregado:
+Attendance for the employee: ,Atendimento para o empregado:
 Attendance record.,Registro de comparecimento.
 Attributions,Atribuições
 Authorization Control,Controle de autorização
@@ -422,7 +425,6 @@
 Brand Name,Marca
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","Marca é o que aparece no canto superior direito da barra de ferramentas. Se for uma imagem, ithas certeza de um fundo transparente e usar a tag /&gt; &lt;img. Manter o tamanho como 200px x 30px"
 Brand master.,Cadastro de Marca.
-Branding and Printing,Identificação de Marca e Impressão
 Brands,Marcas
 Breakdown,Colapso
 Budget,Orçamento
@@ -440,6 +442,7 @@
 Build Sitemap,Construir Mapa do Site
 Bulk Email,E-mail em massa
 Bulk Email records.,Registros de e-mail em massa.
+Bummer! There are more holidays than working days this month.,Bummer! Há mais feriados do que dias úteis deste mês.
 Bundle items at time of sale.,Empacotar itens no momento da venda.
 Button,Botão
 Buyer of Goods and Services.,Comprador de Mercadorias e Serviços.
@@ -490,7 +493,6 @@
 Center,Centro
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.","Alguns documentos não devem ser alterados uma vez finalizados, como uma nota fiscal, por exemplo. O estado final de tais documentos é chamado <b>Enviado.</b> Você pode restringir as funções que podem Enviar."
 Change UOM for an Item.,Alterar UDM de um item.
-"Change entry properties (hide fields, make mandatory etc)","Alterar as propriedades do lançamento (ocultar campos, tornar obrigatório, etc)"
 Change the starting / current sequence number of an existing series.,Alterar o número sequencial de início/atual de uma série existente.
 Channel Partner,Parceiro de Canal
 Charge,Carga
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Marque esta opção se você deseja forçar o usuário a selecionar uma série antes de salvar. Não haverá nenhum padrão se você marcar isso.
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,Marque esta opção se você quiser enviar e-mails como este só id (no caso de restrição pelo seu provedor de e-mail).
 Check this if you want to show in website,Marque esta opção se você deseja mostrar no site
+Check this to disallow fractions. (for Nos),Marque esta opção para não permitir frações. (Para n)
 Check this to make this the default letter head in all prints,Marque esta opção para tornar este o cabeçalho padrão em todas as impressões
 Check this to pull emails from your mailbox,Marque esta a puxar os e-mails de sua caixa de correio
 Check to activate,Marque para ativar
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,"Números de registro da empresa para sua referência. Exemplo: CNPJ, IE, etc"
 Company registration numbers for your reference. Tax numbers etc.,"Números da empresa de registro para sua referência. Números fiscais, etc"
 Complaint,Reclamação
+Complete,Completar
 Complete By,Completar em
 Completed,Concluído
 Completed Qty,Qtde concluída
@@ -626,12 +630,12 @@
 Cost Center Name,Nome do Centro de Custo
 Cost Center is mandatory for item: ,Centro de Custo é obrigatória para o item:
 Cost Center must be specified for PL Account: ,Centro de Custo deve ser especificado para a Conta PL:
-Cost to Company,Custo para Empresa
 Costing,Custeio
 Country,País
 Country Name,Nome do País
 Create,Criar
 Create Bank Voucher for the total salary paid for the above selected criteria,Criar Comprovante Bancário para o salário total pago para os critérios acima selecionados
+Create Material Requests,Criar Pedidos de Materiais
 Create Production Orders,Criar Ordens de Produção
 Create Receiver List,Criar Lista de Receptor
 Create Salary Slip,Criar Folha de Pagamento
@@ -680,6 +684,7 @@
 Custom Startup Code,Código de inicialização personalizado
 Custom?,Personalizado?
 Customer,Cliente
+Customer (Receivable) Account,Cliente (receber) Conta
 Customer / Item Name,Cliente / Nome do item
 Customer Account,Conta de Cliente
 Customer Account Head,Cliente Cabeça Conta
@@ -688,6 +693,8 @@
 Customer Code,Código do Cliente
 Customer Codes,Códigos de Clientes
 Customer Details,Detalhes do Cliente
+Customer Discount,Discount cliente
+Customer Discounts,Descontos a clientes
 Customer Feedback,Comentário do Cliente
 Customer Group,Grupo de Clientes
 Customer Group Name,Nome do grupo de Clientes
@@ -717,11 +724,10 @@
 DN,DN
 DN Detail,Detalhe DN
 Daily,Diário
+Daily Event Digest is sent for Calendar Events where reminders are set.,Diariamente Evento Digest é enviado para Calendário de eventos onde os lembretes são definidos.
 Daily Time Log Summary,Resumo Diário Log Tempo
-"Daily, weekly, monthly email Digests","Resumos diários, semanais e mensais por e-mail"
 Danger,Perigo
 Data,Dados
-Data Import,Importação de Dados
 Data missing in table,Falta de dados na tabela
 Database,Banco de dados
 Database Folder ID,ID Folder Database
@@ -777,6 +783,7 @@
 Default Settings,Configurações padrão
 Default Source Warehouse,Almoxarifado da origem padrão
 Default Stock UOM,Padrão da UDM do Estouqe
+Default Supplier,Fornecedor padrão
 Default Supplier Type,Tipo de fornecedor padrão
 Default Target Warehouse,Almoxarifado de destino padrão
 Default Territory,Território padrão
@@ -795,6 +802,7 @@
 Delete,Excluir
 Delete Row,Apagar Linha
 Delivered,Entregue
+Delivered Items To Be Billed,Itens entregues a ser cobrado
 Delivered Qty,Qtde entregue
 Delivery Address,Endereço de entrega
 Delivery Date,Data de entrega
@@ -813,7 +821,6 @@
 Delivery Time,Prazo de entrega
 Delivery To,Entrega
 Department,Departamento
-Depend on LWP,Depende do LWP
 Depends On,Depende
 Depends on LWP,Dependem do LWP
 Descending,Descendente
@@ -864,6 +871,7 @@
 DocType or Field,DocType ou Campo
 Document,Documento
 Document Description,Descrição do documento
+Document Numbering Series,Documento série de numeração
 Document Status transition from ,Documento transição Estado de
 Document Type,Tipo de Documento
 Document is only editable by users of role,Documento só é editável por usuários da função
@@ -934,7 +942,7 @@
 Employee Leave Balance,Equilíbrio Leave empregado
 Employee Name,Nome do Funcionário
 Employee Number,Número do Funcionário
-Employee Records to be created by ,Empregado Records para ser criado por
+Employee Records to be created by,Empregado Records para ser criado por
 Employee Setup,Configuração do Funcionário
 Employee Type,Tipo de empregado
 Employee grades,Notas do funcionário
@@ -944,7 +952,6 @@
 Employees Email Id,Endereços de e-mail dos Funcionários
 Employment Details,Detalhes de emprego
 Employment Type,Tipo de emprego
-Enable / disable currencies.,Ativar / desativar moedas.
 Enable Auto Inventory Accounting,Ativar Contabilidade Inventário Auto
 Enable Shopping Cart,Ativar Carrinho de Compras
 Enabled,Habilitado
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,Erro: O documento foi modificado depois de abri-la
 Estimated Material Cost,Custo estimado de Material
 Event,Evento
+Event End must be after Start,Evento Final deverá ser após o início
 Event Individuals,Indivíduos do Evento
 Event Role,Função do Evento
 Event Roles,Funções do Evento
 Event Type,Tipo de Evento
 Event User,Usuário do Evento
+Events In Today's Calendar,Eventos no calendário de hoje
+Every Day,Every Day
+Every Month,Todos os meses
+Every Week,Todas as semanas
+Every Year,Todo Ano
 Everyone can read,Todo mundo pode ler
 Example:,Exemplo:
 Exchange Rate,Taxa de Câmbio
@@ -1019,8 +1032,6 @@
 Exports,Exportações
 External,Externo
 Extract Emails,Extrair e-mails
-Extract Job Applicant from jobs email id e.g. jobs@example.com,"Extraia Candidado a Emprego do e-mail de empregos, por exemplo empregos@exemplo.com"
-Extract Leads from sales email id e.g. sales@example.com,"Extraia Prospectos do e-mail de vendas, por exemplo vendas@exemplo.com"
 FCFS Rate,Taxa FCFS
 FIFO,PEPS
 Facebook Share,Compartilhar Facebook
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Campos separados por vírgula (,) serão incluídos na lista <br /> <b>Pesquisa por</b> da caixa de diálogo Pesquisar"
 File,Arquivo
 File Data,Dados de arquivo
-File Manager,Gerenciador de arquivos
 File Name,Nome do arquivo
 File Size,Tamanho
 File URL,URL do arquivo
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,Data final de confirmação
 Financial Analytics,Análise Financeira
 Financial Statements,Demonstrações Financeiras
-Financial Years for books of accounts,Exercícios para os livros-caixas
 First Name,Nome
 First Responded On,Primeira resposta em
 Fiscal Year,Exercício fiscal
@@ -1090,6 +1099,7 @@
 For Sales Invoice,Para fatura de vendas
 For Server Side Print Formats,Para o lado do servidor de impressão Formatos
 For Territory,Para Território
+For UOM,Para UOM
 For Warehouse,Para Almoxarifado
 "For comparative filters, start with","Para filtros comparativos, comece com"
 "For e.g. 2012, 2012-13","Para por exemplo 2012, 2012-13"
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,Congelar da Entries
 Friday,Sexta-feira
 From,De
+From Bill of Materials,De Bill of Materials
 From Company,Da Empresa
 From Currency,De Moeda
 From Currency and To Currency cannot be same,De Moeda e Para Moeda não pode ser o mesmo
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,A data inicial deve ser anterior a data final
 From Delivery Note,De Nota de Entrega
 From Employee,De Empregado
+From Lead,De Chumbo
 From PR Date,De PR Data
 From Package No.,De No. Package
 From Purchase Order,Da Ordem de Compra
@@ -1150,8 +1162,8 @@
 Get Current Stock,Obter Estoque atual
 Get From ,Obter do
 Get Items,Obter itens
+Get Items From Sales Orders,Obter itens de Pedidos de Vendas
 Get Last Purchase Rate,Obter Valor da Última Compra
-Get Latest Updates,Receba as últimas atualizações
 Get Non Reconciled Entries,Obter lançamentos não Reconciliados
 Get Outstanding Invoices,Obter faturas pendentes
 Get Purchase Receipt,Obter Recibo de compra
@@ -1161,7 +1173,6 @@
 Get Template,Obter Modelo
 Get Terms and Conditions,Obter os Termos e Condições
 Get Weekly Off Dates,Obter datas de descanso semanal
-Get a list of errors encountered by the Scheduler,Obter uma lista de erros encontrados pelo Scheduler
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Obter valorização e estoque disponível no almoxarifado de origem/destino na data e hora de postagem mencionada. Se for item serializado, pressione este botão depois de entrar os nº de série."
 Give additional details about the indent.,Dê mais detalhes sobre o travessão.
 Global Defaults,Padrões globais
@@ -1193,9 +1204,9 @@
 Group or Ledger,Grupo ou Razão
 Groups,Grupos
 HR,RH
+HR Settings,Configurações HR
 HTML,HTML
 HTML / Banner that will show on the top of product list.,HTML / Faixa que vai ser mostrada no topo da lista de produtos.
-"HTML print formats for quotes, invoices etc","Formatos de impressão em HTML para cotações, notas fiscais, etc"
 Half Day,Meio Dia
 Half Yearly,Semestral
 Half-yearly,Semestral
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children","Aqui você pode manter detalhes familiares como o nome e ocupação do cônjuge, pai e filhos"
 "Here you can maintain height, weight, allergies, medical concerns etc","Aqui você pode manter a altura, peso, alergias, preocupações médica, etc"
 Hey there! You need to put at least one item in \				the item table.,Hey there! Você precisa colocar pelo menos um item em \ tabela do item.
+Hey! All these items have already been invoiced.,Hey! Todos esses itens já foram faturados.
 Hey! There should remain at least one System Manager,Hey! Não deve permanecer pelo menos um System Manager
 Hidden,Escondido
 Hide Actions,Ocultar Ações
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults","Como essa moeda deve ser formatada? Se não for definido, serão usados os padrões do sistema"
 How to upload,Como fazer o carregamento
 Hrvatski,Hrvatski
+Human Resources,Recursos Humanos
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,Viva! O dia (s) em que você está aplicando para deixar \ coincidir com feriado (s). Você não precisa pedir licença.
 I,Eu
 ID (name) of the entity whose property is to be set,ID (nome) da entidade cuja propriedade é para ser definida
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,Se orçamento anual for excedido
 "If a User does not have access at Level 0, then higher levels are meaningless","Se um usuário não tem acesso nível 0, então os níveis mais altos são irrelevantes"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","Se marcado, os itens da LDM para a Sub-Montagem serão considerados para obter matérias-primas. Caso contrário, todos os itens da sub-montagem vão ser tratados como matéria-prima."
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Se marcado, não total. de dias de trabalho vai incluir férias, e isso vai reduzir o valor de salário por dia"
 "If checked, all other workflows become inactive.","Se marcada, todos os outros fluxos de trabalho tornam-se inativos."
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","Se marcado, um e-mail com formato HTML anexado será adicionado a uma parte do corpo do email, bem como anexo. Para enviar apenas como acessório, desmarque essa."
 "If checked, the Home page will be the default Item Group for the website.","Se marcado, a página inicial do site será o Grupo de Itens padrão."
@@ -1305,7 +1319,6 @@
 Import,Importar
 Import Attendance,Importação de Atendimento
 Import Log,Importar Log
-Import data from spreadsheet (csv) files,Importar dados de planilhas (csv)
 Important dates and commitments in your project life cycle,Datas importantes e compromissos no ciclo de vida do seu projeto
 Imports,Importações
 In Dialog,Em diálogo
@@ -1314,6 +1327,7 @@
 In List View,Na exibição de lista
 In Process,Em Processo
 In Report Filter,No Filtro do Relatório
+In Row,Em Linha
 In Store,Na loja
 In Words,Por extenso
 In Words (Company Currency),In Words (Moeda Company)
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","No Gerenciador de Permissão, clique no botão na coluna &#39;Condição&#39; para a função que deseja restringir."
 Incentives,Incentivos
 Incharge Name,Nome do Responsável
+Include holidays in Total no. of Working Days,Incluir feriados em nenhuma total. de dias de trabalho
 Income / Expense,Receitas / Despesas
 Income Account,Conta de Renda
 Income Booked,Renda Reservado
@@ -1347,6 +1362,7 @@
 Industry Type,Tipo de indústria
 Info,Informações
 Insert After,Inserir Após
+Insert Below,Inserir Abaixo
 Insert Code,Inserir Código
 Insert Row,Inserir Linha
 Insert Style,Inserir Estilo
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,"Nota de Entrega inválido. Nota de Entrega deve existir e deve estar em estado de rascunho. Por favor, corrigir e tentar novamente."
 Invalid Email,E-mail inválido
 Invalid Email Address,Endereço de email inválido
+Invalid Item or Warehouse Data,Item inválido ou Data Warehouse
 Invalid Leave Approver,Inválido Deixe Approver
 Inventory,Inventário
 Inverse,Inverso
@@ -1511,7 +1528,6 @@
 Lead Lost,Prospecto Perdido
 Lead Name,Nome do Prospecto
 Lead Owner,Proprietário do Prospecto
-Lead Ref,Ref. do Prospecto
 Lead Source,Chumbo Fonte
 Lead Status,Chumbo Estado
 Lead Time Date,Prazo de entrega
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,Deixe em branco se considerado para todas as designações
 Leave blank if considered for all employee types,Deixe em branco se considerado para todos os tipos de empregados
 Leave blank if considered for all grades,Deixe em branco se considerado para todos os graus
+Leave blank if you have not decided the end date.,Deixe em branco se você ainda não decidiu a data de término.
 Leave by,Deixe por
 "Leave can be approved by users with Role, ""Leave Approver""",A licença pode ser aprovado por usuários com função de &quot;Aprovador de Licenças&quot;
 Ledger,Razão
@@ -1553,7 +1570,6 @@
 Letter Head,Timbrado
 Letter Head Image,Imagem do timbrado
 Letter Head Name,Nome do timbrado
-Letter heads for print,Timbrado para impressão
 Level,Nível
 "Level 0 is for document level permissions, higher levels for field level permissions.","Nível 0 é para permissões em nível de documento, os níveis mais elevados são permissões em nível de campo."
 Lft,Esq.
@@ -1563,13 +1579,11 @@
 Linked With,Ligado com
 List,Lista
 List items that form the package.,Lista de itens que compõem o pacote.
-List of companies (not customers / suppliers),Lista das empresas (não clientes / fornecedores)
 List of holidays.,Lista de feriados.
 List of patches executed,Lista de patches executados
 List of records in which this document is linked,Lista de registros a que este documento está ligado
 List of users who can edit a particular Note,Lista de usuários que podem editar uma determinada Nota
 List this Item in multiple groups on the website.,Listar este item em vários grupos no site.
-"List, delete uploaded files.","Listar, excluir arquivos enviados."
 Live Chat,Chat ao vivo
 Load Print View on opening of an existing form,Carregar a visualização de impressão na abertura de um formulário existente
 Loading,Carregando
@@ -1596,6 +1610,7 @@
 Mail Server,Servidor de E-mail
 Main Reports,Relatórios principais
 Main Section,Seção Principal
+Maintain Same Rate Throughout Sales Cycle,Manter o mesmo ritmo durante todo o ciclo de vendas
 Maintain same rate throughout purchase cycle,Manter o mesmo valor através de todo o ciclo de compra
 Maintenance,Manutenção
 Maintenance Date,Data de manutenção
@@ -1616,7 +1631,6 @@
 Make a new,Fazer um novo
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,Certifique-se de que as operações que pretende restringir tenham um campo de ligação &quot;Território&quot; que mapeia para um cadastro de &quot;Território&quot;.
 Male,Masculino
-Manage Numbering Series,Gerenciar numeração Series
 Manage cost of operations,Gerenciar custo das operações
 Manage exchange rates for currency conversion,Gerenciar taxas de câmbio para conversão de moeda
 Mandatory,Obrigatório
@@ -1651,10 +1665,10 @@
 Material Request No,Pedido de material no
 Material Request Type,Tipo de solicitação de material
 Material Request used to make this Stock Entry,Pedido de material usado para fazer essa entrada de material
+Material Requirement,Material Requirement
 Material Transfer,Transferência de material
 Materials,Materiais
 Materials Required (Exploded),Materiais necessários (explodida)
-Materials Requirement Planning (MRP),Planejamento dos Recursos de Manufatura (PRM)
 Max 500 rows only.,Max 500 apenas as linhas.
 Max Attachments,Anexos Max.
 Max Days Leave Allowed,Período máximo de Licença
@@ -1699,6 +1713,7 @@
 Month,Mês
 Monthly,Mensal
 Monthly Attendance Sheet,Folha de Presença Mensal
+Monthly Earning & Deduction,Salário mensal e dedução
 Monthly Salary Register,Salário mensal Registrar
 Monthly salary statement.,Declaração salarial mensal.
 Monthly salary template.,Modelo de declaração salarial mensal.
@@ -1711,7 +1726,9 @@
 Mr,Sr.
 Ms,Sra.
 Multiple Item Prices,Preços de múltiplos itens
+Multiple root nodes not allowed.,"Vários nós raiz, não é permitido."
 Mupltiple Item prices.,Preços de múltiplos itens.
+Must be Whole Number,Deve ser Número inteiro
 Must have report permission to access this report.,Deve ter permissão para acessar relatório deste relatório.
 Must specify a Query to run,Deve especificar uma consulta para executar
 My Settings,Minhas Configurações
@@ -1737,7 +1754,6 @@
 Net Weight,Peso Líquido
 Net Weight UOM,UDM do Peso Líquido
 Net Weight of each Item,Peso líquido de cada item
-Net pay can not be greater than 1/12th of Annual Cost To Company,Remuneração líquida não pode ser maior do que 1/12th de custo anual para Empresa
 Net pay can not be negative,Remuneração líquida não pode ser negativo
 Never,Nunca
 New,Novo
@@ -1795,6 +1811,7 @@
 No of Sent SMS,Nº de SMS enviados
 No of Visits,Nº de Visitas
 No one,Ninguém
+No permission to write / remove.,Sem permissão para escrever / remover.
 No record found,Nenhum registro encontrado
 No records tagged.,Não há registros marcados.
 No salary slip found for month: ,Sem folha de salário encontrado para o mês:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,Itens encomendados a serem entregues
 Ordered Quantity,Quantidade encomendada
 Orders released for production.,Ordens liberadas para produção.
-Organization,Organização
 Organization Profile,Perfil da Organização
 Original Message,Mensagem original
 Other,Outro
 Other Details,Outros detalhes
 Out,Fora
-Out going mail server and support ticket mailbox,Servidor de e-mail de saída e caixa de correio de tickets de suporte
 Out of AMC,Fora do CAM
 Out of Warranty,Fora de Garantia
 Outgoing,De Saída
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),"Servidor de e-mail POP3 (por exemplo, pop.gmail.com)"
 POP3 server e.g. (pop.gmail.com),"Servidor de e-mail POP3 (por exemplo, pop.gmail.com)"
 POS Setting,Configuração de PDV
+POS View,POS Ver
 PR Detail,Detalhe PR
 PRO,PRO
 PS,PS
@@ -1951,10 +1967,10 @@
 Participants,Participantes
 Partly Billed,Parcialmente faturado
 Partly Delivered,Parcialmente entregue
-Partner,Parceiro
 Partner Target Detail,Detalhe da Meta do parceiro
 Partner Type,Tipo de parceiro
 Partner's Website,Site do parceiro
+Passive,Passiva
 Passport Number,Número do Passaporte
 Password,Senha
 Password Expires in (days),Senha expira em (dias)
@@ -1964,12 +1980,12 @@
 Payables,Contas a pagar
 Payables Group,Grupo de contas a pagar
 Payment Collection With Ageing,Cobrança Com o Envelhecimento
+Payment Days,Datas de Pagamento
 Payment Entries,Lançamentos de pagamento
 Payment Entry has been modified after you pulled it. 			Please pull it again.,"Entrada de pagamento foi modificada depois que você tirou isso. Por favor, puxe-o novamente."
 Payment Made With Ageing,O pagamento feito com o Envelhecimento
 Payment Reconciliation,Reconciliação de pagamento
 Payment Terms,Condições de Pagamento
-Payment days,Dias de pagamento
 Payment to Invoice Matching Tool,Ferramenta de Pagamento contra Fatura correspondente
 Payment to Invoice Matching Tool Detail,Detalhe da Ferramenta de Pagamento contra Fatura correspondente
 Payments,Pagamentos
@@ -1984,6 +2000,7 @@
 Percent,Por cento
 Percent Complete,Porcentagem Concluída
 Percentage Allocation,Alocação percentual
+Percentage Allocation should be equal to ,Percentual de alocação deve ser igual ao
 Percentage variation in quantity to be allowed while receiving or delivering this item.,Variação percentual na quantidade a ser permitido ao receber ou entregar este item.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,"Percentagem que estão autorizados a receber ou entregar mais contra a quantidade encomendada. Por exemplo: Se você encomendou 100 unidades. e seu subsídio é de 10%, então você está autorizada a receber 110 unidades."
 Performance appraisal.,Avaliação de desempenho.
@@ -2026,19 +2043,24 @@
 Please check,"Por favor, verifique"
 Please enter Default Unit of Measure,Por favor insira unidade de medida padrão
 Please enter Delivery Note No or Sales Invoice No to proceed,Por favor insira Entrega Nota Não ou fatura de vendas Não para continuar
+Please enter Employee Number,Por favor insira Número do Funcionário
 Please enter Expense Account,Por favor insira Conta Despesa
 Please enter Expense/Adjustment Account,Por favor insira Despesa / Acerto de Contas
 Please enter Purchase Receipt No to proceed,Por favor insira Compra recibo Não para continuar
+Please enter Reserved Warehouse for item ,Por favor insira Warehouse reservada para o item
 Please enter valid,Por favor insira válido
 Please enter valid ,Por favor insira válido
 Please install dropbox python module,"Por favor, instale o Dropbox módulo python"
 Please make sure that there are no empty columns in the file.,"Por favor, certifique-se de que não existem colunas vazias no arquivo."
 Please mention default value for ',"Por favor, mencione o valor padrão para &#39;"
+Please reduce qty.,Reduza qty.
 Please refresh to get the latest document.,Por favor de atualização para obter as últimas documento.
 Please save the Newsletter before sending.,"Por favor, salve o boletim antes de enviar."
 Please select Bank Account,Por favor seleccione Conta Bancária
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Por favor selecione Encaminhar se você também quer incluir o saldo de licenças do ano fiscal anterior neste ano fiscal
 Please select Date on which you want to run the report,Selecione Data na qual você deseja executar o relatório
+Please select Naming Neries,Por favor seleccione nomenclatura Neries
+Please select Price List,"Por favor, selecione Lista de Preço"
 Please select Time Logs.,Por favor seleccione Time Logs.
 Please select a,Por favor seleccione um
 Please select a csv file,"Por favor, selecione um arquivo csv"
@@ -2051,10 +2073,12 @@
 Please select: ,Por favor seleccione:
 Please set Dropbox access keys in,Defina teclas de acesso Dropbox em
 Please set Google Drive access keys in,Defina teclas de acesso do Google Drive em
+Please setup Employee Naming System in Human Resource > HR Settings,"Por favor, configuração Employee Naming System em Recursos Humanos&gt; Configurações HR"
 Please specify,"Por favor, especifique"
 Please specify Company,"Por favor, especifique Empresa"
 Please specify Company to proceed,"Por favor, especifique Empresa proceder"
 Please specify Default Currency in Company Master \			and Global Defaults,"Por favor, especificar a moeda padrão na empresa MASTER \ e Padrões Globais"
+Please specify a,"Por favor, especifique um"
 Please specify a Price List which is valid for Territory,"Por favor, especifique uma lista de preços que é válido para o território"
 Please specify a valid,"Por favor, especifique um válido"
 Please specify a valid 'From Case No.',"Por favor, especifique um válido &#39;De Caso No.&#39;"
@@ -2070,7 +2094,7 @@
 Posts,Posts
 Potential Sales Deal,Negócio de Vendas em potencial
 Potential opportunities for selling.,Oportunidades potenciais para a venda.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","Precisão para campos Float (quantidade, descontos, percentuais, etc) é apenas para exibição. Floats ainda serão calculado até 6 casas decimais."
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","Precisão para os campos float (quantidade, descontos, porcentagens, etc.) Carros alegóricos será arredondado para decimais especificadas. Padrão = 3"
 Preferred Billing Address,Preferred Endereço de Cobrança
 Preferred Shipping Address,Endereço para envio preferido
 Prefix,Prefixo
@@ -2081,7 +2105,6 @@
 Previous Work Experience,Experiência anterior de trabalho
 Price,Preço
 Price List,Lista de Preços
-Price List Country,Lista de Preços País
 Price List Currency,Moeda da Lista de Preços
 Price List Currency Conversion Rate,Taxa de conversão da moeda da lista de preços
 Price List Exchange Rate,Taxa de Câmbio da Lista de Preços
@@ -2089,6 +2112,7 @@
 Price List Name,Nome da Lista de Preços
 Price List Rate,Taxa de Lista de Preços
 Price List Rate (Company Currency),Preço Taxa List (moeda da empresa)
+Price List for Costing,Lista de Preços para Custeio
 Price Lists and Rates,Listas de Preços e Tarifas
 Primary,Primário
 Print Format,Formato de impressão
@@ -2107,6 +2131,7 @@
 Produced Quantity,Quantidade produzida
 Product Enquiry,Consulta de Produto
 Production Order,Ordem de Produção
+Production Orders,Ordens de Produção
 Production Plan Item,Item do plano de produção
 Production Plan Items,Itens do plano de produção
 Production Plan Sales Order,Ordem de Venda do Plano de Produção
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,Projeto sábios Stock Rastreamento
 Projected Qty,Qtde. Projetada
 Projects,Projetos
-Prompt email sending to customers and suppliers,E-mail Prompt envio a clientes e fornecedores
 Prompt for Email on Submission of,Solicitar e-mail no envio da
 Properties,Propriedades
 Property,Propriedade
@@ -2147,7 +2171,6 @@
 Published On,Publicado no
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,Puxar e-mails da caixa de entrada e anexe-os como registros de comunicação (para contatos conhecidos).
 Pull Payment Entries,Puxar os lançamentos de pagamento
-Pull items from Sales Order mentioned in the above table.,Puxar itens da Ordem de Venda mencionada na tabela acima.
 Pull sales orders (pending to deliver) based on the above criteria,Puxar as Ordens de Venda (pendentes de entrega) com base nos critérios acima
 Purchase,Compras
 Purchase Analytics,Análise de compras
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,Quantidade já fabricada
 Quantity and Rate,Quantidade e Taxa
 Quantity and Warehouse,Quantidade e Armazém
+Quantity cannot be a fraction.,A quantidade não pode ser uma fracção.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Quantidade do item obtido após a fabricação / reembalagem a partir de determinadas quantidades de matéria-prima
 Quantity should be equal to Manufacturing Quantity. ,Quantidade deve ser igual a quantidade Manufacturing.
 Quarter,Trimestre
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,Razão da perda da Cotação
 Quotation Message,Mensagem da Cotação
 Quotation Sent,Cotação Enviada
+Quotation Series,Série citação
 Quotation To,Cotação para
 Quotation Trend,Cotação Tendência
 Quotations received from Suppliers.,Citações recebidas de fornecedores.
 Quotes to Leads or Customers.,Cotações para Prospectos ou Clientes.
-Raise Material Request,Levante solicitar material
 Raise Material Request when stock reaches re-order level,Levante solicitar material quando o estoque atinge novo pedido de nível
-Raise Production Order,Levantar Ordem de Produção
 Raised By,Levantadas por
 Raised By (Email),Levantadas por (e-mail)
 Random,Aleatório
@@ -2280,6 +2303,7 @@
 Receivables / Payables,Contas a receber / contas a pagar
 Receivables Group,Grupo de recebíveis
 Received Date,Data de recebimento
+Received Items To Be Billed,Itens recebidos a ser cobrado
 Received Qty,Qtde. recebida
 Received and Accepted,Recebeu e aceitou
 Receiver List,Lista de recebedores
@@ -2293,6 +2317,8 @@
 Recurring Id,Id recorrente
 Recurring Invoice,Nota Fiscal Recorrente
 Recurring Type,Tipo de recorrência
+Reduce Deduction for Leave Without Pay (LWP),Reduzir Dedução por licença sem vencimento (LWP)
+Reduce Earning for Leave Without Pay (LWP),Reduzir a Geração de Renda para sair sem pagar (LWP)
 Ref Code,Código de Ref.
 Ref Date is Mandatory if Ref Number is specified,Ref data é obrigatória se Número Ref é especificada
 Ref DocType,DocType de Ref.
@@ -2302,6 +2328,8 @@
 Ref Type,Tipo de Ref.
 Reference,Referência
 Reference Date,Data de Referência
+Reference DocName,Referência DocNome
+Reference DocType,Referência TipoDoc
 Reference Name,Nome de Referência
 Reference Number,Número de Referência
 Reference Type,Tipo de Referência
@@ -2322,10 +2350,12 @@
 Remove Bookmark,Remover Bookmark
 Rename Log,Renomeie Entrar
 Rename Tool,Ferramenta de Renomear
-Rename multiple items in one go,Renomeie vários itens de uma só vez
 Rename...,Renomear ...
 Rented,Alugado
+Repeat On,Repita On
+Repeat Till,Repita até que
 Repeat on Day of Month,Repita no Dia do Mês
+Repeat this Event,Repita este evento
 Replace,Substituir
 Replace Item / BOM in all BOMs,Substituir item / LDM em todas as LDMs
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Substituir uma LDM específica em todas as LDMs outros onde ela é usada. Isso irá substituir o link da LDM antiga, atualizar o custo e regenerar a tabela &quot;Item de Explosão da LDM&quot; com a nova LDM"
@@ -2358,13 +2388,14 @@
 Reseller,Revendedor
 Reserved Quantity,Quantidade Reservada
 Reserved Warehouse,Almoxarifado Reservado
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,Armazém reservada no Pedido de Vendas / armazém de produtos acabados
+Reserved Warehouse is missing in Sales Order,Reservado Warehouse está faltando na Ordem de Vendas
 Resignation Letter Date,Data da carta de demissão
 Resolution,Resolução
 Resolution Date,Data da Resolução
 Resolution Details,Detalhes da Resolução
 Resolved By,Resolvido por
 Restrict IP,Restringir IP
-Restrict submission rights based on amount,Restringir direitos de envio com base no valor
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),Restringir usuário a partir deste endereço IP. Vários endereços IP podem ser adicionados ao separar com vírgulas. São aceitos também endereços IP parciais como (111.111.111)
 Restricting By User,Restringindo por Usuário
 Retail,Varejo
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,Dedução da Estrutura Salarial
 Salary Structure Earning,Ganho da Estrutura Salarial
 Salary Structure Earnings,Ganhos da Estrutura Salarial
+Salary breakup based on Earning and Deduction.,Separação Salário com base em salário e dedução.
 Salary components.,Componentes salariais.
 Sales,Vendas
 Sales Analytics,Análise de Vendas
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),Vendas Pessoa Variance Alvo (Item Group-Wise)
 Sales Person Targets,Metas do Vendedor
 Sales Person-wise Transaction Summary,Resumo da transação Pessoa-wise vendas
-Sales Rate,Taxa de vendas
 Sales Register,Vendas Registrar
 Sales Return,Retorno de Vendas
 Sales Taxes and Charges,Impostos e Taxas sobre Vendas
@@ -2484,7 +2515,6 @@
 Scheduled,Agendado
 Scheduled Confirmation Date,Data de Confirmação agendada
 Scheduled Date,Data Agendada
-Scheduler Error Log,Scheduler Error Log
 Scheduler Log,Log do Agendador
 School/University,Escola / Universidade
 Score (0-5),Pontuação (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,Selecione o DocType
 Select Document Type,Selecione o Tipo de Documento
 Select Document Type or Role to start.,Selecione o tipo de documento ou função para começar.
+Select Items,Selecione itens
 Select PR,Selecionar PR
 Select Print Format,Selecione o Formato de Impressão
 Select Print Heading,Selecione o Cabeçalho de Impressão
@@ -2562,8 +2593,8 @@
 Send SMS,Envie SMS
 Send To,Enviar para
 Send To Type,Enviar para Digite
+Send an email reminder in the morning,Enviar um e-mail lembrete na parte da manhã
 Send automatic emails to Contacts on Submitting transactions.,Enviar e-mails automáticos para os Contatos ao Submeter transações.
-"Send bulk SMS to leads, customers, contacts","Enviar SMS em massa para prospectos, clientes e contatos"
 Send mass SMS to your contacts,Enviar SMS em massa para seus contatos
 Send regular summary reports via Email.,Enviar relatórios resumidos regularmente via e-mail.
 Send to this list,Enviar para esta lista
@@ -2580,7 +2611,6 @@
 Serial No Status,Estado do Nº de Série
 Serial No Warranty Expiry,Vencimento da Garantia com Nº de Série
 Serialized Item: ',Item serializado: &#39;
-Series,Séries
 Series List for this Transaction,Lista de séries para esta transação
 Server,Servidor
 Service Address,Endereço de Serviço
@@ -2590,19 +2620,13 @@
 Session Expiry,Duração da sessão
 Session Expiry in Hours e.g. 06:00,"Duração da sessão em Horas, por exemplo 06:00"
 Set Banner from Image,Jogo da bandeira da Imagem
-Set From Image,Definir a partir da imagem
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,"Definir orçamentos para Grupos de Itens neste território. Você também pode incluir a sazonalidade, defininda na Distribuição."
 Set Login and Password if authentication is required.,Defina Login e Senha se a autenticação for necessária.
 Set New Password,Definir nova senha
 Set Value,Definir valor
 "Set a new password and ""Save""",Definir uma nova senha e &quot;Salvar&quot;
-Set default values for entry,Definir valores padrão para o lançamento
-Set default values for users (also used for permissions).,Definir valores padrão para os usuários (também usados para permissões).
-Set multiple numbering series for transactions,Definir multiplas séries de numeração para transações
-Set permissions on transactions / masters,Definir permissões em transações / cadastros
 Set prefix for numbering series on your transactions,Definir prefixo para séries de numeração em suas transações
 Set targets Item Group-wise for this Sales Person.,Estabelecer metas para Grupos de Itens para este Vendedor.
-Set workflow rules.,Definir regras do fluxo de trabalho.
 "Set your background color, font and image (tiled)","Defina sua cor de fundo, fonte e imagem (lado a lado)"
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","Defina suas configurações de de e-mail SMTP aqui. Todas as notificações geradas pelo sistema e e-mails são enviados a partir deste servidor de correio. Se você não tem certeza, deixe este campo em branco para usar servidores ERPNext (e-mails ainda serão enviadas a partir do seu endereço de e-mail) ou entre em contato com seu provedor de e-mail."
 Setting Account Type helps in selecting this Account in transactions.,Definir o Tipo de Conta ajuda na seleção desta Conta nas transações.
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,Configuração do Carrinho de Compras.
 Setup of fonts and background.,Configuração de fontes e de fundo.
 "Setup of top navigation bar, footer and logo.","Configuração de barra de navegação do topo, rodapé, e logotipo."
-Setup outgoing SMS via your bulk SMS provider,Configurar envio de SMS através de seu provedor de SMS em massa
 Setup to pull emails from support email account,Configuração para puxar e-mails da conta do e-mail de suporte
 Share,Ação
 Share With,Compartilhar
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,Breve biografia para o site e outras publicações.
 Shortcut,Atalho
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",Mostrar &quot;Em Stock&quot; ou &quot;Fora de Estoque&quot; baseado no estoque disponível neste almoxarifado.
-Show / Hide Modules,Mostrar / Ocultar Módulos
 Show Details,Ver detalhes
 Show In Website,Mostrar No Site
 Show Print First,Mostrar Impressão Primeiro
@@ -2658,11 +2680,9 @@
 Show in Website,Mostrar no site
 Show rows with zero values,Mostrar as linhas com valores zero
 Show this slideshow at the top of the page,Mostrar esta apresentação de slides no topo da página
-"Show, hide modules",Mostrar / Ocultar Módulos
 Showing only for,Mostrando apenas para
 Signature,Assinatura
 Signature to be appended at the end of every email,Assinatura para ser inserida no final de cada e-mail
-Simplify entry forms by disabling features,Simplificar os formulários de entrada pela desativação de recursos
 Single,Único
 Single Post (article).,Resposta Única (artigo).
 Single unit of an Item.,Unidade única de um item.
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,"Desculpe, não encontramos o que você estava procurando."
 Sorry you are not permitted to view this page.,"Desculpe, você não tem permissão para visualizar esta página."
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,Desculpe! Nós só podemos permitir no máximo 100 linhas para Reconciliação de Estoque.
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","Desculpe! Você não pode alterar a moeda padrão da empresa, porque existem operações existentes contra ele. Você terá que cancelar essas transações se você deseja alterar a moeda padrão."
 Sorry. Companies cannot be merged,Desculpe. As empresas não podem ser fundidas
 Sorry. Serial Nos. cannot be merged,Desculpe. N º s de série não podem ser mescladas
 Sort By,Classificar por
@@ -2759,6 +2780,7 @@
 Suggestions,Sugestões
 Sunday,Domingo
 Supplier,Fornecedor
+Supplier (Payable) Account,Fornecedor (pago) Conta
 Supplier (vendor) name as entered in supplier master,"Nome do fornecedor (vendedor), como inscritos no cadastro de fornecedores"
 Supplier Account Head,Fornecedor Cabeça Conta
 Supplier Address,Endereço do Fornecedor
@@ -2792,7 +2814,6 @@
 Symbol,Símbolo
 Sync Inbox,Sincronizar Caixa de Entrada
 Sync Support Mails,Sincronizar E-mails de Suporte
-Sync backups with remote tools like Dropbox etc.,"Sincronize backups remotos com ferramentas como o Dropbox, etc"
 Sync with Dropbox,Sincronizar com o Dropbox
 Sync with Google Drive,Sincronia com o Google Drive
 System,Sistema
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page",A &quot;Página Web&quot; que é a página inicial do site
 The BOM which will be replaced,A LDM que será substituída
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",O item que representa o pacote. Este item deve ter &quot;É Item de Estoque&quot; como &quot;Não&quot; e &quot;É Item de Venda&quot; como &quot;Sim&quot;
-The account to which you will pay (have paid) the money to.,A conta para a qual você vai pagar (ou paguou) o dinheiro.
 The date at which current entry is made in system.,A data em que o lançamento atual é feito no sistema.
 The date at which current entry will get or has actually executed.,A data em que o lançamento atual vai ser ou foi realmente executado.
 The date on which next invoice will be generated. It is generated on submit.,A data em que próxima fatura será gerada. Ele é gerado em enviar.
@@ -2927,6 +2947,7 @@
 To Currency,A Moeda
 To Date,Até a Data
 To Discuss,Para Discutir
+To Do,Que fazer
 To Do List,Para fazer a lista
 To PR Date,Data de PR
 To Package No.,Para Pacote Nº.
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","Para criar automaticamente Tickets de Suporte a partir da sua caixa de entrada, defina as configurações de POP3 aqui. Você deve, idealmente, criar um E-mail separado para o Sistema ERP para que todas as mensagens sejam sincronizadas com o sistema a partir daquele E-mail. Se você não tiver certeza, entre em contato com seu provedor de e-mail."
 "To create an Account Head under a different company, select the company and save customer.","Para criar uma Conta, sob uma empresa diferente, selecione a empresa e salve o Cliente."
 To enable <b>Point of Sale</b> features,Para habilitar as características de <b>Ponto de Venda</b>
+To enable more currencies go to Setup > Currency,Para permitir que mais moedas vá para Configuração&gt; Currency
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","Para buscar itens novamente, clique em &quot;Obter itens &#39;botão \ ou atualizar a quantidade manualmente."
 "To format columns, give column labels in the query.","Para formatar colunas, dar rótulos de coluna na consulta."
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.","Para restringir ainda mais as permissões com base em determinados valores em um documento, use as definições de &#39;Condição&#39;."
@@ -2953,7 +2975,6 @@
 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.,Para acompanhar o item em documentos de vendas e de compras com base em seus números de série. Isso também pode ser usado para rastrear detalhes sobre a garantia do produto.
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,"Para controlar os itens de vendas e documentos de compra pelo nº do lote<br> <b>Por Ex.: Indústria Química, etc</b>"
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Para rastrear itens usando código de barras. Você será capaz de inserir itens na Guia de Remessa e Nota Fiscal de Venda através do escaneamento do código de barras do item.
-"To update your HTML from attachment, click here","Para atualizar seu código HTML a partir do anexo, clique aqui"
 ToDo,Lista de Tarefas
 Tools,Ferramentas
 Top,Topo
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),Imposto Total (moeda da empresa)
 Total Taxes and Charges,Total de Impostos e Encargos
 Total Taxes and Charges (Company Currency),Total de Impostos e Taxas (moeda da empresa)
+Total Working Days In The Month,Total de dias úteis do mês
 Total amount of invoices received from suppliers during the digest period,O valor total das faturas recebidas de fornecedores durante o período de digestão
 Total amount of invoices sent to the customer during the digest period,O valor total das faturas enviadas para o cliente durante o período de digestão
-Total days in month,Total de dias no mês
 Total in words,Total por extenso
+Total production order qty for item,Total da ordem qty produção para o item
 Totals,Totais
 Track separate Income and Expense for product verticals or divisions.,Acompanhar Receitas e Gastos separados para produtos verticais ou divisões.
 Track this Delivery Note against any Project,Acompanhar este Guia de Remessa contra qualquer projeto
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,Detalhe da Conversão de UDM
 UOM Conversion Details,Detalhes da Conversão de UDM
 UOM Conversion Factor,Fator de Conversão da UDM
+UOM Conversion Factor is mandatory,UOM Fator de Conversão é obrigatório
 UOM Details,Detalhes da UDM
 UOM Name,Nome da UDM
 UOM Replace Utility,Utilitário para Substituir UDM
@@ -3044,6 +3067,7 @@
 Unread Messages,Mensagens não lidas
 Unscheduled,Sem agendamento
 Unsubscribed,Inscrição Cancelada
+Upcoming Events for Today,Próximos Eventos para Hoje
 Update,Atualizar
 Update Clearance Date,Atualizar Data Liquidação
 Update Field,Atualizar Campo
@@ -3052,7 +3076,6 @@
 Update Series Number,Atualizar Números de Séries
 Update Stock,Atualizar Estoque
 Update Stock should be checked.,Atualização de Estoque deve ser verificado.
-Update This Application,Atualizar a aplicação
 Update Value,Atualizar Valor
 "Update allocated amount in the above table and then click ""Allocate"" button",Atualize o montante atribuído na tabela acima e clique no botão &quot;Alocar&quot;
 Update bank payment dates with journals.,Atualizar datas de pagamento bancário com livro Diário.
@@ -3065,6 +3088,7 @@
 Upload HTML,Carregar HTML
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Enviar um arquivo CSV com duas colunas:. O nome antigo eo novo nome. No máximo 500 linhas.
 Upload a file,Carregar um arquivo
+Upload and Import,Carregar e Importar
 Upload attendance from a .csv file,Carregar comparecimento a partir de um arquivo CSV.
 Upload stock balance via csv.,Carregar saldo de estoque a partir de um arquivo CSV.
 Uploading...,Upload ...
@@ -3078,7 +3102,6 @@
 User ID,ID de Usuário
 User Image,Imagem do Usuário
 User Name,Nome de Usuário
-User Properties,Propriedades do Usuário
 User Remark,Observação do Usuário
 User Remark will be added to Auto Remark,Observação do usuário será adicionado à observação automática
 User Tags,Etiquetas de Usuários
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,Usuário não tem permissão para excluir.
 UserRole,Função do Usuário
 Username,Nome do Usuário
-Users,Usuários
 Users who can approve a specific employee's leave applications,Usuários que podem aprovar aplicações deixam de um funcionário específico
 Users with this role are allowed to do / modify accounting entry before frozen date,Usuários com esta função estão autorizados a fazer / modificar lançamentos de contabilidade antes da data de congelamento
 Utilities,Utilitários
@@ -3116,6 +3138,7 @@
 Voucher No,Nº do comprovante
 Voucher Type,Tipo de comprovante
 Voucher Type and Date,Tipo Vale e Data
+WIP Warehouse required before Submit,WIP Warehouse necessária antes de Enviar
 Waiting for Customer,À espera de Cliente
 Walk In,Walk In
 Warehouse,Almoxarifado
@@ -3149,6 +3172,7 @@
 Website Settings,Configurações do site
 Website Slideshow,Slideshow do site
 Website Slideshow Item,Item do Slideshow do site
+Website User,Site do Usuário
 Website Warehouse,Almoxarifado do site
 Wednesday,Quarta-feira
 Weekly,Semanal
@@ -3214,21 +3238,22 @@
 Yes,Sim
 Yesterday,Ontem
 You are not authorized to do/modify back dated entries before ,Você não está autorizado a fazer / modificar volta entradas datadas antes
-You can create more earning and deduction type from Setup --> HR,Você pode criar mais tipos de Ganhos e Deduções a partir de Configuração -&gt; RH
 You can enter any date manually,Você pode entrar qualquer data manualmente
 You can enter the minimum quantity of this item to be ordered.,Você pode inserir a quantidade mínima deste item a ser encomendada.
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,"Você não pode entrar tanto Entrega Nota Não e Vendas Nota Fiscal n ° \ Por favor, entrar em qualquer um."
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,Você pode definir vários &#39;propriedades&#39; para usuários para definir os valores padrão e aplicar regras de permissão com base no valor dessas propriedades em várias formas.
 You can start by selecting backup frequency and \					granting access for sync,Você pode começar por selecionar a freqüência de backup e \ concessão de acesso para sincronização
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,Você pode usar <a href='#Form/Customize Form'>Personalizar Formulário</a> para definir os níveis nos campos.
+You may need to update: ,Você pode precisar atualizar:
 Your Customer's TAX registration numbers (if applicable) or any general information,Os números de inscrição fiscal do seu Cliente (se aplicável) ou qualquer outra informação geral
 "Your download is being built, this may take a few moments...","O seu download está sendo construído, isso pode demorar alguns instantes ..."
-Your letter head content in HTML.,O conteúdo do seu cabeçalho em HTML.
+Your letter head content,Seu conteúdo cabeça carta
 Your sales person who will contact the customer in future,Seu vendedor que entrará em contato com o cliente no futuro
 Your sales person who will contact the lead in future,Seu vendedor que entrará em contato com o prospecto no futuro
 Your sales person will get a reminder on this date to contact the customer,Seu vendedor receberá um lembrete nesta data para contatar o cliente
 Your sales person will get a reminder on this date to contact the lead,Seu vendedor receberá um lembrete nesta data para contatar o prospecto
 Your support email id - must be a valid email - this is where your emails will come!,O seu E-mail de suporte - deve ser um e-mail válido - este é o lugar de onde seus e-mails virão!
+[Error],[Erro]
 [Label]:[Field Type]/[Options]:[Width],[Label]: [Tipo do Campo] / [Opções]: [Largura]
 add your own CSS (careful!),adicione seu próprio CSS (cuidado!)
 adjust,ajustar
@@ -3430,6 +3455,7 @@
 volume-up,aumentar volume
 warning-sign,sinal de alerta
 website page link,link da página do site
+which is greater than sales order qty ,que é maior do que as vendas ordem qty
 wrench,chave inglesa
 yyyy-mm-dd,aaaa-mm-dd
 zoom-in,aumentar zoom
diff --git a/translations/pt.csv b/translations/pt.csv
index 2ad25b5..31d20bc 100644
--- a/translations/pt.csv
+++ b/translations/pt.csv
@@ -1,12 +1,18 @@
  (Half Day),(Meio Dia)
+ against sales order,contra a ordem de venda
  against same operation,contra a mesma operação
  already marked,já marcada
  and year: ,e ano:
+ as it is stock Item or packing item,como é o estoque do item ou item de embalagem
  at warehouse: ,em armazém:
  by Role ,por função
+ can not be made.,não podem ser feitas.
+ can not be marked as a ledger as it has existing child,"não pode ser marcado como um livro, pois tem criança existente"
  cannot be 0,não pode ser 0
  cannot be deleted.,não pode ser excluído.
  does not belong to the company,não pertence à empresa
+ has already been submitted.,já foi apresentado.
+ has been freezed. ,foi congelado.
  has been freezed. \				Only Accounts Manager can do transaction against this account,foi congelado. \ Apenas Gerente de Contas pode fazer transação contra essa conta
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item","é menor do que é igual a zero no sistema, \ taxa de avaliação é obrigatória para este item"
  is mandatory,é obrigatória
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,"é agora o padrão de Ano Fiscal. \ Por favor, atualize seu navegador para que a alteração tenha efeito."
  is present in one or many Active BOMs,está presente em uma ou várias BOMs ativos
  not active or does not exists in the system,não está ativo ou não existe no sistema
+ not submitted,não apresentou
  or the BOM is cancelled or inactive,ou o BOM é cancelado ou inativo
  should be 'Yes'. As Item: ,deve ser &quot;sim&quot;. Como item:
  should be same as that in ,deve ser o mesmo que na
  was on leave on ,estava de licença em
+ will be ,será
  will be over-billed against mentioned ,será super-faturados contra mencionada
  will become ,ficará
 """Company History""",&quot;História da Companhia&quot;
@@ -56,6 +64,7 @@
 15px,15px
 16px,16px
 2 days ago,Há 2 dias
+: Duplicate row from same ,: Duplicar linha do mesmo
 : It is linked to other active BOM(s),: Está ligado ao BOM ativa outro (s)
 : Mandatory for a Recurring Invoice.,: Obrigatório para uma factura Recorrente.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">Para gerenciar grupos de clientes, clique aqui</a>"
@@ -102,6 +111,7 @@
 Account Id,Id da conta
 Account Name,Nome da conta
 Account Type,Tipo de conta
+Account for this ,Conta para isso
 Accounting,Contabilidade
 Accounting Year.,Ano de contabilidade.
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Registro contábil congelado até a presente data, ninguém pode fazer / modificar entrada exceto papel especificado abaixo."
@@ -114,6 +124,7 @@
 Action,Ação
 Active,Ativo
 Active: Will extract emails from ,Ativo: Será que extrair e-mails a partir de
+Activity,Atividade
 Activity Log,Registro de Atividade
 Activity Type,Tipo de Atividade
 Actual,Real
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),Adicionar um banner para o site. (Pequenos banners são geralmente boas)
 Add attachment,Adicionar anexo
 Add code as &lt;script&gt;,Adicionar código como &lt;script&gt;
-Add custom code to forms,Adicionar código personalizado para formas
-Add fields to forms,Adicionar campos a formas
-Add headers for standard print formats,Adicionar cabeçalhos para formatos de impressão padrão
 Add new row,Adicionar nova linha
 Add or Deduct,Adicionar ou Deduzir
 Add rows to set annual budgets on Accounts.,Adicionar linhas para definir orçamentos anuais nas contas.
@@ -158,7 +166,6 @@
 Add to To Do,Adicionar ao que fazer
 Add to To Do List of,Adicionar ao fazer a lista de
 Add/Remove Recipients,Adicionar / Remover Destinatários
-"Add/remove users, set roles, passwords etc","Adicionar / remover usuários, papéis definidos, senhas etc"
 Additional Info,Informações Adicionais
 Address,Endereço
 Address & Contact,Address &amp; Contact
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,O endereço deve ser exibida na página de contato
 Adds a custom field to a DocType,Adiciona um campo personalizado para um DocType
 Adds a custom script (client or server) to a DocType,Adiciona um script personalizado (cliente ou servidor) para um DocType
-Administration,Administração
 Advance Amount,Quantidade antecedência
 Advance amount,Valor do adiantamento
 Advanced Scripting,Script Avançadas
@@ -238,6 +244,7 @@
 Allow Users,Permitir que os usuários
 Allow on Submit,Permitir em Enviar
 Allow the following users to approve Leave Applications for block days.,Permitir que os seguintes usuários para aprovar Deixe Applications para os dias de bloco.
+Allow user to edit Price List Rate in transactions,Permitir ao usuário editar Lista de Preços Taxa em transações
 Allow user to login only after this hour (0-24),Permitir que o usuário fazer o login somente após esta hora (0-24)
 Allow user to login only before this hour (0-24),Permitir que o usuário fazer o login antes só esta hora (0-24)
 Allowance Percent,Percentual subsídio
@@ -252,8 +259,6 @@
 Amount >=,Quantidade&gt; =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","Um arquivo com ícone. Extensão ico. Deve ser de 16 x 16 px. Gerado usando um gerador de favicon. [ <a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a> ]"
 Analytics,Analítica
-Annual Cost To Company,Custo Anual To Empresa
-Annual Cost To Company can not be less than 12 months of Total Earning,Custo Anual To Company não pode ser inferior a 12 meses de Earning Total de
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,"Outra estrutura Salário &#39;% s&#39; está ativo para o empregado &#39;% s&#39;. Por favor, faça seu status &#39;inativo&#39; para prosseguir."
 "Any other comments, noteworthy effort that should go in the records.","Quaisquer outros comentários, esforço notável que deve ir para os registros."
 Applicable Holiday List,Lista de férias aplicável
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,Aplicar / Aprovar Folhas
 Apply Shipping Rule,Aplicar Rule Envios
 Apply Taxes and Charges Master,"Aplicar Impostos, taxas e Encargos mestras"
-Apply latest updates and patches to this app,Aplicar atualizações mais recentes e patches de para this app
 Appraisal,Avaliação
 Appraisal Goal,Meta de avaliação
 Appraisal Goals,Metas de avaliação
@@ -300,7 +304,6 @@
 Attached To DocType,Anexado To DOCTYPE
 Attached To Name,Anexado Para Nome
 Attachment,Acessório
-Attachment removed. You may need to update: ,Anexo removido. Você pode precisar atualizar:
 Attachments,Anexos
 Attempted to Contact,Tentou entrar em contato
 Attendance,Comparecimento
@@ -309,7 +312,7 @@
 Attendance From Date,Presença de Data
 Attendance To Date,Atendimento para a data
 Attendance can not be marked for future dates,Atendimento não pode ser marcado para datas futuras
-Attendance for the employee: ,De Presença para o empregado:
+Attendance for the employee: ,Atendimento para o empregado:
 Attendance record.,Recorde de público.
 Attributions,Atribuições
 Authorization Control,Controle de autorização
@@ -422,7 +425,6 @@
 Brand Name,Marca
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","Marca é o que aparece no canto superior direito da barra de ferramentas. Se for uma imagem, ithas certeza de um fundo transparente e usar a tag /&gt; &lt;img. Manter o tamanho como 200px x 30px"
 Brand master.,Mestre marca.
-Branding and Printing,Branding e Impressão
 Brands,Marcas
 Breakdown,Colapso
 Budget,Orçamento
@@ -440,6 +442,7 @@
 Build Sitemap,Construir Mapa do Site
 Bulk Email,E-mail em massa
 Bulk Email records.,Volume de registros e-mail.
+Bummer! There are more holidays than working days this month.,Bummer! Há mais feriados do que dias úteis deste mês.
 Bundle items at time of sale.,Bundle itens no momento da venda.
 Button,Botão
 Buyer of Goods and Services.,Comprador de Mercadorias e Serviços.
@@ -490,7 +493,6 @@
 Center,Centro
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.","Alguns documentos não deve ser alterado, uma vez final, como uma nota fiscal, por exemplo. O estado final de tais documentos é chamado <b>Enviado.</b> Você pode restringir as funções que podem Enviar."
 Change UOM for an Item.,Alterar UOM de um item.
-"Change entry properties (hide fields, make mandatory etc)","Alterar as propriedades de entrada (campos de couro, etc tornam obrigatório)"
 Change the starting / current sequence number of an existing series.,Alterar o número de seqüência de partida / corrente de uma série existente.
 Channel Partner,Parceiro de Canal
 Charge,Carga
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,"Marque esta opção se você deseja forçar o usuário para selecionar uma série antes de salvar. Não haverá nenhum padrão, se você verificar isso."
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,Marque esta opção se você quiser enviar e-mails como este só id (no caso de restrição pelo seu provedor de e-mail).
 Check this if you want to show in website,Marque esta opção se você deseja mostrar no site
+Check this to disallow fractions. (for Nos),Marque esta opção para não permitir frações. (Para n)
 Check this to make this the default letter head in all prints,Marque esta opção para tornar esta a cabeça carta padrão em todas as impressões
 Check this to pull emails from your mailbox,Marque esta a puxar e-mails de sua caixa de correio
 Check to activate,Marque para ativar
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,Números da empresa de registro para sua referência. Exemplo: IVA números de matrícula etc
 Company registration numbers for your reference. Tax numbers etc.,"Números da empresa de registro para sua referência. Números fiscais, etc"
 Complaint,Reclamação
+Complete,Completar
 Complete By,Ao completar
 Completed,Concluído
 Completed Qty,Concluído Qtde
@@ -626,12 +630,12 @@
 Cost Center Name,Custo Nome Centro
 Cost Center is mandatory for item: ,Centro de Custo é obrigatória para o item:
 Cost Center must be specified for PL Account: ,Centro de Custo deve ser especificado para a Conta PL:
-Cost to Company,Custo para empresa
 Costing,Custeio
 Country,País
 Country Name,Nome do País
 Create,Criar
 Create Bank Voucher for the total salary paid for the above selected criteria,Criar Vale do Banco Mundial para o salário total pago para os critérios acima selecionados
+Create Material Requests,Criar Pedidos de Materiais
 Create Production Orders,Criar ordens de produção
 Create Receiver List,Criar Lista de Receptor
 Create Salary Slip,Criar folha de salário
@@ -680,6 +684,7 @@
 Custom Startup Code,Código de inicialização personalizada
 Custom?,Personalizado?
 Customer,Cliente
+Customer (Receivable) Account,Cliente (receber) Conta
 Customer / Item Name,Cliente / Nome do item
 Customer Account,Conta de Cliente
 Customer Account Head,Cliente Cabeça Conta
@@ -688,6 +693,8 @@
 Customer Code,Código Cliente
 Customer Codes,Códigos de clientes
 Customer Details,Detalhes do cliente
+Customer Discount,Discount cliente
+Customer Discounts,Descontos a clientes
 Customer Feedback,Comentário do cliente
 Customer Group,Grupo de Clientes
 Customer Group Name,Nome do grupo de clientes
@@ -717,11 +724,10 @@
 DN,DN
 DN Detail,Detalhe DN
 Daily,Diário
+Daily Event Digest is sent for Calendar Events where reminders are set.,Diariamente Evento Digest é enviado para Calendário de eventos onde os lembretes são definidos.
 Daily Time Log Summary,Resumo Diário Log Tempo
-"Daily, weekly, monthly email Digests","Diariamente, e-mail, semanal, mensal Digests"
 Danger,Perigo
 Data,Dados
-Data Import,Importação de Dados
 Data missing in table,Falta de dados na tabela
 Database,Banco de dados
 Database Folder ID,ID Folder Database
@@ -777,6 +783,7 @@
 Default Settings,Predefinições
 Default Source Warehouse,Armazém da fonte padrão
 Default Stock UOM,Padrão da UOM
+Default Supplier,Fornecedor padrão
 Default Supplier Type,Tipo de fornecedor padrão
 Default Target Warehouse,Armazém alvo padrão
 Default Territory,Território padrão
@@ -795,6 +802,7 @@
 Delete,Excluir
 Delete Row,Apagar Linha
 Delivered,Entregue
+Delivered Items To Be Billed,Itens entregues a ser cobrado
 Delivered Qty,Qtde entregue
 Delivery Address,Endereço de entrega
 Delivery Date,Data de entrega
@@ -813,7 +821,6 @@
 Delivery Time,Prazo de entrega
 Delivery To,Entrega
 Department,Departamento
-Depend on LWP,Dependem LWP
 Depends On,Depende
 Depends on LWP,Depende LWP
 Descending,Descendente
@@ -864,6 +871,7 @@
 DocType or Field,DocType ou Campo
 Document,Documento
 Document Description,Descrição documento
+Document Numbering Series,Documento série de numeração
 Document Status transition from ,Documento transição Estado de
 Document Type,Tipo de Documento
 Document is only editable by users of role,Documento só é editável por usuários de papel
@@ -934,7 +942,7 @@
 Employee Leave Balance,Empregado Leave Balance
 Employee Name,Nome do Funcionário
 Employee Number,Número empregado
-Employee Records to be created by ,Empregado Records para ser criado por
+Employee Records to be created by,Empregado Records para ser criado por
 Employee Setup,Configuração empregado
 Employee Type,Tipo de empregado
 Employee grades,Notas de funcionários
@@ -944,7 +952,6 @@
 Employees Email Id,Funcionários ID e-mail
 Employment Details,Detalhes de emprego
 Employment Type,Tipo de emprego
-Enable / disable currencies.,Ativar / desativar moedas.
 Enable Auto Inventory Accounting,Ativar Contabilidade Inventário Auto
 Enable Shopping Cart,Ativar Carrinho de Compras
 Enabled,Habilitado
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,Erro: O documento foi modificado depois de abri-la
 Estimated Material Cost,Custo de Material estimada
 Event,Evento
+Event End must be after Start,Evento Final deverá ser após o início
 Event Individuals,Indivíduos de eventos
 Event Role,Papel evento
 Event Roles,Papéis de eventos
 Event Type,Tipo de evento
 Event User,Usuário evento
+Events In Today's Calendar,Eventos no calendário de hoje
+Every Day,Every Day
+Every Month,Todos os meses
+Every Week,Todas as semanas
+Every Year,Todo Ano
 Everyone can read,Todo mundo pode ler
 Example:,Exemplo:
 Exchange Rate,Taxa de Câmbio
@@ -1019,8 +1032,6 @@
 Exports,Exportações
 External,Externo
 Extract Emails,Extrair e-mails
-Extract Job Applicant from jobs email id e.g. jobs@example.com,Extraia Requerente Job de e-mail empregos ID por exemplo jobs@example.com
-Extract Leads from sales email id e.g. sales@example.com,Extraia Leads de vendas e-mail ID por exemplo sales@example.com
 FCFS Rate,Taxa FCFS
 FIFO,FIFO
 Facebook Share,Facebook Compartilhar
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Campos separados por vírgula (,) serão incluídos no <br /> <b>Pesquisa por</b> lista de caixa de diálogo Pesquisar"
 File,Arquivo
 File Data,Dados de arquivo
-File Manager,Gerenciador de arquivos
 File Name,Nome do arquivo
 File Size,Tamanho
 File URL,URL do arquivo
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,Data final de confirmação
 Financial Analytics,Análise Financeira
 Financial Statements,Demonstrações Financeiras
-Financial Years for books of accounts,Exercícios para os livros de contas
 First Name,Nome
 First Responded On,Primeiro respondeu em
 Fiscal Year,Exercício fiscal
@@ -1090,6 +1099,7 @@
 For Sales Invoice,Para fatura de vendas
 For Server Side Print Formats,Para o lado do servidor de impressão Formatos
 For Territory,Para Território
+For UOM,Para UOM
 For Warehouse,Para Armazém
 "For comparative filters, start with","Para filtros comparativos, comece com"
 "For e.g. 2012, 2012-13","Para por exemplo 2012, 2012-13"
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,Congelar da Entries
 Friday,Sexta-feira
 From,De
+From Bill of Materials,De Bill of Materials
 From Company,Da Empresa
 From Currency,De Moeda
 From Currency and To Currency cannot be same,De Moeda e Para Moeda não pode ser o mesmo
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,A partir da data deve ser anterior a Data
 From Delivery Note,De Nota de Entrega
 From Employee,De Empregado
+From Lead,De Chumbo
 From PR Date,De PR Data
 From Package No.,De No. Package
 From Purchase Order,Da Ordem de Compra
@@ -1150,8 +1162,8 @@
 Get Current Stock,Obter Estoque atual
 Get From ,Obter do
 Get Items,Obter itens
+Get Items From Sales Orders,Obter itens de Pedidos de Vendas
 Get Last Purchase Rate,Obter Tarifa de Compra Última
-Get Latest Updates,Receba as últimas atualizações
 Get Non Reconciled Entries,Obter entradas não Reconciliados
 Get Outstanding Invoices,Obter faturas pendentes
 Get Purchase Receipt,Obter Recibo de compra
@@ -1161,7 +1173,6 @@
 Get Template,Obter modelo
 Get Terms and Conditions,Obter os Termos e Condições
 Get Weekly Off Dates,Obter semanal Datas Off
-Get a list of errors encountered by the Scheduler,Obter uma lista de erros encontrados pelo Scheduler
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Obter taxa de valorização e estoque disponível na origem / destino em armazém mencionado postagem data e hora. Se serializado item, prima este botão depois de entrar n º s de série."
 Give additional details about the indent.,Dê mais detalhes sobre o travessão.
 Global Defaults,Padrões globais
@@ -1193,9 +1204,9 @@
 Group or Ledger,Grupo ou Ledger
 Groups,Grupos
 HR,HR
+HR Settings,Configurações HR
 HTML,HTML
 HTML / Banner that will show on the top of product list.,HTML bandeira / que vai mostrar no topo da lista de produtos.
-"HTML print formats for quotes, invoices etc","HTML formatos de impressão para citações, etc faturas"
 Half Day,Meio Dia
 Half Yearly,Semestrais
 Half-yearly,Semestral
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children","Aqui você pode manter detalhes como o nome da família e ocupação do cônjuge, pai e filhos"
 "Here you can maintain height, weight, allergies, medical concerns etc","Aqui você pode manter a altura, peso, alergias, etc preocupações médica"
 Hey there! You need to put at least one item in \				the item table.,Hey there! Você precisa colocar pelo menos um item em \ tabela do item.
+Hey! All these items have already been invoiced.,Hey! Todos esses itens já foram faturados.
 Hey! There should remain at least one System Manager,Hey! Não deve permanecer pelo menos um System Manager
 Hidden,Escondido
 Hide Actions,Ocultar Ações
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults","Como deve ser essa moeda ser formatado? Se não for definido, vai usar padrões do sistema"
 How to upload,Como fazer upload
 Hrvatski,Hrvatski
+Human Resources,Recursos Humanos
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,Viva! O dia (s) em que você está aplicando para deixar \ coincidir com feriado (s). Você não precisa pedir licença.
 I,Eu
 ID (name) of the entity whose property is to be set,ID (nome) da entidade cuja propriedade está a ser definida
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,Se orçamento anual excedido
 "If a User does not have access at Level 0, then higher levels are meaningless","Se um usuário não tem acesso no nível 0, então os níveis mais altos são sem sentido"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","Se selecionado, o BOM para a sub-montagem itens serão considerados para obter matérias-primas. Caso contrário, todos os itens de sub-montagem vai ser tratado como uma matéria-prima."
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Se marcado, não total. de dias de trabalho vai incluir férias, e isso vai reduzir o valor de salário por dia"
 "If checked, all other workflows become inactive.","Se marcada, todos os outros fluxos de trabalho tornam-se inativos."
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","Se marcado, um e-mail com formato HTML anexado será adicionado a uma parte do corpo do email, bem como anexo. Para enviar apenas como acessório, desmarque essa."
 "If checked, the Home page will be the default Item Group for the website.","Se selecionado, a página inicial será o Grupo item padrão para o site."
@@ -1305,7 +1319,6 @@
 Import,Importar
 Import Attendance,Importação de Atendimento
 Import Log,Importar Log
-Import data from spreadsheet (csv) files,Importar dados de planilhas (csv)
 Important dates and commitments in your project life cycle,Datas importantes e compromissos em seu ciclo de vida do projeto
 Imports,Importações
 In Dialog,Em diálogo
@@ -1314,6 +1327,7 @@
 In List View,Na exibição de lista
 In Process,Em Processo
 In Report Filter,No Relatório Filtro
+In Row,Em Linha
 In Store,Na loja
 In Words,Em Palavras
 In Words (Company Currency),In Words (Moeda Company)
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","No Gerenciador de Permissão, clique no botão no &#39;Condição&#39; coluna para a função que deseja restringir."
 Incentives,Incentivos
 Incharge Name,Nome incharge
+Include holidays in Total no. of Working Days,Incluir feriados em nenhuma total. de dias de trabalho
 Income / Expense,Receitas / Despesas
 Income Account,Conta Renda
 Income Booked,Renda Reservado
@@ -1347,6 +1362,7 @@
 Industry Type,Tipo indústria
 Info,Informações
 Insert After,Depois de inserir
+Insert Below,Inserir Abaixo
 Insert Code,Insira Código
 Insert Row,Inserir Linha
 Insert Style,Insira Estilo
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,"Nota de Entrega inválido. Nota de Entrega deve existir e deve estar em estado de rascunho. Por favor, corrigir e tentar novamente."
 Invalid Email,E-mail inválido
 Invalid Email Address,Endereço de email inválido
+Invalid Item or Warehouse Data,Item inválido ou Data Warehouse
 Invalid Leave Approver,Inválido Deixe Approver
 Inventory,Inventário
 Inverse,Inverso
@@ -1511,7 +1528,6 @@
 Lead Lost,Levar Perdido
 Lead Name,Nome levar
 Lead Owner,Levar Proprietário
-Lead Ref,Chumbo Ref.
 Lead Source,Chumbo Fonte
 Lead Status,Chumbo Estado
 Lead Time Date,Chumbo Data Hora
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,Deixe em branco se considerado para todas as designações
 Leave blank if considered for all employee types,Deixe em branco se considerado para todos os tipos de empregados
 Leave blank if considered for all grades,Deixe em branco se considerado para todos os graus
+Leave blank if you have not decided the end date.,Deixe em branco se você ainda não decidiu a data de término.
 Leave by,Deixe por
 "Leave can be approved by users with Role, ""Leave Approver""","A licença pode ser aprovado por usuários com papel, &quot;Deixe Aprovador&quot;"
 Ledger,Livro-razão
@@ -1553,7 +1570,6 @@
 Letter Head,Cabeça letra
 Letter Head Image,Imagem Cabeça letra
 Letter Head Name,Nome Cabeça letra
-Letter heads for print,Cabeças de letra para impressão
 Level,Nível
 "Level 0 is for document level permissions, higher levels for field level permissions.","Nível 0 é para permissões de nível de documento, os níveis mais elevados de permissões de nível de campo."
 Lft,Lft
@@ -1563,13 +1579,11 @@
 Linked With,Com ligados
 List,Lista
 List items that form the package.,Lista de itens que compõem o pacote.
-List of companies (not customers / suppliers),Lista das empresas (não clientes / fornecedores)
 List of holidays.,Lista de feriados.
 List of patches executed,Lista de patches executados
 List of records in which this document is linked,Lista de registros em que este documento está ligado
 List of users who can edit a particular Note,Lista de usuários que podem editar uma determinada Nota
 List this Item in multiple groups on the website.,Lista este item em vários grupos no site.
-"List, delete uploaded files.","Listar, excluir arquivos enviados."
 Live Chat,Live Chat
 Load Print View on opening of an existing form,Carregar Ver impressão na abertura de um formulário existente
 Loading,Carregamento
@@ -1596,6 +1610,7 @@
 Mail Server,Servidor de Correio
 Main Reports,Relatórios principais
 Main Section,Seção Principal
+Maintain Same Rate Throughout Sales Cycle,Manter o mesmo ritmo durante todo o ciclo de vendas
 Maintain same rate throughout purchase cycle,Manter mesmo ritmo durante todo o ciclo de compra
 Maintenance,Manutenção
 Maintenance Date,Data de manutenção
@@ -1616,7 +1631,6 @@
 Make a new,Faça um novo
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,Certifique-se de que as operações que pretende restringir ter &quot;território&quot; de um campo Link que mapeia para um &quot;território&quot; mestre.
 Male,Masculino
-Manage Numbering Series,Gerenciar numeração Series
 Manage cost of operations,Gerenciar custo das operações
 Manage exchange rates for currency conversion,Gerenciar taxas de câmbio para conversão de moeda
 Mandatory,Obrigatório
@@ -1651,10 +1665,10 @@
 Material Request No,Pedido de material no
 Material Request Type,Tipo de solicitação de material
 Material Request used to make this Stock Entry,Pedido de material usado para fazer isto Stock Entry
+Material Requirement,Material Requirement
 Material Transfer,Transferência de Material
 Materials,Materiais
 Materials Required (Exploded),Materiais necessários (explodida)
-Materials Requirement Planning (MRP),Materiais Requirement Planning (MRP)
 Max 500 rows only.,Max 500 apenas as linhas.
 Max Attachments,Anexos Max.
 Max Days Leave Allowed,Dias Max Deixe admitidos
@@ -1699,6 +1713,7 @@
 Month,Mês
 Monthly,Mensal
 Monthly Attendance Sheet,Folha de Presença Mensal
+Monthly Earning & Deduction,Salário mensal e dedução
 Monthly Salary Register,Salário mensal Registrar
 Monthly salary statement.,Declaração salário mensal.
 Monthly salary template.,Modelo de salário mensal.
@@ -1711,7 +1726,9 @@
 Mr,Sr.
 Ms,Ms
 Multiple Item Prices,Vários preços de itens
+Multiple root nodes not allowed.,"Vários nós raiz, não é permitido."
 Mupltiple Item prices.,Item preços Mupltiple.
+Must be Whole Number,Deve ser Número inteiro
 Must have report permission to access this report.,Deve ter permissão de relatório para acessar este relatório.
 Must specify a Query to run,Deve especificar uma consulta para executar
 My Settings,Minhas Configurações
@@ -1737,7 +1754,6 @@
 Net Weight,Peso Líquido
 Net Weight UOM,UOM Peso Líquido
 Net Weight of each Item,Peso líquido de cada item
-Net pay can not be greater than 1/12th of Annual Cost To Company,Remuneração líquida não pode ser maior do que 1/12th de custo anual para Empresa
 Net pay can not be negative,Remuneração líquida não pode ser negativo
 Never,Nunca
 New,Novo
@@ -1795,6 +1811,7 @@
 No of Sent SMS,N º de SMS enviados
 No of Visits,N º de Visitas
 No one,Ninguém
+No permission to write / remove.,Sem permissão para escrever / remover.
 No record found,Nenhum registro encontrado
 No records tagged.,Não há registros marcados.
 No salary slip found for month: ,Sem folha de salário encontrado para o mês:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,Itens ordenados a ser entregue
 Ordered Quantity,Quantidade pedida
 Orders released for production.,Ordens liberado para produção.
-Organization,Organização
 Organization Profile,Perfil da Organização
 Original Message,Mensagem original
 Other,Outro
 Other Details,Outros detalhes
 Out,Fora
-Out going mail server and support ticket mailbox,Fora vai servidor de correio ea caixa de correio ticket de suporte
 Out of AMC,Fora da AMC
 Out of Warranty,Fora de Garantia
 Outgoing,Cessante
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),POP3 servidor de correio (por exemplo pop.gmail.com)
 POP3 server e.g. (pop.gmail.com),"Servidor POP3, por exemplo (pop.gmail.com)"
 POS Setting,Definição POS
+POS View,POS Ver
 PR Detail,Detalhe PR
 PRO,PRO
 PS,PS
@@ -1951,10 +1967,10 @@
 Participants,Participantes
 Partly Billed,Parcialmente faturado
 Partly Delivered,Entregue em parte
-Partner,Parceiro
 Partner Target Detail,Detalhe Alvo parceiro
 Partner Type,Tipo de parceiro
 Partner's Website,Site do parceiro
+Passive,Passiva
 Passport Number,Número do Passaporte
 Password,Senha
 Password Expires in (days),Senha expira em (dias)
@@ -1964,12 +1980,12 @@
 Payables,Contas a pagar
 Payables Group,Grupo de contas a pagar
 Payment Collection With Ageing,Cobrança Com o Envelhecimento
+Payment Days,Datas de Pagamento
 Payment Entries,Entradas de pagamento
 Payment Entry has been modified after you pulled it. 			Please pull it again.,"Entrada de pagamento foi modificada depois que você tirou isso. Por favor, puxe-o novamente."
 Payment Made With Ageing,O pagamento feito com o Envelhecimento
 Payment Reconciliation,Reconciliação de pagamento
 Payment Terms,Condições de Pagamento
-Payment days,Dia de pagamento
 Payment to Invoice Matching Tool,Pagamento a ferramenta correspondente fatura
 Payment to Invoice Matching Tool Detail,Pagamento a Detalhe Ferramenta fatura correspondente
 Payments,Pagamentos
@@ -1984,6 +2000,7 @@
 Percent,Por cento
 Percent Complete,Porcentagem Concluída
 Percentage Allocation,Alocação percentual
+Percentage Allocation should be equal to ,Percentual de alocação deve ser igual ao
 Percentage variation in quantity to be allowed while receiving or delivering this item.,Variação percentual na quantidade a ser permitido ao receber ou entregar este item.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,"Percentagem que estão autorizados a receber ou entregar mais contra a quantidade encomendada. Por exemplo: Se você encomendou 100 unidades. e seu subsídio é de 10%, então você está autorizada a receber 110 unidades."
 Performance appraisal.,Avaliação de desempenho.
@@ -2026,19 +2043,24 @@
 Please check,"Por favor, verifique"
 Please enter Default Unit of Measure,Por favor insira unidade de medida padrão
 Please enter Delivery Note No or Sales Invoice No to proceed,Por favor insira Entrega Nota Não ou fatura de vendas Não para continuar
+Please enter Employee Number,Por favor insira Número do Funcionário
 Please enter Expense Account,Por favor insira Conta Despesa
 Please enter Expense/Adjustment Account,Por favor insira Despesa / Acerto de Contas
 Please enter Purchase Receipt No to proceed,Por favor insira Compra recibo Não para continuar
+Please enter Reserved Warehouse for item ,Por favor insira Warehouse reservada para o item
 Please enter valid,Por favor insira válido
 Please enter valid ,Por favor insira válido
 Please install dropbox python module,"Por favor, instale o Dropbox módulo python"
 Please make sure that there are no empty columns in the file.,"Por favor, certifique-se de que não existem colunas vazias no arquivo."
 Please mention default value for ',"Por favor, mencione o valor padrão para &#39;"
+Please reduce qty.,Reduza qty.
 Please refresh to get the latest document.,Por favor de atualização para obter as últimas documento.
 Please save the Newsletter before sending.,"Por favor, salve o boletim antes de enviar."
 Please select Bank Account,Por favor seleccione Conta Bancária
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Por favor seleccione Carry Forward se você também quer incluir equilíbrio ano fiscal anterior deixa para este ano fiscal
 Please select Date on which you want to run the report,Selecione Data na qual você deseja executar o relatório
+Please select Naming Neries,Por favor seleccione nomenclatura Neries
+Please select Price List,"Por favor, selecione Lista de Preço"
 Please select Time Logs.,Por favor seleccione Time Logs.
 Please select a,Por favor seleccione um
 Please select a csv file,"Por favor, selecione um arquivo csv"
@@ -2051,10 +2073,12 @@
 Please select: ,Por favor seleccione:
 Please set Dropbox access keys in,Defina teclas de acesso Dropbox em
 Please set Google Drive access keys in,Defina teclas de acesso do Google Drive em
+Please setup Employee Naming System in Human Resource > HR Settings,"Por favor, configuração Employee Naming System em Recursos Humanos&gt; Configurações HR"
 Please specify,"Por favor, especifique"
 Please specify Company,"Por favor, especifique Empresa"
 Please specify Company to proceed,"Por favor, especifique Empresa proceder"
 Please specify Default Currency in Company Master \			and Global Defaults,"Por favor, especificar a moeda padrão na empresa MASTER \ e Padrões Globais"
+Please specify a,"Por favor, especifique um"
 Please specify a Price List which is valid for Territory,"Por favor, especifique uma lista de preços que é válido para o território"
 Please specify a valid,"Por favor, especifique um válido"
 Please specify a valid 'From Case No.',"Por favor, especifique um válido &#39;De Caso No.&#39;"
@@ -2070,7 +2094,7 @@
 Posts,Posts
 Potential Sales Deal,Negócio de Vendas
 Potential opportunities for selling.,Oportunidades potenciais para a venda.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","Precisão para campos float (quantidade, descontos, etc percentuais) apenas para exibição. Flutua ainda será calculado até 6 casas decimais."
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","Precisão para os campos float (quantidade, descontos, porcentagens, etc.) Carros alegóricos será arredondado para decimais especificadas. Padrão = 3"
 Preferred Billing Address,Preferred Endereço de Cobrança
 Preferred Shipping Address,Endereço para envio preferido
 Prefix,Prefixo
@@ -2081,7 +2105,6 @@
 Previous Work Experience,Experiência anterior de trabalho
 Price,Preço
 Price List,Lista de Preços
-Price List Country,Lista de Preços País
 Price List Currency,Hoje Lista de Preços
 Price List Currency Conversion Rate,O preço de lista taxa de conversão
 Price List Exchange Rate,Preço Lista de Taxa de Câmbio
@@ -2089,6 +2112,7 @@
 Price List Name,Nome da lista de preços
 Price List Rate,Taxa de Lista de Preços
 Price List Rate (Company Currency),Preço Taxa List (moeda da empresa)
+Price List for Costing,Lista de Preços para Custeio
 Price Lists and Rates,Listas de Preços e Tarifas
 Primary,Primário
 Print Format,Imprimir Formato
@@ -2107,6 +2131,7 @@
 Produced Quantity,Quantidade produzida
 Product Enquiry,Produto Inquérito
 Production Order,Ordem de Produção
+Production Orders,Ordens de Produção
 Production Plan Item,Item do plano de produção
 Production Plan Items,Plano de itens de produção
 Production Plan Sales Order,Produção Plano de Ordem de Vendas
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,Projeto sábios Stock Rastreamento
 Projected Qty,Qtde Projetada
 Projects,Projetos
-Prompt email sending to customers and suppliers,E-mail Prompt envio a clientes e fornecedores
 Prompt for Email on Submission of,Solicitar-mail mediante a apresentação da
 Properties,Propriedades
 Property,Propriedade
@@ -2147,7 +2171,6 @@
 Published On,Publicado no
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,Puxe-mails da caixa de entrada e anexá-los como registros de comunicação (por contatos conhecidos).
 Pull Payment Entries,Puxe as entradas de pagamento
-Pull items from Sales Order mentioned in the above table.,Puxe itens da Ordem de Vendas mencionado na tabela acima.
 Pull sales orders (pending to deliver) based on the above criteria,Puxe pedidos de vendas pendentes (de entregar) com base nos critérios acima
 Purchase,Comprar
 Purchase Analytics,Analytics compra
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,Quantidade já fabricados
 Quantity and Rate,Quantidade e Taxa
 Quantity and Warehouse,Quantidade e Armazém
+Quantity cannot be a fraction.,A quantidade não pode ser uma fracção.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Quantidade do item obtido após a fabricação / reembalagem de determinadas quantidades de matérias-primas
 Quantity should be equal to Manufacturing Quantity. ,Quantidade deve ser igual a quantidade Manufacturing.
 Quarter,Trimestre
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,Cotação Perdeu Razão
 Quotation Message,Mensagem citação
 Quotation Sent,Cotação enviada
+Quotation Series,Série citação
 Quotation To,Para citação
 Quotation Trend,Cotação Tendência
 Quotations received from Suppliers.,Citações recebidas de fornecedores.
 Quotes to Leads or Customers.,Cotações para Leads ou Clientes.
-Raise Material Request,Levante solicitar material
 Raise Material Request when stock reaches re-order level,Levante solicitar material quando o estoque atinge novo pedido de nível
-Raise Production Order,Levante Ordem de Produção
 Raised By,Levantadas por
 Raised By (Email),Levantadas por (e-mail)
 Random,Acaso
@@ -2280,6 +2303,7 @@
 Receivables / Payables,Contas a receber / contas a pagar
 Receivables Group,Grupo de recebíveis
 Received Date,Data de recebimento
+Received Items To Be Billed,Itens recebidos a ser cobrado
 Received Qty,Qtde recebeu
 Received and Accepted,Recebeu e aceitou
 Receiver List,Lista de receptor
@@ -2293,6 +2317,8 @@
 Recurring Id,Id recorrente
 Recurring Invoice,Fatura recorrente
 Recurring Type,Tipo recorrente
+Reduce Deduction for Leave Without Pay (LWP),Reduzir Dedução por licença sem vencimento (LWP)
+Reduce Earning for Leave Without Pay (LWP),Reduzir a Geração de Renda para sair sem pagar (LWP)
 Ref Code,Ref Código
 Ref Date is Mandatory if Ref Number is specified,Ref data é obrigatória se Número Ref é especificada
 Ref DocType,Ref DocType
@@ -2302,6 +2328,8 @@
 Ref Type,Tipo Ref
 Reference,Referência
 Reference Date,Data de Referência
+Reference DocName,Referência DocNome
+Reference DocType,Referência TipoDoc
 Reference Name,Nome de referência
 Reference Number,Número de Referência
 Reference Type,Tipo de referência
@@ -2322,10 +2350,12 @@
 Remove Bookmark,Remover Bookmark
 Rename Log,Renomeie Entrar
 Rename Tool,Renomear Ferramenta
-Rename multiple items in one go,Renomeie vários itens de uma só vez
 Rename...,Renomear ...
 Rented,Alugado
+Repeat On,Repita On
+Repeat Till,Repita até que
 Repeat on Day of Month,Repita no Dia do Mês
+Repeat this Event,Repita este evento
 Replace,Substituir
 Replace Item / BOM in all BOMs,Substituir item / BOM em todas as BOMs
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Substituir um BOM particular em todas as BOMs outros onde ele é usado. Ele irá substituir o link BOM antigo, atualizar o custo e regenerar &quot;Explosão BOM Item&quot; tabela como por novo BOM"
@@ -2358,13 +2388,14 @@
 Reseller,Revendedor
 Reserved Quantity,Quantidade reservados
 Reserved Warehouse,Reservado Armazém
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,Armazém reservada no Pedido de Vendas / armazém de produtos acabados
+Reserved Warehouse is missing in Sales Order,Reservado Warehouse está faltando na Ordem de Vendas
 Resignation Letter Date,Data carta de demissão
 Resolution,Resolução
 Resolution Date,Data resolução
 Resolution Details,Detalhes de Resolução
 Resolved By,Resolvido por
 Restrict IP,Restringir IP
-Restrict submission rights based on amount,Restringir apresentação direitos com base na quantidade
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),Restringir usuário a partir deste endereço IP. Vários endereços IP podem ser adicionados ao separar com vírgulas. Também aceita parciais endereços IP como (111.111.111)
 Restricting By User,Restringir por usuário
 Retail,Varejo
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,Dedução Estrutura Salarial
 Salary Structure Earning,Estrutura salarial Ganhando
 Salary Structure Earnings,Estrutura Lucros Salário
+Salary breakup based on Earning and Deduction.,Separação Salário com base em salário e dedução.
 Salary components.,Componentes salariais.
 Sales,De vendas
 Sales Analytics,Sales Analytics
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),Vendas Pessoa Variance Alvo (Item Group-Wise)
 Sales Person Targets,Metas de vendas Pessoa
 Sales Person-wise Transaction Summary,Resumo da transação Pessoa-wise vendas
-Sales Rate,Taxa de vendas
 Sales Register,Vendas Registrar
 Sales Return,Vendas Retorno
 Sales Taxes and Charges,Vendas Impostos e Taxas
@@ -2484,7 +2515,6 @@
 Scheduled,Programado
 Scheduled Confirmation Date,Confirmação Data programada
 Scheduled Date,Data prevista
-Scheduler Error Log,Scheduler Error Log
 Scheduler Log,Scheduler Log
 School/University,Escola / Universidade
 Score (0-5),Pontuação (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,Selecione DocType
 Select Document Type,Selecione Tipo de Documento
 Select Document Type or Role to start.,Selecione tipo de documento ou papel para começar.
+Select Items,Selecione itens
 Select PR,Selecionar PR
 Select Print Format,Selecione Formato de Impressão
 Select Print Heading,Selecione Imprimir título
@@ -2562,8 +2593,8 @@
 Send SMS,Envie SMS
 Send To,Enviar para
 Send To Type,Enviar para Digite
+Send an email reminder in the morning,Enviar um e-mail lembrete na parte da manhã
 Send automatic emails to Contacts on Submitting transactions.,Enviar e-mails automáticos para Contatos no Submetendo transações.
-"Send bulk SMS to leads, customers, contacts","Enviar SMS em massa para leads, clientes, contatos"
 Send mass SMS to your contacts,Enviar SMS em massa para seus contatos
 Send regular summary reports via Email.,Enviar relatórios resumidos regulares via e-mail.
 Send to this list,Enviar para esta lista
@@ -2580,7 +2611,6 @@
 Serial No Status,No Estado de série
 Serial No Warranty Expiry,Caducidade Não Serial Garantia
 Serialized Item: ',Item serializado: &#39;
-Series,Série
 Series List for this Transaction,Lista de séries para esta transação
 Server,Servidor
 Service Address,Serviço Endereço
@@ -2590,19 +2620,13 @@
 Session Expiry,Caducidade sessão
 Session Expiry in Hours e.g. 06:00,"Caducidade sessão em Horas, por exemplo 06:00"
 Set Banner from Image,Jogo da bandeira da Imagem
-Set From Image,Definir Da imagem
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,"Definir item Group-wise orçamentos sobre este território. Você também pode incluir sazonalidade, definindo a distribuição."
 Set Login and Password if authentication is required.,Set Login e Senha se é necessária autenticação.
 Set New Password,Definir nova senha
 Set Value,Definir valor
 "Set a new password and ""Save""",Definir uma nova senha e &quot;Save&quot;
-Set default values for entry,Definir valores padrão para entrada
-Set default values for users (also used for permissions).,Definir valores padrão para os usuários (também usado para permissões).
-Set multiple numbering series for transactions,Definir série de numeração múltipla para transações
-Set permissions on transactions / masters,Definir permissões em transações / mestres
 Set prefix for numbering series on your transactions,Definir prefixo para numeração de série em suas transações
 Set targets Item Group-wise for this Sales Person.,Estabelecer metas item Group-wise para este Vendas Pessoa.
-Set workflow rules.,Definir regras de fluxo de trabalho.
 "Set your background color, font and image (tiled)","Defina sua cor de fundo, fonte e imagem (lado a lado)"
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","Defina suas configurações de SMTP de envio de correio aqui. Todo o sistema gerou notificações, e-mails vai a partir deste servidor de correio. Se você não tem certeza, deixe este campo em branco para usar servidores ERPNext (e-mails ainda serão enviadas a partir do seu ID e-mail) ou entre em contato com seu provedor de e-mail."
 Setting Account Type helps in selecting this Account in transactions.,Tipo de conta Definir ajuda na seleção desta conta em transações.
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,Configuração do Carrinho de Compras.
 Setup of fonts and background.,Instalação de fontes e de fundo.
 "Setup of top navigation bar, footer and logo.","Configuração de topo barra de navegação do rodapé, e logotipo."
-Setup outgoing SMS via your bulk SMS provider,Configurar SMS enviadas através de seu provedor de SMS em massa
 Setup to pull emails from support email account,Configuração para puxar e-mails da conta de e-mail de apoio
 Share,Ação
 Share With,Compartilhar
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,Breve biografia para o site e outras publicações.
 Shortcut,Atalho
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Show &quot;Em Stock&quot; ou &quot;não em estoque&quot;, baseado em stock disponível neste armazém."
-Show / Hide Modules,Show / Hide Módulos
 Show Details,Ver detalhes
 Show In Website,Mostrar No Site
 Show Print First,Mostrar Primeira Impressão
@@ -2658,11 +2680,9 @@
 Show in Website,Show em site
 Show rows with zero values,Mostrar as linhas com valores zero
 Show this slideshow at the top of the page,Mostrar esta slideshow no topo da página
-"Show, hide modules","Mostrar, ocultar módulos"
 Showing only for,Mostrando apenas para
 Signature,Assinatura
 Signature to be appended at the end of every email,Assinatura para ser anexado no final de cada e-mail
-Simplify entry forms by disabling features,Simplificar os formulários de entrada pela desativação de recursos
 Single,Único
 Single Post (article).,Resposta Única (artigo).
 Single unit of an Item.,Única unidade de um item.
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,"Desculpe, não foram capazes de encontrar o que você estava procurando."
 Sorry you are not permitted to view this page.,"Desculpe, você não tem permissão para visualizar esta página."
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,Desculpe! Nós só podemos permitir que até 100 linhas para Reconciliação Stock.
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","Desculpe! Você não pode alterar a moeda padrão da empresa, porque existem operações existentes contra ele. Você terá que cancelar essas transações se você deseja alterar a moeda padrão."
 Sorry. Companies cannot be merged,Desculpe. As empresas não podem ser fundidas
 Sorry. Serial Nos. cannot be merged,Desculpe. N º s de série não podem ser mescladas
 Sort By,Classificar por
@@ -2759,6 +2780,7 @@
 Suggestions,Sugestões
 Sunday,Domingo
 Supplier,Fornecedor
+Supplier (Payable) Account,Fornecedor (pago) Conta
 Supplier (vendor) name as entered in supplier master,"Nome do fornecedor (fornecedor), inscritos no cadastro de fornecedores"
 Supplier Account Head,Fornecedor Cabeça Conta
 Supplier Address,Endereço do Fornecedor
@@ -2792,7 +2814,6 @@
 Symbol,Símbolo
 Sync Inbox,Sincronização Caixa de Entrada
 Sync Support Mails,Sincronizar e-mails de apoio
-Sync backups with remote tools like Dropbox etc.,"Sincronize backups remotos com ferramentas como o Dropbox, etc"
 Sync with Dropbox,Sincronizar com o Dropbox
 Sync with Google Drive,Sincronia com o Google Drive
 System,Sistema
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page","A &quot;Página Web&quot;, que é a página inicial do site"
 The BOM which will be replaced,O BOM que será substituído
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",O item que representa o pacote. Este item deve ter &quot;é o item da&quot; como &quot;Não&quot; e &quot;é o item de vendas&quot; como &quot;Sim&quot;
-The account to which you will pay (have paid) the money to.,A conta para a qual você vai pagar (paguei) o dinheiro.
 The date at which current entry is made in system.,A data em que a entrada actual é feita no sistema.
 The date at which current entry will get or has actually executed.,A data em que a entrada de corrente vai ter ou tem realmente executado.
 The date on which next invoice will be generated. It is generated on submit.,A data em que próxima fatura será gerada. Ele é gerado em enviar.
@@ -2927,6 +2947,7 @@
 To Currency,A Moeda
 To Date,Conhecer
 To Discuss,Para Discutir
+To Do,Que fazer
 To Do List,Para fazer a lista
 To PR Date,Data de PR
 To Package No.,Para empacotar Não.
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","Para criar automaticamente pedidos de ajuda de seu correio de entrada, definir as configurações de POP3 aqui. Você deve, idealmente, criar um ID de e-mail separado para o sistema ERP para que todos os e-mails serão sincronizados para o sistema de que e-mail id. Se você não tiver certeza, entre em contato com seu provedor de e-mail."
 "To create an Account Head under a different company, select the company and save customer.","Para criar uma conta, sob Cabeça uma empresa diferente, selecione a empresa e salvar cliente."
 To enable <b>Point of Sale</b> features,Para habilitar o <b>Ponto de Venda</b> características
+To enable more currencies go to Setup > Currency,Para permitir que mais moedas vá para Configuração&gt; Currency
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","Para buscar itens novamente, clique em &quot;Obter itens &#39;botão \ ou atualizar a quantidade manualmente."
 "To format columns, give column labels in the query.","Para formatar colunas, dar rótulos de coluna na consulta."
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.","Para restringir ainda mais permissões com base em determinados valores em um documento, use a &#39;condição&#39; definições."
@@ -2953,7 +2975,6 @@
 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.,Para acompanhar o item em documentos de vendas e de compras com base em seus números de ordem. Este é também pode ser usada para rastrear detalhes sobre a garantia do produto.
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,Para controlar os itens de vendas e documentos de compra com lotes n º s <br> <b>Indústria preferido: etc Chemicals</b>
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Para rastrear itens usando código de barras. Você será capaz de inserir itens na nota de entrega e nota fiscal de venda pela digitalização de código de barras do item.
-"To update your HTML from attachment, click here","Para atualizar seu código HTML anexo, clique aqui"
 ToDo,ToDo
 Tools,Ferramentas
 Top,Topo
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),Imposto Total (moeda da empresa)
 Total Taxes and Charges,Total Impostos e Encargos
 Total Taxes and Charges (Company Currency),Total de Impostos e Taxas (moeda da empresa)
+Total Working Days In The Month,Total de dias úteis do mês
 Total amount of invoices received from suppliers during the digest period,O valor total das faturas recebidas de fornecedores durante o período de digestão
 Total amount of invoices sent to the customer during the digest period,O valor total das faturas enviadas para o cliente durante o período de digestão
-Total days in month,Total de dias no mês
 Total in words,Total em palavras
+Total production order qty for item,Total da ordem qty produção para o item
 Totals,Totais
 Track separate Income and Expense for product verticals or divisions.,Localizar renda separado e Despesa para verticais de produtos ou divisões.
 Track this Delivery Note against any Project,Acompanhar este Nota de Entrega contra qualquer projeto
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,UOM Detalhe Conversão
 UOM Conversion Details,Conversão Detalhes UOM
 UOM Conversion Factor,UOM Fator de Conversão
+UOM Conversion Factor is mandatory,UOM Fator de Conversão é obrigatório
 UOM Details,Detalhes UOM
 UOM Name,Nome UOM
 UOM Replace Utility,UOM Utility Substituir
@@ -3044,6 +3067,7 @@
 Unread Messages,Mensagens não lidas
 Unscheduled,Sem marcação
 Unsubscribed,Inscrição cancelada
+Upcoming Events for Today,Próximos Eventos para Hoje
 Update,Atualizar
 Update Clearance Date,Atualize Data Liquidação
 Update Field,Atualizar campo
@@ -3052,7 +3076,6 @@
 Update Series Number,Atualização de Número de Série
 Update Stock,Actualização de stock
 Update Stock should be checked.,Atualização de Estoque deve ser verificado.
-Update This Application,Atualizar a aplicação
 Update Value,Atualize Valor
 "Update allocated amount in the above table and then click ""Allocate"" button",Atualize montante atribuído no quadro acima e clique em &quot;alocar&quot; botão
 Update bank payment dates with journals.,Atualização de pagamento bancário com data revistas.
@@ -3065,6 +3088,7 @@
 Upload HTML,Carregar HTML
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Enviar um arquivo CSV com duas colunas:. O nome antigo eo novo nome. No máximo 500 linhas.
 Upload a file,Enviar um arquivo
+Upload and Import,Carregar e Importar
 Upload attendance from a .csv file,Carregar atendimento de um arquivo CSV.
 Upload stock balance via csv.,Carregar saldo de estoque via csv.
 Uploading...,Upload ...
@@ -3078,7 +3102,6 @@
 User ID,ID de usuário
 User Image,Imagem do usuário
 User Name,Nome de usuário
-User Properties,Propriedades do usuário
 User Remark,Observação de usuário
 User Remark will be added to Auto Remark,Observação usuário será adicionado à observação Auto
 User Tags,Etiquetas de usuários
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,Usuário não tem permissão para excluir.
 UserRole,UserRole
 Username,Nome de Utilizador
-Users,Usuários
 Users who can approve a specific employee's leave applications,Usuários que podem aprovar aplicações deixam de um funcionário específico
 Users with this role are allowed to do / modify accounting entry before frozen date,Usuários com esta função estão autorizados a fazer / modificar a entrada de contabilidade antes da data congelado
 Utilities,Utilitários
@@ -3116,6 +3138,7 @@
 Voucher No,Não vale
 Voucher Type,Tipo comprovante
 Voucher Type and Date,Tipo Vale e Data
+WIP Warehouse required before Submit,WIP Warehouse necessária antes de Enviar
 Waiting for Customer,À espera de cliente
 Walk In,Walk In
 Warehouse,Armazém
@@ -3149,6 +3172,7 @@
 Website Settings,Configurações do site
 Website Slideshow,Slideshow site
 Website Slideshow Item,Item Slideshow site
+Website User,Site do Usuário
 Website Warehouse,Armazém site
 Wednesday,Quarta-feira
 Weekly,Semanal
@@ -3214,21 +3238,22 @@
 Yes,Sim
 Yesterday,Ontem
 You are not authorized to do/modify back dated entries before ,Você não está autorizado a fazer / modificar volta entradas datadas antes
-You can create more earning and deduction type from Setup --> HR,Você pode criar mais salário e tipo de dedução do Setup -&gt; HR
 You can enter any date manually,Você pode entrar em qualquer data manualmente
 You can enter the minimum quantity of this item to be ordered.,Você pode inserir a quantidade mínima deste item a ser ordenada.
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,"Você não pode entrar tanto Entrega Nota Não e Vendas Nota Fiscal n ° \ Por favor, entrar em qualquer um."
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,Você pode definir vários &#39;propriedades&#39; para usuários para definir os valores padrão e aplicar regras de permissão com base no valor dessas propriedades em várias formas.
 You can start by selecting backup frequency and \					granting access for sync,Você pode começar por selecionar a freqüência de backup e \ concessão de acesso para sincronização
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,Você pode usar <a href='#Form/Customize Form'>Personalizar Formulário</a> para definir os níveis em campos.
+You may need to update: ,Você pode precisar atualizar:
 Your Customer's TAX registration numbers (if applicable) or any general information,Seu cliente FISCAIS números de inscrição (se aplicável) ou qualquer outra informação geral
 "Your download is being built, this may take a few moments...","O seu download está sendo construída, isso pode demorar alguns instantes ..."
-Your letter head content in HTML.,Seu conteúdo cabeça carta em HTML.
+Your letter head content,Seu conteúdo cabeça carta
 Your sales person who will contact the customer in future,Sua pessoa de vendas que entrará em contato com o cliente no futuro
 Your sales person who will contact the lead in future,Sua pessoa de vendas que entrará em contato com a liderança no futuro
 Your sales person will get a reminder on this date to contact the customer,Seu vendedor receberá um lembrete sobre esta data para contato com o cliente
 Your sales person will get a reminder on this date to contact the lead,Seu vendedor receberá um lembrete nesta data em contato com o chumbo
 Your support email id - must be a valid email - this is where your emails will come!,O seu ID e-mail de apoio - deve ser um email válido - este é o lugar onde seus e-mails virão!
+[Error],[Erro]
 [Label]:[Field Type]/[Options]:[Width],[Etiqueta]: [Tipo de campo] / [Options]: [Largura]
 add your own CSS (careful!),adicionar seu próprio CSS (cuidado!)
 adjust,ajustar
@@ -3430,6 +3455,7 @@
 volume-up,volume-
 warning-sign,sinal de alerta-
 website page link,link da página site
+which is greater than sales order qty ,que é maior do que as vendas ordem qty
 wrench,chave inglesa
 yyyy-mm-dd,aaaa-mm-dd
 zoom-in,zoom-in
diff --git a/translations/sr.csv b/translations/sr.csv
index dbf39dd..aa14049 100644
--- a/translations/sr.csv
+++ b/translations/sr.csv
@@ -1,14 +1,20 @@
  (Half Day),(Полудневни)
+ against sales order,против продаје поретка
  against same operation,против исте операције
  already marked,је већ обележен
  and year: ,и година:
- at warehouse: ,ат складишту:
- by Role ,од стране Улога
+ as it is stock Item or packing item,као што је лагеру предмета или паковање артикал
+ at warehouse: ,у складишту:
+ by Role ,по улози
+ can not be made.,не може бити.
+ can not be marked as a ledger as it has existing child,не може да буде означена као књигу јер има постојећи дете
  cannot be 0,не може да буде 0
  cannot be deleted.,не може да се избрише.
  does not belong to the company,не припада се на компанији
+ has already been submitted.,је већ послат.
+ has been freezed. ,се замрзава.
  has been freezed. \				Only Accounts Manager can do transaction against this account,се замрзава. \ Само налози Менаџер може да уради трансакцију против овог рачуна
-" is less than equals to zero in the system, \						valuation rate is mandatory for this item","се мање него једнака на нулу у систему, \ процена вредности стопа је обавезно за ову ставку"
+" is less than equals to zero in the system, \						valuation rate is mandatory for this item","је мање него једнака нули у систему, \ вредновање стопа је обавезна за ову ставку"
  is mandatory,је обавезна
  is mandatory for GL Entry,је обавезан за ГЛ Ентри
  is not a ledger,није главна књига
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,је сада подразумевани фискалне године. \ Освежите прегледач за промена ступила на снагу.
  is present in one or many Active BOMs,је присутан у једном или више активних БОМс
  not active or does not exists in the system,није активна или не постоји у систему
+ not submitted,не подноси
  or the BOM is cancelled or inactive,или БОМ је отказано или неактиван
  should be 'Yes'. As Item: ,би требало да буде &#39;Да&#39;. Као тачке:
  should be same as that in ,треба да буде исти као онај који у
  was on leave on ,био на одсуству на
+ will be ,ће бити
  will be over-billed against mentioned ,ће бити превише наплаћено против помиње
  will become ,ће постати
 """Company History""",&quot;Историја компаније&quot;
@@ -56,6 +64,7 @@
 15px,15пк
 16px,16пк
 2 days ago,Пре 2 дана
+: Duplicate row from same ,: Дуплицате ред из исте
 : It is linked to other active BOM(s),: Повезан је са другом активном БОМ (с)
 : Mandatory for a Recurring Invoice.,: Обавезно за периодичну фактуре.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">Да бисте управљали групе корисника, кликните овде</a>"
@@ -102,6 +111,7 @@
 Account Id,Рачун Ид
 Account Name,Име налога
 Account Type,Тип налога
+Account for this ,Рачун за ово
 Accounting,Рачуноводство
 Accounting Year.,Обрачунској години.
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Рачуноводствени унос замрзнуте до овог датума, нико не може / изменити унос осим улоге доле наведеном."
@@ -114,6 +124,7 @@
 Action,Акција
 Active,Активан
 Active: Will extract emails from ,Активно: издвојити из пошту
+Activity,Активност
 Activity Log,Активност Пријава
 Activity Type,Активност Тип
 Actual,Стваран
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),Додајте банер на сајт. (Мали банери су обично добри)
 Add attachment,Додај прилог
 Add code as &lt;script&gt;,Додајте код као &lt;сцрипт&gt;
-Add custom code to forms,Додај прилагођени код на обрасцима
-Add fields to forms,Додавање поља у обрасцима
-Add headers for standard print formats,Додавање заглавља за стандардне формате штампе
 Add new row,Додавање новог реда
 Add or Deduct,Додавање или Одузмите
 Add rows to set annual budgets on Accounts.,Додајте редове одређује годишње буџете на рачунима.
@@ -158,7 +166,6 @@
 Add to To Do,Адд то То До
 Add to To Do List of,Адд то То До листу
 Add/Remove Recipients,Адд / Ремове прималаца
-"Add/remove users, set roles, passwords etc","Додавање / уклањање корисника, улоге постављене, лозинке и сл"
 Additional Info,Додатни подаци
 Address,Адреса
 Address & Contact,Адреса и контакт
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,Адреса се приказује на контакт страници
 Adds a custom field to a DocType,Додаје прилагођеног поља у ДОЦТИПЕ
 Adds a custom script (client or server) to a DocType,Додаје прилагођени сценарио (клијент или сервер) на ДОЦТИПЕ
-Administration,Администрација
 Advance Amount,Унапред Износ
 Advance amount,Унапред износ
 Advanced Scripting,Напредна Сцриптинг
@@ -238,6 +244,7 @@
 Allow Users,Дозволи корисницима
 Allow on Submit,Дозволи на Субмит
 Allow the following users to approve Leave Applications for block days.,Дозволи следеће корисницима да одобри Апликације оставити за блок дана.
+Allow user to edit Price List Rate in transactions,Дозволите кориснику да измените Рате Ценовник у трансакцијама
 Allow user to login only after this hour (0-24),Дозволи кориснику да тек пријавите након овог часа (0-24)
 Allow user to login only before this hour (0-24),Дозволи кориснику да само пријави пре него што овај час (0-24)
 Allowance Percent,Исправка Проценат
@@ -252,8 +259,6 @@
 Amount >=,Износ&gt; =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","Икона датотеке са екстензијом. Ицо. Требало би да буде 16 к 16 пк. Генерисано помоћу иконе омиљеног генератор. [ <a href=""http://favicon-generator.org/"" target=""_blank"">фавицон-генератор.орг</a> ]"
 Analytics,Аналитика
-Annual Cost To Company,Годишњи трошак је компанији
-Annual Cost To Company can not be less than 12 months of Total Earning,Годишњи трошак Да друштва не може бити мањи од 12 месеци укупно зарађују
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,Још једна структура плата &#39;% с&#39; је активан за запосленог &#39;% с&#39;. Молимо вас да &quot;неактивне&quot; свој статус у настави.
 "Any other comments, noteworthy effort that should go in the records.","Било који други коментар, истаћи напор који би требало да иде у евиденцији."
 Applicable Holiday List,Важећи Холидаи Листа
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,Примени / Одобрити Леавес
 Apply Shipping Rule,Примени правило испорука
 Apply Taxes and Charges Master,Примена такси и накнада Мастер
-Apply latest updates and patches to this app,Примените најновије исправке и закрпе за ову апликацију
 Appraisal,Процена
 Appraisal Goal,Процена Гол
 Appraisal Goals,Циљеви процене
@@ -300,7 +304,6 @@
 Attached To DocType,Везан ДОЦТИПЕ
 Attached To Name,Везан Име
 Attachment,Приврженост
-Attachment removed. You may need to update: ,Прилог уклоњен. Можда ћете морати да ажурирате:
 Attachments,Прилози
 Attempted to Contact,Покушај да се Контакт
 Attendance,Похађање
@@ -422,7 +425,6 @@
 Brand Name,Бранд Наме
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","Бренд је оно што се појављује на врху десно на траци са алаткама. Ако је слика, уверите итхас транспарентан позадини и користили &lt;имг /&gt; ознаку. Држите величину као 200пк к 30пк"
 Brand master.,Бренд господар.
-Branding and Printing,Брендирање и штампање
 Brands,Брендови
 Breakdown,Слом
 Budget,Буџет
@@ -440,6 +442,7 @@
 Build Sitemap,Буилд Ситемап
 Bulk Email,Булк маил
 Bulk Email records.,Булк Емаил рекорда.
+Bummer! There are more holidays than working days this month.,Штета! Постоји више празника него радних дана овог месеца.
 Bundle items at time of sale.,Бундле ставке у време продаје.
 Button,Дугме
 Buyer of Goods and Services.,Купац робе и услуга.
@@ -490,7 +493,6 @@
 Center,Центар
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.","Одређене документи не треба мењати једном финалу, као фактура за пример. Коначно стање таквих докумената зове <b>Поднет.</b> Можете да ограничите које улоге могу да поднесу."
 Change UOM for an Item.,Промена УОМ за артикал.
-"Change entry properties (hide fields, make mandatory etc)","Промените својства Ентри (Сакриј поља, чине обавезну ЕТЦ)"
 Change the starting / current sequence number of an existing series.,Промена стартовања / струја број редни постојеће серије.
 Channel Partner,Цханнел Партнер
 Charge,Пуњење
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Проверите ово ако желите да натера кориснику да одабере серију пре чувања. Неће бити подразумевано ако проверите ово.
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,"Проверите ово ако желите да пошаљете е-пошту, јер то само за идентификацију (у случају ограничења услуге е-поште)."
 Check this if you want to show in website,Проверите ово ако желите да прикажете у Веб
+Check this to disallow fractions. (for Nos),Проверите то тако да одбаци фракција. (За НОС)
 Check this to make this the default letter head in all prints,Проверите то да овај главу подразумевану писмо у свим отисцима
 Check this to pull emails from your mailbox,Проверите то повући поруке из поштанског сандучета
 Check to activate,Проверите да активирате
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,. Компанија регистарски бројеви за референцу Пример: ПДВ регистрацију Бројеви итд
 Company registration numbers for your reference. Tax numbers etc.,. Компанија регистарски бројеви за референцу Порески бројеви итд
 Complaint,Жалба
+Complete,Завршити
 Complete By,Комплетан Би
 Completed,Завршен
 Completed Qty,Завршен Кол
@@ -626,12 +630,12 @@
 Cost Center Name,Трошкови Име центар
 Cost Center is mandatory for item: ,Трошкови Центар је обавезан за ставку:
 Cost Center must be specified for PL Account: ,Трошкови центар мора бити наведено за ПЛ налог:
-Cost to Company,Трошкови предузећа
 Costing,Коштање
 Country,Земља
 Country Name,Земља Име
 Create,Створити
 Create Bank Voucher for the total salary paid for the above selected criteria,Креирање ваучера банка за укупне плате исплаћене за горе изабраним критеријумима
+Create Material Requests,Креирате захтеве Материјал
 Create Production Orders,Креирање налога Производне
 Create Receiver List,Направите листу пријемника
 Create Salary Slip,Направи Слип платама
@@ -680,6 +684,7 @@
 Custom Startup Code,Прилагођена Покретање код
 Custom?,Цустом?
 Customer,Купац
+Customer (Receivable) Account,Кориснички (потраживања) Рачун
 Customer / Item Name,Кориснички / Назив
 Customer Account,Кориснички налог
 Customer Account Head,Кориснички налог је шеф
@@ -688,6 +693,8 @@
 Customer Code,Кориснички Код
 Customer Codes,Кориснички Кодови
 Customer Details,Кориснички Детаљи
+Customer Discount,Кориснички Попуст
+Customer Discounts,Попусти корисника
 Customer Feedback,Кориснички Феедбацк
 Customer Group,Кориснички Група
 Customer Group Name,Кориснички Назив групе
@@ -717,11 +724,10 @@
 DN,ДН
 DN Detail,ДН Детаљ
 Daily,Дневно
+Daily Event Digest is sent for Calendar Events where reminders are set.,Дневни Догађај Преради се шаље на Календар догађаја где су подесите подсетнике.
 Daily Time Log Summary,Дневни Време Лог Преглед
-"Daily, weekly, monthly email Digests","Дневни, недељни, месечни е Дигестс"
 Danger,Опасност
 Data,Подаци
-Data Import,Увоз података
 Data missing in table,Недостају подаци у табели
 Database,База података
 Database Folder ID,База података Фолдер ИД
@@ -777,6 +783,7 @@
 Default Settings,Подразумевана подешавања
 Default Source Warehouse,Уобичајено Извор Магацин
 Default Stock UOM,Уобичајено берза УОМ
+Default Supplier,Уобичајено Снабдевач
 Default Supplier Type,Уобичајено Снабдевач Тип
 Default Target Warehouse,Уобичајено Циљна Магацин
 Default Territory,Уобичајено Територија
@@ -795,6 +802,7 @@
 Delete,Избрисати
 Delete Row,Делете Ров
 Delivered,Испоручено
+Delivered Items To Be Billed,Испоручени артикала буду наплаћени
 Delivered Qty,Испоручено Кол
 Delivery Address,Испорука Адреса
 Delivery Date,Датум испоруке
@@ -813,7 +821,6 @@
 Delivery Time,Време испоруке
 Delivery To,Достава Да
 Department,Одељење
-Depend on LWP,Зависи ЛВП
 Depends On,Зависи
 Depends on LWP,Зависи ЛВП
 Descending,Спуштање
@@ -864,6 +871,7 @@
 DocType or Field,ДОЦТИПЕ или поље
 Document,Документ
 Document Description,Опис документа
+Document Numbering Series,Документ нумерисање серија
 Document Status transition from ,Документ статус прелазак са
 Document Type,Доцумент Типе
 Document is only editable by users of role,Документ је само мењати од стране корисника о улози
@@ -934,7 +942,7 @@
 Employee Leave Balance,Запослени одсуство Биланс
 Employee Name,Запослени Име
 Employee Number,Запослени Број
-Employee Records to be created by ,Евиденција запослених које ће креирати
+Employee Records to be created by,Евиденција запослених које ће креирати
 Employee Setup,Запослени Сетуп
 Employee Type,Запослени Тип
 Employee grades,Запослених разреда
@@ -944,7 +952,6 @@
 Employees Email Id,Запослени Емаил ИД
 Employment Details,Детаљи за запошљавање
 Employment Type,Тип запослења
-Enable / disable currencies.,Омогући / онемогући валуте.
 Enable Auto Inventory Accounting,Омогући рачуноводство Ауто Инвентар
 Enable Shopping Cart,Омогући Корпа
 Enabled,Омогућено
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,Грешка: Документ је измењен након што сте је отворили
 Estimated Material Cost,Процењени трошкови материјала
 Event,Догађај
+Event End must be after Start,Догађај Крај мора да буде у СТАРТ
 Event Individuals,Догађај Појединци
 Event Role,Догађај Улога
 Event Roles,Догађај Улоге
 Event Type,Тип догађаја
 Event User,Догађај Корисник
+Events In Today's Calendar,Догађаји у календару данашњем
+Every Day,Сваки дан
+Every Month,Сваки месец
+Every Week,Свака недеља
+Every Year,Сваке године
 Everyone can read,Свако може да чита
 Example:,Пример:
 Exchange Rate,Курс
@@ -1019,8 +1032,6 @@
 Exports,Извоз
 External,Спољни
 Extract Emails,Екстракт Емаилс
-Extract Job Applicant from jobs email id e.g. jobs@example.com,Извод подносиоца Посао из послова Емаил ИД нпр јобс@екампле.цом
-Extract Leads from sales email id e.g. sales@example.com,Извод води од продаје емаил ид нпр салес@екампле.цом
 FCFS Rate,Стопа ФЦФС
 FIFO,ФИФО
 Facebook Share,Фацебоок Схаре
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Поља раздвојене зарезима (,) ће бити укључени у <br /> <b>Претрага по</b> списку дијалогу за претрагу"
 File,Фајл
 File Data,Филе података
-File Manager,Филе Манагер
 File Name,Филе Наме
 File Size,Величина
 File URL,Филе УРЛ
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,Завршни Потврда Датум
 Financial Analytics,Финансијски Аналитика
 Financial Statements,Финансијски извештаји
-Financial Years for books of accounts,Финансијска година за књигама
 First Name,Име
 First Responded On,Прво одговорила
 Fiscal Year,Фискална година
@@ -1090,6 +1099,7 @@
 For Sales Invoice,"За продају, фактура"
 For Server Side Print Formats,За Сервер форматима страна за штампање
 For Territory,За територију
+For UOM,За УЦГ
 For Warehouse,За Варехоусе
 "For comparative filters, start with","За компаративних филтера, почети са"
 "For e.g. 2012, 2012-13","За нпр 2012, 2012-13"
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,Фреезе уносе берза
 Friday,Петак
 From,Из
+From Bill of Materials,Од Билл оф Материалс
 From Company,Из компаније
 From Currency,Од валутног
 From Currency and To Currency cannot be same,Од Валуте и до валута не може да буде иста
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,Од датума мора да буде пре датума
 From Delivery Note,Из доставница
 From Employee,Од запосленог
+From Lead,Од Леад
 From PR Date,Из ПР Дате
 From Package No.,Од Пакет број
 From Purchase Order,Од наруџбеницу
@@ -1150,8 +1162,8 @@
 Get Current Stock,Гет тренутним залихама
 Get From ,Од Гет
 Get Items,Гет ставке
+Get Items From Sales Orders,Набавите ставке из наруџбина купаца
 Get Last Purchase Rate,Гет Ласт Рате Куповина
-Get Latest Updates,Добити најновије вести
 Get Non Reconciled Entries,Гет Нон помирили Ентриес
 Get Outstanding Invoices,Гет неплаћене рачуне
 Get Purchase Receipt,Гет фискални рачун
@@ -1161,7 +1173,6 @@
 Get Template,Гет шаблона
 Get Terms and Conditions,Гет Услове
 Get Weekly Off Dates,Гет Офф Недељно Датуми
-Get a list of errors encountered by the Scheduler,Набавите листу грешака које је наишао у планеру
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Гет стопу процене и доступну кундак на извор / мета складишта на поменуто постављање датум-време. Ако серијализованом ставку, притисните ово дугме након уласка серијски бр."
 Give additional details about the indent.,Дајте додатне детаље о увлачења.
 Global Defaults,Глобални Дефаултс
@@ -1193,9 +1204,9 @@
 Group or Ledger,Група или Леџер
 Groups,Групе
 HR,ХР
+HR Settings,ХР Подешавања
 HTML,ХТМЛ
 HTML / Banner that will show on the top of product list.,ХТМЛ / банер који ће се појавити на врху листе производа.
-"HTML print formats for quotes, invoices etc","ХТМЛ штампани формати за цитира, итд фактура"
 Half Day,Пола дана
 Half Yearly,Пола Годишњи
 Half-yearly,Полугодишње
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children","Овде можете одржавати детаље породице као име и окупације родитеља, брачног друга и деце"
 "Here you can maintain height, weight, allergies, medical concerns etc","Овде можете одржавати висина, тежина, алергија, медицинску забринутост сл"
 Hey there! You need to put at least one item in \				the item table.,Хеј! Треба да се стави бар једну ставку у \ тачка табели.
+Hey! All these items have already been invoiced.,Хеј! Све ове ставке су већ фактурисано.
 Hey! There should remain at least one System Manager,Хеј! Ту би требало да остане најмање један Систем Манагер
 Hidden,Сакривен
 Hide Actions,Сакриј Ацтионс
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults","Како би ова валута се форматира? Ако нису подешене, неће користити подразумеване системске"
 How to upload,Како да уплоад
 Hrvatski,Хрватски
+Human Resources,Људски ресурси
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,Ура! Дан (а) на коју се пријављујете за дозволу \ поклапају са одмора (с). Ви не морају поднети захтев за дозволу.
 I,Ја
 ID (name) of the entity whose property is to be set,ИД (име) ентитета чија имовина се подесити
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,Ако Годишњи буџет прекорачени
 "If a User does not have access at Level 0, then higher levels are meaningless","Уколико Корисник нема приступ на нивоу 0, онда виши нивои су бесмислени"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","Ако је проверен, бом за под-монтаже ставки ће бити узети у обзир за добијање сировина. Иначе, сви суб-монтажни ставке ће бити третирани као сировина."
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Уколико је означено, Укупно нема. радних дана ће се укључити празника, а то ће смањити вредност зараде по дану"
 "If checked, all other workflows become inactive.","Ако је проверен, сви остали токови постају неактивни."
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","Уколико је означено, е-маил са припојеним ХТМЛ формату ће бити додат део у тело е, као и везаност. Да бисте послали само као прилог, искључите ово."
 "If checked, the Home page will be the default Item Group for the website.","Ако је проверен, Почетна страница ће бити стандардна тачка Група за сајт."
@@ -1305,7 +1319,6 @@
 Import,Увоз
 Import Attendance,Увоз Гледалаца
 Import Log,Увоз се
-Import data from spreadsheet (csv) files,Увоз података из табеле (ЦСВ) фајловима
 Important dates and commitments in your project life cycle,Важни датуми и обавезе у свом животног циклуса пројекта
 Imports,Увоз
 In Dialog,У дијалогу
@@ -1314,6 +1327,7 @@
 In List View,У приказу листе
 In Process,У процесу
 In Report Filter,У извештају филтер
+In Row,У низу
 In Store,У продавници
 In Words,У Вордс
 In Words (Company Currency),Речима (Друштво валута)
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","У дозвола Манагер, кликните на дугме у &#39;услови&#39; колумну за улогу коју желите да ограничите."
 Incentives,Подстицаји
 Incharge Name,Инцхарге Име
+Include holidays in Total no. of Working Days,Укључи одмор у Укупан бр. радних дана
 Income / Expense,Приходи / расходи
 Income Account,Приходи рачуна
 Income Booked,Приходи Жути картони
@@ -1347,6 +1362,7 @@
 Industry Type,Индустрија Тип
 Info,Инфо
 Insert After,Убаците После
+Insert Below,Убаците Испод
 Insert Code,Инсерт Цоде
 Insert Row,Уметни ред
 Insert Style,Убаците Стиле
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,Неважећи Испорука Напомена. Напомена Испорука би требало да постоји и треба да буде у стању нацрта. Молимо исправи и покушајте поново.
 Invalid Email,Погрешан Емаил
 Invalid Email Address,Неважећи маил адреса
+Invalid Item or Warehouse Data,Неисправна шифра или складишта података
 Invalid Leave Approver,Неважећи Оставите Аппровер
 Inventory,Инвентар
 Inverse,Инверзан
@@ -1511,7 +1528,6 @@
 Lead Lost,Олово Лост
 Lead Name,Олово Име
 Lead Owner,Олово Власник
-Lead Ref,Олово Реф
 Lead Source,Олово Соурце
 Lead Status,Олово статус
 Lead Time Date,Олово Датум Време
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,Оставите празно ако се сматра за све ознакама
 Leave blank if considered for all employee types,Оставите празно ако се сматра за све типове запослених
 Leave blank if considered for all grades,Оставите празно ако се сматра за све разреде
+Leave blank if you have not decided the end date.,Оставите празно ако нисте одлучили крајњи датум.
 Leave by,Оставите по
 "Leave can be approved by users with Role, ""Leave Approver""",Оставите може бити одобрен од стране корисника са улогом &quot;Оставите Аппровер&quot;
 Ledger,Надгробна плоча
@@ -1553,7 +1570,6 @@
 Letter Head,Писмо Глава
 Letter Head Image,Писмо Глава Имаге
 Letter Head Name,Писмо Глава Име
-Letter heads for print,Писмо глава за штампање
 Level,Ниво
 "Level 0 is for document level permissions, higher levels for field level permissions.","Ниво 0 је за дозволе нивоу документа, вишим нивоима за дозвола на терену."
 Lft,ЛФТ
@@ -1563,13 +1579,11 @@
 Linked With,Повезан са
 List,Списак
 List items that form the package.,Листа ствари које чине пакет.
-List of companies (not customers / suppliers),Списак предузећа (не купци / добављачи)
 List of holidays.,Списак празника.
 List of patches executed,Списак закрпа извршених
 List of records in which this document is linked,Списак књига у којима су повезани овај документ
 List of users who can edit a particular Note,Листа корисника који може да измени одређене белешке
 List this Item in multiple groups on the website.,Наведи ову ставку у више група на сајту.
-"List, delete uploaded files.","Лист, брисање отпремљене датотеке."
 Live Chat,Ливе Цхат
 Load Print View on opening of an existing form,Учитај Погледај штампани о отварању постојеће форме
 Loading,Утовар
@@ -1596,6 +1610,7 @@
 Mail Server,Маил Сервер
 Main Reports,Главни Извештаји
 Main Section,Главни Секција
+Maintain Same Rate Throughout Sales Cycle,Одржавајте исту стопу Широм продајног циклуса
 Maintain same rate throughout purchase cycle,Одржавајте исту стопу током куповине циклуса
 Maintenance,Одржавање
 Maintenance Date,Одржавање Датум
@@ -1616,7 +1631,6 @@
 Make a new,Направите нови
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,Уверите се да су трансакције желите да ограничите имају &#39;територију&#39; линком поља која мапира на &quot;Територија&quot; господара.
 Male,Мушки
-Manage Numbering Series,Управљање нумерације Сериес
 Manage cost of operations,Управљање трошкове пословања
 Manage exchange rates for currency conversion,Управљање курсеве за конверзију валута
 Mandatory,Обавезан
@@ -1651,10 +1665,10 @@
 Material Request No,Материјал Захтев Нема
 Material Request Type,Материјал Врста Захтева
 Material Request used to make this Stock Entry,Материјал Захтев се користи да би овај унос Стоцк
+Material Requirement,Материјал Захтев
 Material Transfer,Пренос материјала
 Materials,Материјали
 Materials Required (Exploded),Материјали Обавезно (Екплодед)
-Materials Requirement Planning (MRP),Материјали Захтев планирање (МРП)
 Max 500 rows only.,Мак 500 редова једини.
 Max Attachments,Мак Прилози
 Max Days Leave Allowed,Мак Дани Оставите животиње
@@ -1699,6 +1713,7 @@
 Month,Месец
 Monthly,Месечно
 Monthly Attendance Sheet,Гледалаца Месечни лист
+Monthly Earning & Deduction,Месечна зарада и дедукције
 Monthly Salary Register,Месечна плата Регистрација
 Monthly salary statement.,Месечна плата изјава.
 Monthly salary template.,Месечна плата шаблон.
@@ -1711,7 +1726,9 @@
 Mr,Господин
 Ms,Мс
 Multiple Item Prices,Вишеструки Итем Цене
+Multiple root nodes not allowed.,Вишеструки корена чворови нису дозвољени.
 Mupltiple Item prices.,Муплтипле Итем цене.
+Must be Whole Number,Мора да буде цео број
 Must have report permission to access this report.,Мора да има дозволу извештај да приступите овом извештају.
 Must specify a Query to run,Морате навести упит за покретање
 My Settings,Моја подешавања
@@ -1737,7 +1754,6 @@
 Net Weight,Нето тежина
 Net Weight UOM,Тежина УОМ
 Net Weight of each Item,Тежина сваког артикла
-Net pay can not be greater than 1/12th of Annual Cost To Company,Нето плата не може бити већа од 1/12тх годишњег трошка за предузећа
 Net pay can not be negative,Нето плата не може бити негативна
 Never,Никад
 New,Нови
@@ -1795,6 +1811,7 @@
 No of Sent SMS,Број послатих СМС
 No of Visits,Број посета
 No one,Нико
+No permission to write / remove.,Немате дозволу за писање / уклони.
 No record found,Нема података фоунд
 No records tagged.,Нема података означени.
 No salary slip found for month: ,Нема плата за месец пронађен клизање:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,Ж Ставке да буде испоручена
 Ordered Quantity,Наручено Количина
 Orders released for production.,Поруџбине пуштен за производњу.
-Organization,Организација
 Organization Profile,Организација Профил
 Original Message,Оригинал Мессаге
 Other,Други
 Other Details,Остали детаљи
 Out,Напоље
-Out going mail server and support ticket mailbox,Од дешава маил сервер и подршку карата сандуче
 Out of AMC,Од АМЦ
 Out of Warranty,Од гаранције
 Outgoing,Друштвен
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),ПОП3 маил сервера (нпр. поп.гмаил.цом)
 POP3 server e.g. (pop.gmail.com),ПОП3 сервер нпр (поп.гмаил.цом)
 POS Setting,ПОС Подешавање
+POS View,ПОС Погледај
 PR Detail,ПР Детаљ
 PRO,ПРО
 PS,ПС
@@ -1951,10 +1967,10 @@
 Participants,Учесници
 Partly Billed,Делимично Изграђена
 Partly Delivered,Делимично Испоручено
-Partner,Партнер
 Partner Target Detail,Партнер Циљна Детаљ
 Partner Type,Партнер Тип
 Partner's Website,Партнер аутора
+Passive,Пасиван
 Passport Number,Пасош Број
 Password,Шифра
 Password Expires in (days),Лозинка Истиче у (дана)
@@ -1964,12 +1980,12 @@
 Payables,Обавезе
 Payables Group,Обавезе Група
 Payment Collection With Ageing,Са наплате старењу
+Payment Days,Дана исплате
 Payment Entries,Платни Ентриес
 Payment Entry has been modified after you pulled it. 			Please pull it again.,Плаћање Улаз је измењена након што је извукао. Молимо повуците га поново.
 Payment Made With Ageing,Плаћање Маде Витх старењу
 Payment Reconciliation,Плаћање помирење
 Payment Terms,Услови плаћања
-Payment days,Платни дана
 Payment to Invoice Matching Tool,Плаћање фактуре Матцхинг Тоол
 Payment to Invoice Matching Tool Detail,Плаћање фактуре Матцхинг Тоол Детаљ
 Payments,Исплате
@@ -1984,6 +2000,7 @@
 Percent,Проценат
 Percent Complete,Проценат Комплетна
 Percentage Allocation,Проценат расподеле
+Percentage Allocation should be equal to ,Проценат расподеле треба да буде једнака
 Percentage variation in quantity to be allowed while receiving or delivering this item.,Проценат варијација у количини да буде дозвољено док прима или пружа ову ставку.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,Проценат вам је дозвољено да примају или испоручи више од количине наредио. На пример: Ако сте наредили 100 јединица. и ваш додатак је 10% онда вам је дозвољено да примају 110 јединица.
 Performance appraisal.,Учинка.
@@ -2026,19 +2043,24 @@
 Please check,Молимо вас да проверите
 Please enter Default Unit of Measure,Унесите јединицу мере Дефаулт
 Please enter Delivery Note No or Sales Invoice No to proceed,Унесите Напомена испоруку не продаје Фактура или Не да наставите
+Please enter Employee Number,Унесите број запослених
 Please enter Expense Account,Унесите налог Екпенсе
 Please enter Expense/Adjustment Account,Унесите трошак / Подешавање налога
 Please enter Purchase Receipt No to proceed,Унесите фискални рачун Не да наставите
+Please enter Reserved Warehouse for item ,Унесите Резервисано складиште за ставку
 Please enter valid,Молимо Вас да унесете важећи
 Please enter valid ,Молимо Вас да унесете важећи
 Please install dropbox python module,Молимо вас да инсталирате Дропбок питон модул
 Please make sure that there are no empty columns in the file.,Молимо Вас проверите да нема празних колона у датотеци.
 Please mention default value for ',Молимо вас да поменете дефаулт вредност за &#39;
+Please reduce qty.,Смањите Кти.
 Please refresh to get the latest document.,Освежите да би добили најновије документ.
 Please save the Newsletter before sending.,Молимо сачувајте билтен пре слања.
 Please select Bank Account,Изаберите банковни рачун
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Молимо изаберите пренети ако такође желите да укључите претходну фискалну годину је биланс оставља на ову фискалну годину
 Please select Date on which you want to run the report,Изаберите датум на који желите да покренете извештај
+Please select Naming Neries,Изаберите Именовање Нериес
+Please select Price List,Изаберите Ценовник
 Please select Time Logs.,Изаберите Дневници време.
 Please select a,Изаберите
 Please select a csv file,Изаберите ЦСВ датотеку
@@ -2051,10 +2073,12 @@
 Please select: ,Молимо одаберите:
 Please set Dropbox access keys in,Молимо сет Дропбок тастера за приступ у
 Please set Google Drive access keys in,Молимо да подесите Гоогле диска тастере приступа у
+Please setup Employee Naming System in Human Resource > HR Settings,Молимо сетуп Емплоиее Именовање систем у људске ресурсе&gt; Подешавања ХР
 Please specify,Наведите
 Please specify Company,Молимо наведите фирму
 Please specify Company to proceed,Наведите компанија наставити
 Please specify Default Currency in Company Master \			and Global Defaults,Наведите Валуте подразумевајуће у компанији Мастер \ и глобалне Дефаултс
+Please specify a,Наведите
 Please specify a Price List which is valid for Territory,Наведите ценовник који важи за територију
 Please specify a valid,Наведите важећи
 Please specify a valid 'From Case No.',Наведите тачну &#39;Од Предмет бр&#39;
@@ -2070,7 +2094,7 @@
 Posts,Поруке
 Potential Sales Deal,Потенцијал продаје Деал
 Potential opportunities for selling.,Потенцијалне могућности за продају.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","Прецизни за пловак поља (количине, попусти, проценти, итд) само на екрану. Пловци и даље ће бити обрачуната до 6 децимала."
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","Прецизни за Флоат поља (количине, попусти, проценти итд). Плута се заокружује на наведеним децимале. Уобичајено = 3"
 Preferred Billing Address,Жељени Адреса за наплату
 Preferred Shipping Address,Жељени Адреса испоруке
 Prefix,Префикс
@@ -2081,7 +2105,6 @@
 Previous Work Experience,Претходно радно искуство
 Price,Цена
 Price List,Ценовник
-Price List Country,Ценовник Земља
 Price List Currency,Ценовник валута
 Price List Currency Conversion Rate,Ценовник валута Стопа конверзије
 Price List Exchange Rate,Цена курсној листи
@@ -2089,6 +2112,7 @@
 Price List Name,Ценовник Име
 Price List Rate,Ценовник Оцени
 Price List Rate (Company Currency),Ценовник Цена (Друштво валута)
+Price List for Costing,Ценовник за Цостинг
 Price Lists and Rates,Ценовници и стопе
 Primary,Основни
 Print Format,Принт Формат
@@ -2107,6 +2131,7 @@
 Produced Quantity,Произведена количина
 Product Enquiry,Производ Енкуири
 Production Order,Продуцтион Ордер
+Production Orders,Налога за производњу
 Production Plan Item,Производња план шифра
 Production Plan Items,Производни план Артикли
 Production Plan Sales Order,Производња Продаја план Наручи
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,Пројекат мудар Праћење залиха
 Projected Qty,Пројектовани Кол
 Projects,Пројекти
-Prompt email sending to customers and suppliers,Упитај емаил слање купцима и добављачима
 Prompt for Email on Submission of,Упитај Емаил за подношење
 Properties,Некретнине
 Property,Имовина
@@ -2147,7 +2171,6 @@
 Published On,Објављено Дана
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,Повуците Емаилс из Примљено и приложите их као комуникације записа (за познате контакте).
 Pull Payment Entries,Пулл уносе плаћања
-Pull items from Sales Order mentioned in the above table.,Повуците ставке из продаје Реда поменутог у горњој табели.
 Pull sales orders (pending to deliver) based on the above criteria,Повуците продајне налоге (чека да испоручи) на основу наведених критеријума
 Purchase,Куповина
 Purchase Analytics,Куповина Аналитика
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,Количина је већ произведен
 Quantity and Rate,Количина и Оцените
 Quantity and Warehouse,Количина и Магацин
+Quantity cannot be a fraction.,Количина не може бити део.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Количина тачке добија након производњи / препакивање од датих количине сировина
 Quantity should be equal to Manufacturing Quantity. ,Количина треба да буде једнака Производња Количина.
 Quarter,Четврт
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,Понуда Лост разлог
 Quotation Message,Цитат Порука
 Quotation Sent,Понуда Сент
+Quotation Series,Цитат серија
 Quotation To,Цитат
 Quotation Trend,Цитат Тренд
 Quotations received from Suppliers.,Цитати од добављача.
 Quotes to Leads or Customers.,Цитати на води или клијената.
-Raise Material Request,Раисе Захтев Материјал
 Raise Material Request when stock reaches re-order level,Подигните захтев залиха материјала када достигне ниво поновно наручивање
-Raise Production Order,Подићи Ордер Производња
 Raised By,Подигао
 Raised By (Email),Подигао (Е-маил)
 Random,Случајан
@@ -2280,6 +2303,7 @@
 Receivables / Payables,Потраживања / Обавезе
 Receivables Group,Потраживања Група
 Received Date,Примљени Датум
+Received Items To Be Billed,Примљени артикала буду наплаћени
 Received Qty,Примљени Кол
 Received and Accepted,Примио и прихватио
 Receiver List,Пријемник Листа
@@ -2293,6 +2317,8 @@
 Recurring Id,Понављајући Ид
 Recurring Invoice,Понављајући Рачун
 Recurring Type,Понављајући Тип
+Reduce Deduction for Leave Without Pay (LWP),Смањите одбитка за дозволу без плате (ЛВП)
+Reduce Earning for Leave Without Pay (LWP),Смањите Зарада за дозволу без плате (ЛВП)
 Ref Code,Реф Код
 Ref Date is Mandatory if Ref Number is specified,Реф дата је обавезно ако Реф наведен
 Ref DocType,Реф ДОЦТИПЕ
@@ -2302,6 +2328,8 @@
 Ref Type,Реф Тип
 Reference,Упућивање
 Reference Date,Референтни датум
+Reference DocName,Референтни ДоцНаме
+Reference DocType,Референтни ДоцТипе
 Reference Name,Референтни Име
 Reference Number,Референтни број
 Reference Type,Референтни Тип
@@ -2322,10 +2350,12 @@
 Remove Bookmark,Уклоните Боокмарк
 Rename Log,Преименовање Лог
 Rename Tool,Преименовање Тоол
-Rename multiple items in one go,Преименовање више ставки у једном потезу
 Rename...,Преименуј ...
 Rented,Изнајмљени
+Repeat On,Поновите На
+Repeat Till,Поновите До
 Repeat on Day of Month,Поновите на дан у месецу
+Repeat this Event,Поновите овај догађај
 Replace,Заменити
 Replace Item / BOM in all BOMs,Замените Итем / бом у свим БОМс
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Замените посебну бом у свим осталим БОМс где се он користи. Она ће заменити стару везу бом, ажурирање трошкове и регенеришу &quot;бом експлозије јединице&quot; табелу по новом БОМ"
@@ -2358,13 +2388,14 @@
 Reseller,Продавац
 Reserved Quantity,Резервисани Количина
 Reserved Warehouse,Резервисани Магацин
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,Резервисано Магацин у Продаја Наручите / складиште готове робе
+Reserved Warehouse is missing in Sales Order,Резервисано Магацин недостаје у продајних налога
 Resignation Letter Date,Оставка Писмо Датум
 Resolution,Резолуција
 Resolution Date,Резолуција Датум
 Resolution Details,Резолуција Детаљи
 Resolved By,Решен
 Restrict IP,Забранити ИП
-Restrict submission rights based on amount,Ограничите права подношење основу износа
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),"Ограничите корисника из само ове ИП адресе. Вишеструки ИП адресе може се додати одвајањем са зарезима. Такође прихвата делимичне ИП адресе, као што су (111.111.111)"
 Restricting By User,Ограничавање Корисника
 Retail,Малопродаја
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,Плата Структура Одбитак
 Salary Structure Earning,Плата Структура Зарада
 Salary Structure Earnings,Структура плата Зарада
+Salary breakup based on Earning and Deduction.,Плата распада на основу зараде и дедукције.
 Salary components.,Плата компоненте.
 Sales,Продајни
 Sales Analytics,Продаја Аналитика
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),Продавац Циљна Варијанса (тачка група-Висе)
 Sales Person Targets,Продаја Персон Мете
 Sales Person-wise Transaction Summary,Продавац у питању трансакција Преглед
-Sales Rate,Продаја Оцени
 Sales Register,Продаја Регистрација
 Sales Return,Продаја Ретурн
 Sales Taxes and Charges,Продаја Порези и накнаде
@@ -2484,7 +2515,6 @@
 Scheduled,Планиран
 Scheduled Confirmation Date,Планирано Потврда Датум
 Scheduled Date,Планиран датум
-Scheduler Error Log,Планер грешки
 Scheduler Log,Планер Пријава
 School/University,Школа / Универзитет
 Score (0-5),Оцена (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,Изаберите ДОЦТИПЕ
 Select Document Type,Изаберите Врста документа
 Select Document Type or Role to start.,Изаберите тип документа или улогу за почетак.
+Select Items,Изаберите ставке
 Select PR,Изаберите ПР
 Select Print Format,Изаберите формат штампања
 Select Print Heading,Изаберите Принт Хеадинг
@@ -2562,8 +2593,8 @@
 Send SMS,Пошаљи СМС
 Send To,Пошаљи
 Send To Type,Пошаљи да куцате
+Send an email reminder in the morning,Пошаљи е-маил подсетник ујутру
 Send automatic emails to Contacts on Submitting transactions.,Пошаљи аутоматске пошту у контакте на Подношење трансакције.
-"Send bulk SMS to leads, customers, contacts","Пошаљи СМС Булк да Леадс, клијентима, контактима"
 Send mass SMS to your contacts,Пошаљи СМС масовне вашим контактима
 Send regular summary reports via Email.,Пошаљи редовне извештаје резимеа путем е-поште.
 Send to this list,Пошаљи на овој листи
@@ -2580,7 +2611,6 @@
 Serial No Status,Серијски број статус
 Serial No Warranty Expiry,Серијски Нема гаранције истека
 Serialized Item: ',Сериализед шифра: &#39;
-Series,Серија
 Series List for this Transaction,Серија Листа за ову трансакције
 Server,Сервер
 Service Address,Услуга Адреса
@@ -2590,19 +2620,13 @@
 Session Expiry,Седница Истек
 Session Expiry in Hours e.g. 06:00,Седница Рок Хоурс нпр 06:00
 Set Banner from Image,Поставите банер са слике
-Set From Image,Сет са слике
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Сет тачка Групе мудрих буџете на овој територији. Такође можете укључити сезонски постављањем дистрибуције.
 Set Login and Password if authentication is required.,Сет логин и лозинку ако је потребна потврда идентитета.
 Set New Password,Постави нову шифру
 Set Value,Сет Валуе
 "Set a new password and ""Save""",Поставите нову лозинку и &quot;Саве&quot;
-Set default values for entry,Постављање подразумеваних вредности за улазак
-Set default values for users (also used for permissions).,Постављање подразумеваних вредности за кориснике (такође се користи за дозволе).
-Set multiple numbering series for transactions,Сет више бројева серију за трансакције
-Set permissions on transactions / masters,Поставите дозволе о трансакцијама / Мастерс
 Set prefix for numbering series on your transactions,Сет префикс за нумерисање серију на својим трансакцијама
 Set targets Item Group-wise for this Sales Person.,Поставите циљеве ставку Групе мудро ову особу продаје.
-Set workflow rules.,Сет правила тока.
 "Set your background color, font and image (tiled)","Поставите позадином, фонт и слике (поплочан)"
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","Поставите овде своје одлазне поште СМТП подешавања. Све систем генерише обавештења, емаил-ови ће отићи са овог маил сервера. Ако нисте сигурни, оставите ово празно да бисте користили ЕРПНект сервере (е-маил поруке и даље ће бити послате са вашег Емаил ИД) или се обратите свом провајдеру е-поште."
 Setting Account Type helps in selecting this Account in transactions.,Подешавање Тип налога помаже у одабиру овог рачуна у трансакцијама.
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,Постављање корпи.
 Setup of fonts and background.,Подешавање фонтова и позадине.
 "Setup of top navigation bar, footer and logo.","Подешавање топ навигатион бар, подножје и логотипом."
-Setup outgoing SMS via your bulk SMS provider,Поставите одлазне СМС путем свог булк СМС провајдера
 Setup to pull emails from support email account,Поставите повући поруке из налога е-поште за подршку
 Share,Удео
 Share With,Подели са
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,Кратка биографија за сајт и других публикација.
 Shortcut,Пречица
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",Схов &quot;У складишту&quot; или &quot;Није у складишту&quot; заснован на лагеру на располагању у овом складишту.
-Show / Hide Modules,Прикажи / Сакриј модуле
 Show Details,Прикажи детаље
 Show In Website,Схов у сајт
 Show Print First,Прикажи Штампање Прво
@@ -2658,11 +2680,9 @@
 Show in Website,Прикажи у сајту
 Show rows with zero values,Покажи редове са нула вредностима
 Show this slideshow at the top of the page,Покажи ову пројекцију слајдова на врху странице
-"Show, hide modules","Схов, сакрити модула"
 Showing only for,Приказ само за
 Signature,Потпис
 Signature to be appended at the end of every email,Потпис се додаје на крају сваког е-поште
-Simplify entry forms by disabling features,Поједноставите облика улазне искључивањем функције
 Single,Самац
 Single Post (article).,Појединачне поруке (члан).
 Single unit of an Item.,Једна јединица једне тачке.
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,Жао ми је што нису могли да пронађу оно што сте тражили.
 Sorry you are not permitted to view this page.,Жао ми је што није дозвољено да видите ову страницу.
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,Жао ми је! Ми само можемо дозволити Упто 100 редова за берзи помирењу.
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","Извини! Не можете да промените валуту подразумевани компаније, јер се у њему већ трансакције против њега. Мораћете да поништи трансакције уколико желите да промените подразумевану валуту."
 Sorry. Companies cannot be merged,Извините. Компаније не могу да се споје
 Sorry. Serial Nos. cannot be merged,Извините. Серијски Нос не могу да се споје
 Sort By,Сортирање
@@ -2759,6 +2780,7 @@
 Suggestions,Предлози
 Sunday,Недеља
 Supplier,Добављач
+Supplier (Payable) Account,Добављач (наплаћује се) налог
 Supplier (vendor) name as entered in supplier master,"Добављач (продавац), име као ушао у добављача мастер"
 Supplier Account Head,Снабдевач рачуна Хеад
 Supplier Address,Снабдевач Адреса
@@ -2792,7 +2814,6 @@
 Symbol,Симбол
 Sync Inbox,Синц инбок
 Sync Support Mails,Синхронизација маилова подршке
-Sync backups with remote tools like Dropbox etc.,Синхронизација са удаљеним бекап алатима као Дропбок итд
 Sync with Dropbox,Синхронизација са Дропбок
 Sync with Google Drive,Синхронизација са Гоогле Дриве
 System,Систем
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page",&quot;Веб страница&quot; који је сајт хоме паге
 The BOM which will be replaced,БОМ који ће бити замењен
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",Ставка која представља пакет. Ова тачка мора да &quot;Зар берза Ставка&quot; као &quot;не&quot; и &quot;Да ли је продаје тачка&quot; као &quot;Да&quot;
-The account to which you will pay (have paid) the money to.,Рачун на који ћете платити (платили) новац.
 The date at which current entry is made in system.,Датум на који је тренутни унос направљен у систему.
 The date at which current entry will get or has actually executed.,Датум на који тренутна ставка ће добити или је стварно извршена.
 The date on which next invoice will be generated. It is generated on submit.,Датум када ће следећи рачун бити генерисан. Генерише се на субмит.
@@ -2927,6 +2947,7 @@
 To Currency,Валутном
 To Date,За датум
 To Discuss,Да Дисцусс
+To Do,Да ли
 To Do List,То до лист
 To PR Date,За ПР Дате
 To Package No.,За Пакет број
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","Да бисте аутоматски креирали Улазнице за подршку из долазне поште, подесите овде своје ПОП3 поставке. Ви идеално да направите посебан ИД емаил за ЕРП систем, тако да се сви емаил-ови ће бити синхронизован на систем из тог маил ид. Ако нисте сигурни, обратите се свом Провидер ЕМаил."
 "To create an Account Head under a different company, select the company and save customer.","Да бисте направили шефа налога под различитим компаније, изаберите компанију и сачувајте купца."
 To enable <b>Point of Sale</b> features,Да бисте омогућили <b>Поинт оф Сале</b> функција
+To enable more currencies go to Setup > Currency,Да бисте омогућили још валуте идите на Подешавања&gt; Валуте
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","Да донесе ставке поново, кликните на &quot;Гет ставке&quot; дугме \ или ажурирате ручно количину."
 "To format columns, give column labels in the query.","Да бисте обликовали колоне, дај ознаке колона у упиту."
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.","Да би се даље ограничавају дозволе на основу одређених вредности у документу, користите &quot;Стање&quot; подешавања."
@@ -2953,7 +2975,6 @@
 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.,Да бисте пратили ставку у продаји и куповини докумената на основу њихових серијских бр. Ово се такође може користити за праћење детаље гаранције производа.
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,Да бисте пратили ставке у продаји и куповини докумената са батцх бр <br> <b>Жељена индустрија: хемикалије итд</b>
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Да бисте пратили ставки помоћу баркод. Моћи ћете да унесете ставке у испоруци напомени и продаје фактуру за скенирање баркода на ставке.
-"To update your HTML from attachment, click here","Да бисте ажурирали ХТМЛ из прилога, кликните овде"
 ToDo,ТоДо
 Tools,Алат
 Top,Топ
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),Укупан порески (Друштво валута)
 Total Taxes and Charges,Укупно Порези и накнаде
 Total Taxes and Charges (Company Currency),Укупни порези и таксе (Друштво валута)
+Total Working Days In The Month,Укупно радних дана у месецу
 Total amount of invoices received from suppliers during the digest period,Укупан износ примљених рачуна од добављача током периода дигест
 Total amount of invoices sent to the customer during the digest period,Укупан износ фактура шаље купцу у току периода дигест
-Total days in month,Укупно дана у месецу
 Total in words,Укупно у речима
+Total production order qty for item,Укупна производња поручивање за ставку
 Totals,Укупно
 Track separate Income and Expense for product verticals or divisions.,Пратите посебан приходи и расходи за производ вертикала или подела.
 Track this Delivery Note against any Project,Прати ову напомену Испорука против било ког пројекта
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,УОМ Конверзија Детаљ
 UOM Conversion Details,УОМ конверзије Детаљи
 UOM Conversion Factor,УОМ конверзије фактор
+UOM Conversion Factor is mandatory,УОМ фактор конверзије је обавезно
 UOM Details,УОМ Детаљи
 UOM Name,УОМ Име
 UOM Replace Utility,УОМ Замени Утилити
@@ -3044,6 +3067,7 @@
 Unread Messages,Непрочитаних порука
 Unscheduled,Неплански
 Unsubscribed,Отказали
+Upcoming Events for Today,Предстојећи догађаји за данас
 Update,Ажурирање
 Update Clearance Date,Упдате Дате клиренс
 Update Field,Упдате Фиелд
@@ -3052,7 +3076,6 @@
 Update Series Number,Упдате Број
 Update Stock,Упдате Стоцк
 Update Stock should be checked.,Упдате берза треба проверити.
-Update This Application,Упдате ову апликацију
 Update Value,Ажурирање вредности
 "Update allocated amount in the above table and then click ""Allocate"" button","Ажурирајте додељен износ у табели, а затим кликните на &quot;издвоји&quot; дугме"
 Update bank payment dates with journals.,Ажурирање банка плаћање датира са часописима.
@@ -3065,6 +3088,7 @@
 Upload HTML,Уплоад ХТМЛ
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Постави ЦСВ датотеку са две колоне:. Стари назив и ново име. Мак 500 редова.
 Upload a file,Уплоад фајл
+Upload and Import,Уплоад и увоз
 Upload attendance from a .csv file,Постави присуство из ЦСВ датотеке.
 Upload stock balance via csv.,Уплоад равнотежу берзе преко ЦСВ.
 Uploading...,Отпремање ...
@@ -3078,7 +3102,6 @@
 User ID,Кориснички ИД
 User Image,Корисник Слика
 User Name,Корисничко име
-User Properties,Корисник Некретнине
 User Remark,Корисник Напомена
 User Remark will be added to Auto Remark,Корисник Напомена ће бити додат Ауто Напомена
 User Tags,Корисник Тагс:
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,Корисник не сме избрисати.
 UserRole,УсерРоле
 Username,Корисничко име
-Users,Корисници
 Users who can approve a specific employee's leave applications,Корисници који могу да одобравају захтеве одређеног запосленог одсуство
 Users with this role are allowed to do / modify accounting entry before frozen date,Корисници са овом улогом могу да раде / измени унос рачуноводствену пре замрзнуте датума
 Utilities,Комуналне услуге
@@ -3116,6 +3138,7 @@
 Voucher No,Ваучер Нема
 Voucher Type,Ваучер Тип
 Voucher Type and Date,Ваучер врсту и датум
+WIP Warehouse required before Submit,ВИП Магацин потребно пре него што предлог
 Waiting for Customer,Чекајући клијенту
 Walk In,Шетња у
 Warehouse,Магацин
@@ -3149,6 +3172,7 @@
 Website Settings,Сајт Подешавања
 Website Slideshow,Сајт Слидесхов
 Website Slideshow Item,Сајт Слидесхов шифра
+Website User,Сајт корисника
 Website Warehouse,Сајт Магацин
 Wednesday,Среда
 Weekly,Недељни
@@ -3214,21 +3238,22 @@
 Yes,Да
 Yesterday,Јуче
 You are not authorized to do/modify back dated entries before ,Нисте овлашћени да ли / модификује датира пре уноса
-You can create more earning and deduction type from Setup --> HR,Можете креирати више зараду и одбитак типа из Сетуп -&gt; ХР
 You can enter any date manually,Можете да ручно унесете било који датум
 You can enter the minimum quantity of this item to be ordered.,Можете да унесете минималну количину ове ставке се могу наручити.
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,Не можете да унесете како Напомена испоруку не и продаје Фактура бр \ Молимо Вас да унесете било коју.
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,Можете да поставите различите &quot;својства&quot; Корисницима да подесите подразумеване вредности и примене правила дозвола на основу вредности ових особина у различитим облицима.
 You can start by selecting backup frequency and \					granting access for sync,Можете почети тако што ћете изабрати резервну фреквенцију и \ одобравање приступа за синхронизацију
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,Можете да користите <a href='#Form/Customize Form'>Подесите Образац</a> за подешавање нивоа на пољима.
+You may need to update: ,Можда ћете морати да ажурирате:
 Your Customer's TAX registration numbers (if applicable) or any general information,Ваш клијент је ПОРЕСКЕ регистарски бројеви (ако постоји) или било опште информације
 "Your download is being built, this may take a few moments...","Преузимање се гради, ово може да потраје неколико тренутака ..."
-Your letter head content in HTML.,Ваше писмо глава садржаја у ХТМЛ-у.
+Your letter head content,Ваше писмо глава садржај
 Your sales person who will contact the customer in future,Ваш продавац који ће контактирати купца у будућности
 Your sales person who will contact the lead in future,Ваш продавац који ће контактирати вођство у будућности
 Your sales person will get a reminder on this date to contact the customer,Ваша особа продаја ће добити подсетник на овај датум да се контактира купца
 Your sales person will get a reminder on this date to contact the lead,Ваша особа продаја ће добити подсетник на овај датум да контактирате вођство
 Your support email id - must be a valid email - this is where your emails will come!,Ваш емаил подршка ид - мора бити важећа е-маил - то је место где ваше емаил-ови ће доћи!
+[Error],[Грешка]
 [Label]:[Field Type]/[Options]:[Width],[Лабел]: [Поље Тип] / [Опције]: [ширина]
 add your own CSS (careful!),додајте своје ЦСС (царефул!)
 adjust,подесити
@@ -3430,6 +3455,7 @@
 volume-up,звука се
 warning-sign,Упозорење-знак
 website page link,веб страница веза
+which is greater than sales order qty ,која је већа од продајне поручивање
 wrench,кључ
 yyyy-mm-dd,гггг-мм-дд
 zoom-in,зум-у
diff --git a/translations/ta.csv b/translations/ta.csv
index 6fa7d4d..74cc74b 100644
--- a/translations/ta.csv
+++ b/translations/ta.csv
@@ -1,12 +1,18 @@
  (Half Day),(அரை நாள்)
+ against sales order,விற்பனை எதிராக
  against same operation,அதே நடவடிக்கை எதிராக
  already marked,ஏற்கனவே குறிக்கப்பட்ட
  and year: ,ஆண்டு:
+ as it is stock Item or packing item,அதை பங்கு பொருள் அல்லது பேக்கிங் உருப்படியை உள்ளது
  at warehouse: ,கிடங்கு மணிக்கு:
  by Role ,பாத்திரம் மூலம்
+ can not be made.,முடியாது.
+ can not be marked as a ledger as it has existing child,"இது ஏற்கனவே உள்ள குழந்தை, ஒரு பேரேட்டில் குறிக்கப்படும்"
  cannot be 0,0 இருக்க முடியாது
  cannot be deleted.,இதை நீக்க முடியாது.
  does not belong to the company,நிறுவனத்திற்கு சொந்தமானது இல்லை
+ has already been submitted.,ஏற்கனவே சமர்ப்பிக்கப்பட்டது.
+ has been freezed. ,freezed.
  has been freezed. \				Only Accounts Manager can do transaction against this account,freezed. \ மட்டுமே கணக்கு மேலாளர் இந்த கணக்கு எதிராக நடவடிக்கை என்ன செய்ய முடியும்
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item","கணினியில் பூஜ்ஜியத்திற்கு சமமாக விட குறைவாக, \ மதிப்பீடு விகிதம் இந்த உருப்படியை கட்டாயமாக உள்ளது"
  is mandatory,அவசியமானதாகும்
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,இப்போது முன்னிருப்பு நிதியாண்டு உள்ளது. \ விளைவு எடுக்க மாற்றம் உங்கள் உலாவியில் புதுப்பிக்கவும்.
  is present in one or many Active BOMs,ஒன்று அல்லது பல செயலில் BOM கள் இருக்கிறது
  not active or does not exists in the system,செயலில் இல்லை அல்லது அமைப்பு உள்ளது இல்லை
+ not submitted,சமர்ப்பிக்க
  or the BOM is cancelled or inactive,அல்லது BOM ரத்து அல்லது செயலற்று
  should be 'Yes'. As Item: ,&#39;ஆமாம்&#39; இருக்க வேண்டும். உருப்படியாக:
  should be same as that in ,அந்த அதே இருக்க வேண்டும்
  was on leave on ,அவர் மீது விடுப்பில்
+ will be ,இருக்கும்
  will be over-billed against mentioned ,குறிப்பிட்ட எதிரான ஒரு தடவை கட்டணம்
  will become ,மாறும்
 """Company History""",&quot;நிறுவனத்தின் வரலாறு&quot;
@@ -56,6 +64,7 @@
 15px,15px
 16px,16px
 2 days ago,2 நாட்களுக்கு முன்பு
+: Duplicate row from same ,: அதே இருந்து வரிசையில் நகல்
 : It is linked to other active BOM(s),: இது மற்ற செயலில் BOM (கள்) இணைக்கப்பட்டது
 : Mandatory for a Recurring Invoice.,: ஒரு தொடர் விலைப்பட்டியல் கட்டாயமாக.
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">வாடிக்கையாளர் குழுக்கள் நிர்வகிக்க, இங்கே கிளிக் செய்யவும்</a>"
@@ -102,6 +111,7 @@
 Account Id,கணக்கு அடையாளம்
 Account Name,கணக்கு பெயர்
 Account Type,கணக்கு வகை
+Account for this ,இந்த கணக்கு
 Accounting,கணக்கு வைப்பு
 Accounting Year.,பைனான்ஸ் ஆண்டு.
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","இந்த தேதி வரை உறைநிலையில் பைனான்ஸ் நுழைவு, யாரும் / கீழே குறிப்பிட்ட பங்கை தவிர நுழைவு மாற்ற முடியும்."
@@ -114,6 +124,7 @@
 Action,செயல்
 Active,செயலில்
 Active: Will extract emails from ,செயலில்: மின்னஞ்சல்களை பிரித்தெடுக்கும்
+Activity,நடவடிக்கை
 Activity Log,நடவடிக்கை புகுபதிகை
 Activity Type,நடவடிக்கை வகை
 Actual,உண்மையான
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),தளத்தில் ஒரு பேனர் சேர்க்க. (சிறிய பதாகைகள் பொதுவாக நல்ல)
 Add attachment,இணைப்பை சேர்
 Add code as &lt;script&gt;,&lt;script&gt; என குறியீடு சேர்க்க
-Add custom code to forms,வடிவங்கள் தனிபயன் குறியீடு சேர்க்க
-Add fields to forms,வடிவங்கள் துறைகளில் சேர்க்க
-Add headers for standard print formats,நிலையான அச்சு வடிவமைப்புகளையும் தலைப்புகளை சேர்க்கவும்
 Add new row,புதிய வரிசை சேர்க்க
 Add or Deduct,சேர்க்க அல்லது கழித்து
 Add rows to set annual budgets on Accounts.,கணக்கு ஆண்டு வரவு செலவு திட்டம் அமைக்க வரிசைகளை சேர்க்க.
@@ -158,7 +166,6 @@
 Add to To Do,செய்யவேண்டியவை சேர்க்க
 Add to To Do List of,பட்டியல் செய்யவேண்டியவை சேர்க்க
 Add/Remove Recipients,சேர்க்க / பெற்றவர்கள் அகற்று
-"Add/remove users, set roles, passwords etc","சேர்க்க /, பங்குகளில் செய்த நீக்க, கடவுச்சொற்கள் பலவற்றை"
 Additional Info,கூடுதல் தகவல்
 Address,முகவரி
 Address & Contact,முகவரி மற்றும் தொடர்பு கொள்ள
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,தொடர்பு பக்கம் காட்டப்படும் முகவரி
 Adds a custom field to a DocType,ஒரு டாக்டைப்பின் ஒரு தனிபயன் துறையில் சேர்க்கிறது
 Adds a custom script (client or server) to a DocType,ஒரு டாக்டைப்பின் ஒரு தனிபயன் ஸ்கிரிப்ட் (கிளையன் அல்லது சர்வர்) சேர்க்கிறது
-Administration,நிர்வாகம்
 Advance Amount,முன்கூட்டியே தொகை
 Advance amount,முன்கூட்டியே அளவு
 Advanced Scripting,மேம்பட்ட ஸ்கிரிப்ட்டிங்
@@ -238,6 +244,7 @@
 Allow Users,பயனர்கள் அனுமதி
 Allow on Submit,சமர்ப்பி மீது அனுமதிக்க
 Allow the following users to approve Leave Applications for block days.,பின்வரும் பயனர்கள் தொகுதி நாட்கள் விடுப்பு விண்ணப்பங்கள் ஏற்று கொள்ள அனுமதிக்கும்.
+Allow user to edit Price List Rate in transactions,பயனர் நடவடிக்கைகளில் விலை பட்டியல் விகிதம் திருத்த அனுமதி
 Allow user to login only after this hour (0-24),பயனர் இந்த மணி நேரத்திற்கு பிறகு மட்டுமே உள்நுழைய அனுமதி (0-24)
 Allow user to login only before this hour (0-24),பயனர் இந்த மணி நேரத்திற்கு முன் தான் உள்ளே செல்ல அனுமதிக்க (0-24)
 Allowance Percent,கொடுப்பனவு விகிதம்
@@ -252,8 +259,6 @@
 Amount >=,அளவு&gt; =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]",". Ico நீட்டிப்பு ஒரு ஐகான் கோப்பு. 16 x 16 px இருக்க வேண்டும். ஃபேவிகான் ஜெனரேட்டர் பயன்படுத்தி உருவாக்கப்படும். [ <a href=""http://favicon-generator.org/"" target=""_blank"">ஃபேவிகான்-generator.org</a> ]"
 Analytics,பகுப்பாய்வு
-Annual Cost To Company,நிறுவனத்தின் வருடாந்திர செலவு
-Annual Cost To Company can not be less than 12 months of Total Earning,நிறுவனத்தின் வருடாந்திர செலவு மொத்த வருமானம் குறைவாக 12 மாதங்கள் இருக்க முடியாது
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,மற்றொரு சம்பளம் அமைப்பு &#39;% s&#39; ஊழியர் &#39;% s&#39; க்கான செயலில். அதன் நிலை &#39;செயல்படா&#39; தொடர செய்யுங்கள்.
 "Any other comments, noteworthy effort that should go in the records.","மற்ற கருத்துக்கள், பதிவுகள் செல்ல வேண்டும் என்று குறிப்பிடத்தக்கது முயற்சி."
 Applicable Holiday List,பொருந்தும் விடுமுறை பட்டியல்
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,இலைகள் ஒப்புதல் / விண்ணப்பிக்கலாம்
 Apply Shipping Rule,கப்பல் போக்குவரத்து விதி பொருந்தும்
 Apply Taxes and Charges Master,வரிகள் மற்றும் கட்டணங்கள் மாஸ்டர் விண்ணப்பிக்க
-Apply latest updates and patches to this app,இந்த பயன்பாட்டை சமீபத்திய மேம்படுத்தல்கள் மற்றும் இணைப்புகளை விண்ணப்பிக்க
 Appraisal,மதிப்பிடுதல்
 Appraisal Goal,மதிப்பீட்டு கோல்
 Appraisal Goals,மதிப்பீட்டு இலக்குகள்
@@ -300,7 +304,6 @@
 Attached To DocType,Doctype இணைக்கப்பட்டுள்ளது
 Attached To Name,பெயர் இணைக்கப்பட்டுள்ளது
 Attachment,இணைப்பு
-Attachment removed. You may need to update: ,இணைப்பு நீக்கப்பட்டது. நீங்கள் மேம்படுத்த வேண்டும்:
 Attachments,இணைப்புகள்
 Attempted to Contact,தொடர்பு கொள்ள முயற்சி
 Attendance,கவனம்
@@ -422,7 +425,6 @@
 Brand Name,குறியீட்டு பெயர்
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","பிராண்ட் கருவிப்பட்டியில் மேல் வலது தோன்றுகிறது என்ன. அது ஒரு படத்தை இருந்தால், நிச்சயமாக ithas ஒரு வெளிப்படையான பின்னணி செய்து &lt;img /&gt; குறிச்சொல் பயன்படுத்த. 200px x 30px அளவை வைத்து"
 Brand master.,பிராண்ட் மாஸ்டர்.
-Branding and Printing,வர்த்தக மற்றும் அச்சிடல்
 Brands,பிராண்ட்கள்
 Breakdown,முறிவு
 Budget,வரவு செலவு திட்டம்
@@ -440,6 +442,7 @@
 Build Sitemap,வரைபடம் உருவாக்க
 Bulk Email,மொத்த மின்னஞ்சல்
 Bulk Email records.,மொத்த மின்னஞ்சல் பதிவுகள்.
+Bummer! There are more holidays than working days this month.,Bum நா r! வேலை நாட்கள் இந்த மாதம் விட விடுமுறை உள்ளன.
 Bundle items at time of sale.,விற்பனை நேரத்தில் பொருட்களை மூட்டை.
 Button,பொத்தான்
 Buyer of Goods and Services.,பொருட்கள் மற்றும் சேவைகள் வாங்குபவர்.
@@ -490,7 +493,6 @@
 Center,மையம்
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.",சில ஆவணங்களை உதாரணமாக ஒரு விலைப்பட்டியல் போன்ற முறை இறுதி மாற்ற கூடாது. அத்தகைய ஆவணங்களை இறுதி மாநில <b>Submitted</b> அழைக்கப்படுகிறது. நீங்கள் நடிக்க சமர்ப்பி இது கட்டுப்படுத்த முடியும்.
 Change UOM for an Item.,ஒரு பொருள் ஒரு மொறட்டுவ பல்கலைகழகம் மாற்ற.
-"Change entry properties (hide fields, make mandatory etc)","நுழைவு பண்புகள் (மறை துறைகளில், கட்டாய ஹிப்ரு செய்ய) மாற்ற"
 Change the starting / current sequence number of an existing series.,ஏற்கனவே தொடரில் தற்போதைய / தொடக்க வரிசை எண் மாற்ற.
 Channel Partner,சேனல் வரன்வாழ்க்கை துணை
 Charge,கட்டணம்
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,நீங்கள் பயனர் சேமிப்பு முன்பு ஒரு தொடர் தேர்ந்தெடுக்க கட்டாயப்படுத்தும் விரும்பினால் இந்த சோதனை. இந்த சோதனை என்றால் இல்லை இயல்பாக இருக்கும்.
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,"நீங்கள் மட்டுமே இந்த அடையாள (உங்கள் மின்னஞ்சல் வழங்குநர் மூலம் கட்டுப்பாடு விஷயத்தில்) போன்ற மின்னஞ்சல்களை அனுப்ப விரும்பினால், இந்த சோதனை."
 Check this if you want to show in website,நீங்கள் இணையதளத்தில் காட்ட வேண்டும் என்றால் இந்த சோதனை
+Check this to disallow fractions. (for Nos),அனுமதிப்பதில்லை உராய்வுகள் இந்த சரிபார்க்கவும். (இலக்கங்கள் ஐந்து)
 Check this to make this the default letter head in all prints,அனைத்து அச்சிட்டு இந்த முன்னிருப்பு கடிதம் தலை செய்ய இந்த சோதனை
 Check this to pull emails from your mailbox,உங்கள் அஞ்சல்பெட்டியில் உள்ள மின்னஞ்சல்களின் இழுக்க இந்த சோதனை
 Check to activate,செயல்படுத்த சோதனை
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,உங்கள் குறிப்பு நிறுவனத்தில் பதிவு எண்கள். எடுத்துக்காட்டாக: VAT பதிவு எண்கள் போன்ற
 Company registration numbers for your reference. Tax numbers etc.,உங்கள் குறிப்பு நிறுவனத்தில் பதிவு எண்கள். வரி எண்கள் போன்ற
 Complaint,புகார்
+Complete,முழு
 Complete By,மூலம் நிறைவு
 Completed,நிறைவு
 Completed Qty,நிறைவு அளவு
@@ -626,12 +630,12 @@
 Cost Center Name,மையம் பெயர் செலவு
 Cost Center is mandatory for item: ,செலவு மையம் உருப்படியை அத்தியாவசியமானதாகும்:
 Cost Center must be specified for PL Account: ,செலவு மையம் பிஎல் கணக்கில் குறிப்பிடப்படவில்லை:
-Cost to Company,நிறுவனத்தின் செலவாகும்
 Costing,செலவு
 Country,நாடு
 Country Name,நாட்டின் பெயர்
 Create,உருவாக்கு
 Create Bank Voucher for the total salary paid for the above selected criteria,மேலே தேர்ந்தெடுக்கப்பட்ட அடிப்படை ஊதியம் மொத்த சம்பளம் வங்கி வவுச்சர் உருவாக்க
+Create Material Requests,பொருள் கோரிக்கைகள் உருவாக்க
 Create Production Orders,உற்பத்தி ஆணைகள் உருவாக்க
 Create Receiver List,பெறுநர் பட்டியல் உருவாக்க
 Create Salary Slip,சம்பளம் ஸ்லிப் உருவாக்க
@@ -680,6 +684,7 @@
 Custom Startup Code,தனிபயன் தொடக்க கோட்
 Custom?,தனிபயன்?
 Customer,வாடிக்கையாளர்
+Customer (Receivable) Account,வாடிக்கையாளர் (வரவேண்டிய) கணக்கு
 Customer / Item Name,வாடிக்கையாளர் / உருப்படி பெயர்
 Customer Account,வாடிக்கையாளர் கணக்கு
 Customer Account Head,வாடிக்கையாளர் கணக்கு தலைமை
@@ -688,6 +693,8 @@
 Customer Code,வாடிக்கையாளர் கோட்
 Customer Codes,வாடிக்கையாளர் குறியீடுகள்
 Customer Details,வாடிக்கையாளர் விவரம்
+Customer Discount,வாடிக்கையாளர் தள்ளுபடி
+Customer Discounts,வாடிக்கையாளர் தள்ளுபடி
 Customer Feedback,வாடிக்கையாளர் கருத்து
 Customer Group,வாடிக்கையாளர் பிரிவு
 Customer Group Name,வாடிக்கையாளர் குழு பெயர்
@@ -717,11 +724,10 @@
 DN,DN
 DN Detail,DN விரிவாக
 Daily,தினசரி
+Daily Event Digest is sent for Calendar Events where reminders are set.,தினசரி நிகழ்வு டைஜஸ்ட் ஒன்றுள்ளது எங்கே அட்டவணை நிகழ்வுகள் அனுப்பப்பட்டுள்ளது.
 Daily Time Log Summary,தினமும் நேரம் புகுபதிகை சுருக்கம்
-"Daily, weekly, monthly email Digests","தினசரி, வார, மாத மின்னஞ்சல் Digests"
 Danger,ஆபத்து
 Data,தரவு
-Data Import,தரவு இறக்குமதி
 Data missing in table,அட்டவணையில் காணாமல் தரவு
 Database,தரவு தளம்
 Database Folder ID,தகவல் அடைவு ஐடி
@@ -777,6 +783,7 @@
 Default Settings,இயல்புநிலை அமைப்புகள்
 Default Source Warehouse,முன்னிருப்பு மூல கிடங்கு
 Default Stock UOM,முன்னிருப்பு பங்கு மொறட்டுவ பல்கலைகழகம்
+Default Supplier,இயல்புநிலை சப்ளையர்
 Default Supplier Type,முன்னிருப்பு சப்ளையர் வகை
 Default Target Warehouse,முன்னிருப்பு அடைவு கிடங்கு
 Default Territory,முன்னிருப்பு மண்டலம்
@@ -795,6 +802,7 @@
 Delete,நீக்கு
 Delete Row,வரிசையை நீக்கு
 Delivered,வழங்கினார்
+Delivered Items To Be Billed,கட்டணம் வழங்கப்படும் பொருட்கள்
 Delivered Qty,வழங்கப்படும் அளவு
 Delivery Address,டெலிவரி முகவரி
 Delivery Date,டெலிவரி தேதி
@@ -813,7 +821,6 @@
 Delivery Time,விநியோக நேரம்
 Delivery To,வழங்கும்
 Department,இலாகா
-Depend on LWP,LWP சார்ந்து
 Depends On,பொறுத்தது
 Depends on LWP,LWP பொறுத்தது
 Descending,இறங்கு
@@ -864,6 +871,7 @@
 DocType or Field,DOCTYPE அல்லது புலம்
 Document,பத்திரம்
 Document Description,ஆவண விவரம்
+Document Numbering Series,ஆவண எண் தொடர்
 Document Status transition from ,முதல் ஆவண நிலைமை மாற்றம்
 Document Type,ஆவண வகை
 Document is only editable by users of role,ஆவண பங்கு பயனர்கள் மட்டுமே திருத்தக்கூடிய
@@ -934,7 +942,7 @@
 Employee Leave Balance,பணியாளர் விடுப்பு இருப்பு
 Employee Name,பணியாளர் பெயர்
 Employee Number,பணியாளர் எண்
-Employee Records to be created by ,பணியாளர் ரெக்கார்ட்ஸ் விவரங்களை வேண்டும்
+Employee Records to be created by,பணியாளர் ரெக்கார்ட்ஸ் விவரங்களை வேண்டும்
 Employee Setup,பணியாளர் அமைப்பு
 Employee Type,பணியாளர் அமைப்பு
 Employee grades,ஊழியர் தரங்களாக
@@ -944,7 +952,6 @@
 Employees Email Id,ஊழியர்கள் மின்னஞ்சல் விலாசம்
 Employment Details,வேலை விவரம்
 Employment Type,வேலை வகை
-Enable / disable currencies.,நாணய செயல்படுத்த / முடக்க.
 Enable Auto Inventory Accounting,ஆட்டோ சரக்கு பைனான்ஸ் செயல்படுத்த
 Enable Shopping Cart,வணிக வண்டியில் செயல்படுத்த
 Enabled,இயலுமைப்படுத்த
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,பிழை: நீங்கள் அதை திறந்து பின் ஆவண மாற்றம்
 Estimated Material Cost,கிட்டத்தட்ட பொருள் செலவு
 Event,சம்பவம்
+Event End must be after Start,நிகழ்வு முடிவு பின்னர் இருக்க வேண்டும்
 Event Individuals,நிகழ்வு தனிநபர்கள்
 Event Role,நிகழ்வு பாத்திரம்
 Event Roles,நிகழ்வு பங்களிப்பு
 Event Type,நிகழ்வு வகை
 Event User,நிகழ்வு பயனர்
+Events In Today's Calendar,இன்றைய அட்டவணை நிகழ்வுகள்
+Every Day,ஒவ்வொரு நாள்
+Every Month,ஒவ்வொரு மாதமும்
+Every Week,ஒவ்வொரு வாரமும்
+Every Year,ஒவ்வொரு ஆண்டும்
 Everyone can read,அனைவரும் படிக்க முடியும்
 Example:,உதாரணமாக:
 Exchange Rate,அயல்நாட்டு நாணய பரிமாற்ற விகிதம் வீதம்
@@ -1019,8 +1032,6 @@
 Exports,ஏற்றுமதி
 External,வெளி
 Extract Emails,மின்னஞ்சல்கள் பிரித்தெடுக்க
-Extract Job Applicant from jobs email id e.g. jobs@example.com,வேலைகள் மின்னஞ்சல் ஐடி எ.கா. jobs@example.com இருந்து வேலை விண்ணப்பதாரர் பிரித்தெடுக்க
-Extract Leads from sales email id e.g. sales@example.com,விற்பனை மின்னஞ்சல் ஐடி எ.கா. sales@example.com செல்கின்றது பிரித்தெடுக்க
 FCFS Rate,FCFS விகிதம்
 FIFO,FIFO
 Facebook Share,Facebook பகிர்
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","கமா (,) மூலம் பிரித்து துறைகளில் சேர்க்கப்படும் <br /> திரைப்பட உரையாடல் பெட்டி பட்டியல் <b>மூலம் தேட</b>"
 File,கோப்பு
 File Data,கோப்பு தகவல்கள்
-File Manager,கோப்பு மேலாளர்
 File Name,கோப்பு பெயர்
 File Size,கோப்பு அளவு
 File URL,கோப்பு URL
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,இறுதி உறுதிப்படுத்தல் தேதி
 Financial Analytics,நிதி பகுப்பாய்வு
 Financial Statements,நிதி அறிக்கைகள்
-Financial Years for books of accounts,கணக்கு புத்தகங்கள் நிதி ஆண்டுகள்
 First Name,முதல் பெயர்
 First Responded On,முதல் தேதி இணையம்
 Fiscal Year,நிதியாண்டு
@@ -1090,6 +1099,7 @@
 For Sales Invoice,விற்பனை விலைப்பட்டியல் ஐந்து
 For Server Side Print Formats,சர்வர் பக்க அச்சு வடிவமைப்புகளையும்
 For Territory,மண்டலம் ஐந்து
+For UOM,மொறட்டுவ பல்கலைகழகம் க்கான
 For Warehouse,சேமிப்பு
 "For comparative filters, start with","ஒப்பீட்டு வடிப்பான்களின், துவக்க"
 "For e.g. 2012, 2012-13","உதாரணமாக 2012, 2012-13 க்கான"
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,பங்கு பதிவுகள் நிறுத்தப்படலாம்
 Friday,வெள்ளி
 From,இருந்து
+From Bill of Materials,பொருள்களின் பில் இருந்து
 From Company,நிறுவனத்தின் இருந்து
 From Currency,நாணய இருந்து
 From Currency and To Currency cannot be same,நாணய மற்றும் நாணயத்தை அதே இருக்க முடியாது
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,தேதி முதல் தேதி முன் இருக்க வேண்டும்
 From Delivery Note,டெலிவரி குறிப்பு இருந்து
 From Employee,பணியாளர் இருந்து
+From Lead,முன்னணி இருந்து
 From PR Date,PR தேதி முதல்
 From Package No.,தொகுப்பு எண் இருந்து
 From Purchase Order,கொள்முதல் ஆணை இருந்து
@@ -1150,8 +1162,8 @@
 Get Current Stock,தற்போதைய பங்கு கிடைக்கும்
 Get From ,முதல் கிடைக்கும்
 Get Items,பொருட்கள் கிடைக்கும்
+Get Items From Sales Orders,விற்பனை ஆணைகள் உருப்படிகளை கிடைக்கும்
 Get Last Purchase Rate,கடைசியாக கொள்முதல் விலை கிடைக்கும்
-Get Latest Updates,சமீபத்திய மேம்படுத்தல்கள் கிடைக்கும்
 Get Non Reconciled Entries,அசைவம் ஒருமைப்படுத்திய பதிவுகள் பெற
 Get Outstanding Invoices,சிறந்த பற்றுச்சீட்டுகள் கிடைக்கும்
 Get Purchase Receipt,கொள்முதல் ரசீது கிடைக்கும்
@@ -1161,7 +1173,6 @@
 Get Template,வார்ப்புரு கிடைக்கும்
 Get Terms and Conditions,நிபந்தனைகள் கிடைக்கும்
 Get Weekly Off Dates,வாராந்திர இனிய தினங்கள் கிடைக்கும்
-Get a list of errors encountered by the Scheduler,திட்டமிடுதல் மூலம் எதிர்கொண்டது பிழைகள் பட்டியலை பெற
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","அன்று மூல / இலக்கு ஹவுஸில் மதிப்பீடு விகிதம் மற்றும் கிடைக்கும் பங்கு பெற தேதி, நேரம் தகவல்களுக்கு குறிப்பிட்டுள்ளார். உருப்படியை தொடர் என்றால், தொடர் இலக்கங்கள் நுழைந்து பின்னர் இந்த பொத்தானை கிளிக் செய்யவும்."
 Give additional details about the indent.,வரிசை பற்றி கூடுதல் விவரங்களை கொடுக்க.
 Global Defaults,உலக இயல்புநிலைகளுக்கு
@@ -1193,9 +1204,9 @@
 Group or Ledger,குழு அல்லது லெட்ஜர்
 Groups,குழுக்கள்
 HR,அலுவலக
+HR Settings,அலுவலக அமைப்புகள்
 HTML,HTML
 HTML / Banner that will show on the top of product list.,தயாரிப்பு பட்டியலில் காண்பிக்கும் என்று HTML / பதாகை.
-"HTML print formats for quotes, invoices etc","மேற்கோள், பொருள் போன்றவை HTML ஐ அச்சு வடிவங்கள்"
 Half Day,அரை நாள்
 Half Yearly,அரையாண்டு
 Half-yearly,அரை ஆண்டு
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children","இங்கே நீங்கள் பெற்றோர், மனைவி மற்றும் குழந்தைகள் பெயர் மற்றும் ஆக்கிரமிப்பு போன்ற குடும்ப விவரங்கள் பராமரிக்க முடியும்"
 "Here you can maintain height, weight, allergies, medical concerns etc","இங்கே நீங்கள் உயரம், எடை, ஒவ்வாமை, மருத்துவ கவலைகள் ஹிப்ரு பராமரிக்க முடியும்"
 Hey there! You need to put at least one item in \				the item table.,அங்கு ஏய்! நீங்கள் \ உருப்படியை அட்டவணையில் குறைந்தது ஒரு உருப்படியை செய்ய வேண்டும்.
+Hey! All these items have already been invoiced.,ஏய்! இந்த பொருட்களை ஏற்கனவே விலை விவரம்.
 Hey! There should remain at least one System Manager,ஏய்! குறைந்தது ஒரு கணினி மேலாளர் அங்கு இருக்க வேண்டும்
 Hidden,மறைந்துள்ள
 Hide Actions,செயல்கள் மறைக்க
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults","எப்படி இந்த நாணய வடிவமைக்க வேண்டும்? அமைக்கவில்லை எனில், கணினி இயல்புநிலைகளை பயன்படுத்தும்"
 How to upload,ஏற்ற எப்படி
 Hrvatski,Hrvatski
+Human Resources,மானிட வளம்
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,சரி! நீங்கள் விட்டு விண்ணப்பிக்கும் இது நாள் (கள்) \ விடுமுறை (கள்) இணைந்து. நீங்கள் விடுப்பு விண்ணப்பிக்க தேவையில்லை.
 I,நான்
 ID (name) of the entity whose property is to be set,அதன் சொத்து அமைக்க வேண்டும் நிறுவனம் ஐடி (பெயர்)
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,ஆண்டு பட்ஜெட் மீறப்பட்ட என்றால்
 "If a User does not have access at Level 0, then higher levels are meaningless","ஒரு பயனர் நிலை 0 அணுகல் இல்லை என்றால், பிறகு அதிக அளவு பொருளற்றது ஆகும்"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","தேர்வுசெய்யப்பட்டால், துணை சட்டசபை பொருட்கள் BOM மூலப்பொருட்கள் பெற கருதப்படுகிறது. மற்றபடி, அனைத்து துணை சட்டசபை பொருட்களை மூலப்பொருளாக கருதப்படுகிறது."
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","சரி என்றால், மொத்த இல்லை. வேலை நாட்கள் விடுமுறை அடங்கும், இந்த நாள் ஒன்றுக்கு சம்பளம் மதிப்பு குறையும்"
 "If checked, all other workflows become inactive.","சரி என்றால், அனைத்து பிற பணிப்பாய்வுகளும் செயலற்று போகும்."
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","சரி என்றால், ஒரு இணைக்கப்பட்ட HTML வடிவம் ஒரு மின்னஞ்சல் மின்னஞ்சல் உடல் அத்துடன் இணைப்பு பகுதியாக சேர்க்கப்பட்டது. ஒரே இணைப்பாக அனுப்ப, இந்த தேர்வை நீக்குக."
 "If checked, the Home page will be the default Item Group for the website.","தேர்வுசெய்யப்பட்டால், முகப்பு பக்கம் இணைய முன்னிருப்பு உருப்படி குழு இருக்கும்."
@@ -1305,7 +1319,6 @@
 Import,இறக்குமதி பொருள்கள்
 Import Attendance,இறக்குமதி பங்கேற்கும்
 Import Log,புகுபதிகை இறக்குமதி
-Import data from spreadsheet (csv) files,விரிதாள் (csv) கோப்புகளில் இருந்து தரவு இறக்குமதி
 Important dates and commitments in your project life cycle,உங்கள் திட்டம் வாழ்க்கை சுழற்சி முக்கிய தேதிகள் மற்றும் கடமைகள்
 Imports,இறக்குமதி
 In Dialog,உரையாடல்
@@ -1314,6 +1327,7 @@
 In List View,பட்டியல் இல்
 In Process,செயல்முறை உள்ள
 In Report Filter,அறிக்கை வடிகட்டி உள்ள
+In Row,வரிசையில்
 In Store,அங்காடியில்
 In Words,வேர்ட்ஸ்
 In Words (Company Currency),வேர்ட்ஸ் (நிறுவனத்தின் கரன்சி)
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","அனுமதி மேலாளர், நீங்கள் தடுக்க வேண்டும் பாத்திரத்தில் ஒரு &#39;நிலை&#39; நிரலில் பொத்தானை கிளிக் செய்யவும்."
 Incentives,செயல் தூண்டுதல்
 Incharge Name,பெயர் பொறுப்பிலுள்ள
+Include holidays in Total no. of Working Days,மொத்த எந்த விடுமுறை அடங்கும். வேலை நாட்கள்
 Income / Expense,வருமான / செலவின
 Income Account,வருமான கணக்கு
 Income Booked,வருமான பதிவு
@@ -1347,6 +1362,7 @@
 Industry Type,தொழில் அமைப்பு
 Info,தகவல்
 Insert After,பிறகு செருகு
+Insert Below,கீழே நுழைக்கவும்
 Insert Code,கோட் செருக
 Insert Row,ரோ நுழைக்க
 Insert Style,உடை செருக
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,தவறான டெலிவரி குறிப்பு. பந்து குறிப்பு இருக்க வேண்டும் மற்றும் வரைவு நிலையில் இருக்க வேண்டும். திருத்தி மீண்டும் முயற்சிக்கவும்.
 Invalid Email,தவறான மின்னஞ்சல்
 Invalid Email Address,செல்லாத மின்னஞ்சல் முகவரி
+Invalid Item or Warehouse Data,தவறான பொருள் அல்லது கிடங்கு தகவல்கள்
 Invalid Leave Approver,தவறான சர்க்கார் தரப்பில் சாட்சி விடவும்
 Inventory,சரக்கு
 Inverse,தலைகீழான
@@ -1511,7 +1528,6 @@
 Lead Lost,லாஸ்ட் இட்டு
 Lead Name,பெயர் இட்டு
 Lead Owner,உரிமையாளர் இட்டு
-Lead Ref,குறிப்பு இட்டு
 Lead Source,மூல இட்டு
 Lead Status,நிலைமை ஏற்படும்
 Lead Time Date,நேரம் தேதி இட்டு
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,அனைத்து வடிவ கருத்தில் இருந்தால் வெறுமையாக
 Leave blank if considered for all employee types,அனைத்து பணியாளர் வகையான கருதப்படுகிறது என்றால் வெறுமையாக
 Leave blank if considered for all grades,அனைத்து தரங்களாக கருத்தில் இருந்தால் வெறுமையாக
+Leave blank if you have not decided the end date.,நீங்கள் முடிவு தேதி முடிவு செய்யவில்லை என்றால் காலியாக விடவும்.
 Leave by,மூலம் விட்டு
 "Leave can be approved by users with Role, ""Leave Approver""","விட்டு பாத்திரம் பயனர்கள் ஒப்புதல் முடியும், &quot;சர்க்கார் தரப்பில் சாட்சி விடு&quot;"
 Ledger,பேரேடு
@@ -1553,7 +1570,6 @@
 Letter Head,முகவரியடங்கல்
 Letter Head Image,கடிதத்தை தலைமை படம்
 Letter Head Name,கடிதத்தை தலைமை பெயர்
-Letter heads for print,அச்சு கடிதம் தலைகள்
 Level,நிலை
 "Level 0 is for document level permissions, higher levels for field level permissions.","நிலை 0 ஆவணம் நிலை அனுமதிகள், புலம் நிலை அனுமதிகள் அதிக அளவு உள்ளது."
 Lft,Lft
@@ -1563,13 +1579,11 @@
 Linked With,உடன் இணைக்கப்பட்ட
 List,பட்டியல்
 List items that form the package.,தொகுப்பு அமைக்க என்று பட்டியல் உருப்படிகள்.
-List of companies (not customers / suppliers),நிறுவனங்கள் பட்டியலில் (இல்லை வாடிக்கையாளர்கள் / சப்ளையர்கள்)
 List of holidays.,விடுமுறை பட்டியல்.
 List of patches executed,கொலை இணைப்பினை பட்டியல்
 List of records in which this document is linked,இந்த ஆவணம் இணைக்கப்பட்ட பதிவுகள் பட்டியல்
 List of users who can edit a particular Note,ஒரு குறிப்பிட்ட குறிப்பு திருத்த முடியும் பயனர் பட்டியல்
 List this Item in multiple groups on the website.,வலைத்தளத்தில் பல குழுக்கள் இந்த உருப்படி பட்டியல்.
-"List, delete uploaded files.","பதிவேற்றம் கோப்புகளை நீக்க, பட்டியலிட."
 Live Chat,அரட்டை வாழ
 Load Print View on opening of an existing form,ஏற்கனவே வடிவம் திறப்பு மீது அச்சிடுக பார்வை ஏற்ற
 Loading,சுமையேற்றம்
@@ -1596,6 +1610,7 @@
 Mail Server,அஞ்சல் வழங்கன்
 Main Reports,முக்கிய செய்திகள்
 Main Section,முக்கிய பகுதி
+Maintain Same Rate Throughout Sales Cycle,விற்பனை சைக்கிள் முழுவதும் அதே விகிதத்தில் பராமரிக்க
 Maintain same rate throughout purchase cycle,கொள்முதல் சுழற்சி முழுவதும் ஒரே விகிதத்தை பராமரிக்க
 Maintenance,பராமரிப்பு
 Maintenance Date,பராமரிப்பு தேதி
@@ -1616,7 +1631,6 @@
 Make a new,ஒரு புதிய செய்ய
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,நீங்கள் தடுக்க வேண்டும் நடவடிக்கைகளுக்கு ஒரு இணைப்பு துறையில் &#39;பகுதியில்&#39; என்று உறுதி என்று ஒரு &#39;மண்டலம்&#39; குருவுக்கு வரைபடங்கள்.
 Male,ஆண்
-Manage Numbering Series,தொடர் எண்ணிடல் நிர்வகி
 Manage cost of operations,நடவடிக்கைகள் செலவு மேலாண்மை
 Manage exchange rates for currency conversion,நாணய மாற்ற மாற்று விகிதங்கள் நிர்வகி
 Mandatory,அதிகாரம் சார்ந்த
@@ -1651,10 +1665,10 @@
 Material Request No,பொருள் வேண்டுகோள் இல்லை
 Material Request Type,பொருள் கோரிக்கை வகை
 Material Request used to make this Stock Entry,இந்த பங்கு நுழைவு செய்ய பயன்படுத்தப்படும் பொருள் கோரிக்கை
+Material Requirement,பொருள் தேவை
 Material Transfer,பொருள் மாற்றம்
 Materials,மூலப்பொருள்கள்
 Materials Required (Exploded),பொருட்கள் தேவை (விரிவான)
-Materials Requirement Planning (MRP),பொருட்கள் தேவை திட்டமிடல் (MRP)
 Max 500 rows only.,மட்டுமே அதிகபட்சம் 500 வரிசைகள்.
 Max Attachments,மேக்ஸ் இணைப்புகள்
 Max Days Leave Allowed,மேக்ஸ் நாட்கள் அனுமதிக்கப்பட்ட விடவும்
@@ -1699,6 +1713,7 @@
 Month,மாதம்
 Monthly,மாதாந்தர
 Monthly Attendance Sheet,மாதாந்திர பங்கேற்கும் தாள்
+Monthly Earning & Deduction,மாத வருமானம் &amp; பொருத்தியறிதல்
 Monthly Salary Register,மாத சம்பளம் பதிவு
 Monthly salary statement.,மாத சம்பளம் அறிக்கை.
 Monthly salary template.,மாத சம்பளம் வார்ப்புரு.
@@ -1711,7 +1726,9 @@
 Mr,திரு
 Ms,Ms
 Multiple Item Prices,பல பொருள் விலைகள்
+Multiple root nodes not allowed.,பல ரூட் முனைகளில் அனுமதி இல்லை.
 Mupltiple Item prices.,Mupltiple பொருள் விலை.
+Must be Whole Number,முழு எண் இருக்க வேண்டும்
 Must have report permission to access this report.,இந்த அறிக்கை அணுக அறிக்கை அனுமதி பெற்றிருக்க வேண்டும்.
 Must specify a Query to run,இயக்க ஒரு கேள்வி குறிப்பிட வேண்டும்
 My Settings,என் அமைப்புகள்
@@ -1737,7 +1754,6 @@
 Net Weight,நிகர எடை
 Net Weight UOM,நிகர எடை மொறட்டுவ பல்கலைகழகம்
 Net Weight of each Item,ஒவ்வொரு பொருள் நிகர எடை
-Net pay can not be greater than 1/12th of Annual Cost To Company,நிகர ஊதியம் நிறுவனத்தின் வருடாந்திர செலவு 1/12th விட முடியாது
 Net pay can not be negative,"நிகர ஊதியம், எதிர்மறையாக இருக்க முடியாது"
 Never,இல்லை
 New,புதிய
@@ -1795,6 +1811,7 @@
 No of Sent SMS,அனுப்பிய எஸ்எம்எஸ் இல்லை
 No of Visits,வருகைகள் எண்ணிக்கை
 No one,எந்த ஒரு
+No permission to write / remove.,எழுத அனுமதி இல்லை / நீக்க.
 No record found,எந்த பதிவும் இல்லை
 No records tagged.,இல்லை பதிவுகளை குறித்துள்ளார்.
 No salary slip found for month: ,மாதம் இல்லை சம்பளம் சீட்டு:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,விநியோகிப்பதற்காக உத்தரவிட்டார் உருப்படிகள்
 Ordered Quantity,உத்தரவிட்டார் அளவு
 Orders released for production.,ஆணைகள் உற்பத்தி வெளியிடப்பட்டது.
-Organization,அமைப்பு
 Organization Profile,அமைப்பு விவரம்
 Original Message,அசல் செய்தி
 Other,வேறு
 Other Details,மற்ற விவரங்கள்
 Out,வெளியே
-Out going mail server and support ticket mailbox,அஞ்சல் சேவையகம் மற்றும் ஆதரவு சீட்டு அஞ்சல் பெட்டி சென்று அவுட்
 Out of AMC,AMC வெளியே
 Out of Warranty,உத்தரவாதத்தை வெளியே
 Outgoing,வெளிச்செல்லும்
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),POP3 அஞ்சல் சேவையகம் (எ.கா. pop.gmail.com)
 POP3 server e.g. (pop.gmail.com),POP3 சேவையகத்திலிருந்து எ.கா. (pop.gmail.com)
 POS Setting,பிஓஎஸ் அமைக்கிறது
+POS View,பிஓஎஸ் பார்வையிடு
 PR Detail,PR விரிவாக
 PRO,PRO
 PS,சோசலிஸ்ட் கட்சி
@@ -1951,10 +1967,10 @@
 Participants,பங்கேற்பாளர்கள்
 Partly Billed,இதற்கு கட்டணம்
 Partly Delivered,இதற்கு அனுப்பப்பட்டது
-Partner,பங்குதாரர்
 Partner Target Detail,வரன்வாழ்க்கை துணை இலக்கு விரிவாக
 Partner Type,வரன்வாழ்க்கை துணை வகை
 Partner's Website,கூட்டாளியின் இணையத்தளம்
+Passive,மந்தமான
 Passport Number,பாஸ்போர்ட் எண்
 Password,கடவுச்சொல்
 Password Expires in (days),கடவுச்சொல் காலாவதியாகும் தேதி (நாட்கள்)
@@ -1964,12 +1980,12 @@
 Payables,Payables
 Payables Group,Payables குழு
 Payment Collection With Ageing,முதுமையடைதல் மூலம் பணம் சேகரிப்பு
+Payment Days,கட்டணம் நாட்கள்
 Payment Entries,பணம் பதிவுகள்
 Payment Entry has been modified after you pulled it. 			Please pull it again.,நீங்கள் அதை இழுத்து பின்னர் கட்டணம் நுழைவு மாற்றப்பட்டுள்ளது. மீண்டும் இழுக்க தயவு செய்து.
 Payment Made With Ageing,கட்டணம் முதுமையடைதல் செய்யப்பட்ட
 Payment Reconciliation,பணம் நல்லிணக்க
 Payment Terms,பணம் விதிமுறைகள்
-Payment days,பணம் நாட்கள்
 Payment to Invoice Matching Tool,விலைப்பட்டியல் பொருந்தும் கருவி பணம்
 Payment to Invoice Matching Tool Detail,விலைப்பட்டியல் பொருந்தும் கருவி விரிவாக பணம்
 Payments,பணம்
@@ -1984,6 +2000,7 @@
 Percent,சதவீதம்
 Percent Complete,முழுமையான சதவீதம்
 Percentage Allocation,சதவீத ஒதுக்கீடு
+Percentage Allocation should be equal to ,சதவீத ஒதுக்கீடு சமமாக இருக்க வேண்டும்
 Percentage variation in quantity to be allowed while receiving or delivering this item.,இந்த உருப்படியை பெறும் அல்லது வழங்கும் போது அளவு சதவீதம் மாறுபாடு அனுமதிக்கப்படுகிறது வேண்டும்.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,நீங்கள் அளவு எதிராக இன்னும் பெற அல்லது வழங்க அனுமதிக்கப்படுகிறது சதவீதம் உத்தரவிட்டது. எடுத்துக்காட்டாக: நீங்கள் 100 அலகுகள் உத்தரவிட்டார் என்றால். உங்கள் அலவன்ஸ் 10% நீங்கள் 110 அலகுகள் பெற அனுமதிக்கப்படும்.
 Performance appraisal.,செயல்திறன் மதிப்பிடுதல்.
@@ -2026,19 +2043,24 @@
 Please check,சரிபார்க்கவும்
 Please enter Default Unit of Measure,அளவுகளின் இயல்புநிலை பிரிவு உள்ளிடவும்
 Please enter Delivery Note No or Sales Invoice No to proceed,இல்லை அல்லது விற்பனை விலைப்பட்டியல் இல்லை தொடர டெலிவரி குறிப்பு உள்ளிடவும்
+Please enter Employee Number,பணியாளர் எண் உள்ளிடவும்
 Please enter Expense Account,செலவு கணக்கு உள்ளிடவும்
 Please enter Expense/Adjustment Account,செலவின / சரிசெய்தல் கணக்கு உள்ளிடவும்
 Please enter Purchase Receipt No to proceed,தொடர இல்லை கொள்முதல் ரசீது உள்ளிடவும்
+Please enter Reserved Warehouse for item ,உருப்படியை முன்பதிவு கிடங்கு உள்ளிடவும்
 Please enter valid,செல்லுபடியாகும் உள்ளிடவும்
 Please enter valid ,செல்லுபடியாகும் உள்ளிடவும்
 Please install dropbox python module,டிரா பாக்ஸ் பைதான் தொகுதி நிறுவவும்
 Please make sure that there are no empty columns in the file.,கோப்பு எந்த காலியாக பத்திகள் உள்ளன என்று உறுதிப்படுத்தி கொள்ளுங்கள்.
 Please mention default value for ',இயல்புநிலை மதிப்பு குறிப்பிட தயவு செய்து &#39;
+Please reduce qty.,அளவு குறைக்க வேண்டும்.
 Please refresh to get the latest document.,சமீபத்திய ஆவணத்தை பெற புதுப்பிக்கவும்.
 Please save the Newsletter before sending.,அனுப்புவதற்கு முன் செய்தி காப்பாற்றுங்கள்.
 Please select Bank Account,வங்கி கணக்கு தேர்ந்தெடுக்கவும்
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,நீங்கள் முந்தைய நிதி ஆண்டின் இருப்புநிலை இந்த நிதி ஆண்டு விட்டு சேர்க்க விரும்பினால் முன் எடுத்து கொள்ளவும்
 Please select Date on which you want to run the report,நீங்கள் அறிக்கை ரன் தெரிய வேண்டிய தேதி தேர்ந்தெடுக்கவும்
+Please select Naming Neries,பெயரிடுதல் Neries தேர்ந்தெடுக்கவும்
+Please select Price List,விலை பட்டியல் தேர்ந்தெடுக்கவும்
 Please select Time Logs.,நேரம் பதிவுகள் தேர்ந்தெடுக்கவும்.
 Please select a,தேர்ந்தெடுக்கவும் ஒரு
 Please select a csv file,ஒரு கோப்பை தேர்ந்தெடுக்கவும்
@@ -2051,10 +2073,12 @@
 Please select: ,தேர்ந்தெடுக்கவும்:
 Please set Dropbox access keys in,ல் டிராப்பாக்ஸ் அணுகல் விசைகள் அமைக்கவும்
 Please set Google Drive access keys in,Google Drive ஐ அணுகல் விசைகள் அமைக்க தயவு செய்து
+Please setup Employee Naming System in Human Resource > HR Settings,மனித வள உள்ள அமைப்பு பணியாளர் பெயரிடுதல் கணினி தயவு செய்து&gt; அலுவலக அமைப்புகள்
 Please specify,குறிப்பிடவும்
 Please specify Company,நிறுவனத்தின் குறிப்பிடவும்
 Please specify Company to proceed,நிறுவனத்தின் தொடர குறிப்பிடவும்
 Please specify Default Currency in Company Master \			and Global Defaults,நிறுவனத்தின் முதன்மை \ மற்றும் உலகளாவிய இயல்புநிலைகளுக்கு உள்ள இயல்புநிலை நாணயத்தின் குறிப்பிடவும்
+Please specify a,குறிப்பிடவும் ஒரு
 Please specify a Price List which is valid for Territory,மண்டலம் செல்லுபடியாகும் ஒரு விலை பட்டியல் குறிப்பிடவும்
 Please specify a valid,சரியான குறிப்பிடவும்
 Please specify a valid 'From Case No.',&#39;வழக்கு எண் வரம்பு&#39; சரியான குறிப்பிடவும்
@@ -2070,7 +2094,7 @@
 Posts,பதிவுகள்
 Potential Sales Deal,சாத்தியமான விற்பனை ஒப்பந்தம்
 Potential opportunities for selling.,விற்பனை திறன் வாய்ப்புகள்.
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","மட்டுமே காட்ட ஃப்ளோட் துறைகளில் (அளவு, தள்ளுபடிகள், சதவீதங்கள் போன்றவை) க்கான துல்லிய. மிதவைகள் இன்னும் 6 தசமங்கள் வரை கணக்கிடப்படுகிறது."
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","ஃப்ளோட் துறைகள் ஐந்து துல்லிய (அளவு, தள்ளுபடிகள், சதவீதங்கள் போன்றவை). மிதவைகள் குறிப்பிட்ட தசமங்கள் வரை வட்டமானது. Default = 3"
 Preferred Billing Address,விருப்பமான பில்லிங் முகவரி
 Preferred Shipping Address,விருப்பமான கப்பல் முகவரி
 Prefix,முற்சேர்க்கை
@@ -2081,7 +2105,6 @@
 Previous Work Experience,முந்தைய பணி அனுபவம்
 Price,விலை
 Price List,விலை பட்டியல்
-Price List Country,விலை பட்டியல் நாடு
 Price List Currency,விலை பட்டியல் நாணயத்தின்
 Price List Currency Conversion Rate,விலை பட்டியல் நாணய மாற்றம் விகிதம்
 Price List Exchange Rate,விலை பட்டியல் செலாவணி விகிதம்
@@ -2089,6 +2112,7 @@
 Price List Name,விலை பட்டியல் பெயர்
 Price List Rate,விலை பட்டியல் விகிதம்
 Price List Rate (Company Currency),விலை பட்டியல் விகிதம் (நிறுவனத்தின் கரன்சி)
+Price List for Costing,சவாலுக்கழைத்த விலை பட்டியல்
 Price Lists and Rates,விலை பட்டியல்கள் மற்றும் கட்டணங்கள்
 Primary,முதல்
 Print Format,வடிவமைப்பு அச்சிட
@@ -2107,6 +2131,7 @@
 Produced Quantity,உற்பத்தி அளவு
 Product Enquiry,தயாரிப்பு விசாரணை
 Production Order,உற்பத்தி ஆணை
+Production Orders,தயாரிப்பு ஆணைகள்
 Production Plan Item,உற்பத்தி திட்டம் பொருள்
 Production Plan Items,உற்பத்தி திட்டம் உருப்படிகள்
 Production Plan Sales Order,உற்பத்தி திட்டம் விற்பனை ஆணை
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,திட்டத்தின் வாரியாக ஸ்டாக் தடமறிதல்
 Projected Qty,திட்டமிட்டிருந்தது அளவு
 Projects,திட்டங்கள்
-Prompt email sending to customers and suppliers,வாடிக்கையாளர்கள் மற்றும் வழங்குநர்கள் அனுப்புவதை உடனடியாக மின்னஞ்சல்
 Prompt for Email on Submission of,இந்த சமர்ப்பிக்கும் மீது மின்னஞ்சல் கேட்டு
 Properties,பண்புகள்
 Property,சொத்து
@@ -2147,7 +2171,6 @@
 Published On,ம் தேதி வெளியிடப்பட்ட
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,இன்பாக்ஸ் இருந்து மின்னஞ்சல்கள் இழுக்க தொடர்பாடல் பதிவுகளை (அழைக்கப்படும் தொடர்புகளை) என அவற்றை இணைக்கலாம்.
 Pull Payment Entries,பண பதிவுகள் இழுக்க
-Pull items from Sales Order mentioned in the above table.,மேலே அட்டவணையில் குறிப்பிடப்பட்டுள்ள விற்பனை ஆணை உருப்படிகளை இழுக்கவும்.
 Pull sales orders (pending to deliver) based on the above criteria,மேலே அடிப்படை அடிப்படையில் விற்பனை ஆணைகள் (வழங்க நிலுவையில்) இழுக்க
 Purchase,கொள்முதல்
 Purchase Analytics,கொள்முதல் ஆய்வு
@@ -2192,7 +2215,7 @@
 Purchase Taxes and Charges,கொள்முதல் வரி மற்றும் கட்டணங்கள்
 Purchase Taxes and Charges Master,கொள்முதல் வரி மற்றும் கட்டணங்கள் மாஸ்டர்
 Purpose,நோக்கம்
-Purpose must be one of ,நோக்கத்திற்காக ஒன்று இருக்க வேண்டும்
+Purpose must be one of ,நோக்கம் ஒன்றாக இருக்க வேண்டும்
 Python Module Name,Python ஆல் தொகுதிக்கூறு பெயர்
 QA Inspection,QA ஆய்வு
 QAI/11-12/,QAI/11-12 /
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,அளவு ஏற்கனவே உற்பத்தி
 Quantity and Rate,அளவு மற்றும் விகிதம்
 Quantity and Warehouse,அளவு மற்றும் சேமிப்பு கிடங்கு
+Quantity cannot be a fraction.,அளவு ஒரு பகுதியை இருக்க முடியாது.
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,உருப்படி அளவு மூலப்பொருட்களை கொடுக்கப்பட்ட அளவு இருந்து உற்பத்தி / repacking பின்னர் பெறப்படும்
 Quantity should be equal to Manufacturing Quantity. ,அளவு உற்பத்தி அளவு சமமாக இருக்க வேண்டும்.
 Quarter,காலாண்டு
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,மேற்கோள் காரணம் லாஸ்ட்
 Quotation Message,மேற்கோள் செய்தி
 Quotation Sent,மேற்கோள் அனுப்பப்பட்டது
+Quotation Series,மேற்கோள் தொடர்
 Quotation To,என்று மேற்கோள்
 Quotation Trend,விலைக்குறியீட்டு டிரெண்டின்
 Quotations received from Suppliers.,மேற்கோள்கள் சப்ளையர்கள் இருந்து பெற்றார்.
 Quotes to Leads or Customers.,தாங்கியவர்கள் விளைவாக அல்லது வாடிக்கையாளர்களுக்கு மேற்கோள்.
-Raise Material Request,பொருள் கோரிக்கை எழுப்ப
 Raise Material Request when stock reaches re-order level,பங்கு மறு ஒழுங்கு நிலை அடையும் போது பொருள் கோரிக்கை எழுப்ப
-Raise Production Order,உற்பத்தி ஆணை உயர்த்த
 Raised By,எழுப்பப்பட்ட
 Raised By (Email),(மின்னஞ்சல்) மூலம் எழுப்பப்பட்ட
 Random,குறிப்பான நோக்கம் ஏதுமற்ற
@@ -2280,6 +2303,7 @@
 Receivables / Payables,வரவுகள் / Payables
 Receivables Group,பெறத்தக்கவைகளின் குழு
 Received Date,பெற்ற தேதி
+Received Items To Be Billed,கட்டணம் பெறப்படும் பொருட்கள்
 Received Qty,பெற்றார் அளவு
 Received and Accepted,பெற்று ஏற்கப்பட்டது
 Receiver List,ரிசீவர் பட்டியல்
@@ -2293,6 +2317,8 @@
 Recurring Id,மீண்டும் அடையாளம்
 Recurring Invoice,மீண்டும் விலைப்பட்டியல்
 Recurring Type,மீண்டும் வகை
+Reduce Deduction for Leave Without Pay (LWP),சம்பளமில்லா விடுப்பு க்கான பொருத்தியறிதல் குறைக்க (LWP)
+Reduce Earning for Leave Without Pay (LWP),சம்பளம் (LWP) இல்லாமல் விடுமுறை ஆதாயம் குறைக்க
 Ref Code,Ref கோட்
 Ref Date is Mandatory if Ref Number is specified,குறிப்பு எண் குறிப்பிடப்படவில்லை எனில் ref தேதி அத்தியாவசியமானதாகும்
 Ref DocType,Ref டாக்டைப்பின்
@@ -2302,6 +2328,8 @@
 Ref Type,Ref வகை
 Reference,குறிப்பு
 Reference Date,குறிப்பு தேதி
+Reference DocName,குறிப்பு DocName
+Reference DocType,குறிப்பு Doctype
 Reference Name,குறிப்பு பெயர்
 Reference Number,குறிப்பு எண்
 Reference Type,குறிப்பு வகை
@@ -2322,10 +2350,12 @@
 Remove Bookmark,Bookmark நீக்க
 Rename Log,பதிவு மறுபெயர்
 Rename Tool,கருவி மறுபெயரிடு
-Rename multiple items in one go,ஒரு செல் பல மறுபெயரிட
 Rename...,மறுபெயர் ...
 Rented,வாடகைக்கு
+Repeat On,ஆன் செய்யவும்
+Repeat Till,வரை மீண்டும்
 Repeat on Day of Month,மாதம் ஒரு நாள் மீண்டும்
+Repeat this Event,இந்த நிகழ்வு மீண்டும்
 Replace,பதிலாக
 Replace Item / BOM in all BOMs,அனைத்து BOM கள் உள்ள பொருள் / BOM பதிலாக
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","இது பயன்படுத்தப்படுகிறது அமைந்துள்ள அனைத்து மற்ற BOM கள் ஒரு குறிப்பிட்ட BOM பதிலாக. இது, பழைய BOM இணைப்பு பதிலாக செலவு புதுப்பிக்க புதிய BOM படி &quot;BOM வெடிப்பு பொருள்&quot; அட்டவணை மறுஉற்பத்தி"
@@ -2358,13 +2388,14 @@
 Reseller,மறுவிற்பனையாளர்
 Reserved Quantity,ஒதுக்கப்பட்ட அளவு
 Reserved Warehouse,ஒதுக்கப்பட்ட கிடங்கு
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,விற்பனை ஆணை / இறுதிப்பொருட்களாக்கும் கிடங்கில் ஒதுக்கப்பட்ட கிடங்கு
+Reserved Warehouse is missing in Sales Order,ஒதுக்கப்பட்ட கிடங்கு விற்பனை ஆர்டர் காணவில்லை
 Resignation Letter Date,ராஜினாமா கடிதம் தேதி
 Resolution,தீர்மானம்
 Resolution Date,தீர்மானம் தேதி
 Resolution Details,தீர்மானம் விவரம்
 Resolved By,மூலம் தீர்க்கப்பட
 Restrict IP,ஐபி கட்டுப்படுத்த
-Restrict submission rights based on amount,அளவு அடிப்படையில் சமர்ப்பிப்பு உரிமைகள் கட்டுப்படுத்த
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),இந்த ஐபி முகவரியை இருந்து பயனர் கட்டுப்படுத்த. பல ஐபி முகவரிகள் கமாவால் பிரித்து சேர்க்க முடியும். மேலும் போன்ற பகுதி ஐபி முகவரிகள் (111.111.111) ஏற்றுக்கொள்கிறார்
 Restricting By User,பயனர் மூலம் கட்டுப்படுத்த
 Retail,சில்லறை
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,சம்பளம் அமைப்பு பொருத்தியறிதல்
 Salary Structure Earning,சம்பளம் அமைப்பு ஆதாயம்
 Salary Structure Earnings,சம்பளம் அமைப்பு வருவாய்
+Salary breakup based on Earning and Deduction.,சம்பளம் கலைத்தல் வருமானம் மற்றும் துப்பறியும் அடிப்படையாக கொண்டது.
 Salary components.,சம்பளம் கூறுகள்.
 Sales,விற்பனை
 Sales Analytics,விற்பனை அனலிட்டிக்ஸ்
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),விற்பனை நபர் இலக்கு வேறுபாடு (பொருள் குழு வாரியாக)
 Sales Person Targets,விற்பனை நபர் இலக்குகள்
 Sales Person-wise Transaction Summary,விற்பனை நபர் வாரியான பரிவர்த்தனை சுருக்கம்
-Sales Rate,விற்பனை விகிதம்
 Sales Register,விற்பனை பதிவு
 Sales Return,விற்பனை Return
 Sales Taxes and Charges,விற்பனை வரி மற்றும் கட்டணங்கள்
@@ -2484,7 +2515,6 @@
 Scheduled,திட்டமிடப்பட்ட
 Scheduled Confirmation Date,திட்டமிட்ட உறுதிப்படுத்தல் தேதி
 Scheduled Date,திட்டமிடப்பட்ட தேதி
-Scheduler Error Log,திட்டமிடுதலின் பிழை புகுபதிகை
 Scheduler Log,திட்ட புகுபதிகை
 School/University,பள்ளி / பல்கலைக்கழகம்
 Score (0-5),ஸ்கோர் (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,DOCTYPE தேர்வு
 Select Document Type,ஆவண வகை தேர்வு
 Select Document Type or Role to start.,ஆவண வகை அல்லது துவக்க பங்கு தேர்ந்தெடுக்கவும்.
+Select Items,தேர்ந்தெடு
 Select PR,தேர்ந்தெடுக்கப்பட்ட மக்கள்
 Select Print Format,அச்சு வடிவம் தேர்வு
 Select Print Heading,தலைப்பு அச்சிடு
@@ -2562,8 +2593,8 @@
 Send SMS,எஸ்எம்எஸ் அனுப்ப
 Send To,அனுப்பு
 Send To Type,வகை அனுப்பவும்
+Send an email reminder in the morning,காலையில் ஒரு நினைவூட்டல் மின்னஞ்சலை அனுப்ப
 Send automatic emails to Contacts on Submitting transactions.,பரிவர்த்தனைகள் சமர்ப்பிக்கும் மீது தொடர்புகள் தானியங்கி மின்னஞ்சல்களை அனுப்புவது.
-"Send bulk SMS to leads, customers, contacts","வழிவகுக்கிறது, வாடிக்கையாளர்கள், தொடர்புகள் மொத்தமாக எஸ்எம்எஸ் அனுப்ப"
 Send mass SMS to your contacts,உங்கள் தொடர்புகள் வெகுஜன எஸ்எம்எஸ் அனுப்ப
 Send regular summary reports via Email.,மின்னஞ்சல் வழியாக வழக்கமான சுருக்கம் அறிக்கைகள் அனுப்ப.
 Send to this list,இந்த பட்டியலில் அனுப்ப
@@ -2580,7 +2611,6 @@
 Serial No Status,தொடர் இல்லை நிலைமை
 Serial No Warranty Expiry,தொடர் இல்லை உத்தரவாதத்தை காலாவதியாகும்
 Serialized Item: ',தொடர் பொருள்: &#39;
-Series,தொடர்
 Series List for this Transaction,இந்த பரிவர்த்தனை தொடர் பட்டியல்
 Server,சர்வர்
 Service Address,சேவை முகவரி
@@ -2590,19 +2620,13 @@
 Session Expiry,அமர்வு காலாவதியாகும்
 Session Expiry in Hours e.g. 06:00,ஹவர்ஸ் அமர்வு காலாவதியாகும் 06:00 எ.கா.
 Set Banner from Image,பட இருந்து பதாகை அமைக்க
-Set From Image,பட வரம்பு அமைக்க
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,இந்த மண்டலம் உருப்படி பிரிவு வாரியான வரவு செலவு திட்டம் அமைக்க. நீங்கள் விநியோகம் அமைக்க பருவகாலம் சேர்க்க முடியும்.
 Set Login and Password if authentication is required.,அங்கீகாரம் தேவை என்றால் தேதி மற்றும் கடவுச்சொல் அமைக்க.
 Set New Password,புதிய கடவுச்சொல் அமைக்க
 Set Value,மதிப்பு அமைக்க
 "Set a new password and ""Save""",ஒரு புதிய கடவுச்சொல்லை மற்றும் &quot;சேமி&quot; அமைக்க
-Set default values for entry,நுழைவு முன்னிருப்பு மதிப்புகளை அமைக்க
-Set default values for users (also used for permissions).,பயனர் முன்னிருப்பு மதிப்புகளை (மேலும் அனுமதிகள் பயன்படுத்தப்படுகிறது) அமைக்க.
-Set multiple numbering series for transactions,நடவடிக்கைகள் பல எண்ணிக்கையில் தொடர் அமைக்க
-Set permissions on transactions / masters,பரிவர்த்தனைகள் / முதுகலை அனுமதிகளை அமைக்க
 Set prefix for numbering series on your transactions,உங்கள் நடவடிக்கைகள் மீது தொடர் எண்ணுவதற்கான முன்னொட்டு அமைக்க
 Set targets Item Group-wise for this Sales Person.,தொகுப்பு இந்த விற்பனை நபர் குழு வாரியான பொருள் குறிவைக்கிறது.
-Set workflow rules.,பணியோட்டம் விதிகளை அமை.
 "Set your background color, font and image (tiled)","உங்கள் பின்னணி வண்ணம், எழுத்துரு மற்றும் படம் (ஓடுகளையுடைய) அமைக்க"
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","இங்கே உங்கள் வெளிச்செல்லும் அஞ்சல் SMTP அமைப்புகளை அமைக்கவும். கணினி அறிவிப்புகளை உருவாக்கப்பட்ட, மின்னஞ்சல்கள் இந்த அஞ்சல் சேவையகத்திலிருந்து போம். நிச்சயமாக இல்லை என்றால், ERPNext சேவையகங்கள் (மின்னஞ்சல்கள் இன்னும் உங்கள் மின்னஞ்சல் ஐடி இருந்து அனுப்பப்படும்) பயன்படுத்த அல்லது உங்கள் மின்னஞ்சல் வழங்குநரை தொடர்புகொண்டு இந்த வெறுமையாக."
 Setting Account Type helps in selecting this Account in transactions.,அமைத்தல் கணக்கு வகை பரிமாற்றங்கள் இந்த கணக்கு தேர்வு உதவுகிறது.
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,வணிக வண்டியில் ஒரு அமைப்பு.
 Setup of fonts and background.,எழுத்துருக்கள் மற்றும் பின்னணி அமைப்பு.
 "Setup of top navigation bar, footer and logo.","மேல் திசை பட்டையில், பூட்டர் மற்றும் லோகோ அமைப்பு."
-Setup outgoing SMS via your bulk SMS provider,உங்கள் மொத்த எஸ்எம்எஸ் வழங்குநர் வழியாக வெளியேறும் எஸ்எம்எஸ் அமைப்பதற்கு
 Setup to pull emails from support email account,ஆதரவு மின்னஞ்சல் கணக்கு மின்னஞ்சல்களை இழுக்க அமைக்கப்பட்டுள்ளது
 Share,பங்கு
 Share With,பகிர்ந்து
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,இணையதளம் மற்றும் பிற வெளியீடுகள் குறுகிய வாழ்க்கை.
 Shortcut,குறுக்கு வழி
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",இந்த கிடங்கில் கிடைக்கும் பங்கு அடிப்படையில் &quot;ஸ்டாக் இல்லை&quot; &quot;இருப்பு&quot; காட்டு அல்லது.
-Show / Hide Modules,தொகுதிகள் காட்டு / மறை
 Show Details,விவரங்கள் காட்டுகின்றன
 Show In Website,இணையத்தளம் காண்பி
 Show Print First,காட்டு முதலில் அச்சிடவும்
@@ -2658,11 +2680,9 @@
 Show in Website,வெப்சைட் காண்பி
 Show rows with zero values,பூஜ்ய மதிப்புகள் வரிசைகள் காட்டு
 Show this slideshow at the top of the page,பக்கத்தின் மேல் இந்த காட்சியை காட்ட
-"Show, hide modules","தொகுதிகள் மறைக்க, காட்டு"
 Showing only for,மட்டுமே காட்டும்
 Signature,கையொப்பம்
 Signature to be appended at the end of every email,ஒவ்வொரு மின்னஞ்சல் இறுதியில் தொடுக்க வேண்டும் கையெழுத்து
-Simplify entry forms by disabling features,அம்சங்கள் முடக்குவதன் மூலம் நுழைவு படிவங்கள் எளிமைப்படுத்த
 Single,ஒற்றை
 Single Post (article).,ஒற்றை போஸ்ட் (கட்டுரை).
 Single unit of an Item.,ஒரு பொருள் ஒரே யூனிட்.
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,"மன்னிக்கவும், நீங்கள் தேடும் என்ன கண்டுபிடிக்க முடியவில்லை."
 Sorry you are not permitted to view this page.,"மன்னிக்கவும், நீங்கள் இந்த பக்கம் பார்க்க அனுமதியில்லை."
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,மன்னிக்கவும்! நாம் மட்டுமே பங்கு நல்லிணக்க 100 வரிசைகள் வரை அனுமதிக்க முடியாது.
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","மன்னிக்கவும்! அதற்கு எதிராக இருக்கும் பரிவர்த்தனைகள் இருப்பதால் நீங்கள், நிறுவனத்தின் இயல்புநிலை நாணய மாற்ற முடியாது. நீங்கள் இயல்புநிலை நாணய மாற்ற விரும்பினால் நீங்கள் அந்த நடவடிக்கைகளை ரத்து செய்ய வேண்டும்."
 Sorry. Companies cannot be merged,மன்னிக்கவும். நிறுவனங்கள் ஒன்றாக்க முடியாது
 Sorry. Serial Nos. cannot be merged,மன்னிக்கவும். தொடர் இல ஒன்றாக்க முடியாது
 Sort By,வரிசைப்படுத்து
@@ -2759,6 +2780,7 @@
 Suggestions,பரிந்துரைகள்
 Sunday,ஞாயிற்றுக்கிழமை
 Supplier,கொடுப்பவர்
+Supplier (Payable) Account,வழங்குபவர் (செலுத்த வேண்டிய) கணக்கு
 Supplier (vendor) name as entered in supplier master,வழங்குபவர் (விற்பனையாளர்) பெயர் என சப்ளையர் மாஸ்டர் உள்ளிட்ட
 Supplier Account Head,வழங்குபவர் கணக்கு தலைமை
 Supplier Address,வழங்குபவர் முகவரி
@@ -2792,7 +2814,6 @@
 Symbol,அடையாளம்
 Sync Inbox,Sync இன்பாக்ஸ்
 Sync Support Mails,ஆதரவு அஞ்சல் ஒத்திசை
-Sync backups with remote tools like Dropbox etc.,டிராப்பாக்ஸ் போன்ற தொலை கருவிகள் காப்பு ஒத்திசை
 Sync with Dropbox,டிராப்பாக்ஸ் உடன் ஒத்திசைக்க
 Sync with Google Drive,Google Drive ஐ ஒத்திசைந்து
 System,முறை
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page",இணையதளம் முகப்பு பக்கம் என்று &quot;வலை பக்கம்&quot;
 The BOM which will be replaced,பதிலீடு செய்யப்படும் BOM
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",தொகுப்பு பிரதிபலிக்கிறது என்று பொருள். இந்த பொருள் &quot;இல்லை&quot; என &quot;பங்கு உருப்படி இல்லை&quot; மற்றும் &quot;ஆம்&quot; என &quot;விற்பனை பொருள் இல்லை&quot;
-The account to which you will pay (have paid) the money to.,கணக்கு நீங்கள் (பணம் கொடுத்ததாக) பணம் செலுத்த வேண்டும் என்பது.
 The date at which current entry is made in system.,தற்போதைய உள்ளீடு அமைப்பு உருவாக்கப்படும் தேதி.
 The date at which current entry will get or has actually executed.,தற்போதைய உள்ளீடு அல்லது எந்த தேதி உண்மையில் தூக்கிலிடப்பட்டார்.
 The date on which next invoice will be generated. It is generated on submit.,அடுத்த விலைப்பட்டியல் உருவாக்கப்படும் எந்த தேதி. இது &#39;to உருவாக்குகிறது.
@@ -2927,6 +2947,7 @@
 To Currency,நாணய செய்ய
 To Date,தேதி
 To Discuss,ஆலோசிக்க வேண்டும்
+To Do,செய்ய வேண்டும்
 To Do List,பட்டியல் செய்ய வேண்டும்
 To PR Date,PR தேதி வரை
 To Package No.,இல்லை தொகுப்பு வேண்டும்
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","தானாகவே உள்வரும் மின்னஞ்சல் இருந்து ஆதரவு டிக்கெட் உருவாக்க, இங்கே உங்கள் POP3 அமைப்புகளை அமைக்க. அனைத்து மின்னஞ்சல்கள் என்று அஞ்சல் அடையாள இருந்து முறையில் ஒத்திசைக்கப்பட்டுள்ளது என்று நீங்கள் வெறுமனே ஈஆர்பி ஒரு தனி மின்னஞ்சல் ஐடி உருவாக்க வேண்டும். நிச்சயமாக இல்லை என்றால், உங்கள் மின்னஞ்சல் வழங்குநர் தொடர்பு கொள்ளவும்."
 "To create an Account Head under a different company, select the company and save customer.","வேறு நிறுவனத்தின் கீழ் ஒரு கணக்கு தலைமை உருவாக்க, நிறுவனம் தேர்வு மற்றும் வாடிக்கையாளர் சேமிக்க."
 To enable <b>Point of Sale</b> features,<b>விற்பனை அம்சங்களை புள்ளி</b> செயல்படுத்த
+To enable more currencies go to Setup > Currency,மேலும் நாணயங்கள் செயல்படுத்த&gt; நாணய அமைப்பது செல்கிறது
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","மீண்டும் பொருட்களை பெற, பொத்தானை &#39;பொருட்களை பெறவும்&#39; \ அல்லது கைமுறையாக அளவு புதுப்பிக்க கிளிக்."
 "To format columns, give column labels in the query.",", பத்திகள் வடிவமைக்க கேள்வியை நிரலை அடையாளங்கள் கொடுக்க. செய்ய"
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.","மேலும் ஒரு ஆவணத்தில் குறிப்பிட்ட மதிப்புகள் அடிப்படையில் அனுமதிகளை கட்டுப்படுத்த, &#39;கண்டிஷன்&#39; அமைப்புகளை பயன்படுத்த."
@@ -2953,7 +2975,6 @@
 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.,அவர்களின் தொடர் இலக்கங்கள் அடிப்படையில் விற்பனை மற்றும் கொள்முதல் ஆவணங்களில் உருப்படியை தடமறிய. இந்த உற்பத்தியில் உத்தரவாதத்தை விவரங்களை கண்டறிய பயன்படுகிறது.
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,தொகுதி இலக்கங்கள் கொண்ட விற்பனை மற்றும் கொள்முதல் ஆவணங்களில் பொருட்களை தடமறிய <br> <b>விருப்பமான தொழில்: கெமிக்கல்ஸ் ஹிப்ரு</b>
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,பார்கோடு பயன்படுத்தி பொருட்களை கண்காணிக்க வேண்டும். நீங்கள் உருப்படியின் பார்கோடு ஸ்கேனிங் மூலம் வினியோகம் குறிப்பு மற்றும் விற்பனை விலைப்பட்டியல் உள்ள பொருட்களை நுழைய முடியும்.
-"To update your HTML from attachment, click here","உங்கள் HTML இணைப்பு இருந்து புதுப்பிக்க, இங்கே கிளிக் செய்யவும்"
 ToDo,TODO
 Tools,கருவிகள்
 Top,மேல்
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),மொத்த வரி (நிறுவனத்தின் கரன்சி)
 Total Taxes and Charges,மொத்த வரி மற்றும் கட்டணங்கள்
 Total Taxes and Charges (Company Currency),மொத்த வரி மற்றும் கட்டணங்கள் (நிறுவனத்தின் கரன்சி)
+Total Working Days In The Month,மாதம் மொத்த வேலை நாட்கள்
 Total amount of invoices received from suppliers during the digest period,பொருள் மொத்த அளவு தொகுப்பாக காலத்தில் சப்ளையர்கள் பெறப்படும்
 Total amount of invoices sent to the customer during the digest period,பொருள் மொத்த அளவு தொகுப்பாக காலத்தில் வாடிக்கையாளர் அனுப்பப்படும்
-Total days in month,மாதம் மொத்த நாட்கள்
 Total in words,வார்த்தைகளில் மொத்த
+Total production order qty for item,உருப்படியை மொத்த உற்பத்தி ஆர்டர் அளவு
 Totals,மொத்த
 Track separate Income and Expense for product verticals or divisions.,தயாரிப்பு மேம்பாடுகளையும் அல்லது பிரிவுகள் தனி வருமானம் மற்றும் செலவு கண்காணிக்க.
 Track this Delivery Note against any Project,எந்த திட்டம் எதிரான இந்த டெலிவரி குறிப்பு கண்காணிக்க
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,மொறட்டுவ பல்கலைகழகம் மாற்றம் விரிவாக
 UOM Conversion Details,மொறட்டுவ பல்கலைகழகம் மாற்றம் விவரம்
 UOM Conversion Factor,மொறட்டுவ பல்கலைகழகம் மாற்ற காரணி
+UOM Conversion Factor is mandatory,மொறட்டுவ பல்கலைகழகம் மாற்ற காரணி அத்தியாவசியமானதாகும்
 UOM Details,மொறட்டுவ பல்கலைகழகம் விவரம்
 UOM Name,மொறட்டுவ பல்கலைகழகம் பெயர்
 UOM Replace Utility,மொறட்டுவ பல்கலைகழகம் பதிலாக பயன்பாட்டு
@@ -3044,6 +3067,7 @@
 Unread Messages,படிக்காத செய்திகள்
 Unscheduled,திட்டமிடப்படாத
 Unsubscribed,குழுவிலகப்பட்டது
+Upcoming Events for Today,இன்று வரவிருக்கும் நிகழ்வுகள்
 Update,புதுப்பிக்க
 Update Clearance Date,இசைவு தேதி புதுப்பிக்க
 Update Field,புலம் புதுப்பிக்க
@@ -3052,7 +3076,6 @@
 Update Series Number,மேம்படுத்தல் தொடர் எண்
 Update Stock,பங்கு புதுப்பிக்க
 Update Stock should be checked.,மேம்படுத்தல் பங்கு சரிபார்க்கப்பட வேண்டும்.
-Update This Application,இந்த விண்ணப்ப புதுப்பிக்கவும்
 Update Value,மதிப்பு மேம்படுத்த
 "Update allocated amount in the above table and then click ""Allocate"" button",மேலே அட்டவணையில் ஒதுக்கப்பட்ட தொகை மேம்படுத்த பின்னர் &quot;ஒதுக்கி&quot; பொத்தானை கிளிக் செய்யவும்
 Update bank payment dates with journals.,மேம்படுத்தல் வங்கி பணம் பத்திரிகைகள் மூலம் செல்கிறது.
@@ -3065,6 +3088,7 @@
 Upload HTML,HTML பதிவேற்று
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,பழைய பெயர் புதிய பெயர்:. இரண்டு பத்திகள் ஒரு கோப்பை பதிவேற்ற. அதிகபட்சம் 500 வரிசைகள்.
 Upload a file,ஒரு கோப்பை பதிவேற்று
+Upload and Import,பதிவேற்ற மற்றும் இறக்குமதி
 Upload attendance from a .csv file,ஒரு. Csv கோப்பு இருந்து வருகை பதிவேற்று
 Upload stock balance via csv.,Csv வழியாக பங்கு சமநிலை பதிவேற்றலாம்.
 Uploading...,பதிவேற்ற ...
@@ -3078,7 +3102,6 @@
 User ID,பயனர் ஐடி
 User Image,பயனர் படம்
 User Name,பயனர் பெயர்
-User Properties,பயனர் பண்புகள்
 User Remark,பயனர் குறிப்பு
 User Remark will be added to Auto Remark,பயனர் குறிப்பு ஆட்டோ குறிப்பு சேர்க்கப்படும்
 User Tags,பயனர் குறிச்சொற்கள்
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,பயனர் நீக்க அனுமதி இல்லை.
 UserRole,UserRole
 Username,பயனர்பெயர்
-Users,பயனர்
 Users who can approve a specific employee's leave applications,ஒரு குறிப்பிட்ட ஊழியர் விடுப்பு விண்ணப்பங்கள் பெறலாம் பயனர்கள்
 Users with this role are allowed to do / modify accounting entry before frozen date,இந்த பங்கு பயனர்கள் உறைந்த தேதி முன் கணக்கு பதிவு செய்ய / மாற்ற அனுமதி
 Utilities,பயன்பாடுகள்
@@ -3116,6 +3138,7 @@
 Voucher No,ரசீது இல்லை
 Voucher Type,ரசீது வகை
 Voucher Type and Date,ரசீது வகை மற்றும் தேதி
+WIP Warehouse required before Submit,WIP கிடங்கு சமர்ப்பி முன் தேவை
 Waiting for Customer,வாடிக்கையாளர் காத்திருக்கிறது
 Walk In,ல் நடக்க
 Warehouse,விற்பனை பொருள்கள் வைத்திருக்கும் இடம்
@@ -3149,6 +3172,7 @@
 Website Settings,இணைய அமைப்புகள்
 Website Slideshow,இணைய ப
 Website Slideshow Item,இணைய ப பொருள்
+Website User,வலைத்தளம் பயனர்
 Website Warehouse,இணைய கிடங்கு
 Wednesday,புதன்கிழமை
 Weekly,வாரந்தோறும்
@@ -3214,21 +3238,22 @@
 Yes,ஆம்
 Yesterday,நேற்று
 You are not authorized to do/modify back dated entries before ,நீங்கள் / முன் தேதியிட்ட உள்ளீடுகளை திரும்ப மாற்ற செய்ய அதிகாரம் இல்லை
-You can create more earning and deduction type from Setup --> HR,நீங்கள் அமைவு இருந்து இன்னும் சம்பளம் மற்றும் துப்பறியும் வகை உருவாக்க முடியும் -&gt; அலுவலக
 You can enter any date manually,நீங்கள் கைமுறையாக எந்த தேதி நுழைய முடியும்
 You can enter the minimum quantity of this item to be ordered.,நீங்கள் கட்டளையிட்ட வேண்டும் இந்த உருப்படியை குறைந்தபட்ச அளவு நுழைய முடியாது.
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,நீங்கள் இல்லை இரண்டு டெலிவரி குறிப்பு உள்ளிட்டு விற்பனை விலைப்பட்டியல் இல்லை \ எந்த ஒரு உள்ளிடவும். முடியாது
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,நீங்கள் முன்னிருப்பு மதிப்புகளை அமைக்க பல்வேறு வடிவங்களில் இந்த சொத்துக்களின் மதிப்பு அடிப்படையில் அனுமதி விதிகளை விண்ணப்பிக்க பயனர்கள் பல்வேறு &#39;பண்புகள்&#39; அமைக்க முடியும்.
 You can start by selecting backup frequency and \					granting access for sync,நீங்கள் காப்பு அதிர்வெண் தேர்ந்தெடுப்பதன் மூலம் துவக்க மற்றும் சேர்ப்பிற்கான \ வழங்கும் அணுக முடியும்
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,நீங்கள் பயன்படுத்தலாம் <a href='#Form/Customize Form'>படிவம் தனிப்பயனாக்கு</a> துறைகளில் உள்ள நிலைகளை அமைக்க.
+You may need to update: ,நீங்கள் மேம்படுத்த வேண்டும்:
 Your Customer's TAX registration numbers (if applicable) or any general information,உங்கள் வாடிக்கையாளர் வரி பதிவு எண்கள் (பொருந்தினால்) அல்லது எந்த பொது தகவல்
 "Your download is being built, this may take a few moments...","உங்கள் பதிவிறக்க கட்டப்பட உள்ளது, இந்த ஒரு சில நிமிடங்கள் ஆகலாம் ..."
-Your letter head content in HTML.,HTML இல் உங்கள் கடிதத்தை தலைமை உள்ளடக்கம்.
+Your letter head content,உங்கள் கடிதம் தலை உள்ளடக்கம்
 Your sales person who will contact the customer in future,எதிர்காலத்தில் வாடிக்கையாளர் தொடர்பு யார் உங்கள் விற்பனை நபர்
 Your sales person who will contact the lead in future,எதிர்காலத்தில் முன்னணி தொடர்பு யார் உங்கள் விற்பனை நபர்
 Your sales person will get a reminder on this date to contact the customer,உங்கள் விற்பனை நபர் வாடிக்கையாளர் தொடர்பு கொள்ள இந்த தேதியில் ஒரு நினைவூட்டல் வரும்
 Your sales person will get a reminder on this date to contact the lead,உங்கள் விற்பனை நபர் முன்னணி தொடர்பு கொள்ள இந்த தேதியில் ஒரு நினைவூட்டல் வரும்
 Your support email id - must be a valid email - this is where your emails will come!,"உங்கள் ஆதரவு மின்னஞ்சல் ஐடி - ஒரு சரியான மின்னஞ்சல் இருக்க வேண்டும் - உங்கள் மின்னஞ்சல்கள் வரும், அங்கு இது!"
+[Error],[பிழை]
 [Label]:[Field Type]/[Options]:[Width],[லேபிள்]: [புல வகை] / [விருப்பங்கள்]: [அகலம்]
 add your own CSS (careful!),உங்கள் சொந்த CSS (careful!) சேர்க்க
 adjust,சரிக்கட்டு
@@ -3430,6 +3455,7 @@
 volume-up,தொகுதி அப்
 warning-sign,எச்சரிக்கை-அறிகுறி
 website page link,இணைய பக்கம் இணைப்பு
+which is greater than sales order qty ,இது விற்பனை பொருட்டு அளவு அதிகமாக இருக்கும்
 wrench,பிடுங்கு
 yyyy-mm-dd,yyyy-mm-dd
 zoom-in,ஜூம்-இல்
diff --git a/translations/th.csv b/translations/th.csv
index ff29ddf..7a461f0 100644
--- a/translations/th.csv
+++ b/translations/th.csv
@@ -1,12 +1,18 @@
  (Half Day),(ครึ่งวัน)
+ against sales order,กับคำสั่งขาย
  against same operation,กับการดำเนินงานเดียวกัน
  already marked,ทำเครื่องหมายแล้ว
  and year: ,และปี:
+ as it is stock Item or packing item,มันเป็นรายการหุ้นหรือรายการบรรจุ
  at warehouse: ,ที่คลังสินค้า:
  by Role ,โดยบทบาท
+ can not be made.,ไม่สามารถทำ
+ can not be marked as a ledger as it has existing child,ไม่สามารถทำเครื่องหมายเป็นบัญ​​ชีแยกประเภทตามที่มีเด็กที่มีอยู่
  cannot be 0,ไม่สามารถเป็น 0
  cannot be deleted.,ไม่สามารถลบได้
  does not belong to the company,ไม่ได้เป็นของ บริษัท ฯ
+ has already been submitted.,ได้ถูกส่งมา
+ has been freezed. ,ได้รับการ freezed
  has been freezed. \				Only Accounts Manager can do transaction against this account,ได้รับการ freezed \ เฉพาะผู้จัดการบัญชีผู้ใช้สามารถทำธุรกรรมกับบัญชีนี้
 " is less than equals to zero in the system, \						valuation rate is mandatory for this item",คือน้อยกว่าเท่ากับศูนย์ในระบบอัตราการประเมินมูลค่า \ มีผลบังคับใช้สำหรับรายการนี​​้
  is mandatory,มีผลบังคับใช้
@@ -17,10 +23,12 @@
  is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,คือตอนนี้เริ่มต้นปีงบประมาณ \ โปรดรีเฟรชเบราว์เซอร์ของคุณสำหรับการเปลี่ยนแปลงที่จะมีผล
  is present in one or many Active BOMs,ในปัจจุบันคือ BOMs ใช้งานเดียวหรือหลายคน
  not active or does not exists in the system,ใช้งานไม่ได้หรือไม่ได้อยู่ในระบบ
+ not submitted,ไม่ได้ส่ง
  or the BOM is cancelled or inactive,หรือ BOM ถูกยกเลิกหรือไม่ได้ใช้งาน
  should be 'Yes'. As Item: ,ควรจะเป็น &#39;ใช่&#39; เป็นรายการ:
  should be same as that in ,ควรจะเป็นเช่นเดียวกับที่อยู่ใน
  was on leave on ,ได้พักเมื่อ
+ will be ,จะ
  will be over-billed against mentioned ,จะถูกกว่าเรียกเก็บเงินกับที่กล่าวถึง
  will become ,จะกลายเป็น
 """Company History""",&quot;ประวัติ บริษัท &quot;
@@ -56,6 +64,7 @@
 15px,15px
 16px,16px
 2 days ago,2 วันที่ผ่านมา
+: Duplicate row from same ,: ซ้ำแถวจากเดียวกัน
 : It is linked to other active BOM(s),: มันจะเชื่อมโยงกับ BOM ใช้งานอื่น ๆ (s)
 : Mandatory for a Recurring Invoice.,: บังคับสำหรับใบแจ้งหนี้ที่เกิดขึ้นประจำ
 "<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">ในการจัดการกลุ่มลูกค้าคลิกที่นี่</a>"
@@ -102,6 +111,7 @@
 Account Id,หมายเลขบัญชีที่
 Account Name,ชื่อบัญชี
 Account Type,ประเภทบัญชี
+Account for this ,บัญชีนี้
 Accounting,การบัญชี
 Accounting Year.,ปีบัญชี
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.",รายการบัญชีแช่แข็งถึงวันนี้ไม่มีใครสามารถทำ / แก้ไขรายการยกเว้นบทบาทที่ระบุไว้ด้านล่าง
@@ -114,6 +124,7 @@
 Action,การกระทำ
 Active,คล่องแคล่ว
 Active: Will extract emails from ,ใช้งานล่าสุด: จะดึงอีเมลจาก
+Activity,กิจกรรม
 Activity Log,เข้าสู่ระบบกิจกรรม
 Activity Type,ประเภทกิจกรรม
 Actual,ตามความเป็นจริง
@@ -148,9 +159,6 @@
 Add a banner to the site. (small banners are usually good),เพิ่มแบนเนอร์ไปยังเว็บไซต์ (ป้ายขนาดเล็กมักจะดี)
 Add attachment,เพิ่มสิ่งที่แนบมา
 Add code as &lt;script&gt;,เพิ่มรหัสเป็น &lt;script&gt;
-Add custom code to forms,เพิ่มรหัสที่กำหนดเองในรูปแบบที่
-Add fields to forms,เพิ่มเขตข้อมูลแบบฟอร์ม
-Add headers for standard print formats,เพิ่มหัวสำหรับรูปแบบการพิมพ์มาตรฐาน
 Add new row,เพิ่มแถวใหม่
 Add or Deduct,เพิ่มหรือหัก
 Add rows to set annual budgets on Accounts.,เพิ่มแถวตั้งงบประมาณประจำปีเกี่ยวกับบัญชี
@@ -158,7 +166,6 @@
 Add to To Do,เพิ่มสิ่งที่ต้องทำ
 Add to To Do List of,เพิ่มไป To Do List ของ
 Add/Remove Recipients,Add / Remove ผู้รับ
-"Add/remove users, set roles, passwords etc",เพิ่ม / ลบผู้ใช้บทบาทชุดรหัสผ่าน ฯลฯ
 Additional Info,ข้อมูลเพิ่มเติม
 Address,ที่อยู่
 Address & Contact,ที่อยู่และติดต่อ
@@ -174,7 +181,6 @@
 Address to be displayed on the Contact Page,ที่อยู่ที่จะปรากฏบนหน้าติดต่อ
 Adds a custom field to a DocType,เพิ่มเขตข้อมูลที่กำหนดเองเพื่อ DocType
 Adds a custom script (client or server) to a DocType,เพิ่มสคริปต์ที่กำหนดเอง (ไคลเอ็นต์หรือเซิร์ฟเวอร์) เพื่อ DocType
-Administration,การบริหาร
 Advance Amount,จำนวนล่วงหน้า
 Advance amount,จำนวนเงิน
 Advanced Scripting,การเขียนสคริปต์ขั้นสูง
@@ -238,6 +244,7 @@
 Allow Users,อนุญาตให้ผู้ใช้งาน
 Allow on Submit,อนุญาตให้ส่ง
 Allow the following users to approve Leave Applications for block days.,อนุญาตให้ผู้ใช้ต่อไปเพื่อขออนุมัติการใช้งานออกวันบล็อก
+Allow user to edit Price List Rate in transactions,ช่วยให้ผู้ใช้ในการแก้ไขอัตราราคาปกติในการทำธุรกรรม
 Allow user to login only after this hour (0-24),อนุญาตให้ผู้ใช้เข้าสู่ระบบเท่านั้นหลังจากชั่วโมงนี้ (0-24)
 Allow user to login only before this hour (0-24),อนุญาตให้ผู้ใช้เข้าสู่ระบบก่อนที่จะชั่วโมงนี้ (0-24)
 Allowance Percent,ร้อยละค่าเผื่อ
@@ -252,8 +259,6 @@
 Amount >=,จำนวนเงินที่&gt; =
 "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","file icon มี. ขยาย ICO ควรจะขนาด 16 x 16 px สร้างขึ้นโดยใช้เครื่องกำเนิดไฟฟ้า favicon [ <a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a> ]"
 Analytics,Analytics
-Annual Cost To Company,ค่าใช้จ่ายประจำปีของ บริษัท
-Annual Cost To Company can not be less than 12 months of Total Earning,ค่าใช้จ่ายประจำปีใน บริษัท ไม่สามารถจะน้อยกว่า 12 เดือนของรายได้รวม
 Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,&#39;% s&#39; โครงสร้างเงินเดือนก็คือการใช้งานสำหรับพนักงาน &#39;% s&#39; กรุณาให้ &#39;ใช้งาน&#39; สถานะของการดำเนินการ
 "Any other comments, noteworthy effort that should go in the records.",ความเห็นอื่น ๆ ความพยายามที่น่าสังเกตว่าควรจะไปในบันทึก
 Applicable Holiday List,รายการวันหยุดที่ใช้บังคับ
@@ -269,7 +274,6 @@
 Apply / Approve Leaves,ใช้ / อนุมัติใบ
 Apply Shipping Rule,ใช้กฎการจัดส่งสินค้า
 Apply Taxes and Charges Master,รับสมัครปริญญาโทและภาษีค่าใช้จ่าย
-Apply latest updates and patches to this app,ใช้การปรับปรุงล่าสุดและแพทช์เพื่อ app นี้
 Appraisal,การตีราคา
 Appraisal Goal,เป้าหมายการประเมิน
 Appraisal Goals,เป้าหมายการประเมิน
@@ -300,7 +304,6 @@
 Attached To DocType,ที่แนบมากับ DOCTYPE
 Attached To Name,ที่แนบมากับชื่อ
 Attachment,ความผูกพัน
-Attachment removed. You may need to update: ,สิ่งที่แนบมาลบออก คุณอาจจำเป็นต้องปรับปรุง:
 Attachments,สิ่งที่แนบมา
 Attempted to Contact,พยายามที่จะติดต่อ
 Attendance,การดูแลรักษา
@@ -422,7 +425,6 @@
 Brand Name,ชื่อยี่ห้อ
 "Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px",ยี่ห้อเป็นสิ่งที่ปรากฏบนด้านขวาบนของแถบเครื่องมือ ถ้ามันเป็นภาพให้แน่ใจว่า ithas พื้นหลังโปร่งใสและใช้ &lt;img /&gt; แท็ก ให้ขนาดเป็น 200px x 30px
 Brand master.,ต้นแบบแบรนด์
-Branding and Printing,การสร้างตราสินค้าและการพิมพ์
 Brands,แบรนด์
 Breakdown,การเสีย
 Budget,งบ
@@ -440,6 +442,7 @@
 Build Sitemap,สร้างแผนผังเว็บไซต์
 Bulk Email,อีเมล์ขยะ
 Bulk Email records.,บันทึกอีเมล์ขยะ
+Bummer! There are more holidays than working days this month.,! Bummer มีวันหยุดหลายวันกว่าวันทำการในเดือนนี้มี
 Bundle items at time of sale.,กำรายการในเวลาของการขาย
 Button,ปุ่ม
 Buyer of Goods and Services.,ผู้ซื้อสินค้าและบริการ
@@ -490,7 +493,6 @@
 Center,ศูนย์
 "Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.",เอกสารบางอย่างไม่ควรจะมีการเปลี่ยนแปลงครั้งสุดท้ายเช่นใบแจ้งหนี้สำหรับตัวอย่าง รัฐสุดท้ายสำหรับเอกสารดังกล่าวเรียกว่า <b>Submitted</b> คุณสามารถ จำกัด การซึ่งสามารถส่งบทบาท
 Change UOM for an Item.,เปลี่ยน UOM สำหรับรายการ
-"Change entry properties (hide fields, make mandatory etc)",เปลี่ยนคุณสมบัติรายการ (ช่องซ่อนให้ ฯลฯ บังคับ)
 Change the starting / current sequence number of an existing series.,เปลี่ยนหมายเลขลำดับเริ่มต้น / ปัจจุบันของชุดที่มีอยู่
 Channel Partner,พันธมิตรช่องทาง
 Charge,รับผิดชอบ
@@ -508,6 +510,7 @@
 Check this if you want to force the user to select a series before saving. There will be no default if you check this.,ตรวจสอบเรื่องนี้ถ้าคุณต้องการบังคับให้ผู้ใช้เลือกชุดก่อนที่จะบันทึก จะมีค่าเริ่มต้นไม่ถ้าคุณตรวจสอบนี้
 Check this if you want to send emails as this id only (in case of restriction by your email provider).,ตรวจสอบนี้ถ้าคุณต้องการที่จะส่งอีเมลเป็น ID เพียงแค่นี้ (ในกรณีของข้อ จำกัด โดยผู้ให้บริการอีเมลของคุณ)
 Check this if you want to show in website,ตรวจสอบนี้ถ้าคุณต้องการที่จะแสดงในเว็บไซต์
+Check this to disallow fractions. (for Nos),ตรวจสอบนี้จะไม่อนุญาตให้เศษส่วน (สำหรับ Nos)
 Check this to make this the default letter head in all prints,ตรวจสอบนี้จะทำให้เรื่องนี้หัวจดหมายเริ่มต้นในการพิมพ์ทั้งหมด
 Check this to pull emails from your mailbox,ตรวจสอบนี้จะดึงอีเมลจากกล่องจดหมายของคุณ
 Check to activate,ตรวจสอบเพื่อเปิดใช้งาน
@@ -576,6 +579,7 @@
 Company registration numbers for your reference. Example: VAT Registration Numbers etc.,เลขทะเบียน บริษัท สำหรับการอ้างอิงของคุณ ตัวอย่าง: หมายเลขทะเบียนภาษีมูลค่าเพิ่มเป็นต้น
 Company registration numbers for your reference. Tax numbers etc.,เลขทะเบียน บริษัท สำหรับการอ้างอิงของคุณ ตัวเลขภาษี ฯลฯ
 Complaint,การร้องเรียน
+Complete,สมบูรณ์
 Complete By,เสร็จสมบูรณ์โดย
 Completed,เสร็จ
 Completed Qty,จำนวนเสร็จ
@@ -626,12 +630,12 @@
 Cost Center Name,ค่าใช้จ่ายชื่อศูนย์
 Cost Center is mandatory for item: ,ศูนย์ต้นทุนมีผลบังคับใช้สำหรับรายการ:
 Cost Center must be specified for PL Account: ,ศูนย์ต้นทุนจะต้องมีการระบุไว้สำหรับบัญชี PL:
-Cost to Company,เสียค่าใช้จ่ายให้กับ บริษัท
 Costing,ต้นทุน
 Country,ประเทศ
 Country Name,ชื่อประเทศ
 Create,สร้าง
 Create Bank Voucher for the total salary paid for the above selected criteria,สร้างบัตรกำนัลธนาคารเพื่อการรวมเงินเดือนที่จ่ายสำหรับเกณฑ์ที่เลือกข้างต้น
+Create Material Requests,ขอสร้างวัสดุ
 Create Production Orders,สร้างคำสั่งซื้อการผลิต
 Create Receiver List,สร้างรายการรับ
 Create Salary Slip,สร้างสลิปเงินเดือน
@@ -680,6 +684,7 @@
 Custom Startup Code,รหัสเริ่มต้นที่กำหนดเอง
 Custom?,กำหนดเองได้อย่างไร
 Customer,ลูกค้า
+Customer (Receivable) Account,บัญชีลูกค้า (ลูกหนี้)
 Customer / Item Name,ชื่อลูกค้า / รายการ
 Customer Account,บัญชีลูกค้า
 Customer Account Head,หัวหน้าฝ่ายบริการลูกค้า
@@ -688,6 +693,8 @@
 Customer Code,รหัสลูกค้า
 Customer Codes,รหัสลูกค้า
 Customer Details,รายละเอียดลูกค้า
+Customer Discount,ส่วนลดพิเศษสำหรับลูกค้า
+Customer Discounts,ส่วนลดลูกค้า
 Customer Feedback,คำติชมของลูกค้า
 Customer Group,กลุ่มลูกค้า
 Customer Group Name,ชื่อกลุ่มลูกค้า
@@ -717,11 +724,10 @@
 DN,DN
 DN Detail,รายละเอียด DN
 Daily,ประจำวัน
+Daily Event Digest is sent for Calendar Events where reminders are set.,ประจำวันเหตุการณ์สำคัญจะถูกส่งสำหรับปฏิทินเหตุการณ์การแจ้งเตือนที่มีการตั้งค่า
 Daily Time Log Summary,ข้อมูลอย่างย่อประจำวันเข้าสู่ระบบ
-"Daily, weekly, monthly email Digests",รายวันรายสัปดาห์รายเดือนอีเมล์สำคัญ
 Danger,อันตราย
 Data,ข้อมูล
-Data Import,การนำเข้าข้อมูล
 Data missing in table,ข้อมูลที่หายไปในตาราง
 Database,ฐานข้อมูล
 Database Folder ID,ID โฟลเดอร์ฐานข้อมูล
@@ -777,6 +783,7 @@
 Default Settings,ตั้งค่าเริ่มต้น
 Default Source Warehouse,คลังสินค้าที่มาเริ่มต้น
 Default Stock UOM,เริ่มต้น UOM สต็อก
+Default Supplier,ผู้ผลิตเริ่มต้น
 Default Supplier Type,ซัพพลายเออร์ชนิดเริ่มต้น
 Default Target Warehouse,คลังสินค้าเป้าหมายเริ่มต้น
 Default Territory,ดินแดนเริ่มต้น
@@ -795,6 +802,7 @@
 Delete,ลบ
 Delete Row,ลบแถว
 Delivered,ส่ง
+Delivered Items To Be Billed,รายการที่ส่งไปถูกเรียกเก็บเงิน
 Delivered Qty,จำนวนส่ง
 Delivery Address,ที่อยู่จัดส่งสินค้า
 Delivery Date,วันที่ส่ง
@@ -813,7 +821,6 @@
 Delivery Time,เวลาจัดส่งสินค้า
 Delivery To,เพื่อจัดส่งสินค้า
 Department,แผนก
-Depend on LWP,ขึ้นอยู่กับ LWP
 Depends On,ขึ้นอยู่กับ
 Depends on LWP,ขึ้นอยู่กับ LWP
 Descending,น้อย
@@ -864,6 +871,7 @@
 DocType or Field,DocType หรือสาขา
 Document,เอกสาร
 Document Description,คำอธิบายเอกสาร
+Document Numbering Series,เอกสารชุดที่หมายเลข
 Document Status transition from ,การเปลี่ยนแปลงสถานะเอกสารจาก
 Document Type,ประเภทเอกสาร
 Document is only editable by users of role,เอกสารเป็นเพียงแก้ไขได้โดยผู้ใช้ของบทบาท
@@ -934,7 +942,7 @@
 Employee Leave Balance,ยอดคงเหลือพนักงานออก
 Employee Name,ชื่อของพนักงาน
 Employee Number,จำนวนพนักงาน
-Employee Records to be created by ,ระเบียนพนักงานที่จะถูกสร้างขึ้นโดย
+Employee Records to be created by,ระเบียนพนักงานที่จะถูกสร้างขึ้นโดย
 Employee Setup,การติดตั้งการทำงานของพนักงาน
 Employee Type,ประเภทพนักงาน
 Employee grades,เกรดของพนักงาน
@@ -944,7 +952,6 @@
 Employees Email Id,Email รหัสพนักงาน
 Employment Details,รายละเอียดการจ้างงาน
 Employment Type,ประเภทการจ้างงาน
-Enable / disable currencies.,เปิด / ปิดสกุลเงิน
 Enable Auto Inventory Accounting,เปิดใช้งานบัญชีสินค้าคงคลังอัตโนมัติ
 Enable Shopping Cart,เปิดใช้งานรถเข็น
 Enabled,เปิดการใช้งาน
@@ -977,11 +984,17 @@
 Error: Document has been modified after you have opened it,ข้อผิดพลาด: เอกสารได้รับการแก้ไขหลังจากที่คุณได้เปิดมัน
 Estimated Material Cost,ต้นทุนวัสดุประมาณ
 Event,เหตุการณ์
+Event End must be after Start,สุดท้ายเหตุการณ์จะต้องหลังจากที่เริ่มต้น
 Event Individuals,บุคคลเหตุการณ์
 Event Role,บทบาทเหตุการณ์
 Event Roles,บทบาทเหตุการณ์
 Event Type,ชนิดเหตุการณ์
 Event User,ผู้ใช้งาน
+Events In Today's Calendar,เหตุการณ์ในปฏิทินของวันนี้
+Every Day,ทุกวัน
+Every Month,ทุกเดือน
+Every Week,ทุกสัปดาห์
+Every Year,ทุกปี
 Everyone can read,ทุกคนสามารถอ่าน
 Example:,ตัวอย่าง:
 Exchange Rate,อัตราแลกเปลี่ยน
@@ -1019,8 +1032,6 @@
 Exports,การส่งออก
 External,ภายนอก
 Extract Emails,สารสกัดจากอีเมล
-Extract Job Applicant from jobs email id e.g. jobs@example.com,สารสกัดจากใบงานจากงานอีเมล์รหัสเช่น jobs@example.com
-Extract Leads from sales email id e.g. sales@example.com,สารสกัดนำมาจากยอดขายอีเมล์ ID เช่น sales@example.com
 FCFS Rate,อัตรา FCFS
 FIFO,FIFO
 Facebook Share,Facebook แบ่งปัน
@@ -1044,7 +1055,6 @@
 "Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","เขตคั่นด้วยเครื่องหมายจุลภาค (,) จะรวมอยู่ใน <br /> <b>ค้นหาตามรายชื่อของกล่องโต้ตอบค้นหา</b>"
 File,ไฟล์
 File Data,แฟ้มข้อมูล
-File Manager,ตัวจัดการไฟล์
 File Name,ชื่อไฟล์
 File Size,ขนาดไฟล์
 File URL,ไฟล์ URL
@@ -1063,7 +1073,6 @@
 Final Confirmation Date,วันที่ยืนยันครั้งสุดท้าย
 Financial Analytics,Analytics การเงิน
 Financial Statements,งบการเงิน
-Financial Years for books of accounts,ปีการเงินสำหรับหนังสือของบัญชี
 First Name,ชื่อแรก
 First Responded On,ครั้งแรกเมื่อวันที่ง่วง
 Fiscal Year,ปีงบประมาณ
@@ -1090,6 +1099,7 @@
 For Sales Invoice,สำหรับใบแจ้งหนี้การขาย
 For Server Side Print Formats,สำหรับเซิร์ฟเวอร์รูปแบบการพิมพ์ Side
 For Territory,สำหรับดินแดน
+For UOM,สำหรับ UOM
 For Warehouse,สำหรับโกดัง
 "For comparative filters, start with",สำหรับตัวกรองเปรียบเทียบเริ่มต้นด้วย
 "For e.g. 2012, 2012-13","สำหรับเช่น 2012, 2012-13"
@@ -1109,6 +1119,7 @@
 Freeze Stock Entries,ตรึงคอมเมนต์สินค้า
 Friday,วันศุกร์
 From,จาก
+From Bill of Materials,จากค่าวัสดุ
 From Company,จาก บริษัท
 From Currency,จากสกุลเงิน
 From Currency and To Currency cannot be same,สกุลเงินจากสกุลเงินและไม่สามารถเดียวกัน
@@ -1117,6 +1128,7 @@
 From Date must be before To Date,นับ แต่วันที่ต้องอยู่ก่อนวันที่ต้องการ
 From Delivery Note,จากหมายเหตุการจัดส่งสินค้า
 From Employee,จากพนักงาน
+From Lead,จาก Lead
 From PR Date,จากวันที่ PR
 From Package No.,จากเลขที่แพคเกจ
 From Purchase Order,จากการสั่งซื้อ
@@ -1150,8 +1162,8 @@
 Get Current Stock,รับสินค้าปัจจุบัน
 Get From ,ได้รับจาก
 Get Items,รับสินค้า
+Get Items From Sales Orders,รับรายการจากคำสั่งซื้อขาย
 Get Last Purchase Rate,รับซื้อให้ล่าสุด
-Get Latest Updates,ได้รับการปรับปรุงล่าสุด
 Get Non Reconciled Entries,รับคอมเมนต์คืนดีไม่
 Get Outstanding Invoices,รับใบแจ้งหนี้ค้าง
 Get Purchase Receipt,รับใบเสร็จรับเงินซื้อ
@@ -1161,7 +1173,6 @@
 Get Template,รับแม่แบบ
 Get Terms and Conditions,รับข้อตกลงและเงื่อนไข
 Get Weekly Off Dates,รับวันปิดสัปดาห์
-Get a list of errors encountered by the Scheduler,ได้รับรายชื่อของข้อผิดพลาดที่พบโดยตัวจัดตารางเวลา
 "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.",ได้รับอัตรามูลค่าและสต็อกที่คลังสินค้าแหล่งที่มา / เป้าหมายดังกล่าวโพสต์วันที่เวลา ถ้าต่อเนื่องรายการโปรดกดปุ่มนี้หลังจากที่เข้ามา Nos อนุกรม
 Give additional details about the indent.,ให้รายละเอียดเพิ่มเติมเกี่ยวกับการเยื้อง
 Global Defaults,เริ่มต้นทั่วโลก
@@ -1193,9 +1204,9 @@
 Group or Ledger,กลุ่มหรือบัญชีแยกประเภท
 Groups,กลุ่ม
 HR,ทรัพยากรบุคคล
+HR Settings,การตั้งค่าทรัพยากรบุคคล
 HTML,HTML
 HTML / Banner that will show on the top of product list.,HTML / แบนเนอร์ที่จะแสดงอยู่ด้านบนของรายการสินค้า
-"HTML print formats for quotes, invoices etc",พิมพ์รูปแบบที่ HTML สำหรับคำพูด ฯลฯ ใบแจ้งหนี้
 Half Day,ครึ่งวัน
 Half Yearly,ประจำปีครึ่ง
 Half-yearly,รายหกเดือน
@@ -1217,6 +1228,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children",ที่นี่คุณสามารถรักษารายละเอียดเช่นชื่อครอบครัวและอาชีพของผู้ปกครองคู่สมรสและเด็ก
 "Here you can maintain height, weight, allergies, medical concerns etc","ที่นี่คุณสามารถรักษาความสูงน้ำหนัก, ภูมิแพ้, ฯลฯ ปัญหาด้านการแพทย์"
 Hey there! You need to put at least one item in \				the item table.,Hey there! คุณจะต้องใส่อย่างน้อยหนึ่งรายการใน \ ตารางรายการ
+Hey! All these items have already been invoiced.,Hey! รายการทั้งหมดเหล่านี้ได้รับใบแจ้งหนี้แล้ว
 Hey! There should remain at least one System Manager,Hey! ควรมีตัวจัดการระบบยังคงอยู่อย่างน้อยหนึ่ง
 Hidden,ซ่อน
 Hide Actions,ซ่อนการดำเนินการ
@@ -1251,6 +1263,7 @@
 "How should this currency be formatted? If not set, will use system defaults",วิธีการที่ควรสกุลเงินนี้จะจัดรูปแบบ? ถ้าไม่ตั้งจะใช้เริ่มต้นของระบบ
 How to upload,วิธีการอัปโหลด
 Hrvatski,Hrvatski
+Human Resources,ทรัพยากรมนุษย์
 Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,! Hurray วันที่ (s) ที่คุณกำลังใช้สำหรับออก \ ตรงกับวันหยุด (s) คุณไม่จำเป็นต้องใช้สำหรับการออก
 I,ผม
 ID (name) of the entity whose property is to be set,ID (ชื่อ) ของกิจการที่มีสถานที่ให้บริการจะถูกกำหนด
@@ -1273,6 +1286,7 @@
 If Yearly Budget Exceeded,ถ้างบประมาณประจำปีเกิน
 "If a User does not have access at Level 0, then higher levels are meaningless","หากผู้ใช้ไม่สามารถเข้าถึงที่ระดับ 0, ระดับที่สูงขึ้นแล้วมีความหมาย"
 "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.",หากการตรวจสอบรายการวัสดุสำหรับรายการย่อยประกอบจะได้รับการพิจารณาสำหรับการใช้วัตถุดิบ มิฉะนั้นทุกรายการย่อยประกอบจะได้รับการปฏิบัติเป็นวัตถุดิบ
+"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day",ถ้าการตรวจสอบรวม​​กัน ของวันทําการจะรวมถึงวันหยุดและนี้จะช่วยลดค่าของเงินเดือนที่ต้องการต่อวัน
 "If checked, all other workflows become inactive.",หากตร​​วจสอบทุกขั้นตอนการทำงานอื่น ๆ เป็นที่รอ
 "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.",ถ้าการตรวจสอบอีเมลที่มีรูปแบบ HTML ที่แนบมาจะถูกเพิ่มในส่วนหนึ่งของร่างกายอีเมลเป็นสิ่งที่แนบมา เพียงส่งเป็นสิ่งที่แนบมาให้ยกเลิกการนี​​้
 "If checked, the Home page will be the default Item Group for the website.",หากการตรวจสอบหน้าแรกจะเริ่มต้นกลุ่มสินค้าสำหรับเว็บไซต์
@@ -1305,7 +1319,6 @@
 Import,นำเข้า
 Import Attendance,การเข้าร่วมประชุมและนำเข้า
 Import Log,นำเข้าสู่ระบบ
-Import data from spreadsheet (csv) files,นำเข้าข้อมูลจากไฟล์สเปรดชีต (CSV)
 Important dates and commitments in your project life cycle,วันที่มีความสำคัญและมีความมุ่งมั่นในวงจรชีวิตของโครงการ
 Imports,การนำเข้า
 In Dialog,ในกล่องโต้ตอบ
@@ -1314,6 +1327,7 @@
 In List View,ในมุมมองรายการ
 In Process,ในกระบวนการ
 In Report Filter,ในรายงานกรอง
+In Row,ในแถว
 In Store,ในร้านค้า
 In Words,ในคำพูดของ
 In Words (Company Currency),ในคำ (สกุลเงิน บริษัท )
@@ -1329,6 +1343,7 @@
 "In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.",ในตัวจัดการการอนุญาตให้คลิกที่ปุ่มใน &#39;สภาพ&#39; คอลัมน์บทบาทที่คุณต้องการ จำกัด
 Incentives,แรงจูงใจ
 Incharge Name,incharge ชื่อ
+Include holidays in Total no. of Working Days,รวมถึงวันหยุดในไม่รวม ของวันทําการ
 Income / Expense,รายได้ / ค่าใช้จ่าย
 Income Account,บัญชีรายได้
 Income Booked,รายได้ที่จองไว้
@@ -1347,6 +1362,7 @@
 Industry Type,ประเภทอุตสาหกรรม
 Info,ข้อมูล
 Insert After,ใส่หลังจาก
+Insert Below,ใส่ด้านล่าง
 Insert Code,ใส่รหัส
 Insert Row,ใส่แถวของ
 Insert Style,ใส่สไตล์
@@ -1372,6 +1388,7 @@
 Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,หมายเหตุการจัดส่งสินค้าที่ไม่ถูกต้อง หมายเหตุการจัดส่งสินค้าควรมีอยู่และควรจะอยู่ในสภาพร่าง กรุณาแก้ไขและลองอีกครั้ง
 Invalid Email,อีเมล์ที่ไม่ถูกต้อง
 Invalid Email Address,ที่อยู่อีเมลไม่ถูกต้อง
+Invalid Item or Warehouse Data,รายการที่ไม่ถูกต้องหรือคลังข้อมูล
 Invalid Leave Approver,ไม่ถูกต้องฝากผู้อนุมัติ
 Inventory,รายการสินค้า
 Inverse,ผกผัน
@@ -1511,7 +1528,6 @@
 Lead Lost,นำ Lost
 Lead Name,นำชื่อ
 Lead Owner,นำเจ้าของ
-Lead Ref,นำ Ref
 Lead Source,นำมา
 Lead Status,นำสถานะ
 Lead Time Date,นำวันเวลา
@@ -1545,6 +1561,7 @@
 Leave blank if considered for all designations,เว้นไว้หากพิจารณากำหนดทั้งหมด
 Leave blank if considered for all employee types,เว้นไว้หากพิจารณาให้พนักงานทุกประเภท
 Leave blank if considered for all grades,เว้นไว้หากพิจารณาให้เกรดทั้งหมด
+Leave blank if you have not decided the end date.,ปล่อยว่างไว้ถ้าคุณยังไม่ได้ตัดสินใจวันที่สิ้นสุด
 Leave by,ฝากตาม
 "Leave can be approved by users with Role, ""Leave Approver""",ฝากสามารถได้รับการอนุมัติโดยผู้ใช้ที่มีบทบาท &quot;ฝากอนุมัติ&quot;
 Ledger,บัญชีแยกประเภท
@@ -1553,7 +1570,6 @@
 Letter Head,หัวจดหมาย
 Letter Head Image,รูปภาพหัวจดหมาย
 Letter Head Name,ชื่อหัวจดหมาย
-Letter heads for print,หัวจดหมายสำหรับการพิมพ์
 Level,ชั้น
 "Level 0 is for document level permissions, higher levels for field level permissions.",ระดับ 0 คือสำหรับสิทธิ์ระดับเอกสารระดับที่สูงขึ้นสำหรับสิทธิ์ในระดับเขต
 Lft,lft
@@ -1563,13 +1579,11 @@
 Linked With,เชื่อมโยงกับ
 List,รายการ
 List items that form the package.,รายการที่สร้างแพคเกจ
-List of companies (not customers / suppliers),รายชื่อของ บริษัท (ลูกค้าไม่ / ซัพพลายเออร์)
 List of holidays.,รายการของวันหยุด
 List of patches executed,รายชื่อของแพทช์ที่ดำเนินการ
 List of records in which this document is linked,รายการของระเบียนที่เอกสารนี้มีการเชื่อมโยง
 List of users who can edit a particular Note,รายชื่อของผู้ใช้ที่สามารถแก้ไขหมายเหตุโดยเฉพาะอย่างยิ่ง
 List this Item in multiple groups on the website.,รายการนี​​้ในหลายกลุ่มในเว็บไซต์
-"List, delete uploaded files.",รายการลบไฟล์ที่อัปโหลด
 Live Chat,Live Chat
 Load Print View on opening of an existing form,โหลดดูหัวข้อการเปิดฟอร์มที่มีอยู่
 Loading,โหลด
@@ -1596,6 +1610,7 @@
 Mail Server,Mail Server ที่
 Main Reports,รายงานหลัก
 Main Section,มาตราหลัก
+Maintain Same Rate Throughout Sales Cycle,รักษาอัตราเดียวตลอดวงจรการขาย
 Maintain same rate throughout purchase cycle,รักษาอัตราเดียวกันตลอดวงจรการซื้อ
 Maintenance,การบำรุงรักษา
 Maintenance Date,วันที่การบำรุงรักษา
@@ -1616,7 +1631,6 @@
 Make a new,ทำให้ใหม่
 Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,ตรวจสอบให้แน่ใจว่าการทำธุรกรรมที่คุณต้องการที่จะ จำกัด การมี &#39;ดินแดน&#39; ฟิลด์ที่แผนที่เพื่อ &#39;พื้นที่&#39; ต้นแบบ
 Male,ชาย
-Manage Numbering Series,จัดการหมายเลขซีรีส์
 Manage cost of operations,จัดการค่าใช้จ่ายในการดำเนินงาน
 Manage exchange rates for currency conversion,จัดการอัตราแลกเปลี่ยนสำหรับการแปลงสกุลเงิน
 Mandatory,จำเป็น
@@ -1651,10 +1665,10 @@
 Material Request No,ขอวัสดุไม่มี
 Material Request Type,ชนิดของการร้องขอวัสดุ
 Material Request used to make this Stock Entry,ขอวัสดุที่ใช้เพื่อให้รายการสินค้านี้
+Material Requirement,ความต้องการวัสดุ
 Material Transfer,โอนวัสดุ
 Materials,วัสดุ
 Materials Required (Exploded),วัสดุบังคับ (ระเบิด)
-Materials Requirement Planning (MRP),การวางแผนความต้องการวัสดุ (MRP)
 Max 500 rows only.,แม็กซ์ 500 เฉพาะแถว
 Max Attachments,สิ่งที่แนบมาแม็กซ์
 Max Days Leave Allowed,วันแม็กซ์ฝากอนุญาตให้นำ
@@ -1699,6 +1713,7 @@
 Month,เดือน
 Monthly,รายเดือน
 Monthly Attendance Sheet,แผ่นผู้เข้าร่วมรายเดือน
+Monthly Earning & Deduction,กำไรสุทธิรายเดือนและหัก
 Monthly Salary Register,สมัครสมาชิกเงินเดือน
 Monthly salary statement.,งบเงินเดือน
 Monthly salary template.,แม่เงินเดือน
@@ -1711,7 +1726,9 @@
 Mr,นาย
 Ms,ms
 Multiple Item Prices,ตรวจสอบราคาสินค้าหลาย
+Multiple root nodes not allowed.,โหนดรากหลายไม่ได้รับอนุญาต
 Mupltiple Item prices.,ราคาสินค้า Mupltiple
+Must be Whole Number,ต้องเป็นจำนวนเต็ม
 Must have report permission to access this report.,ต้องได้รับอนุญาตรายงานการเข้าถึงรายงานนี้
 Must specify a Query to run,ต้องระบุแบบสอบถามที่จะเรียกใช้
 My Settings,การตั้งค่าของฉัน
@@ -1737,7 +1754,6 @@
 Net Weight,ปริมาณสุทธิ
 Net Weight UOM,UOM น้ำหนักสุทธิ
 Net Weight of each Item,น้ำหนักสุทธิของแต่ละรายการ
-Net pay can not be greater than 1/12th of Annual Cost To Company,จ่ายสุทธิไม่สามารถจะมากกว่า 1/12th ของต้นทุนประจำปีของ บริษัท
 Net pay can not be negative,จ่ายสุทธิไม่สามารถลบ
 Never,ไม่เคย
 New,ใหม่
@@ -1795,6 +1811,7 @@
 No of Sent SMS,ไม่มี SMS ที่ส่ง
 No of Visits,ไม่มีการเข้าชม
 No one,ไม่มีใคร
+No permission to write / remove.,ได้รับอนุญาตให้เขียน / ลบไม่มี
 No record found,บันทึกไม่พบ
 No records tagged.,ระเบียนที่ไม่มีการติดแท็ก
 No salary slip found for month: ,สลิปเงินเดือนไม่พบคำที่เดือน:
@@ -1876,13 +1893,11 @@
 Ordered Items To Be Delivered,รายการที่สั่งซื้อจะถูกส่ง
 Ordered Quantity,จำนวนสั่ง
 Orders released for production.,คำสั่งปล่อยให้การผลิต
-Organization,องค์กร
 Organization Profile,รายละเอียดองค์กร
 Original Message,ข้อความเดิม
 Other,อื่น ๆ
 Other Details,รายละเอียดอื่น ๆ
 Out,ออก
-Out going mail server and support ticket mailbox,ออกไปยังเซิร์ฟเวอร์อีเมลและกล่องจดหมายตั๋วสนับสนุน
 Out of AMC,ออกของ AMC
 Out of Warranty,ออกจากการรับประกัน
 Outgoing,ขาออก
@@ -1906,6 +1921,7 @@
 POP3 mail server (e.g. pop.gmail.com),เซิร์ฟเวอร์อีเมล POP3 (เช่น pop.gmail.com)
 POP3 server e.g. (pop.gmail.com),POP3 เซิร์ฟเวอร์เช่น (pop.gmail.com)
 POS Setting,การตั้งค่า POS
+POS View,ดู POS
 PR Detail,รายละเอียดประชาสัมพันธ์
 PRO,PRO
 PS,PS
@@ -1951,10 +1967,10 @@
 Participants,เข้าร่วม
 Partly Billed,จำนวนมากที่สุดเป็นส่วนใหญ่
 Partly Delivered,ส่งบางส่วน
-Partner,หุ้นส่วน
 Partner Target Detail,รายละเอียดเป้าหมายพันธมิตร
 Partner Type,ประเภทคู่
 Partner's Website,เว็บไซต์ของหุ้นส่วน
+Passive,ไม่โต้ตอบ
 Passport Number,หมายเลขหนังสือเดินทาง
 Password,รหัสผ่าน
 Password Expires in (days),รหัสผ่านจะหมดอายุใน (วัน)
@@ -1964,12 +1980,12 @@
 Payables,เจ้าหนี้
 Payables Group,กลุ่มเจ้าหนี้
 Payment Collection With Ageing,คอลเลกชันการชำระเงินด้วยเอจจิ้ง
+Payment Days,วันชำระเงิน
 Payment Entries,คอมเมนต์การชำระเงิน
 Payment Entry has been modified after you pulled it. 			Please pull it again.,รายการชำระเงินได้รับการแก้ไขหลังจากที่คุณดึงมัน กรุณาดึงมันอีกครั้ง
 Payment Made With Ageing,การชำระเงินทำด้วยเอจจิ้ง
 Payment Reconciliation,สอบการชำระเงิน
 Payment Terms,เงื่อนไขการชำระเงิน
-Payment days,วันชำระเงิน
 Payment to Invoice Matching Tool,วิธีการชำระเงินไปที่เครื่องมือการจับคู่ใบแจ้งหนี้
 Payment to Invoice Matching Tool Detail,รายละเอียดการชำระเงินเพื่อการจับคู่เครื่องมือใบแจ้งหนี้
 Payments,วิธีการชำระเงิน
@@ -1984,6 +2000,7 @@
 Percent,เปอร์เซ็นต์
 Percent Complete,ร้อยละสมบูรณ์
 Percentage Allocation,การจัดสรรร้อยละ
+Percentage Allocation should be equal to ,การจัดสรรร้อยละควรจะเท่ากับ
 Percentage variation in quantity to be allowed while receiving or delivering this item.,การเปลี่ยนแปลงในปริมาณร้อยละที่ได้รับอนุญาตขณะที่ได้รับหรือการส่งมอบสินค้ารายการนี​​้
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,เปอร์เซ็นต์ที่คุณได้รับอนุญาตให้ได้รับหรือส่งมอบมากขึ้นกับปริมาณที่สั่งซื้อ ตัวอย่างเช่นหากคุณได้สั่งซื้อ 100 หน่วย และค่าเผื่อของคุณจะ 10% แล้วคุณจะได้รับอนุญาตจะได้รับ 110 หน่วย
 Performance appraisal.,ประเมินผลการปฏิบัติ
@@ -2026,19 +2043,24 @@
 Please check,กรุณาตรวจสอบ
 Please enter Default Unit of Measure,กรุณากรอกหน่วยเริ่มต้นจากวัด
 Please enter Delivery Note No or Sales Invoice No to proceed,กรุณากรอกหมายเหตุการจัดส่งสินค้าหรือใบแจ้งหนี้การขายยังไม่ได้ดำเนินการต่อไป
+Please enter Employee Number,กรุณากรอกจำนวนพนักงาน
 Please enter Expense Account,กรุณากรอกบัญชีค่าใช้จ่าย
 Please enter Expense/Adjustment Account,กรุณากรอกบัญชีค่าใช้จ่าย / ปรับ
 Please enter Purchase Receipt No to proceed,กรุณากรอกใบเสร็จรับเงินยังไม่ได้ดำเนินการต่อไป
+Please enter Reserved Warehouse for item ,กรุณากรอกคลังสินค้าสงวนไว้สำหรับรายการ
 Please enter valid,กรุณากรอกตัวอักษรที่ถูกต้อง
 Please enter valid ,กรุณากรอกตัวอักษรที่ถูกต้อง
 Please install dropbox python module,กรุณาติดตั้ง dropbox หลามโมดูล
 Please make sure that there are no empty columns in the file.,กรุณาตรวจสอบให้แน่ใจว่าไม่มีคอลัมน์ที่ว่างเปล่าในแฟ้ม
 Please mention default value for ',กรุณาระบุค่าเริ่มต้นสำหรับ &#39;
+Please reduce qty.,โปรดลดจำนวน
 Please refresh to get the latest document.,กรุณารีเฟรชที่จะได้รับเอกสารล่าสุด
 Please save the Newsletter before sending.,กรุณาบันทึกชื่อก่อนที่จะส่ง
 Please select Bank Account,เลือกบัญชีธนาคาร
 Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,เลือกดำเนินการต่อถ้าคุณยังต้องการที่จะรวมถึงความสมดุลในปีงบประมาณก่อนหน้านี้ออกไปในปีงบการเงิน
 Please select Date on which you want to run the report,กรุณาเลือกวันที่ที่คุณต้องการเรียกใช้รายงาน
+Please select Naming Neries,กรุณาเลือก Neries การตั้งชื่อ
+Please select Price List,เลือกรายชื่อราคา
 Please select Time Logs.,เลือกบันทึกเวลา
 Please select a,กรุณาเลือก
 Please select a csv file,เลือกไฟล์ CSV
@@ -2051,10 +2073,12 @@
 Please select: ,กรุณาเลือก:
 Please set Dropbox access keys in,กรุณาตั้งค่าคีย์ในการเข้าถึง Dropbox
 Please set Google Drive access keys in,โปรดตั้ง Google คีย์การเข้าถึงไดรฟ์ใน
+Please setup Employee Naming System in Human Resource > HR Settings,กรุณาตั้งค่าระบบการตั้งชื่อของพนักงานในฝ่ายทรัพยากรบุคคล&gt; การตั้งค่าทรัพยากรบุคคล
 Please specify,โปรดระบุ
 Please specify Company,โปรดระบุ บริษัท
 Please specify Company to proceed,โปรดระบุ บริษัท ที่จะดำเนินการ
 Please specify Default Currency in Company Master \			and Global Defaults,โปรดระบุสกุลเงินเริ่มต้นใน บริษัท มาสเตอร์ \ และค่าเริ่มต้นทั่วโลก
+Please specify a,โปรดระบุ
 Please specify a Price List which is valid for Territory,โปรดระบุรายชื่อราคาที่ถูกต้องสำหรับดินแดน
 Please specify a valid,โปรดระบุที่ถูกต้อง
 Please specify a valid 'From Case No.',โปรดระบุที่ถูกต้อง &#39;จากคดีหมายเลข&#39;
@@ -2070,7 +2094,7 @@
 Posts,กระทู้
 Potential Sales Deal,Deal ขายที่มีศักยภาพ
 Potential opportunities for selling.,โอกาสที่มีศักยภาพสำหรับการขาย
-"Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.","พรีซิชั่สำหรับเขต Float (ปริมาณ, ส่วนลด, ฯลฯ ร้อยละ) เพียงสำหรับการแสดงผล ลอยจะยังคงคำนวณถึง 6 ทศนิยม"
+"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","สำหรับเขตข้อมูลที่มีความแม่นยำลอย (ปริมาณ, ฯลฯ ส่วนลดร้อยละ) ลอยจะกลมถึงทศนิยมตามที่ระบุ = 3 เริ่มต้น"
 Preferred Billing Address,ที่อยู่การเรียกเก็บเงินที่ต้องการ
 Preferred Shipping Address,ที่อยู่การจัดส่งสินค้าที่ต้องการ
 Prefix,อุปสรรค
@@ -2081,7 +2105,6 @@
 Previous Work Experience,ประสบการณ์การทำงานก่อนหน้า
 Price,ราคา
 Price List,บัญชีแจ้งราคาสินค้า
-Price List Country,รายชื่อประเทศราคา
 Price List Currency,สกุลเงินรายการราคา
 Price List Currency Conversion Rate,รายชื่อราคาสกุลเงินอัตราการแปลง
 Price List Exchange Rate,ราคาอัตราแลกเปลี่ยนรายชื่อ
@@ -2089,6 +2112,7 @@
 Price List Name,ชื่อรายการราคา
 Price List Rate,อัตราราคาตามรายการ
 Price List Rate (Company Currency),อัตราราคาปกติ (สกุลเงิน บริษัท )
+Price List for Costing,รายชื่อราคาต้นทุน
 Price Lists and Rates,รายการราคาสินค้าและราคา
 Primary,ประถม
 Print Format,พิมพ์รูปแบบ
@@ -2107,6 +2131,7 @@
 Produced Quantity,จำนวนที่ผลิต
 Product Enquiry,สอบถามสินค้า
 Production Order,สั่งซื้อการผลิต
+Production Orders,คำสั่งซื้อการผลิต
 Production Plan Item,สินค้าแผนการผลิต
 Production Plan Items,แผนการผลิตรายการ
 Production Plan Sales Order,แผนสั่งซื้อขาย
@@ -2134,7 +2159,6 @@
 Project wise Stock Tracking,หุ้นติดตามโครงการที่ชาญฉลาด
 Projected Qty,จำนวนที่คาดการณ์ไว้
 Projects,โครงการ
-Prompt email sending to customers and suppliers,อีเมล์พร้อมส่งให้กับลูกค้าและซัพพลายเออร์
 Prompt for Email on Submission of,แจ้งอีเมลในการยื่น
 Properties,สรรพคุณ
 Property,คุณสมบัติ
@@ -2147,7 +2171,6 @@
 Published On,เผยแพร่เมื่อ
 Pull Emails from the Inbox and attach them as Communication records (for known contacts).,ดึงอีเมลจากกล่องขาเข้าและแนบพวกเขาเป็นบันทึกการสื่อสาร (สำหรับรายชื่อที่รู้จักกัน)
 Pull Payment Entries,ดึงคอมเมนต์การชำระเงิน
-Pull items from Sales Order mentioned in the above table.,ดึงรายการจากคำสั่งขายที่กล่าวถึงในตารางข้างต้น
 Pull sales orders (pending to deliver) based on the above criteria,ดึงยอดขาย (รอการส่งมอบ) คำสั่งตามเกณฑ์ดังกล่าวข้างต้น
 Purchase,ซื้อ
 Purchase Analytics,Analytics ซื้อ
@@ -2212,6 +2235,7 @@
 Quantity already manufactured,จำนวนผลิตแล้ว
 Quantity and Rate,จำนวนและอัตรา
 Quantity and Warehouse,ปริมาณและคลังสินค้า
+Quantity cannot be a fraction.,จำนวนไม่สามารถเป็นเศษส่วน
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,ปริมาณของรายการที่ได้รับหลังจากการผลิต / repacking จากปริมาณที่กำหนดของวัตถุดิบ
 Quantity should be equal to Manufacturing Quantity. ,จำนวนควรจะเท่ากับจำนวนการผลิต
 Quarter,หนึ่งในสี่
@@ -2229,13 +2253,12 @@
 Quotation Lost Reason,ใบเสนอราคา Lost เหตุผล
 Quotation Message,ข้อความใบเสนอราคา
 Quotation Sent,ใบเสนอราคาส่ง
+Quotation Series,ชุดใบเสนอราคา
 Quotation To,ใบเสนอราคาเพื่อ
 Quotation Trend,เทรนด์ใบเสนอราคา
 Quotations received from Suppliers.,ใบเสนอราคาที่ได้รับจากผู้จัดจำหน่าย
 Quotes to Leads or Customers.,เพื่อนำไปสู่​​คำพูดหรือลูกค้า
-Raise Material Request,ยกคำขอวัสดุ
 Raise Material Request when stock reaches re-order level,ยกคำขอวัสดุเมื่อหุ้นถึงระดับใหม่สั่ง
-Raise Production Order,ยกสั่งซื้อการผลิต
 Raised By,โดยยก
 Raised By (Email),โดยยก (อีเมล์)
 Random,สุ่ม
@@ -2280,6 +2303,7 @@
 Receivables / Payables,ลูกหนี้ / เจ้าหนี้
 Receivables Group,กลุ่มลูกหนี้
 Received Date,วันที่ได้รับ
+Received Items To Be Billed,รายการที่ได้รับจะถูกเรียกเก็บเงิน
 Received Qty,จำนวนที่ได้รับ
 Received and Accepted,และได้รับการยอมรับ
 Receiver List,รายชื่อผู้รับ
@@ -2293,6 +2317,8 @@
 Recurring Id,รหัสที่เกิดขึ้น
 Recurring Invoice,ใบแจ้งหนี้ที่เกิดขึ้นประจำ
 Recurring Type,ประเภทที่เกิดขึ้น
+Reduce Deduction for Leave Without Pay (LWP),ลดการหักออกโดยไม่จ่าย (LWP)
+Reduce Earning for Leave Without Pay (LWP),ลดรายได้สำหรับการออกโดยไม่จ่าย (LWP)
 Ref Code,รหัส Ref
 Ref Date is Mandatory if Ref Number is specified,วันที่มีผลบังคับใช้ Ref หาก Ref จำนวนที่ระบุไว้
 Ref DocType,DocType Ref
@@ -2302,6 +2328,8 @@
 Ref Type,ประเภท Ref
 Reference,การอ้างอิง
 Reference Date,วันที่อ้างอิง
+Reference DocName,DocName อ้างอิง
+Reference DocType,DocType อ้างอิง
 Reference Name,ชื่ออ้างอิง
 Reference Number,เลขที่อ้างอิง
 Reference Type,ชนิดการอ้างอิง
@@ -2322,10 +2350,12 @@
 Remove Bookmark,ลบบุ๊คมาร์ค
 Rename Log,เปลี่ยนชื่อเข้าสู่ระบบ
 Rename Tool,เปลี่ยนชื่อเครื่องมือ
-Rename multiple items in one go,เปลี่ยนชื่อหลายรายการในหนึ่งไป
 Rename...,เปลี่ยนชื่อ ...
 Rented,เช่า
+Repeat On,ทำซ้ำ
+Repeat Till,ทำซ้ำจน
 Repeat on Day of Month,ทำซ้ำในวันเดือน
+Repeat this Event,ทำซ้ำเหตุการณ์นี้
 Replace,แทนที่
 Replace Item / BOM in all BOMs,แทนที่รายการ / BOM ใน BOMs ทั้งหมด
 "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM",แทนที่ BOM โดยเฉพาะใน BOMs อื่น ๆ ทั้งหมดที่ถูกนำมาใช้ มันจะเข้ามาแทนที่การเชื่อมโยง BOM เก่าปรับปรุงค่าใช้จ่ายและให้ชีวิตใหม่ &quot;ระเบิดรายการ BOM&quot; ตารางเป็นต่อใหม่ BOM
@@ -2358,13 +2388,14 @@
 Reseller,ผู้ค้าปลีก
 Reserved Quantity,จำนวนสงวน
 Reserved Warehouse,คลังสินค้าสงวน
+Reserved Warehouse in Sales Order / Finished Goods Warehouse,คลังสินค้าสำรองในการขายการสั่งซื้อ / โกดังสินค้าสำเร็จรูป
+Reserved Warehouse is missing in Sales Order,สงวนคลังสินค้าขาดหายไปในการขายสินค้า
 Resignation Letter Date,วันที่ใบลาออก
 Resolution,ความละเอียด
 Resolution Date,วันที่ความละเอียด
 Resolution Details,รายละเอียดความละเอียด
 Resolved By,แก้ไขได้โดยการ
 Restrict IP,จำกัด IP
-Restrict submission rights based on amount,การ จำกัด สิทธิยื่นตามจำนวนเงินที่
 Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),จำกัด ผู้ใช้จากที่อยู่ IP นี้เท่านั้น ที่อยู่ IP หลายสามารถเพิ่มโดยการแยกด้วยเครื่องหมายจุลภาค ยังยอมรับที่อยู่ IP บางส่วนเช่น (111.111.111)
 Restricting By User,จำกัด ของผู้ใช้
 Retail,ค้าปลีก
@@ -2423,6 +2454,7 @@
 Salary Structure Deduction,หักโครงสร้างเงินเดือน
 Salary Structure Earning,โครงสร้างเงินเดือนรายได้
 Salary Structure Earnings,กำไรโครงสร้างเงินเดือน
+Salary breakup based on Earning and Deduction.,การล่มสลายเงินเดือนขึ้นอยู่กับกำไรและหัก
 Salary components.,ส่วนประกอบเงินเดือน
 Sales,ขาย
 Sales Analytics,Analytics ขาย
@@ -2460,7 +2492,6 @@
 Sales Person Target Variance (Item Group-Wise),ยอดขายของกลุ่มเป้าหมายคน (กลุ่มสินค้า-ฉลาด)
 Sales Person Targets,ขายเป้าหมายคน
 Sales Person-wise Transaction Summary,การขายอย่างย่อรายการคนฉลาด
-Sales Rate,อัตราการขาย
 Sales Register,ขายสมัครสมาชิก
 Sales Return,ขายกลับ
 Sales Taxes and Charges,ภาษีการขายและค่าใช้จ่าย
@@ -2484,7 +2515,6 @@
 Scheduled,กำหนด
 Scheduled Confirmation Date,วันที่ยืนยันกำหนด
 Scheduled Date,วันที่กำหนด
-Scheduler Error Log,เข้าสู่ระบบข้อผิดพลาดตัวจัดตารางเวลา
 Scheduler Log,เข้าสู่ระบบการจัดตารางเวลา
 School/University,โรงเรียน / มหาวิทยาลัย
 Score (0-5),คะแนน (0-5)
@@ -2516,6 +2546,7 @@
 Select DocType,เลือก DocType
 Select Document Type,เลือกประเภทของเอกสาร
 Select Document Type or Role to start.,เลือกประเภทของเอกสารหรือบทบาทที่จะเริ่มต้น
+Select Items,เลือกรายการ
 Select PR,PR เลือก
 Select Print Format,เลือกรูปแบบพิมพ์
 Select Print Heading,เลือกพิมพ์หัวเรื่อง
@@ -2562,8 +2593,8 @@
 Send SMS,ส่ง SMS
 Send To,ส่งให้
 Send To Type,ส่งถึงพิมพ์
+Send an email reminder in the morning,ส่งอีเมลเตือนในตอนเช้า
 Send automatic emails to Contacts on Submitting transactions.,ส่งอีเมลโดยอัตโนมัติไปยังรายชื่อติดต่อบนส่งธุรกรรม
-"Send bulk SMS to leads, customers, contacts",ส่ง SMS เป็นกลุ่มเพื่อนำไปสู่​​ลูกค้าที่ติดต่อ
 Send mass SMS to your contacts,ส่ง SMS มวลการติดต่อของคุณ
 Send regular summary reports via Email.,ส่งรายงานสรุปปกติผ่านทางอีเมล์
 Send to this list,ส่งมาที่รายการนี​​้
@@ -2580,7 +2611,6 @@
 Serial No Status,สถานะหมายเลขเครื่อง
 Serial No Warranty Expiry,อนุกรมหมดอายุไม่มีการรับประกัน
 Serialized Item: ',รายการต่อเนื่อง: &#39;
-Series,ชุด
 Series List for this Transaction,รายชื่อชุดสำหรับการทำธุรกรรมนี้
 Server,เซิร์ฟเวอร์
 Service Address,ที่อยู่บริการ
@@ -2590,19 +2620,13 @@
 Session Expiry,หมดอายุเซสชั่น
 Session Expiry in Hours e.g. 06:00,หมดอายุในเซสชั่นชั่วโมงเช่น 06:00
 Set Banner from Image,ตั้งป้ายโฆษณาจากภาพ
-Set From Image,ตั้งเริ่มต้น
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,กำหนดงบประมาณกลุ่มฉลาดรายการในมณฑลนี้ คุณยังสามารถรวมฤดูกาลโดยการตั้งค่าการกระจาย
 Set Login and Password if authentication is required.,ตั้งเข้าสู่ระบบและรหัสผ่านหากตร​​วจสอบจะต้อง
 Set New Password,ตั้งค่ารหัสผ่านใหม่
 Set Value,ตั้งค่า
 "Set a new password and ""Save""",ตั้งรหัสผ่านใหม่และ &quot;บันทึก&quot;
-Set default values for entry,ตั้งค่าเริ่มต้นสำหรับรายการ
-Set default values for users (also used for permissions).,ตั้งค่าเริ่มต้นสำหรับผู้ใช้ (ยังใช้สำหรับสิทธิ์)
-Set multiple numbering series for transactions,ตั้งชุดเลขหลายสำหรับการทำธุรกรรม
-Set permissions on transactions / masters,กำหนดสิทธิ์ในการทำธุรกรรม / โท
 Set prefix for numbering series on your transactions,กำหนดคำนำหน้าสำหรับหมายเลขชุดทำธุรกรรมของคุณ
 Set targets Item Group-wise for this Sales Person.,ตั้งเป้ากลุ่มสินค้าที่ชาญฉลาดสำหรับการนี​​้คนขาย
-Set workflow rules.,ตั้งกฎเวิร์กโฟลว์
 "Set your background color, font and image (tiled)",ตั้งค่าพื้นหลังสีแบบอักษรของคุณและภาพ (กระเบื้อง)
 "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.",ตั้งค่าของคุณอีเมล SMTP ขาออกที่นี่ ระบบทั้งหมดที่สร้างการแจ้งเตือนอีเมลจะไปจากที่เซิร์ฟเวอร์อีเมลนี้ หากคุณไม่แน่ใจว่าเว้นว่างไว้เพื่อใช้เซิร์ฟเวอร์ ERPNext (อีเมลจะยังคงถูกส่งจาก id อีเมลของคุณ) หรือติดต่อผู้ให้บริการอีเมลของคุณ
 Setting Account Type helps in selecting this Account in transactions.,ประเภทบัญชีการตั้งค่าช่วยในการเลือกบัญชีนี้ในการทำธุรกรรม
@@ -2621,7 +2645,6 @@
 Setup of Shopping Cart.,การติดตั้งของรถเข็นช้อปปิ้ง
 Setup of fonts and background.,การติดตั้งแบบอักษรและพื้นหลัง
 "Setup of top navigation bar, footer and logo.",การติดตั้งจากด้านบนแถบนำทางท้ายและโลโก้
-Setup outgoing SMS via your bulk SMS provider,ติดตั้ง SMS ขาออกผ่านทางผู้ให้ SMS ของคุณเป็นกลุ่ม
 Setup to pull emails from support email account,ติดตั้งเพื่อดึงอีเมลจากบัญชีอีเมลสนับสนุน
 Share,หุ้น
 Share With,ร่วมกับ
@@ -2650,7 +2673,6 @@
 Short biography for website and other publications.,ชีวประวัติสั้นสำหรับเว็บไซต์และสิ่งพิมพ์อื่น ๆ
 Shortcut,ทางลัด
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",แสดง &quot;ในสต็อก&quot; หรือ &quot;ไม่อยู่ในสต็อก&quot; บนพื้นฐานของหุ้นที่มีอยู่ในคลังสินค้านี้
-Show / Hide Modules,แสดง / ซ่อนโมดูล
 Show Details,แสดงรายละเอียด
 Show In Website,แสดงในเว็บไซต์
 Show Print First,แสดงพิมพ์ครั้งแรก
@@ -2658,11 +2680,9 @@
 Show in Website,แสดงในเว็บไซต์
 Show rows with zero values,แสดงแถวที่มีค่าศูนย์
 Show this slideshow at the top of the page,แสดงภาพสไลด์นี้ที่ด้านบนของหน้า
-"Show, hide modules",แสดงซ่อนโมดูล
 Showing only for,แสดงเฉพาะสำหรับ
 Signature,ลายเซ็น
 Signature to be appended at the end of every email,ลายเซ็นที่จะต่อท้ายของอีเมลทุก
-Simplify entry forms by disabling features,ลดความซับซ้อนของรูปแบบรายการโดยปิดใช้งานคุณลักษณะ
 Single,เดียว
 Single Post (article).,คำตอบเดียว (บทความ)
 Single unit of an Item.,หน่วยเดียวของรายการ
@@ -2676,6 +2696,7 @@
 Sorry we were unable to find what you were looking for.,ขออภัยเราไม่สามารถที่จะหาสิ่งที่คุณกำลังมองหา
 Sorry you are not permitted to view this page.,ขออภัยคุณไม่ได้รับอนุญาตให้ดูหน้านี้
 Sorry! We can only allow upto 100 rows for Stock Reconciliation.,ขออภัย! เราสามารถให้ไม่เกิน 100 แถวสำหรับการกระทบยอดสต็อก
+"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.",ขออภัย! คุณไม่สามารถเปลี่ยนสกุลเงินเริ่มต้นของ บริษัท เนื่องจากมีการทำธุรกรรมที่มีอยู่กับมัน คุณจะต้องยกเลิกการทำธุรกรรมเหล่านั้นถ้าคุณต้องการที่จะเปลี่ยนสกุลเงินเริ่มต้น
 Sorry. Companies cannot be merged,ขอโทษ บริษัท ไม่สามารถรวม
 Sorry. Serial Nos. cannot be merged,ขอโทษ อนุกรมเลขที่ไม่สามารถรวม
 Sort By,เรียงลำดับตาม
@@ -2759,6 +2780,7 @@
 Suggestions,ข้อเสนอแนะ
 Sunday,วันอาทิตย์
 Supplier,ผู้จัดจำหน่าย
+Supplier (Payable) Account,ผู้จัดจำหน่ายบัญชี (เจ้าหนี้)
 Supplier (vendor) name as entered in supplier master,ผู้จัดจำหน่ายชื่อ (ผู้ขาย) ป้อนเป็นผู้จัดจำหน่ายในต้นแบบ
 Supplier Account Head,หัวหน้าฝ่ายบัญชีของผู้จัดจำหน่าย
 Supplier Address,ที่อยู่ผู้ผลิต
@@ -2792,7 +2814,6 @@
 Symbol,สัญญลักษณ์
 Sync Inbox,กล่องขาเข้าซิงค์
 Sync Support Mails,ซิงค์อีเมลที่สนับสนุน
-Sync backups with remote tools like Dropbox etc.,ซิงค์การสำรองข้อมูลด้วยเครื่องมือที่มีระยะไกลเช่น Dropbox ฯลฯ
 Sync with Dropbox,ซิงค์กับ Dropbox
 Sync with Google Drive,ซิงค์กับ Google ไดรฟ์
 System,ระบบ
@@ -2865,7 +2886,6 @@
 "The ""Web Page"" that is the website home page",&quot;Web Page&quot; นั่นคือหน้าแรกของเว็บไซต์
 The BOM which will be replaced,BOM ซึ่งจะถูกแทนที่
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",รายการที่แสดงถึงแพคเกจ รายการนี​​้จะต้องมี &quot;รายการสินค้า&quot; ขณะที่ &quot;ไม่มี&quot; และ &quot;รายการขาย&quot; เป็น &quot;ใช่&quot;
-The account to which you will pay (have paid) the money to.,บัญชีที่คุณจะจ่าย (ได้จ่ายเงิน) เงินไป
 The date at which current entry is made in system.,วันที่ที่รายการปัจจุบันจะทำในระบบ
 The date at which current entry will get or has actually executed.,วันที่ที่รายการปัจจุบันจะได้รับหรือได้ดำเนินการจริง
 The date on which next invoice will be generated. It is generated on submit.,วันที่ออกใบแจ้งหนี้ต่อไปจะถูกสร้างขึ้น มันถูกสร้างขึ้นบนส่ง
@@ -2927,6 +2947,7 @@
 To Currency,กับสกุลเงิน
 To Date,นัด
 To Discuss,เพื่อหารือเกี่ยวกับ
+To Do,น่าสนใจ
 To Do List,To Do List
 To PR Date,เพื่อประชาสัมพันธ์วันที่
 To Package No.,กับแพคเกจหมายเลข
@@ -2939,6 +2960,7 @@
 "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.",โดยอัตโนมัติสร้างตั๋วการสนับสนุนจากอีเมลที่ได้รับของคุณตั้งค่าการตั้งค่า POP3 ของคุณที่นี่ คุณนึกคิดต้องสร้าง id อีเมลที่แยกต่างหากสำหรับระบบ ERP เพื่อให้อีเมลทั้งหมดจะถูกซิงค์เข้าไปในระบบจาก ID mail ที่ หากคุณไม่แน่ใจว่าโปรดติดต่อผู้ให้บริการอีเมลของคุณ
 "To create an Account Head under a different company, select the company and save customer.",เพื่อสร้างหัวหน้าบัญชีที่แตกต่างกันภายใต้ บริษัท เลือก บริษัท และบันทึกของลูกค้า
 To enable <b>Point of Sale</b> features,<b>ต้องการเปิดใช้งานคุณลักษณะจุดขาย</b>
+To enable more currencies go to Setup > Currency,เมื่อต้องการเปิดใช้สกุลเงินเพิ่มเติมไปที่การตั้งค่า&gt; สกุลเงิน
 "To fetch items again, click on 'Get Items' button \						or update the Quantity manually.",สามารถเรียกรายการอีกครั้งให้คลิกที่ &#39;รับสินค้า&#39; \ ปุ่มหรือปรับปรุงจำนวนตนเอง
 "To format columns, give column labels in the query.",การจัดรูปแบบคอลัมน์ให้ป้ายชื่อคอลัมน์ในแบบสอบถาม
 "To further restrict permissions based on certain values in a document, use the 'Condition' settings.",เพื่อ จำกัด สิทธิ์ตามค่าบางอย่างในเอกสารให้ใช้การตั้งค่า &#39;สภาพ&#39;
@@ -2953,7 +2975,6 @@
 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.,เพื่อติดตามรายการในเอกสารการขายและการซื้อจาก Nos อนุกรมของพวกเขา นี้สามารถใช้ในการติดตามรายละเอียดการรับประกันของผลิตภัณฑ์
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,เพื่อติดตามรายการในเอกสารการขายและการซื้อด้วย Nos ชุด <br> <b>อุตสาหกรรมที่ต้องการ: ฯลฯ สารเคมี</b>
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,เพื่อติดตามรายการโดยใช้บาร์โค้ด คุณจะสามารถป้อนรายการในหมายเหตุจัดส่งสินค้าและขายใบแจ้งหนี้โดยการสแกนบาร์โค้ดของรายการ
-"To update your HTML from attachment, click here",เพื่อปรับปรุง HTM​​L ของคุณจากสิ่งที่แนบมาคลิกที่นี่
 ToDo,สิ่งที่ต้องทำ
 Tools,เครื่องมือ
 Top,ด้านบน
@@ -2992,10 +3013,11 @@
 Total Tax (Company Currency),ภาษีรวม (สกุลเงิน บริษัท )
 Total Taxes and Charges,ภาษีและค่าบริการรวม
 Total Taxes and Charges (Company Currency),รวมภาษีและค่าบริการ (สกุลเงิน บริษัท )
+Total Working Days In The Month,วันทําการรวมในเดือน
 Total amount of invoices received from suppliers during the digest period,รวมเป็นจำนวนเงินของใบแจ้งหนี้ที่ได้รับจากซัพพลายเออร์ในช่วงระยะเวลาย่อย
 Total amount of invoices sent to the customer during the digest period,รวมเป็นจำนวนเงินของใบแจ้งหนี้ส่งให้กับลูกค้าในช่วงระยะเวลาย่อย
-Total days in month,วันรวมในเดือน
 Total in words,รวมอยู่ในคำพูด
+Total production order qty for item,การผลิตจำนวนรวมการสั่งซื้อสำหรับรายการ
 Totals,ผลรวม
 Track separate Income and Expense for product verticals or divisions.,ติดตามรายได้และค่าใช้จ่ายแยกต่างหากสำหรับแนวดิ่งผลิตภัณฑ์หรือหน่วยงาน
 Track this Delivery Note against any Project,ติดตามการจัดส่งสินค้าหมายเหตุนี้กับโครงการใด ๆ
@@ -3025,6 +3047,7 @@
 UOM Conversion Detail,รายละเอียดการแปลง UOM
 UOM Conversion Details,UOM รายละเอียดการแปลง
 UOM Conversion Factor,ปัจจัยการแปลง UOM
+UOM Conversion Factor is mandatory,ปัจจัยการแปลง UOM มีผลบังคับใช้
 UOM Details,รายละเอียด UOM
 UOM Name,ชื่อ UOM
 UOM Replace Utility,ยูทิลิตี้แทนที่ UOM
@@ -3044,6 +3067,7 @@
 Unread Messages,ไม่ได้อ่านข้อความ
 Unscheduled,ไม่ได้หมายกำหนดการ
 Unsubscribed,ยกเลิกการสมัคร
+Upcoming Events for Today,เหตุการณ์จะเกิดขึ้นสำหรับวันนี้
 Update,อัพเดท
 Update Clearance Date,อัพเดทวันที่ Clearance
 Update Field,ปรับปรุงเขต
@@ -3052,7 +3076,6 @@
 Update Series Number,จำนวน Series ปรับปรุง
 Update Stock,อัพเดทสต็อก
 Update Stock should be checked.,สินค้าคงคลังปรับปรุงควรจะตรวจสอบ
-Update This Application,ปรับปรุงงานนี้
 Update Value,ปรับปรุงค่า
 "Update allocated amount in the above table and then click ""Allocate"" button",อัพเดทจำนวนที่จัดสรรในตารางข้างต้นแล้วคลิกปุ่ม &quot;จัดสรร&quot;
 Update bank payment dates with journals.,การชำระเงินของธนาคารปรับปรุงวันที่มีวารสาร
@@ -3065,6 +3088,7 @@
 Upload HTML,อัพโหลด HTML
 Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,อัพโหลดไฟล์ CSV มีสองคอลัมน์:. ชื่อเก่าและชื่อใหม่ แม็กซ์ 500 แถว
 Upload a file,อัปโหลดไฟล์
+Upload and Import,อัปโหลดและนำเข้า
 Upload attendance from a .csv file,อัพโหลดการดูแลรักษาจาก. csv ที่
 Upload stock balance via csv.,อัพโหลดสมดุลหุ้นผ่าน CSV
 Uploading...,อัพโหลด ...
@@ -3078,7 +3102,6 @@
 User ID,รหัสผู้ใช้
 User Image,รูปภาพของผู้ใช้
 User Name,ชื่อผู้ใช้
-User Properties,คุณสมบัติของผู้ใช้
 User Remark,หมายเหตุผู้ใช้
 User Remark will be added to Auto Remark,หมายเหตุผู้ใช้จะถูกเพิ่มเข้าไปในหมายเหตุอัตโนมัติ
 User Tags,แท็กผู้ใช้
@@ -3088,7 +3111,6 @@
 User not allowed to delete.,ผู้ใช้ไม่ได้รับอนุญาตที่จะลบ
 UserRole,UserRole
 Username,ชื่อผู้ใช้
-Users,ผู้ใช้
 Users who can approve a specific employee's leave applications,ผู้ใช้ที่สามารถอนุมัติการใช้งานออกเป็นพนักงานที่เฉพาะเจาะจง
 Users with this role are allowed to do / modify accounting entry before frozen date,ผู้ใช้ที่มีบทบาทนี้ได้รับอนุญาตให้ทำ / ปรับเปลี่ยนรายการบัญชีก่อนวันที่แช่แข็ง
 Utilities,ยูทิลิตี้
@@ -3116,6 +3138,7 @@
 Voucher No,บัตรกำนัลไม่มี
 Voucher Type,ประเภทบัตรกำนัล
 Voucher Type and Date,ประเภทคูปองและวันที่
+WIP Warehouse required before Submit,WIP คลังสินค้าต้องก่อนส่ง
 Waiting for Customer,รอลูกค้า
 Walk In,Walk In
 Warehouse,คลังสินค้า
@@ -3149,6 +3172,7 @@
 Website Settings,การตั้งค่าเว็บไซต์
 Website Slideshow,สไลด์โชว์เว็บไซต์
 Website Slideshow Item,รายการสไลด์โชว์เว็บไซต์
+Website User,ผู้ใช้งานเว็บไซต์
 Website Warehouse,คลังสินค้าเว็บไซต์
 Wednesday,วันพุธ
 Weekly,รายสัปดาห์
@@ -3214,21 +3238,22 @@
 Yes,ใช่
 Yesterday,เมื่อวาน
 You are not authorized to do/modify back dated entries before ,คุณยังไม่ได้รับอนุญาตให้ทำ / แก้ไขรายการที่ลงวันที่กลับก่อน
-You can create more earning and deduction type from Setup --> HR,คุณสามารถสร้างรายได้มากขึ้นและประเภทการหักจากการติดตั้ง -&gt; HR
 You can enter any date manually,คุณสามารถป้อนวันที่ใด ๆ ด้วยตนเอง
 You can enter the minimum quantity of this item to be ordered.,คุณสามารถป้อนปริมาณขั้นต่ำของรายการนี​​้จะได้รับคำสั่ง
 You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,คุณไม่สามารถป้อนหมายเหตุการจัดส่งสินค้าทั้งไม่มีและการขายเลขที่ใบแจ้งหนี้ \ * กรุณาใส่คนใดคนหนึ่ง
 You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,คุณสามารถตั้งค่า &#39;สมบัติ&#39; ต่างๆเพื่อผู้ใช้สามารถตั้งค่าเริ่มต้นและใช้กฎการอนุญาตขึ้นอยู่กับค่าของคุณสมบัติเหล่านี้ในรูปแบบต่างๆ
 You can start by selecting backup frequency and \					granting access for sync,คุณสามารถเริ่มต้นด้วยการเลือกความถี่และการสำรองข้อมูล \ เข้าถึงการอนุญาตสำหรับการซิงค์
 You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,คุณสามารถใช้ <a href='#Form/Customize Form'>แบบฟอร์มที่กำหนดเอง</a> เพื่อตั้งค่าระดับบนทุ่ง
+You may need to update: ,คุณอาจจำเป็นต้องปรับปรุง:
 Your Customer's TAX registration numbers (if applicable) or any general information,ของลูกค้าของคุณหมายเลขทะเบียนภาษี (ถ้ามี) หรือข้อมูลทั่วไป
 "Your download is being built, this may take a few moments...",การดาวน์โหลดของคุณจะถูกสร้างขึ้นนี้อาจใช้เวลาสักครู่ ...
-Your letter head content in HTML.,เนื้อหาหัวของคุณในรูปแบบ HTML จดหมาย
+Your letter head content,เนื้อหาหัวของคุณตัวอักษร
 Your sales person who will contact the customer in future,คนขายของคุณที่จะติดต่อกับลูกค้าในอนาคต
 Your sales person who will contact the lead in future,คนขายของคุณที่จะติดต่อนำในอนาคต
 Your sales person will get a reminder on this date to contact the customer,คนขายของคุณจะรับการแจ้งเตือนในวันนี้ที่จะติดต่อลูกค้า
 Your sales person will get a reminder on this date to contact the lead,คนขายของคุณจะรับการแจ้งเตือนในวันนี้ที่จะติดต่อนำ
 Your support email id - must be a valid email - this is where your emails will come!,id อีเมลของคุณสนับสนุน - ต้องอีเมลที่ถูกต้อง - นี่คือที่อีเมลของคุณจะมา!
+[Error],[ข้อผิดพลาด]
 [Label]:[Field Type]/[Options]:[Width],[Label] แล: [ฟิลด์ชนิด] / [ตัวเลือก]: [กว้าง]
 add your own CSS (careful!),เพิ่มเอง CSS ของคุณ (careful!)
 adjust,ปรับ
@@ -3430,6 +3455,7 @@
 volume-up,ปริมาณขึ้น
 warning-sign,ป้ายเตือน-
 website page link,การเชื่อมโยงหน้าเว็บไซต์
+which is greater than sales order qty ,ซึ่งมากกว่าจำนวนการสั่งซื้อการขาย
 wrench,ประแจ
 yyyy-mm-dd,YYYY-MM-DD
 zoom-in,ซูมใน
diff --git a/utilities/cleanup_data.py b/utilities/cleanup_data.py
index 3a712ce..fe83ade8 100644
--- a/utilities/cleanup_data.py
+++ b/utilities/cleanup_data.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 #!/usr/bin/python
 
 # This script is for cleaning up of all data from system including 
diff --git a/utilities/demo_docs/Address.csv b/utilities/demo_docs/Address.csv
new file mode 100644
index 0000000..51c34b5
--- /dev/null
+++ b/utilities/demo_docs/Address.csv
@@ -0,0 +1,46 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,
+Table:,Address,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,
+Column Labels,ID,Address Type,Address Title,Address Line1,City/Town,Country,Phone,Customer,Customer Name,Supplier,Supplier Name,Address Line2,Pincode,State,Email Id,Fax,Preferred Billing Address,Preferred Shipping Address,Sales Partner,Lead,Lead Name
+Column Name:,name,address_type,address_title,address_line1,city,country,phone,customer,customer_name,supplier,supplier_name,address_line2,pincode,state,email_id,fax,is_primary_address,is_shipping_address,sales_partner,lead,lead_name
+Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Select,Data,Data,Data,Select,Data,Link,Data,Link,Data,Data,Data,Data,Data,Data,Check,Check,Link,Link,Data
+Info:,,"One of: Billing, Shipping, Office, Personal, Plant, Postal, Shop, Subsidiary, Warehouse, Other",,,,Valid Country,,Valid Customer,,Valid Supplier,,,,,,,0 or 1,0 or 1,Valid Sales Partner,Valid Lead,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,
+,,Office,,254 Theotokopoulou Str.,Larnaka,Cyprus,23566775757,Adaptas,Adaptas,,,,,,,,,,,,
+,,Office,,R Patrão Caramelho 116,Fajozes,Portugal,23566775757,Asian Fusion,Asian Fusion,,,,,,,,,,,,
+,,Office,,30 Fulford Road,PENTRE-PIOD,United Kingdom,23566775757,Asian Junction,Asian Junction,,,,,,,,,,,,
+,,Office,,Schoenebergerstrasse 13,Raschau,Germany,23566775757,Big D Supermarkets,Big D Supermarkets,,,,,,,,,,,,
+,,Office,,Hoheluftchaussee 43,Kieritzsch,Germany,23566775757,Buttrey Food & Drug,Buttrey Food & Drug,,,,,,,,,,,,
+,,Office,,R Cimo Vila 6,Rebordosa,Portugal,23566775757,Chi-Chis,Chi-Chis,,,,,,,,,,,,
+,,Office,,R 5 Outubro 9,Quinta Nova São Domingos,Portugal,23566775757,Choices,Choices,,,,,,,,,,,,
+,,Office,,Avenida Macambira 953,Goiânia,Brazil,23566775757,Consumers and Consumers Express,Consumers and Consumers Express,,,,,,,,,,,,
+,,Office,,2342 Goyeau Ave,Windsor,Canada,23566775757,Crafts Canada,Crafts Canada,,,,,,,,,,,,
+,,Office,,Laukaantie 82,KOKKOLA,Finland,23566775757,Endicott Shoes,Endicott Shoes,,,,,,,,,,,,
+,,Office,,9 Brown Street,PETERSHAM,Australia,23566775757,Fayva,Fayva,,,,,,,,,,,,
+,,Office,,Via Donnalbina 41,Cala Gonone,Italy,23566775757,Intelacard,Intelacard,,,,,,,,,,,,
+,,Office,,Liljerum Grenadjärtorpet 69,TOMTEBODA,Sweden,23566775757,Landskip Yard Care,Landskip Yard Care,,,,,,,,,,,,
+,,Office,,72 Bishopgate Street,SEAHAM,United Kingdom,23566775757,Life Plan Counselling,Life Plan Counselling,,,,,,,,,,,,
+,,Office,,Σκαφίδια 105,ΠΑΡΕΚΚΛΗΣΙΑ,Cyprus,23566775757,Mr Fables,Mr Fables,,,,,,,,,,,,
+,,Office,,Mellemvej 7,Aabybro,Denmark,23566775757,Nelson Brothers,Nelson Brothers,,,,,,,,,,,,
+,,Office,,Plouggårdsvej 98,Karby,Denmark,23566775757,Netobill,Netobill,,,,,,,,,,,,
+,,Office,,176 Michalakopoulou Street,Agio Georgoudi,Cyprus,23566775757,,,Helios Air,Helios Air,,,,,,,,,,
+,,Office,,Fibichova 1102,Kokorín,Czech Republic,23566775757,,,Ks Merchandise,Ks Merchandise,,,,,,,,,,
+,,Office,,Zahradní 888,Cechtín,Czech Republic,23566775757,,,HomeBase,HomeBase,,,,,,,,,,
+,,Office,,ul. Grochowska 94,Warszawa,Poland,23566775757,,,Scott Ties,Scott Ties,,,,,,,,,,
+,,Office,,Norra Esplanaden 87,HELSINKI,Finland,23566775757,,,Reliable Investments,Reliable Investments,,,,,,,,,,
+,,Office,,2038 Fallon Drive,Dresden,Canada,23566775757,,,Nan Duskin,Nan Duskin,,,,,,,,,,
+,,Office,,77 cours Franklin Roosevelt,MARSEILLE,France,23566775757,,,Rainbow Records,Rainbow Records,,,,,,,,,,
+,,Office,,ul. Tuwima Juliana 85,Łódź,Poland,23566775757,,,New World Realty,New World Realty,,,,,,,,,,
+,,Office,,Gl. Sygehusvej 41,Narsaq,Greenland,23566775757,,,Asiatic Solutions,Asiatic Solutions,,,,,,,,,,
+,,Office,,Gosposka ulica 50,Nova Gorica,Slovenia,23566775757,,,Eagle Hardware,Eagle Hardware,,,,,,,,,,
\ No newline at end of file
diff --git a/utilities/demo_docs/BOM.csv b/utilities/demo_docs/BOM.csv
new file mode 100644
index 0000000..446fc2e
--- /dev/null
+++ b/utilities/demo_docs/BOM.csv
@@ -0,0 +1,47 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Table:,BOM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+DocType:,BOM,,,,,,,,,,,,,,,,-,BOM Operation,bom_operations,,,,,,-,BOM Item,bom_materials,,,,,,,,,-,BOM Explosion Item,flat_bom_details,,,,,,
+Column Labels:,ID,Last Updated On,Item,Quantity,Is Active,Is Default,With Operations,Rate Of Materials Based On,Price List,Total Cost,Total Raw Material Cost,Total Operating Cost,Item UOM,Project Name,Item Desription,Amended From,-,ID,Operation No,Operation Description,Workstation,Hour Rate,Operation Time (mins),Operating Cost,-,ID,Item Code,Qty,Stock UOM,Operation No,BOM No,Rate,Amount,Scrap %,Item Description,-,ID,Item Code,Description,Qty,Rate,Amount,Stock UOM,Qty Consumed Per Unit
+Column Name:,name,modified,item,quantity,is_active,is_default,with_operations,rm_cost_as_per,buying_price_list,total_cost,raw_material_cost,operating_cost,uom,project_name,description,amended_from,-,name,operation_no,opn_description,workstation,hour_rate,time_in_mins,operating_cost,-,name,item_code,qty,stock_uom,operation_no,bom_no,rate,amount,scrap,description,-,name,item_code,description,qty,rate,amount,stock_uom,qty_consumed_per_unit
+Mandatory:,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,-,Yes,Yes,Yes,No,No,No,No,-,Yes,Yes,Yes,Yes,No,No,No,No,No,No,-,Yes,No,No,No,No,No,No,No
+Type:,Data (text),Data,Link,Float,Check,Check,Check,Select,Link,Float,Float,Float,Select,Link,Small Text,Link,-,Data,Data,Text,Link,Float,Float,Float,-,Data,Link,Float,Link,Select,Link,Float,Float,Float,Text,-,Data,Link,Text,Float,Float,Float,Link,Float
+Info:,,Don't change!,Valid Item,,0 or 1,0 or 1,0 or 1,"One of: Valuation Rate, Last Purchase Rate, Price List",Valid Price List,,,,Valid UOM,Valid Project,,Valid BOM,-,Leave blank for new records,,,Valid Workstation,,,,-,Leave blank for new records,Valid Item,,Valid UOM,,Valid BOM,,,,,-,Leave blank for new records,Valid Item,,,,,Valid UOM,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,BOM/Bearing Assembly/001,"""2013-08-07 16:58:00""",Bearing Assembly,1.0,1,1,,Price List,Standard Buying,130.0,130.0,0.0,Nos,,Bearing Assembly,,,,,,,,,,,183,Base Bearing Plate,1.0,Nos,,,15.0,15.0,,1/4 in. x 6 in. x 6 in. Mild Steel Plate,,FBD/000039,Bearing Pipe,1.5 in. Diameter x 36 in. Mild Steel Tubing,1.0,15.0,15.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,184,Bearing Block,1.0,Nos,,,10.0,10.0,,"CAST IRON, MCMASTER PART NO. 3710T13",,FBD/000040,Bearing Collar,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,2.0,20.0,40.0,Nos,2.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,185,Bearing Collar,2.0,Nos,,,20.0,40.0,,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,,FBD/000041,Bearing Block,"CAST IRON, MCMASTER PART NO. 3710T13",1.0,10.0,10.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,186,Bearing Pipe,1.0,Nos,,,15.0,15.0,,1.5 in. Diameter x 36 in. Mild Steel Tubing,,FBD/000042,Upper Bearing Plate,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,1.0,50.0,50.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,187,Upper Bearing Plate,1.0,Nos,,,50.0,50.0,,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,,FBD/000043,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1.0,15.0,15.0,Nos,1.0
+,BOM/Wind Mill A Series/001,"""2013-08-07 16:47:02""",Wind Mill A Series,1.0,1,1,,Price List,Standard Buying,223.0,223.0,0.0,Nos,,Wind Mill A Series for Home Use 9ft,,,,,,,,,,,163,Base Bearing Plate,1.0,Nos,,,15.0,15.0,,1/4 in. x 6 in. x 6 in. Mild Steel Plate,,FBD/000008,Shaft,1.25 in. Diameter x 6 ft. Mild Steel Tubing,1.0,30.0,30.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,164,Base Plate,1.0,Nos,,,20.0,20.0,,3/4 in. x 2 ft. x 4 ft. Pine Plywood,,FBD/000009,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1.0,15.0,15.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,165,Bearing Block,1.0,Nos,,,10.0,10.0,,"CAST IRON, MCMASTER PART NO. 3710T13",,FBD/000010,External Disc,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,1.0,45.0,45.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,166,Bearing Pipe,1.0,Nos,,,15.0,15.0,,1.5 in. Diameter x 36 in. Mild Steel Tubing,,FBD/000011,Bearing Pipe,1.5 in. Diameter x 36 in. Mild Steel Tubing,1.0,15.0,15.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,167,External Disc,1.0,Nos,,,45.0,45.0,,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,,FBD/000012,Wing Sheet,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,4.0,22.0,88.0,Nos,4.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,168,Shaft,1.0,Nos,,,30.0,30.0,,1.25 in. Diameter x 6 ft. Mild Steel Tubing,,FBD/000013,Base Plate,3/4 in. x 2 ft. x 4 ft. Pine Plywood,1.0,20.0,20.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,169,Wing Sheet,4.0,Nos,,,22.0,88.0,,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,,FBD/000014,Bearing Block,"CAST IRON, MCMASTER PART NO. 3710T13",1.0,10.0,10.0,Nos,1.0
+,BOM/Wind MIll C Series/001,"""2013-08-07 16:58:51""",Wind MIll C Series,1.0,1,1,,Price List,Standard Buying,314.0,314.0,0.0,Nos,,Wind Mill C Series for Commercial Use 18ft,,,,,,,,,,,176,Base Plate,2.0,Nos,,,20.0,40.0,,3/4 in. x 2 ft. x 4 ft. Pine Plywood,,FBD/000061,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1.0,15.0,15.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,178,Internal Disc,1.0,Nos,,,33.0,33.0,,For Bearing Collar,,FBD/000062,Bearing Collar,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,2.0,20.0,40.0,Nos,2.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,179,External Disc,1.0,Nos,,,45.0,45.0,,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,,FBD/000063,Base Plate,3/4 in. x 2 ft. x 4 ft. Pine Plywood,2.0,20.0,40.0,Nos,2.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,188,Bearing Assembly,1.0,Nos,,BOM/Bearing Assembly/001,130.0,130.0,,Bearing Assembly,,FBD/000064,Bearing Pipe,1.5 in. Diameter x 36 in. Mild Steel Tubing,1.0,15.0,15.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,189,Wing Sheet,3.0,Nos,,,22.0,66.0,,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,,FBD/000065,Internal Disc,For Bearing Collar,1.0,33.0,33.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,FBD/000066,Upper Bearing Plate,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,1.0,50.0,50.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,FBD/000067,Wing Sheet,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,3.0,22.0,66.0,Nos,3.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,FBD/000068,External Disc,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,1.0,45.0,45.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,FBD/000069,Bearing Block,"CAST IRON, MCMASTER PART NO. 3710T13",1.0,10.0,10.0,Nos,1.0
+,BOM/Wind Turbine/001,"""2013-08-07 16:51:56""",Wind Turbine,1.0,1,1,,Price List,Standard Buying,139.0,139.0,0.0,Nos,,Small Wind Turbine for Home Use,,,,,,,,,,,170,Base Bearing Plate,1.0,Nos,,,15.0,15.0,,1/4 in. x 6 in. x 6 in. Mild Steel Plate,,FBD/000021,Shaft,1.25 in. Diameter x 6 ft. Mild Steel Tubing,1.0,30.0,30.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,171,Base Plate,1.0,Nos,,,20.0,20.0,,3/4 in. x 2 ft. x 4 ft. Pine Plywood,,FBD/000022,Bearing Collar,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,1.0,20.0,20.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,172,Bearing Collar,1.0,Nos,,,20.0,20.0,,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,,FBD/000023,Base Plate,3/4 in. x 2 ft. x 4 ft. Pine Plywood,1.0,20.0,20.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,173,Blade Rib,1.0,Nos,,,10.0,10.0,,1/2 in. x 2 ft. x 4 ft. Pine Plywood,,FBD/000024,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1.0,15.0,15.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,174,Shaft,1.0,Nos,,,30.0,30.0,,1.25 in. Diameter x 6 ft. Mild Steel Tubing,,FBD/000025,Blade Rib,1/2 in. x 2 ft. x 4 ft. Pine Plywood,1.0,10.0,10.0,Nos,1.0
+,,,,,,,,,,,,,,,,,,,,,,,,,,175,Wing Sheet,2.0,Nos,,,22.0,44.0,,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,,FBD/000026,Wing Sheet,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,2.0,22.0,44.0,Nos,2.0
\ No newline at end of file
diff --git a/utilities/demo_docs/Contact.csv b/utilities/demo_docs/Contact.csv
new file mode 100644
index 0000000..be3dddc
--- /dev/null
+++ b/utilities/demo_docs/Contact.csv
@@ -0,0 +1,46 @@
+Data Import Template,,,,,,,,,,,,,,,
+Table:,Contact,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,
+Column Labels,First Name,Email Id,Phone,Last Name,Status,Customer,Customer Name,Supplier,Supplier Name,Sales Partner,Is Primary Contact,Mobile No,Department,Designation,Unsubscribed
+Column Name:,first_name,email_id,phone,last_name,status,customer,customer_name,supplier,supplier_name,sales_partner,is_primary_contact,mobile_no,department,designation,unsubscribed
+Mandatory:,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data,Data,Data,Data,Select,Link,Data,Link,Data,Link,Check,Data,Data,Data,Check
+Info:,,,,,"One of: Open, Replied",Valid Customer,,Valid Supplier,,Valid Sales Partner,0 or 1,,,,0 or 1
+Start entering data below this line,,,,,,,,,,,,,,,
+,Jan,JanVaclavik@dayrep.com,456675757,Václavík,,Adaptas,Adaptas,,,,,,,,
+,Chidumaga,ChidumagaTobeolisa@armyspy.com,456675757,Tobeolisa,,Asian Fusion,Asian Fusion,,,,,,,,
+,Jana,JanaKubanova@superrito.com,456675757,Kubáňová,,Asian Junction,Asian Junction,,,,,,,,
+,紹萱,XuChaoXuan@gustr.com,456675757,于,,Big D Supermarkets,Big D Supermarkets,,,,,,,,
+,Özlem,OzlemVerwijmeren@dayrep.com,456675757,Verwijmeren,,Buttrey Food & Drug,Buttrey Food & Drug,,,,,,,,
+,Hans,HansRasmussen@superrito.com,456675757,Rasmussen,,Chi-Chis,Chi-Chis,,,,,,,,
+,Satomi,SatomiShigeki@superrito.com,456675757,Shigeki,,Choices,Choices,,,,,,,,
+,Simon,SimonVJessen@superrito.com,456675757,Jessen,,Consumers and Consumers Express,Consumers and Consumers Express,,,,,,,,
+,نگارین,NeguaranShahsaah@teleworm.us,456675757,شاه سیاه,,Crafts Canada,Crafts Canada,,,,,,,,
+,Lom-Ali,Lom-AliBataev@dayrep.com,456675757,Bataev,,Endicott Shoes,Endicott Shoes,,,,,,,,
+,Tiên,VanNgocTien@einrot.com,456675757,Văn,,Fayva,Fayva,,,,,,,,
+,Quimey,QuimeyOsorioRuelas@gustr.com,456675757,Osorio,,Intelacard,Intelacard,,,,,,,,
+,Edgarda,EdgardaSalcedoRaya@teleworm.us,456675757,Salcedo,,Landskip Yard Care,Landskip Yard Care,,,,,,,,
+,Hafsteinn,HafsteinnBjarnarsonar@armyspy.com,456675757,Bjarnarsonar,,Life Plan Counselling,Life Plan Counselling,,,,,,,,
+,Даниил,@superrito.com,456675757,Коновалов,,Mr Fables,Mr Fables,,,,,,,,
+,Selma,SelmaMAndersen@teleworm.us,456675757,Andersen,,Nelson Brothers,Nelson Brothers,,,,,,,,
+,Ladislav,LadislavKolaja@armyspy.com,456675757,Kolaja,,Netobill,Netobill,,,,,,,,
+,Tewolde,TewoldeAbaalom@teleworm.us,456675757,Abaalom,,,,Helios Air,Helios Air,,,,,,
+,Leila,LeilaFernandesRodrigues@gustr.com,456675757,Rodrigues,,,,Ks Merchandise,Ks Merchandise,,,,,,
+,Dmitry,DmitryBulgakov@gustr.com,456675757,Bulgakov,,,,HomeBase,HomeBase,,,,,,
+,Haiduc,HaiducWhitfoot@dayrep.com,456675757,Whitfoot,,,,Scott Ties,Scott Ties,,,,,,
+,Sesselja,SesseljaPetursdottir@cuvox.de,456675757,Pétursdóttir,,,,Reliable Investments,Reliable Investments,,,,,,
+,Hajdar,HajdarPignar@superrito.com,456675757,Pignar,,,,Nan Duskin,Nan Duskin,,,,,,
+,Gustava,GustavaLorenzo@teleworm.us,456675757,Lorenzo,,,,Rainbow Records,Rainbow Records,,,,,,
+,Bethany,BethanyWood@teleworm.us,456675757,Wood,,,,New World Realty,New World Realty,,,,,,
+,Gloriana,GlorianaBrownlock@cuvox.de,456675757,Brownlock,,,,Asiatic Solutions,Asiatic Solutions,,,,,,
+,Jenson,JensonFraser@gustr.com,456675757,Fraser,,,,Eagle Hardware,Eagle Hardware,,,,,,
\ No newline at end of file
diff --git a/utilities/demo_docs/Customer.csv b/utilities/demo_docs/Customer.csv
new file mode 100644
index 0000000..2ed0e1c
--- /dev/null
+++ b/utilities/demo_docs/Customer.csv
@@ -0,0 +1,38 @@
+Data Import Template,,,,,,,,,,,,,,,,
+Table:,Customer,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,
+Column Labels,ID,Customer Name,Customer Type,Customer Group,Territory,Company,Series,Lead Ref,Default Price List,Default Currency,Customer Details,Credit Days,Credit Limit,Website,Default Sales Partner,Default Commission Rate
+Column Name:,name,customer_name,customer_type,customer_group,territory,company,naming_series,lead_name,default_price_list,default_currency,customer_details,credit_days,credit_limit,website,default_sales_partner,default_commission_rate
+Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Data,Select,Link,Link,Link,Select,Link,Link,Link,Text,Int,Currency,Data,Link,Float
+Info:,,,"One of: Company, Individual",Valid Customer Group,Valid Territory,Valid Company,"One of: CUST, CUSTMUM",Valid Lead,Valid Price List,Valid Currency,,Integer,,,Valid Sales Partner,
+Start entering data below this line,,,,,,,,,,,,,,,,
+,,Asian Junction,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Life Plan Counselling,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Two Pesos,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Mr Fables,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Intelacard,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Big D Supermarkets,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Adaptas,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Nelson Brothers,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Landskip Yard Care,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Buttrey Food & Drug,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Fayva,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Asian Fusion,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Crafts Canada,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Consumers and Consumers Express,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Netobill,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Choices,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Chi-Chis,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Red Food,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Endicott Shoes,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
\ No newline at end of file
diff --git a/utilities/demo_docs/Employee.csv b/utilities/demo_docs/Employee.csv
new file mode 100644
index 0000000..c9b340a
--- /dev/null
+++ b/utilities/demo_docs/Employee.csv
@@ -0,0 +1,40 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Table:,Employee,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+DocType:,Employee,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Column Labels:,ID,Full Name,Date of Joining,Date of Birth,Gender,Company,Status,Naming Series,Salutation,Image,User ID,Employee Number,Employment Type,Holiday List,Scheduled Confirmation Date,Final Confirmation Date,Contract End Date,Date Of Retirement,Branch,Department,Designation,Grade,Email (By company),Notice - Number of Days,Salary Mode,Bank Name,Bank A/C No.,ESIC CARD No,PF Number,Gratuity LIC ID,Reports to,Cell Number,Personal Email,Person To Be Contacted,Relation,Emergency Phone Number,Permanent Accommodation Type,Permanent Address,Current Accommodation Type,Current Address,Bio,PAN Number,Passport Number,Date of Issue,Valid Upto,Place of Issue,Marital Status,Blood Group,Family Background,Health Details,Resignation Letter Date,Relieving Date,Reason for Leaving,Leave Encashed?,Encashment Date,Held On,Reason for Resignation,New Workplace,Feedback
+Column Name:,name,employee_name,date_of_joining,date_of_birth,gender,company,status,naming_series,salutation,image,user_id,employee_number,employment_type,holiday_list,scheduled_confirmation_date,final_confirmation_date,contract_end_date,date_of_retirement,branch,department,designation,grade,company_email,notice_number_of_days,salary_mode,bank_name,bank_ac_no,esic_card_no,pf_number,gratuity_lic_id,reports_to,cell_number,personal_email,person_to_be_contacted,relation,emergency_phone_number,permanent_accommodation_type,permanent_address,current_accommodation_type,current_address,bio,pan_number,passport_number,date_of_issue,valid_upto,place_of_issue,marital_status,blood_group,family_background,health_details,resignation_letter_date,relieving_date,reason_for_leaving,leave_encashed,encashment_date,held_on,reason_for_resignation,new_workplace,feedback
+Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Data,Date,Date,Select,Select,Select,Select,Select,Select,Link,Data,Link,Link,Date,Date,Date,Date,Link,Link,Link,Link,Data,Int,Select,Data,Data,Data,Data,Data,Link,Data,Data,Data,Data,Data,Select,Small Text,Select,Small Text,Text Editor,Data,Data,Date,Date,Data,Select,Select,Small Text,Small Text,Date,Date,Data,Select,Date,Date,Select,Data,Small Text
+Info:,,,,,"One of: Male, Female",Valid Company,"One of: Active, Left",One of: EMP/,"One of: Mr, Ms",One of: attach_files:,Valid Profile,,Valid Employment Type,Valid Holiday List,,,,,Valid Branch,Valid Department,Valid Designation,Valid Grade,,Integer,"One of: Bank, Cash, Cheque",,,,,,Valid Employee,,,,,,"One of: Rented, Owned",,"One of: Rented, Owned",,,,,,,,"One of: Single, Married, Divorced, Widowed","One of: A+, A-, B+, B-, AB+, AB-, O+, O-",,,,,,"One of: Yes, No",,,"One of: Better Prospects, Health Concerns",,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Dikman Shervashidze Shervashidze,10-10-2001,03-01-1982,Female,Wind Power LLC,Active,EMP/,,,DikmanShervashidze@armyspy.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Zukutakitoteka ,09-16-1976,03-02-1959,Female,Wind Power LLC,Active,EMP/,,,Zukutakitoteka@teleworm.us,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Hatsue Kashiwagi,06-16-2000,03-03-1982,Female,Wind Power LLC,Active,EMP/,,,HatsueKashiwagi@cuvox.de,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Nuran Verkleij,07-01-1969,04-04-1945,Female,Wind Power LLC,Active,EMP/,,,NuranVerkleij@einrot.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Дмитрий Пирогов,12-24-1999,03-05-1978,Male,Wind Power LLC,Active,EMP/,,,aromn@armyspy.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Tilde Lindqvist,08-05-1981,03-06-1964,Female,Wind Power LLC,Active,EMP/,,,TildeLindqvist@cuvox.de,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Michał Sobczak,06-10-2006,03-07-1982,Male,Wind Power LLC,Active,EMP/,,,MichalSobczak@teleworm.us,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Gabrielle Loftus,10-21-1993,03-08-1969,Female,Wind Power LLC,Active,EMP/,,,GabrielleLoftus@superrito.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Vakhita Ryzaev,09-06-2005,03-09-1982,Male,Wind Power LLC,Active,EMP/,,,VakhitaRyzaev@teleworm.us,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Charmaine Gaudreau,12-25-2007,03-10-1985,Female,Wind Power LLC,Active,EMP/,,,CharmaineGaudreau@cuvox.de,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Rafaëla Maartens,09-02-2002,03-11-1982,Female,Wind Power LLC,Active,EMP/,,,RafaelaMaartens@cuvox.de,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Nuguse Yohannes,08-24-1984,07-12-1966,Male,Wind Power LLC,Active,EMP/,,,NuguseYohannes@dayrep.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Раиса Белякова,12-04-2002,03-13-1982,Female,Wind Power LLC,Active,EMP/,,,panca@armyspy.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,胤隆 蔡,03-14-2011,06-14-1991,Male,Wind Power LLC,Active,EMP/,,,CaYinLong@gustr.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Freddie Scott,12-14-2004,03-15-1982,Male,Wind Power LLC,Active,EMP/,,,FreddieScott@armyspy.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Bergþóra Vigfúsdóttir,05-17-2004,03-16-1982,Female,Wind Power LLC,Active,EMP/,,,BergoraVigfusdottir@superrito.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Ward Kalb,05-13-1994,03-17-1973,Male,Wind Power LLC,Active,EMP/,,,WardNajmalDinKalb@cuvox.de,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Wan Mai,12-15-2003,09-18-1982,Female,Wind Power LLC,Active,EMP/,,,WanMai@teleworm.us,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Leon Abdulov,03-15-1999,03-19-1982,Male,Wind Power LLC,Active,EMP/,,,LeonAbdulov@superrito.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Sabina Novotná,01-25-1991,03-20-1974,Female,Wind Power LLC,Active,EMP/,,,SabinaNovotna@superrito.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
\ No newline at end of file
diff --git a/utilities/demo_docs/Fiscal_Year.csv b/utilities/demo_docs/Fiscal_Year.csv
new file mode 100644
index 0000000..09e8252
--- /dev/null
+++ b/utilities/demo_docs/Fiscal_Year.csv
@@ -0,0 +1,23 @@
+Data Import Template,,,,
+Table:,Fiscal Year,,,
+,,,,
+,,,,
+Notes:,,,,
+Please do not change the template headings.,,,,
+First data column must be blank.,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,
+"For updating, you can update only selective columns.",,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,
+,,,,
+DocType:,Fiscal Year,,,
+Column Labels:,ID,Year Name,Year Start Date,Year Closed
+Column Name:,name,year,year_start_date,is_fiscal_year_closed
+Mandatory:,Yes,Yes,Yes,No
+Type:,Data (text),Data,Date,Select
+Info:,,,,"One of: No, Yes"
+Start entering data below this line,,,,
+,,2009,01-Jan-2009,No
+,,2010,01-Jan-2010,No
+,,2011,01-Jan-2011,No
\ No newline at end of file
diff --git a/utilities/demo_docs/Item.csv b/utilities/demo_docs/Item.csv
new file mode 100644
index 0000000..3580748
--- /dev/null
+++ b/utilities/demo_docs/Item.csv
@@ -0,0 +1,37 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Table:,Item,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+DocType:,Item,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Column Labels:,ID,Item Name,Item Group,Default Unit of Measure,Description,Is Stock Item,Is Asset Item,Has Batch No,Has Serial No,Is Purchase Item,Is Sales Item,Is Service Item,Allow Samples,Inspection Required,Allow Bill of Materials,Allow Production Order,Is Sub Contracted Item,Document Numbering Series,Item Code,Brand,Barcode,Image,Description HTML,Default Warehouse,Allowance Percent,Valuation Method,Minimum Order Qty,Warranty Period (in days),End of Life,Net Weight,Weight UOM,Re-Order Level,Re-Order Qty,Default Supplier,Lead Time Days,Default Expense Account,Default Cost Center,Last Purchase Rate,Standard Rate,Manufacturer,Manufacturer Part Number,Max Discount (%),Default Income Account,Cost Center,Default BOM,Show in Website,Page Name,Weightage,Slideshow,Image,Website Warehouse,Website Description
+Column Name:,name,item_name,item_group,stock_uom,description,is_stock_item,is_asset_item,has_batch_no,has_serial_no,is_purchase_item,is_sales_item,is_service_item,is_sample_item,inspection_required,is_manufactured_item,is_pro_applicable,is_sub_contracted_item,naming_series,item_code,brand,barcode,image,description_html,default_warehouse,tolerance,valuation_method,min_order_qty,warranty_period,end_of_life,net_weight,weight_uom,re_order_level,re_order_qty,default_supplier,lead_time_days,purchase_account,cost_center,last_purchase_rate,standard_rate,manufacturer,manufacturer_part_no,max_discount,default_income_account,default_sales_cost_center,default_bom,show_in_website,page_name,weightage,slideshow,website_image,website_warehouse,web_long_description
+Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Data,Link,Link,Small Text,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Data,Link,Data,Select,Small Text,Link,Float,Select,Float,Data,Date,Float,Link,Float,Float,Link,Int,Link,Link,Float,Float,Data,Data,Float,Link,Link,Link,Check,Data,Int,Link,Select,Link,Text Editor
+Info:,,,Valid Item Group,Valid UOM,,"One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No",One of: ITEM,,Valid Brand,,One of: attach_files:,,Valid Warehouse,,"One of: FIFO, Moving Average",,,,,Valid UOM,,,Valid Supplier,Integer,Valid Account,Valid Cost Center,,,,,,Valid Account,Valid Cost Center,Valid BOM,0 or 1,,Integer,Valid Website Slideshow,One of: attach_files:,Valid Warehouse,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,Base Bearing Plate,Base Bearing Plate,Raw Material,Nos,1/4 in. x 6 in. x 6 in. Mild Steel Plate,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Base Bearing Plate,,,,,Stores - WP,,,,,,,,,,Eagle Hardware,,,,,,,,,,,,,,,,,,
+,Base Plate,Base Plate,Raw Material,Nos,3/4 in. x 2 ft. x 4 ft. Pine Plywood,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Base Plate,,,,,Stores - WP,,,,,,,,,,HomeBase,,,,,,,,,,,,,,,,,,
+,Bearing Assembly,Bearing Assembly,Sub Assemblies,Nos,Bearing Assembly,Yes,No,No,No,No,Yes,No,No,No,Yes,Yes,No,,Bearing Assembly,,,,,Stores - WP,,,0.0,,,,,,,Asiatic Solutions,,,,,,,,,,,,,,,,,,
+,Bearing Block,Bearing Block,Raw Material,Nos,"CAST IRON, MCMASTER PART NO. 3710T13",Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Bearing Block,,,,,Stores - WP,,,,,,,,,,Nan Duskin,,,,,,,,,,,,,,,,,,
+,Bearing Collar,Bearing Collar,Raw Material,Nos,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Bearing Collar,,,,,Stores - WP,,,,,,,,,,Eagle Hardware,,,,,,,,,,,,,,,,,,
+,Bearing Pipe,Bearing Pipe,Raw Material,Nos,1.5 in. Diameter x 36 in. Mild Steel Tubing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Bearing Pipe,,,,,Stores - WP,,,,,,,,,,HomeBase,,,,,,,,,,,,,,,,,,
+,Blade Rib,Blade Rib,Raw Material,Nos,1/2 in. x 2 ft. x 4 ft. Pine Plywood,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Blade Rib,,,,,Stores - WP,,,,,,,,,,Ks Merchandise,,,,,,,,,,,,,,,,,,
+,Disc Collars,Disc Collars,Raw Material,Nos,For Upper Bearing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Disc Collars,,,,,Stores - WP,,,,,,,,,,Asiatic Solutions,,,,,,,,,,,,,,,,,,
+,External Disc,External Disc,Raw Material,Nos,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,External Disc,,,,,Stores - WP,,,,,,,,,,HomeBase,,,,,,,,,,,,,,,,,,
+,Internal Disc,Internal Disc,Raw Material,Nos,For Bearing Collar,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Internal Disc,,,,,Stores - WP,,,,,,,,,,HomeBase,,,,,,,,,,,,,,,,,,
+,Shaft,Shaft,Raw Material,Nos,1.25 in. Diameter x 6 ft. Mild Steel Tubing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Shaft,,,,,Stores - WP,,,,,,,,,,Eagle Hardware,,,,,,,,,,,,,,,,,,
+,Stand,Stand,Raw Material,Nos,N/A,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Stand,,,,,Stores - WP,,,,,,,,,,Scott Ties,,,,,,,,,,,,,,,,,,
+,Upper Bearing Plate,Upper Bearing Plate,Raw Material,Nos,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Upper Bearing Plate,,,,,Stores - WP,,,,,,,,,,Eagle Hardware,,,,,,,,,,,,,,,,,,
+,Wind Mill A Series,Wind Mill A Series,Products,Nos,Wind Mill A Series for Home Use 9ft,Yes,No,No,Yes,Yes,Yes,Yes,No,No,Yes,Yes,No,,Wind Mill A Series,,,,,Finished Goods - WP,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,Wind MIll C Series,Wind MIll C Series,Products,Nos,Wind Mill C Series for Commercial Use 18ft,Yes,No,No,Yes,Yes,Yes,Yes,No,No,Yes,Yes,No,,Wind MIll C Series,,,,,Finished Goods - WP,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,Wind Turbine,Wind Turbine,Products,Nos,Small Wind Turbine for Home Use,Yes,No,No,No,Yes,Yes,Yes,No,No,Yes,Yes,No,,Wind Turbine,,,,,Finished Goods - WP,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,Wing Sheet,Wing Sheet,Raw Material,Nos,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Wing Sheet,,,,,Stores - WP,,,,,,,,,,New World Realty,,,,,,,,,,,,,,,,,,
\ No newline at end of file
diff --git a/utilities/demo_docs/Item_Price.csv b/utilities/demo_docs/Item_Price.csv
new file mode 100644
index 0000000..c1bc7ad
--- /dev/null
+++ b/utilities/demo_docs/Item_Price.csv
@@ -0,0 +1,50 @@
+Data Import Template,,,,,
+Table:,Item Price,,,,
+Parent Table:,Item,,,,
+,,,,,
+Notes:,,,,,
+Please do not change the template headings.,,,,,
+First data column must be blank.,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,
+"For updating, you can update only selective columns.",,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,
+"""Parent"" signifies the parent table in which this row must be added",,,,,
+"If you are updating, please select ""Overwrite"" else existing rows will not be deleted.",,,,,
+,,,,,
+Column Labels,ID,Price List Name,Valid for Buying or Selling?,Ref Rate,Currency
+Column Name:,parent,price_list,buying_or_selling,ref_rate,ref_currency
+Mandatory:,Yes,Yes,Yes,No,No
+Type:,Data (text),Link,Select,Currency,Link
+Info:,,Valid Price List,"One of: Buying, Selling",,Valid Currency
+Start entering data below this line,,,,,
+,Base Bearing Plate,Standard Buying,Buying,15,USD
+,Base Plate,Standard Buying,Buying,20,USD
+,Bearing Block,Standard Buying,Buying,10,USD
+,Bearing Collar,Standard Buying,Buying,20,USD
+,Bearing Pipe,Standard Buying,Buying,15,USD
+,Blade Rib,Standard Buying,Buying,10,USD
+,Disc Collars,Standard Buying,Buying,74,USD
+,External Disc,Standard Buying,Buying,45,USD
+,Internal Disc,Standard Buying,Buying,33,USD
+,Shaft,Standard Buying,Buying,30,USD
+,Stand,Standard Buying,Buying,40,USD
+,Upper Bearing Plate,Standard Buying,Buying,50,USD
+,Wing Sheet,Standard Buying,Buying,22,USD
+,Wind Turbine,Standard Selling,Selling,300,USD
+,Wind Mill A Series,Standard Selling,Selling,340,USD
+,Wind MIll C Series,Standard Selling,Selling,400,USD
+,Base Bearing Plate,Standard Selling,Selling,21,USD
+,Base Plate,Standard Selling,Selling,28,USD
+,Bearing Block,Standard Selling,Selling,14,USD
+,Bearing Collar,Standard Selling,Selling,28,USD
+,Bearing Pipe,Standard Selling,Selling,21,USD
+,Blade Rib,Standard Selling,Selling,14,USD
+,Disc Collars,Standard Selling,Selling,103.6,USD
+,External Disc,Standard Selling,Selling,63,USD
+,Internal Disc,Standard Selling,Selling,46.2,USD
+,Shaft,Standard Selling,Selling,42,USD
+,Stand,Standard Selling,Selling,56,USD
+,Upper Bearing Plate,Standard Selling,Selling,70,USD
+,Wing Sheet,Standard Selling,Selling,30.8,USD
\ No newline at end of file
diff --git a/utilities/demo_docs/Lead.csv b/utilities/demo_docs/Lead.csv
new file mode 100644
index 0000000..c00ab44
--- /dev/null
+++ b/utilities/demo_docs/Lead.csv
@@ -0,0 +1,68 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Table:,Lead,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Column Labels,ID,Contact Name,Status,Naming Series,Company Name,Email Id,Source,From Customer,Campaign Name,Remark,Phone,Mobile No.,Fax,Website,Territory,Lead Type,Lead Owner,Market Segment,Industry,Request Type,Lost Reason,Next Contact By,Next Contact Date,Last Contact Date,Company,Unsubscribed,Blog Subscriber
+Column Name:,name,lead_name,status,naming_series,company_name,email_id,source,customer,campaign_name,remark,phone,mobile_no,fax,website,territory,type,lead_owner,market_segment,industry,request_type,order_lost_reason,contact_by,contact_date,last_contact_date,company,unsubscribed,blog_subscriber
+Mandatory:,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Data,Select,Select,Data,Data,Select,Link,Link,Small Text,Data,Data,Data,Data,Link,Select,Link,Select,Link,Select,Link,Link,Date,Date,Link,Check,Check
+Info:,,,"One of: Open, Replied, Attempted to Contact, Contact in Future, Contacted, Interested, Not interested, Lead Lost, Converted","One of: LEAD, LEAD/10-11/, LEAD/MUMBAI/",,,"One of: Advertisement, Blog Post, Campaign, Call, Customer, Exhibition, Supplier, Website, Email",Valid Customer,Valid Campaign,,,,,,Valid Territory,"One of: Client, Channel Partner, Consultant",Valid Profile,"One of: Lower Income, Middle Income, Upper Income",Valid Industry Type,"One of: Product Enquiry, Request for Information, Suggestions, Other",Valid Quotation Lost Reason,Valid Profile,,,Valid Company,0 or 1,0 or 1
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Mart Lakeman,Passive,,Zany Brainy,MartLakeman@einrot.com,,,,,,,,,,,,,,,,,,,,,
+,,Saga Lundqvist,Passive,,Patterson-Fletcher,SagaLundqvist@dayrep.com,,,,,,,,,,,,,,,,,,,,,
+,,Adna Sjöberg,Passive,,Griff's Hamburgers,AdnaSjoberg@gustr.com,,,,,,,,,,,,,,,,,,,,,
+,,Ida Svendsen,Passive,,Rhodes Furniture,IdaDSvendsen@superrito.com,,,,,,,,,,,,,,,,,,,,,
+,,Emppu Hämeenniemi,Passive,,Burger Chef,EmppuHameenniemi@teleworm.us,,,,,,,,,,,,,,,,,,,,,
+,,Eugenio Pisano,Passive,,Stratabiz,EugenioPisano@cuvox.de,,,,,,,,,,,,,,,,,,,,,
+,,Semhar Hagos,Passive,,Home Quarters Warehouse,SemharHagos@einrot.com,,,,,,,,,,,,,,,,,,,,,
+,,Branimira Ivanković,Passive,,Enviro Architectural Designs,BranimiraIvankovic@einrot.com,,,,,,,,,,,,,,,,,,,,,
+,,Shelly Fields,Passive,,Ideal Garden Management,ShellyLFields@superrito.com,,,,,,,,,,,,,,,,,,,,,
+,,Leo Mikulić,Passive,,Listen Up,LeoMikulic@gustr.com,,,,,,,,,,,,,,,,,,,,,
+,,Denisa Jarošová,Passive,,I. Magnin,DenisaJarosova@teleworm.us,,,,,,,,,,,,,,,,,,,,,
+,,Janek Rutkowski,Passive,,First Rate Choice,JanekRutkowski@dayrep.com,,,,,,,,,,,,,,,,,,,,,
+,,美月 宇藤,Passive,,Multi Tech Development,mm@gustr.com,,,,,,,,,,,,,,,,,,,,,
+,,Даниил Афанасьев,Passive,,National Auto Parts,dd@einrot.com,,,,,,,,,,,,,,,,,,,,,
+,,Zorislav Petković,Passive,,Integra Investment Plan,ZorislavPetkovic@cuvox.de,,,,,,,,,,,,,,,,,,,,,
+,,Nanao Niwa,Passive,,The Lawn Guru,NanaoNiwa@superrito.com,,,,,,,,,,,,,,,,,,,,,
+,,Hreiðar Jörundsson,Passive,,Buena Vista Realty Service,HreiarJorundsson@armyspy.com,,,,,,,,,,,,,,,,,,,,,
+,,Lai Chu,Passive,,Bountiful Harvest Health Food Store,ChuThiBichLai@einrot.com,,,,,,,,,,,,,,,,,,,,,
+,,Victor Aksakov,Passive,,P. Samuels Men's Clothiers,VictorAksakov@dayrep.com,,,,,,,,,,,,,,,,,,,,,
+,,Saidalim Bisliev,Passive,,Vinyl Fever,SaidalimBisliev@cuvox.de,,,,,,,,,,,,,,,,,,,,,
+,,Totte Jakobsson,Passive,,Garden Master,TotteJakobsson@armyspy.com,,,,,,,,,,,,,,,,,,,,,
+,,Naná Armas,Passive,,Big Apple,NanaArmasRobles@cuvox.de,,,,,,,,,,,,,,,,,,,,,
+,,Walerian Duda,Passive,,Monk House Sales,WalerianDuda@dayrep.com,,,,,,,,,,,,,,,,,,,,,
+,,Moarimikashi ,Passive,,ManCharm,Moarimikashi@teleworm.us,,,,,,,,,,,,,,,,,,,,,
+,,Dobromił Dąbrowski ,Passive,,Custom Lawn Care,DobromilDabrowski@dayrep.com,,,,,,,,,,,,,,,,,,,,,
+,,Teigan Sinclair,Passive,,The Serendipity Dip,TeiganSinclair@gustr.com,,,,,,,,,,,,,,,,,,,,,
+,,Fahad Guirguis,Passive,,Cavages,FahadSaidGuirguis@gustr.com,,,,,,,,,,,,,,,,,,,,,
+,,Morten Olsen,Passive,,Gallenkamp,MortenJOlsen@armyspy.com,,,,,,,,,,,,,,,,,,,,,
+,,Christian Baecker,Passive,,Webcom Business Services,ChristianBaecker@armyspy.com,,,,,,,,,,,,,,,,,,,,,
+,,Sebastianus Dohmen,Passive,,Accord Investments,SebastianusDohmen@cuvox.de,,,,,,,,,,,,,,,,,,,,,
+,,Eero Koskinen,Passive,,American Appliance,EeroKoskinen@superrito.com,,,,,,,,,,,,,,,,,,,,,
+,,富奎 盧,Passive,,Bettendorf's,LuFuKui@teleworm.us,,,,,,,,,,,,,,,,,,,,,
+,,Milica Jelić,Passive,,House Of Denmark,MilicaJelic@dayrep.com,,,,,,,,,,,,,,,,,,,,,
+,,Barbora Holubová,Passive,,10000 Auto Parts,BarboraHolubova@cuvox.de,,,,,,,,,,,,,,,,,,,,,
+,,Marta Kos,Passive,,Mages,MartaKos@einrot.com,,,,,,,,,,,,,,,,,,,,,
+,,Simret Zula,Passive,,CSK Auto,SimretZula@cuvox.de,,,,,,,,,,,,,,,,,,,,,
+,,Kamil Chlubna,Passive,,Eagle Hardware & Garden,KamilChlubna@einrot.com,,,,,,,,,,,,,,,,,,,,,
+,,Aceline Bolduc,Passive,,Rustler Steak House,AcelineBolduc@armyspy.com,,,,,,,,,,,,,,,,,,,,,
+,,Lucie Stupková,Passive,,ABCO Foods,LucieStupkova@gustr.com,,,,,,,,,,,,,,,,,,,,,
+,,Roland Solvik,Passive,,Trak Auto,RolandSolvik@cuvox.de,,,,,,,,,,,,,,,,,,,,,
+,,Mekirinzukushitakufu ,Passive,,Choices,Mekirinzukushitakufu@teleworm.us,,,,,,,,,,,,,,,,,,,,,
+,,Mukharbek Sultanovich,Passive,,Megatronic,MukharbekSultanovich@cuvox.de,,,,,,,,,,,,,,,,,,,,,
+,,Osman Amanuel,Passive,,Handy Dan,OsmanAmanuel@dayrep.com,,,,,,,,,,,,,,,,,,,,,
+,,幸子 阪部,Passive,,Channel Home Centers,dd@armyspy.com,,,,,,,,,,,,,,,,,,,,,
+,,Masakazu Kamitani,Passive,,Honest Air Group,MasakazuKamitani@superrito.com,,,,,,,,,,,,,,,,,,,,,
+,,Omran Sabbagh,Passive,,Pleasures and Pasttimes,OmranNuhaidSabbagh@einrot.com,,,,,,,,,,,,,,,,,,,,,
+,,Rikako Matsumura,Passive,,Lazysize,RikakoMatsumura@einrot.com,,,,,,,,,,,,,,,,,,,,,
+,,Anayolisa Chukwukadibia,Passive,,Prestiga-Biz,AnayolisaChukwukadibia@einrot.com,,,,,,,,,,,,,,,,,,,,,
+,,Gudmunda Hinna,Passive,,Childs Restaurants,GudmundaHinna@armyspy.com,,,,,,,,,,,,,,,,,,,,,
\ No newline at end of file
diff --git a/utilities/demo_docs/Profile.csv b/utilities/demo_docs/Profile.csv
new file mode 100644
index 0000000..2e7a2ce
--- /dev/null
+++ b/utilities/demo_docs/Profile.csv
@@ -0,0 +1,40 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,
+Table:,Profile,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,
+DocType:,Profile,,,,,,,,,,,,,,,,,,,,
+Column Labels:,ID,Email,First Name,User Type,Enabled,Middle Name (Optional),Last Name,Send Invite Email,Language,Birth Date,Gender,New Password,User Image,Background Image,Bio,Email Signature,Login After,Login Before,Restrict IP,Last Login,Last IP
+Column Name:,name,email,first_name,user_type,enabled,middle_name,last_name,send_invite_email,language,birth_date,gender,new_password,user_image,background_image,bio,email_signature,login_after,login_before,restrict_ip,last_login,last_ip
+Mandatory:,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Data,Data,Select,Check,Data,Data,Check,Select,Date,Select,Password,Select,Select,Small Text,Small Text,Int,Int,Data,Read Only,Read Only
+Info:,,,,"One of: System User, Website User",0 or 1,,,0 or 1,"One of: العربية, Deutsch, english, español, français, हिंदी, Hrvatski, nederlands, português, português brasileiro, српски, தமிழ், ไทย",,"One of: Male, Female, Other",,One of: attach_files:,One of: attach_files:,,,Integer,Integer,,,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,
+,,DikmanShervashidze@armyspy.com,Dikman,System User,1,V,Shervashidze,0,,,,testpass,,,,,,,,,
+,,Zukutakitoteka@teleworm.us,Zukutakitoteka,System User,1,,,0,,,,testpass,,,,,,,,,
+,,HatsueKashiwagi@cuvox.de,Hatsue,System User,1,H,Kashiwagi,0,,,,testpass,,,,,,,,,
+,,NuranVerkleij@einrot.com,Nuran,System User,1,T,Verkleij,0,,,,testpass,,,,,,,,,
+,,aromn@armyspy.com,Дмитрий,System User,1,З,Пирогов,0,,,,testpass,,,,,,,,,
+,,TildeLindqvist@cuvox.de,Tilde,System User,1,T,Lindqvist,0,,,,testpass,,,,,,,,,
+,,MichalSobczak@teleworm.us,Michał,System User,1,S,Sobczak,0,,,,testpass,,,,,,,,,
+,,GabrielleLoftus@superrito.com,Gabrielle,System User,1,J,Loftus,0,,,,testpass,,,,,,,,,
+,,VakhitaRyzaev@teleworm.us,Vakhita,System User,1,A,Ryzaev,0,,,,testpass,,,,,,,,,
+,,CharmaineGaudreau@cuvox.de,Charmaine,System User,1,D,Gaudreau,0,,,,testpass,,,,,,,,,
+,,RafaelaMaartens@cuvox.de,Rafaëla,System User,1,Z,Maartens,0,,,,testpass,,,,,,,,,
+,,NuguseYohannes@dayrep.com,Nuguse,System User,0,S,Yohannes,0,,,,testpass,,,,,,,,,
+,,panca@armyspy.com,Раиса,System User,0,В,Белякова,0,,,,testpass,,,,,,,,,
+,,CaYinLong@gustr.com,胤隆,System User,1,婷,蔡,0,,,,testpass,,,,,,,,,
+,,FreddieScott@armyspy.com,Freddie,System User,1,A,Scott,0,,,,testpass,,,,,,,,,
+,,BergoraVigfusdottir@superrito.com,Bergþóra,System User,1,Ö,Vigfúsdóttir,0,,,,testpass,,,,,,,,,
+,,WardNajmalDinKalb@cuvox.de,Ward,System User,1,N,Kalb,0,,,,testpass,,,,,,,,,
+,,WanMai@teleworm.us,Wan,System User,1,A,Mai,0,,,,testpass,,,,,,,,,
+,,LeonAbdulov@superrito.com,Leon,System User,1,A,Abdulov,0,,,,testpass,,,,,,,,,
+,,SabinaNovotna@superrito.com,Sabina,System User,1,J,Novotná,0,,,,testpass,,,,,,,,,
\ No newline at end of file
diff --git a/utilities/demo_docs/Salary_Structure.csv b/utilities/demo_docs/Salary_Structure.csv
new file mode 100644
index 0000000..07d95be
--- /dev/null
+++ b/utilities/demo_docs/Salary_Structure.csv
@@ -0,0 +1,25 @@
+"Data Import Template"
+"Table:","Salary Structure"
+""
+""
+"Notes:"
+"Please do not change the template headings."
+"First data column must be blank."
+"If you are uploading new records, leave the ""name"" (ID) column blank."
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present."
+"Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish."
+"For updating, you can update only selective columns."
+"You can only upload upto 5000 records in one go. (may be less in some cases)"
+""
+"DocType:","Salary Structure","","","","","","","","","","","","","","","-","Salary Structure Earning","earning_details","","","-","Salary Structure Deduction","deduction_details","",""
+"Column Labels:","ID","Last Updated On","Employee","Is Active","From Date","Company","Employee Name","Branch","Designation","Department","Grade","To Date","Total Earning","Total Deduction","Net Pay","-","ID","Type","Amount","Reduce Earning for Leave Without Pay (LWP)","-","ID","Type","Amount","Reduce Deduction for Leave Without Pay (LWP)"
+"Column Name:","name","modified","employee","is_active","from_date","company","employee_name","branch","designation","department","grade","to_date","total_earning","total_deduction","net_pay","-","name","e_type","modified_value","depend_on_lwp","-","name","d_type","d_modified_amt","depend_on_lwp"
+"Mandatory:","Yes","Yes","Yes","Yes","Yes","Yes","No","No","No","No","No","No","No","No","No","-","Yes","Yes","No","No","-","Yes","Yes","No","No"
+"Type:","Data (text)","Data","Link","Select","Date","Select","Data","Select","Select","Select","Select","Date","Currency","Currency","Currency","-","Data","Link","Currency","Check","-","Data","Link","Currency","Check"
+"Info:","","Don't change!","Valid Employee","One of: Yes, No","","Valid Company","","Valid Branch","Valid Designation","Valid Department","Valid Grade","","","","","-","Leave blank for new records","Valid Earning Type","","0 or 1","-","Leave blank for new records","Valid Deduction Type","","0 or 1"
+"Start entering data below this line"
+"","EMP/0001/SST/00001","""2013-08-06 17:07:22""","EMP/0001","Yes","2013-08-06","Wind Power LLC","Dikman Shervashidze Shervashidze","","","","","",5000.0,400.0,4600.0,"","000000154","Basic",5000.0,"","","000000155","Income Tax",400.0,""
+"","EMP/0002/SST/00001","""2013-08-06 17:07:43""","EMP/0002","Yes","2013-08-06","Wind Power LLC","Zukutakitoteka","","","","","",6700.0,400.0,6300.0,"","000000156","Basic",6700.0,"","","000000157","Income Tax",400.0,""
+"","EMP/0003/SST/00001","""2013-08-06 17:08:02""","EMP/0003","Yes","2013-08-06","Wind Power LLC","Hatsue Kashiwagi","","","","","",3400.0,400.0,3000.0,"","000000158","Basic",3400.0,"","","000000159","Income Tax",400.0,""
+"","EMP/0004/SST/00001","""2013-08-06 17:14:39""","EMP/0004","Yes","2013-08-06","Wind Power LLC","Nuran Verkleij","","","","","",6990.0,566.0,6424.0,"","000000160","Basic",6990.0,"","","000000161","Income Tax",566.0,""
+
diff --git a/utilities/demo_docs/Stock Reconcilation Template.csv b/utilities/demo_docs/Stock Reconcilation Template.csv
new file mode 100644
index 0000000..eddc2bc
--- /dev/null
+++ b/utilities/demo_docs/Stock Reconcilation Template.csv
@@ -0,0 +1,25 @@
+Stock Reconciliation,,,,,,
+----,,,,,,
+"Stock Reconciliation can be used to update the stock on a particular date, usually as per physical inventory.",,,,,,
+"When submitted, the system creates difference entries to set the given stock and valuation on this date.",,,,,,
+It can also be used to create opening stock entries and to fix stock value.,,,,,,
+----,,,,,,
+Notes:,,,,,,
+Item Code and Warehouse should already exist.,,,,,,
+You can update either Quantity or Valuation Rate or both.,,,,,,
+"If no change in either Quantity or Valuation Rate, leave the cell blank.",,,,,,
+----,,,,,,
+Item Code,Warehouse,Quantity,Valuation Rate,,,
+Base Bearing Plate,Stores,4,750,,,
+Base Plate,Stores,4,1092,,,
+Bearing Block,Stores,2,355,,,
+Bearing Collar,Stores,4,980,,,
+Bearing Pipe,Stores,5,599,,,
+Blade Rib,Stores,3,430,,,
+Disc Collars,Stores,7,3000,,,
+External Disc,Stores,2,1200,,,
+Internal Disc,Stores,2,1000,,,
+Shaft,Stores,5,600,,,
+Stand,Stores,2,200,,,
+Upper Bearing Plate,Stores,10,400,,,
+Wing Sheet,Stores,20,300,,,
\ No newline at end of file
diff --git a/utilities/demo_docs/Supplier.csv b/utilities/demo_docs/Supplier.csv
new file mode 100644
index 0000000..6f91164
--- /dev/null
+++ b/utilities/demo_docs/Supplier.csv
@@ -0,0 +1,29 @@
+Data Import Template,,,,,,,,,
+Table:,Supplier,,,,,,,,
+,,,,,,,,,
+,,,,,,,,,
+Notes:,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,
+First data column must be blank.,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,
+,,,,,,,,,
+Column Labels,ID,Supplier Name,Supplier Type,Company,Series,Default Currency,Supplier Details,Credit Days,Website
+Column Name:,name,supplier_name,supplier_type,company,naming_series,default_currency,supplier_details,credit_days,website
+Mandatory:,Yes,Yes,Yes,Yes,No,No,No,No,No
+Type:,Data (text),Data,Link,Link,Select,Link,Text,Int,Data
+Info:,,,Valid Supplier Type,Valid Company,"One of: SUPP, SUPP/10-11/",Valid Currency,,Integer,
+Start entering data below this line,,,,,,,,,
+,Helios Air,Helios Air,Raw Material,Wind Power LLC,,,,,
+,Ks Merchandise,Ks Merchandise,Electrical,Wind Power LLC,,,,,
+,HomeBase,HomeBase,Raw Material,Wind Power LLC,,,,,
+,Scott Ties,Scott Ties,Raw Material,Wind Power LLC,,,,,
+,Reliable Investments,Reliable Investments,Services,Wind Power LLC,,,,,
+,Nan Duskin,Nan Duskin,Services,Wind Power LLC,,,,,
+,Rainbow Records,Rainbow Records,Services,Wind Power LLC,,,,,
+,New World Realty,New World Realty,Services,Wind Power LLC,,,,,
+,Asiatic Solutions,Asiatic Solutions,Raw Material,Wind Power LLC,,,,,
+,Eagle Hardware,Eagle Hardware,Raw Material,Wind Power LLC,,,,,
\ No newline at end of file
diff --git a/utilities/demo_docs/bearing-block.png b/utilities/demo_docs/bearing-block.png
new file mode 100644
index 0000000..b60f2f4
--- /dev/null
+++ b/utilities/demo_docs/bearing-block.png
Binary files differ
diff --git a/utilities/demo_docs/wind-turbine.png b/utilities/demo_docs/wind-turbine.png
new file mode 100644
index 0000000..81fcfc2
--- /dev/null
+++ b/utilities/demo_docs/wind-turbine.png
Binary files differ
diff --git a/utilities/doctype/address/address.js b/utilities/doctype/address/address.js
index f17f823..d4ed3fb 100644
--- a/utilities/doctype/address/address.js
+++ b/utilities/doctype/address/address.js
@@ -1,17 +1,4 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require('app/controllers/js/contact_address_common.js');
\ No newline at end of file
diff --git a/utilities/doctype/address/address.py b/utilities/doctype/address/address.py
index bc35c27..7ffb911 100644
--- a/utilities/doctype/address/address.py
+++ b/utilities/doctype/address/address.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/utilities/doctype/address/test_address.py b/utilities/doctype/address/test_address.py
index eddd9c7..1de733f 100644
--- a/utilities/doctype/address/test_address.py
+++ b/utilities/doctype/address/test_address.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Address",
diff --git a/utilities/doctype/contact/contact.js b/utilities/doctype/contact/contact.js
index 1dfa454..608b1e7 100644
--- a/utilities/doctype/contact/contact.js
+++ b/utilities/doctype/contact/contact.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 wn.require('app/controllers/js/contact_address_common.js');
 
diff --git a/utilities/doctype/contact/contact.py b/utilities/doctype/contact/contact.py
index a19501f..89cfc8e 100644
--- a/utilities/doctype/contact/contact.py
+++ b/utilities/doctype/contact/contact.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/utilities/doctype/contact/test_contact.py b/utilities/doctype/contact/test_contact.py
index d16e93d..376d3ad 100644
--- a/utilities/doctype/contact/test_contact.py
+++ b/utilities/doctype/contact/test_contact.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 test_records = [
 	[{
 		"doctype": "Contact",
diff --git a/utilities/doctype/note/note.py b/utilities/doctype/note/note.py
index 02862de..befb4c4 100644
--- a/utilities/doctype/note/note.py
+++ b/utilities/doctype/note/note.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/utilities/doctype/note_user/note_user.py b/utilities/doctype/note_user/note_user.py
index 928aa9f..784339d 100644
--- a/utilities/doctype/note_user/note_user.py
+++ b/utilities/doctype/note_user/note_user.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/utilities/doctype/rename_tool/rename_tool.js b/utilities/doctype/rename_tool/rename_tool.js
index 9c93622..b339b85 100644
--- a/utilities/doctype/rename_tool/rename_tool.js
+++ b/utilities/doctype/rename_tool/rename_tool.js
@@ -1,5 +1,8 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 cur_frm.cscript.refresh = function(doc) {
-	wn.call({
+	return wn.call({
 		method:"utilities.doctype.rename_tool.rename_tool.get_doctypes",
 		callback: function(r) {
 			cur_frm.set_df_property("select_doctype", "options", r.message);
@@ -28,9 +31,9 @@
 			select_doctype: cur_frm.doc.select_doctype
 		},
 		sample_url: "e.g. http://example.com/somefile.csv",
-		callback: function(r) {
+		callback: function(fid, filename, r) {
 			$log.empty().html("<hr>");
-			$.each(r, function(i, v) {
+			$.each(r.message, function(i, v) {
 				$("<div>" + v + "</div>").appendTo($log);
 			});
 		}
diff --git a/utilities/doctype/rename_tool/rename_tool.py b/utilities/doctype/rename_tool/rename_tool.py
index 4da3a28..5ccec9a 100644
--- a/utilities/doctype/rename_tool/rename_tool.py
+++ b/utilities/doctype/rename_tool/rename_tool.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/utilities/doctype/sms_control/sms_control.js b/utilities/doctype/sms_control/sms_control.js
index f470f96..2780ad4 100644
--- a/utilities/doctype/sms_control/sms_control.js
+++ b/utilities/doctype/sms_control/sms_control.js
@@ -1,23 +1,10 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 function SMSManager() {
 	var me = this;
 	this.get_contact_number = function(contact, key, value) {
-		$c_obj('SMS Control', 'get_contact_number', {
+		return $c_obj('SMS Control', 'get_contact_number', {
 				contact_name:contact, 
 				value:value,
 				key:key
@@ -62,9 +49,9 @@
 			var btn = d.fields_dict.send.input;
 			var v = me.dialog.get_values();
 			if(v) {
-				btn.set_working();
-				$c_obj('SMS Control', 'send_form_sms', v, function(r,rt) {
-					btn.done_working();
+				$(this).set_working();
+				return $c_obj('SMS Control', 'send_form_sms', v, function(r,rt) {
+					$(this).done_working();
 					if(r.exc) {msgprint(r.exc); return; }
 					msgprint('Message Sent');
 					me.dialog.hide();
diff --git a/utilities/doctype/sms_control/sms_control.py b/utilities/doctype/sms_control/sms_control.py
index f4d90b8..9c2319f 100644
--- a/utilities/doctype/sms_control/sms_control.py
+++ b/utilities/doctype/sms_control/sms_control.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/utilities/doctype/sms_log/sms_log.py b/utilities/doctype/sms_log/sms_log.py
index 7f48feb..26d0f76 100644
--- a/utilities/doctype/sms_log/sms_log.py
+++ b/utilities/doctype/sms_log/sms_log.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/utilities/make_demo.py b/utilities/make_demo.py
new file mode 100644
index 0000000..a522862
--- /dev/null
+++ b/utilities/make_demo.py
@@ -0,0 +1,293 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+import webnotes, os, datetime
+import webnotes.utils
+from webnotes.widgets import query_report
+import random
+import json
+
+webnotes.session = webnotes._dict({"user":"Administrator"})
+from core.page.data_import_tool.data_import_tool import upload
+
+# fix price list
+# fix fiscal year
+
+company = "Wind Power LLC"
+start_date = '2010-01-01'
+runs_for = 20
+prob = {
+	"Quotation": { "make": 0.5, "qty": (1,5) },
+	"Sales Order": { "make": 0.5, "qty": (1,4) },
+	"Purchase Order": { "make": 0.7, "qty": (1,4) },
+	"Purchase Receipt": { "make": 0.7, "qty": (1,4) },
+	"Supplier Quotation": { "make": 0.5, "qty": (1, 3) }
+}
+
+def make(reset=False):
+	webnotes.connect()
+	webnotes.print_messages = True
+	webnotes.mute_emails = True
+	
+	if reset:
+		setup()
+	simulate()
+	
+def setup():
+	install()
+	complete_setup()
+	make_customers_suppliers_contacts()
+	make_items()
+	make_users_and_employees()
+	# make_opening_stock()
+	# make_opening_accounts()
+
+def simulate():
+	current_date = None
+	for i in xrange(runs_for):
+		print i
+		if not current_date:
+			current_date = webnotes.utils.getdate(start_date)
+		else:
+			current_date = webnotes.utils.add_days(current_date, 1)
+			
+		if current_date.weekday() in (5, 6):
+			continue
+
+		run_sales(current_date)
+		run_purchase(current_date)
+		run_manufacturing(current_date)
+		run_stock(current_date)
+		
+	webnotes.conn.commit()
+
+def run_sales(current_date):
+	if can_make("Quotation"):
+		for i in xrange(how_many("Quotation")):
+			make_quotation(current_date)
+					
+	if can_make("Sales Order"):
+		for i in xrange(how_many("Sales Order")):
+			make_sales_order(current_date)
+
+def run_stock(current_date):
+	# make purchase requests
+	if can_make("Purchase Receipt"):
+		from buying.doctype.purchase_order.purchase_order import make_purchase_receipt
+		report = "Purchase Order Items To Be Received"
+		for po in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Purchase Receipt")]:
+			pr = webnotes.bean(make_purchase_receipt(po))
+			pr.doc.posting_date = current_date
+			pr.doc.fiscal_year = "2010"
+			pr.insert()
+			pr.submit()
+	
+	# make delivery notes (if possible)
+	if can_make("Delivery Note"):
+		from selling.doctype.sales_order.sales_order import make_delivery_note
+		report = "Ordered Items To Be Delivered"
+		for so in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Delivery Note")]:
+			dn = webnotes.bean(make_delivery_note(so))
+			dn.doc.posting_date = current_date
+			dn.doc.fiscal_year = "2010"
+			dn.insert()
+			dn.submit()
+	
+	
+def run_purchase(current_date):
+	# make supplier quotations
+	if can_make("Supplier Quotation"):
+		from stock.doctype.material_request.material_request import make_supplier_quotation
+		report = "Material Requests for which Supplier Quotations are not created"
+		for row in query_report.run(report)["result"][:how_many("Supplier Quotation")]:
+			if row[0] != "Total":
+				sq = webnotes.bean(make_supplier_quotation(row[0]))
+				sq.doc.transaction_date = current_date
+				sq.doc.fiscal_year = "2010"
+				sq.insert()
+				sq.submit()
+		
+	# make purchase orders
+	if can_make("Purchase Order"):
+		from stock.doctype.material_request.material_request import make_purchase_order
+		report = "Requested Items To Be Ordered"
+		for row in query_report.run(report)["result"][:how_many("Purchase Order")]:
+			if row[0] != "Total":
+				po = webnotes.bean(make_purchase_order(row[0]))
+				po.doc.transaction_date = current_date
+				po.doc.fiscal_year = "2010"
+				po.insert()
+				po.submit()
+			
+def run_manufacturing(current_date):
+	ppt = webnotes.bean("Production Planning Tool", "Production Planning Tool")
+	ppt.doc.company = company
+	ppt.doc.use_multi_level_bom = 1
+	ppt.doc.purchase_request_for_warehouse = "Stores - WP"
+	ppt.run_method("get_open_sales_orders")
+	ppt.run_method("get_items_from_so")
+	ppt.run_method("raise_production_order")
+	ppt.run_method("raise_purchase_request")
+	
+	# submit production orders
+	for pro in webnotes.conn.get_values("Production Order", {"docstatus": 0}):
+		b = webnotes.bean("Production Order", pro[0])
+		b.doc.wip_warehouse = "Work in Progress - WP"
+		b.submit()
+		
+	# submit material requests
+	for pro in webnotes.conn.get_values("Material Request", {"docstatus": 0}):
+		b = webnotes.bean("Material Request", pro[0])
+		b.submit()
+	
+	# stores -> wip
+	if can_make("Stock Entry for WIP"):		
+		for pro in query_report.run("Open Production Orders")["result"][:how_many("Stock Entry for WIP")]:
+			make_stock_entry_from_pro(pro[0], "Material Transfer", current_date)
+		
+	# wip -> fg
+	if can_make("Stock Entry for FG"):		
+		for pro in query_report.run("Production Orders in Progress")["result"][:how_many("Stock Entry for FG")]:
+			make_stock_entry_from_pro(pro[0], "Manufacture/Repack", current_date)
+
+	# try posting older drafts (if exists)
+	for st in webnotes.conn.get_values("Stock Entry", {"docstatus":0}):
+		try:
+			webnotes.bean("Stock Entry", st[0]).submit()
+		except NegativeStockError: pass
+		except IncorrectValuationRateError: pass
+			
+
+def make_stock_entry_from_pro(pro_id, purpose, current_date):
+	from manufacturing.doctype.production_order.production_order import make_stock_entry
+	from stock.stock_ledger import NegativeStockError
+	from stock.doctype.stock_entry.stock_entry import IncorrectValuationRateError
+
+	st = webnotes.bean(make_stock_entry(pro_id, purpose))
+	st.run_method("get_items")
+	st.doc.posting_date = current_date
+	st.doc.fiscal_year = "2010"
+	st.doc.expense_adjustment_account = "Stock in Hand - WP"
+	try:
+		st.insert()
+		st.submit()
+	except NegativeStockError: pass
+	except IncorrectValuationRateError: pass
+
+def make_quotation(current_date):
+	b = webnotes.bean([{
+		"creation": current_date,
+		"doctype": "Quotation",
+		"quotation_to": "Customer",
+		"customer": get_random("Customer"),
+		"order_type": "Sales",
+		"transaction_date": current_date,
+		"fiscal_year": "2010"
+	}])
+	
+	add_random_children(b, {
+		"doctype": "Quotation Item", 
+		"parentfield": "quotation_details", 
+	}, rows=3, randomize = {
+		"qty": (1, 5),
+		"item_code": ("Item", {"is_sales_item": "Yes"})
+	}, unique="item_code")
+	
+	b.insert()
+	b.submit()
+	
+def make_sales_order(current_date):
+	q = get_random("Quotation", {"status": "Submitted"})
+	if q:
+		from selling.doctype.quotation.quotation import make_sales_order
+		so = webnotes.bean(make_sales_order(q))
+		so.doc.transaction_date = current_date
+		so.doc.delivery_date = webnotes.utils.add_days(current_date, 10)
+		so.insert()
+		so.submit()
+	
+def add_random_children(bean, template, rows, randomize, unique=None):
+	for i in xrange(random.randrange(1, rows)):
+		d = template.copy()
+		for key, val in randomize.items():
+			if isinstance(val[0], basestring):
+				d[key] = get_random(*val)
+			else:
+				d[key] = random.randrange(*val)
+		
+		if unique:
+			if not bean.doclist.get({"doctype": d["doctype"], unique:d[unique]}):
+				bean.doclist.append(d)
+		else:
+			bean.doclist.append(d)
+
+def get_random(doctype, filters=None):
+	condition = []
+	if filters:
+		for key, val in filters.items():
+			condition.append("%s='%s'" % (key, val))
+	if condition:
+		condition = " where " + " and ".join(condition)
+	else:
+		condition = ""
+		
+	out = webnotes.conn.sql("""select name from `tab%s` %s
+		order by RAND() limit 0,1""" % (doctype, condition))
+
+	return out and out[0][0] or None
+
+def can_make(doctype):
+	return random.random() < prob.get(doctype, {"make": 0.5})["make"]
+
+def how_many(doctype):
+	return random.randrange(*prob.get(doctype, {"qty": (1, 3)})["qty"])
+
+def install():
+	print "Creating Fresh Database..."
+	from webnotes.install_lib.install import Installer
+	inst = Installer('root')
+	inst.import_from_db("demo", verbose = 1)
+
+def complete_setup():
+	print "Complete Setup..."
+	webnotes.get_obj("Setup Control").setup_account({
+		"first_name": "Test",
+		"last_name": "User",
+		"fy_start": "1st Jan",
+		"industry": "Manufacturing",
+		"company_name": company,
+		"company_abbr": "WP",
+		"currency": "USD",
+		"timezone": "America/New York",
+		"country": "United States"
+	})
+
+	import_data("Fiscal_Year")
+	
+def make_items():
+	import_data(["Item", "Item_Price"])
+	import_data("BOM", submit=True)
+	
+def make_customers_suppliers_contacts():
+	import_data(["Customer", "Supplier", "Contact", "Address", "Lead"])
+
+def make_users_and_employees():
+	webnotes.conn.set_value("HR Settings", None, "emp_created_by", "Naming Series")
+	webnotes.conn.commit()
+	
+	import_data(["Profile", "Employee", "Salary_Structure"])
+	
+def import_data(dt, submit=False):
+	if not isinstance(dt, (tuple, list)):
+		dt = [dt]
+	
+	for doctype in dt:
+		print "Importing", doctype.replace("_", " "), "..."
+		webnotes.form_dict = {}
+		if submit:
+			webnotes.form_dict["params"] = json.dumps({"_submit": 1})
+		webnotes.uploaded_file = os.path.join(os.path.dirname(__file__), "demo_docs", doctype+".csv")
+		upload()
+
+if __name__=="__main__":
+	make()
\ No newline at end of file
diff --git a/utilities/page/__init__.py b/utilities/page/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/utilities/page/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/utilities/page/markdown_reference/README.md b/utilities/page/markdown_reference/README.md
deleted file mode 100644
index 80f16cb..0000000
--- a/utilities/page/markdown_reference/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Markdown reference.
\ No newline at end of file
diff --git a/utilities/page/markdown_reference/__init__.py b/utilities/page/markdown_reference/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/utilities/page/markdown_reference/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/utilities/page/markdown_reference/markdown_reference.html b/utilities/page/markdown_reference/markdown_reference.html
deleted file mode 100644
index 767ac36..0000000
--- a/utilities/page/markdown_reference/markdown_reference.html
+++ /dev/null
@@ -1,150 +0,0 @@
-<div class="appframe col col-lg-12">
-	<div class="layout-appframe">
-		<div class="appframe-titlebar">
-			<span class="appframe-title">Markdown Reference</span>
-			<span class="close" onclick="window.history.back()">&times;</span>
-		</div>
-	</div>
-	<div class="layout-main">
-		<div style="width: 60%" class="markdown">
-<h3>Phrase Emphasis</h3>
-<pre><code>*italic*   **bold**
-_italic_   __bold__
-</code></pre>
-
-<h3>Links</h3>
-
-<p>Inline:</p>
-
-<pre><code>An [example](http://url.com/ "Title")
-</code></pre>
-
-<p>Reference-style labels (titles are optional):</p>
-
-<pre><code>An [example][id]. Then, anywhere
-else in the doc, define the link:
-
-   [id]: http://example.com/  "Title"
-</code></pre>
-
-<h3>Images</h3>
-
-<p>Inline (titles are optional):</p>
-
-<pre><code>![alt text](/path/img.jpg "Title")
-</code></pre>
-
-<p>Reference-style:</p>
-
-<pre><code>![alt text][id]
-
-    [id]: /url/to/img.jpg "Title"
-</code></pre>
-
-<h3>Headers</h3>
-
-<p>Setext-style:</p>
-
-<pre><code>Header 1
-========
-
-Header 2
---------
-
-</code></pre>
-
-<p>atx-style (closing #'s are optional):</p>
-
-<pre><code># Header 1 #
-
-
-</code></pre>
-
-<h3>Lists</h3>
-
-<p>Ordered, without paragraphs:</p>
-
-<pre><code>1.  Foo
-2.  Bar
-</code></pre>
-
-<p>Unordered, with paragraphs:</p>
-
-<pre><code>*   A list item.
-
-    With multiple paragraphs.
-
-*   Bar
-</code></pre>
-
-<p>You can nest them:</p>
-
-<pre><code>*   Abacus
-    * ass
-*   Bastard
-    1.  bitch
-    2.  bupkis
-        * BELITTLER
-    3. burper
-*   Cunning
-</code></pre>
-
-<h3>Blockquotes</h3>
-
-<pre><code>&gt; Email-style angle brackets
-
-&gt; are used for blockquotes.
-
-&gt; &gt; And, they can be nested.
-
-&gt; &gt;
-&gt; * You can quote a list.
-&gt; * Etc.
-</code></pre>
-
-<h3>Code Spans</h3>
-
-<pre><code>`&lt;code&gt;` spans are delimited
-by backticks.
-
-You can include literal backticks
-like `` `this` ``.
-</code></pre>
-
-<h3>Preformatted Code Blocks</h3>
-
-<p>Indent every line of a code block by at least 4 spaces or 1 tab, and use a colon at the end of the preceding paragraph.</p>
-
-<pre><code>This is a normal paragraph:
-
-    This is a preformatted
-    code block.
-
-Preceded by a space, the colon
-disappears. :
-
-    This is a preformatted
-    code block.
-</code></pre>
-
-<h3>Horizontal Rules</h3>
-
-<p>Three or more dashes or asterisks:</p>
-
-<pre><code>---
-
-* * *
-
-- - - -
-</code></pre>
-
-<h3>Manual Line Breaks</h3>
-
-<p>End a line with two or more spaces:</p>
-
-<pre><code>Roses are red,
-Violets are blue.
-</code></pre>
-		</div>
-	</div>
-</div>
\ No newline at end of file
diff --git a/utilities/page/markdown_reference/markdown_reference.js b/utilities/page/markdown_reference/markdown_reference.js
deleted file mode 100644
index 8e8fbac..0000000
--- a/utilities/page/markdown_reference/markdown_reference.js
+++ /dev/null
@@ -1 +0,0 @@
-wn.pages['markdown-reference'].onload = function(wrapper) { }
\ No newline at end of file
diff --git a/utilities/page/markdown_reference/markdown_reference.py b/utilities/page/markdown_reference/markdown_reference.py
deleted file mode 100644
index fbba099..0000000
--- a/utilities/page/markdown_reference/markdown_reference.py
+++ /dev/null
@@ -1,2 +0,0 @@
-from __future__ import unicode_literals
-import webnotes
\ No newline at end of file
diff --git a/utilities/page/markdown_reference/markdown_reference.txt b/utilities/page/markdown_reference/markdown_reference.txt
deleted file mode 100644
index 2906644..0000000
--- a/utilities/page/markdown_reference/markdown_reference.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-[
- {
-  "creation": "2012-08-07 12:35:30", 
-  "docstatus": 0, 
-  "modified": "2013-07-11 14:43:28", 
-  "modified_by": "Administrator", 
-  "owner": "Administrator"
- }, 
- {
-  "doctype": "Page", 
-  "icon": "icon-code", 
-  "module": "Utilities", 
-  "name": "__common__", 
-  "page_name": "Markdown Reference", 
-  "standard": "Yes", 
-  "title": "Markdown Reference"
- }, 
- {
-  "doctype": "Page", 
-  "name": "markdown-reference"
- }
-]
\ No newline at end of file
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index 8f168f6..47e35f1 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -1,23 +1,10 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
 from webnotes import msgprint, _
-from webnotes.utils import load_json, cstr, flt, now_datetime
+from webnotes.utils import load_json, cstr, flt, now_datetime, cint
 from webnotes.model.doc import addchild
 
 from controllers.status_updater import StatusUpdater
@@ -90,12 +77,14 @@
 		"""
 		customer_defaults = self.get_customer_defaults()
 					
-		customer_defaults["price_list"] = customer_defaults.get("price_list") or \
+		customer_defaults["price_list_name"] = customer_defaults.get("price_list") or \
 			webnotes.conn.get_value("Customer Group", self.doc.customer_group, "default_price_list") or \
 			self.doc.price_list
 			
-		self.doc.fields.update(customer_defaults)
-		
+		for fieldname, val in customer_defaults.items():
+			if self.meta.get_field(fieldname):
+				self.doc.fields[fieldname] = val
+			
 		if self.meta.get_field("sales_team"):
 			self.set_sales_team_for_customer()
 			
@@ -121,7 +110,22 @@
 			
 			# add child
 			self.doclist.append(sales_person)
-	
+			
+	def get_supplier_defaults(self):
+		out = self.get_default_address_and_contact("supplier")
+
+		supplier = webnotes.doc("Supplier", self.doc.supplier)
+		out["supplier_name"] = supplier.supplier_name
+		if supplier.default_currency:
+			out["currency"] = supplier.default_currency
+		
+		return out
+		
+	def set_supplier_defaults(self):
+		for fieldname, val in self.get_supplier_defaults().items():
+			if self.meta.get_field(fieldname):
+				self.doc.fields[fieldname] = val
+				
 	def get_lead_defaults(self):
 		out = self.get_default_address_and_contact("lead")
 		
@@ -135,10 +139,7 @@
 		
 	def set_lead_defaults(self):
 		self.doc.fields.update(self.get_lead_defaults())
-			
 	
-	# Get Customer Address
-	# -----------------------
 	def get_customer_address(self, args):
 		args = load_json(args)		
 		ret = {
@@ -149,7 +150,10 @@
 			ret.update(map_party_contact_details(args['contact']))
 		
 		return ret
-
+		
+	def set_customer_address(self, args):
+		self.doc.fields.update(self.get_customer_address(args))
+		
 	# TODO deprecate this - used only in sales_order.js
 	def get_shipping_address(self, name):
 		shipping_address = get_default_address("customer", name, is_shipping_address=True)
@@ -183,6 +187,9 @@
 		}
 		ret.update(map_party_contact_details(contact_name=args['contact']))
 		return ret
+		
+	def set_supplier_address(self, args):
+		self.doc.fields.update(self.get_supplier_address(args))
 	
 	# Get Supplier Details
 	# -----------------------
@@ -273,6 +280,9 @@
 			
 			webnotes.bean(event_doclist).insert()
 			
+	def validate_uom_is_integer(self, uom_field, qty_fields):
+		validate_uom_is_integer(self.doclist, uom_field, qty_fields)
+			
 	def validate_with_previous_doc(self, source_dt, ref):
 		for key, val in ref.items():
 			is_child = val.get("is_child_table")
@@ -285,7 +295,7 @@
 						self.compare_values({key: [ref_dn]}, val["compare_fields"], d)
 						if ref_dn not in item_ref_dn:
 							item_ref_dn.append(ref_dn)
-						else:
+						elif not val.get("allow_duplicate_prev_row_id"):
 							webnotes.msgprint(_("Row ") + cstr(d.idx + 1) + 
 								_(": Duplicate row from same ") + key, raise_exception=1)
 					elif ref_dn:
@@ -389,13 +399,13 @@
 	for fieldname in ["contact_person", "contact_display", "contact_email",
 		"contact_mobile", "contact_phone", "contact_designation", "contact_department"]:
 			out[fieldname] = None
-	
-	if not contact_name:
+			
+	if not contact_name and party_field:
 		contact_name = get_default_contact(party_field, party_name)
-	if party_field:
-		contact = webnotes.conn.sql("""select * from `tabContact` where `%s`=%s
-			order by is_primary_contact desc, name asc limit 1""" % (party_field, "%s"), 
-			(party_name,), as_dict=True)
+	
+	if contact_name:
+		contact = webnotes.conn.sql("""select * from `tabContact` where name=%s""", 
+			contact_name, as_dict=True)
 
 		if contact:
 			contact = contact[0]
@@ -409,7 +419,7 @@
 				"contact_designation": contact.get("designation"),
 				"contact_department": contact.get("department")
 			})
-	
+
 	return out
 	
 def get_address_territory(address_doc):
@@ -466,8 +476,8 @@
 				webnotes._dict({"fields": args})))
 	
 	# validate price list conversion rate
-	if meta.get_field("price_list_currency") and args.price_list_name and \
-		args.price_list_currency:
+	if meta.get_field("price_list_currency") and (args.selling_price_list or args.buying_price_list) \
+		and args.price_list_currency:
 		validate_conversion_rate(args.price_list_currency, args.plc_conversion_rate, 
 			meta.get_label("plc_conversion_rate"), args.company)
 		
@@ -479,3 +489,25 @@
 def delete_events(ref_type, ref_name):
 	webnotes.delete_doc("Event", webnotes.conn.sql_list("""select name from `tabEvent` 
 		where ref_type=%s and ref_name=%s""", (ref_type, ref_name)), for_reload=True)
+
+class UOMMustBeIntegerError(webnotes.ValidationError): pass
+
+def validate_uom_is_integer(doclist, uom_field, qty_fields):
+	if isinstance(qty_fields, basestring):
+		qty_fields = [qty_fields]
+	
+	integer_uoms = filter(lambda uom: webnotes.conn.get_value("UOM", uom, 
+		"must_be_whole_number") or None, doclist.get_distinct_values(uom_field))
+		
+	if not integer_uoms:
+		return
+
+	for d in doclist:
+		if d.fields.get(uom_field) in integer_uoms:
+			for f in qty_fields:
+				if d.fields.get(f):
+					if cint(d.fields[f])!=d.fields[f]:
+						webnotes.msgprint(_("For UOM") + " '" + d.fields[uom_field] \
+							+ "': " + _("Quantity cannot be a fraction.") \
+							+ " " + _("In Row") + ": " + str(d.idx),
+							raise_exception=UOMMustBeIntegerError)
diff --git a/website/css/website.css b/website/css/website.css
index f2880e8..cdd277b 100644
--- a/website/css/website.css
+++ b/website/css/website.css
@@ -185,9 +185,4 @@
 fieldset[disabled] .btn-default.active {
   background-color: #a7a9aa;
   border-color: #a7a9aa;
-}
-
-.breadcrumb {
-	margin: 0 -20px 20px;
-	border-radius: 0px;
 }
\ No newline at end of file
diff --git a/website/doctype/about_us_settings/about_us_settings.py b/website/doctype/about_us_settings/about_us_settings.py
index 0872015..139abc2 100644
--- a/website/doctype/about_us_settings/about_us_settings.py
+++ b/website/doctype/about_us_settings/about_us_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/about_us_team_member/about_us_team_member.py b/website/doctype/about_us_team_member/about_us_team_member.py
index 928aa9f..784339d 100644
--- a/website/doctype/about_us_team_member/about_us_team_member.py
+++ b/website/doctype/about_us_team_member/about_us_team_member.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/blog_category/blog_category.py b/website/doctype/blog_category/blog_category.py
index 41f8fb0..7d99e2a 100644
--- a/website/doctype/blog_category/blog_category.py
+++ b/website/doctype/blog_category/blog_category.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/blog_post/blog_post.js b/website/doctype/blog_post/blog_post.js
index b0c1ec2..af4dcc9 100644
--- a/website/doctype/blog_post/blog_post.js
+++ b/website/doctype/blog_post/blog_post.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 cur_frm.cscript.refresh = function(doc) {
 	if(!doc.__islocal && doc.published && !doc.email_sent) {
diff --git a/website/doctype/blog_post/blog_post.py b/website/doctype/blog_post/blog_post.py
index f6dfc60..ad8a0b8 100644
--- a/website/doctype/blog_post/blog_post.py
+++ b/website/doctype/blog_post/blog_post.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 
diff --git a/website/doctype/blog_settings/blog_settings.py b/website/doctype/blog_settings/blog_settings.py
index 928aa9f..784339d 100644
--- a/website/doctype/blog_settings/blog_settings.py
+++ b/website/doctype/blog_settings/blog_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/blogger/blogger.py b/website/doctype/blogger/blogger.py
index a16867d..b35b8ee 100644
--- a/website/doctype/blogger/blogger.py
+++ b/website/doctype/blogger/blogger.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/company_history/company_history.py b/website/doctype/company_history/company_history.py
index 928aa9f..784339d 100644
--- a/website/doctype/company_history/company_history.py
+++ b/website/doctype/company_history/company_history.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/contact_us_settings/contact_us_settings.py b/website/doctype/contact_us_settings/contact_us_settings.py
index 37e49a6..37df106 100644
--- a/website/doctype/contact_us_settings/contact_us_settings.py
+++ b/website/doctype/contact_us_settings/contact_us_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/shopping_cart_price_list/shopping_cart_price_list.py b/website/doctype/shopping_cart_price_list/shopping_cart_price_list.py
index 928aa9f..784339d 100644
--- a/website/doctype/shopping_cart_price_list/shopping_cart_price_list.py
+++ b/website/doctype/shopping_cart_price_list/shopping_cart_price_list.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/shopping_cart_price_list/shopping_cart_price_list.txt b/website/doctype/shopping_cart_price_list/shopping_cart_price_list.txt
index cdda874..361edf6 100644
--- a/website/doctype/shopping_cart_price_list/shopping_cart_price_list.txt
+++ b/website/doctype/shopping_cart_price_list/shopping_cart_price_list.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-20 16:00:18", 
   "docstatus": 0, 
-  "modified": "2013-07-10 14:54:23", 
+  "modified": "2013-08-09 14:47:12", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -14,7 +14,7 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "price_list", 
+  "fieldname": "selling_price_list", 
   "fieldtype": "Link", 
   "in_list_view": 1, 
   "label": "Price List", 
diff --git a/website/doctype/shopping_cart_settings/shopping_cart_settings.js b/website/doctype/shopping_cart_settings/shopping_cart_settings.js
index 74988dc..c38c757 100644
--- a/website/doctype/shopping_cart_settings/shopping_cart_settings.js
+++ b/website/doctype/shopping_cart_settings/shopping_cart_settings.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 $.extend(cur_frm.cscript, {
 	onload: function() {
 		if(cur_frm.doc.__quotation_series) {
diff --git a/website/doctype/shopping_cart_settings/shopping_cart_settings.py b/website/doctype/shopping_cart_settings/shopping_cart_settings.py
index 853eeb4..f06c1f7 100644
--- a/website/doctype/shopping_cart_settings/shopping_cart_settings.py
+++ b/website/doctype/shopping_cart_settings/shopping_cart_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/shopping_cart_settings/test_shopping_cart_settings.py b/website/doctype/shopping_cart_settings/test_shopping_cart_settings.py
index b4ae6fc..cbba566 100644
--- a/website/doctype/shopping_cart_settings/test_shopping_cart_settings.py
+++ b/website/doctype/shopping_cart_settings/test_shopping_cart_settings.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.py b/website/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.py
index 928aa9f..784339d 100644
--- a/website/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.py
+++ b/website/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.py b/website/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.py
index 928aa9f..784339d 100644
--- a/website/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.py
+++ b/website/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/style_settings/style_settings.js b/website/doctype/style_settings/style_settings.js
index 54c4f08..6ecdafa 100644
--- a/website/doctype/style_settings/style_settings.js
+++ b/website/doctype/style_settings/style_settings.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 
 cur_frm.cscript.onload_post_render = function() {
diff --git a/website/doctype/style_settings/style_settings.py b/website/doctype/style_settings/style_settings.py
index f05a8eb..7efe861 100644
--- a/website/doctype/style_settings/style_settings.py
+++ b/website/doctype/style_settings/style_settings.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/website/doctype/top_bar_item/top_bar_item.py b/website/doctype/top_bar_item/top_bar_item.py
index 7f48feb..26d0f76 100644
--- a/website/doctype/top_bar_item/top_bar_item.py
+++ b/website/doctype/top_bar_item/top_bar_item.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/website/doctype/web_page/web_page.js b/website/doctype/web_page/web_page.js
index 274fcab..9e52360 100644
--- a/website/doctype/web_page/web_page.js
+++ b/website/doctype/web_page/web_page.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 $.extend(cur_frm.cscript, {
 	layout: function(doc) {
 		if(!doc.__islocal) {
diff --git a/website/doctype/web_page/web_page.py b/website/doctype/web_page/web_page.py
index 6d0cafa..dbcd68e 100644
--- a/website/doctype/web_page/web_page.py
+++ b/website/doctype/web_page/web_page.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/website/doctype/website_item_group/website_item_group.py b/website/doctype/website_item_group/website_item_group.py
index 928aa9f..784339d 100644
--- a/website/doctype/website_item_group/website_item_group.py
+++ b/website/doctype/website_item_group/website_item_group.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/website_script/website_script.py b/website/doctype/website_script/website_script.py
index 60403d4..2a5b9e2 100644
--- a/website/doctype/website_script/website_script.py
+++ b/website/doctype/website_script/website_script.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/website_settings/website_settings.js b/website/doctype/website_settings/website_settings.js
index 2322b7c..0d0dab6 100644
--- a/website/doctype/website_settings/website_settings.js
+++ b/website/doctype/website_settings/website_settings.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // update parent select
 
diff --git a/website/doctype/website_settings/website_settings.py b/website/doctype/website_settings/website_settings.py
index 182f063..3b27c7c 100644
--- a/website/doctype/website_settings/website_settings.py
+++ b/website/doctype/website_settings/website_settings.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/website/doctype/website_slideshow/website_slideshow.js b/website/doctype/website_slideshow/website_slideshow.js
index bde6d26..a28e1c7 100644
--- a/website/doctype/website_slideshow/website_slideshow.js
+++ b/website/doctype/website_slideshow/website_slideshow.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 cur_frm.cscript.refresh = function(doc) {
 	cur_frm.set_intro("");
 	if(doc.__islocal) {
diff --git a/website/doctype/website_slideshow/website_slideshow.py b/website/doctype/website_slideshow/website_slideshow.py
index 86bd2a0..8bc0447 100644
--- a/website/doctype/website_slideshow/website_slideshow.py
+++ b/website/doctype/website_slideshow/website_slideshow.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/doctype/website_slideshow_item/website_slideshow_item.py b/website/doctype/website_slideshow_item/website_slideshow_item.py
index 928aa9f..784339d 100644
--- a/website/doctype/website_slideshow_item/website_slideshow_item.py
+++ b/website/doctype/website_slideshow_item/website_slideshow_item.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
diff --git a/website/helpers/blog.py b/website/helpers/blog.py
index 2504067..f8f7a42 100644
--- a/website/helpers/blog.py
+++ b/website/helpers/blog.py
@@ -1,5 +1,5 @@
-# Copyright (c) 2012 Web Notes Technologies Pvt Ltd.
-# License: GNU General Public License (v3). For more information see license.txt
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -41,7 +41,7 @@
 	import webnotes.utils
 	
 	for res in result:
-		from webnotes.utils import global_date_format, get_fullname
+		from webnotes.utils import global_date_format
 		res['published'] = global_date_format(res['creation'])
 		if not res['content']:
 			res['content'] = webnotes.webutils.get_html(res['page_name'])
@@ -92,36 +92,20 @@
 		comment_doctype='Blog Post' and comment_docname=%s and
 		ifnull(unsubscribed, 0)=0""", args.get('comment_docname'))]
 	
-	blog = webnotes.conn.sql("""select * from `tabBlog Post` where name=%s""", 
-		args.get('comment_docname'), as_dict=1)[0]
+	blog = webnotes.doc("Blog Post", args.get("comment_docname"))
+	blogger_profile = webnotes.conn.get_value("Blogger", blog.blogger, "profile")
+	blogger_email = webnotes.conn.get_value("Profile", blogger_profile, "email")
 	
 	from webnotes.utils.email_lib.bulk import send
-	send(recipients=list(set(commentors + [blog['owner']])), 
+	send(recipients=list(set(commentors + [blogger_email])), 
 		doctype='Comment', 
 		email_field='comment_by', 
-		subject='New Comment on Blog: ' + blog['title'], 
-		message='%(comment)s<p>By %(comment_by_fullname)s</p>' % args)
+		subject='New Comment on Blog: ' + blog.title, 
+		message='%(comment)s<p>By %(comment_by_fullname)s</p>' % args,
+		ref_doctype='Blog Post', ref_docname=blog.name)
 	
 	return comment_html.replace("\n", "")
 
-@webnotes.whitelist(allow_guest=True)
-def add_subscriber(name, email_id):
-	"""add blog subscriber to lead"""
-	name = webnotes.conn.sql("""select name from tabLead where email_id=%s""", email)
-	
-	from webnotes.model.doc import Document
-	if name:
-		lead = Document('Lead', name[0][0])
-	else:
-		lead = Document('Lead')
-	
-	if not lead.source: lead.source = 'Blog'
-	lead.unsubscribed = 0
-	lead.blog_subscriber = 1
-	lead.lead_name = name
-	lead.email_id = email
-	lead.save()
-
 def get_blog_content(blog_page_name):
 	import webnotes.webutils
 	content = webnotes.webutils.get_html(blog_page_name)
diff --git a/website/helpers/blog_feed.py b/website/helpers/blog_feed.py
index c79c5cc..577cde6 100644
--- a/website/helpers/blog_feed.py
+++ b/website/helpers/blog_feed.py
@@ -1,24 +1,5 @@
-# Copyright (c) 2012 Web Notes Technologies Pvt Ltd (http://erpnext.com)
-# 
-# MIT License (MIT)
-# 
-# Permission is hereby granted, free of charge, to any person obtaining a 
-# copy of this software and associated documentation files (the "Software"), 
-# to deal in the Software without restriction, including without limitation 
-# the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-# and/or sell copies of the Software, and to permit persons to whom the 
-# Software is furnished to do so, subject to the following conditions:
-# 
-# The above copyright notice and this permission notice shall be included in 
-# all copies or substantial portions of the Software.
-# 
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
-# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
-# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
-# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
-# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
-# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-# 
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt 
 
 from __future__ import unicode_literals
 """
diff --git a/website/helpers/cart.py b/website/helpers/cart.py
index 2149534..b6a7a01 100644
--- a/website/helpers/cart.py
+++ b/website/helpers/cart.py
@@ -1,5 +1,5 @@
-# Copyright (c) 2012 Web Notes Technologies Pvt Ltd.
-# License: GNU General Public License (v3). For more information see license.txt
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
@@ -297,7 +297,7 @@
 	
 def set_price_list_and_rate(quotation, cart_settings, billing_territory):
 	"""set price list based on billing territory"""
-	quotation.doc.price_list_name = cart_settings.get_price_list(billing_territory)
+	quotation.doc.selling_price_list = cart_settings.get_price_list(billing_territory)
 	
 	# reset values
 	quotation.doc.price_list_currency = quotation.doc.currency = \
@@ -309,7 +309,7 @@
 	quotation.run_method("set_price_list_and_item_details")
 	
 	# set it in cookies for using in product page
-	webnotes.cookies[b"price_list_name"] = quotation.doc.price_list_name
+	webnotes.cookies[b"selling_price_list"] = quotation.doc.selling_price_list
 	
 def set_taxes(quotation, cart_settings, billing_territory):
 	"""set taxes based on billing territory"""
diff --git a/website/helpers/contact.py b/website/helpers/contact.py
index bf1521e..05ae4f7 100644
--- a/website/helpers/contact.py
+++ b/website/helpers/contact.py
@@ -1,23 +1,9 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 
 import webnotes
-from core.doctype.communication.communication import make
 from webnotes.utils import now
 
 max_communications_per_hour = 300
diff --git a/website/helpers/make_web_include_files.py b/website/helpers/make_web_include_files.py
index fe6f05c..7ff3d6a 100644
--- a/website/helpers/make_web_include_files.py
+++ b/website/helpers/make_web_include_files.py
@@ -1,5 +1,5 @@
-# Copyright (c) 2012 Web Notes Technologies Pvt Ltd.
-# License: GNU General Public License (v3). For more information see license.txt
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 import os
 import webnotes
diff --git a/website/helpers/partner.py b/website/helpers/partner.py
index cfe66b9..404894e 100644
--- a/website/helpers/partner.py
+++ b/website/helpers/partner.py
@@ -1,5 +1,5 @@
-# Copyright (c) 2012 Web Notes Technologies Pvt Ltd.
-# License: GNU General Public License (v3). For more information see license.txt
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 import webnotes
diff --git a/website/helpers/product.py b/website/helpers/product.py
index 168c14c..8d817d0 100644
--- a/website/helpers/product.py
+++ b/website/helpers/product.py
@@ -1,5 +1,5 @@
-# Copyright (c) 2012 Web Notes Technologies Pvt Ltd.
-# License: GNU General Public License (v3). For more information see license.txt
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 
@@ -16,7 +16,7 @@
 	
 	cart_quotation = _get_cart_quotation()
 	
-	price_list = webnotes.cookies.get("price_list_name").value
+	price_list = webnotes.cookies.get("selling_price_list").value
 
 	warehouse = webnotes.conn.get_value("Item", item_code, "website_warehouse")
 	if warehouse:
@@ -28,7 +28,7 @@
 		in_stock = -1
 		
 	price = price_list and webnotes.conn.sql("""select ref_rate, ref_currency from
-		`tabItem Price` where parent=%s and price_list_name=%s""", 
+		`tabItem Price` where parent=%s and price_list=%s""", 
 		(item_code, price_list), as_dict=1) or []
 	
 	price = price and price[0] or None
diff --git a/website/helpers/sitemap.py b/website/helpers/sitemap.py
index 3956da1..fb0d070 100644
--- a/website/helpers/sitemap.py
+++ b/website/helpers/sitemap.py
@@ -1,5 +1,5 @@
-# Copyright (c) 2012 Web Notes Technologies Pvt Ltd.
-# License: GNU General Public License (v3). For more information see license.txt
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
 
diff --git a/website/helpers/slideshow.py b/website/helpers/slideshow.py
index 4c64c55..7e3c398 100644
--- a/website/helpers/slideshow.py
+++ b/website/helpers/slideshow.py
@@ -1,18 +1,5 @@
-# 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/>.
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
 
 import webnotes
 
diff --git a/website/page/website_home/website_home.js b/website/page/website_home/website_home.js
index 11a22d5..a197f69 100644
--- a/website/page/website_home/website_home.js
+++ b/website/page/website_home/website_home.js
@@ -1,5 +1,5 @@
-// ERPNext: Copyright 2013 Web Notes Technologies Pvt Ltd
-// GNU General Public License. See "license.txt"
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt"
 
 wn.module_page["Website"] = [
 	{
diff --git a/website/templates/html/footer.html b/website/templates/html/footer.html
index 3161987..0e6cca7 100644
--- a/website/templates/html/footer.html
+++ b/website/templates/html/footer.html
@@ -23,7 +23,7 @@
 		</div>
 		{% endif %}
 		<p style="float: right; clear: right;">
-			<a style="font-size: 90%; color: #888;" href="attributions">ERPNext Powered</a>
+			<a style="font-size: 90%; color: #888;" href="http://erpnext.org">ERPNext Powered</a>
 		</p>
 		<div class="web-footer-menu">
 			<ul>
diff --git a/website/templates/html/navbar.html b/website/templates/html/navbar.html
index 9166cde..68706ec 100644
--- a/website/templates/html/navbar.html
+++ b/website/templates/html/navbar.html
@@ -1,5 +1,5 @@
 <div class="navbar">
-	{%- if brand_html %}<a class="navbar-brand" href="index">{{ brand_html }}</a>{% endif -%}
+	<a class="navbar-brand" href="index">{{ brand_html or "<i class='icon-home'></i>"}}</a>
 	<div class="container">
 		<button type="button" class="navbar-toggle" data-toggle="collapse" 
 			data-target=".navbar-responsive-collapse">
diff --git a/website/templates/js/blog.js b/website/templates/js/blog.js
index 2154d47..252df64 100644
--- a/website/templates/js/blog.js
+++ b/website/templates/js/blog.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // js inside blog page
 
diff --git a/website/templates/js/blog_page.js b/website/templates/js/blog_page.js
index efdd6bc..11656c8 100644
--- a/website/templates/js/blog_page.js
+++ b/website/templates/js/blog_page.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // js inside blog page
 
diff --git a/website/templates/js/cart.js b/website/templates/js/cart.js
index 2f5ad31..114f85b 100644
--- a/website/templates/js/cart.js
+++ b/website/templates/js/cart.js
@@ -1,24 +1,11 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 // js inside blog page
 
 $(document).ready(function() {
 	wn.cart.bind_events();
-	wn.call({
+	return wn.call({
 		type: "POST",
 		method: "website.helpers.cart.get_cart_quotation",
 		callback: function(r) {
@@ -204,7 +191,7 @@
 	},
 	
 	apply_shipping_rule: function(rule, btn) {
-		wn.call({
+		return wn.call({
 			btn: btn,
 			type: "POST",
 			method: "website.helpers.cart.apply_shipping_rule",
@@ -249,15 +236,15 @@
 				});
 			
 		$address_wrapper.find('input[type="checkbox"]').on("click", function() {
-			if($(this).is(":checked")) {
+			if($(this).prop("checked")) {
 				var me = this;
 				$address_wrapper.find('input[type="checkbox"]').each(function(i, chk) {
 					if($(chk).attr("data-address-name")!=$(me).attr("data-address-name")) {
-						$(chk).removeAttr("checked");
+						$(chk).prop("checked", false);
 					}
 				});
 				
-				wn.call({
+				return wn.call({
 					type: "POST",
 					method: "website.helpers.cart.update_cart_address",
 					args: {
@@ -276,7 +263,7 @@
 		});
 		
 		$address_wrapper.find('input[type="checkbox"][data-address-name="'+ address_name +'"]')
-			.attr("checked", "checked");
+			.prop("checked", true);
 			
 		$address_wrapper.find(".accordion-body").collapse({
 			parent: $address_wrapper,
@@ -288,7 +275,7 @@
 	},
 	
 	place_order: function() {
-		wn.call({
+		return wn.call({
 			type: "POST",
 			method: "website.helpers.cart.place_order",
 			callback: function(r) {
diff --git a/website/templates/js/contact.js b/website/templates/js/contact.js
index f7310ad..a28abba 100644
--- a/website/templates/js/contact.js
+++ b/website/templates/js/contact.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 $(document).ready(function() { 
 
 	$('.btn-send').click(function() {
diff --git a/website/templates/js/product_list.js b/website/templates/js/product_list.js
index 6873973..801bc80 100644
--- a/website/templates/js/product_list.js
+++ b/website/templates/js/product_list.js
@@ -1,3 +1,6 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
+
 window.get_product_list = function() {
 	$(".more-btn .btn").click(function() {
 		window.get_product_list()
diff --git a/website/templates/js/product_page.js b/website/templates/js/product_page.js
index adfeb5e..b8c65ec 100644
--- a/website/templates/js/product_page.js
+++ b/website/templates/js/product_page.js
@@ -1,18 +1,5 @@
-// 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/>.
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+// License: GNU General Public License v3. See license.txt
 
 $(document).ready(function() {
 	var item_code = $('[itemscope] [itemprop="name"]').text().trim();
diff --git a/website/templates/pages/attributions.html b/website/templates/pages/attributions.html
deleted file mode 100644
index 0f534a4..0000000
--- a/website/templates/pages/attributions.html
+++ /dev/null
@@ -1,140 +0,0 @@
-{% extends "app/website/templates/html/outer.html" %}
-
-{% block header %}
-<style>
-.layout-attributions td:first-child {
-	width: 30%;
-}
-</style>
-{% endblock %}
-
-{% set title="ERPNext - Web Based, Open Source ERP" %}
-
-{% block content %}
-<div class="layout-attributions col col-lg-12">
-	<h3>This website is made using these awesome Open Source projects <i class="icon-heart" style="color: red"></i></h3>
-	<hr>
-	<table class="table table-bordered table-striped">
-		<tbody>
-		<tr>
-			<td><a href="https://github.com/webnotes/erpnext">ERPNext</a></td>
-			<td>Web based, Open Source ERP. <br>
-				Get top class hosting and support at <a href="https://erpnext.com">ERPNext.com</a></td>
-		</tr>
-		<tr>
-			<td><a href="https://github.com/webnotes/wnframework">wnframework</a></td>
-			<td>The full stack Python + Javascript web application framework on which ERPNext is built.</td>
-		</tr>
-		<tr>
-			<td><a href="http://en.wikipedia.org/wiki/Linux">Linux Operating System</a></td>
-			<td>The operating system that brought a revolution in Open Source software.</td>
-		</tr>
-		<tr>
-			<td><a href="http://www.mysql.com/">MySQL Database</a></td>
-			<td>The world's most popular Open Source Database.</td>
-		</tr>
-		<tr>
-			<td><a href="http://httpd.apache.org">Apache HTTPD web server</a></td>
-			<td>The Number One HTTP Server On The Internet.</td>
-		</tr>
-		<tr>
-			<td><a href="http://memcached.org/">Memcached</a></td>
-			<td>Free & open source, high-performance, distributed memory object caching system.</td>
-		</tr>
-		<tr>
-			<td><a href="http://python.org/">Python Programming Language</a></td>
-			<td>The "batteries included" language that lets you write elegant code, quickly.<br><br>Python Libraries:
-			<ul>
-				<li>MySQLdb
-				<li>pytz
-				<li>jinja2
-				<li>markdown2
-				<li>dateutil
-				<li>termcolor
-				<li>python-memcached
-			</ul>
-			</td>
-		</tr>
-		<tr>
-			<td><a href="http://git-scm.com/">Git - Source Code Management</a></td>
-			<td>Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.<br><br>
-				Kindly hosted on the web by <a href="https://github.com">GitHub</a>: The service that makes it easier for individuals and teams to write better code, faster. </td>
-		</tr>
-		<tr>
-			<td><a href="http://jquery.com/">JQuery Javascript Libary</a></td>
-			<td>The write less, do more Javascript Library.</td>
-		</tr>
-		<tr>
-			<td><a href="http://jqueryui.com/">JQuery UI - User Interface Library</a></td>
-			<td>A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.</td>
-		</tr>
-		<tr>
-			<td><a href="http://twitter.github.com/bootstrap/index.html">Bootstrap CSS Framework</a></td>
-			<td>Sleek, intuitive, and powerful front-end framework for faster and easier web development.</td>
-		</tr>
-		<tr>
-			<td><a href="http://fortawesome.github.com/Font-Awesome/">Font Awesome - Icons</a></td>
-			<td>The iconic font designed for use with Twitter Bootstrap.</td>
-		</tr>
-		<tr>
-			<td><a href="http://www.tinymce.com/">TinyMCE Rich Text Editor</a></td>
-			<td>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL by Moxiecode Systems AB.</td>
-		</tr>
-		<tr>
-			<td><a href="https://github.com/mleibman/SlickGrid">SlickGrid</a></td>
-			<td>A lightning fast JavaScript grid/spreadsheet.</td>
-		</tr>		
-		<tr>
-			<td><a href="http://arshaw.com/fullcalendar/">FullCalendar</a></td>
-			<td>FullCalendar is a jQuery plugin that provides a full-sized, drag and drop calendar.</td>
-		</tr>
-		<tr>
-			<td><a href="http://www.flotcharts.org/">Flot Charting Library</a></td>
-			<td>Attractive JavaScript plotting for jQuery.</td>
-		</tr>		
-		<tr>
-			<td><a href="http://ace.ajax.org/">Ace Code Editor</a></td>
-			<td>High Performance Code Editor for the web.</td>
-		</tr>
-		<tr>
-			<td><a href="http://taitems.github.com/jQuery.Gantt/">JQuery.Gantt - Gantt Charts</a></td>
-			<td>Draw Gantt charts with the famous jQuery ease of development.</td>
-		</tr>
-		<tr>
-			<td><a href="http://jscolor.com/">JSColor - Color Picker</a></td>
-			<td>HTML/Javascript Color Picker.</td>
-		</tr>
-		<tr>
-			<td><a href="http://qunitjs.com/">QUnit</a></td>
-			<td>A JavaScript Unit Testing framework.</td>
-		</tr>
-		<tr>
-			<td><a href="https://github.com/dcneiner/Downloadify">Downloadify - Flash Download Widget</a></td>
-			<td>A tiny javascript + Flash library that enables the creation and download of text files without server interaction.</td>
-		</tr>				
-		</tbody>
-	</table>
-	
-	<hr>
-	<h3>ERPNext License: GNU/General Public License</h3>
-	<div class="well">
-	<p><b>ERPNext - Open Source, web based ERP</b></p>
-	<p>Copyright &copy; 2012, Web Notes Technologies Pvt Ltd, India</p>
-
-	<p>This program is free software: you can redistribute it and/or modify
-	    it under the terms of the <b>GNU General Public License</b> as published by
-	    the Free Software Foundation, either version 3 of the License, or
-	    (at your option) any later version.</p>
-
-	    <p>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.</p>
-
- 		<p>For complete license see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a></p>
-	</div>
-	<p class="alert">Note: A link to this page must be easily accessible and all other ERPNext branding must remain as it is.</p>
-	<hr>
-	<p>For more information please write to us at support@erpnext.com</p>
-</div>
-{% endblock %}
\ No newline at end of file
