From 1ead1fcef1d8fe01fadd56ea6611063924593e76 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 27 Jul 2011 15:41:11 +0530 Subject: [PATCH 01/84] added email_digest UI --- setup/doctype/email_digest/__init__.py | 0 .../doctype/email_digest/email_digest.coffee | 71 +++++++++++++++ setup/doctype/email_digest/email_digest.js | 80 +++++++++++++++++ setup/doctype/email_digest/email_digest.txt | 87 +++++++++++++++++++ 4 files changed, 238 insertions(+) create mode 100644 setup/doctype/email_digest/__init__.py create mode 100644 setup/doctype/email_digest/email_digest.coffee create mode 100644 setup/doctype/email_digest/email_digest.js create mode 100644 setup/doctype/email_digest/email_digest.txt diff --git a/setup/doctype/email_digest/__init__.py b/setup/doctype/email_digest/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/setup/doctype/email_digest/email_digest.coffee b/setup/doctype/email_digest/email_digest.coffee new file mode 100644 index 00000000000..d6f500269c7 --- /dev/null +++ b/setup/doctype/email_digest/email_digest.coffee @@ -0,0 +1,71 @@ +content_items = ['Sales','Expenses','Bank Balance','Activity'] +freq = ['Daily', 'Weekly'] + +# make a grid with items and columns of checkboxes +# Parameters: +# label (main heading) +# items = [] (rows) +# columns = [] (columns of checks) + +class CheckGrid + constructor: (@parent, @label, @items, @columns) -> + @tab = make_table @parent, @items.length + 1, @columns.length + 1, '80%' + @checks = {} + + # render heads + for i in [0..@columns.length-1] + $td(@tab, 0, i+1).innerHTML = @columns[i] + + # render rows + for i in [0..@items.length-1] + $td(@tab, i+1, 0).innerHTML = @items[i] + + # render checkboxes for this row + @checks[@items[i]] = {} + for c in [0..@columns.length-1] + check = $a_input $td(@tab, i+1, c+1), 'checkbox' + + # tag keys to checkbox + check.item = @items[i] + check.column = @columns[c] + + # add in my checks + @checks[@items[i]][@columns[c]] = check + + # get the values of the checkbox in a double dict + get: => + val = {} + for item in keys @checks + for column in keys @checks[item] + check = @checks[item][column] + if not val[check.item] + val[check.item] = {} + val[check.item][check.column] = if check.checked then 1 else 0 + val + + # set the values of the grid + set: (val) => + for item in keys @checks + for column in keys @checks[item] + check = @checks[item][column] + check.checked = val[check.item][check.row] + +# attach it to onload +cx = cur_frm.cscript +cx.onload = (doc, dt, dn) -> + + # make the content grid + cx.content_grid = new CheckGrid cur_frm.fields_dict.Body.wrapper, 'Email Settings', + content_items, freq + + # make the email grid + cx.email_grid = new CheckGrid cur_frm.fields_dict.Body.wrapper, 'Send To', + ['test1@erpnext', 'test2@erpnext'], freq + +# update the data before sending +cx.validate = (doc, dt, dn) -> + doc.content_config = JSON.stringify cx.content_grid.get() + doc.email_config = JSON.stringify cx.email_grid.get() + + + \ No newline at end of file diff --git a/setup/doctype/email_digest/email_digest.js b/setup/doctype/email_digest/email_digest.js new file mode 100644 index 00000000000..77d11e6cf78 --- /dev/null +++ b/setup/doctype/email_digest/email_digest.js @@ -0,0 +1,80 @@ +(function() { + var CheckGrid, content_items, cx, freq; + var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + content_items = ['Sales', 'Expenses', 'Bank Balance', 'Activity']; + freq = ['Daily', 'Weekly']; + CheckGrid = (function() { + function CheckGrid(parent, label, items, columns) { + var c, check, i, _ref, _ref2, _ref3; + this.parent = parent; + this.label = label; + this.items = items; + this.columns = columns; + this.set = __bind(this.set, this); + this.get = __bind(this.get, this); + this.tab = make_table(this.parent, this.items.length + 1, this.columns.length + 1, '80%'); + this.checks = {}; + for (i = 0, _ref = this.columns.length - 1; 0 <= _ref ? i <= _ref : i >= _ref; 0 <= _ref ? i++ : i--) { + $td(this.tab, 0, i + 1).innerHTML = this.columns[i]; + } + for (i = 0, _ref2 = this.items.length - 1; 0 <= _ref2 ? i <= _ref2 : i >= _ref2; 0 <= _ref2 ? i++ : i--) { + $td(this.tab, i + 1, 0).innerHTML = this.items[i]; + this.checks[this.items[i]] = {}; + for (c = 0, _ref3 = this.columns.length - 1; 0 <= _ref3 ? c <= _ref3 : c >= _ref3; 0 <= _ref3 ? c++ : c--) { + check = $a_input($td(this.tab, i + 1, c + 1), 'checkbox'); + check.item = this.items[i]; + check.column = this.columns[c]; + this.checks[this.items[i]][this.columns[c]] = check; + } + } + } + CheckGrid.prototype.get = function() { + var check, column, item, val, _i, _j, _len, _len2, _ref, _ref2; + val = {}; + _ref = keys(this.checks); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + item = _ref[_i]; + _ref2 = keys(this.checks[item]); + for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { + column = _ref2[_j]; + check = this.checks[item][column]; + if (!val[check.item]) { + val[check.item] = {}; + } + val[check.item][check.column] = check.checked ? 1 : 0; + } + } + return val; + }; + CheckGrid.prototype.set = function(val) { + var check, column, item, _i, _len, _ref, _results; + _ref = keys(this.checks); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + item = _ref[_i]; + _results.push((function() { + var _j, _len2, _ref2, _results2; + _ref2 = keys(this.checks[item]); + _results2 = []; + for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { + column = _ref2[_j]; + check = this.checks[item][column]; + _results2.push(check.checked = val[check.item][check.row]); + } + return _results2; + }).call(this)); + } + return _results; + }; + return CheckGrid; + })(); + cx = cur_frm.cscript; + cx.onload = function(doc, dt, dn) { + cx.content_grid = new CheckGrid(cur_frm.fields_dict.Body.wrapper, 'Email Settings', content_items, freq); + return cx.email_grid = new CheckGrid(cur_frm.fields_dict.Body.wrapper, 'Send To', ['test1@erpnext', 'test2@erpnext'], freq); + }; + cx.validate = function(doc, dt, dn) { + doc.content_config = JSON.stringify(cx.content_grid.get()); + return doc.email_config = JSON.stringify(cx.email_grid.get()); + }; +}).call(this); diff --git a/setup/doctype/email_digest/email_digest.txt b/setup/doctype/email_digest/email_digest.txt new file mode 100644 index 00000000000..4258f84a04d --- /dev/null +++ b/setup/doctype/email_digest/email_digest.txt @@ -0,0 +1,87 @@ +# DocType, Email Digest +[ + + # These values are common in all dictionaries + { + 'creation': '2011-07-27 14:23:09', + 'docstatus': 0, + 'modified': '2011-07-27 15:22:11', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all DocType + { + '_last_update': '1311759390', + 'colour': 'White:FFF', + 'doctype': 'DocType', + 'issingle': 1, + 'module': 'Setup', + 'name': '__common__', + 'section_style': 'Simple', + 'show_in_menu': 0, + 'version': 3 + }, + + # These values are common for all DocField + { + 'doctype': 'DocField', + 'name': '__common__', + 'parent': 'Email Digest', + 'parentfield': 'fields', + 'parenttype': 'DocType', + 'permlevel': 0 + }, + + # These values are common for all DocPerm + { + 'create': 1, + 'doctype': 'DocPerm', + 'idx': 1, + 'name': '__common__', + 'parent': 'Email Digest', + 'parentfield': 'permissions', + 'parenttype': 'DocType', + 'permlevel': 0, + 'read': 1, + 'role': 'Administrator', + 'write': 1 + }, + + # DocType, Email Digest + { + 'doctype': 'DocType', + 'name': 'Email Digest' + }, + + # DocPerm + { + 'doctype': 'DocPerm' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'HTML', + 'idx': 1, + 'label': 'Body' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'content_config', + 'fieldtype': 'Text', + 'idx': 2, + 'label': 'Content Config' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'email_config', + 'fieldtype': 'Text', + 'idx': 3, + 'label': 'Email Config' + } +] \ No newline at end of file From 5f3010735b60e20df00f1fb6003bfba53e531dee Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 27 Jul 2011 17:43:21 +0530 Subject: [PATCH 02/84] updated email digest ui --- .../lease_agreement_list.txt | 4 +- ...ase_monthly_future_installment_inflows.txt | 4 +- .../lease_overdue_age_wise.txt | 4 +- .../lease_receipt_summary_year_to_date.txt | 4 +- .../lease_receipts_client_wise.txt | 4 +- ...ease_yearly_future_installment_inflows.txt | 4 +- .../doctype/email_digest/email_digest.coffee | 64 ++++++++--- setup/doctype/email_digest/email_digest.js | 102 +++++++++++------- setup/doctype/email_digest/email_digest.txt | 8 +- 9 files changed, 129 insertions(+), 69 deletions(-) diff --git a/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt b/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt index 164da38af20..19f5e1d63b0 100644 --- a/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt +++ b/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2011-07-27 13:14:29', + 'creation': '2011-07-27 16:17:04', 'docstatus': 0, - 'modified': '2011-07-27 13:14:29', + 'modified': '2011-07-27 16:17:04', 'modified_by': 'Administrator', 'owner': 'Administrator' }, diff --git a/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt b/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt index a531bb9f276..bbb62bb61be 100644 --- a/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt +++ b/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2011-07-27 13:14:29', + 'creation': '2011-07-27 16:17:04', 'docstatus': 0, - 'modified': '2011-07-27 13:14:29', + 'modified': '2011-07-27 16:17:04', 'modified_by': 'Administrator', 'owner': 'Administrator' }, diff --git a/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt b/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt index dcd0f94aaaf..3c633771005 100644 --- a/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt +++ b/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2011-07-27 13:14:29', + 'creation': '2011-07-27 16:17:04', 'docstatus': 0, - 'modified': '2011-07-27 13:14:29', + 'modified': '2011-07-27 16:17:04', 'modified_by': 'Administrator', 'owner': 'Administrator' }, diff --git a/accounts/search_criteria/lease_receipt_summary_year_to_date/lease_receipt_summary_year_to_date.txt b/accounts/search_criteria/lease_receipt_summary_year_to_date/lease_receipt_summary_year_to_date.txt index 405c8a30c57..c61f17bb656 100644 --- a/accounts/search_criteria/lease_receipt_summary_year_to_date/lease_receipt_summary_year_to_date.txt +++ b/accounts/search_criteria/lease_receipt_summary_year_to_date/lease_receipt_summary_year_to_date.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2011-07-27 13:14:29', + 'creation': '2011-07-27 16:17:04', 'docstatus': 0, - 'modified': '2011-07-27 13:14:29', + 'modified': '2011-07-27 16:17:04', 'modified_by': 'Administrator', 'owner': 'Administrator' }, diff --git a/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt b/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt index eff40878e49..ff3194c5a57 100644 --- a/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt +++ b/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2011-07-27 13:14:29', + 'creation': '2011-07-27 16:17:04', 'docstatus': 0, - 'modified': '2011-07-27 13:14:29', + 'modified': '2011-07-27 16:17:04', 'modified_by': 'Administrator', 'owner': 'Administrator' }, diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt b/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt index aa522241b4b..c64be0a598f 100644 --- a/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt +++ b/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2011-07-27 13:14:29', + 'creation': '2011-07-27 16:17:04', 'docstatus': 0, - 'modified': '2011-07-27 13:14:29', + 'modified': '2011-07-27 16:17:04', 'modified_by': 'Administrator', 'owner': 'Administrator' }, diff --git a/setup/doctype/email_digest/email_digest.coffee b/setup/doctype/email_digest/email_digest.coffee index d6f500269c7..1b17d5bb4fc 100644 --- a/setup/doctype/email_digest/email_digest.coffee +++ b/setup/doctype/email_digest/email_digest.coffee @@ -1,29 +1,46 @@ content_items = ['Sales','Expenses','Bank Balance','Activity'] -freq = ['Daily', 'Weekly'] # make a grid with items and columns of checkboxes # Parameters: +# parent # label (main heading) # items = [] (rows) # columns = [] (columns of checks) +# widths +# description class CheckGrid - constructor: (@parent, @label, @items, @columns) -> - @tab = make_table @parent, @items.length + 1, @columns.length + 1, '80%' + constructor: (@args) -> + $.extend @, args + @wrapper = $a @parent, 'div', 'check-grid round' + @render() + + render: -> + $a @wrapper, 'h3', 'check-grid-title', null, @label + + if @description + $a @wrapper, 'div', 'help-box', null, @description + + @tab = make_table @wrapper, @items.length + 1, @columns.length, '100%', @widths @checks = {} # render heads for i in [0..@columns.length-1] - $td(@tab, 0, i+1).innerHTML = @columns[i] - + $($td(@tab, 0, i)) + .addClass('check-grid-head gradient') + .html @columns[i] + + @render_rows() + + render_rows: -> # render rows for i in [0..@items.length-1] $td(@tab, i+1, 0).innerHTML = @items[i] # render checkboxes for this row @checks[@items[i]] = {} - for c in [0..@columns.length-1] - check = $a_input $td(@tab, i+1, c+1), 'checkbox' + for c in [1..@columns.length-1] + check = $a_input $td(@tab, i+1, c), 'checkbox' # tag keys to checkbox check.item = @items[i] @@ -38,8 +55,7 @@ class CheckGrid for item in keys @checks for column in keys @checks[item] check = @checks[item][column] - if not val[check.item] - val[check.item] = {} + val[check.item] or= {} val[check.item][check.column] = if check.checked then 1 else 0 val @@ -47,25 +63,39 @@ class CheckGrid set: (val) => for item in keys @checks for column in keys @checks[item] - check = @checks[item][column] - check.checked = val[check.item][check.row] + if val[item][column] + @checks[item][column] .checked = val[item][column] + return # attach it to onload cx = cur_frm.cscript cx.onload = (doc, dt, dn) -> # make the content grid - cx.content_grid = new CheckGrid cur_frm.fields_dict.Body.wrapper, 'Email Settings', - content_items, freq + cx.content_grid = new CheckGrid + parent: cur_frm.fields_dict.Body.wrapper + label: 'Email Settings' + items: content_items + columns: ['Item','Daily','Weekly'] + widths: ['60%', '20%', '20%'] + description: 'Select items to be compiled for Email Digest' # make the email grid - cx.email_grid = new CheckGrid cur_frm.fields_dict.Body.wrapper, 'Send To', - ['test1@erpnext', 'test2@erpnext'], freq + cx.email_grid = new CheckGrid + parent: cur_frm.fields_dict.Body.wrapper + label: 'Send To' + items: ['test1@erpnext', 'test2@erpnext'] + columns: ['Email','Daily','Weekly'] + widths: ['60%', '20%', '20%'] + description: 'Select who gets daily and weekly mails' + + cx.content_grid.set JSON.parse doc.content_config if doc.content_config + cx.email_grid.set JSON.parse doc.email_config if doc.email_config + + return # update the data before sending cx.validate = (doc, dt, dn) -> doc.content_config = JSON.stringify cx.content_grid.get() doc.email_config = JSON.stringify cx.email_grid.get() - - \ No newline at end of file diff --git a/setup/doctype/email_digest/email_digest.js b/setup/doctype/email_digest/email_digest.js index 77d11e6cf78..ddb13f473a7 100644 --- a/setup/doctype/email_digest/email_digest.js +++ b/setup/doctype/email_digest/email_digest.js @@ -1,35 +1,51 @@ (function() { - var CheckGrid, content_items, cx, freq; + var CheckGrid, content_items, cx; var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; content_items = ['Sales', 'Expenses', 'Bank Balance', 'Activity']; - freq = ['Daily', 'Weekly']; CheckGrid = (function() { - function CheckGrid(parent, label, items, columns) { - var c, check, i, _ref, _ref2, _ref3; - this.parent = parent; - this.label = label; - this.items = items; - this.columns = columns; + function CheckGrid(args) { + this.args = args; this.set = __bind(this.set, this); this.get = __bind(this.get, this); - this.tab = make_table(this.parent, this.items.length + 1, this.columns.length + 1, '80%'); + $.extend(this, args); + this.wrapper = $a(this.parent, 'div', 'check-grid round'); + this.render(); + } + CheckGrid.prototype.render = function() { + var i, _ref; + $a(this.wrapper, 'h3', 'check-grid-title', null, this.label); + if (this.description) { + $a(this.wrapper, 'div', 'help-box', null, this.description); + } + this.tab = make_table(this.wrapper, this.items.length + 1, this.columns.length, '100%', this.widths); this.checks = {}; for (i = 0, _ref = this.columns.length - 1; 0 <= _ref ? i <= _ref : i >= _ref; 0 <= _ref ? i++ : i--) { - $td(this.tab, 0, i + 1).innerHTML = this.columns[i]; + $($td(this.tab, 0, i)).addClass('check-grid-head gradient').html(this.columns[i]); } - for (i = 0, _ref2 = this.items.length - 1; 0 <= _ref2 ? i <= _ref2 : i >= _ref2; 0 <= _ref2 ? i++ : i--) { + return this.render_rows(); + }; + CheckGrid.prototype.render_rows = function() { + var c, check, i, _ref, _results; + _results = []; + for (i = 0, _ref = this.items.length - 1; 0 <= _ref ? i <= _ref : i >= _ref; 0 <= _ref ? i++ : i--) { $td(this.tab, i + 1, 0).innerHTML = this.items[i]; this.checks[this.items[i]] = {}; - for (c = 0, _ref3 = this.columns.length - 1; 0 <= _ref3 ? c <= _ref3 : c >= _ref3; 0 <= _ref3 ? c++ : c--) { - check = $a_input($td(this.tab, i + 1, c + 1), 'checkbox'); - check.item = this.items[i]; - check.column = this.columns[c]; - this.checks[this.items[i]][this.columns[c]] = check; - } + _results.push((function() { + var _ref2, _results2; + _results2 = []; + for (c = 1, _ref2 = this.columns.length - 1; 1 <= _ref2 ? c <= _ref2 : c >= _ref2; 1 <= _ref2 ? c++ : c--) { + check = $a_input($td(this.tab, i + 1, c), 'checkbox'); + check.item = this.items[i]; + check.column = this.columns[c]; + _results2.push(this.checks[this.items[i]][this.columns[c]] = check); + } + return _results2; + }).call(this)); } - } + return _results; + }; CheckGrid.prototype.get = function() { - var check, column, item, val, _i, _j, _len, _len2, _ref, _ref2; + var check, column, item, val, _i, _j, _len, _len2, _name, _ref, _ref2; val = {}; _ref = keys(this.checks); for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -38,40 +54,52 @@ for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { column = _ref2[_j]; check = this.checks[item][column]; - if (!val[check.item]) { - val[check.item] = {}; - } + val[_name = check.item] || (val[_name] = {}); val[check.item][check.column] = check.checked ? 1 : 0; } } return val; }; CheckGrid.prototype.set = function(val) { - var check, column, item, _i, _len, _ref, _results; + var column, item, _i, _j, _len, _len2, _ref, _ref2; _ref = keys(this.checks); - _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { item = _ref[_i]; - _results.push((function() { - var _j, _len2, _ref2, _results2; - _ref2 = keys(this.checks[item]); - _results2 = []; - for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { - column = _ref2[_j]; - check = this.checks[item][column]; - _results2.push(check.checked = val[check.item][check.row]); + _ref2 = keys(this.checks[item]); + for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { + column = _ref2[_j]; + if (val[item][column]) { + this.checks[item][column].checked = val[item][column]; } - return _results2; - }).call(this)); + } } - return _results; }; return CheckGrid; })(); cx = cur_frm.cscript; cx.onload = function(doc, dt, dn) { - cx.content_grid = new CheckGrid(cur_frm.fields_dict.Body.wrapper, 'Email Settings', content_items, freq); - return cx.email_grid = new CheckGrid(cur_frm.fields_dict.Body.wrapper, 'Send To', ['test1@erpnext', 'test2@erpnext'], freq); + cx.content_grid = new CheckGrid({ + parent: cur_frm.fields_dict.Body.wrapper, + label: 'Email Settings', + items: content_items, + columns: ['Item', 'Daily', 'Weekly'], + widths: ['60%', '20%', '20%'], + description: 'Select items to be compiled for Email Digest' + }); + cx.email_grid = new CheckGrid({ + parent: cur_frm.fields_dict.Body.wrapper, + label: 'Send To', + items: ['test1@erpnext', 'test2@erpnext'], + columns: ['Email', 'Daily', 'Weekly'], + widths: ['60%', '20%', '20%'], + description: 'Select who gets daily and weekly mails' + }); + if (doc.content_config) { + cx.content_grid.set(JSON.parse(doc.content_config)); + } + if (doc.email_config) { + cx.email_grid.set(JSON.parse(doc.email_config)); + } }; cx.validate = function(doc, dt, dn) { doc.content_config = JSON.stringify(cx.content_grid.get()); diff --git a/setup/doctype/email_digest/email_digest.txt b/setup/doctype/email_digest/email_digest.txt index 4258f84a04d..026caa7d6e7 100644 --- a/setup/doctype/email_digest/email_digest.txt +++ b/setup/doctype/email_digest/email_digest.txt @@ -5,14 +5,14 @@ { 'creation': '2011-07-27 14:23:09', 'docstatus': 0, - 'modified': '2011-07-27 15:22:11', + 'modified': '2011-07-27 17:32:27', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1311759390', + '_last_update': '1311760331', 'colour': 'White:FFF', 'doctype': 'DocType', 'issingle': 1, @@ -20,7 +20,7 @@ 'name': '__common__', 'section_style': 'Simple', 'show_in_menu': 0, - 'version': 3 + 'version': 4 }, # These values are common for all DocField @@ -72,6 +72,7 @@ 'doctype': 'DocField', 'fieldname': 'content_config', 'fieldtype': 'Text', + 'hidden': 1, 'idx': 2, 'label': 'Content Config' }, @@ -81,6 +82,7 @@ 'doctype': 'DocField', 'fieldname': 'email_config', 'fieldtype': 'Text', + 'hidden': 1, 'idx': 3, 'label': 'Email Config' } From 8852c066ce70e56ac582cc03db3ef504fef56522 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 27 Jul 2011 17:46:16 +0530 Subject: [PATCH 03/84] updated email digest ui --- setup/doctype/email_digest/email_digest.css | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 setup/doctype/email_digest/email_digest.css diff --git a/setup/doctype/email_digest/email_digest.css b/setup/doctype/email_digest/email_digest.css new file mode 100644 index 00000000000..f61dacc961d --- /dev/null +++ b/setup/doctype/email_digest/email_digest.css @@ -0,0 +1,18 @@ + +div.check-grid { + margin: 17px; +} + +div.check-grid table { + border-collapse: collapse; +} + +div.check-grid table td { + padding: 3px; + border: 1px solid #aaa; +} + +td.check-grid-head { + font-weight: bold; + text-align: center; +} \ No newline at end of file From f135abe7c1469474607036de233d641c05ae8f2f Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 31 Aug 2011 14:18:14 +0530 Subject: [PATCH 04/84] font-size fix in home --- home/page/event_updates/event_updates.js | 4 ++-- master.sql.gz | Bin 484367 -> 20 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/home/page/event_updates/event_updates.js b/home/page/event_updates/event_updates.js index 9aa3da244a7..e93ed9db639 100644 --- a/home/page/event_updates/event_updates.js +++ b/home/page/event_updates/event_updates.js @@ -431,13 +431,13 @@ FeedList.prototype.make_head = function() { // head $a(this.head,'h1','', {display:'inline'}, 'Home'); - $a(this.head,'span','link_type', {marginLeft:'7px'}, 'help', function() { + $a(this.head,'span','link_type', {marginLeft:'7px', fontSize:'11px'}, 'help', function() { msgprint('What appears here? This is where you get updates of everything you are permitted to follow') }) // refresh $a(this.head,'span','link_type', - {cursor:'pointer', marginLeft:'7px', fontSize:'11px'}, 'refresh', + {marginLeft:'7px', fontSize:'11px'}, 'refresh', function() { me.run(); } ); diff --git a/master.sql.gz b/master.sql.gz index 3d3e220c86900230376b6ea4cf7c7bf2f58d7a16..f3eaf3488a8e7e318fafb59d272580199333bdc3 100644 GIT binary patch literal 20 Ucmb2|=3uD!66?pn%*+4-04#U{&;S4c literal 484367 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


+A8>S|q6$Qn2;^3Ob~@-9B4+ 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 From 66ac2b018a2d4177264896d564b725602a715a84 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 5 Sep 2011 18:43:09 +0530 Subject: [PATCH 05/84] first cut for lazy loading framework --- .gitignore | 1 + config/_timestamps.js | 1 + config/conf.py | 7 + .../__init__.py => erpnext/.no_timestamps | 0 .../Payable Voucher/Payable Voucher.txt | 0 .../Receivable Voucher/Receivable Voucher.txt | 0 .../Delivery Note-Receivable Voucher.txt | 0 .../Project-Receivable Voucher.txt | 0 .../Purchase Order-Payable Voucher.txt | 0 .../Purchase Receipt-Payable Voucher.txt | 0 .../Sales Order-Receivable Voucher.txt | 0 .../Journal Voucher/Journal Voucher.txt | 0 .../POS with write off/POS with write off.txt | 0 .../accounts}/GL Mapper/POS/POS.txt | 0 .../Payable Voucher/Payable Voucher.txt | 0 .../Receivable Voucher/Receivable Voucher.txt | 0 .../Module Def/Accounts/Accounts.txt | 0 .../Cheque Printing Format.txt | 0 .../Form 16A Print Format.txt | 0 .../Payment Receipt Voucher.txt | 0 .../Accounts Manager/Accounts Manager.txt | 0 .../Role/Accounts User/Accounts User.txt | 0 .../Rate chart (01-07-2010).txt | 0 .../TDS Rate Chart October 2009 Onwards.txt | 0 .../TDS Rate Chart for 2009-10.txt | 0 .../doctype => erpnext/accounts}/__init__.py | 0 .../accounts/doctype}/__init__.py | 0 .../accounts/doctype/account}/__init__.py | 0 .../accounts}/doctype/account/account.js | 0 .../accounts}/doctype/account/account.py | 0 .../accounts}/doctype/account/account.txt | 0 .../doctype/account_balance}/__init__.py | 0 .../account_balance/account_balance.txt | 0 .../advance_adjustment_detail}/__init__.py | 0 .../advance_adjustment_detail.txt | 0 .../advance_allocation_detail}/__init__.py | 0 .../advance_allocation_detail.txt | 0 .../doctype/bank_reconciliation}/__init__.py | 0 .../bank_reconciliation.js | 0 .../bank_reconciliation.py | 0 .../bank_reconciliation.txt | 0 .../bank_reconciliation_detail}/__init__.py | 0 .../bank_reconciliation_detail.txt | 0 .../doctype/budget_control}/__init__.py | 0 .../doctype/budget_control/budget_control.js | 0 .../doctype/budget_control/budget_control.py | 0 .../doctype/budget_control/budget_control.txt | 0 .../doctype/budget_detail}/__init__.py | 0 .../doctype/budget_detail/budget_detail.txt | 0 .../doctype/budget_distribution}/__init__.py | 0 .../budget_distribution.js | 0 .../budget_distribution.py | 0 .../budget_distribution.txt | 0 .../budget_distribution_detail}/__init__.py | 0 .../budget_distribution_detail.txt | 0 .../accounts/doctype/cost_center}/__init__.py | 0 .../doctype/cost_center/cost_center.js | 0 .../doctype/cost_center/cost_center.py | 0 .../doctype/cost_center/cost_center.txt | 0 .../accounts/doctype/fiscal_year}/__init__.py | 0 .../doctype/fiscal_year/fiscal_year.py | 0 .../doctype/fiscal_year/fiscal_year.txt | 0 .../accounts/doctype/form_16a}/__init__.py | 0 .../accounts}/doctype/form_16a/form_16a.js | 0 .../accounts}/doctype/form_16a/form_16a.py | 0 .../accounts}/doctype/form_16a/form_16a.txt | 0 .../doctype/form_16a_ack_detail}/__init__.py | 0 .../form_16a_ack_detail.txt | 0 .../doctype/form_16a_tax_detail}/__init__.py | 0 .../form_16a_tax_detail.txt | 0 .../accounts/doctype/gl_control}/__init__.py | 0 .../doctype/gl_control/gl_control.js | 0 .../doctype/gl_control/gl_control.py | 0 .../doctype/gl_control/gl_control.txt | 0 .../accounts/doctype/gl_entry}/__init__.py | 0 .../accounts}/doctype/gl_entry/gl_entry.js | 0 .../accounts}/doctype/gl_entry/gl_entry.py | 0 .../accounts}/doctype/gl_entry/gl_entry.txt | 0 .../doctype/journal_voucher}/__init__.py | 0 .../journal_voucher/journal_voucher.js | 0 .../journal_voucher/journal_voucher.py | 0 .../journal_voucher/journal_voucher.txt | 0 .../journal_voucher_detail}/__init__.py | 0 .../journal_voucher_detail.txt | 0 .../doctype/lease_agreement}/__init__.py | 0 .../lease_agreement/lease_agreement.js | 0 .../lease_agreement/lease_agreement.py | 0 .../lease_agreement/lease_agreement.txt | 0 .../doctype/lease_installment}/__init__.py | 0 .../lease_installment/lease_installment.txt | 0 .../ledger_balance_export}/__init__.py | 0 .../ledger_balance_export.js | 0 .../ledger_balance_export.py | 0 .../ledger_balance_export.txt | 0 .../doctype/ledger_detail}/__init__.py | 0 .../doctype/ledger_detail/ledger_detail.txt | 0 .../doctype/mode_of_payment}/__init__.py | 0 .../mode_of_payment/mode_of_payment.js | 0 .../mode_of_payment/mode_of_payment.txt | 0 .../doctype/payable_voucher}/__init__.py | 0 .../payable_voucher/payable_voucher.js | 0 .../payable_voucher/payable_voucher.py | 0 .../payable_voucher/payable_voucher.txt | 0 .../period_closing_voucher}/__init__.py | 0 .../period_closing_voucher.js | 0 .../period_closing_voucher.py | 0 .../period_closing_voucher.txt | 0 .../accounts/doctype/pos_setting}/__init__.py | 0 .../doctype/pos_setting/pos_setting.js | 0 .../doctype/pos_setting/pos_setting.py | 0 .../doctype/pos_setting/pos_setting.txt | 0 .../doctype/purchase_tax_detail}/__init__.py | 0 .../purchase_tax_detail.txt | 0 .../accounts/doctype/pv_detail}/__init__.py | 0 .../accounts}/doctype/pv_detail/pv_detail.txt | 0 .../doctype/receivable_voucher}/__init__.py | 0 .../receivable_voucher/receivable_voucher.js | 0 .../receivable_voucher/receivable_voucher.py | 0 .../receivable_voucher/receivable_voucher.txt | 0 .../accounts/doctype/rv_detail}/__init__.py | 0 .../accounts}/doctype/rv_detail/rv_detail.txt | 0 .../doctype/rv_tax_detail}/__init__.py | 0 .../doctype/rv_tax_detail/rv_tax_detail.txt | 0 .../doctype/tds_category}/__init__.py | 0 .../doctype/tds_category/tds_category.js | 0 .../doctype/tds_category/tds_category.py | 0 .../doctype/tds_category/tds_category.txt | 0 .../doctype/tds_category_account}/__init__.py | 0 .../tds_category_account.txt | 0 .../accounts/doctype/tds_control}/__init__.py | 0 .../doctype/tds_control/tds_control.js | 0 .../doctype/tds_control/tds_control.py | 0 .../doctype/tds_control/tds_control.txt | 0 .../accounts/doctype/tds_detail}/__init__.py | 0 .../doctype/tds_detail/tds_detail.txt | 0 .../accounts/doctype/tds_payment}/__init__.py | 0 .../doctype/tds_payment/tds_payment.js | 0 .../doctype/tds_payment/tds_payment.py | 0 .../doctype/tds_payment/tds_payment.txt | 0 .../doctype/tds_payment_detail}/__init__.py | 0 .../tds_payment_detail/tds_payment_detail.txt | 0 .../doctype/tds_rate_chart}/__init__.py | 0 .../doctype/tds_rate_chart/tds_rate_chart.txt | 0 .../doctype/tds_rate_detail}/__init__.py | 0 .../tds_rate_detail/tds_rate_detail.txt | 0 .../tds_return_acknowledgement}/__init__.py | 0 .../tds_return_acknowledgement.js | 0 .../tds_return_acknowledgement.txt | 0 .../accounts/page}/__init__.py | 0 .../page/accounts_browser}/__init__.py | 0 .../accounts_browser/accounts_browser.css | 0 .../accounts_browser/accounts_browser.html | 0 .../page/accounts_browser/accounts_browser.js | 0 .../accounts_browser/accounts_browser.txt | 0 .../page/financial_statements}/__init__.py | 0 .../financial_statements.html | 0 .../financial_statements.js | 0 .../financial_statements.txt | 0 .../accounts/search_criteria}/__init__.py | 0 .../accounts_payable}/__init__.py | 0 .../accounts_payable/accounts_payable.js | 0 .../accounts_payable/accounts_payable.py | 0 .../accounts_payable/accounts_payable.sql | 0 .../accounts_payable/accounts_payable.txt | 0 .../accounts_receivable}/__init__.py | 0 .../accounts_receivable.js | 0 .../accounts_receivable.py | 0 .../accounts_receivable.sql | 0 .../accounts_receivable.txt | 0 .../bank_clearance_report}/__init__.py | 0 .../bank_clearance_report.js | 0 .../bank_clearance_report.txt | 0 .../__init__.py | 0 .../bank_reconciliation_statement.js | 0 .../bank_reconciliation_statement.py | 0 .../bank_reconciliation_statement.txt | 0 .../budget_variance_report}/__init__.py | 0 .../budget_variance_report.js | 0 .../budget_variance_report.py | 0 .../budget_variance_report.sql | 0 .../budget_variance_report.txt | 0 .../__init__.py | 0 .../business_associate_commission_report.js | 0 .../business_associate_commission_report.py | 0 .../business_associate_commission_report.txt | 0 .../cash_flow_statement}/__init__.py | 0 .../cash_flow_statement.js | 0 .../cash_flow_statement.py | 0 .../cash_flow_statement.sql | 0 .../cash_flow_statement.txt | 0 .../__init__.py | 0 .../cenvat_credit___input_or_capital_goods.js | 0 .../cenvat_credit___input_or_capital_goods.py | 0 ...cenvat_credit___input_or_capital_goods.sql | 0 ...cenvat_credit___input_or_capital_goods.txt | 0 .../collection_report}/__init__.py | 0 .../collection_report/collection_report.js | 0 .../collection_report/collection_report.py | 0 .../collection_report/collection_report.sql | 0 .../collection_report/collection_report.txt | 0 .../cost_center_wise_expense}/__init__.py | 0 .../cost_center_wise_expense.js | 0 .../cost_center_wise_expense.py | 0 .../cost_center_wise_expense.sql | 0 .../cost_center_wise_expense.txt | 0 .../creditors_ledger}/__init__.py | 0 .../creditors_ledger/creditors_ledger.js | 0 .../creditors_ledger/creditors_ledger.py | 0 .../creditors_ledger/creditors_ledger.sql | 0 .../creditors_ledger/creditors_ledger.txt | 0 .../debtors_ledger}/__init__.py | 0 .../debtors_ledger/debtors_ledger.js | 0 .../debtors_ledger/debtors_ledger.py | 0 .../debtors_ledger/debtors_ledger.sql | 0 .../debtors_ledger/debtors_ledger.txt | 0 .../general_ledger}/__init__.py | 0 .../general_ledger/general_ledger.js | 0 .../general_ledger/general_ledger.py | 0 .../general_ledger/general_ledger.sql | 0 .../general_ledger/general_ledger.txt | 0 .../itemwise_purchase_register}/__init__.py | 0 .../itemwise_purchase_register.js | 0 .../itemwise_purchase_register.txt | 0 .../itemwise_sales_register}/__init__.py | 0 .../itemwise_sales_register.js | 0 .../itemwise_sales_register.txt | 0 .../lease_agreement_list}/__init__.py | 0 .../lease_agreement_list.js | 0 .../lease_agreement_list.py | 0 .../lease_agreement_list.sql | 0 .../lease_agreement_list.txt | 0 .../__init__.py | 0 ...ease_monthly_future_installment_inflows.js | 0 ...ease_monthly_future_installment_inflows.py | 0 ...ase_monthly_future_installment_inflows.sql | 0 ...ase_monthly_future_installment_inflows.txt | 0 .../lease_over_due_list}/__init__.py | 0 .../lease_over_due_list.js | 0 .../lease_over_due_list.py | 0 .../lease_over_due_list.sql | 0 .../lease_over_due_list.txt | 0 .../lease_overdue_age_wise}/__init__.py | 0 .../lease_overdue_age_wise.js | 0 .../lease_overdue_age_wise.py | 0 .../lease_overdue_age_wise.sql | 0 .../lease_overdue_age_wise.txt | 0 .../__init__.py | 0 .../lease_receipt_summary_month_wise.js | 0 .../lease_receipt_summary_month_wise.py | 0 .../lease_receipt_summary_month_wise.sql | 0 .../lease_receipt_summary_month_wise.txt | 0 .../lease_receipts_client_wise}/__init__.py | 0 .../lease_receipts_client_wise.js | 0 .../lease_receipts_client_wise.py | 0 .../lease_receipts_client_wise.sql | 0 .../lease_receipts_client_wise.txt | 0 .../__init__.py | 0 ...lease_yearly_future_installment_inflows.js | 0 ...lease_yearly_future_installment_inflows.py | 0 ...ease_yearly_future_installment_inflows.sql | 0 ...ease_yearly_future_installment_inflows.txt | 0 .../__init__.py | 0 .../monthly_ledger_summary_report.js | 0 .../monthly_ledger_summary_report.py | 0 .../monthly_ledger_summary_report.txt | 0 .../payment_receipt_report}/__init__.py | 0 .../payment_receipt_report.py | 0 .../payment_receipt_report.sql | 0 .../payment_receipt_report.txt | 0 .../payment_report}/__init__.py | 0 .../payment_report/payment_report.js | 0 .../payment_report/payment_report.py | 0 .../payment_report/payment_report.sql | 0 .../payment_report/payment_report.txt | 0 .../__init__.py | 0 .../progressive_total_excise_duty.js | 0 .../progressive_total_excise_duty.py | 0 .../progressive_total_excise_duty.sql | 0 .../progressive_total_excise_duty.txt | 0 .../purchase_register}/__init__.py | 0 .../purchase_register/purchase_register.py | 0 .../purchase_register/purchase_register.txt | 0 .../sales_register}/__init__.py | 0 .../sales_register/sales_register.js | 0 .../sales_register/sales_register.py | 0 .../sales_register/sales_register.txt | 0 .../__init__.py | 0 .../service_tax_credit_account___inputs.js | 0 .../service_tax_credit_account___inputs.py | 0 .../service_tax_credit_account___inputs.sql | 0 .../service_tax_credit_account___inputs.txt | 0 .../search_criteria/tds_return}/__init__.py | 0 .../search_criteria/tds_return/tds_return.js | 0 .../search_criteria/tds_return/tds_return.py | 0 .../search_criteria/tds_return/tds_return.sql | 0 .../search_criteria/tds_return/tds_return.txt | 0 .../__init__.py | 0 ..._collection_for_a_period___customerwise.js | 0 ..._collection_for_a_period___customerwise.py | 0 ...collection_for_a_period___customerwise.txt | 0 .../trial_balance}/__init__.py | 0 .../trial_balance/trial_balance.js | 0 .../trial_balance/trial_balance.py | 0 .../trial_balance/trial_balance.txt | 0 .../accounts}/utils/__init__.py | 0 .../Module Def/Analysis/Analysis.txt | 0 .../doctype => erpnext/analysis}/__init__.py | 0 .../analysis/doctype}/__init__.py | 0 .../analysis/doctype/mis_control}/__init__.py | 0 .../doctype/mis_control/mis_control.py | 0 .../doctype/mis_control/mis_control.txt | 0 .../analysis/doctype/ta_control}/__init__.py | 0 .../doctype/ta_control/ta_control.py | 0 .../doctype/ta_control/ta_control.txt | 0 .../analysis/page}/__init__.py | 0 .../analysis/search_criteria}/__init__.py | 0 .../monthly_transaction_summary}/__init__.py | 0 .../monthly_transaction_summary.js | 0 .../monthly_transaction_summary.py | 0 .../monthly_transaction_summary.sql | 0 .../monthly_transaction_summary.txt | 0 .../trend_analyzer}/__init__.py | 0 .../trend_analyzer/trend_analyzer.js | 0 .../trend_analyzer/trend_analyzer.py | 0 .../trend_analyzer/trend_analyzer.txt | 0 .../yearly_transaction_summary}/__init__.py | 0 .../yearly_transaction_summary.js | 0 .../yearly_transaction_summary.py | 0 .../yearly_transaction_summary.sql | 0 .../yearly_transaction_summary.txt | 0 .../Indent-Purchase Order.txt | 0 .../Sales Order-Indent/Sales Order-Indent.txt | 0 .../buying}/Module Def/Buying/Buying.txt | 0 .../Purchase Manager/Purchase Manager.txt | 0 .../Purchase Master Manager.txt | 0 .../Role/Purchase User/Purchase User.txt | 0 .../buying}/Role/Supplier/Supplier.txt | 0 .../doctype => erpnext/buying}/__init__.py | 0 .../buying/doctype}/__init__.py | 0 .../buying/doctype/indent}/__init__.py | 0 .../buying}/doctype/indent/indent.js | 0 .../buying}/doctype/indent/indent.py | 0 .../buying}/doctype/indent/indent.txt | 0 .../buying/doctype/indent_detail}/__init__.py | 0 .../doctype/indent_detail/indent_detail.txt | 0 .../buying/doctype/po_detail}/__init__.py | 0 .../buying}/doctype/po_detail/po_detail.txt | 0 .../po_raw_material_detail}/__init__.py | 0 .../po_raw_material_detail.txt | 0 .../pr_raw_material_detail}/__init__.py | 0 .../pr_raw_material_detail.txt | 0 .../doctype/purchase_common}/__init__.py | 0 .../purchase_common/purchase_common.js | 0 .../purchase_common/purchase_common.py | 0 .../purchase_common/purchase_common.txt | 0 .../doctype/purchase_order}/__init__.py | 0 .../doctype/purchase_order/purchase_order.js | 0 .../doctype/purchase_order/purchase_order.py | 0 .../doctype/purchase_order/purchase_order.txt | 0 .../purchase_other_charges}/__init__.py | 0 .../purchase_other_charges.js | 0 .../purchase_other_charges.py | 0 .../purchase_other_charges.txt | 0 .../doctype/qa_inspection_report}/__init__.py | 0 .../qa_inspection_report.js | 0 .../qa_inspection_report.py | 0 .../qa_inspection_report.txt | 0 .../qa_specification_detail}/__init__.py | 0 .../qa_specification_detail.txt | 0 .../raw_materials_supplied}/__init__.py | 0 .../raw_materials_supplied.txt | 0 .../buying/doctype/supplier}/__init__.py | 0 .../buying}/doctype/supplier/supplier.js | 0 .../buying}/doctype/supplier/supplier.py | 0 .../buying}/doctype/supplier/supplier.txt | 0 .../doctype/supplier_quotation}/__init__.py | 0 .../supplier_quotation/supplier_quotation.js | 0 .../supplier_quotation/supplier_quotation.py | 0 .../supplier_quotation/supplier_quotation.txt | 0 .../buying/page}/__init__.py | 0 .../buying/search_criteria}/__init__.py | 0 .../itemwise_purchase_details}/__init__.py | 0 .../itemwise_purchase_details.js | 0 .../itemwise_purchase_details.txt | 0 .../itemwise_receipt_details}/__init__.py | 0 .../itemwise_receipt_details.js | 0 .../itemwise_receipt_details.txt | 0 .../pending_po_items_to_bill}/__init__.py | 0 .../pending_po_items_to_bill.js | 0 .../pending_po_items_to_bill.txt | 0 .../pending_po_items_to_receive}/__init__.py | 0 .../pending_po_items_to_receive.js | 0 .../pending_po_items_to_receive.py | 0 .../pending_po_items_to_receive.txt | 0 .../purchase_in_transit}/__init__.py | 0 .../purchase_in_transit.js | 0 .../purchase_in_transit.py | 0 .../purchase_in_transit.txt | 0 .../home}/Module Def/Home/Home.txt | 0 {home => erpnext/home}/__init__.py | 0 .../home/doctype}/__init__.py | 0 .../home/doctype/company_control}/__init__.py | 0 .../company_control/company_control.py | 0 .../company_control/company_control.txt | 0 .../home/doctype/feed}/__init__.py | 0 {home => erpnext/home}/doctype/feed/feed.py | 0 {home => erpnext/home}/doctype/feed/feed.txt | 0 .../home/doctype/home_control}/__init__.py | 0 .../doctype/home_control/home_control.js | 0 .../doctype/home_control/home_control.py | 0 .../doctype/home_control/home_control.txt | 0 .../home/doctype/widget_control}/__init__.py | 0 .../doctype/widget_control/widget_control.py | 0 .../doctype/widget_control/widget_control.txt | 0 {home => erpnext/home}/page/.DS_Store | Bin .../home/page}/__init__.py | 0 .../home/page/dashboard}/__init__.py | 0 .../home}/page/dashboard/dashboard.css | 0 .../home}/page/dashboard/dashboard.html | 0 .../home}/page/dashboard/dashboard.js | 0 .../home}/page/dashboard/dashboard.py | 0 .../home}/page/dashboard/dashboard.txt | 0 .../home}/page/event_updates/.DS_Store | Bin .../home/page/event_updates}/__init__.py | 0 .../page/event_updates/event_updates.css | 0 .../page/event_updates/event_updates.html | 0 .../home}/page/event_updates/event_updates.js | 0 .../home}/page/event_updates/event_updates.py | 0 .../page/event_updates/event_updates.txt | 0 .../event_updates/event_updates_static.html | 0 .../home/page/my_company}/__init__.py | 0 .../home}/page/my_company/my_company.css | 0 .../home}/page/my_company/my_company.html | 0 .../home}/page/my_company/my_company.js | 0 .../home}/page/my_company/my_company.py | 0 .../home}/page/my_company/my_company.txt | 0 .../home/page/profile_settings}/__init__.py | 0 .../profile_settings/profile_settings.html | 0 .../page/profile_settings/profile_settings.js | 0 .../page/profile_settings/profile_settings.py | 0 .../profile_settings/profile_settings.txt | 0 .../home/search_criteria}/__init__.py | 0 .../bills_to_be_paid}/__init__.py | 0 .../bills_to_be_paid/bills_to_be_paid.txt | 0 .../bills_to_be_submitted}/__init__.py | 0 .../bills_to_be_submitted.txt | 0 .../delivery_note_to_be_billed}/__init__.py | 0 .../delivery_note_to_be_billed.txt | 0 .../__init__.py | 0 .../delivery_note_to_be_submitted.txt | 0 .../__init__.py | 0 .../enquiry_quotations_to_be_sent.txt | 0 .../enquiry_to_follow_up}/__init__.py | 0 .../enquiry_to_follow_up.js | 0 .../enquiry_to_follow_up.txt | 0 .../__init__.py | 0 .../indent_purchase_order_to_be_made.txt | 0 .../indent_to_be_submitted}/__init__.py | 0 .../indent_to_be_submitted.txt | 0 .../invoices_overdue}/__init__.py | 0 .../invoices_overdue/invoices_overdue.txt | 0 .../invoices_to_be_submitted}/__init__.py | 0 .../invoices_to_be_submitted.txt | 0 .../invoices_to_receive_payment}/__init__.py | 0 .../invoices_to_receive_payment.txt | 0 .../lead_to_follow_up}/__init__.py | 0 .../lead_to_follow_up/lead_to_follow_up.js | 0 .../lead_to_follow_up/lead_to_follow_up.txt | 0 .../lead_to_follow_up/sales_order_overdue.js | 0 .../purchase_order_to_be_billed}/__init__.py | 0 .../purchase_order_to_be_billed.txt | 0 .../__init__.py | 0 .../purchase_order_to_be_submitted.txt | 0 .../__init__.py | 0 .../purchase_order_to_receive_items.txt | 0 .../sales_order_overdue}/__init__.py | 0 .../sales_order_overdue.txt | 0 .../sales_order_to_be_billed}/__init__.py | 0 .../sales_order_to_be_billed.txt | 0 .../sales_order_to_be_delivered}/__init__.py | 0 .../sales_order_to_be_delivered.txt | 0 .../sales_order_to_be_submitted}/__init__.py | 0 .../sales_order_to_be_submitted.txt | 0 .../__init__.py | 0 .../serial_no_amc_expiring_this_month.txt | 0 .../__init__.py | 0 ...serial_no_warranty_expiring_this_month.txt | 0 .../search_criteria/task_open}/__init__.py | 0 .../search_criteria/task_open/task_open.txt | 0 .../Deduction Type/Income Tax/Income Tax.txt | 0 .../Professional Tax/Professional Tax.txt | 0 .../Provident Fund/Provident Fund.txt | 0 .../KRA Template-Appraisal.txt | 0 .../Salary Structure-Salary Slip.txt | 0 .../hr}/Earning Type/Basic/Basic.txt | 0 .../House Rent Allowance.txt | 0 .../hr}/Expense Type/Calls/Calls.txt | 0 {hr => erpnext/hr}/Expense Type/Food/Food.txt | 0 .../hr}/Expense Type/Medical/Medical.txt | 0 .../hr}/Expense Type/Others/Others.txt | 0 .../hr}/Expense Type/Travel/Travel.txt | 0 .../Leave Type/Casual Leave/Casual Leave.txt | 0 .../Compensatory Off/Compensatory Off.txt | 0 .../Leave Without Pay/Leave Without Pay.txt | 0 .../Privilege Leave/Privilege Leave.txt | 0 .../hr}/Leave Type/Sick Leave/Sick Leave.txt | 0 {hr => erpnext/hr}/Module Def/HR/HR.txt | 0 {hr => erpnext/hr}/Role/Employee/Employee.txt | 0 .../hr}/Role/HR Manager/HR Manager.txt | 0 {hr => erpnext/hr}/Role/HR User/HR User.txt | 0 {hr/doctype => erpnext/hr}/__init__.py | 0 .../hr/doctype}/__init__.py | 0 .../doctype/absent_days_detail}/__init__.py | 0 .../absent_days_detail/absent_days_detail.txt | 0 .../hr/doctype/appraisal}/__init__.py | 0 .../hr}/doctype/appraisal/appraisal.js | 0 .../hr}/doctype/appraisal/appraisal.py | 0 .../hr}/doctype/appraisal/appraisal.txt | 0 .../hr/doctype/appraisal_detail}/__init__.py | 0 .../appraisal_detail/appraisal_detail.txt | 0 .../hr/doctype/attendance}/__init__.py | 0 .../hr}/doctype/attendance/attendance.js | 0 .../hr}/doctype/attendance/attendance.py | 0 .../hr}/doctype/attendance/attendance.txt | 0 .../attendance_control_panel}/__init__.py | 0 .../attendance_control_panel.js | 0 .../attendance_control_panel.py | 0 .../attendance_control_panel.txt | 0 .../hr/doctype/branch}/__init__.py | 0 {hr => erpnext/hr}/doctype/branch/branch.js | 0 {hr => erpnext/hr}/doctype/branch/branch.txt | 0 .../doctype/chapter_vi_a_detail}/__init__.py | 0 .../chapter_vi_a_detail.txt | 0 .../doctype/declaration_detail}/__init__.py | 0 .../declaration_detail/declaration_detail.txt | 0 .../hr/doctype/deduction_detail}/__init__.py | 0 .../deduction_detail/deduction_detail.txt | 0 .../hr/doctype/deduction_type}/__init__.py | 0 .../doctype/deduction_type/deduction_type.js | 0 .../doctype/deduction_type/deduction_type.txt | 0 .../hr/doctype/department}/__init__.py | 0 .../hr}/doctype/department/department.js | 0 .../hr}/doctype/department/department.txt | 0 .../hr/doctype/designation}/__init__.py | 0 .../hr}/doctype/designation/designation.js | 0 .../hr}/doctype/designation/designation.txt | 0 .../earn_deduction_detail}/__init__.py | 0 .../earn_deduction_detail.txt | 0 .../hr/doctype/earning_detail}/__init__.py | 0 .../doctype/earning_detail/earning_detail.txt | 0 .../hr/doctype/earning_type}/__init__.py | 0 .../hr}/doctype/earning_type/earning_type.js | 0 .../hr}/doctype/earning_type/earning_type.txt | 0 .../educational_qualifications}/__init__.py | 0 .../educational_qualifications.txt | 0 .../__init__.py | 0 .../educational_qualifications_detail.txt | 0 .../hr/doctype/employee}/__init__.py | 0 .../hr}/doctype/employee/employee.js | 0 .../hr}/doctype/employee/employee.py | 0 .../hr}/doctype/employee/employee.txt | 0 .../hr/doctype/employee_profile}/__init__.py | 0 .../employee_profile/employee_profile.js | 0 .../employee_profile/employee_profile.py | 0 .../employee_profile/employee_profile.txt | 0 .../hr/doctype/employment_type}/__init__.py | 0 .../employment_type/employment_type.js | 0 .../employment_type/employment_type.txt | 0 .../hr/doctype/expense_type}/__init__.py | 0 .../hr}/doctype/expense_type/expense_type.js | 0 .../hr}/doctype/expense_type/expense_type.txt | 0 .../hr/doctype/expense_voucher}/__init__.py | 0 .../expense_voucher/expense_voucher.js | 0 .../expense_voucher/expense_voucher.py | 0 .../expense_voucher/expense_voucher.txt | 0 .../expense_voucher_detail}/__init__.py | 0 .../expense_voucher_detail.txt | 0 .../experience_in_company_detail}/__init__.py | 0 .../experience_in_company_detail.txt | 0 .../hr/doctype/grade}/__init__.py | 0 {hr => erpnext/hr}/doctype/grade/grade.js | 0 {hr => erpnext/hr}/doctype/grade/grade.txt | 0 .../hr/doctype/holiday_list}/__init__.py | 0 .../hr}/doctype/holiday_list/holiday_list.js | 0 .../hr}/doctype/holiday_list/holiday_list.py | 0 .../hr}/doctype/holiday_list/holiday_list.txt | 0 .../doctype/holiday_list_detail}/__init__.py | 0 .../holiday_list_detail.txt | 0 .../invest_80_declaration_detail}/__init__.py | 0 .../invest_80_declaration_detail.txt | 0 .../hr/doctype/it_checklist}/__init__.py | 0 .../hr}/doctype/it_checklist/it_checklist.js | 0 .../hr}/doctype/it_checklist/it_checklist.py | 0 .../hr}/doctype/it_checklist/it_checklist.txt | 0 .../hr/doctype/kra_sheet}/__init__.py | 0 .../hr}/doctype/kra_sheet/kra_sheet.txt | 0 .../hr/doctype/kra_template}/__init__.py | 0 .../hr}/doctype/kra_template/kra_template.js | 0 .../hr}/doctype/kra_template/kra_template.txt | 0 .../hr/doctype/leave_allocation}/__init__.py | 0 .../leave_allocation/leave_allocation.js | 0 .../leave_allocation/leave_allocation.py | 0 .../leave_allocation/leave_allocation.txt | 0 .../hr/doctype/leave_application}/__init__.py | 0 .../leave_application/leave_application.js | 0 .../leave_application/leave_application.py | 0 .../leave_application/leave_application.txt | 0 .../doctype/leave_control_panel}/__init__.py | 0 .../leave_control_panel.js | 0 .../leave_control_panel.py | 0 .../leave_control_panel.txt | 0 .../hr/doctype/leave_type}/__init__.py | 0 .../hr}/doctype/leave_type/leave_type.js | 0 .../hr}/doctype/leave_type/leave_type.txt | 0 .../doctype/other_income_detail}/__init__.py | 0 .../other_income_detail.txt | 0 .../hr/doctype/payroll_rule}/__init__.py | 0 .../hr}/doctype/payroll_rule/payroll_rule.js | 0 .../hr}/doctype/payroll_rule/payroll_rule.py | 0 .../hr}/doctype/payroll_rule/payroll_rule.txt | 0 .../previous_experience_detail}/__init__.py | 0 .../previous_experience_detail.txt | 0 .../__init__.py | 0 .../professional_training_details.txt | 0 .../hr}/doctype/salary_manager/__init__.py | 0 .../doctype/salary_manager/salary_manager.js | 0 .../doctype/salary_manager/salary_manager.py | 0 .../doctype/salary_manager/salary_manager.txt | 0 .../salary_manager/test_salary_manager.py | 0 .../hr/doctype/salary_slip}/__init__.py | 0 .../hr}/doctype/salary_slip/salary_slip.js | 0 .../hr}/doctype/salary_slip/salary_slip.py | 0 .../hr}/doctype/salary_slip/salary_slip.txt | 0 .../hr/doctype/salary_structure}/__init__.py | 0 .../salary_structure/salary_structure.js | 0 .../salary_structure/salary_structure.py | 0 .../salary_structure/salary_structure.txt | 0 .../doctype/ss_deduction_detail}/__init__.py | 0 .../ss_deduction_detail.txt | 0 .../hr/doctype/ss_earning_detail}/__init__.py | 0 .../ss_earning_detail/ss_earning_detail.txt | 0 .../hr/page}/__init__.py | 0 .../hr/search_criteria}/__init__.py | 0 .../employee_appraisals}/__init__.py | 0 .../employee_appraisals.txt | 0 .../employee_details}/__init__.py | 0 .../employee_details/employee_details.txt | 0 .../__init__.py | 0 .../employee_in_company_experience.txt | 0 .../employee_information}/__init__.py | 0 .../employee_information.py | 0 .../employee_information.txt | 0 .../employees_birthday}/__init__.py | 0 .../employees_birthday/employees_birthday.txt | 0 .../__init__.py | 0 .../employeewise_balance_leave_report.js | 0 .../employeewise_balance_leave_report.py | 0 .../employeewise_balance_leave_report.txt | 0 .../__init__.py | 0 ...employeewise_leave_transaction_details.txt | 0 .../expense_vouchers}/__init__.py | 0 .../expense_vouchers/expense_vouchers.txt | 0 .../monthly_attendance_details}/__init__.py | 0 .../monthly_attendance_details.js | 0 .../monthly_attendance_details.py | 0 .../monthly_attendance_details.sql | 0 .../monthly_attendance_details.txt | 0 .../monthly_salary_register}/__init__.py | 0 .../monthly_salary_register.txt | 0 .../__init__.py | 0 .../new_or_left_employees_for_a_month.js | 0 .../new_or_left_employees_for_a_month.py | 0 .../new_or_left_employees_for_a_month.txt | 0 .../pending_appraisals}/__init__.py | 0 .../pending_appraisals/pending_appraisals.js | 0 .../pending_appraisals/pending_appraisals.txt | 0 .../pending_expense_vouchers}/__init__.py | 0 .../pending_expense_vouchers.js | 0 .../pending_expense_vouchers.txt | 0 .../salary_register}/__init__.py | 0 .../salary_register/salary_register.js | 0 .../salary_register/salary_register.py | 0 .../salary_register/salary_register.txt | 0 .../search_criteria/salary_slips}/__init__.py | 0 .../salary_slips/salary_slips.txt | 0 .../salary_structure_details}/__init__.py | 0 .../salary_structure_details.txt | 0 .../Knowledge Base/Knowledge Base.txt | 0 .../knowledge_base}/__init__.py | 0 .../knowledge_base/doctype}/__init__.py | 0 .../doctype/answer}/__init__.py | 0 .../knowledge_base}/doctype/answer/answer.txt | 0 .../doctype/question}/__init__.py | 0 .../doctype/question/question.py | 0 .../doctype/question/question.txt | 0 .../doctype/question_control}/__init__.py | 0 .../question_control/question_control.txt | 0 .../doctype/question_tag}/__init__.py | 0 .../doctype/question_tag/question_tag.txt | 0 .../knowledge_base/page}/__init__.py | 0 .../page/kb_common/kb_common.js | 0 .../page/question_view}/__init__.py | 0 .../page/question_view/question_view.css | 0 .../page/question_view/question_view.js | 0 .../page/question_view/question_view.py | 0 .../page/question_view/question_view.txt | 0 .../page/questions}/__init__.py | 0 .../page/questions/questions.css | 0 .../page/questions/questions.html | 0 .../page/questions/questions.js | 0 .../page/questions/questions.py | 0 .../page/questions/questions.txt | 0 .../patches}/__init__.py | 0 .../patches}/delivery_billing_status_patch.py | 0 .../patches}/erpnext_structure_cleanup.py | 0 {patches => erpnext/patches}/index_patch.py | 0 .../patches/old_patches}/__init__.py | 0 .../patches}/old_patches/customer_address.py | 0 .../old_patches/doctype_permission_patch.py | 0 .../patches}/old_patches/feed_patch.py | 0 .../patches}/old_patches/patch_1.py | 0 .../patches}/old_patches/replacecode.py | 0 {patches => erpnext/patches}/patch.py | 0 .../Production Forecast-Production Plan.txt | 0 ...tion Forecast-Production Planning Tool.txt | 0 .../Sales Order-Production Plan.txt | 0 .../Module Def/Production/Production.txt | 0 .../Production Manager/Production Manager.txt | 0 .../Role/Production User/Production User.txt | 0 .../production}/__init__.py | 0 .../production/doctype}/__init__.py | 0 .../doctype/bill_of_materials}/__init__.py | 0 .../bill_of_materials/bill_of_materials.js | 0 .../bill_of_materials/bill_of_materials.py | 0 .../bill_of_materials/bill_of_materials.txt | 0 .../doctype/bom_control}/__init__.py | 0 .../doctype/bom_control/bom_control.py | 0 .../doctype/bom_control/bom_control.txt | 0 .../doctype/bom_material}/__init__.py | 0 .../doctype/bom_material/bom_material.txt | 0 .../doctype/bom_operation}/__init__.py | 0 .../doctype/bom_operation/bom_operation.txt | 0 .../doctype/bom_replace_utility}/__init__.py | 0 .../bom_replace_utility.js | 0 .../bom_replace_utility.py | 0 .../bom_replace_utility.txt | 0 .../bom_replace_utility_detail}/__init__.py | 0 .../bom_replace_utility_detail.txt | 0 .../doctype/bom_report_detail}/__init__.py | 0 .../bom_report_detail/bom_report_detail.txt | 0 .../doctype/flat_bom_detail}/__init__.py | 0 .../flat_bom_detail/flat_bom_detail.txt | 0 .../production/doctype/pf_detail}/__init__.py | 0 .../doctype/pf_detail/pf_detail.txt | 0 .../production/doctype/pp_detail}/__init__.py | 0 .../doctype/pp_detail/pp_detail.txt | 0 .../doctype/pp_so_detail}/__init__.py | 0 .../doctype/pp_so_detail/pp_so_detail.txt | 0 .../doctype/ppw_detail}/__init__.py | 0 .../doctype/ppw_detail/ppw_detail.txt | 0 .../doctype/pro_detail}/__init__.py | 0 .../doctype/pro_detail/pro_detail.txt | 0 .../doctype/pro_pp_detail}/__init__.py | 0 .../doctype/pro_pp_detail/pro_pp_detail.txt | 0 .../doctype/production_control}/__init__.py | 0 .../production_control/production_control.py | 0 .../production_control/production_control.txt | 0 .../doctype/production_order}/__init__.py | 0 .../production_order/production_order.js | 0 .../production_order/production_order.py | 0 .../production_order/production_order.txt | 0 .../production_planning_tool}/__init__.py | 0 .../production_planning_tool.js | 0 .../production_planning_tool.py | 0 .../production_planning_tool.txt | 0 .../doctype/update_delivery_date}/__init__.py | 0 .../update_delivery_date.js | 0 .../update_delivery_date.py | 0 .../update_delivery_date.txt | 0 .../update_delivery_date_detail}/__init__.py | 0 .../update_delivery_date_detail.txt | 0 .../doctype/workstation}/__init__.py | 0 .../doctype/workstation/workstation.js | 0 .../doctype/workstation/workstation.py | 0 .../doctype/workstation/workstation.txt | 0 .../production/page}/__init__.py | 0 .../page/bill_of_materials}/__init__.py | 0 .../bill_of_materials/bill_of_materials.html | 0 .../bill_of_materials/bill_of_materials.js | 0 .../bill_of_materials/bill_of_materials.txt | 0 .../production/search_criteria}/__init__.py | 0 .../__init__.py | 0 .../consumption_against_production.txt | 0 .../delivery_plan}/__init__.py | 0 .../delivery_plan/delivery_plan.js | 0 .../delivery_plan/delivery_plan.txt | 0 .../itemwise_production_report}/__init__.py | 0 .../itemwise_production_report.js | 0 .../itemwise_production_report.txt | 0 .../production_orders_in_process}/__init__.py | 0 .../production_orders_in_process.txt | 0 .../Module Def/Projects/Projects.txt | 0 .../Role/Projects User/Projects User.txt | 0 .../doctype => erpnext/projects}/__init__.py | 0 .../projects/doctype}/__init__.py | 0 .../doctype/activity_type}/__init__.py | 0 .../doctype/activity_type/activity_type.txt | 0 .../projects/doctype/project}/__init__.py | 0 .../projects}/doctype/project/project.js | 0 .../projects}/doctype/project/project.py | 0 .../projects}/doctype/project/project.txt | 0 .../doctype/project_activity}/__init__.py | 0 .../project_activity/project_activity.js | 0 .../project_activity/project_activity.py | 0 .../project_activity/project_activity.txt | 0 .../project_activity_update}/__init__.py | 0 .../project_activity_update.txt | 0 .../doctype/project_control}/__init__.py | 0 .../project_control/project_control.py | 0 .../project_control/project_control.txt | 0 .../doctype/project_milestone}/__init__.py | 0 .../project_milestone/project_milestone.txt | 0 .../projects/doctype/ticket}/__init__.py | 0 .../projects}/doctype/ticket/ticket.js | 0 .../projects}/doctype/ticket/ticket.py | 0 .../projects}/doctype/ticket/ticket.txt | 0 .../projects/doctype/timesheet}/__init__.py | 0 .../projects}/doctype/timesheet/timesheet.js | 0 .../projects}/doctype/timesheet/timesheet.py | 0 .../projects}/doctype/timesheet/timesheet.txt | 0 .../doctype/timesheet_detail}/__init__.py | 0 .../timesheet_detail/timesheet_detail.txt | 0 .../projects/page}/__init__.py | 0 .../projects/page/projects}/__init__.py | 0 .../projects}/page/projects/projects.html | 0 .../projects}/page/projects/projects.js | 0 .../projects}/page/projects/projects.txt | 0 .../page/projects/projects_static.html | 0 .../projects/search_criteria}/__init__.py | 0 .../dispatch_report}/__init__.py | 0 .../dispatch_report/dispatch_report.js | 0 .../dispatch_report/dispatch_report.txt | 0 .../__init__.py | 0 .../projectwise_delivered_qty_and_costs.js | 0 .../projectwise_delivered_qty_and_costs.txt | 0 .../__init__.py | 0 .../projectwise_pending_qty_and_costs.js | 0 .../projectwise_pending_qty_and_costs.txt | 0 .../projectwise_purchase_details}/__init__.py | 0 .../projectwise_purchase_details.js | 0 .../projectwise_purchase_details.py | 0 .../projectwise_purchase_details.txt | 0 .../projectwise_sales_details}/__init__.py | 0 .../projectwise_sales_details.js | 0 .../projectwise_sales_details.py | 0 .../projectwise_sales_details.txt | 0 .../projectwise_sales_orders}/__init__.py | 0 .../projectwise_sales_orders.txt | 0 .../timesheet_report}/__init__.py | 0 .../timesheet_report/timesheet_report.js | 0 .../timesheet_report/timesheet_report.txt | 0 .../Delivery Note-Installation Note.txt | 0 .../Enquiry-Quotation/Enquiry-Quotation.txt | 0 .../Lead-Customer/Lead-Customer.txt | 0 .../Lead-Enquiry/Lead-Enquiry.txt | 0 .../Project-Sales Order.txt | 0 .../Quotation-Sales Order.txt | 0 .../selling}/Module Def/Selling/Selling.txt | 0 .../selling}/Role/Customer/Customer.txt | 0 .../selling}/Role/Partner/Partner.txt | 0 .../Role/Sales Manager/Sales Manager.txt | 0 .../Sales Master Manager.txt | 0 .../selling}/Role/Sales User/Sales User.txt | 0 .../doctype => erpnext/selling}/__init__.py | 0 .../selling/doctype}/__init__.py | 0 .../selling/doctype/campaign}/__init__.py | 0 .../selling}/doctype/campaign/campaign.js | 0 .../selling}/doctype/campaign/campaign.txt | 0 .../selling/doctype/customer}/__init__.py | 0 .../selling}/doctype/customer/customer.js | 0 .../selling}/doctype/customer/customer.py | 0 .../selling}/doctype/customer/customer.txt | 0 .../selling/doctype/enquiry}/__init__.py | 0 .../selling}/doctype/enquiry/enquiry.js | 0 .../selling}/doctype/enquiry/enquiry.py | 0 .../selling}/doctype/enquiry/enquiry.txt | 0 .../doctype/enquiry_detail}/__init__.py | 0 .../doctype/enquiry_detail/enquiry_detail.txt | 0 .../doctype/enquiry_sms_detail}/__init__.py | 0 .../enquiry_sms_detail/enquiry_sms_detail.txt | 0 .../selling/doctype/follow_up}/__init__.py | 0 .../selling}/doctype/follow_up/follow_up.txt | 0 .../doctype/industry_type}/__init__.py | 0 .../doctype/industry_type/industry_type.js | 0 .../doctype/industry_type/industry_type.txt | 0 .../doctype/installation_note}/__init__.py | 0 .../installation_note/installation_note.js | 0 .../installation_note/installation_note.py | 0 .../installation_note/installation_note.txt | 0 .../installed_item_details}/__init__.py | 0 .../installed_item_details.txt | 0 .../selling/doctype/lead}/__init__.py | 0 .../selling}/doctype/lead/lead.js | 0 .../selling}/doctype/lead/lead.py | 0 .../selling}/doctype/lead/lead.txt | 0 .../lead_attachment_detail}/__init__.py | 0 .../lead_attachment_detail.txt | 0 .../doctype/lead_item_detail}/__init__.py | 0 .../lead_item_detail/lead_item_detail.txt | 0 .../doctype/lead_sms_detail}/__init__.py | 0 .../lead_sms_detail/lead_sms_detail.txt | 0 .../selling/doctype/plot_control}/__init__.py | 0 .../doctype/plot_control/plot_control.py | 0 .../doctype/plot_control/plot_control.txt | 0 .../selling/doctype/quotation}/__init__.py | 0 .../selling}/doctype/quotation/quotation.js | 0 .../selling}/doctype/quotation/quotation.py | 0 .../selling}/doctype/quotation/quotation.txt | 0 .../doctype/quotation_detail}/__init__.py | 0 .../quotation_detail/quotation_detail.txt | 0 .../doctype/return_detail}/__init__.py | 0 .../doctype/return_detail/return_detail.txt | 0 .../selling/doctype/sales_common}/__init__.py | 0 .../doctype/sales_common/sales_common.js | 0 .../doctype/sales_common/sales_common.py | 0 .../doctype/sales_common/sales_common.txt | 0 .../selling/doctype/sales_order}/__init__.py | 0 .../doctype/sales_order/sales_order.js | 0 .../doctype/sales_order/sales_order.py | 0 .../doctype/sales_order/sales_order.txt | 0 .../doctype/sales_order_detail}/__init__.py | 0 .../sales_order_detail/sales_order_detail.txt | 0 .../selling/doctype/sales_team}/__init__.py | 0 .../doctype/sales_team/sales_team.txt | 0 .../doctype/shipping_address}/__init__.py | 0 .../shipping_address/shipping_address.js | 0 .../shipping_address/shipping_address.py | 0 .../shipping_address/shipping_address.txt | 0 .../selling/doctype/sms_center}/__init__.py | 0 .../selling}/doctype/sms_center/sms_center.js | 0 .../selling}/doctype/sms_center/sms_center.py | 0 .../doctype/sms_center/sms_center.txt | 0 .../selling/page}/__init__.py | 0 .../selling/page/customers}/__init__.py | 0 .../selling}/page/customers/customers.html | 0 .../selling}/page/customers/customers.js | 0 .../selling}/page/customers/customers.txt | 0 .../selling/page/sales_browser}/__init__.py | 0 .../page/sales_browser/sales_browser.html | 0 .../page/sales_browser/sales_browser.js | 0 .../page/sales_browser/sales_browser.txt | 0 .../selling/page/sales_dashboard}/__init__.py | 0 .../page/sales_dashboard/sales_dashboard.html | 0 .../page/sales_dashboard/sales_dashboard.js | 0 .../page/sales_dashboard/sales_dashboard.txt | 0 .../selling/search_criteria}/__init__.py | 0 .../__init__.py | 0 .../delivered_items_to_be_install.js | 0 .../delivered_items_to_be_install.txt | 0 .../__init__.py | 0 ...delivery_note_itemwise_pending_to_bill.txt | 0 .../draft_sales_orders}/__init__.py | 0 .../draft_sales_orders/draft_sales_orders.js | 0 .../draft_sales_orders/draft_sales_orders.txt | 0 .../follow_up_report}/__init__.py | 0 .../follow_up_report/follow_up_report.js | 0 .../follow_up_report/follow_up_report.py | 0 .../follow_up_report/follow_up_report.txt | 0 .../search_criteria/gross_profit}/__init__.py | 0 .../gross_profit/gross_profit.js | 0 .../gross_profit/gross_profit.py | 0 .../gross_profit/gross_profit.txt | 0 .../itemwise_delivery_details}/__init__.py | 0 .../itemwise_delivery_details.js | 0 .../itemwise_delivery_details.py | 0 .../itemwise_delivery_details.txt | 0 .../itemwise_sales_details}/__init__.py | 0 .../itemwise_sales_details.js | 0 .../itemwise_sales_details.py | 0 .../itemwise_sales_details.txt | 0 .../monthly_despatched_trend}/__init__.py | 0 .../monthly_despatched_trend.js | 0 .../monthly_despatched_trend.py | 0 .../monthly_despatched_trend.txt | 0 .../periodic_sales_summary}/__init__.py | 0 .../periodic_sales_summary.js | 0 .../periodic_sales_summary.txt | 0 .../sales_agentwise_commission}/__init__.py | 0 .../sales_agentwise_commission.js | 0 .../sales_agentwise_commission.py | 0 .../sales_agentwise_commission.txt | 0 .../sales_order_pending_items1}/__init__.py | 0 .../sales_order_pending_items1.js | 0 .../sales_order_pending_items1.txt | 0 .../search_criteria/sales_orderwise_booking_ | 0 .../__init__.py | 0 ...s_orderwise_booking_&_delivery_summary.txt | 0 .../__init__.py | 0 .../sales_orderwise_pending_amount_to_bill.js | 0 ...sales_orderwise_pending_amount_to_bill.txt | 0 .../__init__.py | 0 ...sales_orderwise_pending_qty_to_deliver.txt | 0 .../__init__.py | 0 ...persons_target_variance_item_group_wise.js | 0 ...persons_target_variance_item_group_wise.py | 0 ...ersons_target_variance_item_group_wise.txt | 0 .../__init__.py | 0 .../sales_personwise_transaction_summary.js | 0 .../sales_personwise_transaction_summary.py | 0 .../sales_personwise_transaction_summary.txt | 0 .../target_variance_report}/__init__.py | 0 .../target_variance_report.js | 0 .../target_variance_report.py | 0 .../target_variance_report.txt | 0 .../__init__.py | 0 ...itories_target_variance_item_group_wise.js | 0 ...itories_target_variance_item_group_wise.py | 0 ...tories_target_variance_item_group_wise.txt | 0 .../territory_item_group_wise_gp}/__init__.py | 0 .../territory_item_group_wise_gp.py | 0 .../territory_item_group_wise_gp.txt | 0 .../__init__.py | 0 .../territory_sales___variance_report.js | 0 .../territory_sales___variance_report.py | 0 .../territory_sales___variance_report.txt | 0 .../total_target_variance_report}/__init__.py | 0 .../total_target_variance_report.js | 0 .../total_target_variance_report.py | 0 .../total_target_variance_report.sql | 0 .../total_target_variance_report.txt | 0 .../variance_report}/__init__.py | 0 .../variance_report/variance_report.js | 0 .../variance_report/variance_report.py | 0 .../variance_report/variance_report.sql | 0 .../variance_report/variance_report.txt | 0 .../setup}/Module Def/Setup/Setup.txt | 0 .../Role/System Manager/System Manager.txt | 0 {setup/doctype => erpnext/setup}/__init__.py | 0 .../setup/doctype}/__init__.py | 0 .../authorization_control}/__init__.py | 0 .../authorization_control.js | 0 .../authorization_control.py | 0 .../authorization_control.txt | 0 .../doctype/authorization_rule}/__init__.py | 0 .../authorization_rule/authorization_rule.js | 0 .../authorization_rule/authorization_rule.py | 0 .../authorization_rule/authorization_rule.txt | 0 .../setup/doctype/brand}/__init__.py | 0 .../setup}/doctype/brand/brand.js | 0 .../setup}/doctype/brand/brand.txt | 0 .../setup/doctype/company}/__init__.py | 0 .../setup}/doctype/company/company.js | 0 .../setup}/doctype/company/company.py | 0 .../setup}/doctype/company/company.txt | 0 .../doctype/contact_control}/__init__.py | 0 .../contact_control/contact_control.js | 0 .../contact_control/contact_control.py | 0 .../contact_control/contact_control.txt | 0 .../setup/doctype/country}/__init__.py | 0 .../setup}/doctype/country/country.js | 0 .../setup}/doctype/country/country.txt | 0 .../setup/doctype/currency}/__init__.py | 0 .../setup}/doctype/currency/currency.txt | 0 .../setup/doctype/customer_group}/__init__.py | 0 .../doctype/customer_group/customer_group.js | 0 .../doctype/customer_group/customer_group.py | 0 .../doctype/customer_group/customer_group.txt | 0 .../setup/doctype/email_digest}/__init__.py | 0 .../doctype/email_digest/email_digest.coffee | 0 .../doctype/email_digest/email_digest.css | 0 .../doctype/email_digest/email_digest.js | 0 .../doctype/email_digest/email_digest.txt | 0 .../setup/doctype/email_settings}/__init__.py | 0 .../doctype/email_settings/email_settings.js | 0 .../doctype/email_settings/email_settings.py | 0 .../doctype/email_settings/email_settings.txt | 0 .../setup/doctype/features_setup}/__init__.py | 0 .../doctype/features_setup/features_setup.py | 0 .../doctype/features_setup/features_setup.txt | 0 .../doctype/import_data_control}/__init__.py | 0 .../import_data_control.py | 0 .../import_data_control.txt | 0 .../setup/doctype/item_group}/__init__.py | 0 .../setup}/doctype/item_group/item_group.js | 0 .../setup}/doctype/item_group/item_group.py | 0 .../setup}/doctype/item_group/item_group.txt | 0 .../setup/doctype/manage_account}/__init__.py | 0 .../doctype/manage_account/manage_account.js | 0 .../doctype/manage_account/manage_account.py | 0 .../doctype/manage_account/manage_account.txt | 0 .../setup/doctype/market_segment}/__init__.py | 0 .../doctype/market_segment/market_segment.txt | 0 .../setup/doctype/naming_series}/__init__.py | 0 .../doctype/naming_series/naming_series.js | 0 .../doctype/naming_series/naming_series.py | 0 .../doctype/naming_series/naming_series.txt | 0 .../naming_series_options}/__init__.py | 0 .../naming_series_options.txt | 0 .../doctype/notification_control}/__init__.py | 0 .../notification_control.js | 0 .../notification_control.py | 0 .../notification_control.txt | 0 .../doctype/order_lost_reason}/__init__.py | 0 .../order_lost_reason/order_lost_reason.js | 0 .../order_lost_reason/order_lost_reason.txt | 0 .../setup/doctype/other_charges}/__init__.py | 0 .../doctype/other_charges/other_charges.js | 0 .../doctype/other_charges/other_charges.py | 0 .../doctype/other_charges/other_charges.txt | 0 .../setup/doctype/period}/__init__.py | 0 .../setup}/doctype/period/period.js | 0 .../setup}/doctype/period/period.txt | 0 .../setup/doctype/period_control}/__init__.py | 0 .../doctype/period_control/period_control.py | 0 .../doctype/period_control/period_control.txt | 0 .../doctype/permission_control}/__init__.py | 0 .../permission_control/permission_control.py | 0 .../permission_control/permission_control.txt | 0 .../setup/doctype/personalize}/__init__.py | 0 .../setup}/doctype/personalize/personalize.py | 0 .../doctype/personalize/personalize.txt | 0 .../setup/doctype/price_list}/__init__.py | 0 .../setup}/doctype/price_list/price_list.js | 0 .../setup}/doctype/price_list/price_list.py | 0 .../setup}/doctype/price_list/price_list.txt | 0 .../setup/doctype/print_heading}/__init__.py | 0 .../doctype/print_heading/print_heading.js | 0 .../doctype/print_heading/print_heading.py | 0 .../doctype/print_heading/print_heading.txt | 0 .../setup/doctype/role}/__init__.py | 0 {setup => erpnext/setup}/doctype/role/role.js | 0 {setup => erpnext/setup}/doctype/role/role.py | 0 .../setup}/doctype/role/role.txt | 0 .../sales_browser_control}/__init__.py | 0 .../sales_browser_control.py | 0 .../sales_browser_control.txt | 0 .../setup/doctype/sales_partner}/__init__.py | 0 .../doctype/sales_partner/sales_partner.js | 0 .../doctype/sales_partner/sales_partner.py | 0 .../doctype/sales_partner/sales_partner.txt | 0 .../setup/doctype/sales_person}/__init__.py | 0 .../doctype/sales_person/sales_person.js | 0 .../doctype/sales_person/sales_person.py | 0 .../doctype/sales_person/sales_person.txt | 0 .../setup/doctype/series_detail}/__init__.py | 0 .../doctype/series_detail/series_detail.txt | 0 .../setup/doctype/setup_control}/__init__.py | 0 .../doctype/setup_control/setup_control.py | 0 .../doctype/setup_control/setup_control.txt | 0 .../doctype/setup_wizard_control}/__init__.py | 0 .../setup_wizard_control.py | 0 .../setup_wizard_control.txt | 0 .../setup/doctype/sms_settings}/__init__.py | 0 .../doctype/sms_settings/sms_settings.txt | 0 .../setup/doctype/state}/__init__.py | 0 .../setup}/doctype/state/state.js | 0 .../setup}/doctype/state/state.txt | 0 .../static_parameter_detail}/__init__.py | 0 .../static_parameter_detail.txt | 0 .../setup/doctype/supplier_type}/__init__.py | 0 .../doctype/supplier_type/supplier_type.js | 0 .../doctype/supplier_type/supplier_type.txt | 0 .../setup/doctype/target_detail}/__init__.py | 0 .../doctype/target_detail/target_detail.txt | 0 .../setup/doctype/term}/__init__.py | 0 {setup => erpnext/setup}/doctype/term/term.js | 0 .../setup}/doctype/term/term.txt | 0 .../setup/doctype/territory}/__init__.py | 0 .../setup}/doctype/territory/territory.js | 0 .../setup}/doctype/territory/territory.py | 0 .../setup}/doctype/territory/territory.txt | 0 .../setup/doctype/uom}/__init__.py | 0 {setup => erpnext/setup}/doctype/uom/uom.js | 0 {setup => erpnext/setup}/doctype/uom/uom.txt | 0 .../setup/doctype/update_series}/__init__.py | 0 .../doctype/update_series/update_series.py | 0 .../doctype/update_series/update_series.txt | 0 .../upload_accounts_transactions}/__init__.py | 0 .../upload_accounts_transactions.js | 0 .../upload_accounts_transactions.py | 0 .../upload_accounts_transactions.txt | 0 .../setup/doctype/warehouse_type}/__init__.py | 0 .../doctype/warehouse_type/warehouse_type.js | 0 .../doctype/warehouse_type/warehouse_type.txt | 0 .../workflow_action_detail}/__init__.py | 0 .../workflow_action_detail.txt | 0 .../doctype/workflow_engine}/__init__.py | 0 .../workflow_engine/workflow_engine.py | 0 .../workflow_engine/workflow_engine.txt | 0 .../setup/doctype/workflow_rule}/__init__.py | 0 .../doctype/workflow_rule/workflow_rule.js | 0 .../doctype/workflow_rule/workflow_rule.py | 0 .../doctype/workflow_rule/workflow_rule.txt | 0 .../doctype/workflow_rule_detail}/__init__.py | 0 .../workflow_rule_detail.txt | 0 .../setup/page}/__init__.py | 0 .../setup/page/import_data}/__init__.py | 0 .../setup}/page/import_data/import_data.html | 0 .../setup}/page/import_data/import_data.js | 0 .../setup}/page/import_data/import_data.txt | 0 .../setup/page/people}/__init__.py | 0 .../setup}/page/people/people.html | 0 .../setup}/page/people/people.js | 0 .../setup}/page/people/people.txt | 0 .../setup/page/permission_engine}/__init__.py | 0 .../permission_engine/permission_engine.html | 0 .../permission_engine/permission_engine.js | 0 .../permission_engine/permission_engine.txt | 0 .../setup/page/setup}/__init__.py | 0 .../setup}/page/setup/setup.html | 0 {setup => erpnext/setup}/page/setup/setup.js | 0 {setup => erpnext/setup}/page/setup/setup.txt | 0 .../setup}/page/setup/setup_static.html | 0 .../setup/page/setup_wizard}/__init__.py | 0 .../page/setup_wizard/setup_wizard.html | 0 .../setup}/page/setup_wizard/setup_wizard.js | 0 .../setup}/page/setup_wizard/setup_wizard.txt | 0 .../setup_wizard/setup_wizard_static.html | 0 .../setup/page/webforms}/__init__.py | 0 .../setup}/page/webforms/webforms.html | 0 .../setup}/page/webforms/webforms.js | 0 .../setup}/page/webforms/webforms.txt | 0 .../setup}/page/webforms/webforms_static.html | 0 {startup => erpnext/startup}/__init__.py | 0 .../startup}/event_handlers.py | 0 {startup => erpnext/startup}/startup.css | 0 {startup => erpnext/startup}/startup.js | 0 .../QA Inspection Report.txt | 0 .../Project-Delivery Note.txt | 0 .../Purchase Order-Purchase Receipt.txt | 0 .../Receivable Voucher-Delivery Note.txt | 0 .../Sales Order-Delivery Note.txt | 0 .../All Item Groups/All Item Groups.txt | 0 .../stock}/Item Group/Default/Default.txt | 0 .../stock}/Module Def/Stock/Stock.txt | 0 .../Delivery Note Packing List Wise.txt | 0 .../Purchase Receipt Format.txt | 0 .../Material Manager/Material Manager.txt | 0 .../Material Master Manager.txt | 0 .../Role/Material User/Material User.txt | 0 .../Role/Quality Manager/Quality Manager.txt | 0 {stock/doctype => erpnext/stock}/__init__.py | 0 .../stock/doctype}/__init__.py | 0 .../stock/doctype/batch}/__init__.py | 0 .../stock}/doctype/batch/batch.txt | 0 .../stock/doctype/bin}/__init__.py | 0 {stock => erpnext/stock}/doctype/bin/bin.py | 0 {stock => erpnext/stock}/doctype/bin/bin.txt | 0 .../stock/doctype/delivery_note}/__init__.py | 0 .../doctype/delivery_note/delivery_note.js | 0 .../doctype/delivery_note/delivery_note.py | 0 .../doctype/delivery_note/delivery_note.txt | 0 .../doctype/delivery_note_detail}/__init__.py | 0 .../delivery_note_detail.txt | 0 .../delivery_note_packing_detail}/__init__.py | 0 .../delivery_note_packing_detail.txt | 0 .../stock/doctype/item}/__init__.py | 0 {stock => erpnext/stock}/doctype/item/item.js | 0 {stock => erpnext/stock}/doctype/item/item.py | 0 .../stock}/doctype/item/item.txt | 0 .../doctype/item_customer_detail}/__init__.py | 0 .../item_customer_detail.txt | 0 .../item_specification_detail}/__init__.py | 0 .../item_specification_detail.txt | 0 .../stock/doctype/item_tax}/__init__.py | 0 .../stock}/doctype/item_tax/item_tax.txt | 0 .../doctype/landed_cost_detail}/__init__.py | 0 .../landed_cost_detail/landed_cost_detail.txt | 0 .../doctype/landed_cost_master}/__init__.py | 0 .../landed_cost_master/landed_cost_master.js | 0 .../landed_cost_master/landed_cost_master.txt | 0 .../landed_cost_master_detail}/__init__.py | 0 .../landed_cost_master_detail.txt | 0 .../doctype/landed_cost_wizard}/__init__.py | 0 .../landed_cost_wizard/landed_cost_wizard.js | 0 .../landed_cost_wizard/landed_cost_wizard.py | 0 .../landed_cost_wizard/landed_cost_wizard.txt | 0 .../stock/doctype/lc_pr_detail}/__init__.py | 0 .../doctype/lc_pr_detail/lc_pr_detail.txt | 0 .../doctype/purchase_receipt}/__init__.py | 0 .../purchase_receipt/purchase_receipt.js | 0 .../purchase_receipt/purchase_receipt.py | 0 .../purchase_receipt/purchase_receipt.txt | 0 .../purchase_receipt_detail}/__init__.py | 0 .../purchase_receipt_detail.txt | 0 .../doctype/ref_rate_detail}/__init__.py | 0 .../ref_rate_detail/ref_rate_detail.txt | 0 .../__init__.py | 0 .../sales_and_purchase_return_wizard.js | 0 .../sales_and_purchase_return_wizard.py | 0 .../sales_and_purchase_return_wizard.txt | 0 .../stock/doctype/sales_bom}/__init__.py | 0 .../stock}/doctype/sales_bom/sales_bom.js | 0 .../stock}/doctype/sales_bom/sales_bom.py | 0 .../stock}/doctype/sales_bom/sales_bom.txt | 0 .../doctype/sales_bom_detail}/__init__.py | 0 .../sales_bom_detail/sales_bom_detail.txt | 0 .../stock/doctype/serial_no}/__init__.py | 0 .../stock}/doctype/serial_no/serial_no.js | 0 .../stock}/doctype/serial_no/serial_no.py | 0 .../stock}/doctype/serial_no/serial_no.txt | 0 .../stock/doctype/stock_entry}/__init__.py | 0 .../stock}/doctype/stock_entry/stock_entry.js | 0 .../stock}/doctype/stock_entry/stock_entry.py | 0 .../doctype/stock_entry/stock_entry.py~ | 0 .../doctype/stock_entry/stock_entry.txt | 0 .../doctype/stock_entry_detail}/__init__.py | 0 .../stock_entry_detail/stock_entry_detail.txt | 0 .../stock/doctype/stock_ledger}/__init__.py | 0 .../doctype/stock_ledger/stock_ledger.py | 0 .../doctype/stock_ledger/stock_ledger.txt | 0 .../doctype/stock_ledger_entry}/__init__.py | 0 .../stock_ledger_entry/stock_ledger_entry.py | 0 .../stock_ledger_entry/stock_ledger_entry.txt | 0 .../doctype/stock_reconciliation}/__init__.py | 0 .../stock_reconciliation.js | 0 .../stock_reconciliation.py | 0 .../stock_reconciliation.txt | 0 .../stock_uom_replace_utility}/__init__.py | 0 .../stock_uom_replace_utility.js | 0 .../stock_uom_replace_utility.py | 0 .../stock_uom_replace_utility.txt | 0 .../uom_conversion_detail}/__init__.py | 0 .../uom_conversion_detail.txt | 0 .../doctype/valuation_control}/__init__.py | 0 .../valuation_control/valuation_control.py | 0 .../valuation_control/valuation_control.py~ | 0 .../valuation_control/valuation_control.txt | 0 .../stock/doctype/warehouse}/__init__.py | 0 .../stock}/doctype/warehouse/warehouse.js | 0 .../stock}/doctype/warehouse/warehouse.py | 0 .../stock}/doctype/warehouse/warehouse.txt | 0 .../stock/page}/__init__.py | 0 .../stock/search_criteria}/__init__.py | 0 .../itemwise_price_list}/__init__.py | 0 .../itemwise_price_list.js | 0 .../itemwise_price_list.txt | 0 .../shortage_to_indent}/__init__.py | 0 .../shortage_to_indent/shortage_to_indent.js | 0 .../shortage_to_indent/shortage_to_indent.py | 0 .../shortage_to_indent/shortage_to_indent.txt | 0 .../stock_aging_report}/__init__.py | 0 .../stock_aging_report/stock_aging_report.js | 0 .../stock_aging_report/stock_aging_report.py | 0 .../stock_aging_report/stock_aging_report.txt | 0 .../search_criteria/stock_ledger}/__init__.py | 0 .../stock_ledger/stock_ledger.js | 0 .../stock_ledger/stock_ledger.txt | 0 .../search_criteria/stock_level}/__init__.py | 0 .../stock_level/stock_level.js | 0 .../stock_level/stock_level.py | 0 .../stock_level/stock_level.txt | 0 .../search_criteria/stock_report}/__init__.py | 0 .../stock_report/stock_report.js | 0 .../stock_report/stock_report.py | 0 .../stock_report/stock_report.txt | 0 {stock => erpnext/stock}/tests.py | 0 .../support}/DocType Label/Ticket/Ticket.txt | 0 .../Customer Issue-Maintenance Visit.txt | 0 .../Sales Order-Maintenance Schedule.txt | 0 .../Sales Order-Maintenance Visit.txt | 0 .../support}/Module Def/Support/Support.txt | 0 .../Maintenance Manager.txt | 0 .../Maintenance User/Maintenance User.txt | 0 .../Role/Support Manager/Support Manager.txt | 0 .../Role/Support Team/Support Team.txt | 0 .../doctype => erpnext/support}/__init__.py | 0 .../support/doctype}/__init__.py | 0 .../doctype/customer_issue}/__init__.py | 0 .../doctype/customer_issue/customer_issue.js | 0 .../doctype/customer_issue/customer_issue.py | 0 .../doctype/customer_issue/customer_issue.txt | 0 .../item_maintenance_detail}/__init__.py | 0 .../item_maintenance_detail.txt | 0 .../doctype/maintenance_schedule}/__init__.py | 0 .../maintenance_schedule.js | 0 .../maintenance_schedule.py | 0 .../maintenance_schedule.txt | 0 .../maintenance_schedule_detail}/__init__.py | 0 .../maintenance_schedule_detail.txt | 0 .../doctype/maintenance_visit}/__init__.py | 0 .../maintenance_visit/maintenance_visit.js | 0 .../maintenance_visit/maintenance_visit.py | 0 .../maintenance_visit/maintenance_visit.txt | 0 .../maintenance_visit_detail}/__init__.py | 0 .../maintenance_visit_detail.txt | 0 .../doctype/support_ticket/__init__.py | 0 .../doctype/support_ticket/support_ticket.js | 0 .../doctype/support_ticket/support_ticket.py | 0 .../doctype/support_ticket/support_ticket.txt | 0 .../support_ticket_response}/__init__.py | 0 .../support_ticket_response.txt | 0 .../support/search_criteria}/__init__.py | 0 .../search_criteria/amc_summary}/__init__.py | 0 .../amc_summary/amc_summary.js | 0 .../amc_summary/amc_summary.py | 0 .../amc_summary/amc_summary.txt | 0 .../customer_issues}/__init__.py | 0 .../customer_issues/customer_issues.js | 0 .../customer_issues/customer_issues.txt | 0 .../__init__.py | 0 ...enance_orderwise_pending_amount_to_bill.js | 0 ...nance_orderwise_pending_amount_to_bill.txt | 0 .../maintenance_schedule_details}/__init__.py | 0 .../maintenance_schedule_details.js | 0 .../maintenance_schedule_details.txt | 0 .../warranty_amc_expiry_details}/__init__.py | 0 .../warranty_amc_expiry_details.js | 0 .../warranty_amc_expiry_details.txt | 0 .../warranty_amc_summary}/__init__.py | 0 .../warranty_amc_summary.js | 0 .../warranty_amc_summary.py | 0 .../warranty_amc_summary.sql | 0 .../warranty_amc_summary.txt | 0 .../Module Def/Utilities/Utilities.txt | 0 .../doctype => erpnext/utilities}/__init__.py | 0 .../utilities/doctype}/__init__.py | 0 .../activity_dashboard_control}/__init__.py | 0 .../activity_dashboard_control.py | 0 .../activity_dashboard_control.txt | 0 .../utilities/doctype/address}/__init__.py | 0 .../utilities}/doctype/address/address.js | 0 .../utilities}/doctype/address/address.py | 0 .../utilities}/doctype/address/address.txt | 0 .../doctype/bulk_rename_tool}/__init__.py | 0 .../bulk_rename_tool/bulk_rename_tool.py | 0 .../bulk_rename_tool/bulk_rename_tool.txt | 0 .../utilities/doctype/contact}/__init__.py | 0 .../utilities}/doctype/contact/contact.js | 0 .../utilities}/doctype/contact/contact.py | 0 .../utilities}/doctype/contact/contact.txt | 0 .../doctype/contact_detail}/__init__.py | 0 .../doctype/contact_detail/contact_detail.txt | 0 .../doctype/doctype_label}/__init__.py | 0 .../doctype/doctype_label/doctype_label.txt | 0 .../doctype_property_setter}/__init__.py | 0 .../doctype_property_setter.py | 0 .../doctype_property_setter.txt | 0 .../doctype/file_browser_control}/__init__.py | 0 .../file_browser_control.py | 0 .../file_browser_control.txt | 0 .../utilities/doctype/gl_mapper}/__init__.py | 0 .../doctype/gl_mapper/gl_mapper.txt | 0 .../doctype/gl_mapper_detail}/__init__.py | 0 .../gl_mapper_detail/gl_mapper_detail.txt | 0 .../doctype/menu_control}/__init__.py | 0 .../doctype/menu_control/menu_control.js | 0 .../doctype/menu_control/menu_control.py | 0 .../doctype/menu_control/menu_control.txt | 0 .../utilities/doctype/patch_util}/__init__.py | 0 .../doctype/patch_util/patch_util.py | 0 .../doctype/patch_util/patch_util.txt | 0 .../production_tips_common}/__init__.py | 0 .../production_tips_common.js | 0 .../production_tips_common.txt | 0 .../doctype/profile_control}/__init__.py | 0 .../profile_control/profile_control.py | 0 .../profile_control/profile_control.txt | 0 .../doctype/receiver_detail}/__init__.py | 0 .../receiver_detail/receiver_detail.txt | 0 .../doctype/rename_tool}/__init__.py | 0 .../doctype/rename_tool/rename_tool.js | 0 .../doctype/rename_tool/rename_tool.py | 0 .../doctype/rename_tool/rename_tool.txt | 0 .../doctype/reposting_tool}/__init__.py | 0 .../doctype/reposting_tool/reposting_tool.js | 0 .../doctype/reposting_tool/reposting_tool.py | 0 .../doctype/reposting_tool/reposting_tool.txt | 0 .../utilities/doctype/sms_center}/__init__.py | 0 .../doctype/sms_center/sms_center.js | 0 .../doctype/sms_center/sms_center.py | 0 .../doctype/sms_center/sms_center.txt | 0 .../doctype/sms_control}/__init__.py | 0 .../doctype/sms_control/sms_control.js | 0 .../doctype/sms_control/sms_control.py | 0 .../doctype/sms_control/sms_control.txt | 0 .../utilities/doctype/sms_log}/__init__.py | 0 .../utilities}/doctype/sms_log/sms_log.txt | 0 .../doctype/sso_control}/__init__.py | 0 .../doctype/sso_control/sso_control.py | 0 .../doctype/sso_control/sso_control.txt | 0 .../utilities/doctype/todo_item}/__init__.py | 0 .../doctype/todo_item/todo_item.txt | 0 .../doctype/trash_control}/__init__.py | 0 .../doctype/trash_control/trash_control.py | 0 .../doctype/trash_control/trash_control.txt | 0 .../wn_erp_client_control}/__init__.py | 0 .../wn_erp_client_control.py | 0 .../wn_erp_client_control.txt | 0 .../utilities/page}/__init__.py | 0 .../utilities/page/file_browser}/__init__.py | 0 .../page/file_browser/file_browser.html | 0 .../page/file_browser/file_browser.js | 0 .../page/file_browser/file_browser.txt | 0 .../utilities/page/messages}/__init__.py | 0 .../utilities}/page/messages/messages.html | 0 .../utilities}/page/messages/messages.js | 0 .../utilities}/page/messages/messages.txt | 0 .../page/messages/messages_static.html | 0 .../utilities/page/trash}/__init__.py | 0 .../utilities}/page/trash/trash.html | 0 .../utilities}/page/trash/trash.js | 0 .../utilities}/page/trash/trash.txt | 0 .../utilities/page/wip_monitor/__init__.py | 0 .../page/wip_monitor/wip_monitor.html | 0 .../page/wip_monitor/wip_monitor.js | 0 .../page/wip_monitor/wip_monitor.txt | 0 .../utilities}/transaction_base.py | 0 handler.cgi | 21 + index.html | 767 ++++++++++++++++++ js/app.js | 13 + templates/index.html | 22 + 1512 files changed, 832 insertions(+) create mode 100644 config/_timestamps.js create mode 100644 config/conf.py rename accounts/__init__.py => erpnext/.no_timestamps (100%) rename {accounts => erpnext/accounts}/DocType Label/Payable Voucher/Payable Voucher.txt (100%) rename {accounts => erpnext/accounts}/DocType Label/Receivable Voucher/Receivable Voucher.txt (100%) rename {accounts => erpnext/accounts}/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt (100%) rename {accounts => erpnext/accounts}/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt (100%) rename {accounts => erpnext/accounts}/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt (100%) rename {accounts => erpnext/accounts}/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt (100%) rename {accounts => erpnext/accounts}/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt (100%) rename {accounts => erpnext/accounts}/GL Mapper/Journal Voucher/Journal Voucher.txt (100%) rename {accounts => erpnext/accounts}/GL Mapper/POS with write off/POS with write off.txt (100%) rename {accounts => erpnext/accounts}/GL Mapper/POS/POS.txt (100%) rename {accounts => erpnext/accounts}/GL Mapper/Payable Voucher/Payable Voucher.txt (100%) rename {accounts => erpnext/accounts}/GL Mapper/Receivable Voucher/Receivable Voucher.txt (100%) rename {accounts => erpnext/accounts}/Module Def/Accounts/Accounts.txt (100%) rename {accounts => erpnext/accounts}/Print Format/Cheque Printing Format/Cheque Printing Format.txt (100%) rename {accounts => erpnext/accounts}/Print Format/Form 16A Print Format/Form 16A Print Format.txt (100%) rename {accounts => erpnext/accounts}/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt (100%) rename {accounts => erpnext/accounts}/Role/Accounts Manager/Accounts Manager.txt (100%) rename {accounts => erpnext/accounts}/Role/Accounts User/Accounts User.txt (100%) rename {accounts => erpnext/accounts}/TDS Rate Chart/Rate chart (01-07-2010)/Rate chart (01-07-2010).txt (100%) rename {accounts => erpnext/accounts}/TDS Rate Chart/TDS Rate Chart October 2009 Onwards/TDS Rate Chart October 2009 Onwards.txt (100%) rename {accounts => erpnext/accounts}/TDS Rate Chart/TDS Rate Chart for 2009-10/TDS Rate Chart for 2009-10.txt (100%) rename {accounts/doctype => erpnext/accounts}/__init__.py (100%) rename {accounts/doctype/account => erpnext/accounts/doctype}/__init__.py (100%) rename {accounts/doctype/account_balance => erpnext/accounts/doctype/account}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/account/account.js (100%) rename {accounts => erpnext/accounts}/doctype/account/account.py (100%) rename {accounts => erpnext/accounts}/doctype/account/account.txt (100%) rename {accounts/doctype/advance_adjustment_detail => erpnext/accounts/doctype/account_balance}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/account_balance/account_balance.txt (100%) rename {accounts/doctype/advance_allocation_detail => erpnext/accounts/doctype/advance_adjustment_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/advance_adjustment_detail/advance_adjustment_detail.txt (100%) rename {accounts/doctype/bank_reconciliation => erpnext/accounts/doctype/advance_allocation_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/advance_allocation_detail/advance_allocation_detail.txt (100%) rename {accounts/doctype/bank_reconciliation_detail => erpnext/accounts/doctype/bank_reconciliation}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/bank_reconciliation/bank_reconciliation.js (100%) rename {accounts => erpnext/accounts}/doctype/bank_reconciliation/bank_reconciliation.py (100%) rename {accounts => erpnext/accounts}/doctype/bank_reconciliation/bank_reconciliation.txt (100%) rename {accounts/doctype/budget_control => erpnext/accounts/doctype/bank_reconciliation_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt (100%) rename {accounts/doctype/budget_detail => erpnext/accounts/doctype/budget_control}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/budget_control/budget_control.js (100%) rename {accounts => erpnext/accounts}/doctype/budget_control/budget_control.py (100%) rename {accounts => erpnext/accounts}/doctype/budget_control/budget_control.txt (100%) rename {accounts/doctype/budget_distribution => erpnext/accounts/doctype/budget_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/budget_detail/budget_detail.txt (100%) rename {accounts/doctype/budget_distribution_detail => erpnext/accounts/doctype/budget_distribution}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/budget_distribution/budget_distribution.js (100%) rename {accounts => erpnext/accounts}/doctype/budget_distribution/budget_distribution.py (100%) rename {accounts => erpnext/accounts}/doctype/budget_distribution/budget_distribution.txt (100%) rename {accounts/doctype/cost_center => erpnext/accounts/doctype/budget_distribution_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/budget_distribution_detail/budget_distribution_detail.txt (100%) rename {accounts/doctype/fiscal_year => erpnext/accounts/doctype/cost_center}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/cost_center/cost_center.js (100%) rename {accounts => erpnext/accounts}/doctype/cost_center/cost_center.py (100%) rename {accounts => erpnext/accounts}/doctype/cost_center/cost_center.txt (100%) rename {accounts/doctype/form_16a => erpnext/accounts/doctype/fiscal_year}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/fiscal_year/fiscal_year.py (100%) rename {accounts => erpnext/accounts}/doctype/fiscal_year/fiscal_year.txt (100%) rename {accounts/doctype/form_16a_ack_detail => erpnext/accounts/doctype/form_16a}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/form_16a/form_16a.js (100%) rename {accounts => erpnext/accounts}/doctype/form_16a/form_16a.py (100%) rename {accounts => erpnext/accounts}/doctype/form_16a/form_16a.txt (100%) rename {accounts/doctype/form_16a_tax_detail => erpnext/accounts/doctype/form_16a_ack_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/form_16a_ack_detail/form_16a_ack_detail.txt (100%) rename {accounts/doctype/gl_control => erpnext/accounts/doctype/form_16a_tax_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/form_16a_tax_detail/form_16a_tax_detail.txt (100%) rename {accounts/doctype/gl_entry => erpnext/accounts/doctype/gl_control}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/gl_control/gl_control.js (100%) rename {accounts => erpnext/accounts}/doctype/gl_control/gl_control.py (100%) rename {accounts => erpnext/accounts}/doctype/gl_control/gl_control.txt (100%) rename {accounts/doctype/journal_voucher => erpnext/accounts/doctype/gl_entry}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/gl_entry/gl_entry.js (100%) rename {accounts => erpnext/accounts}/doctype/gl_entry/gl_entry.py (100%) rename {accounts => erpnext/accounts}/doctype/gl_entry/gl_entry.txt (100%) rename {accounts/doctype/journal_voucher_detail => erpnext/accounts/doctype/journal_voucher}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/journal_voucher/journal_voucher.js (100%) rename {accounts => erpnext/accounts}/doctype/journal_voucher/journal_voucher.py (100%) rename {accounts => erpnext/accounts}/doctype/journal_voucher/journal_voucher.txt (100%) rename {accounts/doctype/lease_agreement => erpnext/accounts/doctype/journal_voucher_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/journal_voucher_detail/journal_voucher_detail.txt (100%) rename {accounts/doctype/lease_installment => erpnext/accounts/doctype/lease_agreement}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/lease_agreement/lease_agreement.js (100%) rename {accounts => erpnext/accounts}/doctype/lease_agreement/lease_agreement.py (100%) rename {accounts => erpnext/accounts}/doctype/lease_agreement/lease_agreement.txt (100%) rename {accounts/doctype/ledger_balance_export => erpnext/accounts/doctype/lease_installment}/__init__.py (100%) mode change 100755 => 100644 rename {accounts => erpnext/accounts}/doctype/lease_installment/lease_installment.txt (100%) rename {accounts/doctype/ledger_detail => erpnext/accounts/doctype/ledger_balance_export}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/ledger_balance_export/ledger_balance_export.js (100%) rename {accounts => erpnext/accounts}/doctype/ledger_balance_export/ledger_balance_export.py (100%) rename {accounts => erpnext/accounts}/doctype/ledger_balance_export/ledger_balance_export.txt (100%) rename {accounts/doctype/mode_of_payment => erpnext/accounts/doctype/ledger_detail}/__init__.py (100%) mode change 100644 => 100755 rename {accounts => erpnext/accounts}/doctype/ledger_detail/ledger_detail.txt (100%) rename {accounts/doctype/payable_voucher => erpnext/accounts/doctype/mode_of_payment}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/mode_of_payment/mode_of_payment.js (100%) rename {accounts => erpnext/accounts}/doctype/mode_of_payment/mode_of_payment.txt (100%) rename {accounts/doctype/period_closing_voucher => erpnext/accounts/doctype/payable_voucher}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/payable_voucher/payable_voucher.js (100%) rename {accounts => erpnext/accounts}/doctype/payable_voucher/payable_voucher.py (100%) rename {accounts => erpnext/accounts}/doctype/payable_voucher/payable_voucher.txt (100%) rename {accounts/doctype/pos_setting => erpnext/accounts/doctype/period_closing_voucher}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/period_closing_voucher/period_closing_voucher.js (100%) rename {accounts => erpnext/accounts}/doctype/period_closing_voucher/period_closing_voucher.py (100%) rename {accounts => erpnext/accounts}/doctype/period_closing_voucher/period_closing_voucher.txt (100%) rename {accounts/doctype/purchase_tax_detail => erpnext/accounts/doctype/pos_setting}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/pos_setting/pos_setting.js (100%) rename {accounts => erpnext/accounts}/doctype/pos_setting/pos_setting.py (100%) rename {accounts => erpnext/accounts}/doctype/pos_setting/pos_setting.txt (100%) rename {accounts/doctype/pv_detail => erpnext/accounts/doctype/purchase_tax_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/purchase_tax_detail/purchase_tax_detail.txt (100%) rename {accounts/doctype/receivable_voucher => erpnext/accounts/doctype/pv_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/pv_detail/pv_detail.txt (100%) rename {accounts/doctype/rv_detail => erpnext/accounts/doctype/receivable_voucher}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/receivable_voucher/receivable_voucher.js (100%) rename {accounts => erpnext/accounts}/doctype/receivable_voucher/receivable_voucher.py (100%) rename {accounts => erpnext/accounts}/doctype/receivable_voucher/receivable_voucher.txt (100%) rename {accounts/doctype/rv_tax_detail => erpnext/accounts/doctype/rv_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/rv_detail/rv_detail.txt (100%) rename {accounts/doctype/tds_category => erpnext/accounts/doctype/rv_tax_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/rv_tax_detail/rv_tax_detail.txt (100%) rename {accounts/doctype/tds_category_account => erpnext/accounts/doctype/tds_category}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_category/tds_category.js (100%) rename {accounts => erpnext/accounts}/doctype/tds_category/tds_category.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_category/tds_category.txt (100%) rename {accounts/doctype/tds_control => erpnext/accounts/doctype/tds_category_account}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_category_account/tds_category_account.txt (100%) rename {accounts/doctype/tds_detail => erpnext/accounts/doctype/tds_control}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_control/tds_control.js (100%) rename {accounts => erpnext/accounts}/doctype/tds_control/tds_control.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_control/tds_control.txt (100%) rename {accounts/doctype/tds_payment => erpnext/accounts/doctype/tds_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_detail/tds_detail.txt (100%) rename {accounts/doctype/tds_payment_detail => erpnext/accounts/doctype/tds_payment}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_payment/tds_payment.js (100%) rename {accounts => erpnext/accounts}/doctype/tds_payment/tds_payment.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_payment/tds_payment.txt (100%) rename {accounts/doctype/tds_rate_chart => erpnext/accounts/doctype/tds_payment_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_payment_detail/tds_payment_detail.txt (100%) rename {accounts/doctype/tds_rate_detail => erpnext/accounts/doctype/tds_rate_chart}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_rate_chart/tds_rate_chart.txt (100%) rename {accounts/doctype/tds_return_acknowledgement => erpnext/accounts/doctype/tds_rate_detail}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_rate_detail/tds_rate_detail.txt (100%) rename {accounts/page => erpnext/accounts/doctype/tds_return_acknowledgement}/__init__.py (100%) rename {accounts => erpnext/accounts}/doctype/tds_return_acknowledgement/tds_return_acknowledgement.js (100%) rename {accounts => erpnext/accounts}/doctype/tds_return_acknowledgement/tds_return_acknowledgement.txt (100%) rename {accounts/page/accounts_browser => erpnext/accounts/page}/__init__.py (100%) rename {accounts/page/financial_statements => erpnext/accounts/page/accounts_browser}/__init__.py (100%) rename {accounts => erpnext/accounts}/page/accounts_browser/accounts_browser.css (100%) rename {accounts => erpnext/accounts}/page/accounts_browser/accounts_browser.html (100%) rename {accounts => erpnext/accounts}/page/accounts_browser/accounts_browser.js (100%) rename {accounts => erpnext/accounts}/page/accounts_browser/accounts_browser.txt (100%) rename {accounts/search_criteria => erpnext/accounts/page/financial_statements}/__init__.py (100%) rename {accounts => erpnext/accounts}/page/financial_statements/financial_statements.html (100%) rename {accounts => erpnext/accounts}/page/financial_statements/financial_statements.js (100%) rename {accounts => erpnext/accounts}/page/financial_statements/financial_statements.txt (100%) rename {accounts/search_criteria/accounts_payable => erpnext/accounts/search_criteria}/__init__.py (100%) rename {accounts/search_criteria/accounts_receivable => erpnext/accounts/search_criteria/accounts_payable}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/accounts_payable/accounts_payable.js (100%) rename {accounts => erpnext/accounts}/search_criteria/accounts_payable/accounts_payable.py (100%) rename {accounts => erpnext/accounts}/search_criteria/accounts_payable/accounts_payable.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/accounts_payable/accounts_payable.txt (100%) rename {accounts/search_criteria/bank_clearance_report => erpnext/accounts/search_criteria/accounts_receivable}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/accounts_receivable/accounts_receivable.js (100%) rename {accounts => erpnext/accounts}/search_criteria/accounts_receivable/accounts_receivable.py (100%) rename {accounts => erpnext/accounts}/search_criteria/accounts_receivable/accounts_receivable.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/accounts_receivable/accounts_receivable.txt (100%) rename {accounts/search_criteria/bank_reconciliation_statement => erpnext/accounts/search_criteria/bank_clearance_report}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/bank_clearance_report/bank_clearance_report.js (100%) rename {accounts => erpnext/accounts}/search_criteria/bank_clearance_report/bank_clearance_report.txt (100%) rename {accounts/search_criteria/budget_variance_report => erpnext/accounts/search_criteria/bank_reconciliation_statement}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.js (100%) rename {accounts => erpnext/accounts}/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.py (100%) rename {accounts => erpnext/accounts}/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt (100%) rename {accounts/search_criteria/business_associate_commission_report => erpnext/accounts/search_criteria/budget_variance_report}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/budget_variance_report/budget_variance_report.js (100%) rename {accounts => erpnext/accounts}/search_criteria/budget_variance_report/budget_variance_report.py (100%) rename {accounts => erpnext/accounts}/search_criteria/budget_variance_report/budget_variance_report.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/budget_variance_report/budget_variance_report.txt (100%) rename {accounts/search_criteria/cash_flow_statement => erpnext/accounts/search_criteria/business_associate_commission_report}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/business_associate_commission_report/business_associate_commission_report.js (100%) rename {accounts => erpnext/accounts}/search_criteria/business_associate_commission_report/business_associate_commission_report.py (100%) rename {accounts => erpnext/accounts}/search_criteria/business_associate_commission_report/business_associate_commission_report.txt (100%) rename {accounts/search_criteria/cenvat_credit___input_or_capital_goods => erpnext/accounts/search_criteria/cash_flow_statement}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/cash_flow_statement/cash_flow_statement.js (100%) rename {accounts => erpnext/accounts}/search_criteria/cash_flow_statement/cash_flow_statement.py (100%) rename {accounts => erpnext/accounts}/search_criteria/cash_flow_statement/cash_flow_statement.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/cash_flow_statement/cash_flow_statement.txt (100%) rename {accounts/search_criteria/collection_report => erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js (100%) rename {accounts => erpnext/accounts}/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py (100%) rename {accounts => erpnext/accounts}/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt (100%) rename {accounts/search_criteria/cost_center_wise_expense => erpnext/accounts/search_criteria/collection_report}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/collection_report/collection_report.js (100%) rename {accounts => erpnext/accounts}/search_criteria/collection_report/collection_report.py (100%) rename {accounts => erpnext/accounts}/search_criteria/collection_report/collection_report.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/collection_report/collection_report.txt (100%) rename {accounts/search_criteria/creditors_ledger => erpnext/accounts/search_criteria/cost_center_wise_expense}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/cost_center_wise_expense/cost_center_wise_expense.js (100%) rename {accounts => erpnext/accounts}/search_criteria/cost_center_wise_expense/cost_center_wise_expense.py (100%) rename {accounts => erpnext/accounts}/search_criteria/cost_center_wise_expense/cost_center_wise_expense.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt (100%) rename {accounts/search_criteria/debtors_ledger => erpnext/accounts/search_criteria/creditors_ledger}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/creditors_ledger/creditors_ledger.js (100%) rename {accounts => erpnext/accounts}/search_criteria/creditors_ledger/creditors_ledger.py (100%) rename {accounts => erpnext/accounts}/search_criteria/creditors_ledger/creditors_ledger.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/creditors_ledger/creditors_ledger.txt (100%) rename {accounts/search_criteria/general_ledger => erpnext/accounts/search_criteria/debtors_ledger}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/debtors_ledger/debtors_ledger.js (100%) rename {accounts => erpnext/accounts}/search_criteria/debtors_ledger/debtors_ledger.py (100%) rename {accounts => erpnext/accounts}/search_criteria/debtors_ledger/debtors_ledger.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/debtors_ledger/debtors_ledger.txt (100%) rename {accounts/search_criteria/itemwise_purchase_register => erpnext/accounts/search_criteria/general_ledger}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/general_ledger/general_ledger.js (100%) rename {accounts => erpnext/accounts}/search_criteria/general_ledger/general_ledger.py (100%) rename {accounts => erpnext/accounts}/search_criteria/general_ledger/general_ledger.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/general_ledger/general_ledger.txt (100%) rename {accounts/search_criteria/itemwise_sales_register => erpnext/accounts/search_criteria/itemwise_purchase_register}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js (100%) rename {accounts => erpnext/accounts}/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt (100%) rename {accounts/search_criteria/lease_agreement_list => erpnext/accounts/search_criteria/itemwise_sales_register}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/itemwise_sales_register/itemwise_sales_register.js (100%) rename {accounts => erpnext/accounts}/search_criteria/itemwise_sales_register/itemwise_sales_register.txt (100%) rename {accounts/search_criteria/lease_monthly_future_installment_inflows => erpnext/accounts/search_criteria/lease_agreement_list}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_agreement_list/lease_agreement_list.js (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_agreement_list/lease_agreement_list.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_agreement_list/lease_agreement_list.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_agreement_list/lease_agreement_list.txt (100%) rename {accounts/search_criteria/lease_over_due_list => erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt (100%) rename {accounts/search_criteria/lease_overdue_age_wise => erpnext/accounts/search_criteria/lease_over_due_list}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_over_due_list/lease_over_due_list.js (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_over_due_list/lease_over_due_list.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_over_due_list/lease_over_due_list.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_over_due_list/lease_over_due_list.txt (100%) rename {accounts/search_criteria/lease_receipt_summary_month_wise => erpnext/accounts/search_criteria/lease_overdue_age_wise}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt (100%) rename {accounts/search_criteria/lease_receipts_client_wise => erpnext/accounts/search_criteria/lease_receipt_summary_month_wise}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt (100%) rename {accounts/search_criteria/lease_yearly_future_installment_inflows => erpnext/accounts/search_criteria/lease_receipts_client_wise}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt (100%) rename {accounts/search_criteria/monthly_ledger_summary_report => erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt (100%) rename {accounts/search_criteria/payment_receipt_report => erpnext/accounts/search_criteria/monthly_ledger_summary_report}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js (100%) rename {accounts => erpnext/accounts}/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py (100%) rename {accounts => erpnext/accounts}/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt (100%) rename {accounts/search_criteria/payment_report => erpnext/accounts/search_criteria/payment_receipt_report}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/payment_receipt_report/payment_receipt_report.py (100%) rename {accounts => erpnext/accounts}/search_criteria/payment_receipt_report/payment_receipt_report.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/payment_receipt_report/payment_receipt_report.txt (100%) rename {accounts/search_criteria/progressive_total_excise_duty => erpnext/accounts/search_criteria/payment_report}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/payment_report/payment_report.js (100%) rename {accounts => erpnext/accounts}/search_criteria/payment_report/payment_report.py (100%) rename {accounts => erpnext/accounts}/search_criteria/payment_report/payment_report.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/payment_report/payment_report.txt (100%) rename {accounts/search_criteria/purchase_register => erpnext/accounts/search_criteria/progressive_total_excise_duty}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.js (100%) rename {accounts => erpnext/accounts}/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.py (100%) rename {accounts => erpnext/accounts}/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt (100%) rename {accounts/search_criteria/sales_register => erpnext/accounts/search_criteria/purchase_register}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/purchase_register/purchase_register.py (100%) rename {accounts => erpnext/accounts}/search_criteria/purchase_register/purchase_register.txt (100%) rename {accounts/search_criteria/service_tax_credit_account___inputs => erpnext/accounts/search_criteria/sales_register}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/sales_register/sales_register.js (100%) rename {accounts => erpnext/accounts}/search_criteria/sales_register/sales_register.py (100%) rename {accounts => erpnext/accounts}/search_criteria/sales_register/sales_register.txt (100%) rename {accounts/search_criteria/tds_return => erpnext/accounts/search_criteria/service_tax_credit_account___inputs}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.js (100%) rename {accounts => erpnext/accounts}/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.py (100%) rename {accounts => erpnext/accounts}/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt (100%) rename {accounts/search_criteria/total_amout_collection_for_a_period___customerwise => erpnext/accounts/search_criteria/tds_return}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/tds_return/tds_return.js (100%) rename {accounts => erpnext/accounts}/search_criteria/tds_return/tds_return.py (100%) rename {accounts => erpnext/accounts}/search_criteria/tds_return/tds_return.sql (100%) rename {accounts => erpnext/accounts}/search_criteria/tds_return/tds_return.txt (100%) rename {accounts/search_criteria/trial_balance => erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js (100%) rename {accounts => erpnext/accounts}/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py (100%) rename {accounts => erpnext/accounts}/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt (100%) rename {analysis => erpnext/accounts/search_criteria/trial_balance}/__init__.py (100%) rename {accounts => erpnext/accounts}/search_criteria/trial_balance/trial_balance.js (100%) rename {accounts => erpnext/accounts}/search_criteria/trial_balance/trial_balance.py (100%) rename {accounts => erpnext/accounts}/search_criteria/trial_balance/trial_balance.txt (100%) rename {accounts => erpnext/accounts}/utils/__init__.py (100%) rename {analysis => erpnext/analysis}/Module Def/Analysis/Analysis.txt (100%) rename {analysis/doctype => erpnext/analysis}/__init__.py (100%) rename {analysis/doctype/mis_control => erpnext/analysis/doctype}/__init__.py (100%) rename {analysis/doctype/ta_control => erpnext/analysis/doctype/mis_control}/__init__.py (100%) mode change 100755 => 100644 rename {analysis => erpnext/analysis}/doctype/mis_control/mis_control.py (100%) rename {analysis => erpnext/analysis}/doctype/mis_control/mis_control.txt (100%) rename {analysis/page => erpnext/analysis/doctype/ta_control}/__init__.py (100%) mode change 100644 => 100755 rename {analysis => erpnext/analysis}/doctype/ta_control/ta_control.py (100%) rename {analysis => erpnext/analysis}/doctype/ta_control/ta_control.txt (100%) rename {analysis/search_criteria => erpnext/analysis/page}/__init__.py (100%) rename {analysis/search_criteria/monthly_transaction_summary => erpnext/analysis/search_criteria}/__init__.py (100%) rename {analysis/search_criteria/trend_analyzer => erpnext/analysis/search_criteria/monthly_transaction_summary}/__init__.py (100%) rename {analysis => erpnext/analysis}/search_criteria/monthly_transaction_summary/monthly_transaction_summary.js (100%) rename {analysis => erpnext/analysis}/search_criteria/monthly_transaction_summary/monthly_transaction_summary.py (100%) rename {analysis => erpnext/analysis}/search_criteria/monthly_transaction_summary/monthly_transaction_summary.sql (100%) rename {analysis => erpnext/analysis}/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt (100%) rename {analysis/search_criteria/yearly_transaction_summary => erpnext/analysis/search_criteria/trend_analyzer}/__init__.py (100%) rename {analysis => erpnext/analysis}/search_criteria/trend_analyzer/trend_analyzer.js (100%) rename {analysis => erpnext/analysis}/search_criteria/trend_analyzer/trend_analyzer.py (100%) rename {analysis => erpnext/analysis}/search_criteria/trend_analyzer/trend_analyzer.txt (100%) rename {buying => erpnext/analysis/search_criteria/yearly_transaction_summary}/__init__.py (100%) rename {analysis => erpnext/analysis}/search_criteria/yearly_transaction_summary/yearly_transaction_summary.js (100%) rename {analysis => erpnext/analysis}/search_criteria/yearly_transaction_summary/yearly_transaction_summary.py (100%) rename {analysis => erpnext/analysis}/search_criteria/yearly_transaction_summary/yearly_transaction_summary.sql (100%) rename {analysis => erpnext/analysis}/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt (100%) rename {buying => erpnext/buying}/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt (100%) rename {buying => erpnext/buying}/DocType Mapper/Sales Order-Indent/Sales Order-Indent.txt (100%) rename {buying => erpnext/buying}/Module Def/Buying/Buying.txt (100%) rename {buying => erpnext/buying}/Role/Purchase Manager/Purchase Manager.txt (100%) rename {buying => erpnext/buying}/Role/Purchase Master Manager/Purchase Master Manager.txt (100%) rename {buying => erpnext/buying}/Role/Purchase User/Purchase User.txt (100%) rename {buying => erpnext/buying}/Role/Supplier/Supplier.txt (100%) rename {buying/doctype => erpnext/buying}/__init__.py (100%) rename {buying/doctype/indent => erpnext/buying/doctype}/__init__.py (100%) rename {buying/doctype/indent_detail => erpnext/buying/doctype/indent}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/indent/indent.js (100%) rename {buying => erpnext/buying}/doctype/indent/indent.py (100%) rename {buying => erpnext/buying}/doctype/indent/indent.txt (100%) rename {buying/doctype/po_detail => erpnext/buying/doctype/indent_detail}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/indent_detail/indent_detail.txt (100%) rename {buying/doctype/po_raw_material_detail => erpnext/buying/doctype/po_detail}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/po_detail/po_detail.txt (100%) rename {buying/doctype/pr_raw_material_detail => erpnext/buying/doctype/po_raw_material_detail}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/po_raw_material_detail/po_raw_material_detail.txt (100%) rename {buying/doctype/purchase_common => erpnext/buying/doctype/pr_raw_material_detail}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/pr_raw_material_detail/pr_raw_material_detail.txt (100%) rename {buying/doctype/purchase_order => erpnext/buying/doctype/purchase_common}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/purchase_common/purchase_common.js (100%) rename {buying => erpnext/buying}/doctype/purchase_common/purchase_common.py (100%) rename {buying => erpnext/buying}/doctype/purchase_common/purchase_common.txt (100%) rename {buying/doctype/purchase_other_charges => erpnext/buying/doctype/purchase_order}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/purchase_order/purchase_order.js (100%) rename {buying => erpnext/buying}/doctype/purchase_order/purchase_order.py (100%) rename {buying => erpnext/buying}/doctype/purchase_order/purchase_order.txt (100%) rename {buying/doctype/qa_inspection_report => erpnext/buying/doctype/purchase_other_charges}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/purchase_other_charges/purchase_other_charges.js (100%) rename {buying => erpnext/buying}/doctype/purchase_other_charges/purchase_other_charges.py (100%) rename {buying => erpnext/buying}/doctype/purchase_other_charges/purchase_other_charges.txt (100%) rename {buying/doctype/qa_specification_detail => erpnext/buying/doctype/qa_inspection_report}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/qa_inspection_report/qa_inspection_report.js (100%) rename {buying => erpnext/buying}/doctype/qa_inspection_report/qa_inspection_report.py (100%) rename {buying => erpnext/buying}/doctype/qa_inspection_report/qa_inspection_report.txt (100%) rename {buying/doctype/raw_materials_supplied => erpnext/buying/doctype/qa_specification_detail}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/qa_specification_detail/qa_specification_detail.txt (100%) rename {buying/doctype/supplier => erpnext/buying/doctype/raw_materials_supplied}/__init__.py (100%) rename {buying => erpnext/buying}/doctype/raw_materials_supplied/raw_materials_supplied.txt (100%) rename {buying/doctype/supplier_quotation => erpnext/buying/doctype/supplier}/__init__.py (100%) mode change 100755 => 100644 rename {buying => erpnext/buying}/doctype/supplier/supplier.js (100%) rename {buying => erpnext/buying}/doctype/supplier/supplier.py (100%) rename {buying => erpnext/buying}/doctype/supplier/supplier.txt (100%) rename {buying/page => erpnext/buying/doctype/supplier_quotation}/__init__.py (100%) mode change 100644 => 100755 rename {buying => erpnext/buying}/doctype/supplier_quotation/supplier_quotation.js (100%) rename {buying => erpnext/buying}/doctype/supplier_quotation/supplier_quotation.py (100%) rename {buying => erpnext/buying}/doctype/supplier_quotation/supplier_quotation.txt (100%) rename {buying/search_criteria => erpnext/buying/page}/__init__.py (100%) rename {buying/search_criteria/itemwise_purchase_details => erpnext/buying/search_criteria}/__init__.py (100%) rename {buying/search_criteria/itemwise_receipt_details => erpnext/buying/search_criteria/itemwise_purchase_details}/__init__.py (100%) rename {buying => erpnext/buying}/search_criteria/itemwise_purchase_details/itemwise_purchase_details.js (100%) rename {buying => erpnext/buying}/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt (100%) rename {buying/search_criteria/pending_po_items_to_bill => erpnext/buying/search_criteria/itemwise_receipt_details}/__init__.py (100%) rename {buying => erpnext/buying}/search_criteria/itemwise_receipt_details/itemwise_receipt_details.js (100%) rename {buying => erpnext/buying}/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt (100%) rename {buying/search_criteria/pending_po_items_to_receive => erpnext/buying/search_criteria/pending_po_items_to_bill}/__init__.py (100%) rename {buying => erpnext/buying}/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.js (100%) rename {buying => erpnext/buying}/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt (100%) rename {buying/search_criteria/purchase_in_transit => erpnext/buying/search_criteria/pending_po_items_to_receive}/__init__.py (100%) rename {buying => erpnext/buying}/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.js (100%) rename {buying => erpnext/buying}/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py (100%) rename {buying => erpnext/buying}/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt (100%) rename {home/doctype => erpnext/buying/search_criteria/purchase_in_transit}/__init__.py (100%) rename {buying => erpnext/buying}/search_criteria/purchase_in_transit/purchase_in_transit.js (100%) rename {buying => erpnext/buying}/search_criteria/purchase_in_transit/purchase_in_transit.py (100%) rename {buying => erpnext/buying}/search_criteria/purchase_in_transit/purchase_in_transit.txt (100%) rename {home => erpnext/home}/Module Def/Home/Home.txt (100%) rename {home => erpnext/home}/__init__.py (100%) rename {home/doctype/company_control => erpnext/home/doctype}/__init__.py (100%) rename {home/doctype/feed => erpnext/home/doctype/company_control}/__init__.py (100%) rename {home => erpnext/home}/doctype/company_control/company_control.py (100%) rename {home => erpnext/home}/doctype/company_control/company_control.txt (100%) rename {home/doctype/home_control => erpnext/home/doctype/feed}/__init__.py (100%) rename {home => erpnext/home}/doctype/feed/feed.py (100%) rename {home => erpnext/home}/doctype/feed/feed.txt (100%) rename {home/doctype/widget_control => erpnext/home/doctype/home_control}/__init__.py (100%) rename {home => erpnext/home}/doctype/home_control/home_control.js (100%) rename {home => erpnext/home}/doctype/home_control/home_control.py (100%) rename {home => erpnext/home}/doctype/home_control/home_control.txt (100%) rename {home/page => erpnext/home/doctype/widget_control}/__init__.py (100%) rename {home => erpnext/home}/doctype/widget_control/widget_control.py (100%) rename {home => erpnext/home}/doctype/widget_control/widget_control.txt (100%) rename {home => erpnext/home}/page/.DS_Store (100%) rename {home/page/dashboard => erpnext/home/page}/__init__.py (100%) rename {home/page/event_updates => erpnext/home/page/dashboard}/__init__.py (100%) rename {home => erpnext/home}/page/dashboard/dashboard.css (100%) rename {home => erpnext/home}/page/dashboard/dashboard.html (100%) rename {home => erpnext/home}/page/dashboard/dashboard.js (100%) rename {home => erpnext/home}/page/dashboard/dashboard.py (100%) rename {home => erpnext/home}/page/dashboard/dashboard.txt (100%) rename {home => erpnext/home}/page/event_updates/.DS_Store (100%) rename {home/page/my_company => erpnext/home/page/event_updates}/__init__.py (100%) rename {home => erpnext/home}/page/event_updates/event_updates.css (100%) rename {home => erpnext/home}/page/event_updates/event_updates.html (100%) rename {home => erpnext/home}/page/event_updates/event_updates.js (100%) rename {home => erpnext/home}/page/event_updates/event_updates.py (100%) rename {home => erpnext/home}/page/event_updates/event_updates.txt (100%) rename {home => erpnext/home}/page/event_updates/event_updates_static.html (100%) rename {home/page/profile_settings => erpnext/home/page/my_company}/__init__.py (100%) rename {home => erpnext/home}/page/my_company/my_company.css (100%) rename {home => erpnext/home}/page/my_company/my_company.html (100%) rename {home => erpnext/home}/page/my_company/my_company.js (100%) rename {home => erpnext/home}/page/my_company/my_company.py (100%) rename {home => erpnext/home}/page/my_company/my_company.txt (100%) rename {home/search_criteria => erpnext/home/page/profile_settings}/__init__.py (100%) rename {home => erpnext/home}/page/profile_settings/profile_settings.html (100%) rename {home => erpnext/home}/page/profile_settings/profile_settings.js (100%) rename {home => erpnext/home}/page/profile_settings/profile_settings.py (100%) rename {home => erpnext/home}/page/profile_settings/profile_settings.txt (100%) rename {home/search_criteria/bills_to_be_paid => erpnext/home/search_criteria}/__init__.py (100%) rename {home/search_criteria/bills_to_be_submitted => erpnext/home/search_criteria/bills_to_be_paid}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/bills_to_be_paid/bills_to_be_paid.txt (100%) rename {home/search_criteria/delivery_note_to_be_billed => erpnext/home/search_criteria/bills_to_be_submitted}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt (100%) rename {home/search_criteria/delivery_note_to_be_submitted => erpnext/home/search_criteria/delivery_note_to_be_billed}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt (100%) rename {home/search_criteria/enquiry_quotations_to_be_sent => erpnext/home/search_criteria/delivery_note_to_be_submitted}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt (100%) rename {home/search_criteria/enquiry_to_follow_up => erpnext/home/search_criteria/enquiry_quotations_to_be_sent}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt (100%) rename {home/search_criteria/indent_purchase_order_to_be_made => erpnext/home/search_criteria/enquiry_to_follow_up}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js (100%) rename {home => erpnext/home}/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt (100%) rename {home/search_criteria/indent_to_be_submitted => erpnext/home/search_criteria/indent_purchase_order_to_be_made}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt (100%) rename {home/search_criteria/invoices_overdue => erpnext/home/search_criteria/indent_to_be_submitted}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt (100%) rename {home/search_criteria/invoices_to_be_submitted => erpnext/home/search_criteria/invoices_overdue}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/invoices_overdue/invoices_overdue.txt (100%) rename {home/search_criteria/invoices_to_receive_payment => erpnext/home/search_criteria/invoices_to_be_submitted}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt (100%) rename {home/search_criteria/lead_to_follow_up => erpnext/home/search_criteria/invoices_to_receive_payment}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt (100%) rename {home/search_criteria/purchase_order_to_be_billed => erpnext/home/search_criteria/lead_to_follow_up}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/lead_to_follow_up/lead_to_follow_up.js (100%) rename {home => erpnext/home}/search_criteria/lead_to_follow_up/lead_to_follow_up.txt (100%) rename {home => erpnext/home}/search_criteria/lead_to_follow_up/sales_order_overdue.js (100%) rename {home/search_criteria/purchase_order_to_be_submitted => erpnext/home/search_criteria/purchase_order_to_be_billed}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt (100%) rename {home/search_criteria/purchase_order_to_receive_items => erpnext/home/search_criteria/purchase_order_to_be_submitted}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt (100%) rename {home/search_criteria/sales_order_overdue => erpnext/home/search_criteria/purchase_order_to_receive_items}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt (100%) rename {home/search_criteria/sales_order_to_be_billed => erpnext/home/search_criteria/sales_order_overdue}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/sales_order_overdue/sales_order_overdue.txt (100%) rename {home/search_criteria/sales_order_to_be_delivered => erpnext/home/search_criteria/sales_order_to_be_billed}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt (100%) rename {home/search_criteria/sales_order_to_be_submitted => erpnext/home/search_criteria/sales_order_to_be_delivered}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt (100%) rename {home/search_criteria/serial_no_amc_expiring_this_month => erpnext/home/search_criteria/sales_order_to_be_submitted}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt (100%) rename {home/search_criteria/serial_no_warranty_expiring_this_month => erpnext/home/search_criteria/serial_no_amc_expiring_this_month}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt (100%) rename {home/search_criteria/task_open => erpnext/home/search_criteria/serial_no_warranty_expiring_this_month}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt (100%) rename {hr => erpnext/home/search_criteria/task_open}/__init__.py (100%) rename {home => erpnext/home}/search_criteria/task_open/task_open.txt (100%) rename {hr => erpnext/hr}/Deduction Type/Income Tax/Income Tax.txt (100%) rename {hr => erpnext/hr}/Deduction Type/Professional Tax/Professional Tax.txt (100%) rename {hr => erpnext/hr}/Deduction Type/Provident Fund/Provident Fund.txt (100%) rename {hr => erpnext/hr}/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt (100%) rename {hr => erpnext/hr}/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt (100%) rename {hr => erpnext/hr}/Earning Type/Basic/Basic.txt (100%) rename {hr => erpnext/hr}/Earning Type/House Rent Allowance/House Rent Allowance.txt (100%) rename {hr => erpnext/hr}/Expense Type/Calls/Calls.txt (100%) rename {hr => erpnext/hr}/Expense Type/Food/Food.txt (100%) rename {hr => erpnext/hr}/Expense Type/Medical/Medical.txt (100%) rename {hr => erpnext/hr}/Expense Type/Others/Others.txt (100%) rename {hr => erpnext/hr}/Expense Type/Travel/Travel.txt (100%) rename {hr => erpnext/hr}/Leave Type/Casual Leave/Casual Leave.txt (100%) rename {hr => erpnext/hr}/Leave Type/Compensatory Off/Compensatory Off.txt (100%) rename {hr => erpnext/hr}/Leave Type/Leave Without Pay/Leave Without Pay.txt (100%) rename {hr => erpnext/hr}/Leave Type/Privilege Leave/Privilege Leave.txt (100%) rename {hr => erpnext/hr}/Leave Type/Sick Leave/Sick Leave.txt (100%) rename {hr => erpnext/hr}/Module Def/HR/HR.txt (100%) rename {hr => erpnext/hr}/Role/Employee/Employee.txt (100%) rename {hr => erpnext/hr}/Role/HR Manager/HR Manager.txt (100%) rename {hr => erpnext/hr}/Role/HR User/HR User.txt (100%) rename {hr/doctype => erpnext/hr}/__init__.py (100%) rename {hr/doctype/absent_days_detail => erpnext/hr/doctype}/__init__.py (100%) rename {hr/doctype/appraisal => erpnext/hr/doctype/absent_days_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/absent_days_detail/absent_days_detail.txt (100%) rename {hr/doctype/appraisal_detail => erpnext/hr/doctype/appraisal}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/appraisal/appraisal.js (100%) rename {hr => erpnext/hr}/doctype/appraisal/appraisal.py (100%) rename {hr => erpnext/hr}/doctype/appraisal/appraisal.txt (100%) rename {hr/doctype/attendance => erpnext/hr/doctype/appraisal_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/appraisal_detail/appraisal_detail.txt (100%) rename {hr/doctype/attendance_control_panel => erpnext/hr/doctype/attendance}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/attendance/attendance.js (100%) rename {hr => erpnext/hr}/doctype/attendance/attendance.py (100%) rename {hr => erpnext/hr}/doctype/attendance/attendance.txt (100%) rename {hr/doctype/branch => erpnext/hr/doctype/attendance_control_panel}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/attendance_control_panel/attendance_control_panel.js (100%) rename {hr => erpnext/hr}/doctype/attendance_control_panel/attendance_control_panel.py (100%) rename {hr => erpnext/hr}/doctype/attendance_control_panel/attendance_control_panel.txt (100%) rename {hr/doctype/chapter_vi_a_detail => erpnext/hr/doctype/branch}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/branch/branch.js (100%) rename {hr => erpnext/hr}/doctype/branch/branch.txt (100%) rename {hr/doctype/declaration_detail => erpnext/hr/doctype/chapter_vi_a_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/chapter_vi_a_detail/chapter_vi_a_detail.txt (100%) rename {hr/doctype/deduction_detail => erpnext/hr/doctype/declaration_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/declaration_detail/declaration_detail.txt (100%) rename {hr/doctype/deduction_type => erpnext/hr/doctype/deduction_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/deduction_detail/deduction_detail.txt (100%) rename {hr/doctype/department => erpnext/hr/doctype/deduction_type}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/deduction_type/deduction_type.js (100%) rename {hr => erpnext/hr}/doctype/deduction_type/deduction_type.txt (100%) rename {hr/doctype/designation => erpnext/hr/doctype/department}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/department/department.js (100%) rename {hr => erpnext/hr}/doctype/department/department.txt (100%) rename {hr/doctype/earn_deduction_detail => erpnext/hr/doctype/designation}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/designation/designation.js (100%) rename {hr => erpnext/hr}/doctype/designation/designation.txt (100%) rename {hr/doctype/earning_detail => erpnext/hr/doctype/earn_deduction_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/earn_deduction_detail/earn_deduction_detail.txt (100%) rename {hr/doctype/earning_type => erpnext/hr/doctype/earning_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/earning_detail/earning_detail.txt (100%) rename {hr/doctype/educational_qualifications => erpnext/hr/doctype/earning_type}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/earning_type/earning_type.js (100%) rename {hr => erpnext/hr}/doctype/earning_type/earning_type.txt (100%) rename {hr/doctype/educational_qualifications_detail => erpnext/hr/doctype/educational_qualifications}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/educational_qualifications/educational_qualifications.txt (100%) rename {hr/doctype/employee => erpnext/hr/doctype/educational_qualifications_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/educational_qualifications_detail/educational_qualifications_detail.txt (100%) rename {hr/doctype/employee_profile => erpnext/hr/doctype/employee}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/employee/employee.js (100%) rename {hr => erpnext/hr}/doctype/employee/employee.py (100%) rename {hr => erpnext/hr}/doctype/employee/employee.txt (100%) rename {hr/doctype/employment_type => erpnext/hr/doctype/employee_profile}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/employee_profile/employee_profile.js (100%) rename {hr => erpnext/hr}/doctype/employee_profile/employee_profile.py (100%) rename {hr => erpnext/hr}/doctype/employee_profile/employee_profile.txt (100%) rename {hr/doctype/expense_type => erpnext/hr/doctype/employment_type}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/employment_type/employment_type.js (100%) rename {hr => erpnext/hr}/doctype/employment_type/employment_type.txt (100%) rename {hr/doctype/expense_voucher => erpnext/hr/doctype/expense_type}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/expense_type/expense_type.js (100%) rename {hr => erpnext/hr}/doctype/expense_type/expense_type.txt (100%) rename {hr/doctype/expense_voucher_detail => erpnext/hr/doctype/expense_voucher}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/expense_voucher/expense_voucher.js (100%) rename {hr => erpnext/hr}/doctype/expense_voucher/expense_voucher.py (100%) rename {hr => erpnext/hr}/doctype/expense_voucher/expense_voucher.txt (100%) rename {hr/doctype/experience_in_company_detail => erpnext/hr/doctype/expense_voucher_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/expense_voucher_detail/expense_voucher_detail.txt (100%) rename {hr/doctype/grade => erpnext/hr/doctype/experience_in_company_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/experience_in_company_detail/experience_in_company_detail.txt (100%) rename {hr/doctype/holiday_list => erpnext/hr/doctype/grade}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/grade/grade.js (100%) rename {hr => erpnext/hr}/doctype/grade/grade.txt (100%) rename {hr/doctype/holiday_list_detail => erpnext/hr/doctype/holiday_list}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/holiday_list/holiday_list.js (100%) rename {hr => erpnext/hr}/doctype/holiday_list/holiday_list.py (100%) rename {hr => erpnext/hr}/doctype/holiday_list/holiday_list.txt (100%) rename {hr/doctype/invest_80_declaration_detail => erpnext/hr/doctype/holiday_list_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/holiday_list_detail/holiday_list_detail.txt (100%) rename {hr/doctype/it_checklist => erpnext/hr/doctype/invest_80_declaration_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/invest_80_declaration_detail/invest_80_declaration_detail.txt (100%) rename {hr/doctype/kra_sheet => erpnext/hr/doctype/it_checklist}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/it_checklist/it_checklist.js (100%) rename {hr => erpnext/hr}/doctype/it_checklist/it_checklist.py (100%) rename {hr => erpnext/hr}/doctype/it_checklist/it_checklist.txt (100%) rename {hr/doctype/kra_template => erpnext/hr/doctype/kra_sheet}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/kra_sheet/kra_sheet.txt (100%) rename {hr/doctype/leave_allocation => erpnext/hr/doctype/kra_template}/__init__.py (100%) mode change 100755 => 100644 rename {hr => erpnext/hr}/doctype/kra_template/kra_template.js (100%) rename {hr => erpnext/hr}/doctype/kra_template/kra_template.txt (100%) rename {hr/doctype/leave_application => erpnext/hr/doctype/leave_allocation}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/leave_allocation/leave_allocation.js (100%) rename {hr => erpnext/hr}/doctype/leave_allocation/leave_allocation.py (100%) rename {hr => erpnext/hr}/doctype/leave_allocation/leave_allocation.txt (100%) rename {hr/doctype/leave_control_panel => erpnext/hr/doctype/leave_application}/__init__.py (100%) mode change 100644 => 100755 rename {hr => erpnext/hr}/doctype/leave_application/leave_application.js (100%) rename {hr => erpnext/hr}/doctype/leave_application/leave_application.py (100%) rename {hr => erpnext/hr}/doctype/leave_application/leave_application.txt (100%) rename {hr/doctype/leave_type => erpnext/hr/doctype/leave_control_panel}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/leave_control_panel/leave_control_panel.js (100%) rename {hr => erpnext/hr}/doctype/leave_control_panel/leave_control_panel.py (100%) rename {hr => erpnext/hr}/doctype/leave_control_panel/leave_control_panel.txt (100%) rename {hr/doctype/other_income_detail => erpnext/hr/doctype/leave_type}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/leave_type/leave_type.js (100%) rename {hr => erpnext/hr}/doctype/leave_type/leave_type.txt (100%) rename {hr/doctype/payroll_rule => erpnext/hr/doctype/other_income_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/other_income_detail/other_income_detail.txt (100%) rename {hr/doctype/previous_experience_detail => erpnext/hr/doctype/payroll_rule}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/payroll_rule/payroll_rule.js (100%) rename {hr => erpnext/hr}/doctype/payroll_rule/payroll_rule.py (100%) rename {hr => erpnext/hr}/doctype/payroll_rule/payroll_rule.txt (100%) rename {hr/doctype/professional_training_details => erpnext/hr/doctype/previous_experience_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/previous_experience_detail/previous_experience_detail.txt (100%) rename {hr/doctype/salary_slip => erpnext/hr/doctype/professional_training_details}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/professional_training_details/professional_training_details.txt (100%) rename {hr => erpnext/hr}/doctype/salary_manager/__init__.py (100%) rename {hr => erpnext/hr}/doctype/salary_manager/salary_manager.js (100%) rename {hr => erpnext/hr}/doctype/salary_manager/salary_manager.py (100%) rename {hr => erpnext/hr}/doctype/salary_manager/salary_manager.txt (100%) rename {hr => erpnext/hr}/doctype/salary_manager/test_salary_manager.py (100%) rename {hr/doctype/salary_structure => erpnext/hr/doctype/salary_slip}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/salary_slip/salary_slip.js (100%) rename {hr => erpnext/hr}/doctype/salary_slip/salary_slip.py (100%) rename {hr => erpnext/hr}/doctype/salary_slip/salary_slip.txt (100%) rename {hr/doctype/ss_deduction_detail => erpnext/hr/doctype/salary_structure}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/salary_structure/salary_structure.js (100%) rename {hr => erpnext/hr}/doctype/salary_structure/salary_structure.py (100%) rename {hr => erpnext/hr}/doctype/salary_structure/salary_structure.txt (100%) rename {hr/doctype/ss_earning_detail => erpnext/hr/doctype/ss_deduction_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/ss_deduction_detail/ss_deduction_detail.txt (100%) rename {hr/page => erpnext/hr/doctype/ss_earning_detail}/__init__.py (100%) rename {hr => erpnext/hr}/doctype/ss_earning_detail/ss_earning_detail.txt (100%) rename {hr/search_criteria => erpnext/hr/page}/__init__.py (100%) rename {hr/search_criteria/employee_appraisals => erpnext/hr/search_criteria}/__init__.py (100%) rename {hr/search_criteria/employee_details => erpnext/hr/search_criteria/employee_appraisals}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/employee_appraisals/employee_appraisals.txt (100%) rename {hr/search_criteria/employee_in_company_experience => erpnext/hr/search_criteria/employee_details}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/employee_details/employee_details.txt (100%) rename {hr/search_criteria/employee_information => erpnext/hr/search_criteria/employee_in_company_experience}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/employee_in_company_experience/employee_in_company_experience.txt (100%) rename {hr/search_criteria/employees_birthday => erpnext/hr/search_criteria/employee_information}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/employee_information/employee_information.py (100%) rename {hr => erpnext/hr}/search_criteria/employee_information/employee_information.txt (100%) rename {hr/search_criteria/employeewise_balance_leave_report => erpnext/hr/search_criteria/employees_birthday}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/employees_birthday/employees_birthday.txt (100%) rename {hr/search_criteria/employeewise_leave_transaction_details => erpnext/hr/search_criteria/employeewise_balance_leave_report}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.js (100%) rename {hr => erpnext/hr}/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.py (100%) rename {hr => erpnext/hr}/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.txt (100%) rename {hr/search_criteria/expense_vouchers => erpnext/hr/search_criteria/employeewise_leave_transaction_details}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt (100%) rename {hr/search_criteria/monthly_attendance_details => erpnext/hr/search_criteria/expense_vouchers}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/expense_vouchers/expense_vouchers.txt (100%) rename {hr/search_criteria/monthly_salary_register => erpnext/hr/search_criteria/monthly_attendance_details}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/monthly_attendance_details/monthly_attendance_details.js (100%) rename {hr => erpnext/hr}/search_criteria/monthly_attendance_details/monthly_attendance_details.py (100%) rename {hr => erpnext/hr}/search_criteria/monthly_attendance_details/monthly_attendance_details.sql (100%) rename {hr => erpnext/hr}/search_criteria/monthly_attendance_details/monthly_attendance_details.txt (100%) rename {hr/search_criteria/new_or_left_employees_for_a_month => erpnext/hr/search_criteria/monthly_salary_register}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/monthly_salary_register/monthly_salary_register.txt (100%) rename {hr/search_criteria/pending_appraisals => erpnext/hr/search_criteria/new_or_left_employees_for_a_month}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.js (100%) rename {hr => erpnext/hr}/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.py (100%) rename {hr => erpnext/hr}/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt (100%) rename {hr/search_criteria/pending_expense_vouchers => erpnext/hr/search_criteria/pending_appraisals}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/pending_appraisals/pending_appraisals.js (100%) rename {hr => erpnext/hr}/search_criteria/pending_appraisals/pending_appraisals.txt (100%) rename {hr/search_criteria/salary_register => erpnext/hr/search_criteria/pending_expense_vouchers}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/pending_expense_vouchers/pending_expense_vouchers.js (100%) rename {hr => erpnext/hr}/search_criteria/pending_expense_vouchers/pending_expense_vouchers.txt (100%) rename {hr/search_criteria/salary_slips => erpnext/hr/search_criteria/salary_register}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/salary_register/salary_register.js (100%) rename {hr => erpnext/hr}/search_criteria/salary_register/salary_register.py (100%) rename {hr => erpnext/hr}/search_criteria/salary_register/salary_register.txt (100%) rename {hr/search_criteria/salary_structure_details => erpnext/hr/search_criteria/salary_slips}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/salary_slips/salary_slips.txt (100%) rename {knowledge_base => erpnext/hr/search_criteria/salary_structure_details}/__init__.py (100%) rename {hr => erpnext/hr}/search_criteria/salary_structure_details/salary_structure_details.txt (100%) rename {knowledge_base => erpnext/knowledge_base}/Module Def/Knowledge Base/Knowledge Base.txt (100%) rename {knowledge_base/doctype => erpnext/knowledge_base}/__init__.py (100%) rename {knowledge_base/doctype/answer => erpnext/knowledge_base/doctype}/__init__.py (100%) rename {knowledge_base/doctype/question => erpnext/knowledge_base/doctype/answer}/__init__.py (100%) rename {knowledge_base => erpnext/knowledge_base}/doctype/answer/answer.txt (100%) rename {knowledge_base/doctype/question_control => erpnext/knowledge_base/doctype/question}/__init__.py (100%) rename {knowledge_base => erpnext/knowledge_base}/doctype/question/question.py (100%) rename {knowledge_base => erpnext/knowledge_base}/doctype/question/question.txt (100%) rename {knowledge_base/doctype/question_tag => erpnext/knowledge_base/doctype/question_control}/__init__.py (100%) rename {knowledge_base => erpnext/knowledge_base}/doctype/question_control/question_control.txt (100%) rename {knowledge_base/page => erpnext/knowledge_base/doctype/question_tag}/__init__.py (100%) rename {knowledge_base => erpnext/knowledge_base}/doctype/question_tag/question_tag.txt (100%) rename {knowledge_base/page/question_view => erpnext/knowledge_base/page}/__init__.py (100%) rename {knowledge_base => erpnext/knowledge_base}/page/kb_common/kb_common.js (100%) rename {knowledge_base/page/questions => erpnext/knowledge_base/page/question_view}/__init__.py (100%) rename {knowledge_base => erpnext/knowledge_base}/page/question_view/question_view.css (100%) rename {knowledge_base => erpnext/knowledge_base}/page/question_view/question_view.js (100%) rename {knowledge_base => erpnext/knowledge_base}/page/question_view/question_view.py (100%) rename {knowledge_base => erpnext/knowledge_base}/page/question_view/question_view.txt (100%) rename {patches => erpnext/knowledge_base/page/questions}/__init__.py (100%) rename {knowledge_base => erpnext/knowledge_base}/page/questions/questions.css (100%) rename {knowledge_base => erpnext/knowledge_base}/page/questions/questions.html (100%) rename {knowledge_base => erpnext/knowledge_base}/page/questions/questions.js (100%) rename {knowledge_base => erpnext/knowledge_base}/page/questions/questions.py (100%) rename {knowledge_base => erpnext/knowledge_base}/page/questions/questions.txt (100%) rename {patches/old_patches => erpnext/patches}/__init__.py (100%) rename {patches => erpnext/patches}/delivery_billing_status_patch.py (100%) rename {patches => erpnext/patches}/erpnext_structure_cleanup.py (100%) rename {patches => erpnext/patches}/index_patch.py (100%) rename {production => erpnext/patches/old_patches}/__init__.py (100%) rename {patches => erpnext/patches}/old_patches/customer_address.py (100%) rename {patches => erpnext/patches}/old_patches/doctype_permission_patch.py (100%) rename {patches => erpnext/patches}/old_patches/feed_patch.py (100%) rename {patches => erpnext/patches}/old_patches/patch_1.py (100%) rename {patches => erpnext/patches}/old_patches/replacecode.py (100%) rename {patches => erpnext/patches}/patch.py (100%) rename {production => erpnext/production}/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt (100%) rename {production => erpnext/production}/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt (100%) rename {production => erpnext/production}/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt (100%) rename {production => erpnext/production}/Module Def/Production/Production.txt (100%) rename {production => erpnext/production}/Role/Production Manager/Production Manager.txt (100%) rename {production => erpnext/production}/Role/Production User/Production User.txt (100%) rename {production/doctype => erpnext/production}/__init__.py (100%) rename {production/doctype/bill_of_materials => erpnext/production/doctype}/__init__.py (100%) rename {production/doctype/bom_control => erpnext/production/doctype/bill_of_materials}/__init__.py (100%) rename {production => erpnext/production}/doctype/bill_of_materials/bill_of_materials.js (100%) rename {production => erpnext/production}/doctype/bill_of_materials/bill_of_materials.py (100%) rename {production => erpnext/production}/doctype/bill_of_materials/bill_of_materials.txt (100%) rename {production/doctype/bom_material => erpnext/production/doctype/bom_control}/__init__.py (100%) rename {production => erpnext/production}/doctype/bom_control/bom_control.py (100%) rename {production => erpnext/production}/doctype/bom_control/bom_control.txt (100%) rename {production/doctype/bom_operation => erpnext/production/doctype/bom_material}/__init__.py (100%) rename {production => erpnext/production}/doctype/bom_material/bom_material.txt (100%) rename {production/doctype/bom_replace_utility => erpnext/production/doctype/bom_operation}/__init__.py (100%) rename {production => erpnext/production}/doctype/bom_operation/bom_operation.txt (100%) rename {production/doctype/bom_replace_utility_detail => erpnext/production/doctype/bom_replace_utility}/__init__.py (100%) rename {production => erpnext/production}/doctype/bom_replace_utility/bom_replace_utility.js (100%) rename {production => erpnext/production}/doctype/bom_replace_utility/bom_replace_utility.py (100%) rename {production => erpnext/production}/doctype/bom_replace_utility/bom_replace_utility.txt (100%) rename {production/doctype/bom_report_detail => erpnext/production/doctype/bom_replace_utility_detail}/__init__.py (100%) rename {production => erpnext/production}/doctype/bom_replace_utility_detail/bom_replace_utility_detail.txt (100%) rename {production/doctype/flat_bom_detail => erpnext/production/doctype/bom_report_detail}/__init__.py (100%) rename {production => erpnext/production}/doctype/bom_report_detail/bom_report_detail.txt (100%) rename {production/doctype/pf_detail => erpnext/production/doctype/flat_bom_detail}/__init__.py (100%) rename {production => erpnext/production}/doctype/flat_bom_detail/flat_bom_detail.txt (100%) rename {production/doctype/pp_detail => erpnext/production/doctype/pf_detail}/__init__.py (100%) rename {production => erpnext/production}/doctype/pf_detail/pf_detail.txt (100%) rename {production/doctype/pp_so_detail => erpnext/production/doctype/pp_detail}/__init__.py (100%) rename {production => erpnext/production}/doctype/pp_detail/pp_detail.txt (100%) rename {production/doctype/ppw_detail => erpnext/production/doctype/pp_so_detail}/__init__.py (100%) rename {production => erpnext/production}/doctype/pp_so_detail/pp_so_detail.txt (100%) rename {production/doctype/pro_detail => erpnext/production/doctype/ppw_detail}/__init__.py (100%) rename {production => erpnext/production}/doctype/ppw_detail/ppw_detail.txt (100%) rename {production/doctype/pro_pp_detail => erpnext/production/doctype/pro_detail}/__init__.py (100%) rename {production => erpnext/production}/doctype/pro_detail/pro_detail.txt (100%) rename {production/doctype/production_control => erpnext/production/doctype/pro_pp_detail}/__init__.py (100%) rename {production => erpnext/production}/doctype/pro_pp_detail/pro_pp_detail.txt (100%) rename {production/doctype/production_order => erpnext/production/doctype/production_control}/__init__.py (100%) rename {production => erpnext/production}/doctype/production_control/production_control.py (100%) rename {production => erpnext/production}/doctype/production_control/production_control.txt (100%) rename {production/doctype/production_planning_tool => erpnext/production/doctype/production_order}/__init__.py (100%) rename {production => erpnext/production}/doctype/production_order/production_order.js (100%) rename {production => erpnext/production}/doctype/production_order/production_order.py (100%) rename {production => erpnext/production}/doctype/production_order/production_order.txt (100%) rename {production/doctype/update_delivery_date => erpnext/production/doctype/production_planning_tool}/__init__.py (100%) rename {production => erpnext/production}/doctype/production_planning_tool/production_planning_tool.js (100%) rename {production => erpnext/production}/doctype/production_planning_tool/production_planning_tool.py (100%) rename {production => erpnext/production}/doctype/production_planning_tool/production_planning_tool.txt (100%) rename {production/doctype/update_delivery_date_detail => erpnext/production/doctype/update_delivery_date}/__init__.py (100%) rename {production => erpnext/production}/doctype/update_delivery_date/update_delivery_date.js (100%) rename {production => erpnext/production}/doctype/update_delivery_date/update_delivery_date.py (100%) rename {production => erpnext/production}/doctype/update_delivery_date/update_delivery_date.txt (100%) rename {production/doctype/workstation => erpnext/production/doctype/update_delivery_date_detail}/__init__.py (100%) rename {production => erpnext/production}/doctype/update_delivery_date_detail/update_delivery_date_detail.txt (100%) rename {production/page => erpnext/production/doctype/workstation}/__init__.py (100%) rename {production => erpnext/production}/doctype/workstation/workstation.js (100%) rename {production => erpnext/production}/doctype/workstation/workstation.py (100%) rename {production => erpnext/production}/doctype/workstation/workstation.txt (100%) rename {production/page/bill_of_materials => erpnext/production/page}/__init__.py (100%) rename {production/search_criteria => erpnext/production/page/bill_of_materials}/__init__.py (100%) rename {production => erpnext/production}/page/bill_of_materials/bill_of_materials.html (100%) rename {production => erpnext/production}/page/bill_of_materials/bill_of_materials.js (100%) rename {production => erpnext/production}/page/bill_of_materials/bill_of_materials.txt (100%) rename {production/search_criteria/consumption_against_production => erpnext/production/search_criteria}/__init__.py (100%) rename {production/search_criteria/delivery_plan => erpnext/production/search_criteria/consumption_against_production}/__init__.py (100%) rename {production => erpnext/production}/search_criteria/consumption_against_production/consumption_against_production.txt (100%) rename {production/search_criteria/itemwise_production_report => erpnext/production/search_criteria/delivery_plan}/__init__.py (100%) rename {production => erpnext/production}/search_criteria/delivery_plan/delivery_plan.js (100%) rename {production => erpnext/production}/search_criteria/delivery_plan/delivery_plan.txt (100%) rename {production/search_criteria/production_orders_in_process => erpnext/production/search_criteria/itemwise_production_report}/__init__.py (100%) rename {production => erpnext/production}/search_criteria/itemwise_production_report/itemwise_production_report.js (100%) rename {production => erpnext/production}/search_criteria/itemwise_production_report/itemwise_production_report.txt (100%) rename {projects => erpnext/production/search_criteria/production_orders_in_process}/__init__.py (100%) rename {production => erpnext/production}/search_criteria/production_orders_in_process/production_orders_in_process.txt (100%) rename {projects => erpnext/projects}/Module Def/Projects/Projects.txt (100%) rename {projects => erpnext/projects}/Role/Projects User/Projects User.txt (100%) rename {projects/doctype => erpnext/projects}/__init__.py (100%) rename {projects/doctype/activity_type => erpnext/projects/doctype}/__init__.py (100%) rename {projects/doctype/project => erpnext/projects/doctype/activity_type}/__init__.py (100%) rename {projects => erpnext/projects}/doctype/activity_type/activity_type.txt (100%) rename {projects/doctype/project_activity => erpnext/projects/doctype/project}/__init__.py (100%) rename {projects => erpnext/projects}/doctype/project/project.js (100%) rename {projects => erpnext/projects}/doctype/project/project.py (100%) rename {projects => erpnext/projects}/doctype/project/project.txt (100%) rename {projects/doctype/project_activity_update => erpnext/projects/doctype/project_activity}/__init__.py (100%) rename {projects => erpnext/projects}/doctype/project_activity/project_activity.js (100%) rename {projects => erpnext/projects}/doctype/project_activity/project_activity.py (100%) rename {projects => erpnext/projects}/doctype/project_activity/project_activity.txt (100%) rename {projects/doctype/project_control => erpnext/projects/doctype/project_activity_update}/__init__.py (100%) rename {projects => erpnext/projects}/doctype/project_activity_update/project_activity_update.txt (100%) rename {projects/doctype/project_milestone => erpnext/projects/doctype/project_control}/__init__.py (100%) rename {projects => erpnext/projects}/doctype/project_control/project_control.py (100%) rename {projects => erpnext/projects}/doctype/project_control/project_control.txt (100%) rename {projects/doctype/ticket => erpnext/projects/doctype/project_milestone}/__init__.py (100%) rename {projects => erpnext/projects}/doctype/project_milestone/project_milestone.txt (100%) rename {projects/doctype/timesheet => erpnext/projects/doctype/ticket}/__init__.py (100%) rename {projects => erpnext/projects}/doctype/ticket/ticket.js (100%) rename {projects => erpnext/projects}/doctype/ticket/ticket.py (100%) rename {projects => erpnext/projects}/doctype/ticket/ticket.txt (100%) rename {projects/doctype/timesheet_detail => erpnext/projects/doctype/timesheet}/__init__.py (100%) rename {projects => erpnext/projects}/doctype/timesheet/timesheet.js (100%) rename {projects => erpnext/projects}/doctype/timesheet/timesheet.py (100%) rename {projects => erpnext/projects}/doctype/timesheet/timesheet.txt (100%) rename {projects/page => erpnext/projects/doctype/timesheet_detail}/__init__.py (100%) rename {projects => erpnext/projects}/doctype/timesheet_detail/timesheet_detail.txt (100%) rename {projects/page/projects => erpnext/projects/page}/__init__.py (100%) rename {projects/search_criteria => erpnext/projects/page/projects}/__init__.py (100%) rename {projects => erpnext/projects}/page/projects/projects.html (100%) rename {projects => erpnext/projects}/page/projects/projects.js (100%) rename {projects => erpnext/projects}/page/projects/projects.txt (100%) rename {projects => erpnext/projects}/page/projects/projects_static.html (100%) rename {projects/search_criteria/dispatch_report => erpnext/projects/search_criteria}/__init__.py (100%) rename {projects/search_criteria/projectwise_delivered_qty_and_costs => erpnext/projects/search_criteria/dispatch_report}/__init__.py (100%) rename {projects => erpnext/projects}/search_criteria/dispatch_report/dispatch_report.js (100%) rename {projects => erpnext/projects}/search_criteria/dispatch_report/dispatch_report.txt (100%) rename {projects/search_criteria/projectwise_pending_qty_and_costs => erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs}/__init__.py (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.js (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt (100%) rename {projects/search_criteria/projectwise_purchase_details => erpnext/projects/search_criteria/projectwise_pending_qty_and_costs}/__init__.py (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.js (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt (100%) rename {projects/search_criteria/projectwise_sales_details => erpnext/projects/search_criteria/projectwise_purchase_details}/__init__.py (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_purchase_details/projectwise_purchase_details.js (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_purchase_details/projectwise_purchase_details.py (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt (100%) rename {projects/search_criteria/projectwise_sales_orders => erpnext/projects/search_criteria/projectwise_sales_details}/__init__.py (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_sales_details/projectwise_sales_details.js (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_sales_details/projectwise_sales_details.py (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_sales_details/projectwise_sales_details.txt (100%) rename {projects/search_criteria/timesheet_report => erpnext/projects/search_criteria/projectwise_sales_orders}/__init__.py (100%) rename {projects => erpnext/projects}/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt (100%) rename {selling => erpnext/projects/search_criteria/timesheet_report}/__init__.py (100%) rename {projects => erpnext/projects}/search_criteria/timesheet_report/timesheet_report.js (100%) rename {projects => erpnext/projects}/search_criteria/timesheet_report/timesheet_report.txt (100%) rename {selling => erpnext/selling}/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt (100%) rename {selling => erpnext/selling}/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt (100%) rename {selling => erpnext/selling}/DocType Mapper/Lead-Customer/Lead-Customer.txt (100%) rename {selling => erpnext/selling}/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt (100%) rename {selling => erpnext/selling}/DocType Mapper/Project-Sales Order/Project-Sales Order.txt (100%) rename {selling => erpnext/selling}/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt (100%) rename {selling => erpnext/selling}/Module Def/Selling/Selling.txt (100%) rename {selling => erpnext/selling}/Role/Customer/Customer.txt (100%) rename {selling => erpnext/selling}/Role/Partner/Partner.txt (100%) rename {selling => erpnext/selling}/Role/Sales Manager/Sales Manager.txt (100%) rename {selling => erpnext/selling}/Role/Sales Master Manager/Sales Master Manager.txt (100%) rename {selling => erpnext/selling}/Role/Sales User/Sales User.txt (100%) rename {selling/doctype => erpnext/selling}/__init__.py (100%) rename {selling/doctype/campaign => erpnext/selling/doctype}/__init__.py (100%) rename {selling/doctype/customer => erpnext/selling/doctype/campaign}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/campaign/campaign.js (100%) rename {selling => erpnext/selling}/doctype/campaign/campaign.txt (100%) rename {selling/doctype/enquiry => erpnext/selling/doctype/customer}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/customer/customer.js (100%) rename {selling => erpnext/selling}/doctype/customer/customer.py (100%) rename {selling => erpnext/selling}/doctype/customer/customer.txt (100%) rename {selling/doctype/enquiry_detail => erpnext/selling/doctype/enquiry}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/enquiry/enquiry.js (100%) rename {selling => erpnext/selling}/doctype/enquiry/enquiry.py (100%) rename {selling => erpnext/selling}/doctype/enquiry/enquiry.txt (100%) rename {selling/doctype/enquiry_sms_detail => erpnext/selling/doctype/enquiry_detail}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/enquiry_detail/enquiry_detail.txt (100%) rename {selling/doctype/follow_up => erpnext/selling/doctype/enquiry_sms_detail}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/enquiry_sms_detail/enquiry_sms_detail.txt (100%) rename {selling/doctype/industry_type => erpnext/selling/doctype/follow_up}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/follow_up/follow_up.txt (100%) rename {selling/doctype/installation_note => erpnext/selling/doctype/industry_type}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/industry_type/industry_type.js (100%) rename {selling => erpnext/selling}/doctype/industry_type/industry_type.txt (100%) rename {selling/doctype/installed_item_details => erpnext/selling/doctype/installation_note}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/installation_note/installation_note.js (100%) rename {selling => erpnext/selling}/doctype/installation_note/installation_note.py (100%) rename {selling => erpnext/selling}/doctype/installation_note/installation_note.txt (100%) rename {selling/doctype/lead => erpnext/selling/doctype/installed_item_details}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/installed_item_details/installed_item_details.txt (100%) rename {selling/doctype/lead_attachment_detail => erpnext/selling/doctype/lead}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/lead/lead.js (100%) rename {selling => erpnext/selling}/doctype/lead/lead.py (100%) rename {selling => erpnext/selling}/doctype/lead/lead.txt (100%) rename {selling/doctype/lead_item_detail => erpnext/selling/doctype/lead_attachment_detail}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/lead_attachment_detail/lead_attachment_detail.txt (100%) rename {selling/doctype/lead_sms_detail => erpnext/selling/doctype/lead_item_detail}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/lead_item_detail/lead_item_detail.txt (100%) rename {selling/doctype/plot_control => erpnext/selling/doctype/lead_sms_detail}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/lead_sms_detail/lead_sms_detail.txt (100%) rename {selling/doctype/quotation => erpnext/selling/doctype/plot_control}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/plot_control/plot_control.py (100%) rename {selling => erpnext/selling}/doctype/plot_control/plot_control.txt (100%) rename {selling/doctype/quotation_detail => erpnext/selling/doctype/quotation}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/quotation/quotation.js (100%) rename {selling => erpnext/selling}/doctype/quotation/quotation.py (100%) rename {selling => erpnext/selling}/doctype/quotation/quotation.txt (100%) rename {selling/doctype/return_detail => erpnext/selling/doctype/quotation_detail}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/quotation_detail/quotation_detail.txt (100%) rename {selling/doctype/sales_common => erpnext/selling/doctype/return_detail}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/return_detail/return_detail.txt (100%) rename {selling/doctype/sales_order => erpnext/selling/doctype/sales_common}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/sales_common/sales_common.js (100%) rename {selling => erpnext/selling}/doctype/sales_common/sales_common.py (100%) rename {selling => erpnext/selling}/doctype/sales_common/sales_common.txt (100%) rename {selling/doctype/sales_order_detail => erpnext/selling/doctype/sales_order}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/sales_order/sales_order.js (100%) rename {selling => erpnext/selling}/doctype/sales_order/sales_order.py (100%) rename {selling => erpnext/selling}/doctype/sales_order/sales_order.txt (100%) rename {selling/doctype/sales_team => erpnext/selling/doctype/sales_order_detail}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/sales_order_detail/sales_order_detail.txt (100%) rename {selling/doctype/shipping_address => erpnext/selling/doctype/sales_team}/__init__.py (100%) mode change 100755 => 100644 rename {selling => erpnext/selling}/doctype/sales_team/sales_team.txt (100%) rename {selling/doctype/sms_center => erpnext/selling/doctype/shipping_address}/__init__.py (100%) mode change 100644 => 100755 rename {selling => erpnext/selling}/doctype/shipping_address/shipping_address.js (100%) rename {selling => erpnext/selling}/doctype/shipping_address/shipping_address.py (100%) rename {selling => erpnext/selling}/doctype/shipping_address/shipping_address.txt (100%) rename {selling/page => erpnext/selling/doctype/sms_center}/__init__.py (100%) rename {selling => erpnext/selling}/doctype/sms_center/sms_center.js (100%) rename {selling => erpnext/selling}/doctype/sms_center/sms_center.py (100%) rename {selling => erpnext/selling}/doctype/sms_center/sms_center.txt (100%) rename {selling/page/customers => erpnext/selling/page}/__init__.py (100%) rename {selling/page/sales_browser => erpnext/selling/page/customers}/__init__.py (100%) rename {selling => erpnext/selling}/page/customers/customers.html (100%) rename {selling => erpnext/selling}/page/customers/customers.js (100%) rename {selling => erpnext/selling}/page/customers/customers.txt (100%) rename {selling/page/sales_dashboard => erpnext/selling/page/sales_browser}/__init__.py (100%) rename {selling => erpnext/selling}/page/sales_browser/sales_browser.html (100%) rename {selling => erpnext/selling}/page/sales_browser/sales_browser.js (100%) rename {selling => erpnext/selling}/page/sales_browser/sales_browser.txt (100%) rename {selling/search_criteria => erpnext/selling/page/sales_dashboard}/__init__.py (100%) rename {selling => erpnext/selling}/page/sales_dashboard/sales_dashboard.html (100%) rename {selling => erpnext/selling}/page/sales_dashboard/sales_dashboard.js (100%) rename {selling => erpnext/selling}/page/sales_dashboard/sales_dashboard.txt (100%) rename {selling/search_criteria/delivered_items_to_be_install => erpnext/selling/search_criteria}/__init__.py (100%) rename {selling/search_criteria/delivery_note_itemwise_pending_to_bill => erpnext/selling/search_criteria/delivered_items_to_be_install}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.js (100%) rename {selling => erpnext/selling}/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt (100%) rename {selling/search_criteria/draft_sales_orders => erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt (100%) rename {selling/search_criteria/follow_up_report => erpnext/selling/search_criteria/draft_sales_orders}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/draft_sales_orders/draft_sales_orders.js (100%) rename {selling => erpnext/selling}/search_criteria/draft_sales_orders/draft_sales_orders.txt (100%) rename {selling/search_criteria/gross_profit => erpnext/selling/search_criteria/follow_up_report}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/follow_up_report/follow_up_report.js (100%) rename {selling => erpnext/selling}/search_criteria/follow_up_report/follow_up_report.py (100%) rename {selling => erpnext/selling}/search_criteria/follow_up_report/follow_up_report.txt (100%) rename {selling/search_criteria/itemwise_delivery_details => erpnext/selling/search_criteria/gross_profit}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/gross_profit/gross_profit.js (100%) rename {selling => erpnext/selling}/search_criteria/gross_profit/gross_profit.py (100%) rename {selling => erpnext/selling}/search_criteria/gross_profit/gross_profit.txt (100%) rename {selling/search_criteria/itemwise_sales_details => erpnext/selling/search_criteria/itemwise_delivery_details}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/itemwise_delivery_details/itemwise_delivery_details.js (100%) rename {selling => erpnext/selling}/search_criteria/itemwise_delivery_details/itemwise_delivery_details.py (100%) rename {selling => erpnext/selling}/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt (100%) rename {selling/search_criteria/monthly_despatched_trend => erpnext/selling/search_criteria/itemwise_sales_details}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/itemwise_sales_details/itemwise_sales_details.js (100%) rename {selling => erpnext/selling}/search_criteria/itemwise_sales_details/itemwise_sales_details.py (100%) rename {selling => erpnext/selling}/search_criteria/itemwise_sales_details/itemwise_sales_details.txt (100%) rename {selling/search_criteria/periodic_sales_summary => erpnext/selling/search_criteria/monthly_despatched_trend}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js (100%) rename {selling => erpnext/selling}/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py (100%) rename {selling => erpnext/selling}/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt (100%) rename {selling/search_criteria/sales_agentwise_commission => erpnext/selling/search_criteria/periodic_sales_summary}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/periodic_sales_summary/periodic_sales_summary.js (100%) rename {selling => erpnext/selling}/search_criteria/periodic_sales_summary/periodic_sales_summary.txt (100%) rename {selling/search_criteria/sales_order_pending_items1 => erpnext/selling/search_criteria/sales_agentwise_commission}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/sales_agentwise_commission/sales_agentwise_commission.js (100%) rename {selling => erpnext/selling}/search_criteria/sales_agentwise_commission/sales_agentwise_commission.py (100%) rename {selling => erpnext/selling}/search_criteria/sales_agentwise_commission/sales_agentwise_commission.txt (100%) rename {selling/search_criteria/sales_orderwise_booking_&_delivery_summary => erpnext/selling/search_criteria/sales_order_pending_items1}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/sales_order_pending_items1/sales_order_pending_items1.js (100%) rename {selling => erpnext/selling}/search_criteria/sales_order_pending_items1/sales_order_pending_items1.txt (100%) rename {selling => erpnext/selling}/search_criteria/sales_orderwise_booking_ (100%) rename {selling/search_criteria/sales_orderwise_pending_amount_to_bill => erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt (100%) rename {selling/search_criteria/sales_orderwise_pending_qty_to_deliver => erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.js (100%) rename {selling => erpnext/selling}/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt (100%) rename {selling/search_criteria/sales_persons_target_variance_item_group_wise => erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt (100%) rename {selling/search_criteria/sales_personwise_transaction_summary => erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise}/__init__.py (100%) mode change 100755 => 100644 rename {selling => erpnext/selling}/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.js (100%) rename {selling => erpnext/selling}/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py (100%) rename {selling => erpnext/selling}/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt (100%) rename {selling/search_criteria/target_variance_report => erpnext/selling/search_criteria/sales_personwise_transaction_summary}/__init__.py (100%) mode change 100644 => 100755 rename {selling => erpnext/selling}/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js (100%) rename {selling => erpnext/selling}/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py (100%) rename {selling => erpnext/selling}/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt (100%) rename {selling/search_criteria/territories_target_variance_item_group_wise => erpnext/selling/search_criteria/target_variance_report}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/target_variance_report/target_variance_report.js (100%) rename {selling => erpnext/selling}/search_criteria/target_variance_report/target_variance_report.py (100%) rename {selling => erpnext/selling}/search_criteria/target_variance_report/target_variance_report.txt (100%) rename {selling/search_criteria/territory_item_group_wise_gp => erpnext/selling/search_criteria/territories_target_variance_item_group_wise}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.js (100%) rename {selling => erpnext/selling}/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py (100%) rename {selling => erpnext/selling}/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt (100%) rename {selling/search_criteria/territory_sales___variance_report => erpnext/selling/search_criteria/territory_item_group_wise_gp}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.py (100%) rename {selling => erpnext/selling}/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.txt (100%) rename {selling/search_criteria/total_target_variance_report => erpnext/selling/search_criteria/territory_sales___variance_report}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/territory_sales___variance_report/territory_sales___variance_report.js (100%) rename {selling => erpnext/selling}/search_criteria/territory_sales___variance_report/territory_sales___variance_report.py (100%) rename {selling => erpnext/selling}/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt (100%) rename {selling/search_criteria/variance_report => erpnext/selling/search_criteria/total_target_variance_report}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/total_target_variance_report/total_target_variance_report.js (100%) rename {selling => erpnext/selling}/search_criteria/total_target_variance_report/total_target_variance_report.py (100%) rename {selling => erpnext/selling}/search_criteria/total_target_variance_report/total_target_variance_report.sql (100%) rename {selling => erpnext/selling}/search_criteria/total_target_variance_report/total_target_variance_report.txt (100%) rename {setup => erpnext/selling/search_criteria/variance_report}/__init__.py (100%) rename {selling => erpnext/selling}/search_criteria/variance_report/variance_report.js (100%) rename {selling => erpnext/selling}/search_criteria/variance_report/variance_report.py (100%) rename {selling => erpnext/selling}/search_criteria/variance_report/variance_report.sql (100%) rename {selling => erpnext/selling}/search_criteria/variance_report/variance_report.txt (100%) rename {setup => erpnext/setup}/Module Def/Setup/Setup.txt (100%) rename {setup => erpnext/setup}/Role/System Manager/System Manager.txt (100%) rename {setup/doctype => erpnext/setup}/__init__.py (100%) rename {setup/doctype/authorization_control => erpnext/setup/doctype}/__init__.py (100%) rename {setup/doctype/authorization_rule => erpnext/setup/doctype/authorization_control}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/authorization_control/authorization_control.js (100%) rename {setup => erpnext/setup}/doctype/authorization_control/authorization_control.py (100%) rename {setup => erpnext/setup}/doctype/authorization_control/authorization_control.txt (100%) rename {setup/doctype/brand => erpnext/setup/doctype/authorization_rule}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/authorization_rule/authorization_rule.js (100%) rename {setup => erpnext/setup}/doctype/authorization_rule/authorization_rule.py (100%) rename {setup => erpnext/setup}/doctype/authorization_rule/authorization_rule.txt (100%) rename {setup/doctype/company => erpnext/setup/doctype/brand}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/brand/brand.js (100%) rename {setup => erpnext/setup}/doctype/brand/brand.txt (100%) rename {setup/doctype/contact_control => erpnext/setup/doctype/company}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/company/company.js (100%) rename {setup => erpnext/setup}/doctype/company/company.py (100%) rename {setup => erpnext/setup}/doctype/company/company.txt (100%) rename {setup/doctype/country => erpnext/setup/doctype/contact_control}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/contact_control/contact_control.js (100%) rename {setup => erpnext/setup}/doctype/contact_control/contact_control.py (100%) rename {setup => erpnext/setup}/doctype/contact_control/contact_control.txt (100%) rename {setup/doctype/currency => erpnext/setup/doctype/country}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/country/country.js (100%) rename {setup => erpnext/setup}/doctype/country/country.txt (100%) rename {setup/doctype/customer_group => erpnext/setup/doctype/currency}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/currency/currency.txt (100%) rename {setup/doctype/email_digest => erpnext/setup/doctype/customer_group}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/customer_group/customer_group.js (100%) rename {setup => erpnext/setup}/doctype/customer_group/customer_group.py (100%) rename {setup => erpnext/setup}/doctype/customer_group/customer_group.txt (100%) rename {setup/doctype/email_settings => erpnext/setup/doctype/email_digest}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/email_digest/email_digest.coffee (100%) rename {setup => erpnext/setup}/doctype/email_digest/email_digest.css (100%) rename {setup => erpnext/setup}/doctype/email_digest/email_digest.js (100%) rename {setup => erpnext/setup}/doctype/email_digest/email_digest.txt (100%) rename {setup/doctype/features_setup => erpnext/setup/doctype/email_settings}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/email_settings/email_settings.js (100%) rename {setup => erpnext/setup}/doctype/email_settings/email_settings.py (100%) rename {setup => erpnext/setup}/doctype/email_settings/email_settings.txt (100%) rename {setup/doctype/import_data_control => erpnext/setup/doctype/features_setup}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/features_setup/features_setup.py (100%) rename {setup => erpnext/setup}/doctype/features_setup/features_setup.txt (100%) rename {setup/doctype/item_group => erpnext/setup/doctype/import_data_control}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/import_data_control/import_data_control.py (100%) rename {setup => erpnext/setup}/doctype/import_data_control/import_data_control.txt (100%) rename {setup/doctype/manage_account => erpnext/setup/doctype/item_group}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/item_group/item_group.js (100%) rename {setup => erpnext/setup}/doctype/item_group/item_group.py (100%) rename {setup => erpnext/setup}/doctype/item_group/item_group.txt (100%) rename {setup/doctype/market_segment => erpnext/setup/doctype/manage_account}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/manage_account/manage_account.js (100%) rename {setup => erpnext/setup}/doctype/manage_account/manage_account.py (100%) rename {setup => erpnext/setup}/doctype/manage_account/manage_account.txt (100%) rename {setup/doctype/naming_series => erpnext/setup/doctype/market_segment}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/market_segment/market_segment.txt (100%) rename {setup/doctype/naming_series_options => erpnext/setup/doctype/naming_series}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/naming_series/naming_series.js (100%) rename {setup => erpnext/setup}/doctype/naming_series/naming_series.py (100%) rename {setup => erpnext/setup}/doctype/naming_series/naming_series.txt (100%) rename {setup/doctype/notification_control => erpnext/setup/doctype/naming_series_options}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/naming_series_options/naming_series_options.txt (100%) rename {setup/doctype/order_lost_reason => erpnext/setup/doctype/notification_control}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/notification_control/notification_control.js (100%) rename {setup => erpnext/setup}/doctype/notification_control/notification_control.py (100%) rename {setup => erpnext/setup}/doctype/notification_control/notification_control.txt (100%) rename {setup/doctype/other_charges => erpnext/setup/doctype/order_lost_reason}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/order_lost_reason/order_lost_reason.js (100%) rename {setup => erpnext/setup}/doctype/order_lost_reason/order_lost_reason.txt (100%) rename {setup/doctype/period => erpnext/setup/doctype/other_charges}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/other_charges/other_charges.js (100%) rename {setup => erpnext/setup}/doctype/other_charges/other_charges.py (100%) rename {setup => erpnext/setup}/doctype/other_charges/other_charges.txt (100%) rename {setup/doctype/period_control => erpnext/setup/doctype/period}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/period/period.js (100%) rename {setup => erpnext/setup}/doctype/period/period.txt (100%) rename {setup/doctype/permission_control => erpnext/setup/doctype/period_control}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/period_control/period_control.py (100%) rename {setup => erpnext/setup}/doctype/period_control/period_control.txt (100%) rename {setup/doctype/personalize => erpnext/setup/doctype/permission_control}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/permission_control/permission_control.py (100%) rename {setup => erpnext/setup}/doctype/permission_control/permission_control.txt (100%) rename {setup/doctype/price_list => erpnext/setup/doctype/personalize}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/personalize/personalize.py (100%) rename {setup => erpnext/setup}/doctype/personalize/personalize.txt (100%) rename {setup/doctype/print_heading => erpnext/setup/doctype/price_list}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/price_list/price_list.js (100%) rename {setup => erpnext/setup}/doctype/price_list/price_list.py (100%) rename {setup => erpnext/setup}/doctype/price_list/price_list.txt (100%) rename {setup/doctype/role => erpnext/setup/doctype/print_heading}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/print_heading/print_heading.js (100%) rename {setup => erpnext/setup}/doctype/print_heading/print_heading.py (100%) rename {setup => erpnext/setup}/doctype/print_heading/print_heading.txt (100%) rename {setup/doctype/sales_browser_control => erpnext/setup/doctype/role}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/role/role.js (100%) rename {setup => erpnext/setup}/doctype/role/role.py (100%) rename {setup => erpnext/setup}/doctype/role/role.txt (100%) rename {setup/doctype/sales_partner => erpnext/setup/doctype/sales_browser_control}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/sales_browser_control/sales_browser_control.py (100%) rename {setup => erpnext/setup}/doctype/sales_browser_control/sales_browser_control.txt (100%) rename {setup/doctype/sales_person => erpnext/setup/doctype/sales_partner}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/sales_partner/sales_partner.js (100%) rename {setup => erpnext/setup}/doctype/sales_partner/sales_partner.py (100%) rename {setup => erpnext/setup}/doctype/sales_partner/sales_partner.txt (100%) rename {setup/doctype/series_detail => erpnext/setup/doctype/sales_person}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/sales_person/sales_person.js (100%) rename {setup => erpnext/setup}/doctype/sales_person/sales_person.py (100%) rename {setup => erpnext/setup}/doctype/sales_person/sales_person.txt (100%) rename {setup/doctype/setup_control => erpnext/setup/doctype/series_detail}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/series_detail/series_detail.txt (100%) rename {setup/doctype/setup_wizard_control => erpnext/setup/doctype/setup_control}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/setup_control/setup_control.py (100%) rename {setup => erpnext/setup}/doctype/setup_control/setup_control.txt (100%) rename {setup/doctype/sms_settings => erpnext/setup/doctype/setup_wizard_control}/__init__.py (100%) mode change 100755 => 100644 rename {setup => erpnext/setup}/doctype/setup_wizard_control/setup_wizard_control.py (100%) rename {setup => erpnext/setup}/doctype/setup_wizard_control/setup_wizard_control.txt (100%) rename {setup/doctype/state => erpnext/setup/doctype/sms_settings}/__init__.py (100%) mode change 100644 => 100755 rename {setup => erpnext/setup}/doctype/sms_settings/sms_settings.txt (100%) rename {setup/doctype/static_parameter_detail => erpnext/setup/doctype/state}/__init__.py (100%) mode change 100755 => 100644 rename {setup => erpnext/setup}/doctype/state/state.js (100%) rename {setup => erpnext/setup}/doctype/state/state.txt (100%) rename {setup/doctype/supplier_type => erpnext/setup/doctype/static_parameter_detail}/__init__.py (100%) mode change 100644 => 100755 rename {setup => erpnext/setup}/doctype/static_parameter_detail/static_parameter_detail.txt (100%) rename {setup/doctype/target_detail => erpnext/setup/doctype/supplier_type}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/supplier_type/supplier_type.js (100%) rename {setup => erpnext/setup}/doctype/supplier_type/supplier_type.txt (100%) rename {setup/doctype/term => erpnext/setup/doctype/target_detail}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/target_detail/target_detail.txt (100%) rename {setup/doctype/territory => erpnext/setup/doctype/term}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/term/term.js (100%) rename {setup => erpnext/setup}/doctype/term/term.txt (100%) rename {setup/doctype/uom => erpnext/setup/doctype/territory}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/territory/territory.js (100%) rename {setup => erpnext/setup}/doctype/territory/territory.py (100%) rename {setup => erpnext/setup}/doctype/territory/territory.txt (100%) rename {setup/doctype/update_series => erpnext/setup/doctype/uom}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/uom/uom.js (100%) rename {setup => erpnext/setup}/doctype/uom/uom.txt (100%) rename {setup/doctype/upload_accounts_transactions => erpnext/setup/doctype/update_series}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/update_series/update_series.py (100%) rename {setup => erpnext/setup}/doctype/update_series/update_series.txt (100%) rename {setup/doctype/warehouse_type => erpnext/setup/doctype/upload_accounts_transactions}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/upload_accounts_transactions/upload_accounts_transactions.js (100%) rename {setup => erpnext/setup}/doctype/upload_accounts_transactions/upload_accounts_transactions.py (100%) rename {setup => erpnext/setup}/doctype/upload_accounts_transactions/upload_accounts_transactions.txt (100%) rename {setup/doctype/workflow_action_detail => erpnext/setup/doctype/warehouse_type}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/warehouse_type/warehouse_type.js (100%) rename {setup => erpnext/setup}/doctype/warehouse_type/warehouse_type.txt (100%) rename {setup/doctype/workflow_engine => erpnext/setup/doctype/workflow_action_detail}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/workflow_action_detail/workflow_action_detail.txt (100%) rename {setup/doctype/workflow_rule => erpnext/setup/doctype/workflow_engine}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/workflow_engine/workflow_engine.py (100%) rename {setup => erpnext/setup}/doctype/workflow_engine/workflow_engine.txt (100%) rename {setup/doctype/workflow_rule_detail => erpnext/setup/doctype/workflow_rule}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/workflow_rule/workflow_rule.js (100%) rename {setup => erpnext/setup}/doctype/workflow_rule/workflow_rule.py (100%) rename {setup => erpnext/setup}/doctype/workflow_rule/workflow_rule.txt (100%) rename {setup/page => erpnext/setup/doctype/workflow_rule_detail}/__init__.py (100%) rename {setup => erpnext/setup}/doctype/workflow_rule_detail/workflow_rule_detail.txt (100%) rename {setup/page/import_data => erpnext/setup/page}/__init__.py (100%) rename {setup/page/people => erpnext/setup/page/import_data}/__init__.py (100%) rename {setup => erpnext/setup}/page/import_data/import_data.html (100%) rename {setup => erpnext/setup}/page/import_data/import_data.js (100%) rename {setup => erpnext/setup}/page/import_data/import_data.txt (100%) rename {setup/page/permission_engine => erpnext/setup/page/people}/__init__.py (100%) rename {setup => erpnext/setup}/page/people/people.html (100%) rename {setup => erpnext/setup}/page/people/people.js (100%) rename {setup => erpnext/setup}/page/people/people.txt (100%) rename {setup/page/setup => erpnext/setup/page/permission_engine}/__init__.py (100%) rename {setup => erpnext/setup}/page/permission_engine/permission_engine.html (100%) rename {setup => erpnext/setup}/page/permission_engine/permission_engine.js (100%) rename {setup => erpnext/setup}/page/permission_engine/permission_engine.txt (100%) rename {setup/page/setup_wizard => erpnext/setup/page/setup}/__init__.py (100%) rename {setup => erpnext/setup}/page/setup/setup.html (100%) rename {setup => erpnext/setup}/page/setup/setup.js (100%) rename {setup => erpnext/setup}/page/setup/setup.txt (100%) rename {setup => erpnext/setup}/page/setup/setup_static.html (100%) rename {setup/page/webforms => erpnext/setup/page/setup_wizard}/__init__.py (100%) rename {setup => erpnext/setup}/page/setup_wizard/setup_wizard.html (100%) rename {setup => erpnext/setup}/page/setup_wizard/setup_wizard.js (100%) rename {setup => erpnext/setup}/page/setup_wizard/setup_wizard.txt (100%) rename {setup => erpnext/setup}/page/setup_wizard/setup_wizard_static.html (100%) rename {stock => erpnext/setup/page/webforms}/__init__.py (100%) rename {setup => erpnext/setup}/page/webforms/webforms.html (100%) rename {setup => erpnext/setup}/page/webforms/webforms.js (100%) rename {setup => erpnext/setup}/page/webforms/webforms.txt (100%) rename {setup => erpnext/setup}/page/webforms/webforms_static.html (100%) rename {startup => erpnext/startup}/__init__.py (100%) rename {startup => erpnext/startup}/event_handlers.py (100%) rename {startup => erpnext/startup}/startup.css (100%) rename {startup => erpnext/startup}/startup.js (100%) rename {stock => erpnext/stock}/DocType Label/QA Inspection Report/QA Inspection Report.txt (100%) rename {stock => erpnext/stock}/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt (100%) rename {stock => erpnext/stock}/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt (100%) rename {stock => erpnext/stock}/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt (100%) rename {stock => erpnext/stock}/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt (100%) rename {stock => erpnext/stock}/Item Group/All Item Groups/All Item Groups.txt (100%) rename {stock => erpnext/stock}/Item Group/Default/Default.txt (100%) rename {stock => erpnext/stock}/Module Def/Stock/Stock.txt (100%) rename {stock => erpnext/stock}/Print Format/Delivery Note Packing List Wise/Delivery Note Packing List Wise.txt (100%) rename {stock => erpnext/stock}/Print Format/Purchase Receipt Format/Purchase Receipt Format.txt (100%) rename {stock => erpnext/stock}/Role/Material Manager/Material Manager.txt (100%) rename {stock => erpnext/stock}/Role/Material Master Manager/Material Master Manager.txt (100%) rename {stock => erpnext/stock}/Role/Material User/Material User.txt (100%) rename {stock => erpnext/stock}/Role/Quality Manager/Quality Manager.txt (100%) rename {stock/doctype => erpnext/stock}/__init__.py (100%) rename {stock/doctype/batch => erpnext/stock/doctype}/__init__.py (100%) rename {stock/doctype/bin => erpnext/stock/doctype/batch}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/batch/batch.txt (100%) rename {stock/doctype/delivery_note => erpnext/stock/doctype/bin}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/bin/bin.py (100%) rename {stock => erpnext/stock}/doctype/bin/bin.txt (100%) rename {stock/doctype/delivery_note_detail => erpnext/stock/doctype/delivery_note}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/delivery_note/delivery_note.js (100%) rename {stock => erpnext/stock}/doctype/delivery_note/delivery_note.py (100%) rename {stock => erpnext/stock}/doctype/delivery_note/delivery_note.txt (100%) rename {stock/doctype/delivery_note_packing_detail => erpnext/stock/doctype/delivery_note_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/delivery_note_detail/delivery_note_detail.txt (100%) rename {stock/doctype/item => erpnext/stock/doctype/delivery_note_packing_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/delivery_note_packing_detail/delivery_note_packing_detail.txt (100%) rename {stock/doctype/item_customer_detail => erpnext/stock/doctype/item}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/item/item.js (100%) rename {stock => erpnext/stock}/doctype/item/item.py (100%) rename {stock => erpnext/stock}/doctype/item/item.txt (100%) rename {stock/doctype/item_specification_detail => erpnext/stock/doctype/item_customer_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/item_customer_detail/item_customer_detail.txt (100%) rename {stock/doctype/item_tax => erpnext/stock/doctype/item_specification_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/item_specification_detail/item_specification_detail.txt (100%) rename {stock/doctype/landed_cost_detail => erpnext/stock/doctype/item_tax}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/item_tax/item_tax.txt (100%) rename {stock/doctype/landed_cost_master => erpnext/stock/doctype/landed_cost_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/landed_cost_detail/landed_cost_detail.txt (100%) rename {stock/doctype/landed_cost_master_detail => erpnext/stock/doctype/landed_cost_master}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/landed_cost_master/landed_cost_master.js (100%) rename {stock => erpnext/stock}/doctype/landed_cost_master/landed_cost_master.txt (100%) rename {stock/doctype/landed_cost_wizard => erpnext/stock/doctype/landed_cost_master_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/landed_cost_master_detail/landed_cost_master_detail.txt (100%) rename {stock/doctype/lc_pr_detail => erpnext/stock/doctype/landed_cost_wizard}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/landed_cost_wizard/landed_cost_wizard.js (100%) rename {stock => erpnext/stock}/doctype/landed_cost_wizard/landed_cost_wizard.py (100%) rename {stock => erpnext/stock}/doctype/landed_cost_wizard/landed_cost_wizard.txt (100%) rename {stock/doctype/purchase_receipt => erpnext/stock/doctype/lc_pr_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/lc_pr_detail/lc_pr_detail.txt (100%) rename {stock/doctype/purchase_receipt_detail => erpnext/stock/doctype/purchase_receipt}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/purchase_receipt/purchase_receipt.js (100%) rename {stock => erpnext/stock}/doctype/purchase_receipt/purchase_receipt.py (100%) rename {stock => erpnext/stock}/doctype/purchase_receipt/purchase_receipt.txt (100%) rename {stock/doctype/ref_rate_detail => erpnext/stock/doctype/purchase_receipt_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/purchase_receipt_detail/purchase_receipt_detail.txt (100%) rename {stock/doctype/sales_and_purchase_return_wizard => erpnext/stock/doctype/ref_rate_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/ref_rate_detail/ref_rate_detail.txt (100%) rename {stock/doctype/sales_bom => erpnext/stock/doctype/sales_and_purchase_return_wizard}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.js (100%) rename {stock => erpnext/stock}/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.py (100%) rename {stock => erpnext/stock}/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.txt (100%) rename {stock/doctype/sales_bom_detail => erpnext/stock/doctype/sales_bom}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/sales_bom/sales_bom.js (100%) rename {stock => erpnext/stock}/doctype/sales_bom/sales_bom.py (100%) rename {stock => erpnext/stock}/doctype/sales_bom/sales_bom.txt (100%) rename {stock/doctype/serial_no => erpnext/stock/doctype/sales_bom_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/sales_bom_detail/sales_bom_detail.txt (100%) rename {stock/doctype/stock_entry => erpnext/stock/doctype/serial_no}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/serial_no/serial_no.js (100%) rename {stock => erpnext/stock}/doctype/serial_no/serial_no.py (100%) rename {stock => erpnext/stock}/doctype/serial_no/serial_no.txt (100%) rename {stock/doctype/stock_entry_detail => erpnext/stock/doctype/stock_entry}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/stock_entry/stock_entry.js (100%) rename {stock => erpnext/stock}/doctype/stock_entry/stock_entry.py (100%) rename {stock => erpnext/stock}/doctype/stock_entry/stock_entry.py~ (100%) rename {stock => erpnext/stock}/doctype/stock_entry/stock_entry.txt (100%) rename {stock/doctype/stock_ledger => erpnext/stock/doctype/stock_entry_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/stock_entry_detail/stock_entry_detail.txt (100%) rename {stock/doctype/stock_ledger_entry => erpnext/stock/doctype/stock_ledger}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/stock_ledger/stock_ledger.py (100%) rename {stock => erpnext/stock}/doctype/stock_ledger/stock_ledger.txt (100%) rename {stock/doctype/stock_reconciliation => erpnext/stock/doctype/stock_ledger_entry}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/stock_ledger_entry/stock_ledger_entry.py (100%) rename {stock => erpnext/stock}/doctype/stock_ledger_entry/stock_ledger_entry.txt (100%) rename {stock/doctype/stock_uom_replace_utility => erpnext/stock/doctype/stock_reconciliation}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/stock_reconciliation/stock_reconciliation.js (100%) rename {stock => erpnext/stock}/doctype/stock_reconciliation/stock_reconciliation.py (100%) rename {stock => erpnext/stock}/doctype/stock_reconciliation/stock_reconciliation.txt (100%) rename {stock/doctype/uom_conversion_detail => erpnext/stock/doctype/stock_uom_replace_utility}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js (100%) rename {stock => erpnext/stock}/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py (100%) rename {stock => erpnext/stock}/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt (100%) rename {stock/doctype/valuation_control => erpnext/stock/doctype/uom_conversion_detail}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/uom_conversion_detail/uom_conversion_detail.txt (100%) rename {stock/doctype/warehouse => erpnext/stock/doctype/valuation_control}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/valuation_control/valuation_control.py (100%) rename {stock => erpnext/stock}/doctype/valuation_control/valuation_control.py~ (100%) rename {stock => erpnext/stock}/doctype/valuation_control/valuation_control.txt (100%) rename {stock/page => erpnext/stock/doctype/warehouse}/__init__.py (100%) rename {stock => erpnext/stock}/doctype/warehouse/warehouse.js (100%) rename {stock => erpnext/stock}/doctype/warehouse/warehouse.py (100%) rename {stock => erpnext/stock}/doctype/warehouse/warehouse.txt (100%) rename {stock/search_criteria => erpnext/stock/page}/__init__.py (100%) rename {stock/search_criteria/itemwise_price_list => erpnext/stock/search_criteria}/__init__.py (100%) rename {stock/search_criteria/shortage_to_indent => erpnext/stock/search_criteria/itemwise_price_list}/__init__.py (100%) rename {stock => erpnext/stock}/search_criteria/itemwise_price_list/itemwise_price_list.js (100%) rename {stock => erpnext/stock}/search_criteria/itemwise_price_list/itemwise_price_list.txt (100%) rename {stock/search_criteria/stock_aging_report => erpnext/stock/search_criteria/shortage_to_indent}/__init__.py (100%) rename {stock => erpnext/stock}/search_criteria/shortage_to_indent/shortage_to_indent.js (100%) rename {stock => erpnext/stock}/search_criteria/shortage_to_indent/shortage_to_indent.py (100%) rename {stock => erpnext/stock}/search_criteria/shortage_to_indent/shortage_to_indent.txt (100%) rename {stock/search_criteria/stock_ledger => erpnext/stock/search_criteria/stock_aging_report}/__init__.py (100%) rename {stock => erpnext/stock}/search_criteria/stock_aging_report/stock_aging_report.js (100%) rename {stock => erpnext/stock}/search_criteria/stock_aging_report/stock_aging_report.py (100%) rename {stock => erpnext/stock}/search_criteria/stock_aging_report/stock_aging_report.txt (100%) rename {stock/search_criteria/stock_level => erpnext/stock/search_criteria/stock_ledger}/__init__.py (100%) rename {stock => erpnext/stock}/search_criteria/stock_ledger/stock_ledger.js (100%) rename {stock => erpnext/stock}/search_criteria/stock_ledger/stock_ledger.txt (100%) rename {stock/search_criteria/stock_report => erpnext/stock/search_criteria/stock_level}/__init__.py (100%) rename {stock => erpnext/stock}/search_criteria/stock_level/stock_level.js (100%) rename {stock => erpnext/stock}/search_criteria/stock_level/stock_level.py (100%) rename {stock => erpnext/stock}/search_criteria/stock_level/stock_level.txt (100%) rename {support => erpnext/stock/search_criteria/stock_report}/__init__.py (100%) rename {stock => erpnext/stock}/search_criteria/stock_report/stock_report.js (100%) rename {stock => erpnext/stock}/search_criteria/stock_report/stock_report.py (100%) rename {stock => erpnext/stock}/search_criteria/stock_report/stock_report.txt (100%) rename {stock => erpnext/stock}/tests.py (100%) rename {support => erpnext/support}/DocType Label/Ticket/Ticket.txt (100%) rename {support => erpnext/support}/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt (100%) rename {support => erpnext/support}/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt (100%) rename {support => erpnext/support}/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt (100%) rename {support => erpnext/support}/Module Def/Support/Support.txt (100%) rename {support => erpnext/support}/Role/Maintenance Manager/Maintenance Manager.txt (100%) rename {support => erpnext/support}/Role/Maintenance User/Maintenance User.txt (100%) rename {support => erpnext/support}/Role/Support Manager/Support Manager.txt (100%) rename {support => erpnext/support}/Role/Support Team/Support Team.txt (100%) rename {support/doctype => erpnext/support}/__init__.py (100%) rename {support/doctype/customer_issue => erpnext/support/doctype}/__init__.py (100%) rename {support/doctype/item_maintenance_detail => erpnext/support/doctype/customer_issue}/__init__.py (100%) rename {support => erpnext/support}/doctype/customer_issue/customer_issue.js (100%) rename {support => erpnext/support}/doctype/customer_issue/customer_issue.py (100%) rename {support => erpnext/support}/doctype/customer_issue/customer_issue.txt (100%) rename {support/doctype/maintenance_schedule => erpnext/support/doctype/item_maintenance_detail}/__init__.py (100%) rename {support => erpnext/support}/doctype/item_maintenance_detail/item_maintenance_detail.txt (100%) rename {support/doctype/maintenance_schedule_detail => erpnext/support/doctype/maintenance_schedule}/__init__.py (100%) rename {support => erpnext/support}/doctype/maintenance_schedule/maintenance_schedule.js (100%) rename {support => erpnext/support}/doctype/maintenance_schedule/maintenance_schedule.py (100%) rename {support => erpnext/support}/doctype/maintenance_schedule/maintenance_schedule.txt (100%) rename {support/doctype/maintenance_visit => erpnext/support/doctype/maintenance_schedule_detail}/__init__.py (100%) rename {support => erpnext/support}/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt (100%) rename {support/doctype/maintenance_visit_detail => erpnext/support/doctype/maintenance_visit}/__init__.py (100%) rename {support => erpnext/support}/doctype/maintenance_visit/maintenance_visit.js (100%) rename {support => erpnext/support}/doctype/maintenance_visit/maintenance_visit.py (100%) rename {support => erpnext/support}/doctype/maintenance_visit/maintenance_visit.txt (100%) rename {support/doctype/support_ticket_response => erpnext/support/doctype/maintenance_visit_detail}/__init__.py (100%) rename {support => erpnext/support}/doctype/maintenance_visit_detail/maintenance_visit_detail.txt (100%) rename {support => erpnext/support}/doctype/support_ticket/__init__.py (100%) rename {support => erpnext/support}/doctype/support_ticket/support_ticket.js (100%) rename {support => erpnext/support}/doctype/support_ticket/support_ticket.py (100%) rename {support => erpnext/support}/doctype/support_ticket/support_ticket.txt (100%) rename {support/search_criteria => erpnext/support/doctype/support_ticket_response}/__init__.py (100%) rename {support => erpnext/support}/doctype/support_ticket_response/support_ticket_response.txt (100%) rename {support/search_criteria/amc_summary => erpnext/support/search_criteria}/__init__.py (100%) rename {support/search_criteria/customer_issues => erpnext/support/search_criteria/amc_summary}/__init__.py (100%) rename {support => erpnext/support}/search_criteria/amc_summary/amc_summary.js (100%) rename {support => erpnext/support}/search_criteria/amc_summary/amc_summary.py (100%) rename {support => erpnext/support}/search_criteria/amc_summary/amc_summary.txt (100%) rename {support/search_criteria/maintenance_orderwise_pending_amount_to_bill => erpnext/support/search_criteria/customer_issues}/__init__.py (100%) rename {support => erpnext/support}/search_criteria/customer_issues/customer_issues.js (100%) rename {support => erpnext/support}/search_criteria/customer_issues/customer_issues.txt (100%) rename {support/search_criteria/maintenance_schedule_details => erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill}/__init__.py (100%) rename {support => erpnext/support}/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.js (100%) rename {support => erpnext/support}/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt (100%) rename {support/search_criteria/warranty_amc_expiry_details => erpnext/support/search_criteria/maintenance_schedule_details}/__init__.py (100%) rename {support => erpnext/support}/search_criteria/maintenance_schedule_details/maintenance_schedule_details.js (100%) rename {support => erpnext/support}/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt (100%) rename {support/search_criteria/warranty_amc_summary => erpnext/support/search_criteria/warranty_amc_expiry_details}/__init__.py (100%) rename {support => erpnext/support}/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.js (100%) rename {support => erpnext/support}/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt (100%) rename {utilities => erpnext/support/search_criteria/warranty_amc_summary}/__init__.py (100%) rename {support => erpnext/support}/search_criteria/warranty_amc_summary/warranty_amc_summary.js (100%) rename {support => erpnext/support}/search_criteria/warranty_amc_summary/warranty_amc_summary.py (100%) rename {support => erpnext/support}/search_criteria/warranty_amc_summary/warranty_amc_summary.sql (100%) rename {support => erpnext/support}/search_criteria/warranty_amc_summary/warranty_amc_summary.txt (100%) rename {utilities => erpnext/utilities}/Module Def/Utilities/Utilities.txt (100%) rename {utilities/doctype => erpnext/utilities}/__init__.py (100%) rename {utilities/doctype/activity_dashboard_control => erpnext/utilities/doctype}/__init__.py (100%) rename {utilities/doctype/address => erpnext/utilities/doctype/activity_dashboard_control}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/activity_dashboard_control/activity_dashboard_control.py (100%) rename {utilities => erpnext/utilities}/doctype/activity_dashboard_control/activity_dashboard_control.txt (100%) rename {utilities/doctype/bulk_rename_tool => erpnext/utilities/doctype/address}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/address/address.js (100%) rename {utilities => erpnext/utilities}/doctype/address/address.py (100%) rename {utilities => erpnext/utilities}/doctype/address/address.txt (100%) rename {utilities/doctype/contact => erpnext/utilities/doctype/bulk_rename_tool}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/bulk_rename_tool/bulk_rename_tool.py (100%) rename {utilities => erpnext/utilities}/doctype/bulk_rename_tool/bulk_rename_tool.txt (100%) rename {utilities/doctype/contact_detail => erpnext/utilities/doctype/contact}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/contact/contact.js (100%) rename {utilities => erpnext/utilities}/doctype/contact/contact.py (100%) rename {utilities => erpnext/utilities}/doctype/contact/contact.txt (100%) rename {utilities/doctype/doctype_label => erpnext/utilities/doctype/contact_detail}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/contact_detail/contact_detail.txt (100%) rename {utilities/doctype/doctype_property_setter => erpnext/utilities/doctype/doctype_label}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/doctype_label/doctype_label.txt (100%) rename {utilities/doctype/file_browser_control => erpnext/utilities/doctype/doctype_property_setter}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/doctype_property_setter/doctype_property_setter.py (100%) rename {utilities => erpnext/utilities}/doctype/doctype_property_setter/doctype_property_setter.txt (100%) rename {utilities/doctype/gl_mapper => erpnext/utilities/doctype/file_browser_control}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/file_browser_control/file_browser_control.py (100%) rename {utilities => erpnext/utilities}/doctype/file_browser_control/file_browser_control.txt (100%) rename {utilities/doctype/gl_mapper_detail => erpnext/utilities/doctype/gl_mapper}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/gl_mapper/gl_mapper.txt (100%) rename {utilities/doctype/menu_control => erpnext/utilities/doctype/gl_mapper_detail}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/gl_mapper_detail/gl_mapper_detail.txt (100%) rename {utilities/doctype/patch_util => erpnext/utilities/doctype/menu_control}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/menu_control/menu_control.js (100%) rename {utilities => erpnext/utilities}/doctype/menu_control/menu_control.py (100%) rename {utilities => erpnext/utilities}/doctype/menu_control/menu_control.txt (100%) rename {utilities/doctype/production_tips_common => erpnext/utilities/doctype/patch_util}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/patch_util/patch_util.py (100%) rename {utilities => erpnext/utilities}/doctype/patch_util/patch_util.txt (100%) rename {utilities/doctype/profile_control => erpnext/utilities/doctype/production_tips_common}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/production_tips_common/production_tips_common.js (100%) rename {utilities => erpnext/utilities}/doctype/production_tips_common/production_tips_common.txt (100%) rename {utilities/doctype/receiver_detail => erpnext/utilities/doctype/profile_control}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/profile_control/profile_control.py (100%) rename {utilities => erpnext/utilities}/doctype/profile_control/profile_control.txt (100%) rename {utilities/doctype/rename_tool => erpnext/utilities/doctype/receiver_detail}/__init__.py (100%) mode change 100755 => 100644 rename {utilities => erpnext/utilities}/doctype/receiver_detail/receiver_detail.txt (100%) rename {utilities/doctype/reposting_tool => erpnext/utilities/doctype/rename_tool}/__init__.py (100%) mode change 100644 => 100755 rename {utilities => erpnext/utilities}/doctype/rename_tool/rename_tool.js (100%) rename {utilities => erpnext/utilities}/doctype/rename_tool/rename_tool.py (100%) rename {utilities => erpnext/utilities}/doctype/rename_tool/rename_tool.txt (100%) rename {utilities/doctype/sms_center => erpnext/utilities/doctype/reposting_tool}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/reposting_tool/reposting_tool.js (100%) rename {utilities => erpnext/utilities}/doctype/reposting_tool/reposting_tool.py (100%) rename {utilities => erpnext/utilities}/doctype/reposting_tool/reposting_tool.txt (100%) rename {utilities/doctype/sms_control => erpnext/utilities/doctype/sms_center}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/sms_center/sms_center.js (100%) rename {utilities => erpnext/utilities}/doctype/sms_center/sms_center.py (100%) rename {utilities => erpnext/utilities}/doctype/sms_center/sms_center.txt (100%) rename {utilities/doctype/sms_log => erpnext/utilities/doctype/sms_control}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/sms_control/sms_control.js (100%) rename {utilities => erpnext/utilities}/doctype/sms_control/sms_control.py (100%) rename {utilities => erpnext/utilities}/doctype/sms_control/sms_control.txt (100%) rename {utilities/doctype/sso_control => erpnext/utilities/doctype/sms_log}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/sms_log/sms_log.txt (100%) rename {utilities/doctype/todo_item => erpnext/utilities/doctype/sso_control}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/sso_control/sso_control.py (100%) rename {utilities => erpnext/utilities}/doctype/sso_control/sso_control.txt (100%) rename {utilities/doctype/trash_control => erpnext/utilities/doctype/todo_item}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/todo_item/todo_item.txt (100%) rename {utilities/doctype/wn_erp_client_control => erpnext/utilities/doctype/trash_control}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/trash_control/trash_control.py (100%) rename {utilities => erpnext/utilities}/doctype/trash_control/trash_control.txt (100%) rename {utilities/page => erpnext/utilities/doctype/wn_erp_client_control}/__init__.py (100%) rename {utilities => erpnext/utilities}/doctype/wn_erp_client_control/wn_erp_client_control.py (100%) rename {utilities => erpnext/utilities}/doctype/wn_erp_client_control/wn_erp_client_control.txt (100%) rename {utilities/page/file_browser => erpnext/utilities/page}/__init__.py (100%) rename {utilities/page/messages => erpnext/utilities/page/file_browser}/__init__.py (100%) rename {utilities => erpnext/utilities}/page/file_browser/file_browser.html (100%) rename {utilities => erpnext/utilities}/page/file_browser/file_browser.js (100%) rename {utilities => erpnext/utilities}/page/file_browser/file_browser.txt (100%) rename {utilities/page/trash => erpnext/utilities/page/messages}/__init__.py (100%) rename {utilities => erpnext/utilities}/page/messages/messages.html (100%) rename {utilities => erpnext/utilities}/page/messages/messages.js (100%) rename {utilities => erpnext/utilities}/page/messages/messages.txt (100%) rename {utilities => erpnext/utilities}/page/messages/messages_static.html (100%) rename {utilities/page/wip_monitor => erpnext/utilities/page/trash}/__init__.py (100%) rename {utilities => erpnext/utilities}/page/trash/trash.html (100%) rename {utilities => erpnext/utilities}/page/trash/trash.js (100%) rename {utilities => erpnext/utilities}/page/trash/trash.txt (100%) create mode 100644 erpnext/utilities/page/wip_monitor/__init__.py rename {utilities => erpnext/utilities}/page/wip_monitor/wip_monitor.html (100%) rename {utilities => erpnext/utilities}/page/wip_monitor/wip_monitor.js (100%) rename {utilities => erpnext/utilities}/page/wip_monitor/wip_monitor.txt (100%) rename {utilities => erpnext/utilities}/transaction_base.py (100%) create mode 100755 handler.cgi create mode 100644 index.html create mode 100644 js/app.js create mode 100644 templates/index.html diff --git a/.gitignore b/.gitignore index 56149a0d5d3..6c58384a823 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ .DS_Store server_tools patch.log +lib diff --git a/config/_timestamps.js b/config/_timestamps.js new file mode 100644 index 00000000000..47d59a3fa31 --- /dev/null +++ b/config/_timestamps.js @@ -0,0 +1 @@ +{"lib/py/webnotes/profile.py": "1313994313", "lib/js/legacy/widgets/autosuggest.js": "1315219413", "lib/js/lib/superfish/images/shadow.png": "1215861254", "lib/css/legacy/calendar.css": "1311752687", "lib/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png": "1311752687", "lib/py/webnotes/utils/jslib/jstimestamp.py": "1313468805", "lib/js/legacy/widgets/list_selector.js": "1311752688", "lib/py/webnotes/install_lib/__init__.py": "1311752687", "js/app.js": "1315226253", "lib/js/legacy/wn/widgets/doc_column_view.js": "1311752688", "lib/js/legacy/utils/rsh.compressed.js": "1311752688", "lib/css/legacy/doc_column_view.css": "1311752687", "lib/py/webnotes/install_lib/db_init.py": "1311752687", "lib/py/webnotes/widgets/follow.py": "1311752687", "lib/py/webnotes/utils/backups.py": "1315203426", "lib/js/legacy/widgets/form/fields.js": "1311752688", "lib/js/legacy/widgets/export_query.js": "1311752688", "lib/css/legacy/default.css": "1315222973", "lib/js/lib/history/history.adapter.jquery.js": "1310718903", "lib/js/lib/superfish/css/superfish-vertical.css": "1215403280", "lib/js/legacy/user.js": "1311752688", "lib/css/legacy/jquery-ui.css": "1311752687", "lib/js/wn/xmlhttp.js": "1313753523", "lib/js/legacy/webpage/loaders.js": "1311752688", "lib/css/legacy/images/ui-icons_454545_256x240.png": "1311752687", "lib/py/webnotes/model/db_schema.py": "1313994313", "lib/py/webnotes/defs_template.py": "1312433457", "lib/css/legacy/user.css": "1311752687", "lib/js/legacy/widgets/form/form_container.js": "1311752688", "lib/conf/apache.conf": "1313640120", "lib/py/webnotes/model/doctype.py": "1313475893", "lib/py/webnotes/tests/__init__.py": "1312259967", "lib/js/legacy/webpage/page_header.js": "1311752688", "lib/css/legacy/report.css": "1311752687", "lib/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png": "1311752687", "lib/js/legacy/utils/browser_detect.js": "1311752688", "lib/js/legacy/globals.js": "1315225828", "lib/py/webnotes/model/code.py": "1312259967", "lib/README.md": "1314358927", "lib/css/skeleton.css": "1313603562", "lib/js/legacy/wn/widgets/filters.js": "1311752688", "lib/py/webnotes/widgets/query_builder.py": "1315203426", "lib/py/build/timestamps.py": "1315222071", "lib/py/webnotes/utils/email_lib/form_email.py": "1311752687", "lib/py/webnotes/utils/sitemap.py": "1311752687", "lib/py/webnotes/utils/__init__.py": "1315203426", "lib/css/legacy/wntoolbar.css": "1311752687", "lib/py/webnotes/tests/modules.py": "1312259967", "lib/css/legacy/images/ui-icons_2e83ff_256x240.png": "1311752687", "lib/py/build/bundle.py": "1315223128", "lib/js/legacy/widgets/select.js": "1311752688", "lib/py/webnotes/utils/webservice.py": "1311752687", "lib/py/webnotes/widgets/__init__.py": "1311752687", "lib/js/legacy/utils/datatype.js": "1311752688", "lib/js/legacy/webpage/history.js": "1311752688", "lib/conf/Framework.sql": "1311752687", "lib/css/legacy/jqplot.css": "1313994339", "lib/py/webnotes/utils/email_lib/__init__.py": "1311752687", "lib/conf/conf.py": "1314099127", "lib/js/wn/history.js": "1313759392", "lib/py/webnotes/utils/email_lib/send.py": "1311752687", "lib/js/legacy/webpage/uploader.js": "1313057744", "lib/js/legacy/utils/handler.js": "1315227079", "lib/py/webnotes/utils/file_manager.py": "1313060641", "lib/js/legacy/wn/widgets/listing.js": "1311752688", "lib/py/webnotes/widgets/page_body.py": "1311752687", "lib/js/legacy/jquery/jquery.jqplot.min.js": "1313994339", "lib/js/legacy/wnf.compressed.js": "1315227202", "lib/css/layout.css": "1313603562", "lib/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png": "1311752687", "lib/js/legacy/widgets/layout.js": "1311752688", "lib/py/webnotes/session_cache.py": "1312259967", "lib/js/legacy/widgets/form/form_grid.js": "1315203426", "lib/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png": "1311752687", "lib/js/legacy/utils/msgprint.js": "1311752688", "lib/js/legacy/webpage/page.js": "1315203426", "lib/py/webnotes/model/utils.py": "1315203426", "lib/js/lib/superfish/images/arrows-ffffff.png": "1215426588", "lib/js/legacy/wn/widgets/page_sidebar.js": "1311752688", "lib/js/legacy/model/doclist.js": "1311752688", "lib/js/lib/history/history.html4.js": "1310718903", "lib/js/core.min.js": "1315225602", "lib/css/legacy/listing.css": "1311752687", "lib/py/watch.py": "1314101731", "lib/py/webnotes/widgets/search.py": "1315203426", "lib/js/legacy/webpage/spinner.js": "1311752688", "lib/js/legacy/widgets/listing.js": "1311752688", "lib/py/webnotes/model/sql_sync.py": "1311752687", "lib/js/legacy/build.json": "1315211061", "lib/js/legacy/widgets/tags.js": "1311752688", "lib/js/legacy/utils/printElement.js": "1311752688", "templates/index.html": "1315223202", "lib/py/webnotes/model/doc.py": "1312259967", "lib/css/legacy/bw-icons.css": "1311752687", "lib/js/legacy/webpage/error_console.js": "1311752688", "lib/js/legacy/utils/shortcut.js": "1311752688", "lib/js/legacy/widgets/form/form_fields.js": "1315203426", "lib/conf/_conf.py": "1314099136", "lib/css/legacy/sidebar.css": "1311752687", "lib/py/webnotes/utils/email_lib/html2text.py": "1311752687", "lib/py/webnotes/utils/archive.py": "1311752687", "lib/py/.user.py.swp": "1314350551", "lib/js/legacy/widgets/print_query.js": "1311752688", "lib/js/legacy/widgets/form/form_comments.js": "1311752688", "lib/py/webnotes/auth.py": "1315203426", "lib/py/webnotes/utils/transfer.py": "1312259967", "lib/py/webnotes/install_lib/install.py": "1313994313", "lib/py/build/__init__.py": "1315223094", "lib/js/legacy/wn/widgets/dialog.js": "1311752688", "lib/css/legacy/images/ui-icons_cd0a0a_256x240.png": "1311752687", "lib/js/legacy/wn/widgets/form/comments.js": "1311752688", "config/conf.py": "1315213903", "lib/js/core.js": "1314786336", "lib/js/legacy/utils/datetime.js": "1311752688", "lib/py/webnotes/model/doclist.py": "1315203426", "lib/py/webnotes/widgets/form.py": "1313468805", "lib/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png": "1311752687", "handler.cgi": "1315226068", "lib/js/legacy/widgets/report_builder/report_builder.js": "1315203426", "lib/py/webnotes/tests.py": "1311752687", "lib/py/webnotes/utils/encrypt.py": "1311752687", "lib/js/legacy/wn/page_layout.js": "1311752688", "lib/js/legacy/widgets/dialog.js": "1311752688", "lib/py/webnotes/multi_tenant/setup.py": "1311752687", "lib/js/lib/superfish/superfish.min.js": "1315222973", "lib/js/legacy/widgets/report_builder/datatable.js": "1311752688", "lib/js/legacy/model/local_data.js": "1311752688", "lib/css/legacy/tabs.css": "1311752687", "lib/py/webnotes/widgets/auto_master.py": "1311752687", "favicon.ico": "1311586929", "lib/js/wn/assets.js": "1315225379", "lib/css/base.css": "1314774281", "lib/py/webnotes/modules/export_module.py": "1312259967", "lib/py/webnotes/modules/patch.py": "1315228273", "lib/py/webnotes/utils/cache.py": "1311752687", "lib/py/webnotes/utils/jslib/jsnamespace.py": "1313468805", "lib/py/webnotes/handler.py": "1313994313", "lib/js/legacy/widgets/form/form_header.js": "1311752688", "lib/py/__init__.py": "1313570887", "README": "1310447332", "lib/py/webnotes/model/triggers.py": "1311752687", "lib/images/icons/gh-icons.png": "1304444400", "lib/js/legacy/wn/widgets/form/attachments.js": "1313060641", "lib/css/legacy/build.json": "1315211094", "lib/js/legacy/widgets/form/clientscriptAPI.js": "1313994313", "lib/py/webnotes/model/__init__.py": "1315203426", "lib/js/legacy/webpage/freeze_page.js": "1311752688", "config/_timestamps.js": "1315228321", "lib/py/webnotes/widgets/menus.py": "1311752687", "lib/js/legacy/form.compressed.js": "1315222973", "lib/js/lib/superfish/make_superfish.js": "1313759992", "lib/js/wn/dom.js": "1315225600", "lib/js/legacy/widgets/form/attachments.js": "1315219428", "lib/py/webnotes/db.py": "1315203426", "lib/py/webnotes/utils/nestedset.py": "1313475893", "lib/css/legacy/images/ui-icons_888888_256x240.png": "1311752687", "lib/py/.common.py.swp": "1314349963", "erpnext_version.py": "1315208679", "master.sql.gz": "1315208679", "lib/css/legacy/forms.css": "1311752687", "lib/js/legacy/wn/widgets/footer.js": "1311752688", "lib/js/lib/superfish/hoverIntent.js": "1201705878", "index.html": "1315228321", "lib/js/legacy/widgets/form/grid.js": "1315203426", "lib/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png": "1311752687", "lib/js/legacy/widgets/tree.js": "1311752688", "lib/__init__.py": "1314099524", "lib/js/legacy/widgets/menu.js": "1311752688", "lib/py/common.py": "1314349955", "lib/conf/__init__.py": "1313737596", "lib/js/legacy/widgets/report_builder/bargraph.js": "1311752688", "lib/js/legacy/wn/widgets/follow.js": "1311752688", "lib/js/legacy/widgets/calendar.js": "1311752688", "lib/js/legacy/widgets/form/print_format.js": "1311752688", "lib/css/legacy/messages.css": "1311752687", "lib/js/wn/provide.js": "1315222568", "lib/py/webnotes/widgets/tags.py": "1315203426", "lib/js/legacy/wn/widgets/form/sidebar.js": "1311752688", "lib/py/build/nav.py": "1315218444", "lib/js/lib/history/history.min.js": "1315221478", "lib/py/webnotes/modules/__init__.py": "1315228230", "lib/py/webnotes/widgets/todo.py": "1311752687", "lib/js/wn/page.js": "1314106765", "lib/js/legacy/app.js": "1315227200", "lib/py/tests.py": "1313132642", "lib/js/legacy/widgets/form/form.js": "1315203426", "lib/py/webnotes/modules/module_manager.py": "1312259967", "INSTALL": "1310447332", "lib/js/lib/json2.js": "1313659690", "lib/js/legacy/utils/dom.js": "1315225726", "lib/js/legacy/webpage/search.js": "1315203426", "lib/js/legacy/widgets/tabbedpage.js": "1311752688", "lib/py/webnotes/modules/utils.py": "1312259967", "lib/js/legacy/wn/modules.js": "1311752688", "lib/py/webnotes/utils/email_lib/receive.py": "1315203426", "lib/js/legacy/webpage/about.js": "1311752688", "lib/py/webnotes/utils/jslib/jsdependency.py": "1313468805", "lib/css/legacy/grid.css": "1311752687", "lib/py/webnotes/widgets/page.py": "1314701195", "lib/css/legacy/autosuggest.css": "1311752687", "lib/py/webnotes/utils/jslib/jsmin.py": "1313468805", "lib/py/webnotes/model/modules.py": "1311752687", "lib/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png": "1311752687", "lib/py/build/project.py": "1315219863", "lib/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png": "1311752687", "lib/js/legacy/jquery/jquery-ui.min.js": "1315220242", "lib/css/legacy/body.css": "1311752687", "lib/py/webnotes/defs.py": "1315227569", "lib/js/legacy/utils/json.js": "1311752688", "lib/py/webnotes/model/import_docs.py": "1313475893", "lib/py/build/__main__.py": "1315217545", "lib/js/legacy/webpage/body.js": "1311752688", "lib/js/build.json": "1315222659", "lib/js/legacy/webpage/wntoolbar.js": "1313994313", "lib/js/legacy/webpage/docbrowser.js": "1311752688", "lib/py/build/markdown2_extn.py": "1315217098", "lib/py/build/minify.py": "1313583868", "lib/css/legacy/images/ui-icons_222222_256x240.png": "1311752687", "lib/js/legacy/report.compressed.js": "1315222973", "module-icons.png": "1310447333", "lib/py/webnotes/__init__.py": "1315203426", "lib/py/webnotes/utils/scheduler.py": "1315203442", "lib/js/legacy/widgets/form/email.js": "1311752688", "lib/py/webnotes/widgets/event.py": "1311752687", "lib/css/legacy/menus.css": "1311752687", "lib/js/lib/superfish/css/superfish.css": "1313760672", "lib/py/webnotes/multi_tenant/__init__.py": "1311752687", "lib/js/lib/jquery.min.js": "1313062880", "lib/js/lib/history/history.js": "1310718903", "lib/py/webnotes/multi_tenant/query_parser.py": "1311752687", "lib/js/wn/require.js": "1313755415", "lib/css/legacy/dialog.css": "1311752687", "lib/js/lib/superfish/superfish.js": "1221094330", "lib/js/legacy/widgets/report_builder/calculator.js": "1315219438", "lib/py/webnotes/model/meta.py": "1311752687"} \ No newline at end of file diff --git a/config/conf.py b/config/conf.py new file mode 100644 index 00000000000..1cf35e21cb8 --- /dev/null +++ b/config/conf.py @@ -0,0 +1,7 @@ +index_path = '/' + +include_paths = [ + 'erpnext', + 'lib/py', + 'lib/py/legacy' +] \ No newline at end of file diff --git a/accounts/__init__.py b/erpnext/.no_timestamps similarity index 100% rename from accounts/__init__.py rename to erpnext/.no_timestamps diff --git a/accounts/DocType Label/Payable Voucher/Payable Voucher.txt b/erpnext/accounts/DocType Label/Payable Voucher/Payable Voucher.txt similarity index 100% rename from accounts/DocType Label/Payable Voucher/Payable Voucher.txt rename to erpnext/accounts/DocType Label/Payable Voucher/Payable Voucher.txt diff --git a/accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt b/erpnext/accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt similarity index 100% rename from accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt rename to erpnext/accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt diff --git a/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt similarity index 100% rename from accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt rename to erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt diff --git a/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt similarity index 100% rename from accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt rename to erpnext/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt diff --git a/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt b/erpnext/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt similarity index 100% rename from accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt rename to erpnext/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt diff --git a/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt b/erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt similarity index 100% rename from accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt rename to erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt diff --git a/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt similarity index 100% rename from accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt rename to erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt diff --git a/accounts/GL Mapper/Journal Voucher/Journal Voucher.txt b/erpnext/accounts/GL Mapper/Journal Voucher/Journal Voucher.txt similarity index 100% rename from accounts/GL Mapper/Journal Voucher/Journal Voucher.txt rename to erpnext/accounts/GL Mapper/Journal Voucher/Journal Voucher.txt diff --git a/accounts/GL Mapper/POS with write off/POS with write off.txt b/erpnext/accounts/GL Mapper/POS with write off/POS with write off.txt similarity index 100% rename from accounts/GL Mapper/POS with write off/POS with write off.txt rename to erpnext/accounts/GL Mapper/POS with write off/POS with write off.txt diff --git a/accounts/GL Mapper/POS/POS.txt b/erpnext/accounts/GL Mapper/POS/POS.txt similarity index 100% rename from accounts/GL Mapper/POS/POS.txt rename to erpnext/accounts/GL Mapper/POS/POS.txt diff --git a/accounts/GL Mapper/Payable Voucher/Payable Voucher.txt b/erpnext/accounts/GL Mapper/Payable Voucher/Payable Voucher.txt similarity index 100% rename from accounts/GL Mapper/Payable Voucher/Payable Voucher.txt rename to erpnext/accounts/GL Mapper/Payable Voucher/Payable Voucher.txt diff --git a/accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt b/erpnext/accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt similarity index 100% rename from accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt rename to erpnext/accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt diff --git a/accounts/Module Def/Accounts/Accounts.txt b/erpnext/accounts/Module Def/Accounts/Accounts.txt similarity index 100% rename from accounts/Module Def/Accounts/Accounts.txt rename to erpnext/accounts/Module Def/Accounts/Accounts.txt diff --git a/accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt b/erpnext/accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt similarity index 100% rename from accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt rename to erpnext/accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt diff --git a/accounts/Print Format/Form 16A Print Format/Form 16A Print Format.txt b/erpnext/accounts/Print Format/Form 16A Print Format/Form 16A Print Format.txt similarity index 100% rename from accounts/Print Format/Form 16A Print Format/Form 16A Print Format.txt rename to erpnext/accounts/Print Format/Form 16A Print Format/Form 16A Print Format.txt diff --git a/accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt b/erpnext/accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt similarity index 100% rename from accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt rename to erpnext/accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt diff --git a/accounts/Role/Accounts Manager/Accounts Manager.txt b/erpnext/accounts/Role/Accounts Manager/Accounts Manager.txt similarity index 100% rename from accounts/Role/Accounts Manager/Accounts Manager.txt rename to erpnext/accounts/Role/Accounts Manager/Accounts Manager.txt diff --git a/accounts/Role/Accounts User/Accounts User.txt b/erpnext/accounts/Role/Accounts User/Accounts User.txt similarity index 100% rename from accounts/Role/Accounts User/Accounts User.txt rename to erpnext/accounts/Role/Accounts User/Accounts User.txt diff --git a/accounts/TDS Rate Chart/Rate chart (01-07-2010)/Rate chart (01-07-2010).txt b/erpnext/accounts/TDS Rate Chart/Rate chart (01-07-2010)/Rate chart (01-07-2010).txt similarity index 100% rename from accounts/TDS Rate Chart/Rate chart (01-07-2010)/Rate chart (01-07-2010).txt rename to erpnext/accounts/TDS Rate Chart/Rate chart (01-07-2010)/Rate chart (01-07-2010).txt diff --git a/accounts/TDS Rate Chart/TDS Rate Chart October 2009 Onwards/TDS Rate Chart October 2009 Onwards.txt b/erpnext/accounts/TDS Rate Chart/TDS Rate Chart October 2009 Onwards/TDS Rate Chart October 2009 Onwards.txt similarity index 100% rename from accounts/TDS Rate Chart/TDS Rate Chart October 2009 Onwards/TDS Rate Chart October 2009 Onwards.txt rename to erpnext/accounts/TDS Rate Chart/TDS Rate Chart October 2009 Onwards/TDS Rate Chart October 2009 Onwards.txt diff --git a/accounts/TDS Rate Chart/TDS Rate Chart for 2009-10/TDS Rate Chart for 2009-10.txt b/erpnext/accounts/TDS Rate Chart/TDS Rate Chart for 2009-10/TDS Rate Chart for 2009-10.txt similarity index 100% rename from accounts/TDS Rate Chart/TDS Rate Chart for 2009-10/TDS Rate Chart for 2009-10.txt rename to erpnext/accounts/TDS Rate Chart/TDS Rate Chart for 2009-10/TDS Rate Chart for 2009-10.txt diff --git a/accounts/doctype/__init__.py b/erpnext/accounts/__init__.py similarity index 100% rename from accounts/doctype/__init__.py rename to erpnext/accounts/__init__.py diff --git a/accounts/doctype/account/__init__.py b/erpnext/accounts/doctype/__init__.py similarity index 100% rename from accounts/doctype/account/__init__.py rename to erpnext/accounts/doctype/__init__.py diff --git a/accounts/doctype/account_balance/__init__.py b/erpnext/accounts/doctype/account/__init__.py similarity index 100% rename from accounts/doctype/account_balance/__init__.py rename to erpnext/accounts/doctype/account/__init__.py diff --git a/accounts/doctype/account/account.js b/erpnext/accounts/doctype/account/account.js similarity index 100% rename from accounts/doctype/account/account.js rename to erpnext/accounts/doctype/account/account.js diff --git a/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py similarity index 100% rename from accounts/doctype/account/account.py rename to erpnext/accounts/doctype/account/account.py diff --git a/accounts/doctype/account/account.txt b/erpnext/accounts/doctype/account/account.txt similarity index 100% rename from accounts/doctype/account/account.txt rename to erpnext/accounts/doctype/account/account.txt diff --git a/accounts/doctype/advance_adjustment_detail/__init__.py b/erpnext/accounts/doctype/account_balance/__init__.py similarity index 100% rename from accounts/doctype/advance_adjustment_detail/__init__.py rename to erpnext/accounts/doctype/account_balance/__init__.py diff --git a/accounts/doctype/account_balance/account_balance.txt b/erpnext/accounts/doctype/account_balance/account_balance.txt similarity index 100% rename from accounts/doctype/account_balance/account_balance.txt rename to erpnext/accounts/doctype/account_balance/account_balance.txt diff --git a/accounts/doctype/advance_allocation_detail/__init__.py b/erpnext/accounts/doctype/advance_adjustment_detail/__init__.py similarity index 100% rename from accounts/doctype/advance_allocation_detail/__init__.py rename to erpnext/accounts/doctype/advance_adjustment_detail/__init__.py diff --git a/accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt b/erpnext/accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt similarity index 100% rename from accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt rename to erpnext/accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt diff --git a/accounts/doctype/bank_reconciliation/__init__.py b/erpnext/accounts/doctype/advance_allocation_detail/__init__.py similarity index 100% rename from accounts/doctype/bank_reconciliation/__init__.py rename to erpnext/accounts/doctype/advance_allocation_detail/__init__.py diff --git a/accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt b/erpnext/accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt similarity index 100% rename from accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt rename to erpnext/accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt diff --git a/accounts/doctype/bank_reconciliation_detail/__init__.py b/erpnext/accounts/doctype/bank_reconciliation/__init__.py similarity index 100% rename from accounts/doctype/bank_reconciliation_detail/__init__.py rename to erpnext/accounts/doctype/bank_reconciliation/__init__.py diff --git a/accounts/doctype/bank_reconciliation/bank_reconciliation.js b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js similarity index 100% rename from accounts/doctype/bank_reconciliation/bank_reconciliation.js rename to erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js diff --git a/accounts/doctype/bank_reconciliation/bank_reconciliation.py b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py similarity index 100% rename from accounts/doctype/bank_reconciliation/bank_reconciliation.py rename to erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py diff --git a/accounts/doctype/bank_reconciliation/bank_reconciliation.txt b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.txt similarity index 100% rename from accounts/doctype/bank_reconciliation/bank_reconciliation.txt rename to erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.txt diff --git a/accounts/doctype/budget_control/__init__.py b/erpnext/accounts/doctype/bank_reconciliation_detail/__init__.py similarity index 100% rename from accounts/doctype/budget_control/__init__.py rename to erpnext/accounts/doctype/bank_reconciliation_detail/__init__.py diff --git a/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt b/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt similarity index 100% rename from accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt rename to erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt diff --git a/accounts/doctype/budget_detail/__init__.py b/erpnext/accounts/doctype/budget_control/__init__.py similarity index 100% rename from accounts/doctype/budget_detail/__init__.py rename to erpnext/accounts/doctype/budget_control/__init__.py diff --git a/accounts/doctype/budget_control/budget_control.js b/erpnext/accounts/doctype/budget_control/budget_control.js similarity index 100% rename from accounts/doctype/budget_control/budget_control.js rename to erpnext/accounts/doctype/budget_control/budget_control.js diff --git a/accounts/doctype/budget_control/budget_control.py b/erpnext/accounts/doctype/budget_control/budget_control.py similarity index 100% rename from accounts/doctype/budget_control/budget_control.py rename to erpnext/accounts/doctype/budget_control/budget_control.py diff --git a/accounts/doctype/budget_control/budget_control.txt b/erpnext/accounts/doctype/budget_control/budget_control.txt similarity index 100% rename from accounts/doctype/budget_control/budget_control.txt rename to erpnext/accounts/doctype/budget_control/budget_control.txt diff --git a/accounts/doctype/budget_distribution/__init__.py b/erpnext/accounts/doctype/budget_detail/__init__.py similarity index 100% rename from accounts/doctype/budget_distribution/__init__.py rename to erpnext/accounts/doctype/budget_detail/__init__.py diff --git a/accounts/doctype/budget_detail/budget_detail.txt b/erpnext/accounts/doctype/budget_detail/budget_detail.txt similarity index 100% rename from accounts/doctype/budget_detail/budget_detail.txt rename to erpnext/accounts/doctype/budget_detail/budget_detail.txt diff --git a/accounts/doctype/budget_distribution_detail/__init__.py b/erpnext/accounts/doctype/budget_distribution/__init__.py similarity index 100% rename from accounts/doctype/budget_distribution_detail/__init__.py rename to erpnext/accounts/doctype/budget_distribution/__init__.py diff --git a/accounts/doctype/budget_distribution/budget_distribution.js b/erpnext/accounts/doctype/budget_distribution/budget_distribution.js similarity index 100% rename from accounts/doctype/budget_distribution/budget_distribution.js rename to erpnext/accounts/doctype/budget_distribution/budget_distribution.js diff --git a/accounts/doctype/budget_distribution/budget_distribution.py b/erpnext/accounts/doctype/budget_distribution/budget_distribution.py similarity index 100% rename from accounts/doctype/budget_distribution/budget_distribution.py rename to erpnext/accounts/doctype/budget_distribution/budget_distribution.py diff --git a/accounts/doctype/budget_distribution/budget_distribution.txt b/erpnext/accounts/doctype/budget_distribution/budget_distribution.txt similarity index 100% rename from accounts/doctype/budget_distribution/budget_distribution.txt rename to erpnext/accounts/doctype/budget_distribution/budget_distribution.txt diff --git a/accounts/doctype/cost_center/__init__.py b/erpnext/accounts/doctype/budget_distribution_detail/__init__.py similarity index 100% rename from accounts/doctype/cost_center/__init__.py rename to erpnext/accounts/doctype/budget_distribution_detail/__init__.py diff --git a/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt b/erpnext/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt similarity index 100% rename from accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt rename to erpnext/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt diff --git a/accounts/doctype/fiscal_year/__init__.py b/erpnext/accounts/doctype/cost_center/__init__.py similarity index 100% rename from accounts/doctype/fiscal_year/__init__.py rename to erpnext/accounts/doctype/cost_center/__init__.py diff --git a/accounts/doctype/cost_center/cost_center.js b/erpnext/accounts/doctype/cost_center/cost_center.js similarity index 100% rename from accounts/doctype/cost_center/cost_center.js rename to erpnext/accounts/doctype/cost_center/cost_center.js diff --git a/accounts/doctype/cost_center/cost_center.py b/erpnext/accounts/doctype/cost_center/cost_center.py similarity index 100% rename from accounts/doctype/cost_center/cost_center.py rename to erpnext/accounts/doctype/cost_center/cost_center.py diff --git a/accounts/doctype/cost_center/cost_center.txt b/erpnext/accounts/doctype/cost_center/cost_center.txt similarity index 100% rename from accounts/doctype/cost_center/cost_center.txt rename to erpnext/accounts/doctype/cost_center/cost_center.txt diff --git a/accounts/doctype/form_16a/__init__.py b/erpnext/accounts/doctype/fiscal_year/__init__.py similarity index 100% rename from accounts/doctype/form_16a/__init__.py rename to erpnext/accounts/doctype/fiscal_year/__init__.py diff --git a/accounts/doctype/fiscal_year/fiscal_year.py b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py similarity index 100% rename from accounts/doctype/fiscal_year/fiscal_year.py rename to erpnext/accounts/doctype/fiscal_year/fiscal_year.py diff --git a/accounts/doctype/fiscal_year/fiscal_year.txt b/erpnext/accounts/doctype/fiscal_year/fiscal_year.txt similarity index 100% rename from accounts/doctype/fiscal_year/fiscal_year.txt rename to erpnext/accounts/doctype/fiscal_year/fiscal_year.txt diff --git a/accounts/doctype/form_16a_ack_detail/__init__.py b/erpnext/accounts/doctype/form_16a/__init__.py similarity index 100% rename from accounts/doctype/form_16a_ack_detail/__init__.py rename to erpnext/accounts/doctype/form_16a/__init__.py diff --git a/accounts/doctype/form_16a/form_16a.js b/erpnext/accounts/doctype/form_16a/form_16a.js similarity index 100% rename from accounts/doctype/form_16a/form_16a.js rename to erpnext/accounts/doctype/form_16a/form_16a.js diff --git a/accounts/doctype/form_16a/form_16a.py b/erpnext/accounts/doctype/form_16a/form_16a.py similarity index 100% rename from accounts/doctype/form_16a/form_16a.py rename to erpnext/accounts/doctype/form_16a/form_16a.py diff --git a/accounts/doctype/form_16a/form_16a.txt b/erpnext/accounts/doctype/form_16a/form_16a.txt similarity index 100% rename from accounts/doctype/form_16a/form_16a.txt rename to erpnext/accounts/doctype/form_16a/form_16a.txt diff --git a/accounts/doctype/form_16a_tax_detail/__init__.py b/erpnext/accounts/doctype/form_16a_ack_detail/__init__.py similarity index 100% rename from accounts/doctype/form_16a_tax_detail/__init__.py rename to erpnext/accounts/doctype/form_16a_ack_detail/__init__.py diff --git a/accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt b/erpnext/accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt similarity index 100% rename from accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt rename to erpnext/accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt diff --git a/accounts/doctype/gl_control/__init__.py b/erpnext/accounts/doctype/form_16a_tax_detail/__init__.py similarity index 100% rename from accounts/doctype/gl_control/__init__.py rename to erpnext/accounts/doctype/form_16a_tax_detail/__init__.py diff --git a/accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt b/erpnext/accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt similarity index 100% rename from accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt rename to erpnext/accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt diff --git a/accounts/doctype/gl_entry/__init__.py b/erpnext/accounts/doctype/gl_control/__init__.py similarity index 100% rename from accounts/doctype/gl_entry/__init__.py rename to erpnext/accounts/doctype/gl_control/__init__.py diff --git a/accounts/doctype/gl_control/gl_control.js b/erpnext/accounts/doctype/gl_control/gl_control.js similarity index 100% rename from accounts/doctype/gl_control/gl_control.js rename to erpnext/accounts/doctype/gl_control/gl_control.js diff --git a/accounts/doctype/gl_control/gl_control.py b/erpnext/accounts/doctype/gl_control/gl_control.py similarity index 100% rename from accounts/doctype/gl_control/gl_control.py rename to erpnext/accounts/doctype/gl_control/gl_control.py diff --git a/accounts/doctype/gl_control/gl_control.txt b/erpnext/accounts/doctype/gl_control/gl_control.txt similarity index 100% rename from accounts/doctype/gl_control/gl_control.txt rename to erpnext/accounts/doctype/gl_control/gl_control.txt diff --git a/accounts/doctype/journal_voucher/__init__.py b/erpnext/accounts/doctype/gl_entry/__init__.py similarity index 100% rename from accounts/doctype/journal_voucher/__init__.py rename to erpnext/accounts/doctype/gl_entry/__init__.py diff --git a/accounts/doctype/gl_entry/gl_entry.js b/erpnext/accounts/doctype/gl_entry/gl_entry.js similarity index 100% rename from accounts/doctype/gl_entry/gl_entry.js rename to erpnext/accounts/doctype/gl_entry/gl_entry.js diff --git a/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py similarity index 100% rename from accounts/doctype/gl_entry/gl_entry.py rename to erpnext/accounts/doctype/gl_entry/gl_entry.py diff --git a/accounts/doctype/gl_entry/gl_entry.txt b/erpnext/accounts/doctype/gl_entry/gl_entry.txt similarity index 100% rename from accounts/doctype/gl_entry/gl_entry.txt rename to erpnext/accounts/doctype/gl_entry/gl_entry.txt diff --git a/accounts/doctype/journal_voucher_detail/__init__.py b/erpnext/accounts/doctype/journal_voucher/__init__.py similarity index 100% rename from accounts/doctype/journal_voucher_detail/__init__.py rename to erpnext/accounts/doctype/journal_voucher/__init__.py diff --git a/accounts/doctype/journal_voucher/journal_voucher.js b/erpnext/accounts/doctype/journal_voucher/journal_voucher.js similarity index 100% rename from accounts/doctype/journal_voucher/journal_voucher.js rename to erpnext/accounts/doctype/journal_voucher/journal_voucher.js diff --git a/accounts/doctype/journal_voucher/journal_voucher.py b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py similarity index 100% rename from accounts/doctype/journal_voucher/journal_voucher.py rename to erpnext/accounts/doctype/journal_voucher/journal_voucher.py diff --git a/accounts/doctype/journal_voucher/journal_voucher.txt b/erpnext/accounts/doctype/journal_voucher/journal_voucher.txt similarity index 100% rename from accounts/doctype/journal_voucher/journal_voucher.txt rename to erpnext/accounts/doctype/journal_voucher/journal_voucher.txt diff --git a/accounts/doctype/lease_agreement/__init__.py b/erpnext/accounts/doctype/journal_voucher_detail/__init__.py similarity index 100% rename from accounts/doctype/lease_agreement/__init__.py rename to erpnext/accounts/doctype/journal_voucher_detail/__init__.py diff --git a/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt b/erpnext/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt similarity index 100% rename from accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt rename to erpnext/accounts/doctype/journal_voucher_detail/journal_voucher_detail.txt diff --git a/accounts/doctype/lease_installment/__init__.py b/erpnext/accounts/doctype/lease_agreement/__init__.py similarity index 100% rename from accounts/doctype/lease_installment/__init__.py rename to erpnext/accounts/doctype/lease_agreement/__init__.py diff --git a/accounts/doctype/lease_agreement/lease_agreement.js b/erpnext/accounts/doctype/lease_agreement/lease_agreement.js similarity index 100% rename from accounts/doctype/lease_agreement/lease_agreement.js rename to erpnext/accounts/doctype/lease_agreement/lease_agreement.js diff --git a/accounts/doctype/lease_agreement/lease_agreement.py b/erpnext/accounts/doctype/lease_agreement/lease_agreement.py similarity index 100% rename from accounts/doctype/lease_agreement/lease_agreement.py rename to erpnext/accounts/doctype/lease_agreement/lease_agreement.py diff --git a/accounts/doctype/lease_agreement/lease_agreement.txt b/erpnext/accounts/doctype/lease_agreement/lease_agreement.txt similarity index 100% rename from accounts/doctype/lease_agreement/lease_agreement.txt rename to erpnext/accounts/doctype/lease_agreement/lease_agreement.txt diff --git a/accounts/doctype/ledger_balance_export/__init__.py b/erpnext/accounts/doctype/lease_installment/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from accounts/doctype/ledger_balance_export/__init__.py rename to erpnext/accounts/doctype/lease_installment/__init__.py diff --git a/accounts/doctype/lease_installment/lease_installment.txt b/erpnext/accounts/doctype/lease_installment/lease_installment.txt similarity index 100% rename from accounts/doctype/lease_installment/lease_installment.txt rename to erpnext/accounts/doctype/lease_installment/lease_installment.txt diff --git a/accounts/doctype/ledger_detail/__init__.py b/erpnext/accounts/doctype/ledger_balance_export/__init__.py similarity index 100% rename from accounts/doctype/ledger_detail/__init__.py rename to erpnext/accounts/doctype/ledger_balance_export/__init__.py diff --git a/accounts/doctype/ledger_balance_export/ledger_balance_export.js b/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.js similarity index 100% rename from accounts/doctype/ledger_balance_export/ledger_balance_export.js rename to erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.js diff --git a/accounts/doctype/ledger_balance_export/ledger_balance_export.py b/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py similarity index 100% rename from accounts/doctype/ledger_balance_export/ledger_balance_export.py rename to erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py diff --git a/accounts/doctype/ledger_balance_export/ledger_balance_export.txt b/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.txt similarity index 100% rename from accounts/doctype/ledger_balance_export/ledger_balance_export.txt rename to erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.txt diff --git a/accounts/doctype/mode_of_payment/__init__.py b/erpnext/accounts/doctype/ledger_detail/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from accounts/doctype/mode_of_payment/__init__.py rename to erpnext/accounts/doctype/ledger_detail/__init__.py diff --git a/accounts/doctype/ledger_detail/ledger_detail.txt b/erpnext/accounts/doctype/ledger_detail/ledger_detail.txt similarity index 100% rename from accounts/doctype/ledger_detail/ledger_detail.txt rename to erpnext/accounts/doctype/ledger_detail/ledger_detail.txt diff --git a/accounts/doctype/payable_voucher/__init__.py b/erpnext/accounts/doctype/mode_of_payment/__init__.py similarity index 100% rename from accounts/doctype/payable_voucher/__init__.py rename to erpnext/accounts/doctype/mode_of_payment/__init__.py diff --git a/accounts/doctype/mode_of_payment/mode_of_payment.js b/erpnext/accounts/doctype/mode_of_payment/mode_of_payment.js similarity index 100% rename from accounts/doctype/mode_of_payment/mode_of_payment.js rename to erpnext/accounts/doctype/mode_of_payment/mode_of_payment.js diff --git a/accounts/doctype/mode_of_payment/mode_of_payment.txt b/erpnext/accounts/doctype/mode_of_payment/mode_of_payment.txt similarity index 100% rename from accounts/doctype/mode_of_payment/mode_of_payment.txt rename to erpnext/accounts/doctype/mode_of_payment/mode_of_payment.txt diff --git a/accounts/doctype/period_closing_voucher/__init__.py b/erpnext/accounts/doctype/payable_voucher/__init__.py similarity index 100% rename from accounts/doctype/period_closing_voucher/__init__.py rename to erpnext/accounts/doctype/payable_voucher/__init__.py diff --git a/accounts/doctype/payable_voucher/payable_voucher.js b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js similarity index 100% rename from accounts/doctype/payable_voucher/payable_voucher.js rename to erpnext/accounts/doctype/payable_voucher/payable_voucher.js diff --git a/accounts/doctype/payable_voucher/payable_voucher.py b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py similarity index 100% rename from accounts/doctype/payable_voucher/payable_voucher.py rename to erpnext/accounts/doctype/payable_voucher/payable_voucher.py diff --git a/accounts/doctype/payable_voucher/payable_voucher.txt b/erpnext/accounts/doctype/payable_voucher/payable_voucher.txt similarity index 100% rename from accounts/doctype/payable_voucher/payable_voucher.txt rename to erpnext/accounts/doctype/payable_voucher/payable_voucher.txt diff --git a/accounts/doctype/pos_setting/__init__.py b/erpnext/accounts/doctype/period_closing_voucher/__init__.py similarity index 100% rename from accounts/doctype/pos_setting/__init__.py rename to erpnext/accounts/doctype/period_closing_voucher/__init__.py diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.js b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.js similarity index 100% rename from accounts/doctype/period_closing_voucher/period_closing_voucher.js rename to erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.js diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.py b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py similarity index 100% rename from accounts/doctype/period_closing_voucher/period_closing_voucher.py rename to erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.txt b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.txt similarity index 100% rename from accounts/doctype/period_closing_voucher/period_closing_voucher.txt rename to erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.txt diff --git a/accounts/doctype/purchase_tax_detail/__init__.py b/erpnext/accounts/doctype/pos_setting/__init__.py similarity index 100% rename from accounts/doctype/purchase_tax_detail/__init__.py rename to erpnext/accounts/doctype/pos_setting/__init__.py diff --git a/accounts/doctype/pos_setting/pos_setting.js b/erpnext/accounts/doctype/pos_setting/pos_setting.js similarity index 100% rename from accounts/doctype/pos_setting/pos_setting.js rename to erpnext/accounts/doctype/pos_setting/pos_setting.js diff --git a/accounts/doctype/pos_setting/pos_setting.py b/erpnext/accounts/doctype/pos_setting/pos_setting.py similarity index 100% rename from accounts/doctype/pos_setting/pos_setting.py rename to erpnext/accounts/doctype/pos_setting/pos_setting.py diff --git a/accounts/doctype/pos_setting/pos_setting.txt b/erpnext/accounts/doctype/pos_setting/pos_setting.txt similarity index 100% rename from accounts/doctype/pos_setting/pos_setting.txt rename to erpnext/accounts/doctype/pos_setting/pos_setting.txt diff --git a/accounts/doctype/pv_detail/__init__.py b/erpnext/accounts/doctype/purchase_tax_detail/__init__.py similarity index 100% rename from accounts/doctype/pv_detail/__init__.py rename to erpnext/accounts/doctype/purchase_tax_detail/__init__.py diff --git a/accounts/doctype/purchase_tax_detail/purchase_tax_detail.txt b/erpnext/accounts/doctype/purchase_tax_detail/purchase_tax_detail.txt similarity index 100% rename from accounts/doctype/purchase_tax_detail/purchase_tax_detail.txt rename to erpnext/accounts/doctype/purchase_tax_detail/purchase_tax_detail.txt diff --git a/accounts/doctype/receivable_voucher/__init__.py b/erpnext/accounts/doctype/pv_detail/__init__.py similarity index 100% rename from accounts/doctype/receivable_voucher/__init__.py rename to erpnext/accounts/doctype/pv_detail/__init__.py diff --git a/accounts/doctype/pv_detail/pv_detail.txt b/erpnext/accounts/doctype/pv_detail/pv_detail.txt similarity index 100% rename from accounts/doctype/pv_detail/pv_detail.txt rename to erpnext/accounts/doctype/pv_detail/pv_detail.txt diff --git a/accounts/doctype/rv_detail/__init__.py b/erpnext/accounts/doctype/receivable_voucher/__init__.py similarity index 100% rename from accounts/doctype/rv_detail/__init__.py rename to erpnext/accounts/doctype/receivable_voucher/__init__.py diff --git a/accounts/doctype/receivable_voucher/receivable_voucher.js b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js similarity index 100% rename from accounts/doctype/receivable_voucher/receivable_voucher.js rename to erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js diff --git a/accounts/doctype/receivable_voucher/receivable_voucher.py b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py similarity index 100% rename from accounts/doctype/receivable_voucher/receivable_voucher.py rename to erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py diff --git a/accounts/doctype/receivable_voucher/receivable_voucher.txt b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt similarity index 100% rename from accounts/doctype/receivable_voucher/receivable_voucher.txt rename to erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt diff --git a/accounts/doctype/rv_tax_detail/__init__.py b/erpnext/accounts/doctype/rv_detail/__init__.py similarity index 100% rename from accounts/doctype/rv_tax_detail/__init__.py rename to erpnext/accounts/doctype/rv_detail/__init__.py diff --git a/accounts/doctype/rv_detail/rv_detail.txt b/erpnext/accounts/doctype/rv_detail/rv_detail.txt similarity index 100% rename from accounts/doctype/rv_detail/rv_detail.txt rename to erpnext/accounts/doctype/rv_detail/rv_detail.txt diff --git a/accounts/doctype/tds_category/__init__.py b/erpnext/accounts/doctype/rv_tax_detail/__init__.py similarity index 100% rename from accounts/doctype/tds_category/__init__.py rename to erpnext/accounts/doctype/rv_tax_detail/__init__.py diff --git a/accounts/doctype/rv_tax_detail/rv_tax_detail.txt b/erpnext/accounts/doctype/rv_tax_detail/rv_tax_detail.txt similarity index 100% rename from accounts/doctype/rv_tax_detail/rv_tax_detail.txt rename to erpnext/accounts/doctype/rv_tax_detail/rv_tax_detail.txt diff --git a/accounts/doctype/tds_category_account/__init__.py b/erpnext/accounts/doctype/tds_category/__init__.py similarity index 100% rename from accounts/doctype/tds_category_account/__init__.py rename to erpnext/accounts/doctype/tds_category/__init__.py diff --git a/accounts/doctype/tds_category/tds_category.js b/erpnext/accounts/doctype/tds_category/tds_category.js similarity index 100% rename from accounts/doctype/tds_category/tds_category.js rename to erpnext/accounts/doctype/tds_category/tds_category.js diff --git a/accounts/doctype/tds_category/tds_category.py b/erpnext/accounts/doctype/tds_category/tds_category.py similarity index 100% rename from accounts/doctype/tds_category/tds_category.py rename to erpnext/accounts/doctype/tds_category/tds_category.py diff --git a/accounts/doctype/tds_category/tds_category.txt b/erpnext/accounts/doctype/tds_category/tds_category.txt similarity index 100% rename from accounts/doctype/tds_category/tds_category.txt rename to erpnext/accounts/doctype/tds_category/tds_category.txt diff --git a/accounts/doctype/tds_control/__init__.py b/erpnext/accounts/doctype/tds_category_account/__init__.py similarity index 100% rename from accounts/doctype/tds_control/__init__.py rename to erpnext/accounts/doctype/tds_category_account/__init__.py diff --git a/accounts/doctype/tds_category_account/tds_category_account.txt b/erpnext/accounts/doctype/tds_category_account/tds_category_account.txt similarity index 100% rename from accounts/doctype/tds_category_account/tds_category_account.txt rename to erpnext/accounts/doctype/tds_category_account/tds_category_account.txt diff --git a/accounts/doctype/tds_detail/__init__.py b/erpnext/accounts/doctype/tds_control/__init__.py similarity index 100% rename from accounts/doctype/tds_detail/__init__.py rename to erpnext/accounts/doctype/tds_control/__init__.py diff --git a/accounts/doctype/tds_control/tds_control.js b/erpnext/accounts/doctype/tds_control/tds_control.js similarity index 100% rename from accounts/doctype/tds_control/tds_control.js rename to erpnext/accounts/doctype/tds_control/tds_control.js diff --git a/accounts/doctype/tds_control/tds_control.py b/erpnext/accounts/doctype/tds_control/tds_control.py similarity index 100% rename from accounts/doctype/tds_control/tds_control.py rename to erpnext/accounts/doctype/tds_control/tds_control.py diff --git a/accounts/doctype/tds_control/tds_control.txt b/erpnext/accounts/doctype/tds_control/tds_control.txt similarity index 100% rename from accounts/doctype/tds_control/tds_control.txt rename to erpnext/accounts/doctype/tds_control/tds_control.txt diff --git a/accounts/doctype/tds_payment/__init__.py b/erpnext/accounts/doctype/tds_detail/__init__.py similarity index 100% rename from accounts/doctype/tds_payment/__init__.py rename to erpnext/accounts/doctype/tds_detail/__init__.py diff --git a/accounts/doctype/tds_detail/tds_detail.txt b/erpnext/accounts/doctype/tds_detail/tds_detail.txt similarity index 100% rename from accounts/doctype/tds_detail/tds_detail.txt rename to erpnext/accounts/doctype/tds_detail/tds_detail.txt diff --git a/accounts/doctype/tds_payment_detail/__init__.py b/erpnext/accounts/doctype/tds_payment/__init__.py similarity index 100% rename from accounts/doctype/tds_payment_detail/__init__.py rename to erpnext/accounts/doctype/tds_payment/__init__.py diff --git a/accounts/doctype/tds_payment/tds_payment.js b/erpnext/accounts/doctype/tds_payment/tds_payment.js similarity index 100% rename from accounts/doctype/tds_payment/tds_payment.js rename to erpnext/accounts/doctype/tds_payment/tds_payment.js diff --git a/accounts/doctype/tds_payment/tds_payment.py b/erpnext/accounts/doctype/tds_payment/tds_payment.py similarity index 100% rename from accounts/doctype/tds_payment/tds_payment.py rename to erpnext/accounts/doctype/tds_payment/tds_payment.py diff --git a/accounts/doctype/tds_payment/tds_payment.txt b/erpnext/accounts/doctype/tds_payment/tds_payment.txt similarity index 100% rename from accounts/doctype/tds_payment/tds_payment.txt rename to erpnext/accounts/doctype/tds_payment/tds_payment.txt diff --git a/accounts/doctype/tds_rate_chart/__init__.py b/erpnext/accounts/doctype/tds_payment_detail/__init__.py similarity index 100% rename from accounts/doctype/tds_rate_chart/__init__.py rename to erpnext/accounts/doctype/tds_payment_detail/__init__.py diff --git a/accounts/doctype/tds_payment_detail/tds_payment_detail.txt b/erpnext/accounts/doctype/tds_payment_detail/tds_payment_detail.txt similarity index 100% rename from accounts/doctype/tds_payment_detail/tds_payment_detail.txt rename to erpnext/accounts/doctype/tds_payment_detail/tds_payment_detail.txt diff --git a/accounts/doctype/tds_rate_detail/__init__.py b/erpnext/accounts/doctype/tds_rate_chart/__init__.py similarity index 100% rename from accounts/doctype/tds_rate_detail/__init__.py rename to erpnext/accounts/doctype/tds_rate_chart/__init__.py diff --git a/accounts/doctype/tds_rate_chart/tds_rate_chart.txt b/erpnext/accounts/doctype/tds_rate_chart/tds_rate_chart.txt similarity index 100% rename from accounts/doctype/tds_rate_chart/tds_rate_chart.txt rename to erpnext/accounts/doctype/tds_rate_chart/tds_rate_chart.txt diff --git a/accounts/doctype/tds_return_acknowledgement/__init__.py b/erpnext/accounts/doctype/tds_rate_detail/__init__.py similarity index 100% rename from accounts/doctype/tds_return_acknowledgement/__init__.py rename to erpnext/accounts/doctype/tds_rate_detail/__init__.py diff --git a/accounts/doctype/tds_rate_detail/tds_rate_detail.txt b/erpnext/accounts/doctype/tds_rate_detail/tds_rate_detail.txt similarity index 100% rename from accounts/doctype/tds_rate_detail/tds_rate_detail.txt rename to erpnext/accounts/doctype/tds_rate_detail/tds_rate_detail.txt diff --git a/accounts/page/__init__.py b/erpnext/accounts/doctype/tds_return_acknowledgement/__init__.py similarity index 100% rename from accounts/page/__init__.py rename to erpnext/accounts/doctype/tds_return_acknowledgement/__init__.py diff --git a/accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.js b/erpnext/accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.js similarity index 100% rename from accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.js rename to erpnext/accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.js diff --git a/accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.txt b/erpnext/accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.txt similarity index 100% rename from accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.txt rename to erpnext/accounts/doctype/tds_return_acknowledgement/tds_return_acknowledgement.txt diff --git a/accounts/page/accounts_browser/__init__.py b/erpnext/accounts/page/__init__.py similarity index 100% rename from accounts/page/accounts_browser/__init__.py rename to erpnext/accounts/page/__init__.py diff --git a/accounts/page/financial_statements/__init__.py b/erpnext/accounts/page/accounts_browser/__init__.py similarity index 100% rename from accounts/page/financial_statements/__init__.py rename to erpnext/accounts/page/accounts_browser/__init__.py diff --git a/accounts/page/accounts_browser/accounts_browser.css b/erpnext/accounts/page/accounts_browser/accounts_browser.css similarity index 100% rename from accounts/page/accounts_browser/accounts_browser.css rename to erpnext/accounts/page/accounts_browser/accounts_browser.css diff --git a/accounts/page/accounts_browser/accounts_browser.html b/erpnext/accounts/page/accounts_browser/accounts_browser.html similarity index 100% rename from accounts/page/accounts_browser/accounts_browser.html rename to erpnext/accounts/page/accounts_browser/accounts_browser.html diff --git a/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js similarity index 100% rename from accounts/page/accounts_browser/accounts_browser.js rename to erpnext/accounts/page/accounts_browser/accounts_browser.js diff --git a/accounts/page/accounts_browser/accounts_browser.txt b/erpnext/accounts/page/accounts_browser/accounts_browser.txt similarity index 100% rename from accounts/page/accounts_browser/accounts_browser.txt rename to erpnext/accounts/page/accounts_browser/accounts_browser.txt diff --git a/accounts/search_criteria/__init__.py b/erpnext/accounts/page/financial_statements/__init__.py similarity index 100% rename from accounts/search_criteria/__init__.py rename to erpnext/accounts/page/financial_statements/__init__.py diff --git a/accounts/page/financial_statements/financial_statements.html b/erpnext/accounts/page/financial_statements/financial_statements.html similarity index 100% rename from accounts/page/financial_statements/financial_statements.html rename to erpnext/accounts/page/financial_statements/financial_statements.html diff --git a/accounts/page/financial_statements/financial_statements.js b/erpnext/accounts/page/financial_statements/financial_statements.js similarity index 100% rename from accounts/page/financial_statements/financial_statements.js rename to erpnext/accounts/page/financial_statements/financial_statements.js diff --git a/accounts/page/financial_statements/financial_statements.txt b/erpnext/accounts/page/financial_statements/financial_statements.txt similarity index 100% rename from accounts/page/financial_statements/financial_statements.txt rename to erpnext/accounts/page/financial_statements/financial_statements.txt diff --git a/accounts/search_criteria/accounts_payable/__init__.py b/erpnext/accounts/search_criteria/__init__.py similarity index 100% rename from accounts/search_criteria/accounts_payable/__init__.py rename to erpnext/accounts/search_criteria/__init__.py diff --git a/accounts/search_criteria/accounts_receivable/__init__.py b/erpnext/accounts/search_criteria/accounts_payable/__init__.py similarity index 100% rename from accounts/search_criteria/accounts_receivable/__init__.py rename to erpnext/accounts/search_criteria/accounts_payable/__init__.py diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.js b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.js similarity index 100% rename from accounts/search_criteria/accounts_payable/accounts_payable.js rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.js diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.py b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py similarity index 100% rename from accounts/search_criteria/accounts_payable/accounts_payable.py rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.sql b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.sql similarity index 100% rename from accounts/search_criteria/accounts_payable/accounts_payable.sql rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.sql diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.txt b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt similarity index 100% rename from accounts/search_criteria/accounts_payable/accounts_payable.txt rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt diff --git a/accounts/search_criteria/bank_clearance_report/__init__.py b/erpnext/accounts/search_criteria/accounts_receivable/__init__.py similarity index 100% rename from accounts/search_criteria/bank_clearance_report/__init__.py rename to erpnext/accounts/search_criteria/accounts_receivable/__init__.py diff --git a/accounts/search_criteria/accounts_receivable/accounts_receivable.js b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.js similarity index 100% rename from accounts/search_criteria/accounts_receivable/accounts_receivable.js rename to erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.js diff --git a/accounts/search_criteria/accounts_receivable/accounts_receivable.py b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.py similarity index 100% rename from accounts/search_criteria/accounts_receivable/accounts_receivable.py rename to erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.py diff --git a/accounts/search_criteria/accounts_receivable/accounts_receivable.sql b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.sql similarity index 100% rename from accounts/search_criteria/accounts_receivable/accounts_receivable.sql rename to erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.sql diff --git a/accounts/search_criteria/accounts_receivable/accounts_receivable.txt b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt similarity index 100% rename from accounts/search_criteria/accounts_receivable/accounts_receivable.txt rename to erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt diff --git a/accounts/search_criteria/bank_reconciliation_statement/__init__.py b/erpnext/accounts/search_criteria/bank_clearance_report/__init__.py similarity index 100% rename from accounts/search_criteria/bank_reconciliation_statement/__init__.py rename to erpnext/accounts/search_criteria/bank_clearance_report/__init__.py diff --git a/accounts/search_criteria/bank_clearance_report/bank_clearance_report.js b/erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.js similarity index 100% rename from accounts/search_criteria/bank_clearance_report/bank_clearance_report.js rename to erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.js diff --git a/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt b/erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt similarity index 100% rename from accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt rename to erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt diff --git a/accounts/search_criteria/budget_variance_report/__init__.py b/erpnext/accounts/search_criteria/bank_reconciliation_statement/__init__.py similarity index 100% rename from accounts/search_criteria/budget_variance_report/__init__.py rename to erpnext/accounts/search_criteria/bank_reconciliation_statement/__init__.py diff --git a/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.js b/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.js similarity index 100% rename from accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.js rename to erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.js diff --git a/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.py b/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.py similarity index 100% rename from accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.py rename to erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.py diff --git a/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt b/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt similarity index 100% rename from accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt rename to erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt diff --git a/accounts/search_criteria/business_associate_commission_report/__init__.py b/erpnext/accounts/search_criteria/budget_variance_report/__init__.py similarity index 100% rename from accounts/search_criteria/business_associate_commission_report/__init__.py rename to erpnext/accounts/search_criteria/budget_variance_report/__init__.py diff --git a/accounts/search_criteria/budget_variance_report/budget_variance_report.js b/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.js similarity index 100% rename from accounts/search_criteria/budget_variance_report/budget_variance_report.js rename to erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.js diff --git a/accounts/search_criteria/budget_variance_report/budget_variance_report.py b/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.py similarity index 100% rename from accounts/search_criteria/budget_variance_report/budget_variance_report.py rename to erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.py diff --git a/accounts/search_criteria/budget_variance_report/budget_variance_report.sql b/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.sql similarity index 100% rename from accounts/search_criteria/budget_variance_report/budget_variance_report.sql rename to erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.sql diff --git a/accounts/search_criteria/budget_variance_report/budget_variance_report.txt b/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.txt similarity index 100% rename from accounts/search_criteria/budget_variance_report/budget_variance_report.txt rename to erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.txt diff --git a/accounts/search_criteria/cash_flow_statement/__init__.py b/erpnext/accounts/search_criteria/business_associate_commission_report/__init__.py similarity index 100% rename from accounts/search_criteria/cash_flow_statement/__init__.py rename to erpnext/accounts/search_criteria/business_associate_commission_report/__init__.py diff --git a/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.js b/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.js similarity index 100% rename from accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.js rename to erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.js diff --git a/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.py b/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.py similarity index 100% rename from accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.py rename to erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.py diff --git a/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt b/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt similarity index 100% rename from accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt rename to erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt diff --git a/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py b/erpnext/accounts/search_criteria/cash_flow_statement/__init__.py similarity index 100% rename from accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py rename to erpnext/accounts/search_criteria/cash_flow_statement/__init__.py diff --git a/accounts/search_criteria/cash_flow_statement/cash_flow_statement.js b/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.js similarity index 100% rename from accounts/search_criteria/cash_flow_statement/cash_flow_statement.js rename to erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.js diff --git a/accounts/search_criteria/cash_flow_statement/cash_flow_statement.py b/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.py similarity index 100% rename from accounts/search_criteria/cash_flow_statement/cash_flow_statement.py rename to erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.py diff --git a/accounts/search_criteria/cash_flow_statement/cash_flow_statement.sql b/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.sql similarity index 100% rename from accounts/search_criteria/cash_flow_statement/cash_flow_statement.sql rename to erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.sql diff --git a/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt b/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt similarity index 100% rename from accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt rename to erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt diff --git a/accounts/search_criteria/collection_report/__init__.py b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py similarity index 100% rename from accounts/search_criteria/collection_report/__init__.py rename to erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py diff --git a/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js similarity index 100% rename from accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js rename to erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js diff --git a/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py similarity index 100% rename from accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py rename to erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py diff --git a/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql similarity index 100% rename from accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql rename to erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql diff --git a/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt similarity index 100% rename from accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt rename to erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt diff --git a/accounts/search_criteria/cost_center_wise_expense/__init__.py b/erpnext/accounts/search_criteria/collection_report/__init__.py similarity index 100% rename from accounts/search_criteria/cost_center_wise_expense/__init__.py rename to erpnext/accounts/search_criteria/collection_report/__init__.py diff --git a/accounts/search_criteria/collection_report/collection_report.js b/erpnext/accounts/search_criteria/collection_report/collection_report.js similarity index 100% rename from accounts/search_criteria/collection_report/collection_report.js rename to erpnext/accounts/search_criteria/collection_report/collection_report.js diff --git a/accounts/search_criteria/collection_report/collection_report.py b/erpnext/accounts/search_criteria/collection_report/collection_report.py similarity index 100% rename from accounts/search_criteria/collection_report/collection_report.py rename to erpnext/accounts/search_criteria/collection_report/collection_report.py diff --git a/accounts/search_criteria/collection_report/collection_report.sql b/erpnext/accounts/search_criteria/collection_report/collection_report.sql similarity index 100% rename from accounts/search_criteria/collection_report/collection_report.sql rename to erpnext/accounts/search_criteria/collection_report/collection_report.sql diff --git a/accounts/search_criteria/collection_report/collection_report.txt b/erpnext/accounts/search_criteria/collection_report/collection_report.txt similarity index 100% rename from accounts/search_criteria/collection_report/collection_report.txt rename to erpnext/accounts/search_criteria/collection_report/collection_report.txt diff --git a/accounts/search_criteria/creditors_ledger/__init__.py b/erpnext/accounts/search_criteria/cost_center_wise_expense/__init__.py similarity index 100% rename from accounts/search_criteria/creditors_ledger/__init__.py rename to erpnext/accounts/search_criteria/cost_center_wise_expense/__init__.py diff --git a/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.js b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.js similarity index 100% rename from accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.js rename to erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.js diff --git a/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.py b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.py similarity index 100% rename from accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.py rename to erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.py diff --git a/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.sql b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.sql similarity index 100% rename from accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.sql rename to erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.sql diff --git a/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt similarity index 100% rename from accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt rename to erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt diff --git a/accounts/search_criteria/debtors_ledger/__init__.py b/erpnext/accounts/search_criteria/creditors_ledger/__init__.py similarity index 100% rename from accounts/search_criteria/debtors_ledger/__init__.py rename to erpnext/accounts/search_criteria/creditors_ledger/__init__.py diff --git a/accounts/search_criteria/creditors_ledger/creditors_ledger.js b/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.js similarity index 100% rename from accounts/search_criteria/creditors_ledger/creditors_ledger.js rename to erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.js diff --git a/accounts/search_criteria/creditors_ledger/creditors_ledger.py b/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.py similarity index 100% rename from accounts/search_criteria/creditors_ledger/creditors_ledger.py rename to erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.py diff --git a/accounts/search_criteria/creditors_ledger/creditors_ledger.sql b/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.sql similarity index 100% rename from accounts/search_criteria/creditors_ledger/creditors_ledger.sql rename to erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.sql diff --git a/accounts/search_criteria/creditors_ledger/creditors_ledger.txt b/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.txt similarity index 100% rename from accounts/search_criteria/creditors_ledger/creditors_ledger.txt rename to erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.txt diff --git a/accounts/search_criteria/general_ledger/__init__.py b/erpnext/accounts/search_criteria/debtors_ledger/__init__.py similarity index 100% rename from accounts/search_criteria/general_ledger/__init__.py rename to erpnext/accounts/search_criteria/debtors_ledger/__init__.py diff --git a/accounts/search_criteria/debtors_ledger/debtors_ledger.js b/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.js similarity index 100% rename from accounts/search_criteria/debtors_ledger/debtors_ledger.js rename to erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.js diff --git a/accounts/search_criteria/debtors_ledger/debtors_ledger.py b/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.py similarity index 100% rename from accounts/search_criteria/debtors_ledger/debtors_ledger.py rename to erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.py diff --git a/accounts/search_criteria/debtors_ledger/debtors_ledger.sql b/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.sql similarity index 100% rename from accounts/search_criteria/debtors_ledger/debtors_ledger.sql rename to erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.sql diff --git a/accounts/search_criteria/debtors_ledger/debtors_ledger.txt b/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.txt similarity index 100% rename from accounts/search_criteria/debtors_ledger/debtors_ledger.txt rename to erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.txt diff --git a/accounts/search_criteria/itemwise_purchase_register/__init__.py b/erpnext/accounts/search_criteria/general_ledger/__init__.py similarity index 100% rename from accounts/search_criteria/itemwise_purchase_register/__init__.py rename to erpnext/accounts/search_criteria/general_ledger/__init__.py diff --git a/accounts/search_criteria/general_ledger/general_ledger.js b/erpnext/accounts/search_criteria/general_ledger/general_ledger.js similarity index 100% rename from accounts/search_criteria/general_ledger/general_ledger.js rename to erpnext/accounts/search_criteria/general_ledger/general_ledger.js diff --git a/accounts/search_criteria/general_ledger/general_ledger.py b/erpnext/accounts/search_criteria/general_ledger/general_ledger.py similarity index 100% rename from accounts/search_criteria/general_ledger/general_ledger.py rename to erpnext/accounts/search_criteria/general_ledger/general_ledger.py diff --git a/accounts/search_criteria/general_ledger/general_ledger.sql b/erpnext/accounts/search_criteria/general_ledger/general_ledger.sql similarity index 100% rename from accounts/search_criteria/general_ledger/general_ledger.sql rename to erpnext/accounts/search_criteria/general_ledger/general_ledger.sql diff --git a/accounts/search_criteria/general_ledger/general_ledger.txt b/erpnext/accounts/search_criteria/general_ledger/general_ledger.txt similarity index 100% rename from accounts/search_criteria/general_ledger/general_ledger.txt rename to erpnext/accounts/search_criteria/general_ledger/general_ledger.txt diff --git a/accounts/search_criteria/itemwise_sales_register/__init__.py b/erpnext/accounts/search_criteria/itemwise_purchase_register/__init__.py similarity index 100% rename from accounts/search_criteria/itemwise_sales_register/__init__.py rename to erpnext/accounts/search_criteria/itemwise_purchase_register/__init__.py diff --git a/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js b/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js similarity index 100% rename from accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js rename to erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js diff --git a/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt b/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt similarity index 100% rename from accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt rename to erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt diff --git a/accounts/search_criteria/lease_agreement_list/__init__.py b/erpnext/accounts/search_criteria/itemwise_sales_register/__init__.py similarity index 100% rename from accounts/search_criteria/lease_agreement_list/__init__.py rename to erpnext/accounts/search_criteria/itemwise_sales_register/__init__.py diff --git a/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js b/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js similarity index 100% rename from accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js rename to erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js diff --git a/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt b/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt similarity index 100% rename from accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt rename to erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt diff --git a/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py b/erpnext/accounts/search_criteria/lease_agreement_list/__init__.py similarity index 100% rename from accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py rename to erpnext/accounts/search_criteria/lease_agreement_list/__init__.py diff --git a/accounts/search_criteria/lease_agreement_list/lease_agreement_list.js b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.js similarity index 100% rename from accounts/search_criteria/lease_agreement_list/lease_agreement_list.js rename to erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.js diff --git a/accounts/search_criteria/lease_agreement_list/lease_agreement_list.py b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.py similarity index 100% rename from accounts/search_criteria/lease_agreement_list/lease_agreement_list.py rename to erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.py diff --git a/accounts/search_criteria/lease_agreement_list/lease_agreement_list.sql b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.sql similarity index 100% rename from accounts/search_criteria/lease_agreement_list/lease_agreement_list.sql rename to erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.sql diff --git a/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt similarity index 100% rename from accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt rename to erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt diff --git a/accounts/search_criteria/lease_over_due_list/__init__.py b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py similarity index 100% rename from accounts/search_criteria/lease_over_due_list/__init__.py rename to erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py diff --git a/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js similarity index 100% rename from accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js rename to erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js diff --git a/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py similarity index 100% rename from accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py rename to erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py diff --git a/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql similarity index 100% rename from accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql rename to erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql diff --git a/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt similarity index 100% rename from accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt rename to erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt diff --git a/accounts/search_criteria/lease_overdue_age_wise/__init__.py b/erpnext/accounts/search_criteria/lease_over_due_list/__init__.py similarity index 100% rename from accounts/search_criteria/lease_overdue_age_wise/__init__.py rename to erpnext/accounts/search_criteria/lease_over_due_list/__init__.py diff --git a/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js similarity index 100% rename from accounts/search_criteria/lease_over_due_list/lease_over_due_list.js rename to erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js diff --git a/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py similarity index 100% rename from accounts/search_criteria/lease_over_due_list/lease_over_due_list.py rename to erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py diff --git a/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql similarity index 100% rename from accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql rename to erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql diff --git a/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt similarity index 100% rename from accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt rename to erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt diff --git a/accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py b/erpnext/accounts/search_criteria/lease_overdue_age_wise/__init__.py similarity index 100% rename from accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py rename to erpnext/accounts/search_criteria/lease_overdue_age_wise/__init__.py diff --git a/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js similarity index 100% rename from accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js rename to erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js diff --git a/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py similarity index 100% rename from accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py rename to erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py diff --git a/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql similarity index 100% rename from accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql rename to erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql diff --git a/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt similarity index 100% rename from accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt rename to erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt diff --git a/accounts/search_criteria/lease_receipts_client_wise/__init__.py b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py similarity index 100% rename from accounts/search_criteria/lease_receipts_client_wise/__init__.py rename to erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py diff --git a/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js similarity index 100% rename from accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js rename to erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js diff --git a/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py similarity index 100% rename from accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py rename to erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py diff --git a/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql similarity index 100% rename from accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql rename to erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql diff --git a/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt similarity index 100% rename from accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt rename to erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py b/erpnext/accounts/search_criteria/lease_receipts_client_wise/__init__.py similarity index 100% rename from accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py rename to erpnext/accounts/search_criteria/lease_receipts_client_wise/__init__.py diff --git a/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js similarity index 100% rename from accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js rename to erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js diff --git a/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py similarity index 100% rename from accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py rename to erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py diff --git a/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql similarity index 100% rename from accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql rename to erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql diff --git a/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt similarity index 100% rename from accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt rename to erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt diff --git a/accounts/search_criteria/monthly_ledger_summary_report/__init__.py b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py similarity index 100% rename from accounts/search_criteria/monthly_ledger_summary_report/__init__.py rename to erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js similarity index 100% rename from accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js rename to erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py similarity index 100% rename from accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py rename to erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql similarity index 100% rename from accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql rename to erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt similarity index 100% rename from accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt rename to erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt diff --git a/accounts/search_criteria/payment_receipt_report/__init__.py b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/__init__.py similarity index 100% rename from accounts/search_criteria/payment_receipt_report/__init__.py rename to erpnext/accounts/search_criteria/monthly_ledger_summary_report/__init__.py diff --git a/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js similarity index 100% rename from accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js rename to erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js diff --git a/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py similarity index 100% rename from accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py rename to erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py diff --git a/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt similarity index 100% rename from accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt rename to erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt diff --git a/accounts/search_criteria/payment_report/__init__.py b/erpnext/accounts/search_criteria/payment_receipt_report/__init__.py similarity index 100% rename from accounts/search_criteria/payment_report/__init__.py rename to erpnext/accounts/search_criteria/payment_receipt_report/__init__.py diff --git a/accounts/search_criteria/payment_receipt_report/payment_receipt_report.py b/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.py similarity index 100% rename from accounts/search_criteria/payment_receipt_report/payment_receipt_report.py rename to erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.py diff --git a/accounts/search_criteria/payment_receipt_report/payment_receipt_report.sql b/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.sql similarity index 100% rename from accounts/search_criteria/payment_receipt_report/payment_receipt_report.sql rename to erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.sql diff --git a/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt b/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt similarity index 100% rename from accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt rename to erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt diff --git a/accounts/search_criteria/progressive_total_excise_duty/__init__.py b/erpnext/accounts/search_criteria/payment_report/__init__.py similarity index 100% rename from accounts/search_criteria/progressive_total_excise_duty/__init__.py rename to erpnext/accounts/search_criteria/payment_report/__init__.py diff --git a/accounts/search_criteria/payment_report/payment_report.js b/erpnext/accounts/search_criteria/payment_report/payment_report.js similarity index 100% rename from accounts/search_criteria/payment_report/payment_report.js rename to erpnext/accounts/search_criteria/payment_report/payment_report.js diff --git a/accounts/search_criteria/payment_report/payment_report.py b/erpnext/accounts/search_criteria/payment_report/payment_report.py similarity index 100% rename from accounts/search_criteria/payment_report/payment_report.py rename to erpnext/accounts/search_criteria/payment_report/payment_report.py diff --git a/accounts/search_criteria/payment_report/payment_report.sql b/erpnext/accounts/search_criteria/payment_report/payment_report.sql similarity index 100% rename from accounts/search_criteria/payment_report/payment_report.sql rename to erpnext/accounts/search_criteria/payment_report/payment_report.sql diff --git a/accounts/search_criteria/payment_report/payment_report.txt b/erpnext/accounts/search_criteria/payment_report/payment_report.txt similarity index 100% rename from accounts/search_criteria/payment_report/payment_report.txt rename to erpnext/accounts/search_criteria/payment_report/payment_report.txt diff --git a/accounts/search_criteria/purchase_register/__init__.py b/erpnext/accounts/search_criteria/progressive_total_excise_duty/__init__.py similarity index 100% rename from accounts/search_criteria/purchase_register/__init__.py rename to erpnext/accounts/search_criteria/progressive_total_excise_duty/__init__.py diff --git a/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.js b/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.js similarity index 100% rename from accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.js rename to erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.js diff --git a/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.py b/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.py similarity index 100% rename from accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.py rename to erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.py diff --git a/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.sql b/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.sql similarity index 100% rename from accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.sql rename to erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.sql diff --git a/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt b/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt similarity index 100% rename from accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt rename to erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt diff --git a/accounts/search_criteria/sales_register/__init__.py b/erpnext/accounts/search_criteria/purchase_register/__init__.py similarity index 100% rename from accounts/search_criteria/sales_register/__init__.py rename to erpnext/accounts/search_criteria/purchase_register/__init__.py diff --git a/accounts/search_criteria/purchase_register/purchase_register.py b/erpnext/accounts/search_criteria/purchase_register/purchase_register.py similarity index 100% rename from accounts/search_criteria/purchase_register/purchase_register.py rename to erpnext/accounts/search_criteria/purchase_register/purchase_register.py diff --git a/accounts/search_criteria/purchase_register/purchase_register.txt b/erpnext/accounts/search_criteria/purchase_register/purchase_register.txt similarity index 100% rename from accounts/search_criteria/purchase_register/purchase_register.txt rename to erpnext/accounts/search_criteria/purchase_register/purchase_register.txt diff --git a/accounts/search_criteria/service_tax_credit_account___inputs/__init__.py b/erpnext/accounts/search_criteria/sales_register/__init__.py similarity index 100% rename from accounts/search_criteria/service_tax_credit_account___inputs/__init__.py rename to erpnext/accounts/search_criteria/sales_register/__init__.py diff --git a/accounts/search_criteria/sales_register/sales_register.js b/erpnext/accounts/search_criteria/sales_register/sales_register.js similarity index 100% rename from accounts/search_criteria/sales_register/sales_register.js rename to erpnext/accounts/search_criteria/sales_register/sales_register.js diff --git a/accounts/search_criteria/sales_register/sales_register.py b/erpnext/accounts/search_criteria/sales_register/sales_register.py similarity index 100% rename from accounts/search_criteria/sales_register/sales_register.py rename to erpnext/accounts/search_criteria/sales_register/sales_register.py diff --git a/accounts/search_criteria/sales_register/sales_register.txt b/erpnext/accounts/search_criteria/sales_register/sales_register.txt similarity index 100% rename from accounts/search_criteria/sales_register/sales_register.txt rename to erpnext/accounts/search_criteria/sales_register/sales_register.txt diff --git a/accounts/search_criteria/tds_return/__init__.py b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/__init__.py similarity index 100% rename from accounts/search_criteria/tds_return/__init__.py rename to erpnext/accounts/search_criteria/service_tax_credit_account___inputs/__init__.py diff --git a/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.js b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.js similarity index 100% rename from accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.js rename to erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.js diff --git a/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.py b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.py similarity index 100% rename from accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.py rename to erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.py diff --git a/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.sql b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.sql similarity index 100% rename from accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.sql rename to erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.sql diff --git a/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt similarity index 100% rename from accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt rename to erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt diff --git a/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/__init__.py b/erpnext/accounts/search_criteria/tds_return/__init__.py similarity index 100% rename from accounts/search_criteria/total_amout_collection_for_a_period___customerwise/__init__.py rename to erpnext/accounts/search_criteria/tds_return/__init__.py diff --git a/accounts/search_criteria/tds_return/tds_return.js b/erpnext/accounts/search_criteria/tds_return/tds_return.js similarity index 100% rename from accounts/search_criteria/tds_return/tds_return.js rename to erpnext/accounts/search_criteria/tds_return/tds_return.js diff --git a/accounts/search_criteria/tds_return/tds_return.py b/erpnext/accounts/search_criteria/tds_return/tds_return.py similarity index 100% rename from accounts/search_criteria/tds_return/tds_return.py rename to erpnext/accounts/search_criteria/tds_return/tds_return.py diff --git a/accounts/search_criteria/tds_return/tds_return.sql b/erpnext/accounts/search_criteria/tds_return/tds_return.sql similarity index 100% rename from accounts/search_criteria/tds_return/tds_return.sql rename to erpnext/accounts/search_criteria/tds_return/tds_return.sql diff --git a/accounts/search_criteria/tds_return/tds_return.txt b/erpnext/accounts/search_criteria/tds_return/tds_return.txt similarity index 100% rename from accounts/search_criteria/tds_return/tds_return.txt rename to erpnext/accounts/search_criteria/tds_return/tds_return.txt diff --git a/accounts/search_criteria/trial_balance/__init__.py b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/__init__.py similarity index 100% rename from accounts/search_criteria/trial_balance/__init__.py rename to erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/__init__.py diff --git a/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js similarity index 100% rename from accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js rename to erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js diff --git a/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py similarity index 100% rename from accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py rename to erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py diff --git a/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt similarity index 100% rename from accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt rename to erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt diff --git a/analysis/__init__.py b/erpnext/accounts/search_criteria/trial_balance/__init__.py similarity index 100% rename from analysis/__init__.py rename to erpnext/accounts/search_criteria/trial_balance/__init__.py diff --git a/accounts/search_criteria/trial_balance/trial_balance.js b/erpnext/accounts/search_criteria/trial_balance/trial_balance.js similarity index 100% rename from accounts/search_criteria/trial_balance/trial_balance.js rename to erpnext/accounts/search_criteria/trial_balance/trial_balance.js diff --git a/accounts/search_criteria/trial_balance/trial_balance.py b/erpnext/accounts/search_criteria/trial_balance/trial_balance.py similarity index 100% rename from accounts/search_criteria/trial_balance/trial_balance.py rename to erpnext/accounts/search_criteria/trial_balance/trial_balance.py diff --git a/accounts/search_criteria/trial_balance/trial_balance.txt b/erpnext/accounts/search_criteria/trial_balance/trial_balance.txt similarity index 100% rename from accounts/search_criteria/trial_balance/trial_balance.txt rename to erpnext/accounts/search_criteria/trial_balance/trial_balance.txt diff --git a/accounts/utils/__init__.py b/erpnext/accounts/utils/__init__.py similarity index 100% rename from accounts/utils/__init__.py rename to erpnext/accounts/utils/__init__.py diff --git a/analysis/Module Def/Analysis/Analysis.txt b/erpnext/analysis/Module Def/Analysis/Analysis.txt similarity index 100% rename from analysis/Module Def/Analysis/Analysis.txt rename to erpnext/analysis/Module Def/Analysis/Analysis.txt diff --git a/analysis/doctype/__init__.py b/erpnext/analysis/__init__.py similarity index 100% rename from analysis/doctype/__init__.py rename to erpnext/analysis/__init__.py diff --git a/analysis/doctype/mis_control/__init__.py b/erpnext/analysis/doctype/__init__.py similarity index 100% rename from analysis/doctype/mis_control/__init__.py rename to erpnext/analysis/doctype/__init__.py diff --git a/analysis/doctype/ta_control/__init__.py b/erpnext/analysis/doctype/mis_control/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from analysis/doctype/ta_control/__init__.py rename to erpnext/analysis/doctype/mis_control/__init__.py diff --git a/analysis/doctype/mis_control/mis_control.py b/erpnext/analysis/doctype/mis_control/mis_control.py similarity index 100% rename from analysis/doctype/mis_control/mis_control.py rename to erpnext/analysis/doctype/mis_control/mis_control.py diff --git a/analysis/doctype/mis_control/mis_control.txt b/erpnext/analysis/doctype/mis_control/mis_control.txt similarity index 100% rename from analysis/doctype/mis_control/mis_control.txt rename to erpnext/analysis/doctype/mis_control/mis_control.txt diff --git a/analysis/page/__init__.py b/erpnext/analysis/doctype/ta_control/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from analysis/page/__init__.py rename to erpnext/analysis/doctype/ta_control/__init__.py diff --git a/analysis/doctype/ta_control/ta_control.py b/erpnext/analysis/doctype/ta_control/ta_control.py similarity index 100% rename from analysis/doctype/ta_control/ta_control.py rename to erpnext/analysis/doctype/ta_control/ta_control.py diff --git a/analysis/doctype/ta_control/ta_control.txt b/erpnext/analysis/doctype/ta_control/ta_control.txt similarity index 100% rename from analysis/doctype/ta_control/ta_control.txt rename to erpnext/analysis/doctype/ta_control/ta_control.txt diff --git a/analysis/search_criteria/__init__.py b/erpnext/analysis/page/__init__.py similarity index 100% rename from analysis/search_criteria/__init__.py rename to erpnext/analysis/page/__init__.py diff --git a/analysis/search_criteria/monthly_transaction_summary/__init__.py b/erpnext/analysis/search_criteria/__init__.py similarity index 100% rename from analysis/search_criteria/monthly_transaction_summary/__init__.py rename to erpnext/analysis/search_criteria/__init__.py diff --git a/analysis/search_criteria/trend_analyzer/__init__.py b/erpnext/analysis/search_criteria/monthly_transaction_summary/__init__.py similarity index 100% rename from analysis/search_criteria/trend_analyzer/__init__.py rename to erpnext/analysis/search_criteria/monthly_transaction_summary/__init__.py diff --git a/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.js b/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.js similarity index 100% rename from analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.js rename to erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.js diff --git a/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.py b/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.py similarity index 100% rename from analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.py rename to erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.py diff --git a/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.sql b/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.sql similarity index 100% rename from analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.sql rename to erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.sql diff --git a/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt b/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt similarity index 100% rename from analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt rename to erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt diff --git a/analysis/search_criteria/yearly_transaction_summary/__init__.py b/erpnext/analysis/search_criteria/trend_analyzer/__init__.py similarity index 100% rename from analysis/search_criteria/yearly_transaction_summary/__init__.py rename to erpnext/analysis/search_criteria/trend_analyzer/__init__.py diff --git a/analysis/search_criteria/trend_analyzer/trend_analyzer.js b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js similarity index 100% rename from analysis/search_criteria/trend_analyzer/trend_analyzer.js rename to erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js diff --git a/analysis/search_criteria/trend_analyzer/trend_analyzer.py b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.py similarity index 100% rename from analysis/search_criteria/trend_analyzer/trend_analyzer.py rename to erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.py diff --git a/analysis/search_criteria/trend_analyzer/trend_analyzer.txt b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt similarity index 100% rename from analysis/search_criteria/trend_analyzer/trend_analyzer.txt rename to erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt diff --git a/buying/__init__.py b/erpnext/analysis/search_criteria/yearly_transaction_summary/__init__.py similarity index 100% rename from buying/__init__.py rename to erpnext/analysis/search_criteria/yearly_transaction_summary/__init__.py diff --git a/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.js b/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.js similarity index 100% rename from analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.js rename to erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.js diff --git a/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.py b/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.py similarity index 100% rename from analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.py rename to erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.py diff --git a/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.sql b/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.sql similarity index 100% rename from analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.sql rename to erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.sql diff --git a/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt b/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt similarity index 100% rename from analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt rename to erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt diff --git a/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt b/erpnext/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt similarity index 100% rename from buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt rename to erpnext/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt diff --git a/buying/DocType Mapper/Sales Order-Indent/Sales Order-Indent.txt b/erpnext/buying/DocType Mapper/Sales Order-Indent/Sales Order-Indent.txt similarity index 100% rename from buying/DocType Mapper/Sales Order-Indent/Sales Order-Indent.txt rename to erpnext/buying/DocType Mapper/Sales Order-Indent/Sales Order-Indent.txt diff --git a/buying/Module Def/Buying/Buying.txt b/erpnext/buying/Module Def/Buying/Buying.txt similarity index 100% rename from buying/Module Def/Buying/Buying.txt rename to erpnext/buying/Module Def/Buying/Buying.txt diff --git a/buying/Role/Purchase Manager/Purchase Manager.txt b/erpnext/buying/Role/Purchase Manager/Purchase Manager.txt similarity index 100% rename from buying/Role/Purchase Manager/Purchase Manager.txt rename to erpnext/buying/Role/Purchase Manager/Purchase Manager.txt diff --git a/buying/Role/Purchase Master Manager/Purchase Master Manager.txt b/erpnext/buying/Role/Purchase Master Manager/Purchase Master Manager.txt similarity index 100% rename from buying/Role/Purchase Master Manager/Purchase Master Manager.txt rename to erpnext/buying/Role/Purchase Master Manager/Purchase Master Manager.txt diff --git a/buying/Role/Purchase User/Purchase User.txt b/erpnext/buying/Role/Purchase User/Purchase User.txt similarity index 100% rename from buying/Role/Purchase User/Purchase User.txt rename to erpnext/buying/Role/Purchase User/Purchase User.txt diff --git a/buying/Role/Supplier/Supplier.txt b/erpnext/buying/Role/Supplier/Supplier.txt similarity index 100% rename from buying/Role/Supplier/Supplier.txt rename to erpnext/buying/Role/Supplier/Supplier.txt diff --git a/buying/doctype/__init__.py b/erpnext/buying/__init__.py similarity index 100% rename from buying/doctype/__init__.py rename to erpnext/buying/__init__.py diff --git a/buying/doctype/indent/__init__.py b/erpnext/buying/doctype/__init__.py similarity index 100% rename from buying/doctype/indent/__init__.py rename to erpnext/buying/doctype/__init__.py diff --git a/buying/doctype/indent_detail/__init__.py b/erpnext/buying/doctype/indent/__init__.py similarity index 100% rename from buying/doctype/indent_detail/__init__.py rename to erpnext/buying/doctype/indent/__init__.py diff --git a/buying/doctype/indent/indent.js b/erpnext/buying/doctype/indent/indent.js similarity index 100% rename from buying/doctype/indent/indent.js rename to erpnext/buying/doctype/indent/indent.js diff --git a/buying/doctype/indent/indent.py b/erpnext/buying/doctype/indent/indent.py similarity index 100% rename from buying/doctype/indent/indent.py rename to erpnext/buying/doctype/indent/indent.py diff --git a/buying/doctype/indent/indent.txt b/erpnext/buying/doctype/indent/indent.txt similarity index 100% rename from buying/doctype/indent/indent.txt rename to erpnext/buying/doctype/indent/indent.txt diff --git a/buying/doctype/po_detail/__init__.py b/erpnext/buying/doctype/indent_detail/__init__.py similarity index 100% rename from buying/doctype/po_detail/__init__.py rename to erpnext/buying/doctype/indent_detail/__init__.py diff --git a/buying/doctype/indent_detail/indent_detail.txt b/erpnext/buying/doctype/indent_detail/indent_detail.txt similarity index 100% rename from buying/doctype/indent_detail/indent_detail.txt rename to erpnext/buying/doctype/indent_detail/indent_detail.txt diff --git a/buying/doctype/po_raw_material_detail/__init__.py b/erpnext/buying/doctype/po_detail/__init__.py similarity index 100% rename from buying/doctype/po_raw_material_detail/__init__.py rename to erpnext/buying/doctype/po_detail/__init__.py diff --git a/buying/doctype/po_detail/po_detail.txt b/erpnext/buying/doctype/po_detail/po_detail.txt similarity index 100% rename from buying/doctype/po_detail/po_detail.txt rename to erpnext/buying/doctype/po_detail/po_detail.txt diff --git a/buying/doctype/pr_raw_material_detail/__init__.py b/erpnext/buying/doctype/po_raw_material_detail/__init__.py similarity index 100% rename from buying/doctype/pr_raw_material_detail/__init__.py rename to erpnext/buying/doctype/po_raw_material_detail/__init__.py diff --git a/buying/doctype/po_raw_material_detail/po_raw_material_detail.txt b/erpnext/buying/doctype/po_raw_material_detail/po_raw_material_detail.txt similarity index 100% rename from buying/doctype/po_raw_material_detail/po_raw_material_detail.txt rename to erpnext/buying/doctype/po_raw_material_detail/po_raw_material_detail.txt diff --git a/buying/doctype/purchase_common/__init__.py b/erpnext/buying/doctype/pr_raw_material_detail/__init__.py similarity index 100% rename from buying/doctype/purchase_common/__init__.py rename to erpnext/buying/doctype/pr_raw_material_detail/__init__.py diff --git a/buying/doctype/pr_raw_material_detail/pr_raw_material_detail.txt b/erpnext/buying/doctype/pr_raw_material_detail/pr_raw_material_detail.txt similarity index 100% rename from buying/doctype/pr_raw_material_detail/pr_raw_material_detail.txt rename to erpnext/buying/doctype/pr_raw_material_detail/pr_raw_material_detail.txt diff --git a/buying/doctype/purchase_order/__init__.py b/erpnext/buying/doctype/purchase_common/__init__.py similarity index 100% rename from buying/doctype/purchase_order/__init__.py rename to erpnext/buying/doctype/purchase_common/__init__.py diff --git a/buying/doctype/purchase_common/purchase_common.js b/erpnext/buying/doctype/purchase_common/purchase_common.js similarity index 100% rename from buying/doctype/purchase_common/purchase_common.js rename to erpnext/buying/doctype/purchase_common/purchase_common.js diff --git a/buying/doctype/purchase_common/purchase_common.py b/erpnext/buying/doctype/purchase_common/purchase_common.py similarity index 100% rename from buying/doctype/purchase_common/purchase_common.py rename to erpnext/buying/doctype/purchase_common/purchase_common.py diff --git a/buying/doctype/purchase_common/purchase_common.txt b/erpnext/buying/doctype/purchase_common/purchase_common.txt similarity index 100% rename from buying/doctype/purchase_common/purchase_common.txt rename to erpnext/buying/doctype/purchase_common/purchase_common.txt diff --git a/buying/doctype/purchase_other_charges/__init__.py b/erpnext/buying/doctype/purchase_order/__init__.py similarity index 100% rename from buying/doctype/purchase_other_charges/__init__.py rename to erpnext/buying/doctype/purchase_order/__init__.py diff --git a/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js similarity index 100% rename from buying/doctype/purchase_order/purchase_order.js rename to erpnext/buying/doctype/purchase_order/purchase_order.js diff --git a/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py similarity index 100% rename from buying/doctype/purchase_order/purchase_order.py rename to erpnext/buying/doctype/purchase_order/purchase_order.py diff --git a/buying/doctype/purchase_order/purchase_order.txt b/erpnext/buying/doctype/purchase_order/purchase_order.txt similarity index 100% rename from buying/doctype/purchase_order/purchase_order.txt rename to erpnext/buying/doctype/purchase_order/purchase_order.txt diff --git a/buying/doctype/qa_inspection_report/__init__.py b/erpnext/buying/doctype/purchase_other_charges/__init__.py similarity index 100% rename from buying/doctype/qa_inspection_report/__init__.py rename to erpnext/buying/doctype/purchase_other_charges/__init__.py diff --git a/buying/doctype/purchase_other_charges/purchase_other_charges.js b/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.js similarity index 100% rename from buying/doctype/purchase_other_charges/purchase_other_charges.js rename to erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.js diff --git a/buying/doctype/purchase_other_charges/purchase_other_charges.py b/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.py similarity index 100% rename from buying/doctype/purchase_other_charges/purchase_other_charges.py rename to erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.py diff --git a/buying/doctype/purchase_other_charges/purchase_other_charges.txt b/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.txt similarity index 100% rename from buying/doctype/purchase_other_charges/purchase_other_charges.txt rename to erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.txt diff --git a/buying/doctype/qa_specification_detail/__init__.py b/erpnext/buying/doctype/qa_inspection_report/__init__.py similarity index 100% rename from buying/doctype/qa_specification_detail/__init__.py rename to erpnext/buying/doctype/qa_inspection_report/__init__.py diff --git a/buying/doctype/qa_inspection_report/qa_inspection_report.js b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js similarity index 100% rename from buying/doctype/qa_inspection_report/qa_inspection_report.js rename to erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js diff --git a/buying/doctype/qa_inspection_report/qa_inspection_report.py b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.py similarity index 100% rename from buying/doctype/qa_inspection_report/qa_inspection_report.py rename to erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.py diff --git a/buying/doctype/qa_inspection_report/qa_inspection_report.txt b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt similarity index 100% rename from buying/doctype/qa_inspection_report/qa_inspection_report.txt rename to erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt diff --git a/buying/doctype/raw_materials_supplied/__init__.py b/erpnext/buying/doctype/qa_specification_detail/__init__.py similarity index 100% rename from buying/doctype/raw_materials_supplied/__init__.py rename to erpnext/buying/doctype/qa_specification_detail/__init__.py diff --git a/buying/doctype/qa_specification_detail/qa_specification_detail.txt b/erpnext/buying/doctype/qa_specification_detail/qa_specification_detail.txt similarity index 100% rename from buying/doctype/qa_specification_detail/qa_specification_detail.txt rename to erpnext/buying/doctype/qa_specification_detail/qa_specification_detail.txt diff --git a/buying/doctype/supplier/__init__.py b/erpnext/buying/doctype/raw_materials_supplied/__init__.py similarity index 100% rename from buying/doctype/supplier/__init__.py rename to erpnext/buying/doctype/raw_materials_supplied/__init__.py diff --git a/buying/doctype/raw_materials_supplied/raw_materials_supplied.txt b/erpnext/buying/doctype/raw_materials_supplied/raw_materials_supplied.txt similarity index 100% rename from buying/doctype/raw_materials_supplied/raw_materials_supplied.txt rename to erpnext/buying/doctype/raw_materials_supplied/raw_materials_supplied.txt diff --git a/buying/doctype/supplier_quotation/__init__.py b/erpnext/buying/doctype/supplier/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from buying/doctype/supplier_quotation/__init__.py rename to erpnext/buying/doctype/supplier/__init__.py diff --git a/buying/doctype/supplier/supplier.js b/erpnext/buying/doctype/supplier/supplier.js similarity index 100% rename from buying/doctype/supplier/supplier.js rename to erpnext/buying/doctype/supplier/supplier.js diff --git a/buying/doctype/supplier/supplier.py b/erpnext/buying/doctype/supplier/supplier.py similarity index 100% rename from buying/doctype/supplier/supplier.py rename to erpnext/buying/doctype/supplier/supplier.py diff --git a/buying/doctype/supplier/supplier.txt b/erpnext/buying/doctype/supplier/supplier.txt similarity index 100% rename from buying/doctype/supplier/supplier.txt rename to erpnext/buying/doctype/supplier/supplier.txt diff --git a/buying/page/__init__.py b/erpnext/buying/doctype/supplier_quotation/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from buying/page/__init__.py rename to erpnext/buying/doctype/supplier_quotation/__init__.py diff --git a/buying/doctype/supplier_quotation/supplier_quotation.js b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js similarity index 100% rename from buying/doctype/supplier_quotation/supplier_quotation.js rename to erpnext/buying/doctype/supplier_quotation/supplier_quotation.js diff --git a/buying/doctype/supplier_quotation/supplier_quotation.py b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py similarity index 100% rename from buying/doctype/supplier_quotation/supplier_quotation.py rename to erpnext/buying/doctype/supplier_quotation/supplier_quotation.py diff --git a/buying/doctype/supplier_quotation/supplier_quotation.txt b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.txt similarity index 100% rename from buying/doctype/supplier_quotation/supplier_quotation.txt rename to erpnext/buying/doctype/supplier_quotation/supplier_quotation.txt diff --git a/buying/search_criteria/__init__.py b/erpnext/buying/page/__init__.py similarity index 100% rename from buying/search_criteria/__init__.py rename to erpnext/buying/page/__init__.py diff --git a/buying/search_criteria/itemwise_purchase_details/__init__.py b/erpnext/buying/search_criteria/__init__.py similarity index 100% rename from buying/search_criteria/itemwise_purchase_details/__init__.py rename to erpnext/buying/search_criteria/__init__.py diff --git a/buying/search_criteria/itemwise_receipt_details/__init__.py b/erpnext/buying/search_criteria/itemwise_purchase_details/__init__.py similarity index 100% rename from buying/search_criteria/itemwise_receipt_details/__init__.py rename to erpnext/buying/search_criteria/itemwise_purchase_details/__init__.py diff --git a/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.js b/erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.js similarity index 100% rename from buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.js rename to erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.js diff --git a/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt b/erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt similarity index 100% rename from buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt rename to erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt diff --git a/buying/search_criteria/pending_po_items_to_bill/__init__.py b/erpnext/buying/search_criteria/itemwise_receipt_details/__init__.py similarity index 100% rename from buying/search_criteria/pending_po_items_to_bill/__init__.py rename to erpnext/buying/search_criteria/itemwise_receipt_details/__init__.py diff --git a/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.js b/erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.js similarity index 100% rename from buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.js rename to erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.js diff --git a/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt b/erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt similarity index 100% rename from buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt rename to erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt diff --git a/buying/search_criteria/pending_po_items_to_receive/__init__.py b/erpnext/buying/search_criteria/pending_po_items_to_bill/__init__.py similarity index 100% rename from buying/search_criteria/pending_po_items_to_receive/__init__.py rename to erpnext/buying/search_criteria/pending_po_items_to_bill/__init__.py diff --git a/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.js b/erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.js similarity index 100% rename from buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.js rename to erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.js diff --git a/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt b/erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt similarity index 100% rename from buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt rename to erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt diff --git a/buying/search_criteria/purchase_in_transit/__init__.py b/erpnext/buying/search_criteria/pending_po_items_to_receive/__init__.py similarity index 100% rename from buying/search_criteria/purchase_in_transit/__init__.py rename to erpnext/buying/search_criteria/pending_po_items_to_receive/__init__.py diff --git a/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.js b/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.js similarity index 100% rename from buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.js rename to erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.js diff --git a/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py b/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py similarity index 100% rename from buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py rename to erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py diff --git a/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt b/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt similarity index 100% rename from buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt rename to erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt diff --git a/home/doctype/__init__.py b/erpnext/buying/search_criteria/purchase_in_transit/__init__.py similarity index 100% rename from home/doctype/__init__.py rename to erpnext/buying/search_criteria/purchase_in_transit/__init__.py diff --git a/buying/search_criteria/purchase_in_transit/purchase_in_transit.js b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.js similarity index 100% rename from buying/search_criteria/purchase_in_transit/purchase_in_transit.js rename to erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.js diff --git a/buying/search_criteria/purchase_in_transit/purchase_in_transit.py b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.py similarity index 100% rename from buying/search_criteria/purchase_in_transit/purchase_in_transit.py rename to erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.py diff --git a/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt similarity index 100% rename from buying/search_criteria/purchase_in_transit/purchase_in_transit.txt rename to erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt diff --git a/home/Module Def/Home/Home.txt b/erpnext/home/Module Def/Home/Home.txt similarity index 100% rename from home/Module Def/Home/Home.txt rename to erpnext/home/Module Def/Home/Home.txt diff --git a/home/__init__.py b/erpnext/home/__init__.py similarity index 100% rename from home/__init__.py rename to erpnext/home/__init__.py diff --git a/home/doctype/company_control/__init__.py b/erpnext/home/doctype/__init__.py similarity index 100% rename from home/doctype/company_control/__init__.py rename to erpnext/home/doctype/__init__.py diff --git a/home/doctype/feed/__init__.py b/erpnext/home/doctype/company_control/__init__.py similarity index 100% rename from home/doctype/feed/__init__.py rename to erpnext/home/doctype/company_control/__init__.py diff --git a/home/doctype/company_control/company_control.py b/erpnext/home/doctype/company_control/company_control.py similarity index 100% rename from home/doctype/company_control/company_control.py rename to erpnext/home/doctype/company_control/company_control.py diff --git a/home/doctype/company_control/company_control.txt b/erpnext/home/doctype/company_control/company_control.txt similarity index 100% rename from home/doctype/company_control/company_control.txt rename to erpnext/home/doctype/company_control/company_control.txt diff --git a/home/doctype/home_control/__init__.py b/erpnext/home/doctype/feed/__init__.py similarity index 100% rename from home/doctype/home_control/__init__.py rename to erpnext/home/doctype/feed/__init__.py diff --git a/home/doctype/feed/feed.py b/erpnext/home/doctype/feed/feed.py similarity index 100% rename from home/doctype/feed/feed.py rename to erpnext/home/doctype/feed/feed.py diff --git a/home/doctype/feed/feed.txt b/erpnext/home/doctype/feed/feed.txt similarity index 100% rename from home/doctype/feed/feed.txt rename to erpnext/home/doctype/feed/feed.txt diff --git a/home/doctype/widget_control/__init__.py b/erpnext/home/doctype/home_control/__init__.py similarity index 100% rename from home/doctype/widget_control/__init__.py rename to erpnext/home/doctype/home_control/__init__.py diff --git a/home/doctype/home_control/home_control.js b/erpnext/home/doctype/home_control/home_control.js similarity index 100% rename from home/doctype/home_control/home_control.js rename to erpnext/home/doctype/home_control/home_control.js diff --git a/home/doctype/home_control/home_control.py b/erpnext/home/doctype/home_control/home_control.py similarity index 100% rename from home/doctype/home_control/home_control.py rename to erpnext/home/doctype/home_control/home_control.py diff --git a/home/doctype/home_control/home_control.txt b/erpnext/home/doctype/home_control/home_control.txt similarity index 100% rename from home/doctype/home_control/home_control.txt rename to erpnext/home/doctype/home_control/home_control.txt diff --git a/home/page/__init__.py b/erpnext/home/doctype/widget_control/__init__.py similarity index 100% rename from home/page/__init__.py rename to erpnext/home/doctype/widget_control/__init__.py diff --git a/home/doctype/widget_control/widget_control.py b/erpnext/home/doctype/widget_control/widget_control.py similarity index 100% rename from home/doctype/widget_control/widget_control.py rename to erpnext/home/doctype/widget_control/widget_control.py diff --git a/home/doctype/widget_control/widget_control.txt b/erpnext/home/doctype/widget_control/widget_control.txt similarity index 100% rename from home/doctype/widget_control/widget_control.txt rename to erpnext/home/doctype/widget_control/widget_control.txt diff --git a/home/page/.DS_Store b/erpnext/home/page/.DS_Store similarity index 100% rename from home/page/.DS_Store rename to erpnext/home/page/.DS_Store diff --git a/home/page/dashboard/__init__.py b/erpnext/home/page/__init__.py similarity index 100% rename from home/page/dashboard/__init__.py rename to erpnext/home/page/__init__.py diff --git a/home/page/event_updates/__init__.py b/erpnext/home/page/dashboard/__init__.py similarity index 100% rename from home/page/event_updates/__init__.py rename to erpnext/home/page/dashboard/__init__.py diff --git a/home/page/dashboard/dashboard.css b/erpnext/home/page/dashboard/dashboard.css similarity index 100% rename from home/page/dashboard/dashboard.css rename to erpnext/home/page/dashboard/dashboard.css diff --git a/home/page/dashboard/dashboard.html b/erpnext/home/page/dashboard/dashboard.html similarity index 100% rename from home/page/dashboard/dashboard.html rename to erpnext/home/page/dashboard/dashboard.html diff --git a/home/page/dashboard/dashboard.js b/erpnext/home/page/dashboard/dashboard.js similarity index 100% rename from home/page/dashboard/dashboard.js rename to erpnext/home/page/dashboard/dashboard.js diff --git a/home/page/dashboard/dashboard.py b/erpnext/home/page/dashboard/dashboard.py similarity index 100% rename from home/page/dashboard/dashboard.py rename to erpnext/home/page/dashboard/dashboard.py diff --git a/home/page/dashboard/dashboard.txt b/erpnext/home/page/dashboard/dashboard.txt similarity index 100% rename from home/page/dashboard/dashboard.txt rename to erpnext/home/page/dashboard/dashboard.txt diff --git a/home/page/event_updates/.DS_Store b/erpnext/home/page/event_updates/.DS_Store similarity index 100% rename from home/page/event_updates/.DS_Store rename to erpnext/home/page/event_updates/.DS_Store diff --git a/home/page/my_company/__init__.py b/erpnext/home/page/event_updates/__init__.py similarity index 100% rename from home/page/my_company/__init__.py rename to erpnext/home/page/event_updates/__init__.py diff --git a/home/page/event_updates/event_updates.css b/erpnext/home/page/event_updates/event_updates.css similarity index 100% rename from home/page/event_updates/event_updates.css rename to erpnext/home/page/event_updates/event_updates.css diff --git a/home/page/event_updates/event_updates.html b/erpnext/home/page/event_updates/event_updates.html similarity index 100% rename from home/page/event_updates/event_updates.html rename to erpnext/home/page/event_updates/event_updates.html diff --git a/home/page/event_updates/event_updates.js b/erpnext/home/page/event_updates/event_updates.js similarity index 100% rename from home/page/event_updates/event_updates.js rename to erpnext/home/page/event_updates/event_updates.js diff --git a/home/page/event_updates/event_updates.py b/erpnext/home/page/event_updates/event_updates.py similarity index 100% rename from home/page/event_updates/event_updates.py rename to erpnext/home/page/event_updates/event_updates.py diff --git a/home/page/event_updates/event_updates.txt b/erpnext/home/page/event_updates/event_updates.txt similarity index 100% rename from home/page/event_updates/event_updates.txt rename to erpnext/home/page/event_updates/event_updates.txt diff --git a/home/page/event_updates/event_updates_static.html b/erpnext/home/page/event_updates/event_updates_static.html similarity index 100% rename from home/page/event_updates/event_updates_static.html rename to erpnext/home/page/event_updates/event_updates_static.html diff --git a/home/page/profile_settings/__init__.py b/erpnext/home/page/my_company/__init__.py similarity index 100% rename from home/page/profile_settings/__init__.py rename to erpnext/home/page/my_company/__init__.py diff --git a/home/page/my_company/my_company.css b/erpnext/home/page/my_company/my_company.css similarity index 100% rename from home/page/my_company/my_company.css rename to erpnext/home/page/my_company/my_company.css diff --git a/home/page/my_company/my_company.html b/erpnext/home/page/my_company/my_company.html similarity index 100% rename from home/page/my_company/my_company.html rename to erpnext/home/page/my_company/my_company.html diff --git a/home/page/my_company/my_company.js b/erpnext/home/page/my_company/my_company.js similarity index 100% rename from home/page/my_company/my_company.js rename to erpnext/home/page/my_company/my_company.js diff --git a/home/page/my_company/my_company.py b/erpnext/home/page/my_company/my_company.py similarity index 100% rename from home/page/my_company/my_company.py rename to erpnext/home/page/my_company/my_company.py diff --git a/home/page/my_company/my_company.txt b/erpnext/home/page/my_company/my_company.txt similarity index 100% rename from home/page/my_company/my_company.txt rename to erpnext/home/page/my_company/my_company.txt diff --git a/home/search_criteria/__init__.py b/erpnext/home/page/profile_settings/__init__.py similarity index 100% rename from home/search_criteria/__init__.py rename to erpnext/home/page/profile_settings/__init__.py diff --git a/home/page/profile_settings/profile_settings.html b/erpnext/home/page/profile_settings/profile_settings.html similarity index 100% rename from home/page/profile_settings/profile_settings.html rename to erpnext/home/page/profile_settings/profile_settings.html diff --git a/home/page/profile_settings/profile_settings.js b/erpnext/home/page/profile_settings/profile_settings.js similarity index 100% rename from home/page/profile_settings/profile_settings.js rename to erpnext/home/page/profile_settings/profile_settings.js diff --git a/home/page/profile_settings/profile_settings.py b/erpnext/home/page/profile_settings/profile_settings.py similarity index 100% rename from home/page/profile_settings/profile_settings.py rename to erpnext/home/page/profile_settings/profile_settings.py diff --git a/home/page/profile_settings/profile_settings.txt b/erpnext/home/page/profile_settings/profile_settings.txt similarity index 100% rename from home/page/profile_settings/profile_settings.txt rename to erpnext/home/page/profile_settings/profile_settings.txt diff --git a/home/search_criteria/bills_to_be_paid/__init__.py b/erpnext/home/search_criteria/__init__.py similarity index 100% rename from home/search_criteria/bills_to_be_paid/__init__.py rename to erpnext/home/search_criteria/__init__.py diff --git a/home/search_criteria/bills_to_be_submitted/__init__.py b/erpnext/home/search_criteria/bills_to_be_paid/__init__.py similarity index 100% rename from home/search_criteria/bills_to_be_submitted/__init__.py rename to erpnext/home/search_criteria/bills_to_be_paid/__init__.py diff --git a/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt b/erpnext/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt similarity index 100% rename from home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt rename to erpnext/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt diff --git a/home/search_criteria/delivery_note_to_be_billed/__init__.py b/erpnext/home/search_criteria/bills_to_be_submitted/__init__.py similarity index 100% rename from home/search_criteria/delivery_note_to_be_billed/__init__.py rename to erpnext/home/search_criteria/bills_to_be_submitted/__init__.py diff --git a/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt b/erpnext/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt similarity index 100% rename from home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt rename to erpnext/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt diff --git a/home/search_criteria/delivery_note_to_be_submitted/__init__.py b/erpnext/home/search_criteria/delivery_note_to_be_billed/__init__.py similarity index 100% rename from home/search_criteria/delivery_note_to_be_submitted/__init__.py rename to erpnext/home/search_criteria/delivery_note_to_be_billed/__init__.py diff --git a/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt b/erpnext/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt similarity index 100% rename from home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt rename to erpnext/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt diff --git a/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py b/erpnext/home/search_criteria/delivery_note_to_be_submitted/__init__.py similarity index 100% rename from home/search_criteria/enquiry_quotations_to_be_sent/__init__.py rename to erpnext/home/search_criteria/delivery_note_to_be_submitted/__init__.py diff --git a/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt b/erpnext/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt similarity index 100% rename from home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt rename to erpnext/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt diff --git a/home/search_criteria/enquiry_to_follow_up/__init__.py b/erpnext/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py similarity index 100% rename from home/search_criteria/enquiry_to_follow_up/__init__.py rename to erpnext/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py diff --git a/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt b/erpnext/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt similarity index 100% rename from home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt rename to erpnext/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt diff --git a/home/search_criteria/indent_purchase_order_to_be_made/__init__.py b/erpnext/home/search_criteria/enquiry_to_follow_up/__init__.py similarity index 100% rename from home/search_criteria/indent_purchase_order_to_be_made/__init__.py rename to erpnext/home/search_criteria/enquiry_to_follow_up/__init__.py diff --git a/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js b/erpnext/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js similarity index 100% rename from home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js rename to erpnext/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js diff --git a/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt b/erpnext/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt similarity index 100% rename from home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt rename to erpnext/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt diff --git a/home/search_criteria/indent_to_be_submitted/__init__.py b/erpnext/home/search_criteria/indent_purchase_order_to_be_made/__init__.py similarity index 100% rename from home/search_criteria/indent_to_be_submitted/__init__.py rename to erpnext/home/search_criteria/indent_purchase_order_to_be_made/__init__.py diff --git a/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt b/erpnext/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt similarity index 100% rename from home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt rename to erpnext/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt diff --git a/home/search_criteria/invoices_overdue/__init__.py b/erpnext/home/search_criteria/indent_to_be_submitted/__init__.py similarity index 100% rename from home/search_criteria/invoices_overdue/__init__.py rename to erpnext/home/search_criteria/indent_to_be_submitted/__init__.py diff --git a/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt b/erpnext/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt similarity index 100% rename from home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt rename to erpnext/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt diff --git a/home/search_criteria/invoices_to_be_submitted/__init__.py b/erpnext/home/search_criteria/invoices_overdue/__init__.py similarity index 100% rename from home/search_criteria/invoices_to_be_submitted/__init__.py rename to erpnext/home/search_criteria/invoices_overdue/__init__.py diff --git a/home/search_criteria/invoices_overdue/invoices_overdue.txt b/erpnext/home/search_criteria/invoices_overdue/invoices_overdue.txt similarity index 100% rename from home/search_criteria/invoices_overdue/invoices_overdue.txt rename to erpnext/home/search_criteria/invoices_overdue/invoices_overdue.txt diff --git a/home/search_criteria/invoices_to_receive_payment/__init__.py b/erpnext/home/search_criteria/invoices_to_be_submitted/__init__.py similarity index 100% rename from home/search_criteria/invoices_to_receive_payment/__init__.py rename to erpnext/home/search_criteria/invoices_to_be_submitted/__init__.py diff --git a/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt b/erpnext/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt similarity index 100% rename from home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt rename to erpnext/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt diff --git a/home/search_criteria/lead_to_follow_up/__init__.py b/erpnext/home/search_criteria/invoices_to_receive_payment/__init__.py similarity index 100% rename from home/search_criteria/lead_to_follow_up/__init__.py rename to erpnext/home/search_criteria/invoices_to_receive_payment/__init__.py diff --git a/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt b/erpnext/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt similarity index 100% rename from home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt rename to erpnext/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt diff --git a/home/search_criteria/purchase_order_to_be_billed/__init__.py b/erpnext/home/search_criteria/lead_to_follow_up/__init__.py similarity index 100% rename from home/search_criteria/purchase_order_to_be_billed/__init__.py rename to erpnext/home/search_criteria/lead_to_follow_up/__init__.py diff --git a/home/search_criteria/lead_to_follow_up/lead_to_follow_up.js b/erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.js similarity index 100% rename from home/search_criteria/lead_to_follow_up/lead_to_follow_up.js rename to erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.js diff --git a/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt b/erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt similarity index 100% rename from home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt rename to erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt diff --git a/home/search_criteria/lead_to_follow_up/sales_order_overdue.js b/erpnext/home/search_criteria/lead_to_follow_up/sales_order_overdue.js similarity index 100% rename from home/search_criteria/lead_to_follow_up/sales_order_overdue.js rename to erpnext/home/search_criteria/lead_to_follow_up/sales_order_overdue.js diff --git a/home/search_criteria/purchase_order_to_be_submitted/__init__.py b/erpnext/home/search_criteria/purchase_order_to_be_billed/__init__.py similarity index 100% rename from home/search_criteria/purchase_order_to_be_submitted/__init__.py rename to erpnext/home/search_criteria/purchase_order_to_be_billed/__init__.py diff --git a/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt b/erpnext/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt similarity index 100% rename from home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt rename to erpnext/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt diff --git a/home/search_criteria/purchase_order_to_receive_items/__init__.py b/erpnext/home/search_criteria/purchase_order_to_be_submitted/__init__.py similarity index 100% rename from home/search_criteria/purchase_order_to_receive_items/__init__.py rename to erpnext/home/search_criteria/purchase_order_to_be_submitted/__init__.py diff --git a/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt b/erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt similarity index 100% rename from home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt rename to erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt diff --git a/home/search_criteria/sales_order_overdue/__init__.py b/erpnext/home/search_criteria/purchase_order_to_receive_items/__init__.py similarity index 100% rename from home/search_criteria/sales_order_overdue/__init__.py rename to erpnext/home/search_criteria/purchase_order_to_receive_items/__init__.py diff --git a/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt b/erpnext/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt similarity index 100% rename from home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt rename to erpnext/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt diff --git a/home/search_criteria/sales_order_to_be_billed/__init__.py b/erpnext/home/search_criteria/sales_order_overdue/__init__.py similarity index 100% rename from home/search_criteria/sales_order_to_be_billed/__init__.py rename to erpnext/home/search_criteria/sales_order_overdue/__init__.py diff --git a/home/search_criteria/sales_order_overdue/sales_order_overdue.txt b/erpnext/home/search_criteria/sales_order_overdue/sales_order_overdue.txt similarity index 100% rename from home/search_criteria/sales_order_overdue/sales_order_overdue.txt rename to erpnext/home/search_criteria/sales_order_overdue/sales_order_overdue.txt diff --git a/home/search_criteria/sales_order_to_be_delivered/__init__.py b/erpnext/home/search_criteria/sales_order_to_be_billed/__init__.py similarity index 100% rename from home/search_criteria/sales_order_to_be_delivered/__init__.py rename to erpnext/home/search_criteria/sales_order_to_be_billed/__init__.py diff --git a/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt b/erpnext/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt similarity index 100% rename from home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt rename to erpnext/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt diff --git a/home/search_criteria/sales_order_to_be_submitted/__init__.py b/erpnext/home/search_criteria/sales_order_to_be_delivered/__init__.py similarity index 100% rename from home/search_criteria/sales_order_to_be_submitted/__init__.py rename to erpnext/home/search_criteria/sales_order_to_be_delivered/__init__.py diff --git a/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt b/erpnext/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt similarity index 100% rename from home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt rename to erpnext/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt diff --git a/home/search_criteria/serial_no_amc_expiring_this_month/__init__.py b/erpnext/home/search_criteria/sales_order_to_be_submitted/__init__.py similarity index 100% rename from home/search_criteria/serial_no_amc_expiring_this_month/__init__.py rename to erpnext/home/search_criteria/sales_order_to_be_submitted/__init__.py diff --git a/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt b/erpnext/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt similarity index 100% rename from home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt rename to erpnext/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt diff --git a/home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py b/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/__init__.py similarity index 100% rename from home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py rename to erpnext/home/search_criteria/serial_no_amc_expiring_this_month/__init__.py diff --git a/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt b/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt similarity index 100% rename from home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt rename to erpnext/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt diff --git a/home/search_criteria/task_open/__init__.py b/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py similarity index 100% rename from home/search_criteria/task_open/__init__.py rename to erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py diff --git a/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt b/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt similarity index 100% rename from home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt rename to erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt diff --git a/hr/__init__.py b/erpnext/home/search_criteria/task_open/__init__.py similarity index 100% rename from hr/__init__.py rename to erpnext/home/search_criteria/task_open/__init__.py diff --git a/home/search_criteria/task_open/task_open.txt b/erpnext/home/search_criteria/task_open/task_open.txt similarity index 100% rename from home/search_criteria/task_open/task_open.txt rename to erpnext/home/search_criteria/task_open/task_open.txt diff --git a/hr/Deduction Type/Income Tax/Income Tax.txt b/erpnext/hr/Deduction Type/Income Tax/Income Tax.txt similarity index 100% rename from hr/Deduction Type/Income Tax/Income Tax.txt rename to erpnext/hr/Deduction Type/Income Tax/Income Tax.txt diff --git a/hr/Deduction Type/Professional Tax/Professional Tax.txt b/erpnext/hr/Deduction Type/Professional Tax/Professional Tax.txt similarity index 100% rename from hr/Deduction Type/Professional Tax/Professional Tax.txt rename to erpnext/hr/Deduction Type/Professional Tax/Professional Tax.txt diff --git a/hr/Deduction Type/Provident Fund/Provident Fund.txt b/erpnext/hr/Deduction Type/Provident Fund/Provident Fund.txt similarity index 100% rename from hr/Deduction Type/Provident Fund/Provident Fund.txt rename to erpnext/hr/Deduction Type/Provident Fund/Provident Fund.txt diff --git a/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt b/erpnext/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt similarity index 100% rename from hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt rename to erpnext/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt diff --git a/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt b/erpnext/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt similarity index 100% rename from hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt rename to erpnext/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt diff --git a/hr/Earning Type/Basic/Basic.txt b/erpnext/hr/Earning Type/Basic/Basic.txt similarity index 100% rename from hr/Earning Type/Basic/Basic.txt rename to erpnext/hr/Earning Type/Basic/Basic.txt diff --git a/hr/Earning Type/House Rent Allowance/House Rent Allowance.txt b/erpnext/hr/Earning Type/House Rent Allowance/House Rent Allowance.txt similarity index 100% rename from hr/Earning Type/House Rent Allowance/House Rent Allowance.txt rename to erpnext/hr/Earning Type/House Rent Allowance/House Rent Allowance.txt diff --git a/hr/Expense Type/Calls/Calls.txt b/erpnext/hr/Expense Type/Calls/Calls.txt similarity index 100% rename from hr/Expense Type/Calls/Calls.txt rename to erpnext/hr/Expense Type/Calls/Calls.txt diff --git a/hr/Expense Type/Food/Food.txt b/erpnext/hr/Expense Type/Food/Food.txt similarity index 100% rename from hr/Expense Type/Food/Food.txt rename to erpnext/hr/Expense Type/Food/Food.txt diff --git a/hr/Expense Type/Medical/Medical.txt b/erpnext/hr/Expense Type/Medical/Medical.txt similarity index 100% rename from hr/Expense Type/Medical/Medical.txt rename to erpnext/hr/Expense Type/Medical/Medical.txt diff --git a/hr/Expense Type/Others/Others.txt b/erpnext/hr/Expense Type/Others/Others.txt similarity index 100% rename from hr/Expense Type/Others/Others.txt rename to erpnext/hr/Expense Type/Others/Others.txt diff --git a/hr/Expense Type/Travel/Travel.txt b/erpnext/hr/Expense Type/Travel/Travel.txt similarity index 100% rename from hr/Expense Type/Travel/Travel.txt rename to erpnext/hr/Expense Type/Travel/Travel.txt diff --git a/hr/Leave Type/Casual Leave/Casual Leave.txt b/erpnext/hr/Leave Type/Casual Leave/Casual Leave.txt similarity index 100% rename from hr/Leave Type/Casual Leave/Casual Leave.txt rename to erpnext/hr/Leave Type/Casual Leave/Casual Leave.txt diff --git a/hr/Leave Type/Compensatory Off/Compensatory Off.txt b/erpnext/hr/Leave Type/Compensatory Off/Compensatory Off.txt similarity index 100% rename from hr/Leave Type/Compensatory Off/Compensatory Off.txt rename to erpnext/hr/Leave Type/Compensatory Off/Compensatory Off.txt diff --git a/hr/Leave Type/Leave Without Pay/Leave Without Pay.txt b/erpnext/hr/Leave Type/Leave Without Pay/Leave Without Pay.txt similarity index 100% rename from hr/Leave Type/Leave Without Pay/Leave Without Pay.txt rename to erpnext/hr/Leave Type/Leave Without Pay/Leave Without Pay.txt diff --git a/hr/Leave Type/Privilege Leave/Privilege Leave.txt b/erpnext/hr/Leave Type/Privilege Leave/Privilege Leave.txt similarity index 100% rename from hr/Leave Type/Privilege Leave/Privilege Leave.txt rename to erpnext/hr/Leave Type/Privilege Leave/Privilege Leave.txt diff --git a/hr/Leave Type/Sick Leave/Sick Leave.txt b/erpnext/hr/Leave Type/Sick Leave/Sick Leave.txt similarity index 100% rename from hr/Leave Type/Sick Leave/Sick Leave.txt rename to erpnext/hr/Leave Type/Sick Leave/Sick Leave.txt diff --git a/hr/Module Def/HR/HR.txt b/erpnext/hr/Module Def/HR/HR.txt similarity index 100% rename from hr/Module Def/HR/HR.txt rename to erpnext/hr/Module Def/HR/HR.txt diff --git a/hr/Role/Employee/Employee.txt b/erpnext/hr/Role/Employee/Employee.txt similarity index 100% rename from hr/Role/Employee/Employee.txt rename to erpnext/hr/Role/Employee/Employee.txt diff --git a/hr/Role/HR Manager/HR Manager.txt b/erpnext/hr/Role/HR Manager/HR Manager.txt similarity index 100% rename from hr/Role/HR Manager/HR Manager.txt rename to erpnext/hr/Role/HR Manager/HR Manager.txt diff --git a/hr/Role/HR User/HR User.txt b/erpnext/hr/Role/HR User/HR User.txt similarity index 100% rename from hr/Role/HR User/HR User.txt rename to erpnext/hr/Role/HR User/HR User.txt diff --git a/hr/doctype/__init__.py b/erpnext/hr/__init__.py similarity index 100% rename from hr/doctype/__init__.py rename to erpnext/hr/__init__.py diff --git a/hr/doctype/absent_days_detail/__init__.py b/erpnext/hr/doctype/__init__.py similarity index 100% rename from hr/doctype/absent_days_detail/__init__.py rename to erpnext/hr/doctype/__init__.py diff --git a/hr/doctype/appraisal/__init__.py b/erpnext/hr/doctype/absent_days_detail/__init__.py similarity index 100% rename from hr/doctype/appraisal/__init__.py rename to erpnext/hr/doctype/absent_days_detail/__init__.py diff --git a/hr/doctype/absent_days_detail/absent_days_detail.txt b/erpnext/hr/doctype/absent_days_detail/absent_days_detail.txt similarity index 100% rename from hr/doctype/absent_days_detail/absent_days_detail.txt rename to erpnext/hr/doctype/absent_days_detail/absent_days_detail.txt diff --git a/hr/doctype/appraisal_detail/__init__.py b/erpnext/hr/doctype/appraisal/__init__.py similarity index 100% rename from hr/doctype/appraisal_detail/__init__.py rename to erpnext/hr/doctype/appraisal/__init__.py diff --git a/hr/doctype/appraisal/appraisal.js b/erpnext/hr/doctype/appraisal/appraisal.js similarity index 100% rename from hr/doctype/appraisal/appraisal.js rename to erpnext/hr/doctype/appraisal/appraisal.js diff --git a/hr/doctype/appraisal/appraisal.py b/erpnext/hr/doctype/appraisal/appraisal.py similarity index 100% rename from hr/doctype/appraisal/appraisal.py rename to erpnext/hr/doctype/appraisal/appraisal.py diff --git a/hr/doctype/appraisal/appraisal.txt b/erpnext/hr/doctype/appraisal/appraisal.txt similarity index 100% rename from hr/doctype/appraisal/appraisal.txt rename to erpnext/hr/doctype/appraisal/appraisal.txt diff --git a/hr/doctype/attendance/__init__.py b/erpnext/hr/doctype/appraisal_detail/__init__.py similarity index 100% rename from hr/doctype/attendance/__init__.py rename to erpnext/hr/doctype/appraisal_detail/__init__.py diff --git a/hr/doctype/appraisal_detail/appraisal_detail.txt b/erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt similarity index 100% rename from hr/doctype/appraisal_detail/appraisal_detail.txt rename to erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt diff --git a/hr/doctype/attendance_control_panel/__init__.py b/erpnext/hr/doctype/attendance/__init__.py similarity index 100% rename from hr/doctype/attendance_control_panel/__init__.py rename to erpnext/hr/doctype/attendance/__init__.py diff --git a/hr/doctype/attendance/attendance.js b/erpnext/hr/doctype/attendance/attendance.js similarity index 100% rename from hr/doctype/attendance/attendance.js rename to erpnext/hr/doctype/attendance/attendance.js diff --git a/hr/doctype/attendance/attendance.py b/erpnext/hr/doctype/attendance/attendance.py similarity index 100% rename from hr/doctype/attendance/attendance.py rename to erpnext/hr/doctype/attendance/attendance.py diff --git a/hr/doctype/attendance/attendance.txt b/erpnext/hr/doctype/attendance/attendance.txt similarity index 100% rename from hr/doctype/attendance/attendance.txt rename to erpnext/hr/doctype/attendance/attendance.txt diff --git a/hr/doctype/branch/__init__.py b/erpnext/hr/doctype/attendance_control_panel/__init__.py similarity index 100% rename from hr/doctype/branch/__init__.py rename to erpnext/hr/doctype/attendance_control_panel/__init__.py diff --git a/hr/doctype/attendance_control_panel/attendance_control_panel.js b/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.js similarity index 100% rename from hr/doctype/attendance_control_panel/attendance_control_panel.js rename to erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.js diff --git a/hr/doctype/attendance_control_panel/attendance_control_panel.py b/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.py similarity index 100% rename from hr/doctype/attendance_control_panel/attendance_control_panel.py rename to erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.py diff --git a/hr/doctype/attendance_control_panel/attendance_control_panel.txt b/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.txt similarity index 100% rename from hr/doctype/attendance_control_panel/attendance_control_panel.txt rename to erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.txt diff --git a/hr/doctype/chapter_vi_a_detail/__init__.py b/erpnext/hr/doctype/branch/__init__.py similarity index 100% rename from hr/doctype/chapter_vi_a_detail/__init__.py rename to erpnext/hr/doctype/branch/__init__.py diff --git a/hr/doctype/branch/branch.js b/erpnext/hr/doctype/branch/branch.js similarity index 100% rename from hr/doctype/branch/branch.js rename to erpnext/hr/doctype/branch/branch.js diff --git a/hr/doctype/branch/branch.txt b/erpnext/hr/doctype/branch/branch.txt similarity index 100% rename from hr/doctype/branch/branch.txt rename to erpnext/hr/doctype/branch/branch.txt diff --git a/hr/doctype/declaration_detail/__init__.py b/erpnext/hr/doctype/chapter_vi_a_detail/__init__.py similarity index 100% rename from hr/doctype/declaration_detail/__init__.py rename to erpnext/hr/doctype/chapter_vi_a_detail/__init__.py diff --git a/hr/doctype/chapter_vi_a_detail/chapter_vi_a_detail.txt b/erpnext/hr/doctype/chapter_vi_a_detail/chapter_vi_a_detail.txt similarity index 100% rename from hr/doctype/chapter_vi_a_detail/chapter_vi_a_detail.txt rename to erpnext/hr/doctype/chapter_vi_a_detail/chapter_vi_a_detail.txt diff --git a/hr/doctype/deduction_detail/__init__.py b/erpnext/hr/doctype/declaration_detail/__init__.py similarity index 100% rename from hr/doctype/deduction_detail/__init__.py rename to erpnext/hr/doctype/declaration_detail/__init__.py diff --git a/hr/doctype/declaration_detail/declaration_detail.txt b/erpnext/hr/doctype/declaration_detail/declaration_detail.txt similarity index 100% rename from hr/doctype/declaration_detail/declaration_detail.txt rename to erpnext/hr/doctype/declaration_detail/declaration_detail.txt diff --git a/hr/doctype/deduction_type/__init__.py b/erpnext/hr/doctype/deduction_detail/__init__.py similarity index 100% rename from hr/doctype/deduction_type/__init__.py rename to erpnext/hr/doctype/deduction_detail/__init__.py diff --git a/hr/doctype/deduction_detail/deduction_detail.txt b/erpnext/hr/doctype/deduction_detail/deduction_detail.txt similarity index 100% rename from hr/doctype/deduction_detail/deduction_detail.txt rename to erpnext/hr/doctype/deduction_detail/deduction_detail.txt diff --git a/hr/doctype/department/__init__.py b/erpnext/hr/doctype/deduction_type/__init__.py similarity index 100% rename from hr/doctype/department/__init__.py rename to erpnext/hr/doctype/deduction_type/__init__.py diff --git a/hr/doctype/deduction_type/deduction_type.js b/erpnext/hr/doctype/deduction_type/deduction_type.js similarity index 100% rename from hr/doctype/deduction_type/deduction_type.js rename to erpnext/hr/doctype/deduction_type/deduction_type.js diff --git a/hr/doctype/deduction_type/deduction_type.txt b/erpnext/hr/doctype/deduction_type/deduction_type.txt similarity index 100% rename from hr/doctype/deduction_type/deduction_type.txt rename to erpnext/hr/doctype/deduction_type/deduction_type.txt diff --git a/hr/doctype/designation/__init__.py b/erpnext/hr/doctype/department/__init__.py similarity index 100% rename from hr/doctype/designation/__init__.py rename to erpnext/hr/doctype/department/__init__.py diff --git a/hr/doctype/department/department.js b/erpnext/hr/doctype/department/department.js similarity index 100% rename from hr/doctype/department/department.js rename to erpnext/hr/doctype/department/department.js diff --git a/hr/doctype/department/department.txt b/erpnext/hr/doctype/department/department.txt similarity index 100% rename from hr/doctype/department/department.txt rename to erpnext/hr/doctype/department/department.txt diff --git a/hr/doctype/earn_deduction_detail/__init__.py b/erpnext/hr/doctype/designation/__init__.py similarity index 100% rename from hr/doctype/earn_deduction_detail/__init__.py rename to erpnext/hr/doctype/designation/__init__.py diff --git a/hr/doctype/designation/designation.js b/erpnext/hr/doctype/designation/designation.js similarity index 100% rename from hr/doctype/designation/designation.js rename to erpnext/hr/doctype/designation/designation.js diff --git a/hr/doctype/designation/designation.txt b/erpnext/hr/doctype/designation/designation.txt similarity index 100% rename from hr/doctype/designation/designation.txt rename to erpnext/hr/doctype/designation/designation.txt diff --git a/hr/doctype/earning_detail/__init__.py b/erpnext/hr/doctype/earn_deduction_detail/__init__.py similarity index 100% rename from hr/doctype/earning_detail/__init__.py rename to erpnext/hr/doctype/earn_deduction_detail/__init__.py diff --git a/hr/doctype/earn_deduction_detail/earn_deduction_detail.txt b/erpnext/hr/doctype/earn_deduction_detail/earn_deduction_detail.txt similarity index 100% rename from hr/doctype/earn_deduction_detail/earn_deduction_detail.txt rename to erpnext/hr/doctype/earn_deduction_detail/earn_deduction_detail.txt diff --git a/hr/doctype/earning_type/__init__.py b/erpnext/hr/doctype/earning_detail/__init__.py similarity index 100% rename from hr/doctype/earning_type/__init__.py rename to erpnext/hr/doctype/earning_detail/__init__.py diff --git a/hr/doctype/earning_detail/earning_detail.txt b/erpnext/hr/doctype/earning_detail/earning_detail.txt similarity index 100% rename from hr/doctype/earning_detail/earning_detail.txt rename to erpnext/hr/doctype/earning_detail/earning_detail.txt diff --git a/hr/doctype/educational_qualifications/__init__.py b/erpnext/hr/doctype/earning_type/__init__.py similarity index 100% rename from hr/doctype/educational_qualifications/__init__.py rename to erpnext/hr/doctype/earning_type/__init__.py diff --git a/hr/doctype/earning_type/earning_type.js b/erpnext/hr/doctype/earning_type/earning_type.js similarity index 100% rename from hr/doctype/earning_type/earning_type.js rename to erpnext/hr/doctype/earning_type/earning_type.js diff --git a/hr/doctype/earning_type/earning_type.txt b/erpnext/hr/doctype/earning_type/earning_type.txt similarity index 100% rename from hr/doctype/earning_type/earning_type.txt rename to erpnext/hr/doctype/earning_type/earning_type.txt diff --git a/hr/doctype/educational_qualifications_detail/__init__.py b/erpnext/hr/doctype/educational_qualifications/__init__.py similarity index 100% rename from hr/doctype/educational_qualifications_detail/__init__.py rename to erpnext/hr/doctype/educational_qualifications/__init__.py diff --git a/hr/doctype/educational_qualifications/educational_qualifications.txt b/erpnext/hr/doctype/educational_qualifications/educational_qualifications.txt similarity index 100% rename from hr/doctype/educational_qualifications/educational_qualifications.txt rename to erpnext/hr/doctype/educational_qualifications/educational_qualifications.txt diff --git a/hr/doctype/employee/__init__.py b/erpnext/hr/doctype/educational_qualifications_detail/__init__.py similarity index 100% rename from hr/doctype/employee/__init__.py rename to erpnext/hr/doctype/educational_qualifications_detail/__init__.py diff --git a/hr/doctype/educational_qualifications_detail/educational_qualifications_detail.txt b/erpnext/hr/doctype/educational_qualifications_detail/educational_qualifications_detail.txt similarity index 100% rename from hr/doctype/educational_qualifications_detail/educational_qualifications_detail.txt rename to erpnext/hr/doctype/educational_qualifications_detail/educational_qualifications_detail.txt diff --git a/hr/doctype/employee_profile/__init__.py b/erpnext/hr/doctype/employee/__init__.py similarity index 100% rename from hr/doctype/employee_profile/__init__.py rename to erpnext/hr/doctype/employee/__init__.py diff --git a/hr/doctype/employee/employee.js b/erpnext/hr/doctype/employee/employee.js similarity index 100% rename from hr/doctype/employee/employee.js rename to erpnext/hr/doctype/employee/employee.js diff --git a/hr/doctype/employee/employee.py b/erpnext/hr/doctype/employee/employee.py similarity index 100% rename from hr/doctype/employee/employee.py rename to erpnext/hr/doctype/employee/employee.py diff --git a/hr/doctype/employee/employee.txt b/erpnext/hr/doctype/employee/employee.txt similarity index 100% rename from hr/doctype/employee/employee.txt rename to erpnext/hr/doctype/employee/employee.txt diff --git a/hr/doctype/employment_type/__init__.py b/erpnext/hr/doctype/employee_profile/__init__.py similarity index 100% rename from hr/doctype/employment_type/__init__.py rename to erpnext/hr/doctype/employee_profile/__init__.py diff --git a/hr/doctype/employee_profile/employee_profile.js b/erpnext/hr/doctype/employee_profile/employee_profile.js similarity index 100% rename from hr/doctype/employee_profile/employee_profile.js rename to erpnext/hr/doctype/employee_profile/employee_profile.js diff --git a/hr/doctype/employee_profile/employee_profile.py b/erpnext/hr/doctype/employee_profile/employee_profile.py similarity index 100% rename from hr/doctype/employee_profile/employee_profile.py rename to erpnext/hr/doctype/employee_profile/employee_profile.py diff --git a/hr/doctype/employee_profile/employee_profile.txt b/erpnext/hr/doctype/employee_profile/employee_profile.txt similarity index 100% rename from hr/doctype/employee_profile/employee_profile.txt rename to erpnext/hr/doctype/employee_profile/employee_profile.txt diff --git a/hr/doctype/expense_type/__init__.py b/erpnext/hr/doctype/employment_type/__init__.py similarity index 100% rename from hr/doctype/expense_type/__init__.py rename to erpnext/hr/doctype/employment_type/__init__.py diff --git a/hr/doctype/employment_type/employment_type.js b/erpnext/hr/doctype/employment_type/employment_type.js similarity index 100% rename from hr/doctype/employment_type/employment_type.js rename to erpnext/hr/doctype/employment_type/employment_type.js diff --git a/hr/doctype/employment_type/employment_type.txt b/erpnext/hr/doctype/employment_type/employment_type.txt similarity index 100% rename from hr/doctype/employment_type/employment_type.txt rename to erpnext/hr/doctype/employment_type/employment_type.txt diff --git a/hr/doctype/expense_voucher/__init__.py b/erpnext/hr/doctype/expense_type/__init__.py similarity index 100% rename from hr/doctype/expense_voucher/__init__.py rename to erpnext/hr/doctype/expense_type/__init__.py diff --git a/hr/doctype/expense_type/expense_type.js b/erpnext/hr/doctype/expense_type/expense_type.js similarity index 100% rename from hr/doctype/expense_type/expense_type.js rename to erpnext/hr/doctype/expense_type/expense_type.js diff --git a/hr/doctype/expense_type/expense_type.txt b/erpnext/hr/doctype/expense_type/expense_type.txt similarity index 100% rename from hr/doctype/expense_type/expense_type.txt rename to erpnext/hr/doctype/expense_type/expense_type.txt diff --git a/hr/doctype/expense_voucher_detail/__init__.py b/erpnext/hr/doctype/expense_voucher/__init__.py similarity index 100% rename from hr/doctype/expense_voucher_detail/__init__.py rename to erpnext/hr/doctype/expense_voucher/__init__.py diff --git a/hr/doctype/expense_voucher/expense_voucher.js b/erpnext/hr/doctype/expense_voucher/expense_voucher.js similarity index 100% rename from hr/doctype/expense_voucher/expense_voucher.js rename to erpnext/hr/doctype/expense_voucher/expense_voucher.js diff --git a/hr/doctype/expense_voucher/expense_voucher.py b/erpnext/hr/doctype/expense_voucher/expense_voucher.py similarity index 100% rename from hr/doctype/expense_voucher/expense_voucher.py rename to erpnext/hr/doctype/expense_voucher/expense_voucher.py diff --git a/hr/doctype/expense_voucher/expense_voucher.txt b/erpnext/hr/doctype/expense_voucher/expense_voucher.txt similarity index 100% rename from hr/doctype/expense_voucher/expense_voucher.txt rename to erpnext/hr/doctype/expense_voucher/expense_voucher.txt diff --git a/hr/doctype/experience_in_company_detail/__init__.py b/erpnext/hr/doctype/expense_voucher_detail/__init__.py similarity index 100% rename from hr/doctype/experience_in_company_detail/__init__.py rename to erpnext/hr/doctype/expense_voucher_detail/__init__.py diff --git a/hr/doctype/expense_voucher_detail/expense_voucher_detail.txt b/erpnext/hr/doctype/expense_voucher_detail/expense_voucher_detail.txt similarity index 100% rename from hr/doctype/expense_voucher_detail/expense_voucher_detail.txt rename to erpnext/hr/doctype/expense_voucher_detail/expense_voucher_detail.txt diff --git a/hr/doctype/grade/__init__.py b/erpnext/hr/doctype/experience_in_company_detail/__init__.py similarity index 100% rename from hr/doctype/grade/__init__.py rename to erpnext/hr/doctype/experience_in_company_detail/__init__.py diff --git a/hr/doctype/experience_in_company_detail/experience_in_company_detail.txt b/erpnext/hr/doctype/experience_in_company_detail/experience_in_company_detail.txt similarity index 100% rename from hr/doctype/experience_in_company_detail/experience_in_company_detail.txt rename to erpnext/hr/doctype/experience_in_company_detail/experience_in_company_detail.txt diff --git a/hr/doctype/holiday_list/__init__.py b/erpnext/hr/doctype/grade/__init__.py similarity index 100% rename from hr/doctype/holiday_list/__init__.py rename to erpnext/hr/doctype/grade/__init__.py diff --git a/hr/doctype/grade/grade.js b/erpnext/hr/doctype/grade/grade.js similarity index 100% rename from hr/doctype/grade/grade.js rename to erpnext/hr/doctype/grade/grade.js diff --git a/hr/doctype/grade/grade.txt b/erpnext/hr/doctype/grade/grade.txt similarity index 100% rename from hr/doctype/grade/grade.txt rename to erpnext/hr/doctype/grade/grade.txt diff --git a/hr/doctype/holiday_list_detail/__init__.py b/erpnext/hr/doctype/holiday_list/__init__.py similarity index 100% rename from hr/doctype/holiday_list_detail/__init__.py rename to erpnext/hr/doctype/holiday_list/__init__.py diff --git a/hr/doctype/holiday_list/holiday_list.js b/erpnext/hr/doctype/holiday_list/holiday_list.js similarity index 100% rename from hr/doctype/holiday_list/holiday_list.js rename to erpnext/hr/doctype/holiday_list/holiday_list.js diff --git a/hr/doctype/holiday_list/holiday_list.py b/erpnext/hr/doctype/holiday_list/holiday_list.py similarity index 100% rename from hr/doctype/holiday_list/holiday_list.py rename to erpnext/hr/doctype/holiday_list/holiday_list.py diff --git a/hr/doctype/holiday_list/holiday_list.txt b/erpnext/hr/doctype/holiday_list/holiday_list.txt similarity index 100% rename from hr/doctype/holiday_list/holiday_list.txt rename to erpnext/hr/doctype/holiday_list/holiday_list.txt diff --git a/hr/doctype/invest_80_declaration_detail/__init__.py b/erpnext/hr/doctype/holiday_list_detail/__init__.py similarity index 100% rename from hr/doctype/invest_80_declaration_detail/__init__.py rename to erpnext/hr/doctype/holiday_list_detail/__init__.py diff --git a/hr/doctype/holiday_list_detail/holiday_list_detail.txt b/erpnext/hr/doctype/holiday_list_detail/holiday_list_detail.txt similarity index 100% rename from hr/doctype/holiday_list_detail/holiday_list_detail.txt rename to erpnext/hr/doctype/holiday_list_detail/holiday_list_detail.txt diff --git a/hr/doctype/it_checklist/__init__.py b/erpnext/hr/doctype/invest_80_declaration_detail/__init__.py similarity index 100% rename from hr/doctype/it_checklist/__init__.py rename to erpnext/hr/doctype/invest_80_declaration_detail/__init__.py diff --git a/hr/doctype/invest_80_declaration_detail/invest_80_declaration_detail.txt b/erpnext/hr/doctype/invest_80_declaration_detail/invest_80_declaration_detail.txt similarity index 100% rename from hr/doctype/invest_80_declaration_detail/invest_80_declaration_detail.txt rename to erpnext/hr/doctype/invest_80_declaration_detail/invest_80_declaration_detail.txt diff --git a/hr/doctype/kra_sheet/__init__.py b/erpnext/hr/doctype/it_checklist/__init__.py similarity index 100% rename from hr/doctype/kra_sheet/__init__.py rename to erpnext/hr/doctype/it_checklist/__init__.py diff --git a/hr/doctype/it_checklist/it_checklist.js b/erpnext/hr/doctype/it_checklist/it_checklist.js similarity index 100% rename from hr/doctype/it_checklist/it_checklist.js rename to erpnext/hr/doctype/it_checklist/it_checklist.js diff --git a/hr/doctype/it_checklist/it_checklist.py b/erpnext/hr/doctype/it_checklist/it_checklist.py similarity index 100% rename from hr/doctype/it_checklist/it_checklist.py rename to erpnext/hr/doctype/it_checklist/it_checklist.py diff --git a/hr/doctype/it_checklist/it_checklist.txt b/erpnext/hr/doctype/it_checklist/it_checklist.txt similarity index 100% rename from hr/doctype/it_checklist/it_checklist.txt rename to erpnext/hr/doctype/it_checklist/it_checklist.txt diff --git a/hr/doctype/kra_template/__init__.py b/erpnext/hr/doctype/kra_sheet/__init__.py similarity index 100% rename from hr/doctype/kra_template/__init__.py rename to erpnext/hr/doctype/kra_sheet/__init__.py diff --git a/hr/doctype/kra_sheet/kra_sheet.txt b/erpnext/hr/doctype/kra_sheet/kra_sheet.txt similarity index 100% rename from hr/doctype/kra_sheet/kra_sheet.txt rename to erpnext/hr/doctype/kra_sheet/kra_sheet.txt diff --git a/hr/doctype/leave_allocation/__init__.py b/erpnext/hr/doctype/kra_template/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from hr/doctype/leave_allocation/__init__.py rename to erpnext/hr/doctype/kra_template/__init__.py diff --git a/hr/doctype/kra_template/kra_template.js b/erpnext/hr/doctype/kra_template/kra_template.js similarity index 100% rename from hr/doctype/kra_template/kra_template.js rename to erpnext/hr/doctype/kra_template/kra_template.js diff --git a/hr/doctype/kra_template/kra_template.txt b/erpnext/hr/doctype/kra_template/kra_template.txt similarity index 100% rename from hr/doctype/kra_template/kra_template.txt rename to erpnext/hr/doctype/kra_template/kra_template.txt diff --git a/hr/doctype/leave_application/__init__.py b/erpnext/hr/doctype/leave_allocation/__init__.py similarity index 100% rename from hr/doctype/leave_application/__init__.py rename to erpnext/hr/doctype/leave_allocation/__init__.py diff --git a/hr/doctype/leave_allocation/leave_allocation.js b/erpnext/hr/doctype/leave_allocation/leave_allocation.js similarity index 100% rename from hr/doctype/leave_allocation/leave_allocation.js rename to erpnext/hr/doctype/leave_allocation/leave_allocation.js diff --git a/hr/doctype/leave_allocation/leave_allocation.py b/erpnext/hr/doctype/leave_allocation/leave_allocation.py similarity index 100% rename from hr/doctype/leave_allocation/leave_allocation.py rename to erpnext/hr/doctype/leave_allocation/leave_allocation.py diff --git a/hr/doctype/leave_allocation/leave_allocation.txt b/erpnext/hr/doctype/leave_allocation/leave_allocation.txt similarity index 100% rename from hr/doctype/leave_allocation/leave_allocation.txt rename to erpnext/hr/doctype/leave_allocation/leave_allocation.txt diff --git a/hr/doctype/leave_control_panel/__init__.py b/erpnext/hr/doctype/leave_application/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from hr/doctype/leave_control_panel/__init__.py rename to erpnext/hr/doctype/leave_application/__init__.py diff --git a/hr/doctype/leave_application/leave_application.js b/erpnext/hr/doctype/leave_application/leave_application.js similarity index 100% rename from hr/doctype/leave_application/leave_application.js rename to erpnext/hr/doctype/leave_application/leave_application.js diff --git a/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py similarity index 100% rename from hr/doctype/leave_application/leave_application.py rename to erpnext/hr/doctype/leave_application/leave_application.py diff --git a/hr/doctype/leave_application/leave_application.txt b/erpnext/hr/doctype/leave_application/leave_application.txt similarity index 100% rename from hr/doctype/leave_application/leave_application.txt rename to erpnext/hr/doctype/leave_application/leave_application.txt diff --git a/hr/doctype/leave_type/__init__.py b/erpnext/hr/doctype/leave_control_panel/__init__.py similarity index 100% rename from hr/doctype/leave_type/__init__.py rename to erpnext/hr/doctype/leave_control_panel/__init__.py diff --git a/hr/doctype/leave_control_panel/leave_control_panel.js b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.js similarity index 100% rename from hr/doctype/leave_control_panel/leave_control_panel.js rename to erpnext/hr/doctype/leave_control_panel/leave_control_panel.js diff --git a/hr/doctype/leave_control_panel/leave_control_panel.py b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.py similarity index 100% rename from hr/doctype/leave_control_panel/leave_control_panel.py rename to erpnext/hr/doctype/leave_control_panel/leave_control_panel.py diff --git a/hr/doctype/leave_control_panel/leave_control_panel.txt b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.txt similarity index 100% rename from hr/doctype/leave_control_panel/leave_control_panel.txt rename to erpnext/hr/doctype/leave_control_panel/leave_control_panel.txt diff --git a/hr/doctype/other_income_detail/__init__.py b/erpnext/hr/doctype/leave_type/__init__.py similarity index 100% rename from hr/doctype/other_income_detail/__init__.py rename to erpnext/hr/doctype/leave_type/__init__.py diff --git a/hr/doctype/leave_type/leave_type.js b/erpnext/hr/doctype/leave_type/leave_type.js similarity index 100% rename from hr/doctype/leave_type/leave_type.js rename to erpnext/hr/doctype/leave_type/leave_type.js diff --git a/hr/doctype/leave_type/leave_type.txt b/erpnext/hr/doctype/leave_type/leave_type.txt similarity index 100% rename from hr/doctype/leave_type/leave_type.txt rename to erpnext/hr/doctype/leave_type/leave_type.txt diff --git a/hr/doctype/payroll_rule/__init__.py b/erpnext/hr/doctype/other_income_detail/__init__.py similarity index 100% rename from hr/doctype/payroll_rule/__init__.py rename to erpnext/hr/doctype/other_income_detail/__init__.py diff --git a/hr/doctype/other_income_detail/other_income_detail.txt b/erpnext/hr/doctype/other_income_detail/other_income_detail.txt similarity index 100% rename from hr/doctype/other_income_detail/other_income_detail.txt rename to erpnext/hr/doctype/other_income_detail/other_income_detail.txt diff --git a/hr/doctype/previous_experience_detail/__init__.py b/erpnext/hr/doctype/payroll_rule/__init__.py similarity index 100% rename from hr/doctype/previous_experience_detail/__init__.py rename to erpnext/hr/doctype/payroll_rule/__init__.py diff --git a/hr/doctype/payroll_rule/payroll_rule.js b/erpnext/hr/doctype/payroll_rule/payroll_rule.js similarity index 100% rename from hr/doctype/payroll_rule/payroll_rule.js rename to erpnext/hr/doctype/payroll_rule/payroll_rule.js diff --git a/hr/doctype/payroll_rule/payroll_rule.py b/erpnext/hr/doctype/payroll_rule/payroll_rule.py similarity index 100% rename from hr/doctype/payroll_rule/payroll_rule.py rename to erpnext/hr/doctype/payroll_rule/payroll_rule.py diff --git a/hr/doctype/payroll_rule/payroll_rule.txt b/erpnext/hr/doctype/payroll_rule/payroll_rule.txt similarity index 100% rename from hr/doctype/payroll_rule/payroll_rule.txt rename to erpnext/hr/doctype/payroll_rule/payroll_rule.txt diff --git a/hr/doctype/professional_training_details/__init__.py b/erpnext/hr/doctype/previous_experience_detail/__init__.py similarity index 100% rename from hr/doctype/professional_training_details/__init__.py rename to erpnext/hr/doctype/previous_experience_detail/__init__.py diff --git a/hr/doctype/previous_experience_detail/previous_experience_detail.txt b/erpnext/hr/doctype/previous_experience_detail/previous_experience_detail.txt similarity index 100% rename from hr/doctype/previous_experience_detail/previous_experience_detail.txt rename to erpnext/hr/doctype/previous_experience_detail/previous_experience_detail.txt diff --git a/hr/doctype/salary_slip/__init__.py b/erpnext/hr/doctype/professional_training_details/__init__.py similarity index 100% rename from hr/doctype/salary_slip/__init__.py rename to erpnext/hr/doctype/professional_training_details/__init__.py diff --git a/hr/doctype/professional_training_details/professional_training_details.txt b/erpnext/hr/doctype/professional_training_details/professional_training_details.txt similarity index 100% rename from hr/doctype/professional_training_details/professional_training_details.txt rename to erpnext/hr/doctype/professional_training_details/professional_training_details.txt diff --git a/hr/doctype/salary_manager/__init__.py b/erpnext/hr/doctype/salary_manager/__init__.py similarity index 100% rename from hr/doctype/salary_manager/__init__.py rename to erpnext/hr/doctype/salary_manager/__init__.py diff --git a/hr/doctype/salary_manager/salary_manager.js b/erpnext/hr/doctype/salary_manager/salary_manager.js similarity index 100% rename from hr/doctype/salary_manager/salary_manager.js rename to erpnext/hr/doctype/salary_manager/salary_manager.js diff --git a/hr/doctype/salary_manager/salary_manager.py b/erpnext/hr/doctype/salary_manager/salary_manager.py similarity index 100% rename from hr/doctype/salary_manager/salary_manager.py rename to erpnext/hr/doctype/salary_manager/salary_manager.py diff --git a/hr/doctype/salary_manager/salary_manager.txt b/erpnext/hr/doctype/salary_manager/salary_manager.txt similarity index 100% rename from hr/doctype/salary_manager/salary_manager.txt rename to erpnext/hr/doctype/salary_manager/salary_manager.txt diff --git a/hr/doctype/salary_manager/test_salary_manager.py b/erpnext/hr/doctype/salary_manager/test_salary_manager.py similarity index 100% rename from hr/doctype/salary_manager/test_salary_manager.py rename to erpnext/hr/doctype/salary_manager/test_salary_manager.py diff --git a/hr/doctype/salary_structure/__init__.py b/erpnext/hr/doctype/salary_slip/__init__.py similarity index 100% rename from hr/doctype/salary_structure/__init__.py rename to erpnext/hr/doctype/salary_slip/__init__.py diff --git a/hr/doctype/salary_slip/salary_slip.js b/erpnext/hr/doctype/salary_slip/salary_slip.js similarity index 100% rename from hr/doctype/salary_slip/salary_slip.js rename to erpnext/hr/doctype/salary_slip/salary_slip.js diff --git a/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py similarity index 100% rename from hr/doctype/salary_slip/salary_slip.py rename to erpnext/hr/doctype/salary_slip/salary_slip.py diff --git a/hr/doctype/salary_slip/salary_slip.txt b/erpnext/hr/doctype/salary_slip/salary_slip.txt similarity index 100% rename from hr/doctype/salary_slip/salary_slip.txt rename to erpnext/hr/doctype/salary_slip/salary_slip.txt diff --git a/hr/doctype/ss_deduction_detail/__init__.py b/erpnext/hr/doctype/salary_structure/__init__.py similarity index 100% rename from hr/doctype/ss_deduction_detail/__init__.py rename to erpnext/hr/doctype/salary_structure/__init__.py diff --git a/hr/doctype/salary_structure/salary_structure.js b/erpnext/hr/doctype/salary_structure/salary_structure.js similarity index 100% rename from hr/doctype/salary_structure/salary_structure.js rename to erpnext/hr/doctype/salary_structure/salary_structure.js diff --git a/hr/doctype/salary_structure/salary_structure.py b/erpnext/hr/doctype/salary_structure/salary_structure.py similarity index 100% rename from hr/doctype/salary_structure/salary_structure.py rename to erpnext/hr/doctype/salary_structure/salary_structure.py diff --git a/hr/doctype/salary_structure/salary_structure.txt b/erpnext/hr/doctype/salary_structure/salary_structure.txt similarity index 100% rename from hr/doctype/salary_structure/salary_structure.txt rename to erpnext/hr/doctype/salary_structure/salary_structure.txt diff --git a/hr/doctype/ss_earning_detail/__init__.py b/erpnext/hr/doctype/ss_deduction_detail/__init__.py similarity index 100% rename from hr/doctype/ss_earning_detail/__init__.py rename to erpnext/hr/doctype/ss_deduction_detail/__init__.py diff --git a/hr/doctype/ss_deduction_detail/ss_deduction_detail.txt b/erpnext/hr/doctype/ss_deduction_detail/ss_deduction_detail.txt similarity index 100% rename from hr/doctype/ss_deduction_detail/ss_deduction_detail.txt rename to erpnext/hr/doctype/ss_deduction_detail/ss_deduction_detail.txt diff --git a/hr/page/__init__.py b/erpnext/hr/doctype/ss_earning_detail/__init__.py similarity index 100% rename from hr/page/__init__.py rename to erpnext/hr/doctype/ss_earning_detail/__init__.py diff --git a/hr/doctype/ss_earning_detail/ss_earning_detail.txt b/erpnext/hr/doctype/ss_earning_detail/ss_earning_detail.txt similarity index 100% rename from hr/doctype/ss_earning_detail/ss_earning_detail.txt rename to erpnext/hr/doctype/ss_earning_detail/ss_earning_detail.txt diff --git a/hr/search_criteria/__init__.py b/erpnext/hr/page/__init__.py similarity index 100% rename from hr/search_criteria/__init__.py rename to erpnext/hr/page/__init__.py diff --git a/hr/search_criteria/employee_appraisals/__init__.py b/erpnext/hr/search_criteria/__init__.py similarity index 100% rename from hr/search_criteria/employee_appraisals/__init__.py rename to erpnext/hr/search_criteria/__init__.py diff --git a/hr/search_criteria/employee_details/__init__.py b/erpnext/hr/search_criteria/employee_appraisals/__init__.py similarity index 100% rename from hr/search_criteria/employee_details/__init__.py rename to erpnext/hr/search_criteria/employee_appraisals/__init__.py diff --git a/hr/search_criteria/employee_appraisals/employee_appraisals.txt b/erpnext/hr/search_criteria/employee_appraisals/employee_appraisals.txt similarity index 100% rename from hr/search_criteria/employee_appraisals/employee_appraisals.txt rename to erpnext/hr/search_criteria/employee_appraisals/employee_appraisals.txt diff --git a/hr/search_criteria/employee_in_company_experience/__init__.py b/erpnext/hr/search_criteria/employee_details/__init__.py similarity index 100% rename from hr/search_criteria/employee_in_company_experience/__init__.py rename to erpnext/hr/search_criteria/employee_details/__init__.py diff --git a/hr/search_criteria/employee_details/employee_details.txt b/erpnext/hr/search_criteria/employee_details/employee_details.txt similarity index 100% rename from hr/search_criteria/employee_details/employee_details.txt rename to erpnext/hr/search_criteria/employee_details/employee_details.txt diff --git a/hr/search_criteria/employee_information/__init__.py b/erpnext/hr/search_criteria/employee_in_company_experience/__init__.py similarity index 100% rename from hr/search_criteria/employee_information/__init__.py rename to erpnext/hr/search_criteria/employee_in_company_experience/__init__.py diff --git a/hr/search_criteria/employee_in_company_experience/employee_in_company_experience.txt b/erpnext/hr/search_criteria/employee_in_company_experience/employee_in_company_experience.txt similarity index 100% rename from hr/search_criteria/employee_in_company_experience/employee_in_company_experience.txt rename to erpnext/hr/search_criteria/employee_in_company_experience/employee_in_company_experience.txt diff --git a/hr/search_criteria/employees_birthday/__init__.py b/erpnext/hr/search_criteria/employee_information/__init__.py similarity index 100% rename from hr/search_criteria/employees_birthday/__init__.py rename to erpnext/hr/search_criteria/employee_information/__init__.py diff --git a/hr/search_criteria/employee_information/employee_information.py b/erpnext/hr/search_criteria/employee_information/employee_information.py similarity index 100% rename from hr/search_criteria/employee_information/employee_information.py rename to erpnext/hr/search_criteria/employee_information/employee_information.py diff --git a/hr/search_criteria/employee_information/employee_information.txt b/erpnext/hr/search_criteria/employee_information/employee_information.txt similarity index 100% rename from hr/search_criteria/employee_information/employee_information.txt rename to erpnext/hr/search_criteria/employee_information/employee_information.txt diff --git a/hr/search_criteria/employeewise_balance_leave_report/__init__.py b/erpnext/hr/search_criteria/employees_birthday/__init__.py similarity index 100% rename from hr/search_criteria/employeewise_balance_leave_report/__init__.py rename to erpnext/hr/search_criteria/employees_birthday/__init__.py diff --git a/hr/search_criteria/employees_birthday/employees_birthday.txt b/erpnext/hr/search_criteria/employees_birthday/employees_birthday.txt similarity index 100% rename from hr/search_criteria/employees_birthday/employees_birthday.txt rename to erpnext/hr/search_criteria/employees_birthday/employees_birthday.txt diff --git a/hr/search_criteria/employeewise_leave_transaction_details/__init__.py b/erpnext/hr/search_criteria/employeewise_balance_leave_report/__init__.py similarity index 100% rename from hr/search_criteria/employeewise_leave_transaction_details/__init__.py rename to erpnext/hr/search_criteria/employeewise_balance_leave_report/__init__.py diff --git a/hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.js b/erpnext/hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.js similarity index 100% rename from hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.js rename to erpnext/hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.js diff --git a/hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.py b/erpnext/hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.py similarity index 100% rename from hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.py rename to erpnext/hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.py diff --git a/hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.txt b/erpnext/hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.txt similarity index 100% rename from hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.txt rename to erpnext/hr/search_criteria/employeewise_balance_leave_report/employeewise_balance_leave_report.txt diff --git a/hr/search_criteria/expense_vouchers/__init__.py b/erpnext/hr/search_criteria/employeewise_leave_transaction_details/__init__.py similarity index 100% rename from hr/search_criteria/expense_vouchers/__init__.py rename to erpnext/hr/search_criteria/employeewise_leave_transaction_details/__init__.py diff --git a/hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt b/erpnext/hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt similarity index 100% rename from hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt rename to erpnext/hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt diff --git a/hr/search_criteria/monthly_attendance_details/__init__.py b/erpnext/hr/search_criteria/expense_vouchers/__init__.py similarity index 100% rename from hr/search_criteria/monthly_attendance_details/__init__.py rename to erpnext/hr/search_criteria/expense_vouchers/__init__.py diff --git a/hr/search_criteria/expense_vouchers/expense_vouchers.txt b/erpnext/hr/search_criteria/expense_vouchers/expense_vouchers.txt similarity index 100% rename from hr/search_criteria/expense_vouchers/expense_vouchers.txt rename to erpnext/hr/search_criteria/expense_vouchers/expense_vouchers.txt diff --git a/hr/search_criteria/monthly_salary_register/__init__.py b/erpnext/hr/search_criteria/monthly_attendance_details/__init__.py similarity index 100% rename from hr/search_criteria/monthly_salary_register/__init__.py rename to erpnext/hr/search_criteria/monthly_attendance_details/__init__.py diff --git a/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.js b/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.js similarity index 100% rename from hr/search_criteria/monthly_attendance_details/monthly_attendance_details.js rename to erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.js diff --git a/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.py b/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.py similarity index 100% rename from hr/search_criteria/monthly_attendance_details/monthly_attendance_details.py rename to erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.py diff --git a/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.sql b/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.sql similarity index 100% rename from hr/search_criteria/monthly_attendance_details/monthly_attendance_details.sql rename to erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.sql diff --git a/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt b/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt similarity index 100% rename from hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt rename to erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt diff --git a/hr/search_criteria/new_or_left_employees_for_a_month/__init__.py b/erpnext/hr/search_criteria/monthly_salary_register/__init__.py similarity index 100% rename from hr/search_criteria/new_or_left_employees_for_a_month/__init__.py rename to erpnext/hr/search_criteria/monthly_salary_register/__init__.py diff --git a/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt b/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt similarity index 100% rename from hr/search_criteria/monthly_salary_register/monthly_salary_register.txt rename to erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt diff --git a/hr/search_criteria/pending_appraisals/__init__.py b/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/__init__.py similarity index 100% rename from hr/search_criteria/pending_appraisals/__init__.py rename to erpnext/hr/search_criteria/new_or_left_employees_for_a_month/__init__.py diff --git a/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.js b/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.js similarity index 100% rename from hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.js rename to erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.js diff --git a/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.py b/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.py similarity index 100% rename from hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.py rename to erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.py diff --git a/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt b/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt similarity index 100% rename from hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt rename to erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt diff --git a/hr/search_criteria/pending_expense_vouchers/__init__.py b/erpnext/hr/search_criteria/pending_appraisals/__init__.py similarity index 100% rename from hr/search_criteria/pending_expense_vouchers/__init__.py rename to erpnext/hr/search_criteria/pending_appraisals/__init__.py diff --git a/hr/search_criteria/pending_appraisals/pending_appraisals.js b/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.js similarity index 100% rename from hr/search_criteria/pending_appraisals/pending_appraisals.js rename to erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.js diff --git a/hr/search_criteria/pending_appraisals/pending_appraisals.txt b/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.txt similarity index 100% rename from hr/search_criteria/pending_appraisals/pending_appraisals.txt rename to erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.txt diff --git a/hr/search_criteria/salary_register/__init__.py b/erpnext/hr/search_criteria/pending_expense_vouchers/__init__.py similarity index 100% rename from hr/search_criteria/salary_register/__init__.py rename to erpnext/hr/search_criteria/pending_expense_vouchers/__init__.py diff --git a/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.js b/erpnext/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.js similarity index 100% rename from hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.js rename to erpnext/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.js diff --git a/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.txt b/erpnext/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.txt similarity index 100% rename from hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.txt rename to erpnext/hr/search_criteria/pending_expense_vouchers/pending_expense_vouchers.txt diff --git a/hr/search_criteria/salary_slips/__init__.py b/erpnext/hr/search_criteria/salary_register/__init__.py similarity index 100% rename from hr/search_criteria/salary_slips/__init__.py rename to erpnext/hr/search_criteria/salary_register/__init__.py diff --git a/hr/search_criteria/salary_register/salary_register.js b/erpnext/hr/search_criteria/salary_register/salary_register.js similarity index 100% rename from hr/search_criteria/salary_register/salary_register.js rename to erpnext/hr/search_criteria/salary_register/salary_register.js diff --git a/hr/search_criteria/salary_register/salary_register.py b/erpnext/hr/search_criteria/salary_register/salary_register.py similarity index 100% rename from hr/search_criteria/salary_register/salary_register.py rename to erpnext/hr/search_criteria/salary_register/salary_register.py diff --git a/hr/search_criteria/salary_register/salary_register.txt b/erpnext/hr/search_criteria/salary_register/salary_register.txt similarity index 100% rename from hr/search_criteria/salary_register/salary_register.txt rename to erpnext/hr/search_criteria/salary_register/salary_register.txt diff --git a/hr/search_criteria/salary_structure_details/__init__.py b/erpnext/hr/search_criteria/salary_slips/__init__.py similarity index 100% rename from hr/search_criteria/salary_structure_details/__init__.py rename to erpnext/hr/search_criteria/salary_slips/__init__.py diff --git a/hr/search_criteria/salary_slips/salary_slips.txt b/erpnext/hr/search_criteria/salary_slips/salary_slips.txt similarity index 100% rename from hr/search_criteria/salary_slips/salary_slips.txt rename to erpnext/hr/search_criteria/salary_slips/salary_slips.txt diff --git a/knowledge_base/__init__.py b/erpnext/hr/search_criteria/salary_structure_details/__init__.py similarity index 100% rename from knowledge_base/__init__.py rename to erpnext/hr/search_criteria/salary_structure_details/__init__.py diff --git a/hr/search_criteria/salary_structure_details/salary_structure_details.txt b/erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt similarity index 100% rename from hr/search_criteria/salary_structure_details/salary_structure_details.txt rename to erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt diff --git a/knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt b/erpnext/knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt similarity index 100% rename from knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt rename to erpnext/knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt diff --git a/knowledge_base/doctype/__init__.py b/erpnext/knowledge_base/__init__.py similarity index 100% rename from knowledge_base/doctype/__init__.py rename to erpnext/knowledge_base/__init__.py diff --git a/knowledge_base/doctype/answer/__init__.py b/erpnext/knowledge_base/doctype/__init__.py similarity index 100% rename from knowledge_base/doctype/answer/__init__.py rename to erpnext/knowledge_base/doctype/__init__.py diff --git a/knowledge_base/doctype/question/__init__.py b/erpnext/knowledge_base/doctype/answer/__init__.py similarity index 100% rename from knowledge_base/doctype/question/__init__.py rename to erpnext/knowledge_base/doctype/answer/__init__.py diff --git a/knowledge_base/doctype/answer/answer.txt b/erpnext/knowledge_base/doctype/answer/answer.txt similarity index 100% rename from knowledge_base/doctype/answer/answer.txt rename to erpnext/knowledge_base/doctype/answer/answer.txt diff --git a/knowledge_base/doctype/question_control/__init__.py b/erpnext/knowledge_base/doctype/question/__init__.py similarity index 100% rename from knowledge_base/doctype/question_control/__init__.py rename to erpnext/knowledge_base/doctype/question/__init__.py diff --git a/knowledge_base/doctype/question/question.py b/erpnext/knowledge_base/doctype/question/question.py similarity index 100% rename from knowledge_base/doctype/question/question.py rename to erpnext/knowledge_base/doctype/question/question.py diff --git a/knowledge_base/doctype/question/question.txt b/erpnext/knowledge_base/doctype/question/question.txt similarity index 100% rename from knowledge_base/doctype/question/question.txt rename to erpnext/knowledge_base/doctype/question/question.txt diff --git a/knowledge_base/doctype/question_tag/__init__.py b/erpnext/knowledge_base/doctype/question_control/__init__.py similarity index 100% rename from knowledge_base/doctype/question_tag/__init__.py rename to erpnext/knowledge_base/doctype/question_control/__init__.py diff --git a/knowledge_base/doctype/question_control/question_control.txt b/erpnext/knowledge_base/doctype/question_control/question_control.txt similarity index 100% rename from knowledge_base/doctype/question_control/question_control.txt rename to erpnext/knowledge_base/doctype/question_control/question_control.txt diff --git a/knowledge_base/page/__init__.py b/erpnext/knowledge_base/doctype/question_tag/__init__.py similarity index 100% rename from knowledge_base/page/__init__.py rename to erpnext/knowledge_base/doctype/question_tag/__init__.py diff --git a/knowledge_base/doctype/question_tag/question_tag.txt b/erpnext/knowledge_base/doctype/question_tag/question_tag.txt similarity index 100% rename from knowledge_base/doctype/question_tag/question_tag.txt rename to erpnext/knowledge_base/doctype/question_tag/question_tag.txt diff --git a/knowledge_base/page/question_view/__init__.py b/erpnext/knowledge_base/page/__init__.py similarity index 100% rename from knowledge_base/page/question_view/__init__.py rename to erpnext/knowledge_base/page/__init__.py diff --git a/knowledge_base/page/kb_common/kb_common.js b/erpnext/knowledge_base/page/kb_common/kb_common.js similarity index 100% rename from knowledge_base/page/kb_common/kb_common.js rename to erpnext/knowledge_base/page/kb_common/kb_common.js diff --git a/knowledge_base/page/questions/__init__.py b/erpnext/knowledge_base/page/question_view/__init__.py similarity index 100% rename from knowledge_base/page/questions/__init__.py rename to erpnext/knowledge_base/page/question_view/__init__.py diff --git a/knowledge_base/page/question_view/question_view.css b/erpnext/knowledge_base/page/question_view/question_view.css similarity index 100% rename from knowledge_base/page/question_view/question_view.css rename to erpnext/knowledge_base/page/question_view/question_view.css diff --git a/knowledge_base/page/question_view/question_view.js b/erpnext/knowledge_base/page/question_view/question_view.js similarity index 100% rename from knowledge_base/page/question_view/question_view.js rename to erpnext/knowledge_base/page/question_view/question_view.js diff --git a/knowledge_base/page/question_view/question_view.py b/erpnext/knowledge_base/page/question_view/question_view.py similarity index 100% rename from knowledge_base/page/question_view/question_view.py rename to erpnext/knowledge_base/page/question_view/question_view.py diff --git a/knowledge_base/page/question_view/question_view.txt b/erpnext/knowledge_base/page/question_view/question_view.txt similarity index 100% rename from knowledge_base/page/question_view/question_view.txt rename to erpnext/knowledge_base/page/question_view/question_view.txt diff --git a/patches/__init__.py b/erpnext/knowledge_base/page/questions/__init__.py similarity index 100% rename from patches/__init__.py rename to erpnext/knowledge_base/page/questions/__init__.py diff --git a/knowledge_base/page/questions/questions.css b/erpnext/knowledge_base/page/questions/questions.css similarity index 100% rename from knowledge_base/page/questions/questions.css rename to erpnext/knowledge_base/page/questions/questions.css diff --git a/knowledge_base/page/questions/questions.html b/erpnext/knowledge_base/page/questions/questions.html similarity index 100% rename from knowledge_base/page/questions/questions.html rename to erpnext/knowledge_base/page/questions/questions.html diff --git a/knowledge_base/page/questions/questions.js b/erpnext/knowledge_base/page/questions/questions.js similarity index 100% rename from knowledge_base/page/questions/questions.js rename to erpnext/knowledge_base/page/questions/questions.js diff --git a/knowledge_base/page/questions/questions.py b/erpnext/knowledge_base/page/questions/questions.py similarity index 100% rename from knowledge_base/page/questions/questions.py rename to erpnext/knowledge_base/page/questions/questions.py diff --git a/knowledge_base/page/questions/questions.txt b/erpnext/knowledge_base/page/questions/questions.txt similarity index 100% rename from knowledge_base/page/questions/questions.txt rename to erpnext/knowledge_base/page/questions/questions.txt diff --git a/patches/old_patches/__init__.py b/erpnext/patches/__init__.py similarity index 100% rename from patches/old_patches/__init__.py rename to erpnext/patches/__init__.py diff --git a/patches/delivery_billing_status_patch.py b/erpnext/patches/delivery_billing_status_patch.py similarity index 100% rename from patches/delivery_billing_status_patch.py rename to erpnext/patches/delivery_billing_status_patch.py diff --git a/patches/erpnext_structure_cleanup.py b/erpnext/patches/erpnext_structure_cleanup.py similarity index 100% rename from patches/erpnext_structure_cleanup.py rename to erpnext/patches/erpnext_structure_cleanup.py diff --git a/patches/index_patch.py b/erpnext/patches/index_patch.py similarity index 100% rename from patches/index_patch.py rename to erpnext/patches/index_patch.py diff --git a/production/__init__.py b/erpnext/patches/old_patches/__init__.py similarity index 100% rename from production/__init__.py rename to erpnext/patches/old_patches/__init__.py diff --git a/patches/old_patches/customer_address.py b/erpnext/patches/old_patches/customer_address.py similarity index 100% rename from patches/old_patches/customer_address.py rename to erpnext/patches/old_patches/customer_address.py diff --git a/patches/old_patches/doctype_permission_patch.py b/erpnext/patches/old_patches/doctype_permission_patch.py similarity index 100% rename from patches/old_patches/doctype_permission_patch.py rename to erpnext/patches/old_patches/doctype_permission_patch.py diff --git a/patches/old_patches/feed_patch.py b/erpnext/patches/old_patches/feed_patch.py similarity index 100% rename from patches/old_patches/feed_patch.py rename to erpnext/patches/old_patches/feed_patch.py diff --git a/patches/old_patches/patch_1.py b/erpnext/patches/old_patches/patch_1.py similarity index 100% rename from patches/old_patches/patch_1.py rename to erpnext/patches/old_patches/patch_1.py diff --git a/patches/old_patches/replacecode.py b/erpnext/patches/old_patches/replacecode.py similarity index 100% rename from patches/old_patches/replacecode.py rename to erpnext/patches/old_patches/replacecode.py diff --git a/patches/patch.py b/erpnext/patches/patch.py similarity index 100% rename from patches/patch.py rename to erpnext/patches/patch.py diff --git a/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt b/erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt similarity index 100% rename from production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt rename to erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt diff --git a/production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt b/erpnext/production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt similarity index 100% rename from production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt rename to erpnext/production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt diff --git a/production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt b/erpnext/production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt similarity index 100% rename from production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt rename to erpnext/production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt diff --git a/production/Module Def/Production/Production.txt b/erpnext/production/Module Def/Production/Production.txt similarity index 100% rename from production/Module Def/Production/Production.txt rename to erpnext/production/Module Def/Production/Production.txt diff --git a/production/Role/Production Manager/Production Manager.txt b/erpnext/production/Role/Production Manager/Production Manager.txt similarity index 100% rename from production/Role/Production Manager/Production Manager.txt rename to erpnext/production/Role/Production Manager/Production Manager.txt diff --git a/production/Role/Production User/Production User.txt b/erpnext/production/Role/Production User/Production User.txt similarity index 100% rename from production/Role/Production User/Production User.txt rename to erpnext/production/Role/Production User/Production User.txt diff --git a/production/doctype/__init__.py b/erpnext/production/__init__.py similarity index 100% rename from production/doctype/__init__.py rename to erpnext/production/__init__.py diff --git a/production/doctype/bill_of_materials/__init__.py b/erpnext/production/doctype/__init__.py similarity index 100% rename from production/doctype/bill_of_materials/__init__.py rename to erpnext/production/doctype/__init__.py diff --git a/production/doctype/bom_control/__init__.py b/erpnext/production/doctype/bill_of_materials/__init__.py similarity index 100% rename from production/doctype/bom_control/__init__.py rename to erpnext/production/doctype/bill_of_materials/__init__.py diff --git a/production/doctype/bill_of_materials/bill_of_materials.js b/erpnext/production/doctype/bill_of_materials/bill_of_materials.js similarity index 100% rename from production/doctype/bill_of_materials/bill_of_materials.js rename to erpnext/production/doctype/bill_of_materials/bill_of_materials.js diff --git a/production/doctype/bill_of_materials/bill_of_materials.py b/erpnext/production/doctype/bill_of_materials/bill_of_materials.py similarity index 100% rename from production/doctype/bill_of_materials/bill_of_materials.py rename to erpnext/production/doctype/bill_of_materials/bill_of_materials.py diff --git a/production/doctype/bill_of_materials/bill_of_materials.txt b/erpnext/production/doctype/bill_of_materials/bill_of_materials.txt similarity index 100% rename from production/doctype/bill_of_materials/bill_of_materials.txt rename to erpnext/production/doctype/bill_of_materials/bill_of_materials.txt diff --git a/production/doctype/bom_material/__init__.py b/erpnext/production/doctype/bom_control/__init__.py similarity index 100% rename from production/doctype/bom_material/__init__.py rename to erpnext/production/doctype/bom_control/__init__.py diff --git a/production/doctype/bom_control/bom_control.py b/erpnext/production/doctype/bom_control/bom_control.py similarity index 100% rename from production/doctype/bom_control/bom_control.py rename to erpnext/production/doctype/bom_control/bom_control.py diff --git a/production/doctype/bom_control/bom_control.txt b/erpnext/production/doctype/bom_control/bom_control.txt similarity index 100% rename from production/doctype/bom_control/bom_control.txt rename to erpnext/production/doctype/bom_control/bom_control.txt diff --git a/production/doctype/bom_operation/__init__.py b/erpnext/production/doctype/bom_material/__init__.py similarity index 100% rename from production/doctype/bom_operation/__init__.py rename to erpnext/production/doctype/bom_material/__init__.py diff --git a/production/doctype/bom_material/bom_material.txt b/erpnext/production/doctype/bom_material/bom_material.txt similarity index 100% rename from production/doctype/bom_material/bom_material.txt rename to erpnext/production/doctype/bom_material/bom_material.txt diff --git a/production/doctype/bom_replace_utility/__init__.py b/erpnext/production/doctype/bom_operation/__init__.py similarity index 100% rename from production/doctype/bom_replace_utility/__init__.py rename to erpnext/production/doctype/bom_operation/__init__.py diff --git a/production/doctype/bom_operation/bom_operation.txt b/erpnext/production/doctype/bom_operation/bom_operation.txt similarity index 100% rename from production/doctype/bom_operation/bom_operation.txt rename to erpnext/production/doctype/bom_operation/bom_operation.txt diff --git a/production/doctype/bom_replace_utility_detail/__init__.py b/erpnext/production/doctype/bom_replace_utility/__init__.py similarity index 100% rename from production/doctype/bom_replace_utility_detail/__init__.py rename to erpnext/production/doctype/bom_replace_utility/__init__.py diff --git a/production/doctype/bom_replace_utility/bom_replace_utility.js b/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.js similarity index 100% rename from production/doctype/bom_replace_utility/bom_replace_utility.js rename to erpnext/production/doctype/bom_replace_utility/bom_replace_utility.js diff --git a/production/doctype/bom_replace_utility/bom_replace_utility.py b/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.py similarity index 100% rename from production/doctype/bom_replace_utility/bom_replace_utility.py rename to erpnext/production/doctype/bom_replace_utility/bom_replace_utility.py diff --git a/production/doctype/bom_replace_utility/bom_replace_utility.txt b/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.txt similarity index 100% rename from production/doctype/bom_replace_utility/bom_replace_utility.txt rename to erpnext/production/doctype/bom_replace_utility/bom_replace_utility.txt diff --git a/production/doctype/bom_report_detail/__init__.py b/erpnext/production/doctype/bom_replace_utility_detail/__init__.py similarity index 100% rename from production/doctype/bom_report_detail/__init__.py rename to erpnext/production/doctype/bom_replace_utility_detail/__init__.py diff --git a/production/doctype/bom_replace_utility_detail/bom_replace_utility_detail.txt b/erpnext/production/doctype/bom_replace_utility_detail/bom_replace_utility_detail.txt similarity index 100% rename from production/doctype/bom_replace_utility_detail/bom_replace_utility_detail.txt rename to erpnext/production/doctype/bom_replace_utility_detail/bom_replace_utility_detail.txt diff --git a/production/doctype/flat_bom_detail/__init__.py b/erpnext/production/doctype/bom_report_detail/__init__.py similarity index 100% rename from production/doctype/flat_bom_detail/__init__.py rename to erpnext/production/doctype/bom_report_detail/__init__.py diff --git a/production/doctype/bom_report_detail/bom_report_detail.txt b/erpnext/production/doctype/bom_report_detail/bom_report_detail.txt similarity index 100% rename from production/doctype/bom_report_detail/bom_report_detail.txt rename to erpnext/production/doctype/bom_report_detail/bom_report_detail.txt diff --git a/production/doctype/pf_detail/__init__.py b/erpnext/production/doctype/flat_bom_detail/__init__.py similarity index 100% rename from production/doctype/pf_detail/__init__.py rename to erpnext/production/doctype/flat_bom_detail/__init__.py diff --git a/production/doctype/flat_bom_detail/flat_bom_detail.txt b/erpnext/production/doctype/flat_bom_detail/flat_bom_detail.txt similarity index 100% rename from production/doctype/flat_bom_detail/flat_bom_detail.txt rename to erpnext/production/doctype/flat_bom_detail/flat_bom_detail.txt diff --git a/production/doctype/pp_detail/__init__.py b/erpnext/production/doctype/pf_detail/__init__.py similarity index 100% rename from production/doctype/pp_detail/__init__.py rename to erpnext/production/doctype/pf_detail/__init__.py diff --git a/production/doctype/pf_detail/pf_detail.txt b/erpnext/production/doctype/pf_detail/pf_detail.txt similarity index 100% rename from production/doctype/pf_detail/pf_detail.txt rename to erpnext/production/doctype/pf_detail/pf_detail.txt diff --git a/production/doctype/pp_so_detail/__init__.py b/erpnext/production/doctype/pp_detail/__init__.py similarity index 100% rename from production/doctype/pp_so_detail/__init__.py rename to erpnext/production/doctype/pp_detail/__init__.py diff --git a/production/doctype/pp_detail/pp_detail.txt b/erpnext/production/doctype/pp_detail/pp_detail.txt similarity index 100% rename from production/doctype/pp_detail/pp_detail.txt rename to erpnext/production/doctype/pp_detail/pp_detail.txt diff --git a/production/doctype/ppw_detail/__init__.py b/erpnext/production/doctype/pp_so_detail/__init__.py similarity index 100% rename from production/doctype/ppw_detail/__init__.py rename to erpnext/production/doctype/pp_so_detail/__init__.py diff --git a/production/doctype/pp_so_detail/pp_so_detail.txt b/erpnext/production/doctype/pp_so_detail/pp_so_detail.txt similarity index 100% rename from production/doctype/pp_so_detail/pp_so_detail.txt rename to erpnext/production/doctype/pp_so_detail/pp_so_detail.txt diff --git a/production/doctype/pro_detail/__init__.py b/erpnext/production/doctype/ppw_detail/__init__.py similarity index 100% rename from production/doctype/pro_detail/__init__.py rename to erpnext/production/doctype/ppw_detail/__init__.py diff --git a/production/doctype/ppw_detail/ppw_detail.txt b/erpnext/production/doctype/ppw_detail/ppw_detail.txt similarity index 100% rename from production/doctype/ppw_detail/ppw_detail.txt rename to erpnext/production/doctype/ppw_detail/ppw_detail.txt diff --git a/production/doctype/pro_pp_detail/__init__.py b/erpnext/production/doctype/pro_detail/__init__.py similarity index 100% rename from production/doctype/pro_pp_detail/__init__.py rename to erpnext/production/doctype/pro_detail/__init__.py diff --git a/production/doctype/pro_detail/pro_detail.txt b/erpnext/production/doctype/pro_detail/pro_detail.txt similarity index 100% rename from production/doctype/pro_detail/pro_detail.txt rename to erpnext/production/doctype/pro_detail/pro_detail.txt diff --git a/production/doctype/production_control/__init__.py b/erpnext/production/doctype/pro_pp_detail/__init__.py similarity index 100% rename from production/doctype/production_control/__init__.py rename to erpnext/production/doctype/pro_pp_detail/__init__.py diff --git a/production/doctype/pro_pp_detail/pro_pp_detail.txt b/erpnext/production/doctype/pro_pp_detail/pro_pp_detail.txt similarity index 100% rename from production/doctype/pro_pp_detail/pro_pp_detail.txt rename to erpnext/production/doctype/pro_pp_detail/pro_pp_detail.txt diff --git a/production/doctype/production_order/__init__.py b/erpnext/production/doctype/production_control/__init__.py similarity index 100% rename from production/doctype/production_order/__init__.py rename to erpnext/production/doctype/production_control/__init__.py diff --git a/production/doctype/production_control/production_control.py b/erpnext/production/doctype/production_control/production_control.py similarity index 100% rename from production/doctype/production_control/production_control.py rename to erpnext/production/doctype/production_control/production_control.py diff --git a/production/doctype/production_control/production_control.txt b/erpnext/production/doctype/production_control/production_control.txt similarity index 100% rename from production/doctype/production_control/production_control.txt rename to erpnext/production/doctype/production_control/production_control.txt diff --git a/production/doctype/production_planning_tool/__init__.py b/erpnext/production/doctype/production_order/__init__.py similarity index 100% rename from production/doctype/production_planning_tool/__init__.py rename to erpnext/production/doctype/production_order/__init__.py diff --git a/production/doctype/production_order/production_order.js b/erpnext/production/doctype/production_order/production_order.js similarity index 100% rename from production/doctype/production_order/production_order.js rename to erpnext/production/doctype/production_order/production_order.js diff --git a/production/doctype/production_order/production_order.py b/erpnext/production/doctype/production_order/production_order.py similarity index 100% rename from production/doctype/production_order/production_order.py rename to erpnext/production/doctype/production_order/production_order.py diff --git a/production/doctype/production_order/production_order.txt b/erpnext/production/doctype/production_order/production_order.txt similarity index 100% rename from production/doctype/production_order/production_order.txt rename to erpnext/production/doctype/production_order/production_order.txt diff --git a/production/doctype/update_delivery_date/__init__.py b/erpnext/production/doctype/production_planning_tool/__init__.py similarity index 100% rename from production/doctype/update_delivery_date/__init__.py rename to erpnext/production/doctype/production_planning_tool/__init__.py diff --git a/production/doctype/production_planning_tool/production_planning_tool.js b/erpnext/production/doctype/production_planning_tool/production_planning_tool.js similarity index 100% rename from production/doctype/production_planning_tool/production_planning_tool.js rename to erpnext/production/doctype/production_planning_tool/production_planning_tool.js diff --git a/production/doctype/production_planning_tool/production_planning_tool.py b/erpnext/production/doctype/production_planning_tool/production_planning_tool.py similarity index 100% rename from production/doctype/production_planning_tool/production_planning_tool.py rename to erpnext/production/doctype/production_planning_tool/production_planning_tool.py diff --git a/production/doctype/production_planning_tool/production_planning_tool.txt b/erpnext/production/doctype/production_planning_tool/production_planning_tool.txt similarity index 100% rename from production/doctype/production_planning_tool/production_planning_tool.txt rename to erpnext/production/doctype/production_planning_tool/production_planning_tool.txt diff --git a/production/doctype/update_delivery_date_detail/__init__.py b/erpnext/production/doctype/update_delivery_date/__init__.py similarity index 100% rename from production/doctype/update_delivery_date_detail/__init__.py rename to erpnext/production/doctype/update_delivery_date/__init__.py diff --git a/production/doctype/update_delivery_date/update_delivery_date.js b/erpnext/production/doctype/update_delivery_date/update_delivery_date.js similarity index 100% rename from production/doctype/update_delivery_date/update_delivery_date.js rename to erpnext/production/doctype/update_delivery_date/update_delivery_date.js diff --git a/production/doctype/update_delivery_date/update_delivery_date.py b/erpnext/production/doctype/update_delivery_date/update_delivery_date.py similarity index 100% rename from production/doctype/update_delivery_date/update_delivery_date.py rename to erpnext/production/doctype/update_delivery_date/update_delivery_date.py diff --git a/production/doctype/update_delivery_date/update_delivery_date.txt b/erpnext/production/doctype/update_delivery_date/update_delivery_date.txt similarity index 100% rename from production/doctype/update_delivery_date/update_delivery_date.txt rename to erpnext/production/doctype/update_delivery_date/update_delivery_date.txt diff --git a/production/doctype/workstation/__init__.py b/erpnext/production/doctype/update_delivery_date_detail/__init__.py similarity index 100% rename from production/doctype/workstation/__init__.py rename to erpnext/production/doctype/update_delivery_date_detail/__init__.py diff --git a/production/doctype/update_delivery_date_detail/update_delivery_date_detail.txt b/erpnext/production/doctype/update_delivery_date_detail/update_delivery_date_detail.txt similarity index 100% rename from production/doctype/update_delivery_date_detail/update_delivery_date_detail.txt rename to erpnext/production/doctype/update_delivery_date_detail/update_delivery_date_detail.txt diff --git a/production/page/__init__.py b/erpnext/production/doctype/workstation/__init__.py similarity index 100% rename from production/page/__init__.py rename to erpnext/production/doctype/workstation/__init__.py diff --git a/production/doctype/workstation/workstation.js b/erpnext/production/doctype/workstation/workstation.js similarity index 100% rename from production/doctype/workstation/workstation.js rename to erpnext/production/doctype/workstation/workstation.js diff --git a/production/doctype/workstation/workstation.py b/erpnext/production/doctype/workstation/workstation.py similarity index 100% rename from production/doctype/workstation/workstation.py rename to erpnext/production/doctype/workstation/workstation.py diff --git a/production/doctype/workstation/workstation.txt b/erpnext/production/doctype/workstation/workstation.txt similarity index 100% rename from production/doctype/workstation/workstation.txt rename to erpnext/production/doctype/workstation/workstation.txt diff --git a/production/page/bill_of_materials/__init__.py b/erpnext/production/page/__init__.py similarity index 100% rename from production/page/bill_of_materials/__init__.py rename to erpnext/production/page/__init__.py diff --git a/production/search_criteria/__init__.py b/erpnext/production/page/bill_of_materials/__init__.py similarity index 100% rename from production/search_criteria/__init__.py rename to erpnext/production/page/bill_of_materials/__init__.py diff --git a/production/page/bill_of_materials/bill_of_materials.html b/erpnext/production/page/bill_of_materials/bill_of_materials.html similarity index 100% rename from production/page/bill_of_materials/bill_of_materials.html rename to erpnext/production/page/bill_of_materials/bill_of_materials.html diff --git a/production/page/bill_of_materials/bill_of_materials.js b/erpnext/production/page/bill_of_materials/bill_of_materials.js similarity index 100% rename from production/page/bill_of_materials/bill_of_materials.js rename to erpnext/production/page/bill_of_materials/bill_of_materials.js diff --git a/production/page/bill_of_materials/bill_of_materials.txt b/erpnext/production/page/bill_of_materials/bill_of_materials.txt similarity index 100% rename from production/page/bill_of_materials/bill_of_materials.txt rename to erpnext/production/page/bill_of_materials/bill_of_materials.txt diff --git a/production/search_criteria/consumption_against_production/__init__.py b/erpnext/production/search_criteria/__init__.py similarity index 100% rename from production/search_criteria/consumption_against_production/__init__.py rename to erpnext/production/search_criteria/__init__.py diff --git a/production/search_criteria/delivery_plan/__init__.py b/erpnext/production/search_criteria/consumption_against_production/__init__.py similarity index 100% rename from production/search_criteria/delivery_plan/__init__.py rename to erpnext/production/search_criteria/consumption_against_production/__init__.py diff --git a/production/search_criteria/consumption_against_production/consumption_against_production.txt b/erpnext/production/search_criteria/consumption_against_production/consumption_against_production.txt similarity index 100% rename from production/search_criteria/consumption_against_production/consumption_against_production.txt rename to erpnext/production/search_criteria/consumption_against_production/consumption_against_production.txt diff --git a/production/search_criteria/itemwise_production_report/__init__.py b/erpnext/production/search_criteria/delivery_plan/__init__.py similarity index 100% rename from production/search_criteria/itemwise_production_report/__init__.py rename to erpnext/production/search_criteria/delivery_plan/__init__.py diff --git a/production/search_criteria/delivery_plan/delivery_plan.js b/erpnext/production/search_criteria/delivery_plan/delivery_plan.js similarity index 100% rename from production/search_criteria/delivery_plan/delivery_plan.js rename to erpnext/production/search_criteria/delivery_plan/delivery_plan.js diff --git a/production/search_criteria/delivery_plan/delivery_plan.txt b/erpnext/production/search_criteria/delivery_plan/delivery_plan.txt similarity index 100% rename from production/search_criteria/delivery_plan/delivery_plan.txt rename to erpnext/production/search_criteria/delivery_plan/delivery_plan.txt diff --git a/production/search_criteria/production_orders_in_process/__init__.py b/erpnext/production/search_criteria/itemwise_production_report/__init__.py similarity index 100% rename from production/search_criteria/production_orders_in_process/__init__.py rename to erpnext/production/search_criteria/itemwise_production_report/__init__.py diff --git a/production/search_criteria/itemwise_production_report/itemwise_production_report.js b/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.js similarity index 100% rename from production/search_criteria/itemwise_production_report/itemwise_production_report.js rename to erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.js diff --git a/production/search_criteria/itemwise_production_report/itemwise_production_report.txt b/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt similarity index 100% rename from production/search_criteria/itemwise_production_report/itemwise_production_report.txt rename to erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt diff --git a/projects/__init__.py b/erpnext/production/search_criteria/production_orders_in_process/__init__.py similarity index 100% rename from projects/__init__.py rename to erpnext/production/search_criteria/production_orders_in_process/__init__.py diff --git a/production/search_criteria/production_orders_in_process/production_orders_in_process.txt b/erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt similarity index 100% rename from production/search_criteria/production_orders_in_process/production_orders_in_process.txt rename to erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt diff --git a/projects/Module Def/Projects/Projects.txt b/erpnext/projects/Module Def/Projects/Projects.txt similarity index 100% rename from projects/Module Def/Projects/Projects.txt rename to erpnext/projects/Module Def/Projects/Projects.txt diff --git a/projects/Role/Projects User/Projects User.txt b/erpnext/projects/Role/Projects User/Projects User.txt similarity index 100% rename from projects/Role/Projects User/Projects User.txt rename to erpnext/projects/Role/Projects User/Projects User.txt diff --git a/projects/doctype/__init__.py b/erpnext/projects/__init__.py similarity index 100% rename from projects/doctype/__init__.py rename to erpnext/projects/__init__.py diff --git a/projects/doctype/activity_type/__init__.py b/erpnext/projects/doctype/__init__.py similarity index 100% rename from projects/doctype/activity_type/__init__.py rename to erpnext/projects/doctype/__init__.py diff --git a/projects/doctype/project/__init__.py b/erpnext/projects/doctype/activity_type/__init__.py similarity index 100% rename from projects/doctype/project/__init__.py rename to erpnext/projects/doctype/activity_type/__init__.py diff --git a/projects/doctype/activity_type/activity_type.txt b/erpnext/projects/doctype/activity_type/activity_type.txt similarity index 100% rename from projects/doctype/activity_type/activity_type.txt rename to erpnext/projects/doctype/activity_type/activity_type.txt diff --git a/projects/doctype/project_activity/__init__.py b/erpnext/projects/doctype/project/__init__.py similarity index 100% rename from projects/doctype/project_activity/__init__.py rename to erpnext/projects/doctype/project/__init__.py diff --git a/projects/doctype/project/project.js b/erpnext/projects/doctype/project/project.js similarity index 100% rename from projects/doctype/project/project.js rename to erpnext/projects/doctype/project/project.js diff --git a/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py similarity index 100% rename from projects/doctype/project/project.py rename to erpnext/projects/doctype/project/project.py diff --git a/projects/doctype/project/project.txt b/erpnext/projects/doctype/project/project.txt similarity index 100% rename from projects/doctype/project/project.txt rename to erpnext/projects/doctype/project/project.txt diff --git a/projects/doctype/project_activity_update/__init__.py b/erpnext/projects/doctype/project_activity/__init__.py similarity index 100% rename from projects/doctype/project_activity_update/__init__.py rename to erpnext/projects/doctype/project_activity/__init__.py diff --git a/projects/doctype/project_activity/project_activity.js b/erpnext/projects/doctype/project_activity/project_activity.js similarity index 100% rename from projects/doctype/project_activity/project_activity.js rename to erpnext/projects/doctype/project_activity/project_activity.js diff --git a/projects/doctype/project_activity/project_activity.py b/erpnext/projects/doctype/project_activity/project_activity.py similarity index 100% rename from projects/doctype/project_activity/project_activity.py rename to erpnext/projects/doctype/project_activity/project_activity.py diff --git a/projects/doctype/project_activity/project_activity.txt b/erpnext/projects/doctype/project_activity/project_activity.txt similarity index 100% rename from projects/doctype/project_activity/project_activity.txt rename to erpnext/projects/doctype/project_activity/project_activity.txt diff --git a/projects/doctype/project_control/__init__.py b/erpnext/projects/doctype/project_activity_update/__init__.py similarity index 100% rename from projects/doctype/project_control/__init__.py rename to erpnext/projects/doctype/project_activity_update/__init__.py diff --git a/projects/doctype/project_activity_update/project_activity_update.txt b/erpnext/projects/doctype/project_activity_update/project_activity_update.txt similarity index 100% rename from projects/doctype/project_activity_update/project_activity_update.txt rename to erpnext/projects/doctype/project_activity_update/project_activity_update.txt diff --git a/projects/doctype/project_milestone/__init__.py b/erpnext/projects/doctype/project_control/__init__.py similarity index 100% rename from projects/doctype/project_milestone/__init__.py rename to erpnext/projects/doctype/project_control/__init__.py diff --git a/projects/doctype/project_control/project_control.py b/erpnext/projects/doctype/project_control/project_control.py similarity index 100% rename from projects/doctype/project_control/project_control.py rename to erpnext/projects/doctype/project_control/project_control.py diff --git a/projects/doctype/project_control/project_control.txt b/erpnext/projects/doctype/project_control/project_control.txt similarity index 100% rename from projects/doctype/project_control/project_control.txt rename to erpnext/projects/doctype/project_control/project_control.txt diff --git a/projects/doctype/ticket/__init__.py b/erpnext/projects/doctype/project_milestone/__init__.py similarity index 100% rename from projects/doctype/ticket/__init__.py rename to erpnext/projects/doctype/project_milestone/__init__.py diff --git a/projects/doctype/project_milestone/project_milestone.txt b/erpnext/projects/doctype/project_milestone/project_milestone.txt similarity index 100% rename from projects/doctype/project_milestone/project_milestone.txt rename to erpnext/projects/doctype/project_milestone/project_milestone.txt diff --git a/projects/doctype/timesheet/__init__.py b/erpnext/projects/doctype/ticket/__init__.py similarity index 100% rename from projects/doctype/timesheet/__init__.py rename to erpnext/projects/doctype/ticket/__init__.py diff --git a/projects/doctype/ticket/ticket.js b/erpnext/projects/doctype/ticket/ticket.js similarity index 100% rename from projects/doctype/ticket/ticket.js rename to erpnext/projects/doctype/ticket/ticket.js diff --git a/projects/doctype/ticket/ticket.py b/erpnext/projects/doctype/ticket/ticket.py similarity index 100% rename from projects/doctype/ticket/ticket.py rename to erpnext/projects/doctype/ticket/ticket.py diff --git a/projects/doctype/ticket/ticket.txt b/erpnext/projects/doctype/ticket/ticket.txt similarity index 100% rename from projects/doctype/ticket/ticket.txt rename to erpnext/projects/doctype/ticket/ticket.txt diff --git a/projects/doctype/timesheet_detail/__init__.py b/erpnext/projects/doctype/timesheet/__init__.py similarity index 100% rename from projects/doctype/timesheet_detail/__init__.py rename to erpnext/projects/doctype/timesheet/__init__.py diff --git a/projects/doctype/timesheet/timesheet.js b/erpnext/projects/doctype/timesheet/timesheet.js similarity index 100% rename from projects/doctype/timesheet/timesheet.js rename to erpnext/projects/doctype/timesheet/timesheet.js diff --git a/projects/doctype/timesheet/timesheet.py b/erpnext/projects/doctype/timesheet/timesheet.py similarity index 100% rename from projects/doctype/timesheet/timesheet.py rename to erpnext/projects/doctype/timesheet/timesheet.py diff --git a/projects/doctype/timesheet/timesheet.txt b/erpnext/projects/doctype/timesheet/timesheet.txt similarity index 100% rename from projects/doctype/timesheet/timesheet.txt rename to erpnext/projects/doctype/timesheet/timesheet.txt diff --git a/projects/page/__init__.py b/erpnext/projects/doctype/timesheet_detail/__init__.py similarity index 100% rename from projects/page/__init__.py rename to erpnext/projects/doctype/timesheet_detail/__init__.py diff --git a/projects/doctype/timesheet_detail/timesheet_detail.txt b/erpnext/projects/doctype/timesheet_detail/timesheet_detail.txt similarity index 100% rename from projects/doctype/timesheet_detail/timesheet_detail.txt rename to erpnext/projects/doctype/timesheet_detail/timesheet_detail.txt diff --git a/projects/page/projects/__init__.py b/erpnext/projects/page/__init__.py similarity index 100% rename from projects/page/projects/__init__.py rename to erpnext/projects/page/__init__.py diff --git a/projects/search_criteria/__init__.py b/erpnext/projects/page/projects/__init__.py similarity index 100% rename from projects/search_criteria/__init__.py rename to erpnext/projects/page/projects/__init__.py diff --git a/projects/page/projects/projects.html b/erpnext/projects/page/projects/projects.html similarity index 100% rename from projects/page/projects/projects.html rename to erpnext/projects/page/projects/projects.html diff --git a/projects/page/projects/projects.js b/erpnext/projects/page/projects/projects.js similarity index 100% rename from projects/page/projects/projects.js rename to erpnext/projects/page/projects/projects.js diff --git a/projects/page/projects/projects.txt b/erpnext/projects/page/projects/projects.txt similarity index 100% rename from projects/page/projects/projects.txt rename to erpnext/projects/page/projects/projects.txt diff --git a/projects/page/projects/projects_static.html b/erpnext/projects/page/projects/projects_static.html similarity index 100% rename from projects/page/projects/projects_static.html rename to erpnext/projects/page/projects/projects_static.html diff --git a/projects/search_criteria/dispatch_report/__init__.py b/erpnext/projects/search_criteria/__init__.py similarity index 100% rename from projects/search_criteria/dispatch_report/__init__.py rename to erpnext/projects/search_criteria/__init__.py diff --git a/projects/search_criteria/projectwise_delivered_qty_and_costs/__init__.py b/erpnext/projects/search_criteria/dispatch_report/__init__.py similarity index 100% rename from projects/search_criteria/projectwise_delivered_qty_and_costs/__init__.py rename to erpnext/projects/search_criteria/dispatch_report/__init__.py diff --git a/projects/search_criteria/dispatch_report/dispatch_report.js b/erpnext/projects/search_criteria/dispatch_report/dispatch_report.js similarity index 100% rename from projects/search_criteria/dispatch_report/dispatch_report.js rename to erpnext/projects/search_criteria/dispatch_report/dispatch_report.js diff --git a/projects/search_criteria/dispatch_report/dispatch_report.txt b/erpnext/projects/search_criteria/dispatch_report/dispatch_report.txt similarity index 100% rename from projects/search_criteria/dispatch_report/dispatch_report.txt rename to erpnext/projects/search_criteria/dispatch_report/dispatch_report.txt diff --git a/projects/search_criteria/projectwise_pending_qty_and_costs/__init__.py b/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/__init__.py similarity index 100% rename from projects/search_criteria/projectwise_pending_qty_and_costs/__init__.py rename to erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/__init__.py diff --git a/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.js b/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.js similarity index 100% rename from projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.js rename to erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.js diff --git a/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt b/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt similarity index 100% rename from projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt rename to erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt diff --git a/projects/search_criteria/projectwise_purchase_details/__init__.py b/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/__init__.py similarity index 100% rename from projects/search_criteria/projectwise_purchase_details/__init__.py rename to erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/__init__.py diff --git a/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.js b/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.js similarity index 100% rename from projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.js rename to erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.js diff --git a/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt b/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt similarity index 100% rename from projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt rename to erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt diff --git a/projects/search_criteria/projectwise_sales_details/__init__.py b/erpnext/projects/search_criteria/projectwise_purchase_details/__init__.py similarity index 100% rename from projects/search_criteria/projectwise_sales_details/__init__.py rename to erpnext/projects/search_criteria/projectwise_purchase_details/__init__.py diff --git a/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.js b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.js similarity index 100% rename from projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.js rename to erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.js diff --git a/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.py b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.py similarity index 100% rename from projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.py rename to erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.py diff --git a/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt similarity index 100% rename from projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt rename to erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt diff --git a/projects/search_criteria/projectwise_sales_orders/__init__.py b/erpnext/projects/search_criteria/projectwise_sales_details/__init__.py similarity index 100% rename from projects/search_criteria/projectwise_sales_orders/__init__.py rename to erpnext/projects/search_criteria/projectwise_sales_details/__init__.py diff --git a/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.js b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.js similarity index 100% rename from projects/search_criteria/projectwise_sales_details/projectwise_sales_details.js rename to erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.js diff --git a/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.py b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.py similarity index 100% rename from projects/search_criteria/projectwise_sales_details/projectwise_sales_details.py rename to erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.py diff --git a/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt similarity index 100% rename from projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt rename to erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt diff --git a/projects/search_criteria/timesheet_report/__init__.py b/erpnext/projects/search_criteria/projectwise_sales_orders/__init__.py similarity index 100% rename from projects/search_criteria/timesheet_report/__init__.py rename to erpnext/projects/search_criteria/projectwise_sales_orders/__init__.py diff --git a/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt b/erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt similarity index 100% rename from projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt rename to erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt diff --git a/selling/__init__.py b/erpnext/projects/search_criteria/timesheet_report/__init__.py similarity index 100% rename from selling/__init__.py rename to erpnext/projects/search_criteria/timesheet_report/__init__.py diff --git a/projects/search_criteria/timesheet_report/timesheet_report.js b/erpnext/projects/search_criteria/timesheet_report/timesheet_report.js similarity index 100% rename from projects/search_criteria/timesheet_report/timesheet_report.js rename to erpnext/projects/search_criteria/timesheet_report/timesheet_report.js diff --git a/projects/search_criteria/timesheet_report/timesheet_report.txt b/erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt similarity index 100% rename from projects/search_criteria/timesheet_report/timesheet_report.txt rename to erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt diff --git a/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt b/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt similarity index 100% rename from selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt rename to erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt diff --git a/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt b/erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt similarity index 100% rename from selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt rename to erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt diff --git a/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt b/erpnext/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt similarity index 100% rename from selling/DocType Mapper/Lead-Customer/Lead-Customer.txt rename to erpnext/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt diff --git a/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt b/erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt similarity index 100% rename from selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt rename to erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt diff --git a/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt b/erpnext/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt similarity index 100% rename from selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt rename to erpnext/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt diff --git a/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt b/erpnext/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt similarity index 100% rename from selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt rename to erpnext/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt diff --git a/selling/Module Def/Selling/Selling.txt b/erpnext/selling/Module Def/Selling/Selling.txt similarity index 100% rename from selling/Module Def/Selling/Selling.txt rename to erpnext/selling/Module Def/Selling/Selling.txt diff --git a/selling/Role/Customer/Customer.txt b/erpnext/selling/Role/Customer/Customer.txt similarity index 100% rename from selling/Role/Customer/Customer.txt rename to erpnext/selling/Role/Customer/Customer.txt diff --git a/selling/Role/Partner/Partner.txt b/erpnext/selling/Role/Partner/Partner.txt similarity index 100% rename from selling/Role/Partner/Partner.txt rename to erpnext/selling/Role/Partner/Partner.txt diff --git a/selling/Role/Sales Manager/Sales Manager.txt b/erpnext/selling/Role/Sales Manager/Sales Manager.txt similarity index 100% rename from selling/Role/Sales Manager/Sales Manager.txt rename to erpnext/selling/Role/Sales Manager/Sales Manager.txt diff --git a/selling/Role/Sales Master Manager/Sales Master Manager.txt b/erpnext/selling/Role/Sales Master Manager/Sales Master Manager.txt similarity index 100% rename from selling/Role/Sales Master Manager/Sales Master Manager.txt rename to erpnext/selling/Role/Sales Master Manager/Sales Master Manager.txt diff --git a/selling/Role/Sales User/Sales User.txt b/erpnext/selling/Role/Sales User/Sales User.txt similarity index 100% rename from selling/Role/Sales User/Sales User.txt rename to erpnext/selling/Role/Sales User/Sales User.txt diff --git a/selling/doctype/__init__.py b/erpnext/selling/__init__.py similarity index 100% rename from selling/doctype/__init__.py rename to erpnext/selling/__init__.py diff --git a/selling/doctype/campaign/__init__.py b/erpnext/selling/doctype/__init__.py similarity index 100% rename from selling/doctype/campaign/__init__.py rename to erpnext/selling/doctype/__init__.py diff --git a/selling/doctype/customer/__init__.py b/erpnext/selling/doctype/campaign/__init__.py similarity index 100% rename from selling/doctype/customer/__init__.py rename to erpnext/selling/doctype/campaign/__init__.py diff --git a/selling/doctype/campaign/campaign.js b/erpnext/selling/doctype/campaign/campaign.js similarity index 100% rename from selling/doctype/campaign/campaign.js rename to erpnext/selling/doctype/campaign/campaign.js diff --git a/selling/doctype/campaign/campaign.txt b/erpnext/selling/doctype/campaign/campaign.txt similarity index 100% rename from selling/doctype/campaign/campaign.txt rename to erpnext/selling/doctype/campaign/campaign.txt diff --git a/selling/doctype/enquiry/__init__.py b/erpnext/selling/doctype/customer/__init__.py similarity index 100% rename from selling/doctype/enquiry/__init__.py rename to erpnext/selling/doctype/customer/__init__.py diff --git a/selling/doctype/customer/customer.js b/erpnext/selling/doctype/customer/customer.js similarity index 100% rename from selling/doctype/customer/customer.js rename to erpnext/selling/doctype/customer/customer.js diff --git a/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py similarity index 100% rename from selling/doctype/customer/customer.py rename to erpnext/selling/doctype/customer/customer.py diff --git a/selling/doctype/customer/customer.txt b/erpnext/selling/doctype/customer/customer.txt similarity index 100% rename from selling/doctype/customer/customer.txt rename to erpnext/selling/doctype/customer/customer.txt diff --git a/selling/doctype/enquiry_detail/__init__.py b/erpnext/selling/doctype/enquiry/__init__.py similarity index 100% rename from selling/doctype/enquiry_detail/__init__.py rename to erpnext/selling/doctype/enquiry/__init__.py diff --git a/selling/doctype/enquiry/enquiry.js b/erpnext/selling/doctype/enquiry/enquiry.js similarity index 100% rename from selling/doctype/enquiry/enquiry.js rename to erpnext/selling/doctype/enquiry/enquiry.js diff --git a/selling/doctype/enquiry/enquiry.py b/erpnext/selling/doctype/enquiry/enquiry.py similarity index 100% rename from selling/doctype/enquiry/enquiry.py rename to erpnext/selling/doctype/enquiry/enquiry.py diff --git a/selling/doctype/enquiry/enquiry.txt b/erpnext/selling/doctype/enquiry/enquiry.txt similarity index 100% rename from selling/doctype/enquiry/enquiry.txt rename to erpnext/selling/doctype/enquiry/enquiry.txt diff --git a/selling/doctype/enquiry_sms_detail/__init__.py b/erpnext/selling/doctype/enquiry_detail/__init__.py similarity index 100% rename from selling/doctype/enquiry_sms_detail/__init__.py rename to erpnext/selling/doctype/enquiry_detail/__init__.py diff --git a/selling/doctype/enquiry_detail/enquiry_detail.txt b/erpnext/selling/doctype/enquiry_detail/enquiry_detail.txt similarity index 100% rename from selling/doctype/enquiry_detail/enquiry_detail.txt rename to erpnext/selling/doctype/enquiry_detail/enquiry_detail.txt diff --git a/selling/doctype/follow_up/__init__.py b/erpnext/selling/doctype/enquiry_sms_detail/__init__.py similarity index 100% rename from selling/doctype/follow_up/__init__.py rename to erpnext/selling/doctype/enquiry_sms_detail/__init__.py diff --git a/selling/doctype/enquiry_sms_detail/enquiry_sms_detail.txt b/erpnext/selling/doctype/enquiry_sms_detail/enquiry_sms_detail.txt similarity index 100% rename from selling/doctype/enquiry_sms_detail/enquiry_sms_detail.txt rename to erpnext/selling/doctype/enquiry_sms_detail/enquiry_sms_detail.txt diff --git a/selling/doctype/industry_type/__init__.py b/erpnext/selling/doctype/follow_up/__init__.py similarity index 100% rename from selling/doctype/industry_type/__init__.py rename to erpnext/selling/doctype/follow_up/__init__.py diff --git a/selling/doctype/follow_up/follow_up.txt b/erpnext/selling/doctype/follow_up/follow_up.txt similarity index 100% rename from selling/doctype/follow_up/follow_up.txt rename to erpnext/selling/doctype/follow_up/follow_up.txt diff --git a/selling/doctype/installation_note/__init__.py b/erpnext/selling/doctype/industry_type/__init__.py similarity index 100% rename from selling/doctype/installation_note/__init__.py rename to erpnext/selling/doctype/industry_type/__init__.py diff --git a/selling/doctype/industry_type/industry_type.js b/erpnext/selling/doctype/industry_type/industry_type.js similarity index 100% rename from selling/doctype/industry_type/industry_type.js rename to erpnext/selling/doctype/industry_type/industry_type.js diff --git a/selling/doctype/industry_type/industry_type.txt b/erpnext/selling/doctype/industry_type/industry_type.txt similarity index 100% rename from selling/doctype/industry_type/industry_type.txt rename to erpnext/selling/doctype/industry_type/industry_type.txt diff --git a/selling/doctype/installed_item_details/__init__.py b/erpnext/selling/doctype/installation_note/__init__.py similarity index 100% rename from selling/doctype/installed_item_details/__init__.py rename to erpnext/selling/doctype/installation_note/__init__.py diff --git a/selling/doctype/installation_note/installation_note.js b/erpnext/selling/doctype/installation_note/installation_note.js similarity index 100% rename from selling/doctype/installation_note/installation_note.js rename to erpnext/selling/doctype/installation_note/installation_note.js diff --git a/selling/doctype/installation_note/installation_note.py b/erpnext/selling/doctype/installation_note/installation_note.py similarity index 100% rename from selling/doctype/installation_note/installation_note.py rename to erpnext/selling/doctype/installation_note/installation_note.py diff --git a/selling/doctype/installation_note/installation_note.txt b/erpnext/selling/doctype/installation_note/installation_note.txt similarity index 100% rename from selling/doctype/installation_note/installation_note.txt rename to erpnext/selling/doctype/installation_note/installation_note.txt diff --git a/selling/doctype/lead/__init__.py b/erpnext/selling/doctype/installed_item_details/__init__.py similarity index 100% rename from selling/doctype/lead/__init__.py rename to erpnext/selling/doctype/installed_item_details/__init__.py diff --git a/selling/doctype/installed_item_details/installed_item_details.txt b/erpnext/selling/doctype/installed_item_details/installed_item_details.txt similarity index 100% rename from selling/doctype/installed_item_details/installed_item_details.txt rename to erpnext/selling/doctype/installed_item_details/installed_item_details.txt diff --git a/selling/doctype/lead_attachment_detail/__init__.py b/erpnext/selling/doctype/lead/__init__.py similarity index 100% rename from selling/doctype/lead_attachment_detail/__init__.py rename to erpnext/selling/doctype/lead/__init__.py diff --git a/selling/doctype/lead/lead.js b/erpnext/selling/doctype/lead/lead.js similarity index 100% rename from selling/doctype/lead/lead.js rename to erpnext/selling/doctype/lead/lead.js diff --git a/selling/doctype/lead/lead.py b/erpnext/selling/doctype/lead/lead.py similarity index 100% rename from selling/doctype/lead/lead.py rename to erpnext/selling/doctype/lead/lead.py diff --git a/selling/doctype/lead/lead.txt b/erpnext/selling/doctype/lead/lead.txt similarity index 100% rename from selling/doctype/lead/lead.txt rename to erpnext/selling/doctype/lead/lead.txt diff --git a/selling/doctype/lead_item_detail/__init__.py b/erpnext/selling/doctype/lead_attachment_detail/__init__.py similarity index 100% rename from selling/doctype/lead_item_detail/__init__.py rename to erpnext/selling/doctype/lead_attachment_detail/__init__.py diff --git a/selling/doctype/lead_attachment_detail/lead_attachment_detail.txt b/erpnext/selling/doctype/lead_attachment_detail/lead_attachment_detail.txt similarity index 100% rename from selling/doctype/lead_attachment_detail/lead_attachment_detail.txt rename to erpnext/selling/doctype/lead_attachment_detail/lead_attachment_detail.txt diff --git a/selling/doctype/lead_sms_detail/__init__.py b/erpnext/selling/doctype/lead_item_detail/__init__.py similarity index 100% rename from selling/doctype/lead_sms_detail/__init__.py rename to erpnext/selling/doctype/lead_item_detail/__init__.py diff --git a/selling/doctype/lead_item_detail/lead_item_detail.txt b/erpnext/selling/doctype/lead_item_detail/lead_item_detail.txt similarity index 100% rename from selling/doctype/lead_item_detail/lead_item_detail.txt rename to erpnext/selling/doctype/lead_item_detail/lead_item_detail.txt diff --git a/selling/doctype/plot_control/__init__.py b/erpnext/selling/doctype/lead_sms_detail/__init__.py similarity index 100% rename from selling/doctype/plot_control/__init__.py rename to erpnext/selling/doctype/lead_sms_detail/__init__.py diff --git a/selling/doctype/lead_sms_detail/lead_sms_detail.txt b/erpnext/selling/doctype/lead_sms_detail/lead_sms_detail.txt similarity index 100% rename from selling/doctype/lead_sms_detail/lead_sms_detail.txt rename to erpnext/selling/doctype/lead_sms_detail/lead_sms_detail.txt diff --git a/selling/doctype/quotation/__init__.py b/erpnext/selling/doctype/plot_control/__init__.py similarity index 100% rename from selling/doctype/quotation/__init__.py rename to erpnext/selling/doctype/plot_control/__init__.py diff --git a/selling/doctype/plot_control/plot_control.py b/erpnext/selling/doctype/plot_control/plot_control.py similarity index 100% rename from selling/doctype/plot_control/plot_control.py rename to erpnext/selling/doctype/plot_control/plot_control.py diff --git a/selling/doctype/plot_control/plot_control.txt b/erpnext/selling/doctype/plot_control/plot_control.txt similarity index 100% rename from selling/doctype/plot_control/plot_control.txt rename to erpnext/selling/doctype/plot_control/plot_control.txt diff --git a/selling/doctype/quotation_detail/__init__.py b/erpnext/selling/doctype/quotation/__init__.py similarity index 100% rename from selling/doctype/quotation_detail/__init__.py rename to erpnext/selling/doctype/quotation/__init__.py diff --git a/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js similarity index 100% rename from selling/doctype/quotation/quotation.js rename to erpnext/selling/doctype/quotation/quotation.js diff --git a/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py similarity index 100% rename from selling/doctype/quotation/quotation.py rename to erpnext/selling/doctype/quotation/quotation.py diff --git a/selling/doctype/quotation/quotation.txt b/erpnext/selling/doctype/quotation/quotation.txt similarity index 100% rename from selling/doctype/quotation/quotation.txt rename to erpnext/selling/doctype/quotation/quotation.txt diff --git a/selling/doctype/return_detail/__init__.py b/erpnext/selling/doctype/quotation_detail/__init__.py similarity index 100% rename from selling/doctype/return_detail/__init__.py rename to erpnext/selling/doctype/quotation_detail/__init__.py diff --git a/selling/doctype/quotation_detail/quotation_detail.txt b/erpnext/selling/doctype/quotation_detail/quotation_detail.txt similarity index 100% rename from selling/doctype/quotation_detail/quotation_detail.txt rename to erpnext/selling/doctype/quotation_detail/quotation_detail.txt diff --git a/selling/doctype/sales_common/__init__.py b/erpnext/selling/doctype/return_detail/__init__.py similarity index 100% rename from selling/doctype/sales_common/__init__.py rename to erpnext/selling/doctype/return_detail/__init__.py diff --git a/selling/doctype/return_detail/return_detail.txt b/erpnext/selling/doctype/return_detail/return_detail.txt similarity index 100% rename from selling/doctype/return_detail/return_detail.txt rename to erpnext/selling/doctype/return_detail/return_detail.txt diff --git a/selling/doctype/sales_order/__init__.py b/erpnext/selling/doctype/sales_common/__init__.py similarity index 100% rename from selling/doctype/sales_order/__init__.py rename to erpnext/selling/doctype/sales_common/__init__.py diff --git a/selling/doctype/sales_common/sales_common.js b/erpnext/selling/doctype/sales_common/sales_common.js similarity index 100% rename from selling/doctype/sales_common/sales_common.js rename to erpnext/selling/doctype/sales_common/sales_common.js diff --git a/selling/doctype/sales_common/sales_common.py b/erpnext/selling/doctype/sales_common/sales_common.py similarity index 100% rename from selling/doctype/sales_common/sales_common.py rename to erpnext/selling/doctype/sales_common/sales_common.py diff --git a/selling/doctype/sales_common/sales_common.txt b/erpnext/selling/doctype/sales_common/sales_common.txt similarity index 100% rename from selling/doctype/sales_common/sales_common.txt rename to erpnext/selling/doctype/sales_common/sales_common.txt diff --git a/selling/doctype/sales_order_detail/__init__.py b/erpnext/selling/doctype/sales_order/__init__.py similarity index 100% rename from selling/doctype/sales_order_detail/__init__.py rename to erpnext/selling/doctype/sales_order/__init__.py diff --git a/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js similarity index 100% rename from selling/doctype/sales_order/sales_order.js rename to erpnext/selling/doctype/sales_order/sales_order.js diff --git a/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py similarity index 100% rename from selling/doctype/sales_order/sales_order.py rename to erpnext/selling/doctype/sales_order/sales_order.py diff --git a/selling/doctype/sales_order/sales_order.txt b/erpnext/selling/doctype/sales_order/sales_order.txt similarity index 100% rename from selling/doctype/sales_order/sales_order.txt rename to erpnext/selling/doctype/sales_order/sales_order.txt diff --git a/selling/doctype/sales_team/__init__.py b/erpnext/selling/doctype/sales_order_detail/__init__.py similarity index 100% rename from selling/doctype/sales_team/__init__.py rename to erpnext/selling/doctype/sales_order_detail/__init__.py diff --git a/selling/doctype/sales_order_detail/sales_order_detail.txt b/erpnext/selling/doctype/sales_order_detail/sales_order_detail.txt similarity index 100% rename from selling/doctype/sales_order_detail/sales_order_detail.txt rename to erpnext/selling/doctype/sales_order_detail/sales_order_detail.txt diff --git a/selling/doctype/shipping_address/__init__.py b/erpnext/selling/doctype/sales_team/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from selling/doctype/shipping_address/__init__.py rename to erpnext/selling/doctype/sales_team/__init__.py diff --git a/selling/doctype/sales_team/sales_team.txt b/erpnext/selling/doctype/sales_team/sales_team.txt similarity index 100% rename from selling/doctype/sales_team/sales_team.txt rename to erpnext/selling/doctype/sales_team/sales_team.txt diff --git a/selling/doctype/sms_center/__init__.py b/erpnext/selling/doctype/shipping_address/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from selling/doctype/sms_center/__init__.py rename to erpnext/selling/doctype/shipping_address/__init__.py diff --git a/selling/doctype/shipping_address/shipping_address.js b/erpnext/selling/doctype/shipping_address/shipping_address.js similarity index 100% rename from selling/doctype/shipping_address/shipping_address.js rename to erpnext/selling/doctype/shipping_address/shipping_address.js diff --git a/selling/doctype/shipping_address/shipping_address.py b/erpnext/selling/doctype/shipping_address/shipping_address.py similarity index 100% rename from selling/doctype/shipping_address/shipping_address.py rename to erpnext/selling/doctype/shipping_address/shipping_address.py diff --git a/selling/doctype/shipping_address/shipping_address.txt b/erpnext/selling/doctype/shipping_address/shipping_address.txt similarity index 100% rename from selling/doctype/shipping_address/shipping_address.txt rename to erpnext/selling/doctype/shipping_address/shipping_address.txt diff --git a/selling/page/__init__.py b/erpnext/selling/doctype/sms_center/__init__.py similarity index 100% rename from selling/page/__init__.py rename to erpnext/selling/doctype/sms_center/__init__.py diff --git a/selling/doctype/sms_center/sms_center.js b/erpnext/selling/doctype/sms_center/sms_center.js similarity index 100% rename from selling/doctype/sms_center/sms_center.js rename to erpnext/selling/doctype/sms_center/sms_center.js diff --git a/selling/doctype/sms_center/sms_center.py b/erpnext/selling/doctype/sms_center/sms_center.py similarity index 100% rename from selling/doctype/sms_center/sms_center.py rename to erpnext/selling/doctype/sms_center/sms_center.py diff --git a/selling/doctype/sms_center/sms_center.txt b/erpnext/selling/doctype/sms_center/sms_center.txt similarity index 100% rename from selling/doctype/sms_center/sms_center.txt rename to erpnext/selling/doctype/sms_center/sms_center.txt diff --git a/selling/page/customers/__init__.py b/erpnext/selling/page/__init__.py similarity index 100% rename from selling/page/customers/__init__.py rename to erpnext/selling/page/__init__.py diff --git a/selling/page/sales_browser/__init__.py b/erpnext/selling/page/customers/__init__.py similarity index 100% rename from selling/page/sales_browser/__init__.py rename to erpnext/selling/page/customers/__init__.py diff --git a/selling/page/customers/customers.html b/erpnext/selling/page/customers/customers.html similarity index 100% rename from selling/page/customers/customers.html rename to erpnext/selling/page/customers/customers.html diff --git a/selling/page/customers/customers.js b/erpnext/selling/page/customers/customers.js similarity index 100% rename from selling/page/customers/customers.js rename to erpnext/selling/page/customers/customers.js diff --git a/selling/page/customers/customers.txt b/erpnext/selling/page/customers/customers.txt similarity index 100% rename from selling/page/customers/customers.txt rename to erpnext/selling/page/customers/customers.txt diff --git a/selling/page/sales_dashboard/__init__.py b/erpnext/selling/page/sales_browser/__init__.py similarity index 100% rename from selling/page/sales_dashboard/__init__.py rename to erpnext/selling/page/sales_browser/__init__.py diff --git a/selling/page/sales_browser/sales_browser.html b/erpnext/selling/page/sales_browser/sales_browser.html similarity index 100% rename from selling/page/sales_browser/sales_browser.html rename to erpnext/selling/page/sales_browser/sales_browser.html diff --git a/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js similarity index 100% rename from selling/page/sales_browser/sales_browser.js rename to erpnext/selling/page/sales_browser/sales_browser.js diff --git a/selling/page/sales_browser/sales_browser.txt b/erpnext/selling/page/sales_browser/sales_browser.txt similarity index 100% rename from selling/page/sales_browser/sales_browser.txt rename to erpnext/selling/page/sales_browser/sales_browser.txt diff --git a/selling/search_criteria/__init__.py b/erpnext/selling/page/sales_dashboard/__init__.py similarity index 100% rename from selling/search_criteria/__init__.py rename to erpnext/selling/page/sales_dashboard/__init__.py diff --git a/selling/page/sales_dashboard/sales_dashboard.html b/erpnext/selling/page/sales_dashboard/sales_dashboard.html similarity index 100% rename from selling/page/sales_dashboard/sales_dashboard.html rename to erpnext/selling/page/sales_dashboard/sales_dashboard.html diff --git a/selling/page/sales_dashboard/sales_dashboard.js b/erpnext/selling/page/sales_dashboard/sales_dashboard.js similarity index 100% rename from selling/page/sales_dashboard/sales_dashboard.js rename to erpnext/selling/page/sales_dashboard/sales_dashboard.js diff --git a/selling/page/sales_dashboard/sales_dashboard.txt b/erpnext/selling/page/sales_dashboard/sales_dashboard.txt similarity index 100% rename from selling/page/sales_dashboard/sales_dashboard.txt rename to erpnext/selling/page/sales_dashboard/sales_dashboard.txt diff --git a/selling/search_criteria/delivered_items_to_be_install/__init__.py b/erpnext/selling/search_criteria/__init__.py similarity index 100% rename from selling/search_criteria/delivered_items_to_be_install/__init__.py rename to erpnext/selling/search_criteria/__init__.py diff --git a/selling/search_criteria/delivery_note_itemwise_pending_to_bill/__init__.py b/erpnext/selling/search_criteria/delivered_items_to_be_install/__init__.py similarity index 100% rename from selling/search_criteria/delivery_note_itemwise_pending_to_bill/__init__.py rename to erpnext/selling/search_criteria/delivered_items_to_be_install/__init__.py diff --git a/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.js b/erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.js similarity index 100% rename from selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.js rename to erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.js diff --git a/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt b/erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt similarity index 100% rename from selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt rename to erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt diff --git a/selling/search_criteria/draft_sales_orders/__init__.py b/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/__init__.py similarity index 100% rename from selling/search_criteria/draft_sales_orders/__init__.py rename to erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/__init__.py diff --git a/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt b/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt similarity index 100% rename from selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt rename to erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt diff --git a/selling/search_criteria/follow_up_report/__init__.py b/erpnext/selling/search_criteria/draft_sales_orders/__init__.py similarity index 100% rename from selling/search_criteria/follow_up_report/__init__.py rename to erpnext/selling/search_criteria/draft_sales_orders/__init__.py diff --git a/selling/search_criteria/draft_sales_orders/draft_sales_orders.js b/erpnext/selling/search_criteria/draft_sales_orders/draft_sales_orders.js similarity index 100% rename from selling/search_criteria/draft_sales_orders/draft_sales_orders.js rename to erpnext/selling/search_criteria/draft_sales_orders/draft_sales_orders.js diff --git a/selling/search_criteria/draft_sales_orders/draft_sales_orders.txt b/erpnext/selling/search_criteria/draft_sales_orders/draft_sales_orders.txt similarity index 100% rename from selling/search_criteria/draft_sales_orders/draft_sales_orders.txt rename to erpnext/selling/search_criteria/draft_sales_orders/draft_sales_orders.txt diff --git a/selling/search_criteria/gross_profit/__init__.py b/erpnext/selling/search_criteria/follow_up_report/__init__.py similarity index 100% rename from selling/search_criteria/gross_profit/__init__.py rename to erpnext/selling/search_criteria/follow_up_report/__init__.py diff --git a/selling/search_criteria/follow_up_report/follow_up_report.js b/erpnext/selling/search_criteria/follow_up_report/follow_up_report.js similarity index 100% rename from selling/search_criteria/follow_up_report/follow_up_report.js rename to erpnext/selling/search_criteria/follow_up_report/follow_up_report.js diff --git a/selling/search_criteria/follow_up_report/follow_up_report.py b/erpnext/selling/search_criteria/follow_up_report/follow_up_report.py similarity index 100% rename from selling/search_criteria/follow_up_report/follow_up_report.py rename to erpnext/selling/search_criteria/follow_up_report/follow_up_report.py diff --git a/selling/search_criteria/follow_up_report/follow_up_report.txt b/erpnext/selling/search_criteria/follow_up_report/follow_up_report.txt similarity index 100% rename from selling/search_criteria/follow_up_report/follow_up_report.txt rename to erpnext/selling/search_criteria/follow_up_report/follow_up_report.txt diff --git a/selling/search_criteria/itemwise_delivery_details/__init__.py b/erpnext/selling/search_criteria/gross_profit/__init__.py similarity index 100% rename from selling/search_criteria/itemwise_delivery_details/__init__.py rename to erpnext/selling/search_criteria/gross_profit/__init__.py diff --git a/selling/search_criteria/gross_profit/gross_profit.js b/erpnext/selling/search_criteria/gross_profit/gross_profit.js similarity index 100% rename from selling/search_criteria/gross_profit/gross_profit.js rename to erpnext/selling/search_criteria/gross_profit/gross_profit.js diff --git a/selling/search_criteria/gross_profit/gross_profit.py b/erpnext/selling/search_criteria/gross_profit/gross_profit.py similarity index 100% rename from selling/search_criteria/gross_profit/gross_profit.py rename to erpnext/selling/search_criteria/gross_profit/gross_profit.py diff --git a/selling/search_criteria/gross_profit/gross_profit.txt b/erpnext/selling/search_criteria/gross_profit/gross_profit.txt similarity index 100% rename from selling/search_criteria/gross_profit/gross_profit.txt rename to erpnext/selling/search_criteria/gross_profit/gross_profit.txt diff --git a/selling/search_criteria/itemwise_sales_details/__init__.py b/erpnext/selling/search_criteria/itemwise_delivery_details/__init__.py similarity index 100% rename from selling/search_criteria/itemwise_sales_details/__init__.py rename to erpnext/selling/search_criteria/itemwise_delivery_details/__init__.py diff --git a/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.js b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.js similarity index 100% rename from selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.js rename to erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.js diff --git a/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.py b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.py similarity index 100% rename from selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.py rename to erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.py diff --git a/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt similarity index 100% rename from selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt rename to erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt diff --git a/selling/search_criteria/monthly_despatched_trend/__init__.py b/erpnext/selling/search_criteria/itemwise_sales_details/__init__.py similarity index 100% rename from selling/search_criteria/monthly_despatched_trend/__init__.py rename to erpnext/selling/search_criteria/itemwise_sales_details/__init__.py diff --git a/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.js b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.js similarity index 100% rename from selling/search_criteria/itemwise_sales_details/itemwise_sales_details.js rename to erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.js diff --git a/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.py b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.py similarity index 100% rename from selling/search_criteria/itemwise_sales_details/itemwise_sales_details.py rename to erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.py diff --git a/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt similarity index 100% rename from selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt rename to erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt diff --git a/selling/search_criteria/periodic_sales_summary/__init__.py b/erpnext/selling/search_criteria/monthly_despatched_trend/__init__.py similarity index 100% rename from selling/search_criteria/periodic_sales_summary/__init__.py rename to erpnext/selling/search_criteria/monthly_despatched_trend/__init__.py diff --git a/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js similarity index 100% rename from selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js rename to erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js diff --git a/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py similarity index 100% rename from selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py rename to erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py diff --git a/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt similarity index 100% rename from selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt rename to erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt diff --git a/selling/search_criteria/sales_agentwise_commission/__init__.py b/erpnext/selling/search_criteria/periodic_sales_summary/__init__.py similarity index 100% rename from selling/search_criteria/sales_agentwise_commission/__init__.py rename to erpnext/selling/search_criteria/periodic_sales_summary/__init__.py diff --git a/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.js b/erpnext/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.js similarity index 100% rename from selling/search_criteria/periodic_sales_summary/periodic_sales_summary.js rename to erpnext/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.js diff --git a/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.txt b/erpnext/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.txt similarity index 100% rename from selling/search_criteria/periodic_sales_summary/periodic_sales_summary.txt rename to erpnext/selling/search_criteria/periodic_sales_summary/periodic_sales_summary.txt diff --git a/selling/search_criteria/sales_order_pending_items1/__init__.py b/erpnext/selling/search_criteria/sales_agentwise_commission/__init__.py similarity index 100% rename from selling/search_criteria/sales_order_pending_items1/__init__.py rename to erpnext/selling/search_criteria/sales_agentwise_commission/__init__.py diff --git a/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.js b/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.js similarity index 100% rename from selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.js rename to erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.js diff --git a/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.py b/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.py similarity index 100% rename from selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.py rename to erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.py diff --git a/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.txt b/erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.txt similarity index 100% rename from selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.txt rename to erpnext/selling/search_criteria/sales_agentwise_commission/sales_agentwise_commission.txt diff --git a/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/__init__.py b/erpnext/selling/search_criteria/sales_order_pending_items1/__init__.py similarity index 100% rename from selling/search_criteria/sales_orderwise_booking_&_delivery_summary/__init__.py rename to erpnext/selling/search_criteria/sales_order_pending_items1/__init__.py diff --git a/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.js b/erpnext/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.js similarity index 100% rename from selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.js rename to erpnext/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.js diff --git a/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.txt b/erpnext/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.txt similarity index 100% rename from selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.txt rename to erpnext/selling/search_criteria/sales_order_pending_items1/sales_order_pending_items1.txt diff --git a/selling/search_criteria/sales_orderwise_booking_ b/erpnext/selling/search_criteria/sales_orderwise_booking_ similarity index 100% rename from selling/search_criteria/sales_orderwise_booking_ rename to erpnext/selling/search_criteria/sales_orderwise_booking_ diff --git a/selling/search_criteria/sales_orderwise_pending_amount_to_bill/__init__.py b/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/__init__.py similarity index 100% rename from selling/search_criteria/sales_orderwise_pending_amount_to_bill/__init__.py rename to erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/__init__.py diff --git a/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt b/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt similarity index 100% rename from selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt rename to erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt diff --git a/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/__init__.py b/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/__init__.py similarity index 100% rename from selling/search_criteria/sales_orderwise_pending_qty_to_deliver/__init__.py rename to erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/__init__.py diff --git a/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.js b/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.js similarity index 100% rename from selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.js rename to erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.js diff --git a/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt b/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt similarity index 100% rename from selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt rename to erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt diff --git a/selling/search_criteria/sales_persons_target_variance_item_group_wise/__init__.py b/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/__init__.py similarity index 100% rename from selling/search_criteria/sales_persons_target_variance_item_group_wise/__init__.py rename to erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/__init__.py diff --git a/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt b/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt similarity index 100% rename from selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt rename to erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt diff --git a/selling/search_criteria/sales_personwise_transaction_summary/__init__.py b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from selling/search_criteria/sales_personwise_transaction_summary/__init__.py rename to erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/__init__.py diff --git a/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.js b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.js similarity index 100% rename from selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.js rename to erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.js diff --git a/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py similarity index 100% rename from selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py rename to erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.py diff --git a/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt similarity index 100% rename from selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt rename to erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt diff --git a/selling/search_criteria/target_variance_report/__init__.py b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from selling/search_criteria/target_variance_report/__init__.py rename to erpnext/selling/search_criteria/sales_personwise_transaction_summary/__init__.py diff --git a/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js similarity index 100% rename from selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js rename to erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js diff --git a/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py similarity index 100% rename from selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py rename to erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py diff --git a/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt similarity index 100% rename from selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt rename to erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt diff --git a/selling/search_criteria/territories_target_variance_item_group_wise/__init__.py b/erpnext/selling/search_criteria/target_variance_report/__init__.py similarity index 100% rename from selling/search_criteria/territories_target_variance_item_group_wise/__init__.py rename to erpnext/selling/search_criteria/target_variance_report/__init__.py diff --git a/selling/search_criteria/target_variance_report/target_variance_report.js b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.js similarity index 100% rename from selling/search_criteria/target_variance_report/target_variance_report.js rename to erpnext/selling/search_criteria/target_variance_report/target_variance_report.js diff --git a/selling/search_criteria/target_variance_report/target_variance_report.py b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.py similarity index 100% rename from selling/search_criteria/target_variance_report/target_variance_report.py rename to erpnext/selling/search_criteria/target_variance_report/target_variance_report.py diff --git a/selling/search_criteria/target_variance_report/target_variance_report.txt b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.txt similarity index 100% rename from selling/search_criteria/target_variance_report/target_variance_report.txt rename to erpnext/selling/search_criteria/target_variance_report/target_variance_report.txt diff --git a/selling/search_criteria/territory_item_group_wise_gp/__init__.py b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/__init__.py similarity index 100% rename from selling/search_criteria/territory_item_group_wise_gp/__init__.py rename to erpnext/selling/search_criteria/territories_target_variance_item_group_wise/__init__.py diff --git a/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.js b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.js similarity index 100% rename from selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.js rename to erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.js diff --git a/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py similarity index 100% rename from selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py rename to erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.py diff --git a/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt similarity index 100% rename from selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt rename to erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt diff --git a/selling/search_criteria/territory_sales___variance_report/__init__.py b/erpnext/selling/search_criteria/territory_item_group_wise_gp/__init__.py similarity index 100% rename from selling/search_criteria/territory_sales___variance_report/__init__.py rename to erpnext/selling/search_criteria/territory_item_group_wise_gp/__init__.py diff --git a/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.py b/erpnext/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.py similarity index 100% rename from selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.py rename to erpnext/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.py diff --git a/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.txt b/erpnext/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.txt similarity index 100% rename from selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.txt rename to erpnext/selling/search_criteria/territory_item_group_wise_gp/territory_item_group_wise_gp.txt diff --git a/selling/search_criteria/total_target_variance_report/__init__.py b/erpnext/selling/search_criteria/territory_sales___variance_report/__init__.py similarity index 100% rename from selling/search_criteria/total_target_variance_report/__init__.py rename to erpnext/selling/search_criteria/territory_sales___variance_report/__init__.py diff --git a/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.js b/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.js similarity index 100% rename from selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.js rename to erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.js diff --git a/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.py b/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.py similarity index 100% rename from selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.py rename to erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.py diff --git a/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt b/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt similarity index 100% rename from selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt rename to erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt diff --git a/selling/search_criteria/variance_report/__init__.py b/erpnext/selling/search_criteria/total_target_variance_report/__init__.py similarity index 100% rename from selling/search_criteria/variance_report/__init__.py rename to erpnext/selling/search_criteria/total_target_variance_report/__init__.py diff --git a/selling/search_criteria/total_target_variance_report/total_target_variance_report.js b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.js similarity index 100% rename from selling/search_criteria/total_target_variance_report/total_target_variance_report.js rename to erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.js diff --git a/selling/search_criteria/total_target_variance_report/total_target_variance_report.py b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.py similarity index 100% rename from selling/search_criteria/total_target_variance_report/total_target_variance_report.py rename to erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.py diff --git a/selling/search_criteria/total_target_variance_report/total_target_variance_report.sql b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.sql similarity index 100% rename from selling/search_criteria/total_target_variance_report/total_target_variance_report.sql rename to erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.sql diff --git a/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt similarity index 100% rename from selling/search_criteria/total_target_variance_report/total_target_variance_report.txt rename to erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt diff --git a/setup/__init__.py b/erpnext/selling/search_criteria/variance_report/__init__.py similarity index 100% rename from setup/__init__.py rename to erpnext/selling/search_criteria/variance_report/__init__.py diff --git a/selling/search_criteria/variance_report/variance_report.js b/erpnext/selling/search_criteria/variance_report/variance_report.js similarity index 100% rename from selling/search_criteria/variance_report/variance_report.js rename to erpnext/selling/search_criteria/variance_report/variance_report.js diff --git a/selling/search_criteria/variance_report/variance_report.py b/erpnext/selling/search_criteria/variance_report/variance_report.py similarity index 100% rename from selling/search_criteria/variance_report/variance_report.py rename to erpnext/selling/search_criteria/variance_report/variance_report.py diff --git a/selling/search_criteria/variance_report/variance_report.sql b/erpnext/selling/search_criteria/variance_report/variance_report.sql similarity index 100% rename from selling/search_criteria/variance_report/variance_report.sql rename to erpnext/selling/search_criteria/variance_report/variance_report.sql diff --git a/selling/search_criteria/variance_report/variance_report.txt b/erpnext/selling/search_criteria/variance_report/variance_report.txt similarity index 100% rename from selling/search_criteria/variance_report/variance_report.txt rename to erpnext/selling/search_criteria/variance_report/variance_report.txt diff --git a/setup/Module Def/Setup/Setup.txt b/erpnext/setup/Module Def/Setup/Setup.txt similarity index 100% rename from setup/Module Def/Setup/Setup.txt rename to erpnext/setup/Module Def/Setup/Setup.txt diff --git a/setup/Role/System Manager/System Manager.txt b/erpnext/setup/Role/System Manager/System Manager.txt similarity index 100% rename from setup/Role/System Manager/System Manager.txt rename to erpnext/setup/Role/System Manager/System Manager.txt diff --git a/setup/doctype/__init__.py b/erpnext/setup/__init__.py similarity index 100% rename from setup/doctype/__init__.py rename to erpnext/setup/__init__.py diff --git a/setup/doctype/authorization_control/__init__.py b/erpnext/setup/doctype/__init__.py similarity index 100% rename from setup/doctype/authorization_control/__init__.py rename to erpnext/setup/doctype/__init__.py diff --git a/setup/doctype/authorization_rule/__init__.py b/erpnext/setup/doctype/authorization_control/__init__.py similarity index 100% rename from setup/doctype/authorization_rule/__init__.py rename to erpnext/setup/doctype/authorization_control/__init__.py diff --git a/setup/doctype/authorization_control/authorization_control.js b/erpnext/setup/doctype/authorization_control/authorization_control.js similarity index 100% rename from setup/doctype/authorization_control/authorization_control.js rename to erpnext/setup/doctype/authorization_control/authorization_control.js diff --git a/setup/doctype/authorization_control/authorization_control.py b/erpnext/setup/doctype/authorization_control/authorization_control.py similarity index 100% rename from setup/doctype/authorization_control/authorization_control.py rename to erpnext/setup/doctype/authorization_control/authorization_control.py diff --git a/setup/doctype/authorization_control/authorization_control.txt b/erpnext/setup/doctype/authorization_control/authorization_control.txt similarity index 100% rename from setup/doctype/authorization_control/authorization_control.txt rename to erpnext/setup/doctype/authorization_control/authorization_control.txt diff --git a/setup/doctype/brand/__init__.py b/erpnext/setup/doctype/authorization_rule/__init__.py similarity index 100% rename from setup/doctype/brand/__init__.py rename to erpnext/setup/doctype/authorization_rule/__init__.py diff --git a/setup/doctype/authorization_rule/authorization_rule.js b/erpnext/setup/doctype/authorization_rule/authorization_rule.js similarity index 100% rename from setup/doctype/authorization_rule/authorization_rule.js rename to erpnext/setup/doctype/authorization_rule/authorization_rule.js diff --git a/setup/doctype/authorization_rule/authorization_rule.py b/erpnext/setup/doctype/authorization_rule/authorization_rule.py similarity index 100% rename from setup/doctype/authorization_rule/authorization_rule.py rename to erpnext/setup/doctype/authorization_rule/authorization_rule.py diff --git a/setup/doctype/authorization_rule/authorization_rule.txt b/erpnext/setup/doctype/authorization_rule/authorization_rule.txt similarity index 100% rename from setup/doctype/authorization_rule/authorization_rule.txt rename to erpnext/setup/doctype/authorization_rule/authorization_rule.txt diff --git a/setup/doctype/company/__init__.py b/erpnext/setup/doctype/brand/__init__.py similarity index 100% rename from setup/doctype/company/__init__.py rename to erpnext/setup/doctype/brand/__init__.py diff --git a/setup/doctype/brand/brand.js b/erpnext/setup/doctype/brand/brand.js similarity index 100% rename from setup/doctype/brand/brand.js rename to erpnext/setup/doctype/brand/brand.js diff --git a/setup/doctype/brand/brand.txt b/erpnext/setup/doctype/brand/brand.txt similarity index 100% rename from setup/doctype/brand/brand.txt rename to erpnext/setup/doctype/brand/brand.txt diff --git a/setup/doctype/contact_control/__init__.py b/erpnext/setup/doctype/company/__init__.py similarity index 100% rename from setup/doctype/contact_control/__init__.py rename to erpnext/setup/doctype/company/__init__.py diff --git a/setup/doctype/company/company.js b/erpnext/setup/doctype/company/company.js similarity index 100% rename from setup/doctype/company/company.js rename to erpnext/setup/doctype/company/company.js diff --git a/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py similarity index 100% rename from setup/doctype/company/company.py rename to erpnext/setup/doctype/company/company.py diff --git a/setup/doctype/company/company.txt b/erpnext/setup/doctype/company/company.txt similarity index 100% rename from setup/doctype/company/company.txt rename to erpnext/setup/doctype/company/company.txt diff --git a/setup/doctype/country/__init__.py b/erpnext/setup/doctype/contact_control/__init__.py similarity index 100% rename from setup/doctype/country/__init__.py rename to erpnext/setup/doctype/contact_control/__init__.py diff --git a/setup/doctype/contact_control/contact_control.js b/erpnext/setup/doctype/contact_control/contact_control.js similarity index 100% rename from setup/doctype/contact_control/contact_control.js rename to erpnext/setup/doctype/contact_control/contact_control.js diff --git a/setup/doctype/contact_control/contact_control.py b/erpnext/setup/doctype/contact_control/contact_control.py similarity index 100% rename from setup/doctype/contact_control/contact_control.py rename to erpnext/setup/doctype/contact_control/contact_control.py diff --git a/setup/doctype/contact_control/contact_control.txt b/erpnext/setup/doctype/contact_control/contact_control.txt similarity index 100% rename from setup/doctype/contact_control/contact_control.txt rename to erpnext/setup/doctype/contact_control/contact_control.txt diff --git a/setup/doctype/currency/__init__.py b/erpnext/setup/doctype/country/__init__.py similarity index 100% rename from setup/doctype/currency/__init__.py rename to erpnext/setup/doctype/country/__init__.py diff --git a/setup/doctype/country/country.js b/erpnext/setup/doctype/country/country.js similarity index 100% rename from setup/doctype/country/country.js rename to erpnext/setup/doctype/country/country.js diff --git a/setup/doctype/country/country.txt b/erpnext/setup/doctype/country/country.txt similarity index 100% rename from setup/doctype/country/country.txt rename to erpnext/setup/doctype/country/country.txt diff --git a/setup/doctype/customer_group/__init__.py b/erpnext/setup/doctype/currency/__init__.py similarity index 100% rename from setup/doctype/customer_group/__init__.py rename to erpnext/setup/doctype/currency/__init__.py diff --git a/setup/doctype/currency/currency.txt b/erpnext/setup/doctype/currency/currency.txt similarity index 100% rename from setup/doctype/currency/currency.txt rename to erpnext/setup/doctype/currency/currency.txt diff --git a/setup/doctype/email_digest/__init__.py b/erpnext/setup/doctype/customer_group/__init__.py similarity index 100% rename from setup/doctype/email_digest/__init__.py rename to erpnext/setup/doctype/customer_group/__init__.py diff --git a/setup/doctype/customer_group/customer_group.js b/erpnext/setup/doctype/customer_group/customer_group.js similarity index 100% rename from setup/doctype/customer_group/customer_group.js rename to erpnext/setup/doctype/customer_group/customer_group.js diff --git a/setup/doctype/customer_group/customer_group.py b/erpnext/setup/doctype/customer_group/customer_group.py similarity index 100% rename from setup/doctype/customer_group/customer_group.py rename to erpnext/setup/doctype/customer_group/customer_group.py diff --git a/setup/doctype/customer_group/customer_group.txt b/erpnext/setup/doctype/customer_group/customer_group.txt similarity index 100% rename from setup/doctype/customer_group/customer_group.txt rename to erpnext/setup/doctype/customer_group/customer_group.txt diff --git a/setup/doctype/email_settings/__init__.py b/erpnext/setup/doctype/email_digest/__init__.py similarity index 100% rename from setup/doctype/email_settings/__init__.py rename to erpnext/setup/doctype/email_digest/__init__.py diff --git a/setup/doctype/email_digest/email_digest.coffee b/erpnext/setup/doctype/email_digest/email_digest.coffee similarity index 100% rename from setup/doctype/email_digest/email_digest.coffee rename to erpnext/setup/doctype/email_digest/email_digest.coffee diff --git a/setup/doctype/email_digest/email_digest.css b/erpnext/setup/doctype/email_digest/email_digest.css similarity index 100% rename from setup/doctype/email_digest/email_digest.css rename to erpnext/setup/doctype/email_digest/email_digest.css diff --git a/setup/doctype/email_digest/email_digest.js b/erpnext/setup/doctype/email_digest/email_digest.js similarity index 100% rename from setup/doctype/email_digest/email_digest.js rename to erpnext/setup/doctype/email_digest/email_digest.js diff --git a/setup/doctype/email_digest/email_digest.txt b/erpnext/setup/doctype/email_digest/email_digest.txt similarity index 100% rename from setup/doctype/email_digest/email_digest.txt rename to erpnext/setup/doctype/email_digest/email_digest.txt diff --git a/setup/doctype/features_setup/__init__.py b/erpnext/setup/doctype/email_settings/__init__.py similarity index 100% rename from setup/doctype/features_setup/__init__.py rename to erpnext/setup/doctype/email_settings/__init__.py diff --git a/setup/doctype/email_settings/email_settings.js b/erpnext/setup/doctype/email_settings/email_settings.js similarity index 100% rename from setup/doctype/email_settings/email_settings.js rename to erpnext/setup/doctype/email_settings/email_settings.js diff --git a/setup/doctype/email_settings/email_settings.py b/erpnext/setup/doctype/email_settings/email_settings.py similarity index 100% rename from setup/doctype/email_settings/email_settings.py rename to erpnext/setup/doctype/email_settings/email_settings.py diff --git a/setup/doctype/email_settings/email_settings.txt b/erpnext/setup/doctype/email_settings/email_settings.txt similarity index 100% rename from setup/doctype/email_settings/email_settings.txt rename to erpnext/setup/doctype/email_settings/email_settings.txt diff --git a/setup/doctype/import_data_control/__init__.py b/erpnext/setup/doctype/features_setup/__init__.py similarity index 100% rename from setup/doctype/import_data_control/__init__.py rename to erpnext/setup/doctype/features_setup/__init__.py diff --git a/setup/doctype/features_setup/features_setup.py b/erpnext/setup/doctype/features_setup/features_setup.py similarity index 100% rename from setup/doctype/features_setup/features_setup.py rename to erpnext/setup/doctype/features_setup/features_setup.py diff --git a/setup/doctype/features_setup/features_setup.txt b/erpnext/setup/doctype/features_setup/features_setup.txt similarity index 100% rename from setup/doctype/features_setup/features_setup.txt rename to erpnext/setup/doctype/features_setup/features_setup.txt diff --git a/setup/doctype/item_group/__init__.py b/erpnext/setup/doctype/import_data_control/__init__.py similarity index 100% rename from setup/doctype/item_group/__init__.py rename to erpnext/setup/doctype/import_data_control/__init__.py diff --git a/setup/doctype/import_data_control/import_data_control.py b/erpnext/setup/doctype/import_data_control/import_data_control.py similarity index 100% rename from setup/doctype/import_data_control/import_data_control.py rename to erpnext/setup/doctype/import_data_control/import_data_control.py diff --git a/setup/doctype/import_data_control/import_data_control.txt b/erpnext/setup/doctype/import_data_control/import_data_control.txt similarity index 100% rename from setup/doctype/import_data_control/import_data_control.txt rename to erpnext/setup/doctype/import_data_control/import_data_control.txt diff --git a/setup/doctype/manage_account/__init__.py b/erpnext/setup/doctype/item_group/__init__.py similarity index 100% rename from setup/doctype/manage_account/__init__.py rename to erpnext/setup/doctype/item_group/__init__.py diff --git a/setup/doctype/item_group/item_group.js b/erpnext/setup/doctype/item_group/item_group.js similarity index 100% rename from setup/doctype/item_group/item_group.js rename to erpnext/setup/doctype/item_group/item_group.js diff --git a/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py similarity index 100% rename from setup/doctype/item_group/item_group.py rename to erpnext/setup/doctype/item_group/item_group.py diff --git a/setup/doctype/item_group/item_group.txt b/erpnext/setup/doctype/item_group/item_group.txt similarity index 100% rename from setup/doctype/item_group/item_group.txt rename to erpnext/setup/doctype/item_group/item_group.txt diff --git a/setup/doctype/market_segment/__init__.py b/erpnext/setup/doctype/manage_account/__init__.py similarity index 100% rename from setup/doctype/market_segment/__init__.py rename to erpnext/setup/doctype/manage_account/__init__.py diff --git a/setup/doctype/manage_account/manage_account.js b/erpnext/setup/doctype/manage_account/manage_account.js similarity index 100% rename from setup/doctype/manage_account/manage_account.js rename to erpnext/setup/doctype/manage_account/manage_account.js diff --git a/setup/doctype/manage_account/manage_account.py b/erpnext/setup/doctype/manage_account/manage_account.py similarity index 100% rename from setup/doctype/manage_account/manage_account.py rename to erpnext/setup/doctype/manage_account/manage_account.py diff --git a/setup/doctype/manage_account/manage_account.txt b/erpnext/setup/doctype/manage_account/manage_account.txt similarity index 100% rename from setup/doctype/manage_account/manage_account.txt rename to erpnext/setup/doctype/manage_account/manage_account.txt diff --git a/setup/doctype/naming_series/__init__.py b/erpnext/setup/doctype/market_segment/__init__.py similarity index 100% rename from setup/doctype/naming_series/__init__.py rename to erpnext/setup/doctype/market_segment/__init__.py diff --git a/setup/doctype/market_segment/market_segment.txt b/erpnext/setup/doctype/market_segment/market_segment.txt similarity index 100% rename from setup/doctype/market_segment/market_segment.txt rename to erpnext/setup/doctype/market_segment/market_segment.txt diff --git a/setup/doctype/naming_series_options/__init__.py b/erpnext/setup/doctype/naming_series/__init__.py similarity index 100% rename from setup/doctype/naming_series_options/__init__.py rename to erpnext/setup/doctype/naming_series/__init__.py diff --git a/setup/doctype/naming_series/naming_series.js b/erpnext/setup/doctype/naming_series/naming_series.js similarity index 100% rename from setup/doctype/naming_series/naming_series.js rename to erpnext/setup/doctype/naming_series/naming_series.js diff --git a/setup/doctype/naming_series/naming_series.py b/erpnext/setup/doctype/naming_series/naming_series.py similarity index 100% rename from setup/doctype/naming_series/naming_series.py rename to erpnext/setup/doctype/naming_series/naming_series.py diff --git a/setup/doctype/naming_series/naming_series.txt b/erpnext/setup/doctype/naming_series/naming_series.txt similarity index 100% rename from setup/doctype/naming_series/naming_series.txt rename to erpnext/setup/doctype/naming_series/naming_series.txt diff --git a/setup/doctype/notification_control/__init__.py b/erpnext/setup/doctype/naming_series_options/__init__.py similarity index 100% rename from setup/doctype/notification_control/__init__.py rename to erpnext/setup/doctype/naming_series_options/__init__.py diff --git a/setup/doctype/naming_series_options/naming_series_options.txt b/erpnext/setup/doctype/naming_series_options/naming_series_options.txt similarity index 100% rename from setup/doctype/naming_series_options/naming_series_options.txt rename to erpnext/setup/doctype/naming_series_options/naming_series_options.txt diff --git a/setup/doctype/order_lost_reason/__init__.py b/erpnext/setup/doctype/notification_control/__init__.py similarity index 100% rename from setup/doctype/order_lost_reason/__init__.py rename to erpnext/setup/doctype/notification_control/__init__.py diff --git a/setup/doctype/notification_control/notification_control.js b/erpnext/setup/doctype/notification_control/notification_control.js similarity index 100% rename from setup/doctype/notification_control/notification_control.js rename to erpnext/setup/doctype/notification_control/notification_control.js diff --git a/setup/doctype/notification_control/notification_control.py b/erpnext/setup/doctype/notification_control/notification_control.py similarity index 100% rename from setup/doctype/notification_control/notification_control.py rename to erpnext/setup/doctype/notification_control/notification_control.py diff --git a/setup/doctype/notification_control/notification_control.txt b/erpnext/setup/doctype/notification_control/notification_control.txt similarity index 100% rename from setup/doctype/notification_control/notification_control.txt rename to erpnext/setup/doctype/notification_control/notification_control.txt diff --git a/setup/doctype/other_charges/__init__.py b/erpnext/setup/doctype/order_lost_reason/__init__.py similarity index 100% rename from setup/doctype/other_charges/__init__.py rename to erpnext/setup/doctype/order_lost_reason/__init__.py diff --git a/setup/doctype/order_lost_reason/order_lost_reason.js b/erpnext/setup/doctype/order_lost_reason/order_lost_reason.js similarity index 100% rename from setup/doctype/order_lost_reason/order_lost_reason.js rename to erpnext/setup/doctype/order_lost_reason/order_lost_reason.js diff --git a/setup/doctype/order_lost_reason/order_lost_reason.txt b/erpnext/setup/doctype/order_lost_reason/order_lost_reason.txt similarity index 100% rename from setup/doctype/order_lost_reason/order_lost_reason.txt rename to erpnext/setup/doctype/order_lost_reason/order_lost_reason.txt diff --git a/setup/doctype/period/__init__.py b/erpnext/setup/doctype/other_charges/__init__.py similarity index 100% rename from setup/doctype/period/__init__.py rename to erpnext/setup/doctype/other_charges/__init__.py diff --git a/setup/doctype/other_charges/other_charges.js b/erpnext/setup/doctype/other_charges/other_charges.js similarity index 100% rename from setup/doctype/other_charges/other_charges.js rename to erpnext/setup/doctype/other_charges/other_charges.js diff --git a/setup/doctype/other_charges/other_charges.py b/erpnext/setup/doctype/other_charges/other_charges.py similarity index 100% rename from setup/doctype/other_charges/other_charges.py rename to erpnext/setup/doctype/other_charges/other_charges.py diff --git a/setup/doctype/other_charges/other_charges.txt b/erpnext/setup/doctype/other_charges/other_charges.txt similarity index 100% rename from setup/doctype/other_charges/other_charges.txt rename to erpnext/setup/doctype/other_charges/other_charges.txt diff --git a/setup/doctype/period_control/__init__.py b/erpnext/setup/doctype/period/__init__.py similarity index 100% rename from setup/doctype/period_control/__init__.py rename to erpnext/setup/doctype/period/__init__.py diff --git a/setup/doctype/period/period.js b/erpnext/setup/doctype/period/period.js similarity index 100% rename from setup/doctype/period/period.js rename to erpnext/setup/doctype/period/period.js diff --git a/setup/doctype/period/period.txt b/erpnext/setup/doctype/period/period.txt similarity index 100% rename from setup/doctype/period/period.txt rename to erpnext/setup/doctype/period/period.txt diff --git a/setup/doctype/permission_control/__init__.py b/erpnext/setup/doctype/period_control/__init__.py similarity index 100% rename from setup/doctype/permission_control/__init__.py rename to erpnext/setup/doctype/period_control/__init__.py diff --git a/setup/doctype/period_control/period_control.py b/erpnext/setup/doctype/period_control/period_control.py similarity index 100% rename from setup/doctype/period_control/period_control.py rename to erpnext/setup/doctype/period_control/period_control.py diff --git a/setup/doctype/period_control/period_control.txt b/erpnext/setup/doctype/period_control/period_control.txt similarity index 100% rename from setup/doctype/period_control/period_control.txt rename to erpnext/setup/doctype/period_control/period_control.txt diff --git a/setup/doctype/personalize/__init__.py b/erpnext/setup/doctype/permission_control/__init__.py similarity index 100% rename from setup/doctype/personalize/__init__.py rename to erpnext/setup/doctype/permission_control/__init__.py diff --git a/setup/doctype/permission_control/permission_control.py b/erpnext/setup/doctype/permission_control/permission_control.py similarity index 100% rename from setup/doctype/permission_control/permission_control.py rename to erpnext/setup/doctype/permission_control/permission_control.py diff --git a/setup/doctype/permission_control/permission_control.txt b/erpnext/setup/doctype/permission_control/permission_control.txt similarity index 100% rename from setup/doctype/permission_control/permission_control.txt rename to erpnext/setup/doctype/permission_control/permission_control.txt diff --git a/setup/doctype/price_list/__init__.py b/erpnext/setup/doctype/personalize/__init__.py similarity index 100% rename from setup/doctype/price_list/__init__.py rename to erpnext/setup/doctype/personalize/__init__.py diff --git a/setup/doctype/personalize/personalize.py b/erpnext/setup/doctype/personalize/personalize.py similarity index 100% rename from setup/doctype/personalize/personalize.py rename to erpnext/setup/doctype/personalize/personalize.py diff --git a/setup/doctype/personalize/personalize.txt b/erpnext/setup/doctype/personalize/personalize.txt similarity index 100% rename from setup/doctype/personalize/personalize.txt rename to erpnext/setup/doctype/personalize/personalize.txt diff --git a/setup/doctype/print_heading/__init__.py b/erpnext/setup/doctype/price_list/__init__.py similarity index 100% rename from setup/doctype/print_heading/__init__.py rename to erpnext/setup/doctype/price_list/__init__.py diff --git a/setup/doctype/price_list/price_list.js b/erpnext/setup/doctype/price_list/price_list.js similarity index 100% rename from setup/doctype/price_list/price_list.js rename to erpnext/setup/doctype/price_list/price_list.js diff --git a/setup/doctype/price_list/price_list.py b/erpnext/setup/doctype/price_list/price_list.py similarity index 100% rename from setup/doctype/price_list/price_list.py rename to erpnext/setup/doctype/price_list/price_list.py diff --git a/setup/doctype/price_list/price_list.txt b/erpnext/setup/doctype/price_list/price_list.txt similarity index 100% rename from setup/doctype/price_list/price_list.txt rename to erpnext/setup/doctype/price_list/price_list.txt diff --git a/setup/doctype/role/__init__.py b/erpnext/setup/doctype/print_heading/__init__.py similarity index 100% rename from setup/doctype/role/__init__.py rename to erpnext/setup/doctype/print_heading/__init__.py diff --git a/setup/doctype/print_heading/print_heading.js b/erpnext/setup/doctype/print_heading/print_heading.js similarity index 100% rename from setup/doctype/print_heading/print_heading.js rename to erpnext/setup/doctype/print_heading/print_heading.js diff --git a/setup/doctype/print_heading/print_heading.py b/erpnext/setup/doctype/print_heading/print_heading.py similarity index 100% rename from setup/doctype/print_heading/print_heading.py rename to erpnext/setup/doctype/print_heading/print_heading.py diff --git a/setup/doctype/print_heading/print_heading.txt b/erpnext/setup/doctype/print_heading/print_heading.txt similarity index 100% rename from setup/doctype/print_heading/print_heading.txt rename to erpnext/setup/doctype/print_heading/print_heading.txt diff --git a/setup/doctype/sales_browser_control/__init__.py b/erpnext/setup/doctype/role/__init__.py similarity index 100% rename from setup/doctype/sales_browser_control/__init__.py rename to erpnext/setup/doctype/role/__init__.py diff --git a/setup/doctype/role/role.js b/erpnext/setup/doctype/role/role.js similarity index 100% rename from setup/doctype/role/role.js rename to erpnext/setup/doctype/role/role.js diff --git a/setup/doctype/role/role.py b/erpnext/setup/doctype/role/role.py similarity index 100% rename from setup/doctype/role/role.py rename to erpnext/setup/doctype/role/role.py diff --git a/setup/doctype/role/role.txt b/erpnext/setup/doctype/role/role.txt similarity index 100% rename from setup/doctype/role/role.txt rename to erpnext/setup/doctype/role/role.txt diff --git a/setup/doctype/sales_partner/__init__.py b/erpnext/setup/doctype/sales_browser_control/__init__.py similarity index 100% rename from setup/doctype/sales_partner/__init__.py rename to erpnext/setup/doctype/sales_browser_control/__init__.py diff --git a/setup/doctype/sales_browser_control/sales_browser_control.py b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.py similarity index 100% rename from setup/doctype/sales_browser_control/sales_browser_control.py rename to erpnext/setup/doctype/sales_browser_control/sales_browser_control.py diff --git a/setup/doctype/sales_browser_control/sales_browser_control.txt b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.txt similarity index 100% rename from setup/doctype/sales_browser_control/sales_browser_control.txt rename to erpnext/setup/doctype/sales_browser_control/sales_browser_control.txt diff --git a/setup/doctype/sales_person/__init__.py b/erpnext/setup/doctype/sales_partner/__init__.py similarity index 100% rename from setup/doctype/sales_person/__init__.py rename to erpnext/setup/doctype/sales_partner/__init__.py diff --git a/setup/doctype/sales_partner/sales_partner.js b/erpnext/setup/doctype/sales_partner/sales_partner.js similarity index 100% rename from setup/doctype/sales_partner/sales_partner.js rename to erpnext/setup/doctype/sales_partner/sales_partner.js diff --git a/setup/doctype/sales_partner/sales_partner.py b/erpnext/setup/doctype/sales_partner/sales_partner.py similarity index 100% rename from setup/doctype/sales_partner/sales_partner.py rename to erpnext/setup/doctype/sales_partner/sales_partner.py diff --git a/setup/doctype/sales_partner/sales_partner.txt b/erpnext/setup/doctype/sales_partner/sales_partner.txt similarity index 100% rename from setup/doctype/sales_partner/sales_partner.txt rename to erpnext/setup/doctype/sales_partner/sales_partner.txt diff --git a/setup/doctype/series_detail/__init__.py b/erpnext/setup/doctype/sales_person/__init__.py similarity index 100% rename from setup/doctype/series_detail/__init__.py rename to erpnext/setup/doctype/sales_person/__init__.py diff --git a/setup/doctype/sales_person/sales_person.js b/erpnext/setup/doctype/sales_person/sales_person.js similarity index 100% rename from setup/doctype/sales_person/sales_person.js rename to erpnext/setup/doctype/sales_person/sales_person.js diff --git a/setup/doctype/sales_person/sales_person.py b/erpnext/setup/doctype/sales_person/sales_person.py similarity index 100% rename from setup/doctype/sales_person/sales_person.py rename to erpnext/setup/doctype/sales_person/sales_person.py diff --git a/setup/doctype/sales_person/sales_person.txt b/erpnext/setup/doctype/sales_person/sales_person.txt similarity index 100% rename from setup/doctype/sales_person/sales_person.txt rename to erpnext/setup/doctype/sales_person/sales_person.txt diff --git a/setup/doctype/setup_control/__init__.py b/erpnext/setup/doctype/series_detail/__init__.py similarity index 100% rename from setup/doctype/setup_control/__init__.py rename to erpnext/setup/doctype/series_detail/__init__.py diff --git a/setup/doctype/series_detail/series_detail.txt b/erpnext/setup/doctype/series_detail/series_detail.txt similarity index 100% rename from setup/doctype/series_detail/series_detail.txt rename to erpnext/setup/doctype/series_detail/series_detail.txt diff --git a/setup/doctype/setup_wizard_control/__init__.py b/erpnext/setup/doctype/setup_control/__init__.py similarity index 100% rename from setup/doctype/setup_wizard_control/__init__.py rename to erpnext/setup/doctype/setup_control/__init__.py diff --git a/setup/doctype/setup_control/setup_control.py b/erpnext/setup/doctype/setup_control/setup_control.py similarity index 100% rename from setup/doctype/setup_control/setup_control.py rename to erpnext/setup/doctype/setup_control/setup_control.py diff --git a/setup/doctype/setup_control/setup_control.txt b/erpnext/setup/doctype/setup_control/setup_control.txt similarity index 100% rename from setup/doctype/setup_control/setup_control.txt rename to erpnext/setup/doctype/setup_control/setup_control.txt diff --git a/setup/doctype/sms_settings/__init__.py b/erpnext/setup/doctype/setup_wizard_control/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from setup/doctype/sms_settings/__init__.py rename to erpnext/setup/doctype/setup_wizard_control/__init__.py diff --git a/setup/doctype/setup_wizard_control/setup_wizard_control.py b/erpnext/setup/doctype/setup_wizard_control/setup_wizard_control.py similarity index 100% rename from setup/doctype/setup_wizard_control/setup_wizard_control.py rename to erpnext/setup/doctype/setup_wizard_control/setup_wizard_control.py diff --git a/setup/doctype/setup_wizard_control/setup_wizard_control.txt b/erpnext/setup/doctype/setup_wizard_control/setup_wizard_control.txt similarity index 100% rename from setup/doctype/setup_wizard_control/setup_wizard_control.txt rename to erpnext/setup/doctype/setup_wizard_control/setup_wizard_control.txt diff --git a/setup/doctype/state/__init__.py b/erpnext/setup/doctype/sms_settings/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from setup/doctype/state/__init__.py rename to erpnext/setup/doctype/sms_settings/__init__.py diff --git a/setup/doctype/sms_settings/sms_settings.txt b/erpnext/setup/doctype/sms_settings/sms_settings.txt similarity index 100% rename from setup/doctype/sms_settings/sms_settings.txt rename to erpnext/setup/doctype/sms_settings/sms_settings.txt diff --git a/setup/doctype/static_parameter_detail/__init__.py b/erpnext/setup/doctype/state/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from setup/doctype/static_parameter_detail/__init__.py rename to erpnext/setup/doctype/state/__init__.py diff --git a/setup/doctype/state/state.js b/erpnext/setup/doctype/state/state.js similarity index 100% rename from setup/doctype/state/state.js rename to erpnext/setup/doctype/state/state.js diff --git a/setup/doctype/state/state.txt b/erpnext/setup/doctype/state/state.txt similarity index 100% rename from setup/doctype/state/state.txt rename to erpnext/setup/doctype/state/state.txt diff --git a/setup/doctype/supplier_type/__init__.py b/erpnext/setup/doctype/static_parameter_detail/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from setup/doctype/supplier_type/__init__.py rename to erpnext/setup/doctype/static_parameter_detail/__init__.py diff --git a/setup/doctype/static_parameter_detail/static_parameter_detail.txt b/erpnext/setup/doctype/static_parameter_detail/static_parameter_detail.txt similarity index 100% rename from setup/doctype/static_parameter_detail/static_parameter_detail.txt rename to erpnext/setup/doctype/static_parameter_detail/static_parameter_detail.txt diff --git a/setup/doctype/target_detail/__init__.py b/erpnext/setup/doctype/supplier_type/__init__.py similarity index 100% rename from setup/doctype/target_detail/__init__.py rename to erpnext/setup/doctype/supplier_type/__init__.py diff --git a/setup/doctype/supplier_type/supplier_type.js b/erpnext/setup/doctype/supplier_type/supplier_type.js similarity index 100% rename from setup/doctype/supplier_type/supplier_type.js rename to erpnext/setup/doctype/supplier_type/supplier_type.js diff --git a/setup/doctype/supplier_type/supplier_type.txt b/erpnext/setup/doctype/supplier_type/supplier_type.txt similarity index 100% rename from setup/doctype/supplier_type/supplier_type.txt rename to erpnext/setup/doctype/supplier_type/supplier_type.txt diff --git a/setup/doctype/term/__init__.py b/erpnext/setup/doctype/target_detail/__init__.py similarity index 100% rename from setup/doctype/term/__init__.py rename to erpnext/setup/doctype/target_detail/__init__.py diff --git a/setup/doctype/target_detail/target_detail.txt b/erpnext/setup/doctype/target_detail/target_detail.txt similarity index 100% rename from setup/doctype/target_detail/target_detail.txt rename to erpnext/setup/doctype/target_detail/target_detail.txt diff --git a/setup/doctype/territory/__init__.py b/erpnext/setup/doctype/term/__init__.py similarity index 100% rename from setup/doctype/territory/__init__.py rename to erpnext/setup/doctype/term/__init__.py diff --git a/setup/doctype/term/term.js b/erpnext/setup/doctype/term/term.js similarity index 100% rename from setup/doctype/term/term.js rename to erpnext/setup/doctype/term/term.js diff --git a/setup/doctype/term/term.txt b/erpnext/setup/doctype/term/term.txt similarity index 100% rename from setup/doctype/term/term.txt rename to erpnext/setup/doctype/term/term.txt diff --git a/setup/doctype/uom/__init__.py b/erpnext/setup/doctype/territory/__init__.py similarity index 100% rename from setup/doctype/uom/__init__.py rename to erpnext/setup/doctype/territory/__init__.py diff --git a/setup/doctype/territory/territory.js b/erpnext/setup/doctype/territory/territory.js similarity index 100% rename from setup/doctype/territory/territory.js rename to erpnext/setup/doctype/territory/territory.js diff --git a/setup/doctype/territory/territory.py b/erpnext/setup/doctype/territory/territory.py similarity index 100% rename from setup/doctype/territory/territory.py rename to erpnext/setup/doctype/territory/territory.py diff --git a/setup/doctype/territory/territory.txt b/erpnext/setup/doctype/territory/territory.txt similarity index 100% rename from setup/doctype/territory/territory.txt rename to erpnext/setup/doctype/territory/territory.txt diff --git a/setup/doctype/update_series/__init__.py b/erpnext/setup/doctype/uom/__init__.py similarity index 100% rename from setup/doctype/update_series/__init__.py rename to erpnext/setup/doctype/uom/__init__.py diff --git a/setup/doctype/uom/uom.js b/erpnext/setup/doctype/uom/uom.js similarity index 100% rename from setup/doctype/uom/uom.js rename to erpnext/setup/doctype/uom/uom.js diff --git a/setup/doctype/uom/uom.txt b/erpnext/setup/doctype/uom/uom.txt similarity index 100% rename from setup/doctype/uom/uom.txt rename to erpnext/setup/doctype/uom/uom.txt diff --git a/setup/doctype/upload_accounts_transactions/__init__.py b/erpnext/setup/doctype/update_series/__init__.py similarity index 100% rename from setup/doctype/upload_accounts_transactions/__init__.py rename to erpnext/setup/doctype/update_series/__init__.py diff --git a/setup/doctype/update_series/update_series.py b/erpnext/setup/doctype/update_series/update_series.py similarity index 100% rename from setup/doctype/update_series/update_series.py rename to erpnext/setup/doctype/update_series/update_series.py diff --git a/setup/doctype/update_series/update_series.txt b/erpnext/setup/doctype/update_series/update_series.txt similarity index 100% rename from setup/doctype/update_series/update_series.txt rename to erpnext/setup/doctype/update_series/update_series.txt diff --git a/setup/doctype/warehouse_type/__init__.py b/erpnext/setup/doctype/upload_accounts_transactions/__init__.py similarity index 100% rename from setup/doctype/warehouse_type/__init__.py rename to erpnext/setup/doctype/upload_accounts_transactions/__init__.py diff --git a/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.js b/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.js similarity index 100% rename from setup/doctype/upload_accounts_transactions/upload_accounts_transactions.js rename to erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.js diff --git a/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.py b/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.py similarity index 100% rename from setup/doctype/upload_accounts_transactions/upload_accounts_transactions.py rename to erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.py diff --git a/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.txt b/erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.txt similarity index 100% rename from setup/doctype/upload_accounts_transactions/upload_accounts_transactions.txt rename to erpnext/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.txt diff --git a/setup/doctype/workflow_action_detail/__init__.py b/erpnext/setup/doctype/warehouse_type/__init__.py similarity index 100% rename from setup/doctype/workflow_action_detail/__init__.py rename to erpnext/setup/doctype/warehouse_type/__init__.py diff --git a/setup/doctype/warehouse_type/warehouse_type.js b/erpnext/setup/doctype/warehouse_type/warehouse_type.js similarity index 100% rename from setup/doctype/warehouse_type/warehouse_type.js rename to erpnext/setup/doctype/warehouse_type/warehouse_type.js diff --git a/setup/doctype/warehouse_type/warehouse_type.txt b/erpnext/setup/doctype/warehouse_type/warehouse_type.txt similarity index 100% rename from setup/doctype/warehouse_type/warehouse_type.txt rename to erpnext/setup/doctype/warehouse_type/warehouse_type.txt diff --git a/setup/doctype/workflow_engine/__init__.py b/erpnext/setup/doctype/workflow_action_detail/__init__.py similarity index 100% rename from setup/doctype/workflow_engine/__init__.py rename to erpnext/setup/doctype/workflow_action_detail/__init__.py diff --git a/setup/doctype/workflow_action_detail/workflow_action_detail.txt b/erpnext/setup/doctype/workflow_action_detail/workflow_action_detail.txt similarity index 100% rename from setup/doctype/workflow_action_detail/workflow_action_detail.txt rename to erpnext/setup/doctype/workflow_action_detail/workflow_action_detail.txt diff --git a/setup/doctype/workflow_rule/__init__.py b/erpnext/setup/doctype/workflow_engine/__init__.py similarity index 100% rename from setup/doctype/workflow_rule/__init__.py rename to erpnext/setup/doctype/workflow_engine/__init__.py diff --git a/setup/doctype/workflow_engine/workflow_engine.py b/erpnext/setup/doctype/workflow_engine/workflow_engine.py similarity index 100% rename from setup/doctype/workflow_engine/workflow_engine.py rename to erpnext/setup/doctype/workflow_engine/workflow_engine.py diff --git a/setup/doctype/workflow_engine/workflow_engine.txt b/erpnext/setup/doctype/workflow_engine/workflow_engine.txt similarity index 100% rename from setup/doctype/workflow_engine/workflow_engine.txt rename to erpnext/setup/doctype/workflow_engine/workflow_engine.txt diff --git a/setup/doctype/workflow_rule_detail/__init__.py b/erpnext/setup/doctype/workflow_rule/__init__.py similarity index 100% rename from setup/doctype/workflow_rule_detail/__init__.py rename to erpnext/setup/doctype/workflow_rule/__init__.py diff --git a/setup/doctype/workflow_rule/workflow_rule.js b/erpnext/setup/doctype/workflow_rule/workflow_rule.js similarity index 100% rename from setup/doctype/workflow_rule/workflow_rule.js rename to erpnext/setup/doctype/workflow_rule/workflow_rule.js diff --git a/setup/doctype/workflow_rule/workflow_rule.py b/erpnext/setup/doctype/workflow_rule/workflow_rule.py similarity index 100% rename from setup/doctype/workflow_rule/workflow_rule.py rename to erpnext/setup/doctype/workflow_rule/workflow_rule.py diff --git a/setup/doctype/workflow_rule/workflow_rule.txt b/erpnext/setup/doctype/workflow_rule/workflow_rule.txt similarity index 100% rename from setup/doctype/workflow_rule/workflow_rule.txt rename to erpnext/setup/doctype/workflow_rule/workflow_rule.txt diff --git a/setup/page/__init__.py b/erpnext/setup/doctype/workflow_rule_detail/__init__.py similarity index 100% rename from setup/page/__init__.py rename to erpnext/setup/doctype/workflow_rule_detail/__init__.py diff --git a/setup/doctype/workflow_rule_detail/workflow_rule_detail.txt b/erpnext/setup/doctype/workflow_rule_detail/workflow_rule_detail.txt similarity index 100% rename from setup/doctype/workflow_rule_detail/workflow_rule_detail.txt rename to erpnext/setup/doctype/workflow_rule_detail/workflow_rule_detail.txt diff --git a/setup/page/import_data/__init__.py b/erpnext/setup/page/__init__.py similarity index 100% rename from setup/page/import_data/__init__.py rename to erpnext/setup/page/__init__.py diff --git a/setup/page/people/__init__.py b/erpnext/setup/page/import_data/__init__.py similarity index 100% rename from setup/page/people/__init__.py rename to erpnext/setup/page/import_data/__init__.py diff --git a/setup/page/import_data/import_data.html b/erpnext/setup/page/import_data/import_data.html similarity index 100% rename from setup/page/import_data/import_data.html rename to erpnext/setup/page/import_data/import_data.html diff --git a/setup/page/import_data/import_data.js b/erpnext/setup/page/import_data/import_data.js similarity index 100% rename from setup/page/import_data/import_data.js rename to erpnext/setup/page/import_data/import_data.js diff --git a/setup/page/import_data/import_data.txt b/erpnext/setup/page/import_data/import_data.txt similarity index 100% rename from setup/page/import_data/import_data.txt rename to erpnext/setup/page/import_data/import_data.txt diff --git a/setup/page/permission_engine/__init__.py b/erpnext/setup/page/people/__init__.py similarity index 100% rename from setup/page/permission_engine/__init__.py rename to erpnext/setup/page/people/__init__.py diff --git a/setup/page/people/people.html b/erpnext/setup/page/people/people.html similarity index 100% rename from setup/page/people/people.html rename to erpnext/setup/page/people/people.html diff --git a/setup/page/people/people.js b/erpnext/setup/page/people/people.js similarity index 100% rename from setup/page/people/people.js rename to erpnext/setup/page/people/people.js diff --git a/setup/page/people/people.txt b/erpnext/setup/page/people/people.txt similarity index 100% rename from setup/page/people/people.txt rename to erpnext/setup/page/people/people.txt diff --git a/setup/page/setup/__init__.py b/erpnext/setup/page/permission_engine/__init__.py similarity index 100% rename from setup/page/setup/__init__.py rename to erpnext/setup/page/permission_engine/__init__.py diff --git a/setup/page/permission_engine/permission_engine.html b/erpnext/setup/page/permission_engine/permission_engine.html similarity index 100% rename from setup/page/permission_engine/permission_engine.html rename to erpnext/setup/page/permission_engine/permission_engine.html diff --git a/setup/page/permission_engine/permission_engine.js b/erpnext/setup/page/permission_engine/permission_engine.js similarity index 100% rename from setup/page/permission_engine/permission_engine.js rename to erpnext/setup/page/permission_engine/permission_engine.js diff --git a/setup/page/permission_engine/permission_engine.txt b/erpnext/setup/page/permission_engine/permission_engine.txt similarity index 100% rename from setup/page/permission_engine/permission_engine.txt rename to erpnext/setup/page/permission_engine/permission_engine.txt diff --git a/setup/page/setup_wizard/__init__.py b/erpnext/setup/page/setup/__init__.py similarity index 100% rename from setup/page/setup_wizard/__init__.py rename to erpnext/setup/page/setup/__init__.py diff --git a/setup/page/setup/setup.html b/erpnext/setup/page/setup/setup.html similarity index 100% rename from setup/page/setup/setup.html rename to erpnext/setup/page/setup/setup.html diff --git a/setup/page/setup/setup.js b/erpnext/setup/page/setup/setup.js similarity index 100% rename from setup/page/setup/setup.js rename to erpnext/setup/page/setup/setup.js diff --git a/setup/page/setup/setup.txt b/erpnext/setup/page/setup/setup.txt similarity index 100% rename from setup/page/setup/setup.txt rename to erpnext/setup/page/setup/setup.txt diff --git a/setup/page/setup/setup_static.html b/erpnext/setup/page/setup/setup_static.html similarity index 100% rename from setup/page/setup/setup_static.html rename to erpnext/setup/page/setup/setup_static.html diff --git a/setup/page/webforms/__init__.py b/erpnext/setup/page/setup_wizard/__init__.py similarity index 100% rename from setup/page/webforms/__init__.py rename to erpnext/setup/page/setup_wizard/__init__.py diff --git a/setup/page/setup_wizard/setup_wizard.html b/erpnext/setup/page/setup_wizard/setup_wizard.html similarity index 100% rename from setup/page/setup_wizard/setup_wizard.html rename to erpnext/setup/page/setup_wizard/setup_wizard.html diff --git a/setup/page/setup_wizard/setup_wizard.js b/erpnext/setup/page/setup_wizard/setup_wizard.js similarity index 100% rename from setup/page/setup_wizard/setup_wizard.js rename to erpnext/setup/page/setup_wizard/setup_wizard.js diff --git a/setup/page/setup_wizard/setup_wizard.txt b/erpnext/setup/page/setup_wizard/setup_wizard.txt similarity index 100% rename from setup/page/setup_wizard/setup_wizard.txt rename to erpnext/setup/page/setup_wizard/setup_wizard.txt diff --git a/setup/page/setup_wizard/setup_wizard_static.html b/erpnext/setup/page/setup_wizard/setup_wizard_static.html similarity index 100% rename from setup/page/setup_wizard/setup_wizard_static.html rename to erpnext/setup/page/setup_wizard/setup_wizard_static.html diff --git a/stock/__init__.py b/erpnext/setup/page/webforms/__init__.py similarity index 100% rename from stock/__init__.py rename to erpnext/setup/page/webforms/__init__.py diff --git a/setup/page/webforms/webforms.html b/erpnext/setup/page/webforms/webforms.html similarity index 100% rename from setup/page/webforms/webforms.html rename to erpnext/setup/page/webforms/webforms.html diff --git a/setup/page/webforms/webforms.js b/erpnext/setup/page/webforms/webforms.js similarity index 100% rename from setup/page/webforms/webforms.js rename to erpnext/setup/page/webforms/webforms.js diff --git a/setup/page/webforms/webforms.txt b/erpnext/setup/page/webforms/webforms.txt similarity index 100% rename from setup/page/webforms/webforms.txt rename to erpnext/setup/page/webforms/webforms.txt diff --git a/setup/page/webforms/webforms_static.html b/erpnext/setup/page/webforms/webforms_static.html similarity index 100% rename from setup/page/webforms/webforms_static.html rename to erpnext/setup/page/webforms/webforms_static.html diff --git a/startup/__init__.py b/erpnext/startup/__init__.py similarity index 100% rename from startup/__init__.py rename to erpnext/startup/__init__.py diff --git a/startup/event_handlers.py b/erpnext/startup/event_handlers.py similarity index 100% rename from startup/event_handlers.py rename to erpnext/startup/event_handlers.py diff --git a/startup/startup.css b/erpnext/startup/startup.css similarity index 100% rename from startup/startup.css rename to erpnext/startup/startup.css diff --git a/startup/startup.js b/erpnext/startup/startup.js similarity index 100% rename from startup/startup.js rename to erpnext/startup/startup.js diff --git a/stock/DocType Label/QA Inspection Report/QA Inspection Report.txt b/erpnext/stock/DocType Label/QA Inspection Report/QA Inspection Report.txt similarity index 100% rename from stock/DocType Label/QA Inspection Report/QA Inspection Report.txt rename to erpnext/stock/DocType Label/QA Inspection Report/QA Inspection Report.txt diff --git a/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt b/erpnext/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt similarity index 100% rename from stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt rename to erpnext/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt diff --git a/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt similarity index 100% rename from stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt rename to erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt diff --git a/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt b/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt similarity index 100% rename from stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt rename to erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt diff --git a/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt b/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt similarity index 100% rename from stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt rename to erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt diff --git a/stock/Item Group/All Item Groups/All Item Groups.txt b/erpnext/stock/Item Group/All Item Groups/All Item Groups.txt similarity index 100% rename from stock/Item Group/All Item Groups/All Item Groups.txt rename to erpnext/stock/Item Group/All Item Groups/All Item Groups.txt diff --git a/stock/Item Group/Default/Default.txt b/erpnext/stock/Item Group/Default/Default.txt similarity index 100% rename from stock/Item Group/Default/Default.txt rename to erpnext/stock/Item Group/Default/Default.txt diff --git a/stock/Module Def/Stock/Stock.txt b/erpnext/stock/Module Def/Stock/Stock.txt similarity index 100% rename from stock/Module Def/Stock/Stock.txt rename to erpnext/stock/Module Def/Stock/Stock.txt diff --git a/stock/Print Format/Delivery Note Packing List Wise/Delivery Note Packing List Wise.txt b/erpnext/stock/Print Format/Delivery Note Packing List Wise/Delivery Note Packing List Wise.txt similarity index 100% rename from stock/Print Format/Delivery Note Packing List Wise/Delivery Note Packing List Wise.txt rename to erpnext/stock/Print Format/Delivery Note Packing List Wise/Delivery Note Packing List Wise.txt diff --git a/stock/Print Format/Purchase Receipt Format/Purchase Receipt Format.txt b/erpnext/stock/Print Format/Purchase Receipt Format/Purchase Receipt Format.txt similarity index 100% rename from stock/Print Format/Purchase Receipt Format/Purchase Receipt Format.txt rename to erpnext/stock/Print Format/Purchase Receipt Format/Purchase Receipt Format.txt diff --git a/stock/Role/Material Manager/Material Manager.txt b/erpnext/stock/Role/Material Manager/Material Manager.txt similarity index 100% rename from stock/Role/Material Manager/Material Manager.txt rename to erpnext/stock/Role/Material Manager/Material Manager.txt diff --git a/stock/Role/Material Master Manager/Material Master Manager.txt b/erpnext/stock/Role/Material Master Manager/Material Master Manager.txt similarity index 100% rename from stock/Role/Material Master Manager/Material Master Manager.txt rename to erpnext/stock/Role/Material Master Manager/Material Master Manager.txt diff --git a/stock/Role/Material User/Material User.txt b/erpnext/stock/Role/Material User/Material User.txt similarity index 100% rename from stock/Role/Material User/Material User.txt rename to erpnext/stock/Role/Material User/Material User.txt diff --git a/stock/Role/Quality Manager/Quality Manager.txt b/erpnext/stock/Role/Quality Manager/Quality Manager.txt similarity index 100% rename from stock/Role/Quality Manager/Quality Manager.txt rename to erpnext/stock/Role/Quality Manager/Quality Manager.txt diff --git a/stock/doctype/__init__.py b/erpnext/stock/__init__.py similarity index 100% rename from stock/doctype/__init__.py rename to erpnext/stock/__init__.py diff --git a/stock/doctype/batch/__init__.py b/erpnext/stock/doctype/__init__.py similarity index 100% rename from stock/doctype/batch/__init__.py rename to erpnext/stock/doctype/__init__.py diff --git a/stock/doctype/bin/__init__.py b/erpnext/stock/doctype/batch/__init__.py similarity index 100% rename from stock/doctype/bin/__init__.py rename to erpnext/stock/doctype/batch/__init__.py diff --git a/stock/doctype/batch/batch.txt b/erpnext/stock/doctype/batch/batch.txt similarity index 100% rename from stock/doctype/batch/batch.txt rename to erpnext/stock/doctype/batch/batch.txt diff --git a/stock/doctype/delivery_note/__init__.py b/erpnext/stock/doctype/bin/__init__.py similarity index 100% rename from stock/doctype/delivery_note/__init__.py rename to erpnext/stock/doctype/bin/__init__.py diff --git a/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py similarity index 100% rename from stock/doctype/bin/bin.py rename to erpnext/stock/doctype/bin/bin.py diff --git a/stock/doctype/bin/bin.txt b/erpnext/stock/doctype/bin/bin.txt similarity index 100% rename from stock/doctype/bin/bin.txt rename to erpnext/stock/doctype/bin/bin.txt diff --git a/stock/doctype/delivery_note_detail/__init__.py b/erpnext/stock/doctype/delivery_note/__init__.py similarity index 100% rename from stock/doctype/delivery_note_detail/__init__.py rename to erpnext/stock/doctype/delivery_note/__init__.py diff --git a/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js similarity index 100% rename from stock/doctype/delivery_note/delivery_note.js rename to erpnext/stock/doctype/delivery_note/delivery_note.js diff --git a/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py similarity index 100% rename from stock/doctype/delivery_note/delivery_note.py rename to erpnext/stock/doctype/delivery_note/delivery_note.py diff --git a/stock/doctype/delivery_note/delivery_note.txt b/erpnext/stock/doctype/delivery_note/delivery_note.txt similarity index 100% rename from stock/doctype/delivery_note/delivery_note.txt rename to erpnext/stock/doctype/delivery_note/delivery_note.txt diff --git a/stock/doctype/delivery_note_packing_detail/__init__.py b/erpnext/stock/doctype/delivery_note_detail/__init__.py similarity index 100% rename from stock/doctype/delivery_note_packing_detail/__init__.py rename to erpnext/stock/doctype/delivery_note_detail/__init__.py diff --git a/stock/doctype/delivery_note_detail/delivery_note_detail.txt b/erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt similarity index 100% rename from stock/doctype/delivery_note_detail/delivery_note_detail.txt rename to erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt diff --git a/stock/doctype/item/__init__.py b/erpnext/stock/doctype/delivery_note_packing_detail/__init__.py similarity index 100% rename from stock/doctype/item/__init__.py rename to erpnext/stock/doctype/delivery_note_packing_detail/__init__.py diff --git a/stock/doctype/delivery_note_packing_detail/delivery_note_packing_detail.txt b/erpnext/stock/doctype/delivery_note_packing_detail/delivery_note_packing_detail.txt similarity index 100% rename from stock/doctype/delivery_note_packing_detail/delivery_note_packing_detail.txt rename to erpnext/stock/doctype/delivery_note_packing_detail/delivery_note_packing_detail.txt diff --git a/stock/doctype/item_customer_detail/__init__.py b/erpnext/stock/doctype/item/__init__.py similarity index 100% rename from stock/doctype/item_customer_detail/__init__.py rename to erpnext/stock/doctype/item/__init__.py diff --git a/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js similarity index 100% rename from stock/doctype/item/item.js rename to erpnext/stock/doctype/item/item.js diff --git a/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py similarity index 100% rename from stock/doctype/item/item.py rename to erpnext/stock/doctype/item/item.py diff --git a/stock/doctype/item/item.txt b/erpnext/stock/doctype/item/item.txt similarity index 100% rename from stock/doctype/item/item.txt rename to erpnext/stock/doctype/item/item.txt diff --git a/stock/doctype/item_specification_detail/__init__.py b/erpnext/stock/doctype/item_customer_detail/__init__.py similarity index 100% rename from stock/doctype/item_specification_detail/__init__.py rename to erpnext/stock/doctype/item_customer_detail/__init__.py diff --git a/stock/doctype/item_customer_detail/item_customer_detail.txt b/erpnext/stock/doctype/item_customer_detail/item_customer_detail.txt similarity index 100% rename from stock/doctype/item_customer_detail/item_customer_detail.txt rename to erpnext/stock/doctype/item_customer_detail/item_customer_detail.txt diff --git a/stock/doctype/item_tax/__init__.py b/erpnext/stock/doctype/item_specification_detail/__init__.py similarity index 100% rename from stock/doctype/item_tax/__init__.py rename to erpnext/stock/doctype/item_specification_detail/__init__.py diff --git a/stock/doctype/item_specification_detail/item_specification_detail.txt b/erpnext/stock/doctype/item_specification_detail/item_specification_detail.txt similarity index 100% rename from stock/doctype/item_specification_detail/item_specification_detail.txt rename to erpnext/stock/doctype/item_specification_detail/item_specification_detail.txt diff --git a/stock/doctype/landed_cost_detail/__init__.py b/erpnext/stock/doctype/item_tax/__init__.py similarity index 100% rename from stock/doctype/landed_cost_detail/__init__.py rename to erpnext/stock/doctype/item_tax/__init__.py diff --git a/stock/doctype/item_tax/item_tax.txt b/erpnext/stock/doctype/item_tax/item_tax.txt similarity index 100% rename from stock/doctype/item_tax/item_tax.txt rename to erpnext/stock/doctype/item_tax/item_tax.txt diff --git a/stock/doctype/landed_cost_master/__init__.py b/erpnext/stock/doctype/landed_cost_detail/__init__.py similarity index 100% rename from stock/doctype/landed_cost_master/__init__.py rename to erpnext/stock/doctype/landed_cost_detail/__init__.py diff --git a/stock/doctype/landed_cost_detail/landed_cost_detail.txt b/erpnext/stock/doctype/landed_cost_detail/landed_cost_detail.txt similarity index 100% rename from stock/doctype/landed_cost_detail/landed_cost_detail.txt rename to erpnext/stock/doctype/landed_cost_detail/landed_cost_detail.txt diff --git a/stock/doctype/landed_cost_master_detail/__init__.py b/erpnext/stock/doctype/landed_cost_master/__init__.py similarity index 100% rename from stock/doctype/landed_cost_master_detail/__init__.py rename to erpnext/stock/doctype/landed_cost_master/__init__.py diff --git a/stock/doctype/landed_cost_master/landed_cost_master.js b/erpnext/stock/doctype/landed_cost_master/landed_cost_master.js similarity index 100% rename from stock/doctype/landed_cost_master/landed_cost_master.js rename to erpnext/stock/doctype/landed_cost_master/landed_cost_master.js diff --git a/stock/doctype/landed_cost_master/landed_cost_master.txt b/erpnext/stock/doctype/landed_cost_master/landed_cost_master.txt similarity index 100% rename from stock/doctype/landed_cost_master/landed_cost_master.txt rename to erpnext/stock/doctype/landed_cost_master/landed_cost_master.txt diff --git a/stock/doctype/landed_cost_wizard/__init__.py b/erpnext/stock/doctype/landed_cost_master_detail/__init__.py similarity index 100% rename from stock/doctype/landed_cost_wizard/__init__.py rename to erpnext/stock/doctype/landed_cost_master_detail/__init__.py diff --git a/stock/doctype/landed_cost_master_detail/landed_cost_master_detail.txt b/erpnext/stock/doctype/landed_cost_master_detail/landed_cost_master_detail.txt similarity index 100% rename from stock/doctype/landed_cost_master_detail/landed_cost_master_detail.txt rename to erpnext/stock/doctype/landed_cost_master_detail/landed_cost_master_detail.txt diff --git a/stock/doctype/lc_pr_detail/__init__.py b/erpnext/stock/doctype/landed_cost_wizard/__init__.py similarity index 100% rename from stock/doctype/lc_pr_detail/__init__.py rename to erpnext/stock/doctype/landed_cost_wizard/__init__.py diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.js b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.js similarity index 100% rename from stock/doctype/landed_cost_wizard/landed_cost_wizard.js rename to erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.js diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.py b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py similarity index 100% rename from stock/doctype/landed_cost_wizard/landed_cost_wizard.py rename to erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt similarity index 100% rename from stock/doctype/landed_cost_wizard/landed_cost_wizard.txt rename to erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt diff --git a/stock/doctype/purchase_receipt/__init__.py b/erpnext/stock/doctype/lc_pr_detail/__init__.py similarity index 100% rename from stock/doctype/purchase_receipt/__init__.py rename to erpnext/stock/doctype/lc_pr_detail/__init__.py diff --git a/stock/doctype/lc_pr_detail/lc_pr_detail.txt b/erpnext/stock/doctype/lc_pr_detail/lc_pr_detail.txt similarity index 100% rename from stock/doctype/lc_pr_detail/lc_pr_detail.txt rename to erpnext/stock/doctype/lc_pr_detail/lc_pr_detail.txt diff --git a/stock/doctype/purchase_receipt_detail/__init__.py b/erpnext/stock/doctype/purchase_receipt/__init__.py similarity index 100% rename from stock/doctype/purchase_receipt_detail/__init__.py rename to erpnext/stock/doctype/purchase_receipt/__init__.py diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js similarity index 100% rename from stock/doctype/purchase_receipt/purchase_receipt.js rename to erpnext/stock/doctype/purchase_receipt/purchase_receipt.js diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py similarity index 100% rename from stock/doctype/purchase_receipt/purchase_receipt.py rename to erpnext/stock/doctype/purchase_receipt/purchase_receipt.py diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.txt similarity index 100% rename from stock/doctype/purchase_receipt/purchase_receipt.txt rename to erpnext/stock/doctype/purchase_receipt/purchase_receipt.txt diff --git a/stock/doctype/ref_rate_detail/__init__.py b/erpnext/stock/doctype/purchase_receipt_detail/__init__.py similarity index 100% rename from stock/doctype/ref_rate_detail/__init__.py rename to erpnext/stock/doctype/purchase_receipt_detail/__init__.py diff --git a/stock/doctype/purchase_receipt_detail/purchase_receipt_detail.txt b/erpnext/stock/doctype/purchase_receipt_detail/purchase_receipt_detail.txt similarity index 100% rename from stock/doctype/purchase_receipt_detail/purchase_receipt_detail.txt rename to erpnext/stock/doctype/purchase_receipt_detail/purchase_receipt_detail.txt diff --git a/stock/doctype/sales_and_purchase_return_wizard/__init__.py b/erpnext/stock/doctype/ref_rate_detail/__init__.py similarity index 100% rename from stock/doctype/sales_and_purchase_return_wizard/__init__.py rename to erpnext/stock/doctype/ref_rate_detail/__init__.py diff --git a/stock/doctype/ref_rate_detail/ref_rate_detail.txt b/erpnext/stock/doctype/ref_rate_detail/ref_rate_detail.txt similarity index 100% rename from stock/doctype/ref_rate_detail/ref_rate_detail.txt rename to erpnext/stock/doctype/ref_rate_detail/ref_rate_detail.txt diff --git a/stock/doctype/sales_bom/__init__.py b/erpnext/stock/doctype/sales_and_purchase_return_wizard/__init__.py similarity index 100% rename from stock/doctype/sales_bom/__init__.py rename to erpnext/stock/doctype/sales_and_purchase_return_wizard/__init__.py diff --git a/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.js b/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.js similarity index 100% rename from stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.js rename to erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.js diff --git a/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.py b/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.py similarity index 100% rename from stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.py rename to erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.py diff --git a/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.txt b/erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.txt similarity index 100% rename from stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.txt rename to erpnext/stock/doctype/sales_and_purchase_return_wizard/sales_and_purchase_return_wizard.txt diff --git a/stock/doctype/sales_bom_detail/__init__.py b/erpnext/stock/doctype/sales_bom/__init__.py similarity index 100% rename from stock/doctype/sales_bom_detail/__init__.py rename to erpnext/stock/doctype/sales_bom/__init__.py diff --git a/stock/doctype/sales_bom/sales_bom.js b/erpnext/stock/doctype/sales_bom/sales_bom.js similarity index 100% rename from stock/doctype/sales_bom/sales_bom.js rename to erpnext/stock/doctype/sales_bom/sales_bom.js diff --git a/stock/doctype/sales_bom/sales_bom.py b/erpnext/stock/doctype/sales_bom/sales_bom.py similarity index 100% rename from stock/doctype/sales_bom/sales_bom.py rename to erpnext/stock/doctype/sales_bom/sales_bom.py diff --git a/stock/doctype/sales_bom/sales_bom.txt b/erpnext/stock/doctype/sales_bom/sales_bom.txt similarity index 100% rename from stock/doctype/sales_bom/sales_bom.txt rename to erpnext/stock/doctype/sales_bom/sales_bom.txt diff --git a/stock/doctype/serial_no/__init__.py b/erpnext/stock/doctype/sales_bom_detail/__init__.py similarity index 100% rename from stock/doctype/serial_no/__init__.py rename to erpnext/stock/doctype/sales_bom_detail/__init__.py diff --git a/stock/doctype/sales_bom_detail/sales_bom_detail.txt b/erpnext/stock/doctype/sales_bom_detail/sales_bom_detail.txt similarity index 100% rename from stock/doctype/sales_bom_detail/sales_bom_detail.txt rename to erpnext/stock/doctype/sales_bom_detail/sales_bom_detail.txt diff --git a/stock/doctype/stock_entry/__init__.py b/erpnext/stock/doctype/serial_no/__init__.py similarity index 100% rename from stock/doctype/stock_entry/__init__.py rename to erpnext/stock/doctype/serial_no/__init__.py diff --git a/stock/doctype/serial_no/serial_no.js b/erpnext/stock/doctype/serial_no/serial_no.js similarity index 100% rename from stock/doctype/serial_no/serial_no.js rename to erpnext/stock/doctype/serial_no/serial_no.js diff --git a/stock/doctype/serial_no/serial_no.py b/erpnext/stock/doctype/serial_no/serial_no.py similarity index 100% rename from stock/doctype/serial_no/serial_no.py rename to erpnext/stock/doctype/serial_no/serial_no.py diff --git a/stock/doctype/serial_no/serial_no.txt b/erpnext/stock/doctype/serial_no/serial_no.txt similarity index 100% rename from stock/doctype/serial_no/serial_no.txt rename to erpnext/stock/doctype/serial_no/serial_no.txt diff --git a/stock/doctype/stock_entry_detail/__init__.py b/erpnext/stock/doctype/stock_entry/__init__.py similarity index 100% rename from stock/doctype/stock_entry_detail/__init__.py rename to erpnext/stock/doctype/stock_entry/__init__.py diff --git a/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js similarity index 100% rename from stock/doctype/stock_entry/stock_entry.js rename to erpnext/stock/doctype/stock_entry/stock_entry.js diff --git a/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py similarity index 100% rename from stock/doctype/stock_entry/stock_entry.py rename to erpnext/stock/doctype/stock_entry/stock_entry.py diff --git a/stock/doctype/stock_entry/stock_entry.py~ b/erpnext/stock/doctype/stock_entry/stock_entry.py~ similarity index 100% rename from stock/doctype/stock_entry/stock_entry.py~ rename to erpnext/stock/doctype/stock_entry/stock_entry.py~ diff --git a/stock/doctype/stock_entry/stock_entry.txt b/erpnext/stock/doctype/stock_entry/stock_entry.txt similarity index 100% rename from stock/doctype/stock_entry/stock_entry.txt rename to erpnext/stock/doctype/stock_entry/stock_entry.txt diff --git a/stock/doctype/stock_ledger/__init__.py b/erpnext/stock/doctype/stock_entry_detail/__init__.py similarity index 100% rename from stock/doctype/stock_ledger/__init__.py rename to erpnext/stock/doctype/stock_entry_detail/__init__.py diff --git a/stock/doctype/stock_entry_detail/stock_entry_detail.txt b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.txt similarity index 100% rename from stock/doctype/stock_entry_detail/stock_entry_detail.txt rename to erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.txt diff --git a/stock/doctype/stock_ledger_entry/__init__.py b/erpnext/stock/doctype/stock_ledger/__init__.py similarity index 100% rename from stock/doctype/stock_ledger_entry/__init__.py rename to erpnext/stock/doctype/stock_ledger/__init__.py diff --git a/stock/doctype/stock_ledger/stock_ledger.py b/erpnext/stock/doctype/stock_ledger/stock_ledger.py similarity index 100% rename from stock/doctype/stock_ledger/stock_ledger.py rename to erpnext/stock/doctype/stock_ledger/stock_ledger.py diff --git a/stock/doctype/stock_ledger/stock_ledger.txt b/erpnext/stock/doctype/stock_ledger/stock_ledger.txt similarity index 100% rename from stock/doctype/stock_ledger/stock_ledger.txt rename to erpnext/stock/doctype/stock_ledger/stock_ledger.txt diff --git a/stock/doctype/stock_reconciliation/__init__.py b/erpnext/stock/doctype/stock_ledger_entry/__init__.py similarity index 100% rename from stock/doctype/stock_reconciliation/__init__.py rename to erpnext/stock/doctype/stock_ledger_entry/__init__.py diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py similarity index 100% rename from stock/doctype/stock_ledger_entry/stock_ledger_entry.py rename to erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt similarity index 100% rename from stock/doctype/stock_ledger_entry/stock_ledger_entry.txt rename to erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.txt diff --git a/stock/doctype/stock_uom_replace_utility/__init__.py b/erpnext/stock/doctype/stock_reconciliation/__init__.py similarity index 100% rename from stock/doctype/stock_uom_replace_utility/__init__.py rename to erpnext/stock/doctype/stock_reconciliation/__init__.py diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.js b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js similarity index 100% rename from stock/doctype/stock_reconciliation/stock_reconciliation.js rename to erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py similarity index 100% rename from stock/doctype/stock_reconciliation/stock_reconciliation.py rename to erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.txt b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.txt similarity index 100% rename from stock/doctype/stock_reconciliation/stock_reconciliation.txt rename to erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.txt diff --git a/stock/doctype/uom_conversion_detail/__init__.py b/erpnext/stock/doctype/stock_uom_replace_utility/__init__.py similarity index 100% rename from stock/doctype/uom_conversion_detail/__init__.py rename to erpnext/stock/doctype/stock_uom_replace_utility/__init__.py diff --git a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js similarity index 100% rename from stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js rename to erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js diff --git a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py similarity index 100% rename from stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py rename to erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py diff --git a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt similarity index 100% rename from stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt rename to erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.txt diff --git a/stock/doctype/valuation_control/__init__.py b/erpnext/stock/doctype/uom_conversion_detail/__init__.py similarity index 100% rename from stock/doctype/valuation_control/__init__.py rename to erpnext/stock/doctype/uom_conversion_detail/__init__.py diff --git a/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt b/erpnext/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt similarity index 100% rename from stock/doctype/uom_conversion_detail/uom_conversion_detail.txt rename to erpnext/stock/doctype/uom_conversion_detail/uom_conversion_detail.txt diff --git a/stock/doctype/warehouse/__init__.py b/erpnext/stock/doctype/valuation_control/__init__.py similarity index 100% rename from stock/doctype/warehouse/__init__.py rename to erpnext/stock/doctype/valuation_control/__init__.py diff --git a/stock/doctype/valuation_control/valuation_control.py b/erpnext/stock/doctype/valuation_control/valuation_control.py similarity index 100% rename from stock/doctype/valuation_control/valuation_control.py rename to erpnext/stock/doctype/valuation_control/valuation_control.py diff --git a/stock/doctype/valuation_control/valuation_control.py~ b/erpnext/stock/doctype/valuation_control/valuation_control.py~ similarity index 100% rename from stock/doctype/valuation_control/valuation_control.py~ rename to erpnext/stock/doctype/valuation_control/valuation_control.py~ diff --git a/stock/doctype/valuation_control/valuation_control.txt b/erpnext/stock/doctype/valuation_control/valuation_control.txt similarity index 100% rename from stock/doctype/valuation_control/valuation_control.txt rename to erpnext/stock/doctype/valuation_control/valuation_control.txt diff --git a/stock/page/__init__.py b/erpnext/stock/doctype/warehouse/__init__.py similarity index 100% rename from stock/page/__init__.py rename to erpnext/stock/doctype/warehouse/__init__.py diff --git a/stock/doctype/warehouse/warehouse.js b/erpnext/stock/doctype/warehouse/warehouse.js similarity index 100% rename from stock/doctype/warehouse/warehouse.js rename to erpnext/stock/doctype/warehouse/warehouse.js diff --git a/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py similarity index 100% rename from stock/doctype/warehouse/warehouse.py rename to erpnext/stock/doctype/warehouse/warehouse.py diff --git a/stock/doctype/warehouse/warehouse.txt b/erpnext/stock/doctype/warehouse/warehouse.txt similarity index 100% rename from stock/doctype/warehouse/warehouse.txt rename to erpnext/stock/doctype/warehouse/warehouse.txt diff --git a/stock/search_criteria/__init__.py b/erpnext/stock/page/__init__.py similarity index 100% rename from stock/search_criteria/__init__.py rename to erpnext/stock/page/__init__.py diff --git a/stock/search_criteria/itemwise_price_list/__init__.py b/erpnext/stock/search_criteria/__init__.py similarity index 100% rename from stock/search_criteria/itemwise_price_list/__init__.py rename to erpnext/stock/search_criteria/__init__.py diff --git a/stock/search_criteria/shortage_to_indent/__init__.py b/erpnext/stock/search_criteria/itemwise_price_list/__init__.py similarity index 100% rename from stock/search_criteria/shortage_to_indent/__init__.py rename to erpnext/stock/search_criteria/itemwise_price_list/__init__.py diff --git a/stock/search_criteria/itemwise_price_list/itemwise_price_list.js b/erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.js similarity index 100% rename from stock/search_criteria/itemwise_price_list/itemwise_price_list.js rename to erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.js diff --git a/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt b/erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt similarity index 100% rename from stock/search_criteria/itemwise_price_list/itemwise_price_list.txt rename to erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt diff --git a/stock/search_criteria/stock_aging_report/__init__.py b/erpnext/stock/search_criteria/shortage_to_indent/__init__.py similarity index 100% rename from stock/search_criteria/stock_aging_report/__init__.py rename to erpnext/stock/search_criteria/shortage_to_indent/__init__.py diff --git a/stock/search_criteria/shortage_to_indent/shortage_to_indent.js b/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.js similarity index 100% rename from stock/search_criteria/shortage_to_indent/shortage_to_indent.js rename to erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.js diff --git a/stock/search_criteria/shortage_to_indent/shortage_to_indent.py b/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.py similarity index 100% rename from stock/search_criteria/shortage_to_indent/shortage_to_indent.py rename to erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.py diff --git a/stock/search_criteria/shortage_to_indent/shortage_to_indent.txt b/erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.txt similarity index 100% rename from stock/search_criteria/shortage_to_indent/shortage_to_indent.txt rename to erpnext/stock/search_criteria/shortage_to_indent/shortage_to_indent.txt diff --git a/stock/search_criteria/stock_ledger/__init__.py b/erpnext/stock/search_criteria/stock_aging_report/__init__.py similarity index 100% rename from stock/search_criteria/stock_ledger/__init__.py rename to erpnext/stock/search_criteria/stock_aging_report/__init__.py diff --git a/stock/search_criteria/stock_aging_report/stock_aging_report.js b/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.js similarity index 100% rename from stock/search_criteria/stock_aging_report/stock_aging_report.js rename to erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.js diff --git a/stock/search_criteria/stock_aging_report/stock_aging_report.py b/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.py similarity index 100% rename from stock/search_criteria/stock_aging_report/stock_aging_report.py rename to erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.py diff --git a/stock/search_criteria/stock_aging_report/stock_aging_report.txt b/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.txt similarity index 100% rename from stock/search_criteria/stock_aging_report/stock_aging_report.txt rename to erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.txt diff --git a/stock/search_criteria/stock_level/__init__.py b/erpnext/stock/search_criteria/stock_ledger/__init__.py similarity index 100% rename from stock/search_criteria/stock_level/__init__.py rename to erpnext/stock/search_criteria/stock_ledger/__init__.py diff --git a/stock/search_criteria/stock_ledger/stock_ledger.js b/erpnext/stock/search_criteria/stock_ledger/stock_ledger.js similarity index 100% rename from stock/search_criteria/stock_ledger/stock_ledger.js rename to erpnext/stock/search_criteria/stock_ledger/stock_ledger.js diff --git a/stock/search_criteria/stock_ledger/stock_ledger.txt b/erpnext/stock/search_criteria/stock_ledger/stock_ledger.txt similarity index 100% rename from stock/search_criteria/stock_ledger/stock_ledger.txt rename to erpnext/stock/search_criteria/stock_ledger/stock_ledger.txt diff --git a/stock/search_criteria/stock_report/__init__.py b/erpnext/stock/search_criteria/stock_level/__init__.py similarity index 100% rename from stock/search_criteria/stock_report/__init__.py rename to erpnext/stock/search_criteria/stock_level/__init__.py diff --git a/stock/search_criteria/stock_level/stock_level.js b/erpnext/stock/search_criteria/stock_level/stock_level.js similarity index 100% rename from stock/search_criteria/stock_level/stock_level.js rename to erpnext/stock/search_criteria/stock_level/stock_level.js diff --git a/stock/search_criteria/stock_level/stock_level.py b/erpnext/stock/search_criteria/stock_level/stock_level.py similarity index 100% rename from stock/search_criteria/stock_level/stock_level.py rename to erpnext/stock/search_criteria/stock_level/stock_level.py diff --git a/stock/search_criteria/stock_level/stock_level.txt b/erpnext/stock/search_criteria/stock_level/stock_level.txt similarity index 100% rename from stock/search_criteria/stock_level/stock_level.txt rename to erpnext/stock/search_criteria/stock_level/stock_level.txt diff --git a/support/__init__.py b/erpnext/stock/search_criteria/stock_report/__init__.py similarity index 100% rename from support/__init__.py rename to erpnext/stock/search_criteria/stock_report/__init__.py diff --git a/stock/search_criteria/stock_report/stock_report.js b/erpnext/stock/search_criteria/stock_report/stock_report.js similarity index 100% rename from stock/search_criteria/stock_report/stock_report.js rename to erpnext/stock/search_criteria/stock_report/stock_report.js diff --git a/stock/search_criteria/stock_report/stock_report.py b/erpnext/stock/search_criteria/stock_report/stock_report.py similarity index 100% rename from stock/search_criteria/stock_report/stock_report.py rename to erpnext/stock/search_criteria/stock_report/stock_report.py diff --git a/stock/search_criteria/stock_report/stock_report.txt b/erpnext/stock/search_criteria/stock_report/stock_report.txt similarity index 100% rename from stock/search_criteria/stock_report/stock_report.txt rename to erpnext/stock/search_criteria/stock_report/stock_report.txt diff --git a/stock/tests.py b/erpnext/stock/tests.py similarity index 100% rename from stock/tests.py rename to erpnext/stock/tests.py diff --git a/support/DocType Label/Ticket/Ticket.txt b/erpnext/support/DocType Label/Ticket/Ticket.txt similarity index 100% rename from support/DocType Label/Ticket/Ticket.txt rename to erpnext/support/DocType Label/Ticket/Ticket.txt diff --git a/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt b/erpnext/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt similarity index 100% rename from support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt rename to erpnext/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt diff --git a/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt b/erpnext/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt similarity index 100% rename from support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt rename to erpnext/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt diff --git a/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt b/erpnext/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt similarity index 100% rename from support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt rename to erpnext/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt diff --git a/support/Module Def/Support/Support.txt b/erpnext/support/Module Def/Support/Support.txt similarity index 100% rename from support/Module Def/Support/Support.txt rename to erpnext/support/Module Def/Support/Support.txt diff --git a/support/Role/Maintenance Manager/Maintenance Manager.txt b/erpnext/support/Role/Maintenance Manager/Maintenance Manager.txt similarity index 100% rename from support/Role/Maintenance Manager/Maintenance Manager.txt rename to erpnext/support/Role/Maintenance Manager/Maintenance Manager.txt diff --git a/support/Role/Maintenance User/Maintenance User.txt b/erpnext/support/Role/Maintenance User/Maintenance User.txt similarity index 100% rename from support/Role/Maintenance User/Maintenance User.txt rename to erpnext/support/Role/Maintenance User/Maintenance User.txt diff --git a/support/Role/Support Manager/Support Manager.txt b/erpnext/support/Role/Support Manager/Support Manager.txt similarity index 100% rename from support/Role/Support Manager/Support Manager.txt rename to erpnext/support/Role/Support Manager/Support Manager.txt diff --git a/support/Role/Support Team/Support Team.txt b/erpnext/support/Role/Support Team/Support Team.txt similarity index 100% rename from support/Role/Support Team/Support Team.txt rename to erpnext/support/Role/Support Team/Support Team.txt diff --git a/support/doctype/__init__.py b/erpnext/support/__init__.py similarity index 100% rename from support/doctype/__init__.py rename to erpnext/support/__init__.py diff --git a/support/doctype/customer_issue/__init__.py b/erpnext/support/doctype/__init__.py similarity index 100% rename from support/doctype/customer_issue/__init__.py rename to erpnext/support/doctype/__init__.py diff --git a/support/doctype/item_maintenance_detail/__init__.py b/erpnext/support/doctype/customer_issue/__init__.py similarity index 100% rename from support/doctype/item_maintenance_detail/__init__.py rename to erpnext/support/doctype/customer_issue/__init__.py diff --git a/support/doctype/customer_issue/customer_issue.js b/erpnext/support/doctype/customer_issue/customer_issue.js similarity index 100% rename from support/doctype/customer_issue/customer_issue.js rename to erpnext/support/doctype/customer_issue/customer_issue.js diff --git a/support/doctype/customer_issue/customer_issue.py b/erpnext/support/doctype/customer_issue/customer_issue.py similarity index 100% rename from support/doctype/customer_issue/customer_issue.py rename to erpnext/support/doctype/customer_issue/customer_issue.py diff --git a/support/doctype/customer_issue/customer_issue.txt b/erpnext/support/doctype/customer_issue/customer_issue.txt similarity index 100% rename from support/doctype/customer_issue/customer_issue.txt rename to erpnext/support/doctype/customer_issue/customer_issue.txt diff --git a/support/doctype/maintenance_schedule/__init__.py b/erpnext/support/doctype/item_maintenance_detail/__init__.py similarity index 100% rename from support/doctype/maintenance_schedule/__init__.py rename to erpnext/support/doctype/item_maintenance_detail/__init__.py diff --git a/support/doctype/item_maintenance_detail/item_maintenance_detail.txt b/erpnext/support/doctype/item_maintenance_detail/item_maintenance_detail.txt similarity index 100% rename from support/doctype/item_maintenance_detail/item_maintenance_detail.txt rename to erpnext/support/doctype/item_maintenance_detail/item_maintenance_detail.txt diff --git a/support/doctype/maintenance_schedule_detail/__init__.py b/erpnext/support/doctype/maintenance_schedule/__init__.py similarity index 100% rename from support/doctype/maintenance_schedule_detail/__init__.py rename to erpnext/support/doctype/maintenance_schedule/__init__.py diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js similarity index 100% rename from support/doctype/maintenance_schedule/maintenance_schedule.js rename to erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.py b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py similarity index 100% rename from support/doctype/maintenance_schedule/maintenance_schedule.py rename to erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.txt b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.txt similarity index 100% rename from support/doctype/maintenance_schedule/maintenance_schedule.txt rename to erpnext/support/doctype/maintenance_schedule/maintenance_schedule.txt diff --git a/support/doctype/maintenance_visit/__init__.py b/erpnext/support/doctype/maintenance_schedule_detail/__init__.py similarity index 100% rename from support/doctype/maintenance_visit/__init__.py rename to erpnext/support/doctype/maintenance_schedule_detail/__init__.py diff --git a/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt b/erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt similarity index 100% rename from support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt rename to erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.txt diff --git a/support/doctype/maintenance_visit_detail/__init__.py b/erpnext/support/doctype/maintenance_visit/__init__.py similarity index 100% rename from support/doctype/maintenance_visit_detail/__init__.py rename to erpnext/support/doctype/maintenance_visit/__init__.py diff --git a/support/doctype/maintenance_visit/maintenance_visit.js b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js similarity index 100% rename from support/doctype/maintenance_visit/maintenance_visit.js rename to erpnext/support/doctype/maintenance_visit/maintenance_visit.js diff --git a/support/doctype/maintenance_visit/maintenance_visit.py b/erpnext/support/doctype/maintenance_visit/maintenance_visit.py similarity index 100% rename from support/doctype/maintenance_visit/maintenance_visit.py rename to erpnext/support/doctype/maintenance_visit/maintenance_visit.py diff --git a/support/doctype/maintenance_visit/maintenance_visit.txt b/erpnext/support/doctype/maintenance_visit/maintenance_visit.txt similarity index 100% rename from support/doctype/maintenance_visit/maintenance_visit.txt rename to erpnext/support/doctype/maintenance_visit/maintenance_visit.txt diff --git a/support/doctype/support_ticket_response/__init__.py b/erpnext/support/doctype/maintenance_visit_detail/__init__.py similarity index 100% rename from support/doctype/support_ticket_response/__init__.py rename to erpnext/support/doctype/maintenance_visit_detail/__init__.py diff --git a/support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt b/erpnext/support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt similarity index 100% rename from support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt rename to erpnext/support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt diff --git a/support/doctype/support_ticket/__init__.py b/erpnext/support/doctype/support_ticket/__init__.py similarity index 100% rename from support/doctype/support_ticket/__init__.py rename to erpnext/support/doctype/support_ticket/__init__.py diff --git a/support/doctype/support_ticket/support_ticket.js b/erpnext/support/doctype/support_ticket/support_ticket.js similarity index 100% rename from support/doctype/support_ticket/support_ticket.js rename to erpnext/support/doctype/support_ticket/support_ticket.js diff --git a/support/doctype/support_ticket/support_ticket.py b/erpnext/support/doctype/support_ticket/support_ticket.py similarity index 100% rename from support/doctype/support_ticket/support_ticket.py rename to erpnext/support/doctype/support_ticket/support_ticket.py diff --git a/support/doctype/support_ticket/support_ticket.txt b/erpnext/support/doctype/support_ticket/support_ticket.txt similarity index 100% rename from support/doctype/support_ticket/support_ticket.txt rename to erpnext/support/doctype/support_ticket/support_ticket.txt diff --git a/support/search_criteria/__init__.py b/erpnext/support/doctype/support_ticket_response/__init__.py similarity index 100% rename from support/search_criteria/__init__.py rename to erpnext/support/doctype/support_ticket_response/__init__.py diff --git a/support/doctype/support_ticket_response/support_ticket_response.txt b/erpnext/support/doctype/support_ticket_response/support_ticket_response.txt similarity index 100% rename from support/doctype/support_ticket_response/support_ticket_response.txt rename to erpnext/support/doctype/support_ticket_response/support_ticket_response.txt diff --git a/support/search_criteria/amc_summary/__init__.py b/erpnext/support/search_criteria/__init__.py similarity index 100% rename from support/search_criteria/amc_summary/__init__.py rename to erpnext/support/search_criteria/__init__.py diff --git a/support/search_criteria/customer_issues/__init__.py b/erpnext/support/search_criteria/amc_summary/__init__.py similarity index 100% rename from support/search_criteria/customer_issues/__init__.py rename to erpnext/support/search_criteria/amc_summary/__init__.py diff --git a/support/search_criteria/amc_summary/amc_summary.js b/erpnext/support/search_criteria/amc_summary/amc_summary.js similarity index 100% rename from support/search_criteria/amc_summary/amc_summary.js rename to erpnext/support/search_criteria/amc_summary/amc_summary.js diff --git a/support/search_criteria/amc_summary/amc_summary.py b/erpnext/support/search_criteria/amc_summary/amc_summary.py similarity index 100% rename from support/search_criteria/amc_summary/amc_summary.py rename to erpnext/support/search_criteria/amc_summary/amc_summary.py diff --git a/support/search_criteria/amc_summary/amc_summary.txt b/erpnext/support/search_criteria/amc_summary/amc_summary.txt similarity index 100% rename from support/search_criteria/amc_summary/amc_summary.txt rename to erpnext/support/search_criteria/amc_summary/amc_summary.txt diff --git a/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/__init__.py b/erpnext/support/search_criteria/customer_issues/__init__.py similarity index 100% rename from support/search_criteria/maintenance_orderwise_pending_amount_to_bill/__init__.py rename to erpnext/support/search_criteria/customer_issues/__init__.py diff --git a/support/search_criteria/customer_issues/customer_issues.js b/erpnext/support/search_criteria/customer_issues/customer_issues.js similarity index 100% rename from support/search_criteria/customer_issues/customer_issues.js rename to erpnext/support/search_criteria/customer_issues/customer_issues.js diff --git a/support/search_criteria/customer_issues/customer_issues.txt b/erpnext/support/search_criteria/customer_issues/customer_issues.txt similarity index 100% rename from support/search_criteria/customer_issues/customer_issues.txt rename to erpnext/support/search_criteria/customer_issues/customer_issues.txt diff --git a/support/search_criteria/maintenance_schedule_details/__init__.py b/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/__init__.py similarity index 100% rename from support/search_criteria/maintenance_schedule_details/__init__.py rename to erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/__init__.py diff --git a/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.js b/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.js similarity index 100% rename from support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.js rename to erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.js diff --git a/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt b/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt similarity index 100% rename from support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt rename to erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt diff --git a/support/search_criteria/warranty_amc_expiry_details/__init__.py b/erpnext/support/search_criteria/maintenance_schedule_details/__init__.py similarity index 100% rename from support/search_criteria/warranty_amc_expiry_details/__init__.py rename to erpnext/support/search_criteria/maintenance_schedule_details/__init__.py diff --git a/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.js b/erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.js similarity index 100% rename from support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.js rename to erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.js diff --git a/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt b/erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt similarity index 100% rename from support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt rename to erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt diff --git a/support/search_criteria/warranty_amc_summary/__init__.py b/erpnext/support/search_criteria/warranty_amc_expiry_details/__init__.py similarity index 100% rename from support/search_criteria/warranty_amc_summary/__init__.py rename to erpnext/support/search_criteria/warranty_amc_expiry_details/__init__.py diff --git a/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.js b/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.js similarity index 100% rename from support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.js rename to erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.js diff --git a/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt b/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt similarity index 100% rename from support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt rename to erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt diff --git a/utilities/__init__.py b/erpnext/support/search_criteria/warranty_amc_summary/__init__.py similarity index 100% rename from utilities/__init__.py rename to erpnext/support/search_criteria/warranty_amc_summary/__init__.py diff --git a/support/search_criteria/warranty_amc_summary/warranty_amc_summary.js b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.js similarity index 100% rename from support/search_criteria/warranty_amc_summary/warranty_amc_summary.js rename to erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.js diff --git a/support/search_criteria/warranty_amc_summary/warranty_amc_summary.py b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.py similarity index 100% rename from support/search_criteria/warranty_amc_summary/warranty_amc_summary.py rename to erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.py diff --git a/support/search_criteria/warranty_amc_summary/warranty_amc_summary.sql b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.sql similarity index 100% rename from support/search_criteria/warranty_amc_summary/warranty_amc_summary.sql rename to erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.sql diff --git a/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt similarity index 100% rename from support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt rename to erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt diff --git a/utilities/Module Def/Utilities/Utilities.txt b/erpnext/utilities/Module Def/Utilities/Utilities.txt similarity index 100% rename from utilities/Module Def/Utilities/Utilities.txt rename to erpnext/utilities/Module Def/Utilities/Utilities.txt diff --git a/utilities/doctype/__init__.py b/erpnext/utilities/__init__.py similarity index 100% rename from utilities/doctype/__init__.py rename to erpnext/utilities/__init__.py diff --git a/utilities/doctype/activity_dashboard_control/__init__.py b/erpnext/utilities/doctype/__init__.py similarity index 100% rename from utilities/doctype/activity_dashboard_control/__init__.py rename to erpnext/utilities/doctype/__init__.py diff --git a/utilities/doctype/address/__init__.py b/erpnext/utilities/doctype/activity_dashboard_control/__init__.py similarity index 100% rename from utilities/doctype/address/__init__.py rename to erpnext/utilities/doctype/activity_dashboard_control/__init__.py diff --git a/utilities/doctype/activity_dashboard_control/activity_dashboard_control.py b/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.py similarity index 100% rename from utilities/doctype/activity_dashboard_control/activity_dashboard_control.py rename to erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.py diff --git a/utilities/doctype/activity_dashboard_control/activity_dashboard_control.txt b/erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.txt similarity index 100% rename from utilities/doctype/activity_dashboard_control/activity_dashboard_control.txt rename to erpnext/utilities/doctype/activity_dashboard_control/activity_dashboard_control.txt diff --git a/utilities/doctype/bulk_rename_tool/__init__.py b/erpnext/utilities/doctype/address/__init__.py similarity index 100% rename from utilities/doctype/bulk_rename_tool/__init__.py rename to erpnext/utilities/doctype/address/__init__.py diff --git a/utilities/doctype/address/address.js b/erpnext/utilities/doctype/address/address.js similarity index 100% rename from utilities/doctype/address/address.js rename to erpnext/utilities/doctype/address/address.js diff --git a/utilities/doctype/address/address.py b/erpnext/utilities/doctype/address/address.py similarity index 100% rename from utilities/doctype/address/address.py rename to erpnext/utilities/doctype/address/address.py diff --git a/utilities/doctype/address/address.txt b/erpnext/utilities/doctype/address/address.txt similarity index 100% rename from utilities/doctype/address/address.txt rename to erpnext/utilities/doctype/address/address.txt diff --git a/utilities/doctype/contact/__init__.py b/erpnext/utilities/doctype/bulk_rename_tool/__init__.py similarity index 100% rename from utilities/doctype/contact/__init__.py rename to erpnext/utilities/doctype/bulk_rename_tool/__init__.py diff --git a/utilities/doctype/bulk_rename_tool/bulk_rename_tool.py b/erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.py similarity index 100% rename from utilities/doctype/bulk_rename_tool/bulk_rename_tool.py rename to erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.py diff --git a/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt b/erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt similarity index 100% rename from utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt rename to erpnext/utilities/doctype/bulk_rename_tool/bulk_rename_tool.txt diff --git a/utilities/doctype/contact_detail/__init__.py b/erpnext/utilities/doctype/contact/__init__.py similarity index 100% rename from utilities/doctype/contact_detail/__init__.py rename to erpnext/utilities/doctype/contact/__init__.py diff --git a/utilities/doctype/contact/contact.js b/erpnext/utilities/doctype/contact/contact.js similarity index 100% rename from utilities/doctype/contact/contact.js rename to erpnext/utilities/doctype/contact/contact.js diff --git a/utilities/doctype/contact/contact.py b/erpnext/utilities/doctype/contact/contact.py similarity index 100% rename from utilities/doctype/contact/contact.py rename to erpnext/utilities/doctype/contact/contact.py diff --git a/utilities/doctype/contact/contact.txt b/erpnext/utilities/doctype/contact/contact.txt similarity index 100% rename from utilities/doctype/contact/contact.txt rename to erpnext/utilities/doctype/contact/contact.txt diff --git a/utilities/doctype/doctype_label/__init__.py b/erpnext/utilities/doctype/contact_detail/__init__.py similarity index 100% rename from utilities/doctype/doctype_label/__init__.py rename to erpnext/utilities/doctype/contact_detail/__init__.py diff --git a/utilities/doctype/contact_detail/contact_detail.txt b/erpnext/utilities/doctype/contact_detail/contact_detail.txt similarity index 100% rename from utilities/doctype/contact_detail/contact_detail.txt rename to erpnext/utilities/doctype/contact_detail/contact_detail.txt diff --git a/utilities/doctype/doctype_property_setter/__init__.py b/erpnext/utilities/doctype/doctype_label/__init__.py similarity index 100% rename from utilities/doctype/doctype_property_setter/__init__.py rename to erpnext/utilities/doctype/doctype_label/__init__.py diff --git a/utilities/doctype/doctype_label/doctype_label.txt b/erpnext/utilities/doctype/doctype_label/doctype_label.txt similarity index 100% rename from utilities/doctype/doctype_label/doctype_label.txt rename to erpnext/utilities/doctype/doctype_label/doctype_label.txt diff --git a/utilities/doctype/file_browser_control/__init__.py b/erpnext/utilities/doctype/doctype_property_setter/__init__.py similarity index 100% rename from utilities/doctype/file_browser_control/__init__.py rename to erpnext/utilities/doctype/doctype_property_setter/__init__.py diff --git a/utilities/doctype/doctype_property_setter/doctype_property_setter.py b/erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.py similarity index 100% rename from utilities/doctype/doctype_property_setter/doctype_property_setter.py rename to erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.py diff --git a/utilities/doctype/doctype_property_setter/doctype_property_setter.txt b/erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.txt similarity index 100% rename from utilities/doctype/doctype_property_setter/doctype_property_setter.txt rename to erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.txt diff --git a/utilities/doctype/gl_mapper/__init__.py b/erpnext/utilities/doctype/file_browser_control/__init__.py similarity index 100% rename from utilities/doctype/gl_mapper/__init__.py rename to erpnext/utilities/doctype/file_browser_control/__init__.py diff --git a/utilities/doctype/file_browser_control/file_browser_control.py b/erpnext/utilities/doctype/file_browser_control/file_browser_control.py similarity index 100% rename from utilities/doctype/file_browser_control/file_browser_control.py rename to erpnext/utilities/doctype/file_browser_control/file_browser_control.py diff --git a/utilities/doctype/file_browser_control/file_browser_control.txt b/erpnext/utilities/doctype/file_browser_control/file_browser_control.txt similarity index 100% rename from utilities/doctype/file_browser_control/file_browser_control.txt rename to erpnext/utilities/doctype/file_browser_control/file_browser_control.txt diff --git a/utilities/doctype/gl_mapper_detail/__init__.py b/erpnext/utilities/doctype/gl_mapper/__init__.py similarity index 100% rename from utilities/doctype/gl_mapper_detail/__init__.py rename to erpnext/utilities/doctype/gl_mapper/__init__.py diff --git a/utilities/doctype/gl_mapper/gl_mapper.txt b/erpnext/utilities/doctype/gl_mapper/gl_mapper.txt similarity index 100% rename from utilities/doctype/gl_mapper/gl_mapper.txt rename to erpnext/utilities/doctype/gl_mapper/gl_mapper.txt diff --git a/utilities/doctype/menu_control/__init__.py b/erpnext/utilities/doctype/gl_mapper_detail/__init__.py similarity index 100% rename from utilities/doctype/menu_control/__init__.py rename to erpnext/utilities/doctype/gl_mapper_detail/__init__.py diff --git a/utilities/doctype/gl_mapper_detail/gl_mapper_detail.txt b/erpnext/utilities/doctype/gl_mapper_detail/gl_mapper_detail.txt similarity index 100% rename from utilities/doctype/gl_mapper_detail/gl_mapper_detail.txt rename to erpnext/utilities/doctype/gl_mapper_detail/gl_mapper_detail.txt diff --git a/utilities/doctype/patch_util/__init__.py b/erpnext/utilities/doctype/menu_control/__init__.py similarity index 100% rename from utilities/doctype/patch_util/__init__.py rename to erpnext/utilities/doctype/menu_control/__init__.py diff --git a/utilities/doctype/menu_control/menu_control.js b/erpnext/utilities/doctype/menu_control/menu_control.js similarity index 100% rename from utilities/doctype/menu_control/menu_control.js rename to erpnext/utilities/doctype/menu_control/menu_control.js diff --git a/utilities/doctype/menu_control/menu_control.py b/erpnext/utilities/doctype/menu_control/menu_control.py similarity index 100% rename from utilities/doctype/menu_control/menu_control.py rename to erpnext/utilities/doctype/menu_control/menu_control.py diff --git a/utilities/doctype/menu_control/menu_control.txt b/erpnext/utilities/doctype/menu_control/menu_control.txt similarity index 100% rename from utilities/doctype/menu_control/menu_control.txt rename to erpnext/utilities/doctype/menu_control/menu_control.txt diff --git a/utilities/doctype/production_tips_common/__init__.py b/erpnext/utilities/doctype/patch_util/__init__.py similarity index 100% rename from utilities/doctype/production_tips_common/__init__.py rename to erpnext/utilities/doctype/patch_util/__init__.py diff --git a/utilities/doctype/patch_util/patch_util.py b/erpnext/utilities/doctype/patch_util/patch_util.py similarity index 100% rename from utilities/doctype/patch_util/patch_util.py rename to erpnext/utilities/doctype/patch_util/patch_util.py diff --git a/utilities/doctype/patch_util/patch_util.txt b/erpnext/utilities/doctype/patch_util/patch_util.txt similarity index 100% rename from utilities/doctype/patch_util/patch_util.txt rename to erpnext/utilities/doctype/patch_util/patch_util.txt diff --git a/utilities/doctype/profile_control/__init__.py b/erpnext/utilities/doctype/production_tips_common/__init__.py similarity index 100% rename from utilities/doctype/profile_control/__init__.py rename to erpnext/utilities/doctype/production_tips_common/__init__.py diff --git a/utilities/doctype/production_tips_common/production_tips_common.js b/erpnext/utilities/doctype/production_tips_common/production_tips_common.js similarity index 100% rename from utilities/doctype/production_tips_common/production_tips_common.js rename to erpnext/utilities/doctype/production_tips_common/production_tips_common.js diff --git a/utilities/doctype/production_tips_common/production_tips_common.txt b/erpnext/utilities/doctype/production_tips_common/production_tips_common.txt similarity index 100% rename from utilities/doctype/production_tips_common/production_tips_common.txt rename to erpnext/utilities/doctype/production_tips_common/production_tips_common.txt diff --git a/utilities/doctype/receiver_detail/__init__.py b/erpnext/utilities/doctype/profile_control/__init__.py similarity index 100% rename from utilities/doctype/receiver_detail/__init__.py rename to erpnext/utilities/doctype/profile_control/__init__.py diff --git a/utilities/doctype/profile_control/profile_control.py b/erpnext/utilities/doctype/profile_control/profile_control.py similarity index 100% rename from utilities/doctype/profile_control/profile_control.py rename to erpnext/utilities/doctype/profile_control/profile_control.py diff --git a/utilities/doctype/profile_control/profile_control.txt b/erpnext/utilities/doctype/profile_control/profile_control.txt similarity index 100% rename from utilities/doctype/profile_control/profile_control.txt rename to erpnext/utilities/doctype/profile_control/profile_control.txt diff --git a/utilities/doctype/rename_tool/__init__.py b/erpnext/utilities/doctype/receiver_detail/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from utilities/doctype/rename_tool/__init__.py rename to erpnext/utilities/doctype/receiver_detail/__init__.py diff --git a/utilities/doctype/receiver_detail/receiver_detail.txt b/erpnext/utilities/doctype/receiver_detail/receiver_detail.txt similarity index 100% rename from utilities/doctype/receiver_detail/receiver_detail.txt rename to erpnext/utilities/doctype/receiver_detail/receiver_detail.txt diff --git a/utilities/doctype/reposting_tool/__init__.py b/erpnext/utilities/doctype/rename_tool/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from utilities/doctype/reposting_tool/__init__.py rename to erpnext/utilities/doctype/rename_tool/__init__.py diff --git a/utilities/doctype/rename_tool/rename_tool.js b/erpnext/utilities/doctype/rename_tool/rename_tool.js similarity index 100% rename from utilities/doctype/rename_tool/rename_tool.js rename to erpnext/utilities/doctype/rename_tool/rename_tool.js diff --git a/utilities/doctype/rename_tool/rename_tool.py b/erpnext/utilities/doctype/rename_tool/rename_tool.py similarity index 100% rename from utilities/doctype/rename_tool/rename_tool.py rename to erpnext/utilities/doctype/rename_tool/rename_tool.py diff --git a/utilities/doctype/rename_tool/rename_tool.txt b/erpnext/utilities/doctype/rename_tool/rename_tool.txt similarity index 100% rename from utilities/doctype/rename_tool/rename_tool.txt rename to erpnext/utilities/doctype/rename_tool/rename_tool.txt diff --git a/utilities/doctype/sms_center/__init__.py b/erpnext/utilities/doctype/reposting_tool/__init__.py similarity index 100% rename from utilities/doctype/sms_center/__init__.py rename to erpnext/utilities/doctype/reposting_tool/__init__.py diff --git a/utilities/doctype/reposting_tool/reposting_tool.js b/erpnext/utilities/doctype/reposting_tool/reposting_tool.js similarity index 100% rename from utilities/doctype/reposting_tool/reposting_tool.js rename to erpnext/utilities/doctype/reposting_tool/reposting_tool.js diff --git a/utilities/doctype/reposting_tool/reposting_tool.py b/erpnext/utilities/doctype/reposting_tool/reposting_tool.py similarity index 100% rename from utilities/doctype/reposting_tool/reposting_tool.py rename to erpnext/utilities/doctype/reposting_tool/reposting_tool.py diff --git a/utilities/doctype/reposting_tool/reposting_tool.txt b/erpnext/utilities/doctype/reposting_tool/reposting_tool.txt similarity index 100% rename from utilities/doctype/reposting_tool/reposting_tool.txt rename to erpnext/utilities/doctype/reposting_tool/reposting_tool.txt diff --git a/utilities/doctype/sms_control/__init__.py b/erpnext/utilities/doctype/sms_center/__init__.py similarity index 100% rename from utilities/doctype/sms_control/__init__.py rename to erpnext/utilities/doctype/sms_center/__init__.py diff --git a/utilities/doctype/sms_center/sms_center.js b/erpnext/utilities/doctype/sms_center/sms_center.js similarity index 100% rename from utilities/doctype/sms_center/sms_center.js rename to erpnext/utilities/doctype/sms_center/sms_center.js diff --git a/utilities/doctype/sms_center/sms_center.py b/erpnext/utilities/doctype/sms_center/sms_center.py similarity index 100% rename from utilities/doctype/sms_center/sms_center.py rename to erpnext/utilities/doctype/sms_center/sms_center.py diff --git a/utilities/doctype/sms_center/sms_center.txt b/erpnext/utilities/doctype/sms_center/sms_center.txt similarity index 100% rename from utilities/doctype/sms_center/sms_center.txt rename to erpnext/utilities/doctype/sms_center/sms_center.txt diff --git a/utilities/doctype/sms_log/__init__.py b/erpnext/utilities/doctype/sms_control/__init__.py similarity index 100% rename from utilities/doctype/sms_log/__init__.py rename to erpnext/utilities/doctype/sms_control/__init__.py diff --git a/utilities/doctype/sms_control/sms_control.js b/erpnext/utilities/doctype/sms_control/sms_control.js similarity index 100% rename from utilities/doctype/sms_control/sms_control.js rename to erpnext/utilities/doctype/sms_control/sms_control.js diff --git a/utilities/doctype/sms_control/sms_control.py b/erpnext/utilities/doctype/sms_control/sms_control.py similarity index 100% rename from utilities/doctype/sms_control/sms_control.py rename to erpnext/utilities/doctype/sms_control/sms_control.py diff --git a/utilities/doctype/sms_control/sms_control.txt b/erpnext/utilities/doctype/sms_control/sms_control.txt similarity index 100% rename from utilities/doctype/sms_control/sms_control.txt rename to erpnext/utilities/doctype/sms_control/sms_control.txt diff --git a/utilities/doctype/sso_control/__init__.py b/erpnext/utilities/doctype/sms_log/__init__.py similarity index 100% rename from utilities/doctype/sso_control/__init__.py rename to erpnext/utilities/doctype/sms_log/__init__.py diff --git a/utilities/doctype/sms_log/sms_log.txt b/erpnext/utilities/doctype/sms_log/sms_log.txt similarity index 100% rename from utilities/doctype/sms_log/sms_log.txt rename to erpnext/utilities/doctype/sms_log/sms_log.txt diff --git a/utilities/doctype/todo_item/__init__.py b/erpnext/utilities/doctype/sso_control/__init__.py similarity index 100% rename from utilities/doctype/todo_item/__init__.py rename to erpnext/utilities/doctype/sso_control/__init__.py diff --git a/utilities/doctype/sso_control/sso_control.py b/erpnext/utilities/doctype/sso_control/sso_control.py similarity index 100% rename from utilities/doctype/sso_control/sso_control.py rename to erpnext/utilities/doctype/sso_control/sso_control.py diff --git a/utilities/doctype/sso_control/sso_control.txt b/erpnext/utilities/doctype/sso_control/sso_control.txt similarity index 100% rename from utilities/doctype/sso_control/sso_control.txt rename to erpnext/utilities/doctype/sso_control/sso_control.txt diff --git a/utilities/doctype/trash_control/__init__.py b/erpnext/utilities/doctype/todo_item/__init__.py similarity index 100% rename from utilities/doctype/trash_control/__init__.py rename to erpnext/utilities/doctype/todo_item/__init__.py diff --git a/utilities/doctype/todo_item/todo_item.txt b/erpnext/utilities/doctype/todo_item/todo_item.txt similarity index 100% rename from utilities/doctype/todo_item/todo_item.txt rename to erpnext/utilities/doctype/todo_item/todo_item.txt diff --git a/utilities/doctype/wn_erp_client_control/__init__.py b/erpnext/utilities/doctype/trash_control/__init__.py similarity index 100% rename from utilities/doctype/wn_erp_client_control/__init__.py rename to erpnext/utilities/doctype/trash_control/__init__.py diff --git a/utilities/doctype/trash_control/trash_control.py b/erpnext/utilities/doctype/trash_control/trash_control.py similarity index 100% rename from utilities/doctype/trash_control/trash_control.py rename to erpnext/utilities/doctype/trash_control/trash_control.py diff --git a/utilities/doctype/trash_control/trash_control.txt b/erpnext/utilities/doctype/trash_control/trash_control.txt similarity index 100% rename from utilities/doctype/trash_control/trash_control.txt rename to erpnext/utilities/doctype/trash_control/trash_control.txt diff --git a/utilities/page/__init__.py b/erpnext/utilities/doctype/wn_erp_client_control/__init__.py similarity index 100% rename from utilities/page/__init__.py rename to erpnext/utilities/doctype/wn_erp_client_control/__init__.py diff --git a/utilities/doctype/wn_erp_client_control/wn_erp_client_control.py b/erpnext/utilities/doctype/wn_erp_client_control/wn_erp_client_control.py similarity index 100% rename from utilities/doctype/wn_erp_client_control/wn_erp_client_control.py rename to erpnext/utilities/doctype/wn_erp_client_control/wn_erp_client_control.py diff --git a/utilities/doctype/wn_erp_client_control/wn_erp_client_control.txt b/erpnext/utilities/doctype/wn_erp_client_control/wn_erp_client_control.txt similarity index 100% rename from utilities/doctype/wn_erp_client_control/wn_erp_client_control.txt rename to erpnext/utilities/doctype/wn_erp_client_control/wn_erp_client_control.txt diff --git a/utilities/page/file_browser/__init__.py b/erpnext/utilities/page/__init__.py similarity index 100% rename from utilities/page/file_browser/__init__.py rename to erpnext/utilities/page/__init__.py diff --git a/utilities/page/messages/__init__.py b/erpnext/utilities/page/file_browser/__init__.py similarity index 100% rename from utilities/page/messages/__init__.py rename to erpnext/utilities/page/file_browser/__init__.py diff --git a/utilities/page/file_browser/file_browser.html b/erpnext/utilities/page/file_browser/file_browser.html similarity index 100% rename from utilities/page/file_browser/file_browser.html rename to erpnext/utilities/page/file_browser/file_browser.html diff --git a/utilities/page/file_browser/file_browser.js b/erpnext/utilities/page/file_browser/file_browser.js similarity index 100% rename from utilities/page/file_browser/file_browser.js rename to erpnext/utilities/page/file_browser/file_browser.js diff --git a/utilities/page/file_browser/file_browser.txt b/erpnext/utilities/page/file_browser/file_browser.txt similarity index 100% rename from utilities/page/file_browser/file_browser.txt rename to erpnext/utilities/page/file_browser/file_browser.txt diff --git a/utilities/page/trash/__init__.py b/erpnext/utilities/page/messages/__init__.py similarity index 100% rename from utilities/page/trash/__init__.py rename to erpnext/utilities/page/messages/__init__.py diff --git a/utilities/page/messages/messages.html b/erpnext/utilities/page/messages/messages.html similarity index 100% rename from utilities/page/messages/messages.html rename to erpnext/utilities/page/messages/messages.html diff --git a/utilities/page/messages/messages.js b/erpnext/utilities/page/messages/messages.js similarity index 100% rename from utilities/page/messages/messages.js rename to erpnext/utilities/page/messages/messages.js diff --git a/utilities/page/messages/messages.txt b/erpnext/utilities/page/messages/messages.txt similarity index 100% rename from utilities/page/messages/messages.txt rename to erpnext/utilities/page/messages/messages.txt diff --git a/utilities/page/messages/messages_static.html b/erpnext/utilities/page/messages/messages_static.html similarity index 100% rename from utilities/page/messages/messages_static.html rename to erpnext/utilities/page/messages/messages_static.html diff --git a/utilities/page/wip_monitor/__init__.py b/erpnext/utilities/page/trash/__init__.py similarity index 100% rename from utilities/page/wip_monitor/__init__.py rename to erpnext/utilities/page/trash/__init__.py diff --git a/utilities/page/trash/trash.html b/erpnext/utilities/page/trash/trash.html similarity index 100% rename from utilities/page/trash/trash.html rename to erpnext/utilities/page/trash/trash.html diff --git a/utilities/page/trash/trash.js b/erpnext/utilities/page/trash/trash.js similarity index 100% rename from utilities/page/trash/trash.js rename to erpnext/utilities/page/trash/trash.js diff --git a/utilities/page/trash/trash.txt b/erpnext/utilities/page/trash/trash.txt similarity index 100% rename from utilities/page/trash/trash.txt rename to erpnext/utilities/page/trash/trash.txt diff --git a/erpnext/utilities/page/wip_monitor/__init__.py b/erpnext/utilities/page/wip_monitor/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/utilities/page/wip_monitor/wip_monitor.html b/erpnext/utilities/page/wip_monitor/wip_monitor.html similarity index 100% rename from utilities/page/wip_monitor/wip_monitor.html rename to erpnext/utilities/page/wip_monitor/wip_monitor.html diff --git a/utilities/page/wip_monitor/wip_monitor.js b/erpnext/utilities/page/wip_monitor/wip_monitor.js similarity index 100% rename from utilities/page/wip_monitor/wip_monitor.js rename to erpnext/utilities/page/wip_monitor/wip_monitor.js diff --git a/utilities/page/wip_monitor/wip_monitor.txt b/erpnext/utilities/page/wip_monitor/wip_monitor.txt similarity index 100% rename from utilities/page/wip_monitor/wip_monitor.txt rename to erpnext/utilities/page/wip_monitor/wip_monitor.txt diff --git a/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py similarity index 100% rename from utilities/transaction_base.py rename to erpnext/utilities/transaction_base.py diff --git a/handler.cgi b/handler.cgi new file mode 100755 index 00000000000..d203f3061df --- /dev/null +++ b/handler.cgi @@ -0,0 +1,21 @@ +#!/usr/bin/python +# main handler file + +import cgi, cgitb, os, sys +cgitb.enable() + +# import libs +sys.path.append('lib/py') +sys.path.append('erpnext') + +import webnotes +import webnotes.defs + +webnotes.form = cgi.FieldStorage() + +# make the form_dict +for key in webnotes.form.keys(): + webnotes.form_dict[key] = webnotes.form.getvalue(key) + +# pass on to legacy handler +import webnotes.handler diff --git a/index.html b/index.html new file mode 100644 index 00000000000..f5dc6071193 --- /dev/null +++ b/index.html @@ -0,0 +1,767 @@ + + + + ERPNext + + + + +
+ +
+ + +
+ + +
+ +
+ +
+ \ No newline at end of file diff --git a/js/app.js b/js/app.js new file mode 100644 index 00000000000..a7fbdadaa42 --- /dev/null +++ b/js/app.js @@ -0,0 +1,13 @@ +wn.require('lib/js/lib/jquery.min.js') + +// for datepicker +wn.require('lib/js/legacy/jquery/jquery-ui.min.js') + +wn.require('lib/js/legacy/wnf.compressed.js'); +wn.require('lib/js/legacy/form.compressed.js'); +wn.require('lib/js/legacy/report.compressed.js'); +wn.require('lib/css/legacy/default.css'); + +$(document).bind('ready', function() { + startup(); +}); \ No newline at end of file diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 00000000000..ac4f04b3105 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,22 @@ + + + + ERPNext + + + + +
+ +
+ + +
+ + +
+ {{ content }} +
+ +
+ \ No newline at end of file From b5717bd807f1678225fb0b98f6e1bda3a3139f00 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 6 Sep 2011 12:46:33 +0530 Subject: [PATCH 06/84] patch etc fixes --- README | 1 - README.md | 7 +++++++ config/_timestamps.js | 2 +- erpnext/patches/patch.py | 4 ++-- erpnext/startup/__init__.py | 9 --------- erpnext/startup/startup.css | 10 ++++++++++ favicon.ico | Bin 1406 -> 318 bytes index.html | 2 +- todo.md | 8 ++++++++ 9 files changed, 29 insertions(+), 14 deletions(-) delete mode 100644 README create mode 100644 README.md create mode 100644 todo.md diff --git a/README b/README deleted file mode 100644 index 37967291f66..00000000000 --- a/README +++ /dev/null @@ -1 +0,0 @@ -erpnext diff --git a/README.md b/README.md new file mode 100644 index 00000000000..9d2ba5d62e1 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +## ERPNext - Open Source + SAAS ERP + +Includes Accounting, Inventory, CRM, Sales, Purchase, Projects, HRMS + +Built on Python / MySQL / wnframework + +http://erpnext.org \ No newline at end of file diff --git a/config/_timestamps.js b/config/_timestamps.js index 47d59a3fa31..49528532b2b 100644 --- a/config/_timestamps.js +++ b/config/_timestamps.js @@ -1 +1 @@ -{"lib/py/webnotes/profile.py": "1313994313", "lib/js/legacy/widgets/autosuggest.js": "1315219413", "lib/js/lib/superfish/images/shadow.png": "1215861254", "lib/css/legacy/calendar.css": "1311752687", "lib/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png": "1311752687", "lib/py/webnotes/utils/jslib/jstimestamp.py": "1313468805", "lib/js/legacy/widgets/list_selector.js": "1311752688", "lib/py/webnotes/install_lib/__init__.py": "1311752687", "js/app.js": "1315226253", "lib/js/legacy/wn/widgets/doc_column_view.js": "1311752688", "lib/js/legacy/utils/rsh.compressed.js": "1311752688", "lib/css/legacy/doc_column_view.css": "1311752687", "lib/py/webnotes/install_lib/db_init.py": "1311752687", "lib/py/webnotes/widgets/follow.py": "1311752687", "lib/py/webnotes/utils/backups.py": "1315203426", "lib/js/legacy/widgets/form/fields.js": "1311752688", "lib/js/legacy/widgets/export_query.js": "1311752688", "lib/css/legacy/default.css": "1315222973", "lib/js/lib/history/history.adapter.jquery.js": "1310718903", "lib/js/lib/superfish/css/superfish-vertical.css": "1215403280", "lib/js/legacy/user.js": "1311752688", "lib/css/legacy/jquery-ui.css": "1311752687", "lib/js/wn/xmlhttp.js": "1313753523", "lib/js/legacy/webpage/loaders.js": "1311752688", "lib/css/legacy/images/ui-icons_454545_256x240.png": "1311752687", "lib/py/webnotes/model/db_schema.py": "1313994313", "lib/py/webnotes/defs_template.py": "1312433457", "lib/css/legacy/user.css": "1311752687", "lib/js/legacy/widgets/form/form_container.js": "1311752688", "lib/conf/apache.conf": "1313640120", "lib/py/webnotes/model/doctype.py": "1313475893", "lib/py/webnotes/tests/__init__.py": "1312259967", "lib/js/legacy/webpage/page_header.js": "1311752688", "lib/css/legacy/report.css": "1311752687", "lib/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png": "1311752687", "lib/js/legacy/utils/browser_detect.js": "1311752688", "lib/js/legacy/globals.js": "1315225828", "lib/py/webnotes/model/code.py": "1312259967", "lib/README.md": "1314358927", "lib/css/skeleton.css": "1313603562", "lib/js/legacy/wn/widgets/filters.js": "1311752688", "lib/py/webnotes/widgets/query_builder.py": "1315203426", "lib/py/build/timestamps.py": "1315222071", "lib/py/webnotes/utils/email_lib/form_email.py": "1311752687", "lib/py/webnotes/utils/sitemap.py": "1311752687", "lib/py/webnotes/utils/__init__.py": "1315203426", "lib/css/legacy/wntoolbar.css": "1311752687", "lib/py/webnotes/tests/modules.py": "1312259967", "lib/css/legacy/images/ui-icons_2e83ff_256x240.png": "1311752687", "lib/py/build/bundle.py": "1315223128", "lib/js/legacy/widgets/select.js": "1311752688", "lib/py/webnotes/utils/webservice.py": "1311752687", "lib/py/webnotes/widgets/__init__.py": "1311752687", "lib/js/legacy/utils/datatype.js": "1311752688", "lib/js/legacy/webpage/history.js": "1311752688", "lib/conf/Framework.sql": "1311752687", "lib/css/legacy/jqplot.css": "1313994339", "lib/py/webnotes/utils/email_lib/__init__.py": "1311752687", "lib/conf/conf.py": "1314099127", "lib/js/wn/history.js": "1313759392", "lib/py/webnotes/utils/email_lib/send.py": "1311752687", "lib/js/legacy/webpage/uploader.js": "1313057744", "lib/js/legacy/utils/handler.js": "1315227079", "lib/py/webnotes/utils/file_manager.py": "1313060641", "lib/js/legacy/wn/widgets/listing.js": "1311752688", "lib/py/webnotes/widgets/page_body.py": "1311752687", "lib/js/legacy/jquery/jquery.jqplot.min.js": "1313994339", "lib/js/legacy/wnf.compressed.js": "1315227202", "lib/css/layout.css": "1313603562", "lib/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png": "1311752687", "lib/js/legacy/widgets/layout.js": "1311752688", "lib/py/webnotes/session_cache.py": "1312259967", "lib/js/legacy/widgets/form/form_grid.js": "1315203426", "lib/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png": "1311752687", "lib/js/legacy/utils/msgprint.js": "1311752688", "lib/js/legacy/webpage/page.js": "1315203426", "lib/py/webnotes/model/utils.py": "1315203426", "lib/js/lib/superfish/images/arrows-ffffff.png": "1215426588", "lib/js/legacy/wn/widgets/page_sidebar.js": "1311752688", "lib/js/legacy/model/doclist.js": "1311752688", "lib/js/lib/history/history.html4.js": "1310718903", "lib/js/core.min.js": "1315225602", "lib/css/legacy/listing.css": "1311752687", "lib/py/watch.py": "1314101731", "lib/py/webnotes/widgets/search.py": "1315203426", "lib/js/legacy/webpage/spinner.js": "1311752688", "lib/js/legacy/widgets/listing.js": "1311752688", "lib/py/webnotes/model/sql_sync.py": "1311752687", "lib/js/legacy/build.json": "1315211061", "lib/js/legacy/widgets/tags.js": "1311752688", "lib/js/legacy/utils/printElement.js": "1311752688", "templates/index.html": "1315223202", "lib/py/webnotes/model/doc.py": "1312259967", "lib/css/legacy/bw-icons.css": "1311752687", "lib/js/legacy/webpage/error_console.js": "1311752688", "lib/js/legacy/utils/shortcut.js": "1311752688", "lib/js/legacy/widgets/form/form_fields.js": "1315203426", "lib/conf/_conf.py": "1314099136", "lib/css/legacy/sidebar.css": "1311752687", "lib/py/webnotes/utils/email_lib/html2text.py": "1311752687", "lib/py/webnotes/utils/archive.py": "1311752687", "lib/py/.user.py.swp": "1314350551", "lib/js/legacy/widgets/print_query.js": "1311752688", "lib/js/legacy/widgets/form/form_comments.js": "1311752688", "lib/py/webnotes/auth.py": "1315203426", "lib/py/webnotes/utils/transfer.py": "1312259967", "lib/py/webnotes/install_lib/install.py": "1313994313", "lib/py/build/__init__.py": "1315223094", "lib/js/legacy/wn/widgets/dialog.js": "1311752688", "lib/css/legacy/images/ui-icons_cd0a0a_256x240.png": "1311752687", "lib/js/legacy/wn/widgets/form/comments.js": "1311752688", "config/conf.py": "1315213903", "lib/js/core.js": "1314786336", "lib/js/legacy/utils/datetime.js": "1311752688", "lib/py/webnotes/model/doclist.py": "1315203426", "lib/py/webnotes/widgets/form.py": "1313468805", "lib/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png": "1311752687", "handler.cgi": "1315226068", "lib/js/legacy/widgets/report_builder/report_builder.js": "1315203426", "lib/py/webnotes/tests.py": "1311752687", "lib/py/webnotes/utils/encrypt.py": "1311752687", "lib/js/legacy/wn/page_layout.js": "1311752688", "lib/js/legacy/widgets/dialog.js": "1311752688", "lib/py/webnotes/multi_tenant/setup.py": "1311752687", "lib/js/lib/superfish/superfish.min.js": "1315222973", "lib/js/legacy/widgets/report_builder/datatable.js": "1311752688", "lib/js/legacy/model/local_data.js": "1311752688", "lib/css/legacy/tabs.css": "1311752687", "lib/py/webnotes/widgets/auto_master.py": "1311752687", "favicon.ico": "1311586929", "lib/js/wn/assets.js": "1315225379", "lib/css/base.css": "1314774281", "lib/py/webnotes/modules/export_module.py": "1312259967", "lib/py/webnotes/modules/patch.py": "1315228273", "lib/py/webnotes/utils/cache.py": "1311752687", "lib/py/webnotes/utils/jslib/jsnamespace.py": "1313468805", "lib/py/webnotes/handler.py": "1313994313", "lib/js/legacy/widgets/form/form_header.js": "1311752688", "lib/py/__init__.py": "1313570887", "README": "1310447332", "lib/py/webnotes/model/triggers.py": "1311752687", "lib/images/icons/gh-icons.png": "1304444400", "lib/js/legacy/wn/widgets/form/attachments.js": "1313060641", "lib/css/legacy/build.json": "1315211094", "lib/js/legacy/widgets/form/clientscriptAPI.js": "1313994313", "lib/py/webnotes/model/__init__.py": "1315203426", "lib/js/legacy/webpage/freeze_page.js": "1311752688", "config/_timestamps.js": "1315228321", "lib/py/webnotes/widgets/menus.py": "1311752687", "lib/js/legacy/form.compressed.js": "1315222973", "lib/js/lib/superfish/make_superfish.js": "1313759992", "lib/js/wn/dom.js": "1315225600", "lib/js/legacy/widgets/form/attachments.js": "1315219428", "lib/py/webnotes/db.py": "1315203426", "lib/py/webnotes/utils/nestedset.py": "1313475893", "lib/css/legacy/images/ui-icons_888888_256x240.png": "1311752687", "lib/py/.common.py.swp": "1314349963", "erpnext_version.py": "1315208679", "master.sql.gz": "1315208679", "lib/css/legacy/forms.css": "1311752687", "lib/js/legacy/wn/widgets/footer.js": "1311752688", "lib/js/lib/superfish/hoverIntent.js": "1201705878", "index.html": "1315228321", "lib/js/legacy/widgets/form/grid.js": "1315203426", "lib/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png": "1311752687", "lib/js/legacy/widgets/tree.js": "1311752688", "lib/__init__.py": "1314099524", "lib/js/legacy/widgets/menu.js": "1311752688", "lib/py/common.py": "1314349955", "lib/conf/__init__.py": "1313737596", "lib/js/legacy/widgets/report_builder/bargraph.js": "1311752688", "lib/js/legacy/wn/widgets/follow.js": "1311752688", "lib/js/legacy/widgets/calendar.js": "1311752688", "lib/js/legacy/widgets/form/print_format.js": "1311752688", "lib/css/legacy/messages.css": "1311752687", "lib/js/wn/provide.js": "1315222568", "lib/py/webnotes/widgets/tags.py": "1315203426", "lib/js/legacy/wn/widgets/form/sidebar.js": "1311752688", "lib/py/build/nav.py": "1315218444", "lib/js/lib/history/history.min.js": "1315221478", "lib/py/webnotes/modules/__init__.py": "1315228230", "lib/py/webnotes/widgets/todo.py": "1311752687", "lib/js/wn/page.js": "1314106765", "lib/js/legacy/app.js": "1315227200", "lib/py/tests.py": "1313132642", "lib/js/legacy/widgets/form/form.js": "1315203426", "lib/py/webnotes/modules/module_manager.py": "1312259967", "INSTALL": "1310447332", "lib/js/lib/json2.js": "1313659690", "lib/js/legacy/utils/dom.js": "1315225726", "lib/js/legacy/webpage/search.js": "1315203426", "lib/js/legacy/widgets/tabbedpage.js": "1311752688", "lib/py/webnotes/modules/utils.py": "1312259967", "lib/js/legacy/wn/modules.js": "1311752688", "lib/py/webnotes/utils/email_lib/receive.py": "1315203426", "lib/js/legacy/webpage/about.js": "1311752688", "lib/py/webnotes/utils/jslib/jsdependency.py": "1313468805", "lib/css/legacy/grid.css": "1311752687", "lib/py/webnotes/widgets/page.py": "1314701195", "lib/css/legacy/autosuggest.css": "1311752687", "lib/py/webnotes/utils/jslib/jsmin.py": "1313468805", "lib/py/webnotes/model/modules.py": "1311752687", "lib/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png": "1311752687", "lib/py/build/project.py": "1315219863", "lib/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png": "1311752687", "lib/js/legacy/jquery/jquery-ui.min.js": "1315220242", "lib/css/legacy/body.css": "1311752687", "lib/py/webnotes/defs.py": "1315227569", "lib/js/legacy/utils/json.js": "1311752688", "lib/py/webnotes/model/import_docs.py": "1313475893", "lib/py/build/__main__.py": "1315217545", "lib/js/legacy/webpage/body.js": "1311752688", "lib/js/build.json": "1315222659", "lib/js/legacy/webpage/wntoolbar.js": "1313994313", "lib/js/legacy/webpage/docbrowser.js": "1311752688", "lib/py/build/markdown2_extn.py": "1315217098", "lib/py/build/minify.py": "1313583868", "lib/css/legacy/images/ui-icons_222222_256x240.png": "1311752687", "lib/js/legacy/report.compressed.js": "1315222973", "module-icons.png": "1310447333", "lib/py/webnotes/__init__.py": "1315203426", "lib/py/webnotes/utils/scheduler.py": "1315203442", "lib/js/legacy/widgets/form/email.js": "1311752688", "lib/py/webnotes/widgets/event.py": "1311752687", "lib/css/legacy/menus.css": "1311752687", "lib/js/lib/superfish/css/superfish.css": "1313760672", "lib/py/webnotes/multi_tenant/__init__.py": "1311752687", "lib/js/lib/jquery.min.js": "1313062880", "lib/js/lib/history/history.js": "1310718903", "lib/py/webnotes/multi_tenant/query_parser.py": "1311752687", "lib/js/wn/require.js": "1313755415", "lib/css/legacy/dialog.css": "1311752687", "lib/js/lib/superfish/superfish.js": "1221094330", "lib/js/legacy/widgets/report_builder/calculator.js": "1315219438", "lib/py/webnotes/model/meta.py": "1311752687"} \ No newline at end of file +{"lib/py/webnotes/profile.py": "1313994313", "lib/js/legacy/widgets/autosuggest.js": "1315219413", "lib/js/lib/superfish/images/shadow.png": "1215861254", "lib/css/legacy/calendar.css": "1311752687", "lib/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png": "1311752687", "lib/py/webnotes/utils/jslib/jstimestamp.py": "1313468805", "lib/js/legacy/widgets/list_selector.js": "1311752688", "lib/py/webnotes/install_lib/__init__.py": "1311752687", "js/app.js": "1315226253", "lib/js/legacy/wn/widgets/doc_column_view.js": "1311752688", "lib/images/icons/folder.gif": "1311752688", "lib/js/legacy/utils/rsh.compressed.js": "1311752688", "lib/css/legacy/doc_column_view.css": "1311752687", "lib/py/webnotes/install_lib/db_init.py": "1311752687", "lib/py/webnotes/widgets/follow.py": "1311752687", "lib/py/webnotes/utils/backups.py": "1315203426", "lib/js/legacy/widgets/form/fields.js": "1311752688", "lib/js/legacy/widgets/export_query.js": "1311752688", "lib/css/legacy/default.css": "1315222973", "lib/js/lib/history/history.adapter.jquery.js": "1310718903", "lib/js/lib/superfish/css/superfish-vertical.css": "1215403280", "lib/js/legacy/user.js": "1311752688", "lib/css/legacy/jquery-ui.css": "1311752687", "lib/js/wn/xmlhttp.js": "1313753523", "lib/js/legacy/webpage/loaders.js": "1311752688", "lib/css/legacy/images/ui-icons_454545_256x240.png": "1311752687", "lib/py/webnotes/model/db_schema.py": "1313994313", "lib/py/webnotes/defs_template.py": "1312433457", "lib/css/legacy/user.css": "1311752687", "lib/js/legacy/widgets/form/form_container.js": "1311752688", "lib/conf/apache.conf": "1313640120", "lib/py/webnotes/model/doctype.py": "1313475893", "lib/py/webnotes/tests/__init__.py": "1312259967", "lib/js/legacy/webpage/page_header.js": "1311752688", "lib/js/legacy/widgets/tabbedpage.js": "1311752688", "lib/css/legacy/report.css": "1311752687", "index.html": "1315293243", "lib/js/legacy/utils/browser_detect.js": "1311752688", "lib/js/legacy/globals.js": "1315225828", "lib/py/webnotes/model/code.py": "1312259967", "lib/README.md": "1314358927", "lib/css/skeleton.css": "1313603562", "lib/js/legacy/wn/widgets/filters.js": "1311752688", "lib/py/webnotes/widgets/query_builder.py": "1315203426", "lib/py/build/timestamps.py": "1315222071", "lib/images/ui/spinner.gif": "1311752688", "lib/py/webnotes/utils/email_lib/form_email.py": "1311752687", "lib/js/legacy/widgets/dialog.js": "1311752688", "lib/py/webnotes/utils/sitemap.py": "1311752687", "lib/py/webnotes/utils/__init__.py": "1315203426", "lib/css/legacy/wntoolbar.css": "1311752687", "lib/py/webnotes/tests/modules.py": "1312259967", "lib/css/legacy/images/ui-icons_2e83ff_256x240.png": "1311752687", "lib/py/build/bundle.py": "1315223128", "lib/js/legacy/widgets/select.js": "1311752688", "lib/py/webnotes/utils/webservice.py": "1311752687", "lib/images/ui/vote_up.gif": "1311752688", "lib/py/webnotes/widgets/__init__.py": "1311752687", "lib/js/legacy/utils/datatype.js": "1311752688", "lib/js/legacy/webpage/history.js": "1311752688", "lib/conf/Framework.sql": "1311752687", "lib/css/legacy/jqplot.css": "1313994339", "lib/py/webnotes/utils/email_lib/__init__.py": "1311752687", "lib/conf/conf.py": "1314099127", "lib/js/wn/history.js": "1313759392", "lib/py/webnotes/utils/email_lib/send.py": "1311752687", "lib/js/legacy/webpage/uploader.js": "1313057744", "lib/js/legacy/utils/handler.js": "1315227079", "lib/py/webnotes/utils/file_manager.py": "1313060641", "lib/js/legacy/wn/widgets/listing.js": "1311752688", "lib/py/webnotes/widgets/page_body.py": "1311752687", "lib/js/legacy/jquery/jquery.jqplot.min.js": "1313994339", "lib/js/legacy/wnf.compressed.js": "1315293232", "lib/css/layout.css": "1313603562", "lib/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png": "1311752687", "lib/js/legacy/widgets/layout.js": "1311752688", "lib/py/webnotes/session_cache.py": "1312259967", "lib/js/legacy/widgets/form/form_grid.js": "1315203426", "lib/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png": "1311752687", "lib/js/legacy/utils/msgprint.js": "1311752688", "lib/js/legacy/webpage/page.js": "1315203426", "lib/py/webnotes/model/utils.py": "1315203426", "lib/js/lib/superfish/images/arrows-ffffff.png": "1215426588", "lib/js/legacy/wn/widgets/page_sidebar.js": "1311752688", "lib/js/legacy/model/doclist.js": "1311752688", "lib/js/lib/history/history.html4.js": "1310718903", "lib/js/core.min.js": "1315225602", "lib/css/legacy/listing.css": "1311752687", "lib/py/watch.py": "1314101731", "lib/py/webnotes/widgets/search.py": "1315203426", "lib/js/legacy/webpage/spinner.js": "1311752688", "lib/js/legacy/widgets/listing.js": "1311752688", "lib/py/webnotes/model/sql_sync.py": "1311752687", "lib/js/legacy/build.json": "1315211061", "lib/js/legacy/widgets/tags.js": "1311752688", "lib/js/legacy/utils/printElement.js": "1311752688", "templates/index.html": "1315223202", "lib/py/webnotes/model/doc.py": "1312259967", "lib/css/legacy/bw-icons.css": "1311752687", "lib/images/ui/vote_down.gif": "1311752688", "lib/js/legacy/webpage/error_console.js": "1311752688", "lib/js/legacy/utils/shortcut.js": "1311752688", "lib/js/legacy/widgets/form/form_fields.js": "1315203426", "lib/conf/_conf.py": "1314099136", "lib/css/legacy/sidebar.css": "1311752687", "lib/py/webnotes/utils/email_lib/html2text.py": "1311752687", "lib/py/webnotes/utils/archive.py": "1311752687", "lib/py/.user.py.swp": "1314350551", "lib/js/legacy/widgets/print_query.js": "1311752688", "lib/js/legacy/widgets/form/form_comments.js": "1311752688", "lib/js/legacy/widgets/report_builder/datatable.js": "1311752688", "lib/py/webnotes/utils/transfer.py": "1312259967", "lib/py/webnotes/install_lib/install.py": "1313994313", "lib/py/build/__init__.py": "1315223094", "lib/js/legacy/wn/widgets/dialog.js": "1315293231", "lib/css/legacy/images/ui-icons_cd0a0a_256x240.png": "1311752687", "lib/js/legacy/wn/widgets/form/comments.js": "1311752688", "config/conf.py": "1315213903", "lib/js/core.js": "1314786336", "lib/js/legacy/utils/datetime.js": "1311752688", "lib/py/webnotes/model/doclist.py": "1315203426", "lib/py/webnotes/widgets/form.py": "1313468805", "lib/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png": "1311752687", "handler.cgi": "1315226068", "lib/js/legacy/widgets/report_builder/report_builder.js": "1315203426", "lib/py/webnotes/tests.py": "1311752687", "lib/py/webnotes/utils/encrypt.py": "1311752687", "lib/js/legacy/wn/page_layout.js": "1311752688", "lib/images/icons/close.gif": "1311752688", "lib/py/webnotes/multi_tenant/setup.py": "1311752687", "lib/js/lib/superfish/superfish.min.js": "1315222973", "lib/images/ui/button-load.gif": "1311752688", "lib/js/legacy/model/local_data.js": "1311752688", "lib/css/legacy/tabs.css": "1311752687", "lib/py/webnotes/widgets/auto_master.py": "1311752687", "favicon.ico": "1311154093", "lib/js/wn/assets.js": "1315225379", "lib/css/base.css": "1314774281", "lib/py/webnotes/modules/export_module.py": "1312259967", "lib/py/webnotes/modules/patch.py": "1315228273", "lib/py/webnotes/utils/cache.py": "1311752687", "lib/py/webnotes/handler.py": "1313994313", "lib/js/legacy/widgets/form/form_header.js": "1311752688", "lib/js/legacy/wn/widgets/footer.js": "1311752688", "lib/py/__init__.py": "1313570887", "lib/py/webnotes/db.py": "1315203426", "lib/py/webnotes/model/triggers.py": "1311752687", "lib/js/legacy/wn/widgets/form/attachments.js": "1313060641", "lib/css/legacy/build.json": "1315211094", "lib/js/legacy/widgets/form/clientscriptAPI.js": "1313994313", "lib/py/webnotes/model/__init__.py": "1315203426", "lib/js/legacy/webpage/freeze_page.js": "1315292773", "config/_timestamps.js": "1315293243", "lib/py/webnotes/widgets/menus.py": "1311752687", "lib/js/legacy/form.compressed.js": "1315222973", "lib/js/lib/superfish/make_superfish.js": "1313759992", "lib/js/wn/dom.js": "1315225600", "lib/js/legacy/widgets/form/attachments.js": "1315219428", "lib/py/webnotes/utils/jslib/jsnamespace.py": "1313468805", "lib/py/webnotes/utils/nestedset.py": "1313475893", "lib/css/legacy/images/ui-icons_888888_256x240.png": "1311752687", "lib/py/webnotes/widgets/todo.py": "1311752687", "lib/py/.common.py.swp": "1314349963", "erpnext_version.py": "1315208679", "master.sql.gz": "1315208679", "lib/css/legacy/forms.css": "1311752687", "README.md": "1315290621", "lib/js/lib/superfish/hoverIntent.js": "1201705878", "lib/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png": "1311752687", "lib/js/legacy/widgets/form/grid.js": "1315203426", "lib/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png": "1311752687", "lib/js/legacy/widgets/tree.js": "1311752688", "lib/__init__.py": "1314099524", "lib/js/legacy/widgets/menu.js": "1311752688", "lib/images/icons/plus.gif": "1311752688", "lib/conf/__init__.py": "1313737596", "lib/js/legacy/widgets/report_builder/bargraph.js": "1311752688", "lib/js/legacy/wn/widgets/follow.js": "1311752688", "lib/js/legacy/widgets/calendar.js": "1311752688", "lib/js/legacy/widgets/form/print_format.js": "1311752688", "lib/css/legacy/messages.css": "1311752687", "lib/images/icons/minus.gif": "1311752688", "lib/js/wn/provide.js": "1315222568", "lib/py/webnotes/widgets/tags.py": "1315203426", "lib/js/legacy/wn/widgets/form/sidebar.js": "1311752688", "lib/py/build/nav.py": "1315218444", "lib/js/lib/history/history.min.js": "1315221478", "lib/py/webnotes/modules/__init__.py": "1315229448", "lib/py/common.py": "1314349955", "lib/js/wn/page.js": "1314106765", "lib/js/legacy/app.js": "1315227200", "lib/py/tests.py": "1313132642", "lib/js/legacy/widgets/form/form.js": "1315203426", "lib/py/webnotes/modules/module_manager.py": "1312259967", "lib/py/webnotes/auth.py": "1315203426", "INSTALL": "1310447332", "lib/js/lib/json2.js": "1313659690", "lib/js/legacy/utils/dom.js": "1315292658", "lib/js/legacy/webpage/search.js": "1315203426", "lib/.temp.py.swp": "1315228798", "lib/py/webnotes/modules/utils.py": "1312259967", "lib/js/legacy/wn/modules.js": "1311752688", "lib/py/webnotes/utils/email_lib/receive.py": "1315203426", "lib/js/legacy/webpage/about.js": "1311752688", "lib/py/webnotes/utils/jslib/jsdependency.py": "1313468805", "lib/css/legacy/grid.css": "1311752687", "lib/py/webnotes/widgets/page.py": "1314701195", "lib/css/legacy/autosuggest.css": "1311752687", "lib/py/webnotes/utils/jslib/jsmin.py": "1313468805", "lib/py/webnotes/model/modules.py": "1311752687", "lib/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png": "1311752687", "todo.md": "1315293241", "lib/py/build/project.py": "1315219863", "lib/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png": "1311752687", "lib/js/legacy/jquery/jquery-ui.min.js": "1315220242", "lib/css/legacy/body.css": "1311752687", "lib/temp.py": "1315228787", "lib/py/webnotes/defs.py": "1315227569", "lib/js/legacy/utils/json.js": "1311752688", "lib/py/webnotes/model/import_docs.py": "1313475893", "lib/py/build/__main__.py": "1315217545", "lib/js/legacy/webpage/body.js": "1311752688", "lib/js/build.json": "1315222659", "lib/js/legacy/webpage/wntoolbar.js": "1313994313", "lib/js/legacy/webpage/docbrowser.js": "1311752688", "lib/py/build/markdown2_extn.py": "1315217098", "lib/py/build/minify.py": "1313583868", "lib/css/legacy/images/ui-icons_222222_256x240.png": "1311752687", "lib/js/legacy/report.compressed.js": "1315222973", "module-icons.png": "1310447333", "lib/py/webnotes/__init__.py": "1315203426", "lib/py/webnotes/utils/scheduler.py": "1315203442", "lib/js/legacy/widgets/form/email.js": "1311752688", "lib/py/webnotes/widgets/event.py": "1311752687", "lib/css/legacy/menus.css": "1311752687", "lib/js/lib/superfish/css/superfish.css": "1313760672", "lib/py/webnotes/multi_tenant/__init__.py": "1311752687", "lib/js/lib/jquery.min.js": "1313062880", "lib/js/lib/history/history.js": "1310718903", "lib/py/webnotes/multi_tenant/query_parser.py": "1311752687", "lib/js/wn/require.js": "1313755415", "lib/css/legacy/dialog.css": "1311752687", "lib/js/lib/superfish/superfish.js": "1221094330", "lib/js/legacy/widgets/report_builder/calculator.js": "1315219438", "lib/py/webnotes/model/meta.py": "1311752687"} \ No newline at end of file diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index cf9774bffe0..876c5125a18 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -291,12 +291,12 @@ def execute(patch_no): elif patch_no == 353: reload_doc('hr', 'doctype', 'salary_manager') elif patch_no == 354: - reload_doc('setup', 'doctype','feature_setup') + reload_doc('setup', 'doctype','features_setup') reload_doc('stock','doctype','item') sql("update tabDocField set label='Produced Qty',description='Updated after finished goods are transferred to FG Warehouse through Stock Entry' where parent='Production Order' and fieldname='produced_qty'") rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null") from webnotes.model.doc import Document - m = Document('Features Setup') + m = Document('Features Setup', 'Features Setup') for d in rs: m.fields[d[0]] = 1 m.save() diff --git a/erpnext/startup/__init__.py b/erpnext/startup/__init__.py index bdbde167ae3..cea033b4fcd 100644 --- a/erpnext/startup/__init__.py +++ b/erpnext/startup/__init__.py @@ -2,15 +2,6 @@ add_in_head = """ """ \ No newline at end of file diff --git a/erpnext/startup/startup.css b/erpnext/startup/startup.css index 67393aac08e..5887b8d5e6b 100644 --- a/erpnext/startup/startup.css +++ b/erpnext/startup/startup.css @@ -1,3 +1,13 @@ +h1, h2, h3, h4 { + font-family: Tahoma, Sans Serif; + font-weight: bold; +} + +body, span, div, td, input, textarea, button, select { + font-family: Verdana, Arial, Sans Serif; + font-size: 12px; +} + body { background-color: #e2e2e2; } diff --git a/favicon.ico b/favicon.ico index 8b2106b847e3a8bba936389cf3249605270ea5e5..794eaaf00a9b1ae997877153523175563332969a 100644 GIT binary patch literal 318 zcmY+6txf|$5XXOaJyKE8Gp#}NSViiZdQ!1Tk!O|=av`Y#JP*(WL3JOYPtXK8hJvlX zAV@#~!SG?~jv1~3b~693nOTUm(lo{1egs`(ZA&ukh(r;lzgR=PUF+TQox#Z`2ao4e zs|i{8O8?=F>i(4KZi2t~VsQMe^E39!mp{LlOni|Wjc3J?ibL;1Cy-ov2u0rXBiIS~ zSgi)ZtOn~X2bY;|$(D!CnHPyIXvs3RKxBz?PDCJ{FU+cNH%glxJT>9A0aq)yeunl3 R^fv$7GMm|s?b?mq{s0BbL9GA) literal 1406 zcmeH{u};G<5QcvP39(z(NeC<~VJl4Z1(l9hIx;cjEZg_p{g!<<7!Wk#7~c8;utQ#(CWmsG0uim=DfeH#a}GDRZ#X`m zVen;f@c4qgVgh&HL+9iJb~?n-_za!yJKV!5hEEoG@r;2T;c!34ZZXB>>o+bwuVF`5 zaCbe@_m}t7UfqGZ1OK)IX4QZwYlNW=^hN?0gDlL*w2rmb#8HEY{*!gWATfq;tE?`e zi07(Uk{IK~i--=Gt2DrQrIsuubF&Jx ERPNext - @@ -762,6 +775,6 @@ wn.require("js/app.js");
- + \ No newline at end of file diff --git a/js/app.js b/js/app.js index a7fbdadaa42..a2ca08dcd81 100644 --- a/js/app.js +++ b/js/app.js @@ -1,12 +1,19 @@ -wn.require('lib/js/lib/jquery.min.js') +wn.require('lib/js/lib/jquery.min.js'); +wn.require('lib/js/wn/ui/status_bar.js'); +wn.sb = new wn.ui.StatusBar(); +wn.sb.set_value(15); // for datepicker wn.require('lib/js/legacy/jquery/jquery-ui.min.js') +wn.sb.set_value(25); wn.require('lib/js/legacy/wnf.compressed.js'); +wn.sb.set_value(60); + wn.require('lib/js/legacy/form.compressed.js'); wn.require('lib/js/legacy/report.compressed.js'); wn.require('lib/css/legacy/default.css'); +wn.sb.set_value(80); $(document).bind('ready', function() { startup(); diff --git a/templates/index.html b/templates/index.html index ac4f04b3105..7d8ac038688 100644 --- a/templates/index.html +++ b/templates/index.html @@ -17,6 +17,6 @@
{{ content }}
- + \ No newline at end of file diff --git a/todo.md b/todo.md index 036cf8edf98..e20d7585702 100644 --- a/todo.md +++ b/todo.md @@ -1,7 +1,11 @@ -- icons - msgprint / toolbar +x icons - msgprint / toolbar +x history integration + +- loading bar +- release + - breakup - form - breakup - report -- loading bar - new buttons - use wn.require to load forms, reports - use wn.xmlhttp From d1ae089c9412850a727efd9f98dd05993b705c43 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 6 Sep 2011 16:40:11 +0530 Subject: [PATCH 08/84] handler.cgi is index.cgi --- config/_timestamps.js | 2 +- handler.cgi => index.cgi | 0 index.html | 815 +++------------------------------------ 3 files changed, 57 insertions(+), 760 deletions(-) rename handler.cgi => index.cgi (100%) diff --git a/config/_timestamps.js b/config/_timestamps.js index 6cbbe6dc9bd..b37ef320aad 100644 --- a/config/_timestamps.js +++ b/config/_timestamps.js @@ -1 +1 @@ -{"lib/py/webnotes/profile.py": "1313994313", "lib/js/legacy/widgets/autosuggest.js": "1315219413", "lib/js/lib/superfish/images/shadow.png": "1215861254", "lib/css/legacy/calendar.css": "1311752687", "lib/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png": "1311752687", "lib/py/webnotes/utils/jslib/jstimestamp.py": "1313468805", "lib/js/legacy/widgets/list_selector.js": "1311752688", "lib/py/webnotes/install_lib/__init__.py": "1311752687", "js/app.js": "1315303458", "lib/js/legacy/wn/widgets/doc_column_view.js": "1311752688", "lib/images/icons/folder.gif": "1311752688", "lib/js/legacy/utils/rsh.compressed.js": "1311752688", "lib/py/webnotes/install_lib/db_init.py": "1311752687", "lib/py/webnotes/widgets/follow.py": "1311752687", "lib/py/webnotes/utils/backups.py": "1315203426", "lib/js/legacy/widgets/form/fields.js": "1311752688", "lib/js/legacy/widgets/export_query.js": "1311752688", "lib/css/legacy/default.css": "1315301217", "lib/js/lib/history/history.adapter.jquery.js": "1310718903", "lib/js/lib/superfish/css/superfish-vertical.css": "1215403280", "lib/js/legacy/user.js": "1311752688", "lib/css/legacy/forms.css": "1311752687", "lib/js/wn/xmlhttp.js": "1313753523", "lib/js/legacy/webpage/loaders.js": "1311752688", "lib/css/legacy/images/ui-icons_454545_256x240.png": "1311752687", "lib/py/webnotes/model/db_schema.py": "1313994313", "lib/py/webnotes/defs_template.py": "1312433457", "lib/css/legacy/user.css": "1311752687", "lib/js/legacy/widgets/form/form_container.js": "1311752688", "lib/conf/apache.conf": "1313640120", "lib/py/webnotes/model/doctype.py": "1313475893", "lib/py/webnotes/tests/__init__.py": "1312259967", "lib/js/legacy/webpage/page_header.js": "1311752688", "lib/css/legacy/report.css": "1311752687", "index.html": "1315304333", "lib/js/legacy/utils/browser_detect.js": "1311752688", "lib/js/legacy/globals.js": "1315296043", "lib/py/webnotes/model/code.py": "1312259967", "lib/README.md": "1314358927", "lib/css/skeleton.css": "1313603562", "lib/js/legacy/wn/widgets/filters.js": "1311752688", "lib/py/webnotes/widgets/query_builder.py": "1315203426", "lib/py/build/timestamps.py": "1315303062", "lib/images/ui/spinner.gif": "1311752688", "lib/py/webnotes/utils/email_lib/form_email.py": "1311752687", "lib/js/wn/ui/status_bar.js": "1315303532", "lib/js/legacy/widgets/dialog.js": "1311752688", "lib/py/webnotes/utils/sitemap.py": "1311752687", "lib/py/webnotes/utils/__init__.py": "1315203426", "lib/css/legacy/wntoolbar.css": "1315293967", "lib/py/webnotes/tests/modules.py": "1312259967", "lib/css/legacy/images/ui-icons_2e83ff_256x240.png": "1311752687", "lib/py/build/bundle.py": "1315223128", "lib/js/legacy/widgets/select.js": "1311752688", "lib/py/webnotes/utils/webservice.py": "1311752687", "lib/images/ui/vote_up.gif": "1311752688", "lib/py/webnotes/widgets/__init__.py": "1311752687", "lib/js/legacy/utils/datatype.js": "1311752688", "lib/js/legacy/webpage/history.js": "1315296616", "lib/conf/Framework.sql": "1311752687", "lib/css/legacy/jqplot.css": "1313994339", "lib/py/webnotes/utils/email_lib/__init__.py": "1311752687", "lib/conf/conf.py": "1314099127", "lib/js/wn/history.js": "1315295933", "lib/py/webnotes/utils/email_lib/send.py": "1311752687", "lib/js/legacy/webpage/uploader.js": "1313057744", "lib/js/legacy/utils/handler.js": "1315227079", "lib/py/webnotes/utils/file_manager.py": "1313060641", "lib/js/legacy/wn/widgets/listing.js": "1311752688", "lib/py/webnotes/widgets/page_body.py": "1311752687", "lib/attribution.md": "1315301200", "lib/js/legacy/jquery/jquery.jqplot.min.js": "1313994339", "images/module-icons.png": "1310447333", "lib/css/layout.css": "1313603562", "lib/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png": "1311752687", "lib/js/legacy/widgets/layout.js": "1311752688", "lib/py/webnotes/session_cache.py": "1312259967", "lib/js/legacy/widgets/form/form_grid.js": "1315203426", "lib/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png": "1311752687", "lib/js/legacy/utils/msgprint.js": "1311752688", "lib/js/legacy/webpage/page.js": "1315203426", "lib/py/webnotes/model/utils.py": "1315203426", "lib/js/lib/superfish/images/arrows-ffffff.png": "1215426588", "lib/js/legacy/wn/widgets/page_sidebar.js": "1311752688", "lib/js/legacy/model/doclist.js": "1311752688", "lib/js/lib/history/history.html4.js": "1310718903", "lib/js/core.min.js": "1315304330", "lib/css/legacy/listing.css": "1311752687", "lib/py/watch.py": "1314101731", "lib/py/webnotes/widgets/search.py": "1315203426", "lib/js/legacy/webpage/spinner.js": "1311752688", "lib/js/legacy/widgets/listing.js": "1311752688", "lib/py/webnotes/model/sql_sync.py": "1311752687", "lib/py/webnotes/widgets/auto_master.py": "1311752687", "lib/js/legacy/build.json": "1315296252", "lib/js/legacy/widgets/tags.js": "1311752688", "lib/js/legacy/utils/printElement.js": "1311752688", "templates/index.html": "1315304305", "lib/py/webnotes/model/doc.py": "1312259967", "lib/css/legacy/bw-icons.css": "1315293977", "lib/images/ui/vote_down.gif": "1311752688", "lib/js/legacy/webpage/error_console.js": "1311752688", "lib/js/legacy/utils/shortcut.js": "1311752688", "lib/js/legacy/widgets/form/form_fields.js": "1315203426", "lib/conf/_conf.py": "1314099136", "lib/css/legacy/sidebar.css": "1311752687", "lib/py/webnotes/utils/email_lib/html2text.py": "1311752687", "lib/py/webnotes/utils/archive.py": "1311752687", "lib/py/.user.py.swp": "1314350551", "lib/js/legacy/widgets/print_query.js": "1311752688", "lib/js/legacy/widgets/form/form_comments.js": "1311752688", "lib/js/legacy/widgets/report_builder/datatable.js": "1311752688", "lib/py/webnotes/utils/transfer.py": "1312259967", "lib/py/webnotes/install_lib/install.py": "1313994313", "lib/py/build/__init__.py": "1315223094", "lib/js/legacy/wn/widgets/dialog.js": "1315293231", "lib/css/legacy/images/ui-icons_cd0a0a_256x240.png": "1311752687", "lib/js/legacy/wn/widgets/form/comments.js": "1311752688", "config/conf.py": "1315213903", "lib/js/core.js": "1315304328", "lib/js/legacy/utils/datetime.js": "1311752688", "lib/py/webnotes/model/doclist.py": "1315203426", "lib/py/webnotes/widgets/form.py": "1313468805", "lib/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png": "1311752687", "handler.cgi": "1315226068", "lib/js/legacy/widgets/report_builder/report_builder.js": "1315203426", "lib/py/webnotes/tests.py": "1311752687", "lib/py/webnotes/utils/encrypt.py": "1311752687", "lib/js/legacy/wn/page_layout.js": "1311752688", "lib/images/icons/close.gif": "1311752688", "lib/py/webnotes/multi_tenant/setup.py": "1311752687", "lib/js/lib/superfish/superfish.min.js": "1315296671", "lib/images/ui/button-load.gif": "1311752688", "lib/js/legacy/model/local_data.js": "1311752688", "lib/py/build/minify.py": "1313583868", "lib/css/legacy/tabs.css": "1311752687", "lib/py/webnotes/auth.py": "1315203426", "favicon.ico": "1311154093", "lib/js/wn/assets.js": "1315225379", "lib/css/base.css": "1314774281", "lib/py/webnotes/modules/export_module.py": "1312259967", "lib/py/webnotes/modules/patch.py": "1315228273", "lib/py/webnotes/utils/cache.py": "1311752687", "lib/py/webnotes/handler.py": "1313994313", "lib/js/legacy/widgets/form/form_header.js": "1311752688", "lib/js/legacy/wn/widgets/footer.js": "1311752688", "lib/py/__init__.py": "1313570887", "lib/py/webnotes/db.py": "1315203426", "lib/py/webnotes/model/triggers.py": "1311752687", "lib/js/legacy/wn/widgets/form/attachments.js": "1313060641", "lib/css/legacy/build.json": "1315211094", "lib/js/legacy/widgets/form/clientscriptAPI.js": "1313994313", "lib/py/webnotes/model/__init__.py": "1315203426", "lib/js/legacy/webpage/freeze_page.js": "1315292773", "data/master.sql.gz": "1315208679", "lib/py/webnotes/model/meta.py": "1311752687", "lib/py/webnotes/widgets/menus.py": "1311752687", "lib/js/legacy/form.compressed.js": "1315301217", "lib/js/lib/superfish/make_superfish.js": "1313759992", "lib/js/wn/dom.js": "1315303752", "lib/js/legacy/widgets/form/attachments.js": "1315219428", "lib/py/webnotes/utils/jslib/jsnamespace.py": "1313468805", "lib/py/webnotes/utils/nestedset.py": "1313475893", "lib/css/legacy/images/ui-icons_888888_256x240.png": "1311752687", "lib/py/webnotes/widgets/todo.py": "1311752687", "lib/css/ui/status_bar.css": "1315302989", "lib/css/legacy/doc_column_view.css": "1311752687", "lib/css/legacy/jquery-ui.css": "1311752687", "README.md": "1315290621", "lib/js/lib/superfish/hoverIntent.js": "1201705878", "lib/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png": "1311752687", "lib/js/legacy/widgets/form/grid.js": "1315203426", "lib/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png": "1311752687", "lib/js/legacy/widgets/tree.js": "1315294071", "lib/__init__.py": "1314099524", "lib/js/legacy/widgets/menu.js": "1311752688", "lib/images/icons/plus.gif": "1311752688", "lib/conf/__init__.py": "1313737596", "lib/js/legacy/widgets/report_builder/bargraph.js": "1311752688", "lib/js/legacy/wn/widgets/follow.js": "1311752688", "lib/js/legacy/widgets/calendar.js": "1311752688", "lib/js/legacy/widgets/form/print_format.js": "1311752688", "lib/css/legacy/messages.css": "1311752687", "lib/images/icons/minus.gif": "1311752688", "lib/js/wn/provide.js": "1315299987", "lib/images/icons/wntoolbar-icons.png": "1311752688", "lib/py/webnotes/widgets/tags.py": "1315203426", "lib/js/legacy/wn/widgets/form/sidebar.js": "1311752688", "lib/py/build/nav.py": "1315218444", "lib/js/lib/history/history.min.js": "1315296053", "lib/py/webnotes/modules/__init__.py": "1315229448", "lib/py/common.py": "1314349955", "lib/js/wn/page.js": "1315295722", "lib/js/legacy/app.js": "1315303360", "lib/py/tests.py": "1313132642", "lib/js/legacy/widgets/form/form.js": "1315203426", "lib/py/webnotes/modules/module_manager.py": "1312259967", "lib/py/.common.py.swp": "1314349963", "INSTALL": "1310447332", "lib/images/icons/icons.png": "1311752688", "lib/js/lib/json2.js": "1313659690", "lib/js/legacy/utils/dom.js": "1315292658", "lib/js/legacy/webpage/search.js": "1315203426", "lib/js/legacy/widgets/tabbedpage.js": "1311752688", "lib/py/webnotes/modules/utils.py": "1312259967", "lib/js/legacy/wnf.compressed.js": "1315303371", "lib/js/legacy/wn/modules.js": "1311752688", "lib/py/webnotes/utils/email_lib/receive.py": "1315203426", "lib/js/legacy/webpage/about.js": "1311752688", "lib/py/webnotes/utils/jslib/jsdependency.py": "1313468805", "lib/css/legacy/grid.css": "1311752687", "lib/py/webnotes/widgets/page.py": "1314701195", "lib/css/legacy/autosuggest.css": "1311752687", "lib/py/webnotes/utils/jslib/jsmin.py": "1313468805", "lib/py/webnotes/model/modules.py": "1311752687", "lib/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png": "1311752687", "todo.md": "1315297716", "lib/py/build/project.py": "1315301555", "lib/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png": "1311752687", "lib/js/legacy/jquery/jquery-ui.min.js": "1315220242", "lib/css/legacy/body.css": "1311752687", "lib/temp.py": "1315228787", "lib/py/webnotes/defs.py": "1315227569", "lib/js/legacy/utils/json.js": "1311752688", "lib/py/webnotes/model/import_docs.py": "1313475893", "lib/py/build/__main__.py": "1315217545", "lib/js/legacy/webpage/body.js": "1311752688", "lib/js/build.json": "1315296571", "lib/js/legacy/webpage/wntoolbar.js": "1315297897", "lib/js/legacy/webpage/docbrowser.js": "1311752688", "lib/py/build/markdown2_extn.py": "1315217098", "lib/css/ui/overlay.css": "1315302325", "lib/css/legacy/images/ui-icons_222222_256x240.png": "1311752687", "lib/js/legacy/report.compressed.js": "1315301217", "lib/py/webnotes/__init__.py": "1315203426", "lib/py/webnotes/utils/scheduler.py": "1315203442", "lib/js/legacy/widgets/form/email.js": "1311752688", "lib/py/webnotes/widgets/event.py": "1311752687", "lib/css/legacy/menus.css": "1311752687", "lib/js/lib/superfish/css/superfish.css": "1313760672", "lib/py/webnotes/multi_tenant/__init__.py": "1311752687", "lib/js/lib/jquery.min.js": "1313062880", "lib/js/lib/history/history.js": "1310718903", "lib/py/webnotes/multi_tenant/query_parser.py": "1311752687", "lib/js/wn/require.js": "1313755415", "lib/js/wn/ui/overlay.js": "1315302025", "lib/css/legacy/dialog.css": "1311752687", "lib/js/lib/superfish/superfish.js": "1221094330", "lib/js/legacy/widgets/report_builder/calculator.js": "1315219438"} \ No newline at end of file +{"lib/py/webnotes/profile.py": "1313994313", "lib/js/legacy/widgets/autosuggest.js": "1315219413", "lib/js/lib/superfish/images/shadow.png": "1215861254", "lib/css/legacy/calendar.css": "1311752687", "lib/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png": "1311752687", "lib/py/webnotes/utils/jslib/jstimestamp.py": "1313468805", "lib/js/legacy/widgets/list_selector.js": "1311752688", "lib/py/webnotes/install_lib/__init__.py": "1311752687", "js/app.js": "1315303458", "lib/js/legacy/wn/widgets/doc_column_view.js": "1311752688", "lib/images/icons/folder.gif": "1311752688", "lib/js/legacy/utils/rsh.compressed.js": "1311752688", "lib/py/webnotes/install_lib/db_init.py": "1311752687", "lib/py/webnotes/widgets/follow.py": "1311752687", "lib/py/webnotes/utils/backups.py": "1315203426", "lib/js/legacy/widgets/form/fields.js": "1311752688", "lib/js/legacy/widgets/export_query.js": "1311752688", "lib/css/legacy/default.css": "1315307277", "lib/js/lib/history/history.adapter.jquery.js": "1310718903", "lib/js/lib/superfish/css/superfish-vertical.css": "1215403280", "lib/js/legacy/user.js": "1311752688", "lib/css/legacy/forms.css": "1311752687", "lib/js/wn/xmlhttp.js": "1313753523", "lib/js/legacy/webpage/loaders.js": "1311752688", "lib/css/legacy/images/ui-icons_454545_256x240.png": "1311752687", "lib/py/webnotes/model/db_schema.py": "1313994313", "lib/py/webnotes/defs_template.py": "1312433457", "lib/css/legacy/user.css": "1311752687", "lib/js/legacy/widgets/form/form_container.js": "1311752688", "lib/conf/apache.conf": "1313640120", "lib/py/webnotes/model/doctype.py": "1313475893", "lib/py/webnotes/tests/__init__.py": "1312259967", "lib/js/legacy/webpage/page_header.js": "1311752688", "lib/css/legacy/report.css": "1311752687", "lib/css/legacy/autosuggest.css": "1311752687", "lib/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png": "1311752687", "lib/js/legacy/utils/browser_detect.js": "1311752688", "lib/js/legacy/globals.js": "1315296043", "lib/py/webnotes/model/code.py": "1312259967", "lib/README.md": "1314358927", "lib/css/skeleton.css": "1313603562", "lib/js/legacy/wn/widgets/filters.js": "1311752688", "lib/py/webnotes/widgets/query_builder.py": "1315203426", "lib/py/build/timestamps.py": "1315303062", "lib/images/ui/spinner.gif": "1311752688", "lib/py/webnotes/utils/email_lib/form_email.py": "1311752687", "lib/js/wn/ui/status_bar.js": "1315303532", "lib/js/legacy/widgets/dialog.js": "1311752688", "lib/py/webnotes/utils/sitemap.py": "1311752687", "lib/py/webnotes/utils/__init__.py": "1315203426", "lib/css/legacy/wntoolbar.css": "1315293967", "lib/py/webnotes/tests/modules.py": "1312259967", "lib/css/legacy/images/ui-icons_2e83ff_256x240.png": "1311752687", "lib/py/build/bundle.py": "1315223128", "lib/js/legacy/widgets/select.js": "1311752688", "lib/py/webnotes/utils/webservice.py": "1311752687", "lib/images/ui/vote_up.gif": "1311752688", "lib/py/webnotes/widgets/__init__.py": "1311752687", "lib/js/legacy/utils/datatype.js": "1311752688", "lib/js/legacy/webpage/history.js": "1315296616", "lib/conf/Framework.sql": "1311752687", "lib/css/legacy/jqplot.css": "1313994339", "lib/py/webnotes/utils/email_lib/__init__.py": "1311752687", "lib/conf/conf.py": "1314099127", "lib/js/wn/history.js": "1315295933", "lib/py/webnotes/utils/email_lib/send.py": "1311752687", "lib/js/legacy/webpage/uploader.js": "1313057744", "lib/js/legacy/utils/handler.js": "1315307184", "lib/py/webnotes/utils/file_manager.py": "1313060641", "lib/js/legacy/wn/widgets/listing.js": "1311752688", "lib/py/webnotes/widgets/page_body.py": "1311752687", "lib/attribution.md": "1315301200", "lib/js/legacy/jquery/jquery.jqplot.min.js": "1313994339", "images/module-icons.png": "1310447333", "lib/css/layout.css": "1313603562", "lib/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png": "1311752687", "lib/js/legacy/widgets/layout.js": "1311752688", "lib/py/webnotes/session_cache.py": "1312259967", "lib/js/legacy/widgets/form/form_grid.js": "1315203426", "lib/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png": "1311752687", "lib/js/legacy/utils/msgprint.js": "1311752688", "lib/js/legacy/webpage/page.js": "1315203426", "lib/py/webnotes/model/utils.py": "1315203426", "lib/js/lib/superfish/images/arrows-ffffff.png": "1215426588", "lib/js/legacy/wn/widgets/page_sidebar.js": "1311752688", "lib/js/legacy/model/doclist.js": "1311752688", "lib/js/lib/history/history.html4.js": "1310718903", "lib/js/core.min.js": "1315307277", "lib/css/legacy/listing.css": "1311752687", "lib/py/watch.py": "1314101731", "lib/py/webnotes/widgets/search.py": "1315203426", "lib/js/legacy/webpage/spinner.js": "1311752688", "lib/js/legacy/widgets/listing.js": "1311752688", "lib/py/webnotes/model/sql_sync.py": "1311752687", "lib/py/webnotes/widgets/auto_master.py": "1311752687", "lib/js/legacy/build.json": "1315296252", "lib/js/legacy/widgets/tags.js": "1311752688", "lib/js/legacy/utils/printElement.js": "1311752688", "templates/index.html": "1315304305", "lib/py/webnotes/model/doc.py": "1312259967", "lib/css/legacy/bw-icons.css": "1315293977", "lib/images/ui/vote_down.gif": "1311752688", "lib/js/legacy/webpage/error_console.js": "1311752688", "lib/js/legacy/utils/shortcut.js": "1311752688", "lib/js/legacy/widgets/form/form_fields.js": "1315203426", "lib/conf/_conf.py": "1314099136", "lib/css/legacy/sidebar.css": "1311752687", "lib/py/webnotes/utils/email_lib/html2text.py": "1311752687", "lib/py/webnotes/utils/archive.py": "1311752687", "lib/py/.user.py.swp": "1314350551", "lib/js/legacy/widgets/print_query.js": "1311752688", "lib/js/legacy/widgets/form/form_comments.js": "1311752688", "lib/js/legacy/widgets/report_builder/datatable.js": "1311752688", "lib/py/webnotes/utils/transfer.py": "1312259967", "lib/py/webnotes/install_lib/install.py": "1313994313", "lib/py/build/__init__.py": "1315307270", "lib/js/legacy/wn/widgets/dialog.js": "1315293231", "lib/css/legacy/images/ui-icons_cd0a0a_256x240.png": "1311752687", "lib/js/legacy/wn/widgets/form/comments.js": "1311752688", "config/conf.py": "1315213903", "lib/js/core.js": "1315304328", "lib/js/legacy/utils/datetime.js": "1311752688", "lib/py/webnotes/model/doclist.py": "1315203426", "lib/py/webnotes/widgets/form.py": "1313468805", "lib/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png": "1311752687", "lib/js/legacy/widgets/report_builder/report_builder.js": "1315203426", "lib/py/webnotes/tests.py": "1311752687", "lib/py/webnotes/utils/encrypt.py": "1311752687", "lib/js/legacy/wn/page_layout.js": "1311752688", "lib/images/icons/close.gif": "1311752688", "lib/py/webnotes/multi_tenant/setup.py": "1311752687", "lib/js/lib/superfish/superfish.min.js": "1315307277", "lib/images/ui/button-load.gif": "1311752688", "lib/js/legacy/model/local_data.js": "1311752688", "lib/py/build/minify.py": "1313583868", "lib/css/legacy/tabs.css": "1311752687", "lib/py/webnotes/auth.py": "1315203426", "favicon.ico": "1311154093", "lib/js/wn/assets.js": "1315225379", "lib/css/base.css": "1314774281", "lib/py/webnotes/modules/export_module.py": "1312259967", "lib/py/webnotes/modules/patch.py": "1315228273", "lib/py/webnotes/utils/cache.py": "1311752687", "lib/py/webnotes/handler.py": "1313994313", "lib/js/legacy/widgets/form/form_header.js": "1311752688", "lib/js/legacy/wn/widgets/footer.js": "1311752688", "lib/py/__init__.py": "1313570887", "lib/py/webnotes/db.py": "1315203426", "lib/py/webnotes/model/triggers.py": "1311752687", "lib/js/legacy/wn/widgets/form/attachments.js": "1313060641", "lib/css/legacy/build.json": "1315211094", "lib/js/legacy/widgets/form/clientscriptAPI.js": "1313994313", "lib/py/webnotes/model/__init__.py": "1315203426", "lib/js/legacy/webpage/freeze_page.js": "1315292773", "data/master.sql.gz": "1315208679", "lib/py/webnotes/model/meta.py": "1311752687", "lib/py/webnotes/widgets/menus.py": "1311752687", "lib/js/legacy/form.compressed.js": "1315307278", "lib/js/lib/superfish/make_superfish.js": "1313759992", "lib/js/wn/dom.js": "1315303752", "lib/js/legacy/widgets/form/attachments.js": "1315219428", "lib/py/webnotes/utils/jslib/jsnamespace.py": "1313468805", "lib/py/webnotes/utils/nestedset.py": "1313475893", "lib/css/legacy/images/ui-icons_888888_256x240.png": "1311752687", "lib/py/webnotes/widgets/todo.py": "1311752687", "lib/css/ui/status_bar.css": "1315302989", "lib/css/legacy/doc_column_view.css": "1311752687", "lib/css/legacy/jquery-ui.css": "1311752687", "README.md": "1315290621", "lib/js/lib/superfish/hoverIntent.js": "1201705878", "index.html": "1315307281", "lib/js/legacy/widgets/form/grid.js": "1315203426", "lib/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png": "1311752687", "lib/js/legacy/widgets/tree.js": "1315294071", "lib/__init__.py": "1314099524", "lib/js/legacy/widgets/menu.js": "1311752688", "lib/images/icons/plus.gif": "1311752688", "lib/conf/__init__.py": "1313737596", "lib/js/legacy/widgets/report_builder/bargraph.js": "1311752688", "lib/js/legacy/wn/widgets/follow.js": "1311752688", "lib/js/legacy/widgets/calendar.js": "1311752688", "lib/js/legacy/widgets/form/print_format.js": "1311752688", "lib/css/legacy/messages.css": "1311752687", "lib/images/icons/minus.gif": "1311752688", "lib/js/wn/provide.js": "1315299987", "lib/images/icons/wntoolbar-icons.png": "1311752688", "lib/py/webnotes/widgets/tags.py": "1315203426", "lib/js/legacy/wn/widgets/form/sidebar.js": "1311752688", "lib/py/build/nav.py": "1315218444", "lib/js/lib/history/history.min.js": "1315296053", "lib/py/webnotes/modules/__init__.py": "1315229448", "lib/py/common.py": "1314349955", "lib/js/wn/page.js": "1315295722", "lib/js/legacy/app.js": "1315303360", "lib/py/tests.py": "1313132642", "lib/js/legacy/widgets/form/form.js": "1315203426", "lib/py/webnotes/modules/module_manager.py": "1312259967", "lib/py/.common.py.swp": "1314349963", "INSTALL": "1310447332", "lib/images/icons/icons.png": "1311752688", "lib/js/lib/json2.js": "1313659690", "lib/js/legacy/utils/dom.js": "1315292658", "lib/js/legacy/webpage/search.js": "1315203426", "lib/js/legacy/widgets/tabbedpage.js": "1311752688", "lib/py/webnotes/modules/utils.py": "1312259967", "lib/js/legacy/wnf.compressed.js": "1315307280", "lib/js/legacy/wn/modules.js": "1311752688", "lib/py/webnotes/utils/email_lib/receive.py": "1315203426", "lib/js/legacy/webpage/about.js": "1311752688", "lib/py/webnotes/utils/jslib/jsdependency.py": "1313468805", "lib/css/legacy/grid.css": "1311752687", "lib/py/webnotes/widgets/page.py": "1314701195", "index.cgi": "1315226068", "lib/py/webnotes/utils/jslib/jsmin.py": "1313468805", "lib/py/webnotes/model/modules.py": "1311752687", "lib/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png": "1311752687", "todo.md": "1315297716", "lib/py/build/project.py": "1315301555", "lib/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png": "1311752687", "lib/js/legacy/jquery/jquery-ui.min.js": "1315220242", "lib/css/legacy/body.css": "1311752687", "lib/temp.py": "1315228787", "lib/py/webnotes/defs.py": "1315227569", "lib/js/legacy/utils/json.js": "1311752688", "lib/py/webnotes/model/import_docs.py": "1313475893", "lib/py/build/__main__.py": "1315217545", "lib/js/legacy/webpage/body.js": "1311752688", "lib/js/build.json": "1315296571", "lib/js/legacy/webpage/wntoolbar.js": "1315297897", "lib/js/legacy/webpage/docbrowser.js": "1311752688", "lib/py/build/markdown2_extn.py": "1315217098", "lib/css/ui/overlay.css": "1315302325", "lib/css/legacy/images/ui-icons_222222_256x240.png": "1311752687", "lib/js/legacy/report.compressed.js": "1315307280", "lib/py/webnotes/__init__.py": "1315203426", "lib/py/webnotes/utils/scheduler.py": "1315203442", "lib/js/legacy/widgets/form/email.js": "1311752688", "lib/py/webnotes/widgets/event.py": "1311752687", "lib/css/legacy/menus.css": "1311752687", "lib/js/lib/superfish/css/superfish.css": "1313760672", "lib/py/webnotes/multi_tenant/__init__.py": "1311752687", "lib/js/lib/jquery.min.js": "1313062880", "lib/js/lib/history/history.js": "1310718903", "lib/py/webnotes/multi_tenant/query_parser.py": "1311752687", "lib/js/wn/require.js": "1313755415", "lib/js/wn/ui/overlay.js": "1315302025", "lib/css/legacy/dialog.css": "1311752687", "lib/js/lib/superfish/superfish.js": "1221094330", "lib/js/legacy/widgets/report_builder/calculator.js": "1315219438"} \ No newline at end of file diff --git a/handler.cgi b/index.cgi similarity index 100% rename from handler.cgi rename to index.cgi diff --git a/index.html b/index.html index b92410e6cd1..c84d9efaeab 100644 --- a/index.html +++ b/index.html @@ -3,765 +3,62 @@ ERPNext - +
From 5ede3e8411bf216140f6f4f0a5d9af3709de3713 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 8 Sep 2011 14:16:34 +0530 Subject: [PATCH 09/84] fixes to home (multiple loading) --- README.md | 27 ++++- config/_timestamps.js | 2 +- .../home/doctype/home_control/home_control.py | 13 ++- .../home/page/event_updates/event_updates.js | 108 ++++++++---------- .../setup/page/import_data/import_data.html | 2 +- erpnext/startup/startup.js | 22 ++-- index.cgi | 25 +++- index.html | 6 +- js/app.js | 2 + todo.md | 5 +- 10 files changed, 127 insertions(+), 85 deletions(-) diff --git a/README.md b/README.md index 9d2ba5d62e1..3327238f2fe 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,30 @@ -## ERPNext - Open Source + SAAS ERP +# ERPNext - Open Source + SAAS ERP Includes Accounting, Inventory, CRM, Sales, Purchase, Projects, HRMS Built on Python / MySQL / wnframework -http://erpnext.org \ No newline at end of file +- [Download](http://erpnext.org) +- [Use now as SAAS @ $7/user/month](https://erpnext.com) + +## Platform + +ERPNext is built on [wnframework](https://github.com/webnotes/wnframework) + +## Download and Install + +For download and install details, please go to [erpnext.org](http://erpnext.org) + +## Forums + +- [User / Functional](http://groups.google.com/group/erpnext-user-forum) +- [Technical](http://groups.google.com/group/wnframework) + +## Contributing + +If you interested in contributing to ERPNext, you must go thorough the wnframework. The code is not easily understandable, but we are making a lot of effort to do it. + +## License + +ERPNext is available under the GNU/GPL license. + diff --git a/config/_timestamps.js b/config/_timestamps.js index b37ef320aad..55abb8d97f4 100644 --- a/config/_timestamps.js +++ b/config/_timestamps.js @@ -1 +1 @@ -{"lib/py/webnotes/profile.py": "1313994313", "lib/js/legacy/widgets/autosuggest.js": "1315219413", "lib/js/lib/superfish/images/shadow.png": "1215861254", "lib/css/legacy/calendar.css": "1311752687", "lib/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png": "1311752687", "lib/py/webnotes/utils/jslib/jstimestamp.py": "1313468805", "lib/js/legacy/widgets/list_selector.js": "1311752688", "lib/py/webnotes/install_lib/__init__.py": "1311752687", "js/app.js": "1315303458", "lib/js/legacy/wn/widgets/doc_column_view.js": "1311752688", "lib/images/icons/folder.gif": "1311752688", "lib/js/legacy/utils/rsh.compressed.js": "1311752688", "lib/py/webnotes/install_lib/db_init.py": "1311752687", "lib/py/webnotes/widgets/follow.py": "1311752687", "lib/py/webnotes/utils/backups.py": "1315203426", "lib/js/legacy/widgets/form/fields.js": "1311752688", "lib/js/legacy/widgets/export_query.js": "1311752688", "lib/css/legacy/default.css": "1315307277", "lib/js/lib/history/history.adapter.jquery.js": "1310718903", "lib/js/lib/superfish/css/superfish-vertical.css": "1215403280", "lib/js/legacy/user.js": "1311752688", "lib/css/legacy/forms.css": "1311752687", "lib/js/wn/xmlhttp.js": "1313753523", "lib/js/legacy/webpage/loaders.js": "1311752688", "lib/css/legacy/images/ui-icons_454545_256x240.png": "1311752687", "lib/py/webnotes/model/db_schema.py": "1313994313", "lib/py/webnotes/defs_template.py": "1312433457", "lib/css/legacy/user.css": "1311752687", "lib/js/legacy/widgets/form/form_container.js": "1311752688", "lib/conf/apache.conf": "1313640120", "lib/py/webnotes/model/doctype.py": "1313475893", "lib/py/webnotes/tests/__init__.py": "1312259967", "lib/js/legacy/webpage/page_header.js": "1311752688", "lib/css/legacy/report.css": "1311752687", "lib/css/legacy/autosuggest.css": "1311752687", "lib/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png": "1311752687", "lib/js/legacy/utils/browser_detect.js": "1311752688", "lib/js/legacy/globals.js": "1315296043", "lib/py/webnotes/model/code.py": "1312259967", "lib/README.md": "1314358927", "lib/css/skeleton.css": "1313603562", "lib/js/legacy/wn/widgets/filters.js": "1311752688", "lib/py/webnotes/widgets/query_builder.py": "1315203426", "lib/py/build/timestamps.py": "1315303062", "lib/images/ui/spinner.gif": "1311752688", "lib/py/webnotes/utils/email_lib/form_email.py": "1311752687", "lib/js/wn/ui/status_bar.js": "1315303532", "lib/js/legacy/widgets/dialog.js": "1311752688", "lib/py/webnotes/utils/sitemap.py": "1311752687", "lib/py/webnotes/utils/__init__.py": "1315203426", "lib/css/legacy/wntoolbar.css": "1315293967", "lib/py/webnotes/tests/modules.py": "1312259967", "lib/css/legacy/images/ui-icons_2e83ff_256x240.png": "1311752687", "lib/py/build/bundle.py": "1315223128", "lib/js/legacy/widgets/select.js": "1311752688", "lib/py/webnotes/utils/webservice.py": "1311752687", "lib/images/ui/vote_up.gif": "1311752688", "lib/py/webnotes/widgets/__init__.py": "1311752687", "lib/js/legacy/utils/datatype.js": "1311752688", "lib/js/legacy/webpage/history.js": "1315296616", "lib/conf/Framework.sql": "1311752687", "lib/css/legacy/jqplot.css": "1313994339", "lib/py/webnotes/utils/email_lib/__init__.py": "1311752687", "lib/conf/conf.py": "1314099127", "lib/js/wn/history.js": "1315295933", "lib/py/webnotes/utils/email_lib/send.py": "1311752687", "lib/js/legacy/webpage/uploader.js": "1313057744", "lib/js/legacy/utils/handler.js": "1315307184", "lib/py/webnotes/utils/file_manager.py": "1313060641", "lib/js/legacy/wn/widgets/listing.js": "1311752688", "lib/py/webnotes/widgets/page_body.py": "1311752687", "lib/attribution.md": "1315301200", "lib/js/legacy/jquery/jquery.jqplot.min.js": "1313994339", "images/module-icons.png": "1310447333", "lib/css/layout.css": "1313603562", "lib/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png": "1311752687", "lib/js/legacy/widgets/layout.js": "1311752688", "lib/py/webnotes/session_cache.py": "1312259967", "lib/js/legacy/widgets/form/form_grid.js": "1315203426", "lib/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png": "1311752687", "lib/js/legacy/utils/msgprint.js": "1311752688", "lib/js/legacy/webpage/page.js": "1315203426", "lib/py/webnotes/model/utils.py": "1315203426", "lib/js/lib/superfish/images/arrows-ffffff.png": "1215426588", "lib/js/legacy/wn/widgets/page_sidebar.js": "1311752688", "lib/js/legacy/model/doclist.js": "1311752688", "lib/js/lib/history/history.html4.js": "1310718903", "lib/js/core.min.js": "1315307277", "lib/css/legacy/listing.css": "1311752687", "lib/py/watch.py": "1314101731", "lib/py/webnotes/widgets/search.py": "1315203426", "lib/js/legacy/webpage/spinner.js": "1311752688", "lib/js/legacy/widgets/listing.js": "1311752688", "lib/py/webnotes/model/sql_sync.py": "1311752687", "lib/py/webnotes/widgets/auto_master.py": "1311752687", "lib/js/legacy/build.json": "1315296252", "lib/js/legacy/widgets/tags.js": "1311752688", "lib/js/legacy/utils/printElement.js": "1311752688", "templates/index.html": "1315304305", "lib/py/webnotes/model/doc.py": "1312259967", "lib/css/legacy/bw-icons.css": "1315293977", "lib/images/ui/vote_down.gif": "1311752688", "lib/js/legacy/webpage/error_console.js": "1311752688", "lib/js/legacy/utils/shortcut.js": "1311752688", "lib/js/legacy/widgets/form/form_fields.js": "1315203426", "lib/conf/_conf.py": "1314099136", "lib/css/legacy/sidebar.css": "1311752687", "lib/py/webnotes/utils/email_lib/html2text.py": "1311752687", "lib/py/webnotes/utils/archive.py": "1311752687", "lib/py/.user.py.swp": "1314350551", "lib/js/legacy/widgets/print_query.js": "1311752688", "lib/js/legacy/widgets/form/form_comments.js": "1311752688", "lib/js/legacy/widgets/report_builder/datatable.js": "1311752688", "lib/py/webnotes/utils/transfer.py": "1312259967", "lib/py/webnotes/install_lib/install.py": "1313994313", "lib/py/build/__init__.py": "1315307270", "lib/js/legacy/wn/widgets/dialog.js": "1315293231", "lib/css/legacy/images/ui-icons_cd0a0a_256x240.png": "1311752687", "lib/js/legacy/wn/widgets/form/comments.js": "1311752688", "config/conf.py": "1315213903", "lib/js/core.js": "1315304328", "lib/js/legacy/utils/datetime.js": "1311752688", "lib/py/webnotes/model/doclist.py": "1315203426", "lib/py/webnotes/widgets/form.py": "1313468805", "lib/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png": "1311752687", "lib/js/legacy/widgets/report_builder/report_builder.js": "1315203426", "lib/py/webnotes/tests.py": "1311752687", "lib/py/webnotes/utils/encrypt.py": "1311752687", "lib/js/legacy/wn/page_layout.js": "1311752688", "lib/images/icons/close.gif": "1311752688", "lib/py/webnotes/multi_tenant/setup.py": "1311752687", "lib/js/lib/superfish/superfish.min.js": "1315307277", "lib/images/ui/button-load.gif": "1311752688", "lib/js/legacy/model/local_data.js": "1311752688", "lib/py/build/minify.py": "1313583868", "lib/css/legacy/tabs.css": "1311752687", "lib/py/webnotes/auth.py": "1315203426", "favicon.ico": "1311154093", "lib/js/wn/assets.js": "1315225379", "lib/css/base.css": "1314774281", "lib/py/webnotes/modules/export_module.py": "1312259967", "lib/py/webnotes/modules/patch.py": "1315228273", "lib/py/webnotes/utils/cache.py": "1311752687", "lib/py/webnotes/handler.py": "1313994313", "lib/js/legacy/widgets/form/form_header.js": "1311752688", "lib/js/legacy/wn/widgets/footer.js": "1311752688", "lib/py/__init__.py": "1313570887", "lib/py/webnotes/db.py": "1315203426", "lib/py/webnotes/model/triggers.py": "1311752687", "lib/js/legacy/wn/widgets/form/attachments.js": "1313060641", "lib/css/legacy/build.json": "1315211094", "lib/js/legacy/widgets/form/clientscriptAPI.js": "1313994313", "lib/py/webnotes/model/__init__.py": "1315203426", "lib/js/legacy/webpage/freeze_page.js": "1315292773", "data/master.sql.gz": "1315208679", "lib/py/webnotes/model/meta.py": "1311752687", "lib/py/webnotes/widgets/menus.py": "1311752687", "lib/js/legacy/form.compressed.js": "1315307278", "lib/js/lib/superfish/make_superfish.js": "1313759992", "lib/js/wn/dom.js": "1315303752", "lib/js/legacy/widgets/form/attachments.js": "1315219428", "lib/py/webnotes/utils/jslib/jsnamespace.py": "1313468805", "lib/py/webnotes/utils/nestedset.py": "1313475893", "lib/css/legacy/images/ui-icons_888888_256x240.png": "1311752687", "lib/py/webnotes/widgets/todo.py": "1311752687", "lib/css/ui/status_bar.css": "1315302989", "lib/css/legacy/doc_column_view.css": "1311752687", "lib/css/legacy/jquery-ui.css": "1311752687", "README.md": "1315290621", "lib/js/lib/superfish/hoverIntent.js": "1201705878", "index.html": "1315307281", "lib/js/legacy/widgets/form/grid.js": "1315203426", "lib/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png": "1311752687", "lib/js/legacy/widgets/tree.js": "1315294071", "lib/__init__.py": "1314099524", "lib/js/legacy/widgets/menu.js": "1311752688", "lib/images/icons/plus.gif": "1311752688", "lib/conf/__init__.py": "1313737596", "lib/js/legacy/widgets/report_builder/bargraph.js": "1311752688", "lib/js/legacy/wn/widgets/follow.js": "1311752688", "lib/js/legacy/widgets/calendar.js": "1311752688", "lib/js/legacy/widgets/form/print_format.js": "1311752688", "lib/css/legacy/messages.css": "1311752687", "lib/images/icons/minus.gif": "1311752688", "lib/js/wn/provide.js": "1315299987", "lib/images/icons/wntoolbar-icons.png": "1311752688", "lib/py/webnotes/widgets/tags.py": "1315203426", "lib/js/legacy/wn/widgets/form/sidebar.js": "1311752688", "lib/py/build/nav.py": "1315218444", "lib/js/lib/history/history.min.js": "1315296053", "lib/py/webnotes/modules/__init__.py": "1315229448", "lib/py/common.py": "1314349955", "lib/js/wn/page.js": "1315295722", "lib/js/legacy/app.js": "1315303360", "lib/py/tests.py": "1313132642", "lib/js/legacy/widgets/form/form.js": "1315203426", "lib/py/webnotes/modules/module_manager.py": "1312259967", "lib/py/.common.py.swp": "1314349963", "INSTALL": "1310447332", "lib/images/icons/icons.png": "1311752688", "lib/js/lib/json2.js": "1313659690", "lib/js/legacy/utils/dom.js": "1315292658", "lib/js/legacy/webpage/search.js": "1315203426", "lib/js/legacy/widgets/tabbedpage.js": "1311752688", "lib/py/webnotes/modules/utils.py": "1312259967", "lib/js/legacy/wnf.compressed.js": "1315307280", "lib/js/legacy/wn/modules.js": "1311752688", "lib/py/webnotes/utils/email_lib/receive.py": "1315203426", "lib/js/legacy/webpage/about.js": "1311752688", "lib/py/webnotes/utils/jslib/jsdependency.py": "1313468805", "lib/css/legacy/grid.css": "1311752687", "lib/py/webnotes/widgets/page.py": "1314701195", "index.cgi": "1315226068", "lib/py/webnotes/utils/jslib/jsmin.py": "1313468805", "lib/py/webnotes/model/modules.py": "1311752687", "lib/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png": "1311752687", "todo.md": "1315297716", "lib/py/build/project.py": "1315301555", "lib/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png": "1311752687", "lib/js/legacy/jquery/jquery-ui.min.js": "1315220242", "lib/css/legacy/body.css": "1311752687", "lib/temp.py": "1315228787", "lib/py/webnotes/defs.py": "1315227569", "lib/js/legacy/utils/json.js": "1311752688", "lib/py/webnotes/model/import_docs.py": "1313475893", "lib/py/build/__main__.py": "1315217545", "lib/js/legacy/webpage/body.js": "1311752688", "lib/js/build.json": "1315296571", "lib/js/legacy/webpage/wntoolbar.js": "1315297897", "lib/js/legacy/webpage/docbrowser.js": "1311752688", "lib/py/build/markdown2_extn.py": "1315217098", "lib/css/ui/overlay.css": "1315302325", "lib/css/legacy/images/ui-icons_222222_256x240.png": "1311752687", "lib/js/legacy/report.compressed.js": "1315307280", "lib/py/webnotes/__init__.py": "1315203426", "lib/py/webnotes/utils/scheduler.py": "1315203442", "lib/js/legacy/widgets/form/email.js": "1311752688", "lib/py/webnotes/widgets/event.py": "1311752687", "lib/css/legacy/menus.css": "1311752687", "lib/js/lib/superfish/css/superfish.css": "1313760672", "lib/py/webnotes/multi_tenant/__init__.py": "1311752687", "lib/js/lib/jquery.min.js": "1313062880", "lib/js/lib/history/history.js": "1310718903", "lib/py/webnotes/multi_tenant/query_parser.py": "1311752687", "lib/js/wn/require.js": "1313755415", "lib/js/wn/ui/overlay.js": "1315302025", "lib/css/legacy/dialog.css": "1311752687", "lib/js/lib/superfish/superfish.js": "1221094330", "lib/js/legacy/widgets/report_builder/calculator.js": "1315219438"} \ No newline at end of file +{"lib/js/legacy/widgets/autosuggest.js": "1315388112", "lib/docs/old/menus_server.html": "1310636183", "lib/css/legacy/calendar.css": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/paste/js/pastetext.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/searchreplace.htm": "1315388112", "lib/docs/old/admin_login.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/table/js/row.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/install_lib/install.html": "1310636183", "lib/js/legacy/utils/msgprint.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/css/attributes.css": "1315388112", "lib/js/legacy/jquery/excanvas.min.js": "1315388112", "lib/js/wn/provide.js": "1315299987", "lib/docs/old/auth.html": "1310636183", "lib/docs/old/_sources/page_body.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasTextRenderer.min.js": "1315388133", "lib/images/icons/folder.gif": "1311752688", "lib/js/legacy/build.json": "1315296252", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dragable.min.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dateAxisRenderer.js": "1315388133", "lib/docs/old/_sources/save_submit.txt": "1310636183", "lib/docs/_build/html/core.doctype.system_console.html": "1310636183", "lib/js/legacy/widgets/form/fields.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/autoresize/editor_plugin_src.js": "1315388112", "lib/docs/old/_static/pygments.css": "1310636183", "lib/docs/_build/doctrees/core.doctype.module_def.doctree": "1310636182", "lib/css/legacy/forms.css": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/emotions/editor_plugin.js": "1315388112", "lib/js/legacy/webpage/loaders.js": "1315466601", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/ui_black.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/image.htm": "1315388112", "lib/docs/old/_sources/utils_server.txt": "1310636183", "lib/py/webnotes/.no_timestamps": "1315392243", "lib/docs/old/db_schema.html": "1310636183", "lib/js/lib/superfish/hoverIntent.js": "1201705878", "lib/docs/old/_sources/module.txt": "1310636183", "lib/docs/old/index.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/iespell/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/trans.gif": "1315388112", "lib/docs/old/_sources/profile.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/editor_template_src.js": "1315388112", "lib/js/legacy/widgets/report_builder/report_builder.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/del.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/flv_player.swf": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/contextmenu/editor_plugin_src.js": "1315388112", "lib/js/wn/ui/status_bar.js": "1315303532", "lib/css/legacy/wntoolbar.css": "1315293967", "lib/js/legacy/tiny_mce_33/plugins/media/js/embed.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/simple/skins/o2k7/ui.css": "1315388112", "lib/images/ui/vote_up.gif": "1311752688", "lib/py/webnotes/widgets/__init__.py": "1315388111", "lib/py/webnotes/tests.py": "1315388111", "lib/docs/_static/default.css": "1310636183", "lib/py/webnotes/install_lib/__init__.py": "1315388110", "lib/conf/Framework.sql": "1311752687", "lib/css/legacy/jqplot.css": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.meterGaugeRenderer.min.js": "1315388133", "lib/docs/generate_modules.py": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/langs/en_dlg.js": "1315388112", "lib/images/icons/plus.gif": "1311752688", "lib/docs/_build/html/_modules/webnotes/widgets/form.html": "1310636183", "lib/docs/old/_sources/webservice.txt": "1310636183", "lib/js/legacy/wn/widgets/listing.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-cool.gif": "1315388112", "lib/js/legacy/wn/widgets/page_sidebar.js": "1315388112", "images/module-icons.png": "1310447333", "lib/docs/old/webnotes_intro.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/emotions.htm": "1315388112", "lib/docs/_build/html/_modules/webnotes/modules/import_module.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.min.js": "1315388133", "lib/js/legacy/widgets/form/form_grid.js": "1315388133", "lib/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/autosave/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/_sources/webnotes.utils.email_lib.txt": "1310636183", "lib/docs/_build/doctrees/core.doctype.control_panel.doctree": "1310636182", "lib/js/legacy/model/doclist.js": "1315388112", "lib/docs/_build/html/_sources/core.doctype.module_def.txt": "1310636183", "lib/js/legacy/widgets/tree.js": "1315294071", "lib/docs/webnotes.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/autoresize/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/todo.html": "1310636183", "lib/js/legacy/tiny_mce_33/.no_timpestamps": "1315461100", "lib/js/legacy/jquery/jqplot-plugins/jqplot.enhancedLegendRenderer.min.js": "1315388133", "lib/docs/_build/html/_sources/webnotes.txt": "1310636183", "lib/docs/_build/html/core.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/js/searchreplace.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-tongue-out.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/table/css/table.css": "1315388112", "lib/docs/old/creating_reports.html": "1310636183", "lib/docs/core.doctype.module_def.txt": "1310636183", "lib/py/webnotes/model/meta.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/visualchars/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/insertdatetime/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/template.htm": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/search.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/modules/compress.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/model/doctype.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/query_builder.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.txt": "1310636183", "lib/js/legacy/widgets/form/form_comments.js": "1315388112", "lib/py/tests.py": "1313132642", "lib/docs/old/autosuggest.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.highlighter.min.js": "1315388133", "lib/py/webnotes/utils/transfer.py": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.donutRenderer.min.js": "1315388133", "lib/js/legacy/wn/widgets/dialog.js": "1315293231", "lib/css/legacy/images/ui-icons_cd0a0a_256x240.png": "1315388111", "lib/py/__init__.py": "1313570887", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/ui_silver.css": "1315388112", "lib/js/wn/require.js": "1313755415", "lib/docs/old/_sources/navigation.txt": "1310636183", "lib/docs/old/writing_scripts.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.logAxisRenderer.js": "1315388133", "lib/images/ui/vote_down.gif": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-embarassed.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoRenderer.min.js": "1315388133", "lib/docs/_build/html/_modules/core/doctype/page/page.html": "1310636182", "lib/docs/old/_static/jquery.js": "1310636183", "lib/docs/_build/html/_modules/webnotes/install_lib/db_init.html": "1310636183", "lib/docs/old/sitemap.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/pypi-setup.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/charmap.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ohlcRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-yell.gif": "1315388112", "lib/js/legacy/widgets/report_builder/datatable.js": "1315388112", "lib/docs/old/what_is_an_app.html": "1310636183", "lib/css/legacy/tabs.css": "1315388111", "lib/py/webnotes/widgets/auto_master.py": "1315388111", "lib/docs/_build/html/_sources/pypi-setup.txt": "1310636183", "lib/css/base.css": "1314774281", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/css/popup.css": "1315388112", "lib/docs/_build/html/core.doctype.doctype.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/directionality/editor_plugin.js": "1315388112", "lib/docs/old/_sources/client_side_widgets.txt": "1310636183", "lib/py/webnotes/utils/email_lib/form_email.py": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/example/langs/en.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-sealed.gif": "1315388112", "lib/docs/old/_sources/creating_reports.txt": "1310636183", "lib/docs/_build/html/core.doctype.html": "1310636183", "lib/docs/old/_sources/creating_profiles.txt": "1310636183", "lib/py/webnotes/db.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/preview/editor_plugin_src.js": "1315388112", "lib/py/webnotes/widgets/page.py": "1315388133", "lib/js/legacy/widgets/export_query.js": "1315388112", "lib/docs/_build/html/py-modindex.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/jsmin.html": "1310636183", "lib/js/legacy/webpage/freeze_page.js": "1315292773", "data/master.sql.gz": "1315208679", "lib/js/legacy/tiny_mce_33/plugins/fullpage/fullpage.htm": "1315388112", "lib/docs/old/_sources/report_cookbook.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.json2.min.js": "1315388133", "lib/js/wn/dom.js": "1315303752", "lib/js/legacy/jquery/jqplot-plugins/jqplot.bubbleRenderer.min.js": "1315388133", "lib/docs/old/server_side_script.html": "1310636183", "lib/py/webnotes/widgets/todo.py": "1315388111", "lib/css/ui/status_bar.css": "1315302989", "lib/js/legacy/tiny_mce_33/plugins/advlink/js/advlink.js": "1315388112", "lib/docs/_build/html/core.doctype.property_setter.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.page_template.txt": "1310636183", "lib/css/legacy/jquery-ui.css": "1315388111", "lib/docs/old/database_api.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/visualchars/editor_plugin_src.js": "1315388112", "lib/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png": "1315388111", "lib/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png": "1315388111", "lib/js/legacy/utils/shortcut.js": "1315388112", "lib/py/common.py": "1314349955", "lib/py/webnotes/utils/cache.py": "1315388111", "lib/docs/old/_sources/db.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/paste/editor_plugin.js": "1315388112", "lib/css/legacy/messages.css": "1315388111", "lib/docs/_build/html/webnotes.utils.html": "1310636183", "lib/docs/_build/html/core.doctype.profile.html": "1310636183", "lib/images/icons/wntoolbar-icons.png": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/fullscreen/editor_plugin_src.js": "1315388112", "lib/docs/pypi-setup.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/media/img/shockwave.gif": "1315388112", "lib/docs/old/_sources/creating_pages.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/blank.htm": "1315388112", "lib/docs/old/_sources/db_schema.txt": "1310636183", "lib/docs/old/searchindex.js": "1310636183", "lib/js/lib/history/history.min.js": "1315467128", "lib/js/legacy/tiny_mce_33/plugins/advhr/js/rule.js": "1315388112", "lib/docs/_build/html/_sources/core.page.txt": "1310636183", "lib/docs/old/report_builder.html": "1310636183", "lib/js/legacy/widgets/form/form.js": "1315388134", "lib/js/legacy/jquery/jqplot-plugins/jqplot.meterGaugeRenderer.js": "1315388133", "lib/docs/old/genindex.html": "1310636183", "lib/js/legacy/widgets/form/form_container.js": "1315388112", "lib/docs/old/.buildinfo": "1310636183", "lib/docs/_build/doctrees/webnotes.doctree": "1310636182", "lib/docs/_build/html/_static/searchtools.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/image.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/img/wline.gif": "1315388112", "lib/js/legacy/widgets/tabbedpage.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/realmedia.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/link.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/img/sample.gif": "1315388112", "lib/docs/_build/doctrees/core.doctype.search_criteria.doctree": "1310636182", "lib/docs/old/_static/doctools.js": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/cite.js": "1315388112", "lib/css/legacy/autosuggest.css": "1315388111", "lib/docs/core.doctype.doctype.txt": "1310636183", "lib/py/webnotes/model/modules.py": "1315388110", "lib/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png": "1315388111", "lib/docs/_build/html/webnotes.model.html": "1310636183", "lib/js/legacy/widgets/form/form_header.js": "1315388112", "lib/docs/old/creating_pages.html": "1310636183", "lib/docs/_build/doctrees/core.doctype.doctype.doctree": "1310636182", "lib/py/build/__main__.py": "1315392289", "lib/js/legacy/jquery/jqplot-plugins/jqplot.funnelRenderer.js": "1315388133", "lib/py/build/markdown2_extn.py": "1315392289", "lib/py/build/minify.py": "1315392289", "lib/py/webnotes/utils/jslib/jstimestamp.py": "1315388133", "lib/docs/_build/html/_static/jquery.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/menu_arrow.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/content.css": "1315388112", "lib/js/lib/superfish/css/superfish.css": "1313760672", "lib/js/legacy/tiny_mce_33/plugins/noneditable/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-undecided.gif": "1315388112", "lib/py/webnotes/utils/scheduler.py": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.logAxisRenderer.min.js": "1315388133", "lib/docs/old/client_side_script.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.profile.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/follow.html": "1310636183", "lib/py/webnotes/profile.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/table/table.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/wordcount/editor_plugin_src.js": "1315388112", "lib/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/autosave/langs/en.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/tabfocus/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/editor_plugin_src.js": "1315388112", "lib/docs/old/doclist.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/cache.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/about.js": "1315388112", "lib/docs/_build/html/core.page.html": "1310636183", "lib/js/legacy/utils/rsh.compressed.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/image.htm": "1315388112", "lib/docs/_build/html/_modules/webnotes/modules/export_module.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.trendline.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg.png": "1315388112", "lib/docs/old/search.html": "1310636183", "lib/js/legacy/jquery/jquery.flot.js": "1315388112", "lib/docs/Makefile": "1310636182", "lib/css/legacy/images/ui-icons_454545_256x240.png": "1315388111", "lib/conf/sitemap.xml": "1315388112", "lib/js/legacy/tiny_mce_33/themes/simple/skins/o2k7/img/button_bg.png": "1315388112", "lib/css/legacy/user.css": "1315388111", "lib/docs/old/client_side_widgets.html": "1310636183", "lib/docs/core.doctype.search_criteria.txt": "1310636183", "lib/conf/apache.conf": "1313640120", "lib/js/legacy/tiny_mce_33/plugins/table/js/merge_cells.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/css/media.css": "1315388112", "lib/py/webnotes/tests/__init__.py": "1315388111", "lib/js/legacy/webpage/page_header.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.blockRenderer.min.js": "1315388133", "lib/js/legacy/jquery/jquery.min.js": "1315388112", "lib/docs/old/_static/plus.png": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-money-mouth.gif": "1315388112", "lib/docs/_build/html/searchindex.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/anchor.js": "1315388112", "lib/docs/core.doctype.custom_field.txt": "1310636183", "lib/docs/_build/html/_sources/core.doctype.search_criteria.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advhr/css/advhr.css": "1315388112", "lib/docs/modules.txt": "1310636183", "lib/docs/_build/html/core.doctype.page_template.html": "1310636183", "lib/py/webnotes/model/utils.py": "1315388133", "lib/docs/old/_static/basic.css": "1310636183", "lib/docs/_build/doctrees/webnotes.utils.email_lib.doctree": "1310636182", "lib/js/legacy/widgets/dialog.js": "1315388112", "lib/js/lib/jquery.min.js": "1313062880", "lib/docs/old/_sources/database_api.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pieRenderer.min.js": "1315388133", "lib/docs/old/server_side_internals.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/paste/js/pasteword.js": "1315388112", "lib/py/webnotes/utils/webservice.py": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/iespell/editor_plugin_src.js": "1315388112", "lib/docs/webnotes.install_lib.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/media/img/windowsmedia.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/attributes.htm": "1315388112", "lib/docs/_build/doctrees/webnotes.widgets.doctree": "1310636182", "lib/py/build/nav.py": "1315392289", "lib/js/lib/superfish/superfish.min.js": "1315465309", "lib/js/legacy/tiny_mce_33/plugins/fullpage/editor_plugin_src.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisLabelRenderer.min.js": "1315388133", "lib/docs/_build/doctrees/core.doctype.letter_head.doctree": "1310636182", "lib/docs/webnotes.modules.txt": "1310636183", "lib/js/legacy/jquery/jquery.jqplot.min.js": "1315388133", "lib/js/legacy/wnf.compressed.js": "1315466607", "lib/css/layout.css": "1313603562", "lib/docs/old/_sources/creating_doctypes.txt": "1310636183", "lib/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png": "1315388111", "lib/js/legacy/tiny_mce_33/themes/advanced/editor_template.js": "1315388112", "lib/js/legacy/widgets/layout.js": "1315388112", "lib/docs/webnotes.model.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/event.html": "1310636183", "lib/docs/old/save_submit.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/fullpage/js/fullpage.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/triggers.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/tabfocus/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/ins.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pointLabels.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/directionality/editor_plugin_src.js": "1315388112", "lib/docs/conf.py": "1315388111", "lib/docs/old/_sources/autosuggest.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/layer/editor_plugin.js": "1315388112", "lib/docs/old/_sources/auth.txt": "1310636183", "lib/py/webnotes/model/doc.py": "1315388110", "lib/js/legacy/tiny_mce_33/themes/simple/editor_template_src.js": "1315388112", "lib/docs/core.doctype.doctype_mapper.txt": "1310636183", "lib/docs/old/_sources/intro.txt": "1310636183", "lib/js/legacy/widgets/listing.js": "1315388112", "lib/docs/old/_sources/menus_server.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/fullpage/editor_plugin.js": "1315388112", "lib/docs/old/creating_profiles.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.system_console.txt": "1310636183", "lib/docs/old/module.html": "1310636183", "lib/css/legacy/bw-icons.css": "1315293977", "lib/docs/_build/doctrees/core.doctype.profile.doctree": "1310636182", "lib/docs/_build/html/_static/default.css": "1310636183", "lib/docs/_build/doctrees/core.doctype.doctype_mapper.doctree": "1310636182", "lib/docs/old/build_app.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/js/cell.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/send.html": "1310636183", "lib/css/legacy/sidebar.css": "1315388111", "lib/js/legacy/tiny_mce_33/themes/simple/skins/o2k7/content.css": "1315388112", "lib/docs/_build/html/genindex.html": "1310636183", "lib/docs/_build/html/_modules/core/doctype/property_setter/property_setter.html": "1310636182", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/css/content.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/langs/en_dlg.js": "1315388112", "lib/js/core.js": "1315467083", "lib/docs/_build/html/_modules/webnotes/utils/archive.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/model/modules.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/modules/patch.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advlink/link.htm": "1315388112", "lib/docs/_build/html/webnotes.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/nestedset.html": "1310636183", "lib/docs/old/code.html": "1310636183", "lib/py/build/timestamps.py": "1315392289", "lib/images/icons/close.gif": "1311752688", "lib/docs/_build/html/_static/doctools.js": "1310636183", "lib/images/ui/button-load.gif": "1311752688", "lib/docs/_build/html/_static/sidebar.js": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advimage/editor_plugin.js": "1315388112", "lib/js/legacy/webpage/spinner.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/db.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/editor_plugin.js": "1315388112", "lib/docs/old/_sources/glossary.txt": "1310636183", "lib/docs/_build/doctrees/core.doctype.stylesheet.doctree": "1310636182", "lib/docs/old/page_cookbook.html": "1310636183", "lib/js/legacy/tiny_mce_33/tiny_mce_src.js": "1315388112", "lib/js/legacy/widgets/form/form_fields.js": "1315388133", "lib/py/webnotes/utils/jslib/jsnamespace.py": "1315388133", "lib/docs/_build/html/_modules/webnotes/profile.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/layer/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/backupall.html": "1310636183", "lib/docs/_build/html/_sources/webnotes.multi_tenant.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/js/emotions.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/langs/en_dlg.js": "1315388112", "lib/docs/old/_sources/javascript_utils.txt": "1310636183", "lib/py/webnotes/utils/nestedset.py": "1315388133", "lib/docs/_build/doctrees/webnotes.utils.doctree": "1310636182", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/ui.css": "1315388112", "lib/js/legacy/tiny_mce_33/utils/mctabs.js": "1315388112", "lib/docs/_build/html/_sources/webnotes.model.txt": "1310636183", "index.html": "1315470121", "lib/docs/_build/html/_static/plus.png": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/encrypt.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/css/row.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/template/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg_silver.png": "1315388112", "lib/js/legacy/webpage/uploader.js": "1315388112", "lib/js/legacy/widgets/form/print_format.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/paste/pastetext.htm": "1315388112", "lib/js/legacy/widgets/list_selector.js": "1315388112", "lib/docs/old/intro.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/img/icons.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ohlcRenderer.js": "1315388133", "lib/docs/_build/doctrees/environment.pickle": "1310636182", "lib/docs/old/listing.html": "1310636183", "lib/docs/old/_sources/webnotes_intro.txt": "1310636183", "lib/py/webnotes/modules/module_manager.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/media/js/media.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/langs/en.js": "1315388112", "lib/docs/old/creating_doctypes.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-surprised.gif": "1315388112", "lib/docs/_build/html/_sources/core.doctype.page.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/model/import_docs.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/save/editor_plugin_src.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisLabelRenderer.js": "1315388133", "lib/py/webnotes/model/db_schema.py": "1315388133", "lib/js/legacy/wn/modules.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasOverlay.js": "1315388133", "lib/py/webnotes/utils/jslib/jsdependency.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/example/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/acronym.htm": "1315388112", "lib/docs/_build/html/core.doctype.module_def.html": "1310636183", "lib/js/lib/superfish/images/arrows-ffffff.png": "1215426588", "lib/js/legacy/tiny_mce_33/plugins/paste/langs/en_dlg.js": "1315388112", "todo.md": "1315468953", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-laughing.gif": "1315388112", "lib/docs/_build/doctrees/webnotes.multi_tenant.doctree": "1310636182", "lib/docs/_build/html/_static/README": "1310636183", "lib/py/webnotes/defs.py": "1315227569", "lib/js/legacy/tiny_mce_33/plugins/wordcount/editor_plugin.js": "1315388112", "lib/js/legacy/utils/json.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/doc.html": "1310636183", "lib/js/legacy/webpage/body.js": "1315388112", "lib/js/build.json": "1315296571", "lib/js/legacy/tiny_mce_33/plugins/bbcode/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/example/js/dialog.js": "1315388112", "lib/docs/old/javascript_utils.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.control_panel.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advimage/langs/en_dlg.js": "1315388112", "lib/docs/_static/pygments.css": "1310636183", "lib/docs/old/_sources/server_side_api.txt": "1310636183", "lib/docs/old/_sources/creating_entities.txt": "1310636183", "lib/py/webnotes/widgets/event.py": "1315388111", "lib/js/legacy/jquery/jqplot-plugins/jqplot.highlighter.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/fullscreen/fullscreen.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/autosave/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/save/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/multi_tenant/setup.html": "1310636183", "lib/js/wn/ui/overlay.js": "1315302025", "lib/js/legacy/tiny_mce_33/plugins/fullpage/langs/en_dlg.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/doclist.html": "1310636183", "lib/docs/old/apps_intro.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advlink/editor_plugin.js": "1315388112", "lib/docs/_build/html/_static/basic.css": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/form_email.html": "1310636183", "lib/docs/old/dialog.html": "1310636183", "lib/docs/_build/doctrees/backupall.doctree": "1310636182", "lib/docs/old/_sources/doc.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/langs/en_dlg.js": "1315388112", "lib/docs/_build/html/_static/minus.png": "1310636183", "lib/conf/app.js": "1315303458", "lib/docs/_build/html/_modules/core/doctype/page_template/page_template.html": "1310636182", "lib/js/lib/superfish/css/superfish-vertical.css": "1215403280", "lib/conf/index.cgi": "1315226068", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/editor_plugin.js": "1315388112", "lib/docs/old/_sources/server_side_cookbook.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/tags.html": "1310636183", "lib/js/legacy/tiny_mce_33/utils/editable_selects.js": "1315388112", "lib/js/legacy/widgets/form/clientscriptAPI.js": "1315388133", "lib/css/legacy/default.css": "1315308592", "lib/docs/old/concepts.html": "1310636183", "lib/docs/old/_sources/index.txt": "1310636183", "lib/docs/_build/html/_sources/core.doctype.letter_head.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/sitemap.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/simple/editor_template.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advlist/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/auth.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.cursor.js": "1315388133", "lib/py/webnotes/model/doctype.py": "1315389550", "lib/docs/_build/html/index.html": "1310636183", "lib/js/legacy/tiny_mce_33/langs/en.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/editor_plugin.js": "1315388112", "lib/js/lib/superfish/images/shadow.png": "1215861254", "lib/docs/_build/html/webnotes.widgets.html": "1310636183", "lib/py/webnotes/multi_tenant/query_parser.py": "1315388110", "lib/js/legacy/tiny_mce_33/themes/simple/langs/en.js": "1315388112", "lib/css/skeleton.css": "1313603562", "lib/js/legacy/wn/widgets/filters.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/media.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advlist/editor_plugin.js": "1315388112", "lib/py/webnotes/widgets/tags.py": "1315388133", "lib/docs/old/_sources/sitemap.txt": "1310636183", "lib/images/ui/spinner.gif": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/template/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/img/pagebreak.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.BezierCurveRenderer.min.js": "1315388133", "lib/py/webnotes/utils/__init__.py": "1315388133", "lib/py/webnotes/tests/modules.py": "1315388111", "lib/py/build/bundle.py": "1315392289", "lib/docs/README": "1310636182", "lib/js/legacy/widgets/select.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/code.html": "1310636183", "lib/js/legacy/widgets/menu.js": "1315460930", "lib/docs/_build/html/_sources/core.doctype.custom_field.txt": "1310636183", "lib/js/legacy/webpage/history.js": "1315466093", "lib/docs/old/_sources/build_app.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/simple/skins/default/ui.css": "1315388112", "lib/js/legacy/utils/handler.js": "1315388133", "lib/docs/old/_sources/writing_scripts.txt": "1310636183", "lib/py/webnotes/widgets/page_body.py": "1315388111", "lib/attribution.md": "1315468210", "lib/docs/_build/html/_sources/webnotes.utils.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/color_picker.js": "1315388112", "lib/py/webnotes/model/sql_sync.py": "1315388110", "lib/docs/_build/html/core.doctype.custom_field.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/cell.htm": "1315388112", "lib/docs/_build/html/modules.html": "1310636183", "lib/js/legacy/webpage/page.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/style/editor_plugin_src.js": "1315388112", "lib/docs/_static/wnflogo200.gif": "1310636183", "lib/css/legacy/listing.css": "1315388111", "lib/js/legacy/wn/widgets/doc_column_view.js": "1315388112", "lib/py/webnotes/widgets/search.py": "1315388133", "lib/docs/old/_sources/doctype.txt": "1310636183", "lib/docs/old/local_data.html": "1310636183", "lib/docs/_build/doctrees/core.doctype.page.doctree": "1310636182", "lib/js/legacy/widgets/tags.js": "1315388112", "lib/docs/_build/html/_sources/webnotes.install_lib.txt": "1310636183", "lib/js/legacy/utils/printElement.js": "1315388112", "lib/docs/_build/doctrees/core.doctype.property_setter.doctree": "1310636182", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/corners.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/content.css": "1315388112", "lib/js/legacy/webpage/error_console.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.js": "1315388133", "lib/conf/_conf.py": "1314099136", "lib/py/watch.py": "1314101731", "lib/py/webnotes/utils/email_lib/html2text.py": "1315388111", "lib/py/webnotes/utils/archive.py": "1315388111", "lib/docs/_build/html/webnotes.multi_tenant.html": "1310636183", "lib/docs/core.doctype.system_console.txt": "1310636183", "templates/index.html": "1315304305", "lib/js/legacy/tiny_mce_33/plugins/paste/pasteword.htm": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/items.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.trendline.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/abbr.htm": "1315388112", "lib/docs/webnotes.multi_tenant.txt": "1310636183", "lib/docs/old/server_side_api.html": "1310636183", "lib/py/webnotes/install_lib/install.py": "1315388133", "lib/docs/core.doctype.profile.txt": "1310636183", "lib/py/webnotes/model/import_docs.py": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoRenderer.js": "1315388133", "lib/docs/_build/html/_sources/core.doctype.property_setter.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/img/colorpicker.jpg": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/preview/example.html": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ciParser.min.js": "1315388133", "lib/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png": "1315388111", "lib/docs/core.doctype.stylesheet.txt": "1310636183", "lib/py/webnotes/utils/encrypt.py": "1315388111", "lib/js/legacy/widgets/form/attachments.js": "1315388112", "lib/js/legacy/widgets/report_builder/bargraph.js": "1315388112", "lib/py/webnotes/multi_tenant/setup.py": "1315388110", "lib/docs/_build/doctrees/pypi-setup.doctree": "1310636182", "lib/docs/old/server_side_cookbook.html": "1310636183", "lib/docs/old/_static/minus.png": "1310636183", "lib/js/legacy/model/local_data.js": "1315388112", "lib/docs/_build/html/webnotes.modules.html": "1310636183", "favicon.ico": "1311154093", "lib/docs/_build/doctrees/core.doctype.custom_field.doctree": "1310636182", "lib/docs/_build/doctrees/core.doctype.doctree": "1310636182", "lib/py/webnotes/modules/export_module.py": "1315388110", "lib/docs/_build/html/_modules/webnotes/utils/scheduler.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/paste/editor_plugin_src.js": "1315388112", "lib/docs/old/_sources/tabbed_page.txt": "1310636183", "lib/py/webnotes/handler.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/css/advimage.css": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/source_editor.htm": "1315388112", "lib/docs/_build/doctrees/webnotes.modules.doctree": "1310636182", "lib/docs/_build/html/core.doctype.letter_head.html": "1310636183", "lib/docs/core.doctype.page_template.txt": "1310636183", "lib/docs/old/_sources/apps_intro.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/progress.gif": "1315388112", "lib/js/legacy/form.compressed.js": "1315465310", "lib/js/lib/superfish/make_superfish.js": "1313759992", "lib/js/legacy/jquery/jqplot-plugins/jqplot.enhancedLegendRenderer.js": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/buttons.png": "1315388112", "lib/css/legacy/images/ui-icons_888888_256x240.png": "1315388111", "lib/docs/old/report_cookbook.html": "1310636183", "lib/js/legacy/user.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasOverlay.min.js": "1315388133", "lib/docs/core.doctype.letter_head.txt": "1310636183", "lib/css/legacy/doc_column_view.css": "1315388111", "lib/docs/old/modindex.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/dialog.css": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/color_picker.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/rule.htm": "1315388112", "lib/js/legacy/widgets/form/grid.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.funnelRenderer.min.js": "1315388133", "lib/docs/old/_sources/form_server.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils.html": "1310636183", "lib/js/legacy/tiny_mce_33/jquery.tinymce.js": "1315388112", "lib/docs/old/_sources/creating_roles.txt": "1310636183", "lib/conf/__init__.py": "1313737596", "lib/js/legacy/wn/widgets/follow.js": "1315388112", "lib/css/legacy/dialog.css": "1315388111", "lib/docs/_build/html/_modules/webnotes/modules/module_manager.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/example/dialog.htm": "1315388112", "lib/docs/old/client_side_cookbook.html": "1310636183", "lib/images/icons/minus.gif": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/example/img/example.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoAxisRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/ins.htm": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pointLabels.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoAxisRenderer.js": "1315388133", "lib/py/webnotes/modules/__init__.py": "1315391888", "lib/docs/old/form_server.html": "1310636183", "lib/docs/_build/html/_static/pygments.css": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif": "1315388112", "lib/docs/old/_sources/form_widget.txt": "1310636183", "lib/py/webnotes/widgets/follow.py": "1315388111", "INSTALL": "1310447332", "lib/images/icons/icons.png": "1311752688", "lib/js/lib/json2.js": "1313659690", "lib/docs/_build/html/_sources/core.txt": "1310636183", "lib/js/legacy/tiny_mce_33/utils/form_utils.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/simple/img/icons.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/abbr.js": "1315388112", "lib/docs/_build/html/_sources/core.doctype.doctype.txt": "1310636183", "lib/py/webnotes/utils/email_lib/receive.py": "1315388133", "lib/docs/_build/html/_modules/webnotes/widgets/page.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/noneditable/editor_plugin.js": "1315388112", "lib/docs/old/webservice.html": "1310636183", "lib/js/wn/page.js": "1315465871", "lib/docs/old/objects.inv": "1310636183", "lib/docs/_build/doctrees/core.doctype.page_template.doctree": "1310636182", "lib/docs/old/_sources/code.txt": "1310636183", "index.cgi": "1315226068", "lib/docs/old/_sources/dialog.txt": "1310636183", "lib/docs/old/_sources/tree.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/handler.html": "1310636183", "lib/py/build/project.py": "1315392289", "lib/docs/_build/html/_static/wnflogo200.gif": "1310636183", "lib/js/legacy/jquery/jquery-ui.min.js": "1315388112", "lib/docs/_build/html/_static/file.png": "1310636183", "lib/docs/_build/html/webnotes.install_lib.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/model.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg_black.png": "1315388112", "lib/docs/old/_sources/report_builder.txt": "1310636183", "lib/py/build/__init__.py": "1315392289", "lib/js/legacy/tiny_mce_33/plugins/advlink/langs/en_dlg.js": "1315388112", "lib/js/lib/superfish/superfish.js": "1221094330", "lib/js/legacy/webpage/docbrowser.js": "1315388112", "lib/js/wn/assets.js": "1315225379", "lib/js/legacy/report.compressed.js": "1315465312", "lib/js/legacy/tiny_mce_33/plugins/media/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/tiny_mce.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/editor_plugin.js": "1315388112", "lib/docs/core.doctype.txt": "1310636183", "lib/js/legacy/wn/widgets/form/comments.js": "1315388112", "lib/css/legacy/menus.css": "1315388111", "lib/docs/_build/html/_modules/webnotes/tests.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-kiss.gif": "1315388112", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/html2text.html": "1310636183", "lib/docs/old/page_body.html": "1310636183", "lib/docs/old/_sources/concepts.txt": "1310636183", "lib/docs/_static/README": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/bbcode/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/meta.html": "1310636183", "lib/docs/old/email_lib.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advlink/css/advlink.css": "1315388112", "lib/docs/old/_static/banner300910.gif": "1310636183", "lib/docs/_build/html/_sources/index.txt": "1310636183", "lib/docs/webnotes.widgets.txt": "1310636183", "lib/docs/_build/html/_sources/webnotes.modules.txt": "1310636183", "lib/js/legacy/webpage/about.js": "1315388112", "lib/py/webnotes/model/code.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/table/js/table.js": "1315388112", "js/app.js": "1315467009", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-foot-in-mouth.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.donutRenderer.js": "1315388133", "lib/docs/_build/html/_modules/webnotes/utils/transfer.html": "1310636183", "lib/py/webnotes/model/doclist.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/media/img/flash.gif": "1315388112", "lib/docs/old/_sources/page_cookbook.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.barRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/preview/preview.html": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.categoryAxisRenderer.js": "1315388133", "lib/js/wn/xmlhttp.js": "1313753523", "lib/js/legacy/tiny_mce_33/plugins/media/css/content.css": "1315388112", "lib/py/webnotes/defs_template.py": "1315388133", "lib/docs/old/_sources/server_side_script.txt": "1310636183", "lib/docs/_build/html/core.doctype.stylesheet.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/file_manager.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/print/editor_plugin_src.js": "1315388112", "lib/js/legacy/utils/browser_detect.js": "1315388112", "lib/js/legacy/globals.js": "1315296043", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-innocent.gif": "1315388112", "lib/README.md": "1315393952", "lib/docs/old/_static/navigation.png": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/media/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/attributes.js": "1315388112", "lib/docs/_build/doctrees/webnotes.model.doctree": "1310636182", "lib/docs/old/glossary.html": "1310636183", "lib/docs/old/_sources/client_side_cookbook.txt": "1310636183", "lib/docs/old/_sources/webnotes.txt": "1310636183", "lib/py/webnotes/utils/sitemap.py": "1315388111", "lib/docs/_build/html/_sources/webnotes.widgets.txt": "1310636183", "lib/docs/webnotes.utils.txt": "1310636183", "lib/docs/old/page_server.html": "1310636183", "lib/js/legacy/wn/widgets/footer.js": "1315388112", "lib/css/legacy/images/ui-icons_2e83ff_256x240.png": "1315388111", "lib/docs/old/_sources/listing.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes.html": "1310636183", "lib/js/legacy/webpage/search.js": "1315388133", "lib/js/legacy/utils/datatype.js": "1315388112", "lib/py/webnotes/utils/backups.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/legacyoutput/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/db_schema.html": "1310636183", "lib/conf/conf.py": "1314099127", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/editor_plugin.js": "1315388112", "lib/docs/old/_sources/admin_login.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/dialog.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/props.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasTextRenderer.js": "1315388133", "lib/py/webnotes/utils/file_manager.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/table/row.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/css/content.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/acronym.js": "1315388112", "lib/js/legacy/utils/datetime.js": "1315388112", "lib/docs/old/utils_server.html": "1310636183", "lib/docs/_build/doctrees/modules.doctree": "1310636182", "lib/py/webnotes/install_lib/db_init.py": "1315388110", "lib/docs/_build/html/_modules/webnotes/modules.html": "1310636183", "lib/docs/_build/html/_modules/index.html": "1310636182", "lib/js/legacy/tiny_mce_33/license.txt": "1315388112", "lib/docs/_build/html/core.doctype.page.html": "1310636183", "lib/docs/_build/doctrees/index.doctree": "1310636182", "lib/js/core.min.js": "1315467101", "lib/js/legacy/jquery/jqplot-plugins/jqplot.bubbleRenderer.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/nonbreaking/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/menus.html": "1310636183", "lib/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png": "1315388111", "lib/docs/_build/html/search.html": "1310636183", "lib/docs/core.doctype.page.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/alert.gif": "1315388112", "lib/docs/_build/doctrees/core.page.doctree": "1310636182", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/del.js": "1315388112", "lib/docs/_build/html/_sources/core.doctype.stylesheet.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/button.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/editor_plugin_src.js": "1315388112", "lib/js/legacy/widgets/print_query.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/example/editor_plugin_src.js": "1315388112", "lib/docs/_build/doctrees/webnotes.install_lib.doctree": "1310636182", "lib/docs/old/doc.html": "1310636183", "lib/docs/old/_static/default.css": "1310636183", "lib/docs/core.doctype.property_setter.txt": "1310636183", "lib/js/legacy/tiny_mce_33/tiny_mce_popup.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.json2.js": "1315388133", "lib/docs/old/form_widget.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/img/trans.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/fullpage/css/fullpage.css": "1315388112", "lib/docs/_build/html/_modules/core/doctype/stylesheet/stylesheet.html": "1310636182", "lib/py/webnotes/auth.py": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/js/source_editor.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.BezierCurveRenderer.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ciParser.js": "1315388133", "config/conf.py": "1315213903", "lib/docs/old/profile.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/css/cell.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/preview/jscripts/embed.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/insertdatetime/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-smile.gif": "1315388112", "lib/py/webnotes/widgets/form.py": "1315388133", "lib/py/webnotes/widgets/query_builder.py": "1315388133", "lib/docs/old/creating_entities.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.doctype_mapper.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/menu_check.gif": "1315388112", "lib/docs/backupall.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-wink.gif": "1315388112", "lib/docs/old/_sources/doclist.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-cry.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-frown.gif": "1315388112", "lib/docs/core.page.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/anchor.htm": "1315388112", "lib/py/webnotes/modules/patch.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/table/editor_plugin_src.js": "1315388112", "lib/docs/old/_sources/page_server.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/email_lib.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dragable.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.cursor.min.js": "1315388133", "lib/py/webnotes/__init__.py": "1315388133", "lib/py/webnotes/utils/email_lib/__init__.py": "1315388111", "lib/docs/_build/html/_static/underscore.js": "1310636183", "lib/js/legacy/wn/widgets/form/attachments.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/advlink/editor_plugin_src.js": "1315388112", "lib/docs/old/tabbed_page.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/merge_cells.htm": "1315388112", "lib/docs/_build/html/webnotes.utils.email_lib.html": "1310636183", "lib/docs/_build/html/objects.inv": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/template.htm": "1315388112", "lib/docs/core.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/receive.html": "1310636183", "lib/docs/old/db.html": "1310636183", "lib/js/legacy/widgets/form/email.js": "1315388112", "lib/docs/old/doctype.html": "1310636183", "lib/py/webnotes/model/triggers.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/template/css/template.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/contextmenu/editor_plugin.js": "1315388112", "lib/docs/_build/doctrees/core.doctree": "1310636182", "README.md": "1315290621", "lib/docs/_build/html/core.doctype.search_criteria.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/style/css/props.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/js/image.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/page_body.html": "1310636183", "lib/py/webnotes/utils/email_lib/send.py": "1315388111", "lib/docs/_build/html/_sources/backupall.txt": "1310636183", "lib/docs/_build/html/.buildinfo": "1310636182", "lib/js/legacy/widgets/calendar.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/js/props.js": "1315388112", "lib/docs/_build/doctrees/core.doctype.system_console.doctree": "1310636182", "lib/docs/_build/html/_modules/webnotes/session_cache.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/link.js": "1315388112", "lib/py/webnotes/multi_tenant/__init__.py": "1315388110", "lib/docs/old/webnotes.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.barRenderer.js": "1315388133", "lib/js/legacy/wn/widgets/form/sidebar.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/tabs.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/legacyoutput/editor_plugin_src.js": "1315388112", "lib/docs/webnotes.utils.email_lib.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/charmap.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/fullscreen/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/css/searchreplace.css": "1315388112", "lib/py/webnotes/model/__init__.py": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/ui.css": "1315388112", "lib/js/legacy/app.js": "1315460959", "lib/docs/core.doctype.control_panel.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/element_common.js": "1315388112", "lib/docs/index.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/editor_plugin_src.js": "1315388112", "lib/INSTALL.md": "1315394050", "lib/js/legacy/utils/dom.js": "1315292658", "lib/py/webnotes/modules/utils.py": "1315388110", "lib/docs/_build/html/core.doctype.control_panel.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.blockRenderer.js": "1315388133", "lib/docs/_build/html/_sources/modules.txt": "1310636183", "lib/js/legacy/tiny_mce_33/custom_content.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/cite.htm": "1315388112", "lib/css/legacy/grid.css": "1315388111", "lib/docs/_build/html/_modules/webnotes/utils/webservice.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/preview/editor_plugin.js": "1315388112", "lib/py/webnotes/widgets/menus.py": "1315388111", "lib/css/legacy/report.css": "1315388111", "lib/py/webnotes/utils/jslib/jsmin.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/print/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/editor_plugin.js": "1315388112", "lib/docs/old/_sources/server_side_internals.txt": "1310636183", "lib/docs/old/navigation.html": "1310636183", "lib/py/webnotes/session_cache.py": "1315388111", "lib/css/legacy/body.css": "1315388111", "lib/docs/old/_sources/local_data.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/window.css": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/auto_master.html": "1310636183", "lib/docs/old/_sources/client_side_script.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/simple/skins/default/content.css": "1315388112", "lib/js/legacy/tiny_mce_33/utils/validate.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/about.htm": "1315388112", "lib/docs/old/tree.html": "1310636183", "lib/docs/old/_static/contents.png": "1310636183", "lib/js/legacy/webpage/wntoolbar.js": "1315388133", "lib/js/legacy/wn/page_layout.js": "1315388112", "lib/css/ui/overlay.css": "1315470111", "lib/css/legacy/images/ui-icons_222222_256x240.png": "1315388111", "lib/docs/old/creating_roles.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/js/template.js": "1315388112", "lib/docs/old/_sources/email_lib.txt": "1310636183", "lib/docs/old/_sources/what_is_an_app.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/example/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pieRenderer.js": "1315388133", "lib/docs/old/_static/searchtools.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/langs/en_dlg.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dateAxisRenderer.min.js": "1315388133", "lib/docs/old/_static/sphinxdoc.css": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.categoryAxisRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/core.doctype.doctype_mapper.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/nonbreaking/editor_plugin.js": "1315388112", "lib/js/legacy/widgets/report_builder/calculator.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/quicktime.gif": "1315388112", "lib/docs/old/_static/file.png": "1310636183"} \ No newline at end of file diff --git a/erpnext/home/doctype/home_control/home_control.py b/erpnext/home/doctype/home_control/home_control.py index 1f58a5e2361..b25e420f2d3 100644 --- a/erpnext/home/doctype/home_control/home_control.py +++ b/erpnext/home/doctype/home_control/home_control.py @@ -33,9 +33,6 @@ class DocType: ml = sql("select distinct t1.name, t1.module_icon, t1.module_label, t1.module_desc, t1.module_page from `tabModule Def` t1, `tabModule Def Role` t2 where t2.role in ('%s') and t1.disabled !='Yes' and ifnull(t1.is_hidden, 'No') != 'Yes' and t1.name = t2.parent order by t1.module_seq asc" % "','".join(rl), as_dict=1) return ml - def get_login_url(self): - return session['data'].get('login_from', '') - def get_module_details(self,m): ret = {} ret['il'] = sql('select doc_type, doc_name, display_name, icon, description, fields, click_function, idx from `tabModule Def Item` where parent=%s and ifnull(`hide`,0)=0 order by idx asc', m, as_dict=1) @@ -50,6 +47,9 @@ class DocType: AND t2.read=1 AND t2.role IN ("%s") AND ifnull(standard,"No")="No"''' % (m, '", "'.join(webnotes.user.get_roles())), as_dict=1) + + ret['login_url'] = session['data'].get('login_from', '') + return ret # ---------------------------------------------------------------------------------------------------------------- @@ -249,7 +249,12 @@ class DocType: if msg_id and msg_id != webnotes.conn.get_global('system_message_id', session['user']): msg = webnotes.conn.get_global('system_message') - return {'user_count': count and cint(count[0][0]) or 0, 'unread': unread and cint(unread[0][0]) or 0, 'system_message':msg} + return { + 'user_count': count and cint(count[0][0]) or 0, + 'unread': unread and cint(unread[0][0]) or 0, + 'system_message':msg, + 'registration_complete': self.registration_complete() + } # ------------------------------------------------------------------------------------------------------- diff --git a/erpnext/home/page/event_updates/event_updates.js b/erpnext/home/page/event_updates/event_updates.js index e93ed9db639..c869eb83ff0 100644 --- a/erpnext/home/page/event_updates/event_updates.js +++ b/erpnext/home/page/event_updates/event_updates.js @@ -39,9 +39,6 @@ pscript.home_pre_process = function(wrapper) { var banner = $a(wrapper.banner_area, 'div', '', {paddingBottom:'4px'}) banner.innerHTML = cp.client_name; } - - // complete registration - if(in_list(user_roles,'System Manager')) { pscript.complete_registration(); } } // Widgets @@ -78,16 +75,8 @@ pscript.home_make_widgets = function() { } } ] - }) - sidebar.refresh() - - /*$y(cell,{padding:'0px 8px'}); - - new HomeCalendar(new HomeWidget(cell, 'Calendar', 'Event')); - - - new HomeToDo(new HomeWidget(cell, 'To Do', 'Item'));*/ - + }); + new FeedList(wrapper.body); } @@ -618,6 +607,11 @@ pscript.home_make_status = function() { // render online users pscript.online_users_obj.render(r.message.online_users); pscript.online_users = r.message.online_users; + + // complete registration + if(in_list(user_roles,'System Manager')) { + pscript.complete_registration(r.registration_complete); + } // setup wizard if(r.message.setup_status) { @@ -629,54 +623,50 @@ pscript.home_make_status = function() { // complete my company registration // -------------------------------- -pscript.complete_registration = function() -{ - var reg_callback = function(r, rt){ - if(r.message == 'No'){ - var d = new Dialog(400, 200, "Please Complete Your Registration"); - if(user != 'Administrator'){ - d.no_cancel(); // Hide close image - $dh(page_body.wntoolbar.wrapper); - } - $($a(d.body,'div','', {margin:'8px', color:'#888'})).html('Company Name : '+locals['Control Panel']['Control Panel'].company_name); - - d.make_body( - [ - ['Data','Company Abbreviation'], - ['Select','Fiscal Year Start Date'], - ['Select','Default Currency'], - ['Button','Save'], - ]); - - //d.widgets['Save'].disabled = true; // disable Save button - pscript.make_dialog_field(d); - - // submit details - d.widgets['Save'].onclick = function() - { - d.widgets['Save'].set_working(); - - flag = pscript.validate_fields(d); - if(flag) - { - var args = [ - locals['Control Panel']['Control Panel'].company_name, - d.widgets['Company Abbreviation'].value, - d.widgets['Fiscal Year Start Date'].value, - d.widgets['Default Currency'].value - ]; - - $c_obj('Setup Control','setup_account',JSON.stringify(args),function(r, rt){ - sys_defaults = r.message; - d.hide(); - $ds(page_body.wntoolbar.wrapper); - }); - } - } - d.show(); +pscript.complete_registration = function(is_complete) { + if(is_complete == 'No'){ + var d = new Dialog(400, 200, "Please Complete Your Registration"); + if(user != 'Administrator'){ + d.no_cancel(); // Hide close image + $dh(page_body.wntoolbar.wrapper); } + $($a(d.body,'div','', {margin:'8px', color:'#888'})).html('Company Name : '+locals['Control Panel']['Control Panel'].company_name); + + d.make_body( + [ + ['Data','Company Abbreviation'], + ['Select','Fiscal Year Start Date'], + ['Select','Default Currency'], + ['Button','Save'], + ]); + + //d.widgets['Save'].disabled = true; // disable Save button + pscript.make_dialog_field(d); + + // submit details + d.widgets['Save'].onclick = function() + { + d.widgets['Save'].set_working(); + + flag = pscript.validate_fields(d); + if(flag) + { + var args = [ + locals['Control Panel']['Control Panel'].company_name, + d.widgets['Company Abbreviation'].value, + d.widgets['Fiscal Year Start Date'].value, + d.widgets['Default Currency'].value + ]; + + $c_obj('Setup Control','setup_account',JSON.stringify(args),function(r, rt){ + sys_defaults = r.message; + d.hide(); + $ds(page_body.wntoolbar.wrapper); + }); + } + } + d.show(); } - $c_obj('Home Control','registration_complete','',reg_callback); } // make dialog fields diff --git a/erpnext/setup/page/import_data/import_data.html b/erpnext/setup/page/import_data/import_data.html index 5b30dd28cf5..d227c2c0beb 100644 --- a/erpnext/setup/page/import_data/import_data.html +++ b/erpnext/setup/page/import_data/import_data.html @@ -45,7 +45,7 @@

Import Log:

- +
diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js index 942f4effc5d..6f967ff604f 100644 --- a/erpnext/startup/startup.js +++ b/erpnext/startup/startup.js @@ -43,18 +43,7 @@ function startup_setup() { // ------------------ $dh(page_body.footer); - // for logout and payment - var callback = function(r,rt) { - if(r.message){ - login_file = 'http://' + r.message; - } - else if(pscript.is_erpnext_saas) { - login_file = 'https://www.erpnext.com'; - } - // setup toolbar - pscript.startup_setup_toolbar(); - } - $c_obj('Home Control', 'get_login_url', '', callback); + pscript.startup_setup_toolbar(); } // ==================================================================== @@ -63,6 +52,15 @@ pscript.startup_make_sidebar = function() { $y(page_body.left_sidebar, {width:(100/6)+'%', paddingTop:'8px'}); var callback = function(r,rt) { + // login url + if(r.login_url){ + login_file = 'http://' + r.message; + } + else if(pscript.is_erpnext_saas) { + login_file = 'https://www.erpnext.com'; + } + + // menu var ml = r.message; diff --git a/index.cgi b/index.cgi index d203f3061df..da52ef11864 100755 --- a/index.cgi +++ b/index.cgi @@ -17,5 +17,26 @@ webnotes.form = cgi.FieldStorage() for key in webnotes.form.keys(): webnotes.form_dict[key] = webnotes.form.getvalue(key) -# pass on to legacy handler -import webnotes.handler +# url comes with sid, redirect to html, sid set and all +if 'sid' in webnotes.form_dict: + import webnotes.auth + import webnotes.widgets.page_body + + webnotes.auth.HTTPRequest() + + print "Content-Type: text/html" + + # print cookies, if there ar additional cookies defined during the request, add them here + if webnotes.cookies or webnotes.add_cookies: + for c in webnotes.add_cookies.keys(): + webnotes.cookies[c] = webnotes.add_cookies[c] + + print webnotes.cookies + + print + print webnotes.widgets.page_body.redirect_template % ('Redirecting...', 'index.html') + +else: + # pass on to legacy handler + import webnotes.handler + diff --git a/index.html b/index.html index c84d9efaeab..91b10321ee6 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ ERPNext - +throw new SyntaxError('JSON.parse');};}}());wn.require("lib/js/lib/jquery.min.js");wn.require("lib/js/lib/history/history.min.js");$(document).bind('ready',function(){var base=window.location.href.split('#')[0];$.each($('a[softlink!="false"]'),function(i,v){if(v.href.substr(0,base.length)==base){var path=(v.href.substr(base.length));if(path.substr(0,1)!='#'){v.href=base+'#'+path;}}});if(!wn.settings.no_history&&window.location.hash){wn.page.set(window.location.hash.substr(1));}});
diff --git a/js/app.js b/js/app.js index a2ca08dcd81..4db3c1edf4b 100644 --- a/js/app.js +++ b/js/app.js @@ -1,3 +1,5 @@ +wn.settings.no_history = true; + wn.require('lib/js/lib/jquery.min.js'); wn.require('lib/js/wn/ui/status_bar.js'); diff --git a/todo.md b/todo.md index e20d7585702..27b8a1bd580 100644 --- a/todo.md +++ b/todo.md @@ -1,7 +1,10 @@ x icons - msgprint / toolbar x history integration +x loading bar +x blank.html issues +x double (init) loading issue +x redirect (sid) issue -- loading bar - release - breakup - form From 5caedffff807891f87f3f58024a407e1ce56093b Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 8 Sep 2011 15:45:37 +0530 Subject: [PATCH 10/84] fixes to buttons etc --- config/_timestamps.js | 2 +- erpnext/home/page/dashboard/dashboard.js | 10 +++++----- erpnext/home/page/event_updates/event_updates.js | 4 ++-- index.html | 2 +- js/app.js | 3 +-- todo.md | 3 ++- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/_timestamps.js b/config/_timestamps.js index 55abb8d97f4..a7b2a37281d 100644 --- a/config/_timestamps.js +++ b/config/_timestamps.js @@ -1 +1 @@ -{"lib/js/legacy/widgets/autosuggest.js": "1315388112", "lib/docs/old/menus_server.html": "1310636183", "lib/css/legacy/calendar.css": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/paste/js/pastetext.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/searchreplace.htm": "1315388112", "lib/docs/old/admin_login.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/table/js/row.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/install_lib/install.html": "1310636183", "lib/js/legacy/utils/msgprint.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/css/attributes.css": "1315388112", "lib/js/legacy/jquery/excanvas.min.js": "1315388112", "lib/js/wn/provide.js": "1315299987", "lib/docs/old/auth.html": "1310636183", "lib/docs/old/_sources/page_body.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasTextRenderer.min.js": "1315388133", "lib/images/icons/folder.gif": "1311752688", "lib/js/legacy/build.json": "1315296252", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dragable.min.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dateAxisRenderer.js": "1315388133", "lib/docs/old/_sources/save_submit.txt": "1310636183", "lib/docs/_build/html/core.doctype.system_console.html": "1310636183", "lib/js/legacy/widgets/form/fields.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/autoresize/editor_plugin_src.js": "1315388112", "lib/docs/old/_static/pygments.css": "1310636183", "lib/docs/_build/doctrees/core.doctype.module_def.doctree": "1310636182", "lib/css/legacy/forms.css": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/emotions/editor_plugin.js": "1315388112", "lib/js/legacy/webpage/loaders.js": "1315466601", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/ui_black.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/image.htm": "1315388112", "lib/docs/old/_sources/utils_server.txt": "1310636183", "lib/py/webnotes/.no_timestamps": "1315392243", "lib/docs/old/db_schema.html": "1310636183", "lib/js/lib/superfish/hoverIntent.js": "1201705878", "lib/docs/old/_sources/module.txt": "1310636183", "lib/docs/old/index.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/iespell/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/trans.gif": "1315388112", "lib/docs/old/_sources/profile.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/editor_template_src.js": "1315388112", "lib/js/legacy/widgets/report_builder/report_builder.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/del.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/flv_player.swf": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/contextmenu/editor_plugin_src.js": "1315388112", "lib/js/wn/ui/status_bar.js": "1315303532", "lib/css/legacy/wntoolbar.css": "1315293967", "lib/js/legacy/tiny_mce_33/plugins/media/js/embed.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/simple/skins/o2k7/ui.css": "1315388112", "lib/images/ui/vote_up.gif": "1311752688", "lib/py/webnotes/widgets/__init__.py": "1315388111", "lib/py/webnotes/tests.py": "1315388111", "lib/docs/_static/default.css": "1310636183", "lib/py/webnotes/install_lib/__init__.py": "1315388110", "lib/conf/Framework.sql": "1311752687", "lib/css/legacy/jqplot.css": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.meterGaugeRenderer.min.js": "1315388133", "lib/docs/generate_modules.py": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/langs/en_dlg.js": "1315388112", "lib/images/icons/plus.gif": "1311752688", "lib/docs/_build/html/_modules/webnotes/widgets/form.html": "1310636183", "lib/docs/old/_sources/webservice.txt": "1310636183", "lib/js/legacy/wn/widgets/listing.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-cool.gif": "1315388112", "lib/js/legacy/wn/widgets/page_sidebar.js": "1315388112", "images/module-icons.png": "1310447333", "lib/docs/old/webnotes_intro.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/emotions.htm": "1315388112", "lib/docs/_build/html/_modules/webnotes/modules/import_module.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.min.js": "1315388133", "lib/js/legacy/widgets/form/form_grid.js": "1315388133", "lib/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/autosave/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/_sources/webnotes.utils.email_lib.txt": "1310636183", "lib/docs/_build/doctrees/core.doctype.control_panel.doctree": "1310636182", "lib/js/legacy/model/doclist.js": "1315388112", "lib/docs/_build/html/_sources/core.doctype.module_def.txt": "1310636183", "lib/js/legacy/widgets/tree.js": "1315294071", "lib/docs/webnotes.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/autoresize/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/todo.html": "1310636183", "lib/js/legacy/tiny_mce_33/.no_timpestamps": "1315461100", "lib/js/legacy/jquery/jqplot-plugins/jqplot.enhancedLegendRenderer.min.js": "1315388133", "lib/docs/_build/html/_sources/webnotes.txt": "1310636183", "lib/docs/_build/html/core.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/js/searchreplace.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-tongue-out.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/table/css/table.css": "1315388112", "lib/docs/old/creating_reports.html": "1310636183", "lib/docs/core.doctype.module_def.txt": "1310636183", "lib/py/webnotes/model/meta.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/visualchars/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/insertdatetime/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/template.htm": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/search.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/modules/compress.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/model/doctype.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/query_builder.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.txt": "1310636183", "lib/js/legacy/widgets/form/form_comments.js": "1315388112", "lib/py/tests.py": "1313132642", "lib/docs/old/autosuggest.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.highlighter.min.js": "1315388133", "lib/py/webnotes/utils/transfer.py": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.donutRenderer.min.js": "1315388133", "lib/js/legacy/wn/widgets/dialog.js": "1315293231", "lib/css/legacy/images/ui-icons_cd0a0a_256x240.png": "1315388111", "lib/py/__init__.py": "1313570887", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/ui_silver.css": "1315388112", "lib/js/wn/require.js": "1313755415", "lib/docs/old/_sources/navigation.txt": "1310636183", "lib/docs/old/writing_scripts.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.logAxisRenderer.js": "1315388133", "lib/images/ui/vote_down.gif": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-embarassed.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoRenderer.min.js": "1315388133", "lib/docs/_build/html/_modules/core/doctype/page/page.html": "1310636182", "lib/docs/old/_static/jquery.js": "1310636183", "lib/docs/_build/html/_modules/webnotes/install_lib/db_init.html": "1310636183", "lib/docs/old/sitemap.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/pypi-setup.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/charmap.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ohlcRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-yell.gif": "1315388112", "lib/js/legacy/widgets/report_builder/datatable.js": "1315388112", "lib/docs/old/what_is_an_app.html": "1310636183", "lib/css/legacy/tabs.css": "1315388111", "lib/py/webnotes/widgets/auto_master.py": "1315388111", "lib/docs/_build/html/_sources/pypi-setup.txt": "1310636183", "lib/css/base.css": "1314774281", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/css/popup.css": "1315388112", "lib/docs/_build/html/core.doctype.doctype.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/directionality/editor_plugin.js": "1315388112", "lib/docs/old/_sources/client_side_widgets.txt": "1310636183", "lib/py/webnotes/utils/email_lib/form_email.py": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/example/langs/en.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-sealed.gif": "1315388112", "lib/docs/old/_sources/creating_reports.txt": "1310636183", "lib/docs/_build/html/core.doctype.html": "1310636183", "lib/docs/old/_sources/creating_profiles.txt": "1310636183", "lib/py/webnotes/db.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/preview/editor_plugin_src.js": "1315388112", "lib/py/webnotes/widgets/page.py": "1315388133", "lib/js/legacy/widgets/export_query.js": "1315388112", "lib/docs/_build/html/py-modindex.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/jsmin.html": "1310636183", "lib/js/legacy/webpage/freeze_page.js": "1315292773", "data/master.sql.gz": "1315208679", "lib/js/legacy/tiny_mce_33/plugins/fullpage/fullpage.htm": "1315388112", "lib/docs/old/_sources/report_cookbook.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.json2.min.js": "1315388133", "lib/js/wn/dom.js": "1315303752", "lib/js/legacy/jquery/jqplot-plugins/jqplot.bubbleRenderer.min.js": "1315388133", "lib/docs/old/server_side_script.html": "1310636183", "lib/py/webnotes/widgets/todo.py": "1315388111", "lib/css/ui/status_bar.css": "1315302989", "lib/js/legacy/tiny_mce_33/plugins/advlink/js/advlink.js": "1315388112", "lib/docs/_build/html/core.doctype.property_setter.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.page_template.txt": "1310636183", "lib/css/legacy/jquery-ui.css": "1315388111", "lib/docs/old/database_api.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/visualchars/editor_plugin_src.js": "1315388112", "lib/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png": "1315388111", "lib/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png": "1315388111", "lib/js/legacy/utils/shortcut.js": "1315388112", "lib/py/common.py": "1314349955", "lib/py/webnotes/utils/cache.py": "1315388111", "lib/docs/old/_sources/db.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/paste/editor_plugin.js": "1315388112", "lib/css/legacy/messages.css": "1315388111", "lib/docs/_build/html/webnotes.utils.html": "1310636183", "lib/docs/_build/html/core.doctype.profile.html": "1310636183", "lib/images/icons/wntoolbar-icons.png": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/fullscreen/editor_plugin_src.js": "1315388112", "lib/docs/pypi-setup.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/media/img/shockwave.gif": "1315388112", "lib/docs/old/_sources/creating_pages.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/blank.htm": "1315388112", "lib/docs/old/_sources/db_schema.txt": "1310636183", "lib/docs/old/searchindex.js": "1310636183", "lib/js/lib/history/history.min.js": "1315467128", "lib/js/legacy/tiny_mce_33/plugins/advhr/js/rule.js": "1315388112", "lib/docs/_build/html/_sources/core.page.txt": "1310636183", "lib/docs/old/report_builder.html": "1310636183", "lib/js/legacy/widgets/form/form.js": "1315388134", "lib/js/legacy/jquery/jqplot-plugins/jqplot.meterGaugeRenderer.js": "1315388133", "lib/docs/old/genindex.html": "1310636183", "lib/js/legacy/widgets/form/form_container.js": "1315388112", "lib/docs/old/.buildinfo": "1310636183", "lib/docs/_build/doctrees/webnotes.doctree": "1310636182", "lib/docs/_build/html/_static/searchtools.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/image.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/img/wline.gif": "1315388112", "lib/js/legacy/widgets/tabbedpage.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/realmedia.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/link.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/img/sample.gif": "1315388112", "lib/docs/_build/doctrees/core.doctype.search_criteria.doctree": "1310636182", "lib/docs/old/_static/doctools.js": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/cite.js": "1315388112", "lib/css/legacy/autosuggest.css": "1315388111", "lib/docs/core.doctype.doctype.txt": "1310636183", "lib/py/webnotes/model/modules.py": "1315388110", "lib/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png": "1315388111", "lib/docs/_build/html/webnotes.model.html": "1310636183", "lib/js/legacy/widgets/form/form_header.js": "1315388112", "lib/docs/old/creating_pages.html": "1310636183", "lib/docs/_build/doctrees/core.doctype.doctype.doctree": "1310636182", "lib/py/build/__main__.py": "1315392289", "lib/js/legacy/jquery/jqplot-plugins/jqplot.funnelRenderer.js": "1315388133", "lib/py/build/markdown2_extn.py": "1315392289", "lib/py/build/minify.py": "1315392289", "lib/py/webnotes/utils/jslib/jstimestamp.py": "1315388133", "lib/docs/_build/html/_static/jquery.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/menu_arrow.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/content.css": "1315388112", "lib/js/lib/superfish/css/superfish.css": "1313760672", "lib/js/legacy/tiny_mce_33/plugins/noneditable/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-undecided.gif": "1315388112", "lib/py/webnotes/utils/scheduler.py": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.logAxisRenderer.min.js": "1315388133", "lib/docs/old/client_side_script.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.profile.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/follow.html": "1310636183", "lib/py/webnotes/profile.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/table/table.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/wordcount/editor_plugin_src.js": "1315388112", "lib/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/autosave/langs/en.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/tabfocus/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/editor_plugin_src.js": "1315388112", "lib/docs/old/doclist.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/cache.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/about.js": "1315388112", "lib/docs/_build/html/core.page.html": "1310636183", "lib/js/legacy/utils/rsh.compressed.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/image.htm": "1315388112", "lib/docs/_build/html/_modules/webnotes/modules/export_module.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.trendline.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg.png": "1315388112", "lib/docs/old/search.html": "1310636183", "lib/js/legacy/jquery/jquery.flot.js": "1315388112", "lib/docs/Makefile": "1310636182", "lib/css/legacy/images/ui-icons_454545_256x240.png": "1315388111", "lib/conf/sitemap.xml": "1315388112", "lib/js/legacy/tiny_mce_33/themes/simple/skins/o2k7/img/button_bg.png": "1315388112", "lib/css/legacy/user.css": "1315388111", "lib/docs/old/client_side_widgets.html": "1310636183", "lib/docs/core.doctype.search_criteria.txt": "1310636183", "lib/conf/apache.conf": "1313640120", "lib/js/legacy/tiny_mce_33/plugins/table/js/merge_cells.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/css/media.css": "1315388112", "lib/py/webnotes/tests/__init__.py": "1315388111", "lib/js/legacy/webpage/page_header.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.blockRenderer.min.js": "1315388133", "lib/js/legacy/jquery/jquery.min.js": "1315388112", "lib/docs/old/_static/plus.png": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-money-mouth.gif": "1315388112", "lib/docs/_build/html/searchindex.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/anchor.js": "1315388112", "lib/docs/core.doctype.custom_field.txt": "1310636183", "lib/docs/_build/html/_sources/core.doctype.search_criteria.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advhr/css/advhr.css": "1315388112", "lib/docs/modules.txt": "1310636183", "lib/docs/_build/html/core.doctype.page_template.html": "1310636183", "lib/py/webnotes/model/utils.py": "1315388133", "lib/docs/old/_static/basic.css": "1310636183", "lib/docs/_build/doctrees/webnotes.utils.email_lib.doctree": "1310636182", "lib/js/legacy/widgets/dialog.js": "1315388112", "lib/js/lib/jquery.min.js": "1313062880", "lib/docs/old/_sources/database_api.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pieRenderer.min.js": "1315388133", "lib/docs/old/server_side_internals.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/paste/js/pasteword.js": "1315388112", "lib/py/webnotes/utils/webservice.py": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/iespell/editor_plugin_src.js": "1315388112", "lib/docs/webnotes.install_lib.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/media/img/windowsmedia.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/attributes.htm": "1315388112", "lib/docs/_build/doctrees/webnotes.widgets.doctree": "1310636182", "lib/py/build/nav.py": "1315392289", "lib/js/lib/superfish/superfish.min.js": "1315465309", "lib/js/legacy/tiny_mce_33/plugins/fullpage/editor_plugin_src.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisLabelRenderer.min.js": "1315388133", "lib/docs/_build/doctrees/core.doctype.letter_head.doctree": "1310636182", "lib/docs/webnotes.modules.txt": "1310636183", "lib/js/legacy/jquery/jquery.jqplot.min.js": "1315388133", "lib/js/legacy/wnf.compressed.js": "1315466607", "lib/css/layout.css": "1313603562", "lib/docs/old/_sources/creating_doctypes.txt": "1310636183", "lib/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png": "1315388111", "lib/js/legacy/tiny_mce_33/themes/advanced/editor_template.js": "1315388112", "lib/js/legacy/widgets/layout.js": "1315388112", "lib/docs/webnotes.model.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/event.html": "1310636183", "lib/docs/old/save_submit.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/fullpage/js/fullpage.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/triggers.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/tabfocus/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/ins.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pointLabels.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/directionality/editor_plugin_src.js": "1315388112", "lib/docs/conf.py": "1315388111", "lib/docs/old/_sources/autosuggest.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/layer/editor_plugin.js": "1315388112", "lib/docs/old/_sources/auth.txt": "1310636183", "lib/py/webnotes/model/doc.py": "1315388110", "lib/js/legacy/tiny_mce_33/themes/simple/editor_template_src.js": "1315388112", "lib/docs/core.doctype.doctype_mapper.txt": "1310636183", "lib/docs/old/_sources/intro.txt": "1310636183", "lib/js/legacy/widgets/listing.js": "1315388112", "lib/docs/old/_sources/menus_server.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/fullpage/editor_plugin.js": "1315388112", "lib/docs/old/creating_profiles.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.system_console.txt": "1310636183", "lib/docs/old/module.html": "1310636183", "lib/css/legacy/bw-icons.css": "1315293977", "lib/docs/_build/doctrees/core.doctype.profile.doctree": "1310636182", "lib/docs/_build/html/_static/default.css": "1310636183", "lib/docs/_build/doctrees/core.doctype.doctype_mapper.doctree": "1310636182", "lib/docs/old/build_app.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/js/cell.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/send.html": "1310636183", "lib/css/legacy/sidebar.css": "1315388111", "lib/js/legacy/tiny_mce_33/themes/simple/skins/o2k7/content.css": "1315388112", "lib/docs/_build/html/genindex.html": "1310636183", "lib/docs/_build/html/_modules/core/doctype/property_setter/property_setter.html": "1310636182", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/css/content.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/langs/en_dlg.js": "1315388112", "lib/js/core.js": "1315467083", "lib/docs/_build/html/_modules/webnotes/utils/archive.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/model/modules.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/modules/patch.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advlink/link.htm": "1315388112", "lib/docs/_build/html/webnotes.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/nestedset.html": "1310636183", "lib/docs/old/code.html": "1310636183", "lib/py/build/timestamps.py": "1315392289", "lib/images/icons/close.gif": "1311752688", "lib/docs/_build/html/_static/doctools.js": "1310636183", "lib/images/ui/button-load.gif": "1311752688", "lib/docs/_build/html/_static/sidebar.js": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advimage/editor_plugin.js": "1315388112", "lib/js/legacy/webpage/spinner.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/db.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/editor_plugin.js": "1315388112", "lib/docs/old/_sources/glossary.txt": "1310636183", "lib/docs/_build/doctrees/core.doctype.stylesheet.doctree": "1310636182", "lib/docs/old/page_cookbook.html": "1310636183", "lib/js/legacy/tiny_mce_33/tiny_mce_src.js": "1315388112", "lib/js/legacy/widgets/form/form_fields.js": "1315388133", "lib/py/webnotes/utils/jslib/jsnamespace.py": "1315388133", "lib/docs/_build/html/_modules/webnotes/profile.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/layer/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/backupall.html": "1310636183", "lib/docs/_build/html/_sources/webnotes.multi_tenant.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/js/emotions.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/langs/en_dlg.js": "1315388112", "lib/docs/old/_sources/javascript_utils.txt": "1310636183", "lib/py/webnotes/utils/nestedset.py": "1315388133", "lib/docs/_build/doctrees/webnotes.utils.doctree": "1310636182", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/ui.css": "1315388112", "lib/js/legacy/tiny_mce_33/utils/mctabs.js": "1315388112", "lib/docs/_build/html/_sources/webnotes.model.txt": "1310636183", "index.html": "1315470121", "lib/docs/_build/html/_static/plus.png": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/encrypt.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/css/row.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/template/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg_silver.png": "1315388112", "lib/js/legacy/webpage/uploader.js": "1315388112", "lib/js/legacy/widgets/form/print_format.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/paste/pastetext.htm": "1315388112", "lib/js/legacy/widgets/list_selector.js": "1315388112", "lib/docs/old/intro.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/img/icons.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ohlcRenderer.js": "1315388133", "lib/docs/_build/doctrees/environment.pickle": "1310636182", "lib/docs/old/listing.html": "1310636183", "lib/docs/old/_sources/webnotes_intro.txt": "1310636183", "lib/py/webnotes/modules/module_manager.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/media/js/media.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/langs/en.js": "1315388112", "lib/docs/old/creating_doctypes.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-surprised.gif": "1315388112", "lib/docs/_build/html/_sources/core.doctype.page.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/model/import_docs.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/save/editor_plugin_src.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisLabelRenderer.js": "1315388133", "lib/py/webnotes/model/db_schema.py": "1315388133", "lib/js/legacy/wn/modules.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasOverlay.js": "1315388133", "lib/py/webnotes/utils/jslib/jsdependency.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/example/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/acronym.htm": "1315388112", "lib/docs/_build/html/core.doctype.module_def.html": "1310636183", "lib/js/lib/superfish/images/arrows-ffffff.png": "1215426588", "lib/js/legacy/tiny_mce_33/plugins/paste/langs/en_dlg.js": "1315388112", "todo.md": "1315468953", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-laughing.gif": "1315388112", "lib/docs/_build/doctrees/webnotes.multi_tenant.doctree": "1310636182", "lib/docs/_build/html/_static/README": "1310636183", "lib/py/webnotes/defs.py": "1315227569", "lib/js/legacy/tiny_mce_33/plugins/wordcount/editor_plugin.js": "1315388112", "lib/js/legacy/utils/json.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/doc.html": "1310636183", "lib/js/legacy/webpage/body.js": "1315388112", "lib/js/build.json": "1315296571", "lib/js/legacy/tiny_mce_33/plugins/bbcode/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/example/js/dialog.js": "1315388112", "lib/docs/old/javascript_utils.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.control_panel.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advimage/langs/en_dlg.js": "1315388112", "lib/docs/_static/pygments.css": "1310636183", "lib/docs/old/_sources/server_side_api.txt": "1310636183", "lib/docs/old/_sources/creating_entities.txt": "1310636183", "lib/py/webnotes/widgets/event.py": "1315388111", "lib/js/legacy/jquery/jqplot-plugins/jqplot.highlighter.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/fullscreen/fullscreen.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/autosave/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/save/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/multi_tenant/setup.html": "1310636183", "lib/js/wn/ui/overlay.js": "1315302025", "lib/js/legacy/tiny_mce_33/plugins/fullpage/langs/en_dlg.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/doclist.html": "1310636183", "lib/docs/old/apps_intro.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advlink/editor_plugin.js": "1315388112", "lib/docs/_build/html/_static/basic.css": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/form_email.html": "1310636183", "lib/docs/old/dialog.html": "1310636183", "lib/docs/_build/doctrees/backupall.doctree": "1310636182", "lib/docs/old/_sources/doc.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/langs/en_dlg.js": "1315388112", "lib/docs/_build/html/_static/minus.png": "1310636183", "lib/conf/app.js": "1315303458", "lib/docs/_build/html/_modules/core/doctype/page_template/page_template.html": "1310636182", "lib/js/lib/superfish/css/superfish-vertical.css": "1215403280", "lib/conf/index.cgi": "1315226068", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/editor_plugin.js": "1315388112", "lib/docs/old/_sources/server_side_cookbook.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/tags.html": "1310636183", "lib/js/legacy/tiny_mce_33/utils/editable_selects.js": "1315388112", "lib/js/legacy/widgets/form/clientscriptAPI.js": "1315388133", "lib/css/legacy/default.css": "1315308592", "lib/docs/old/concepts.html": "1310636183", "lib/docs/old/_sources/index.txt": "1310636183", "lib/docs/_build/html/_sources/core.doctype.letter_head.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/sitemap.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/simple/editor_template.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advlist/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/auth.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.cursor.js": "1315388133", "lib/py/webnotes/model/doctype.py": "1315389550", "lib/docs/_build/html/index.html": "1310636183", "lib/js/legacy/tiny_mce_33/langs/en.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/editor_plugin.js": "1315388112", "lib/js/lib/superfish/images/shadow.png": "1215861254", "lib/docs/_build/html/webnotes.widgets.html": "1310636183", "lib/py/webnotes/multi_tenant/query_parser.py": "1315388110", "lib/js/legacy/tiny_mce_33/themes/simple/langs/en.js": "1315388112", "lib/css/skeleton.css": "1313603562", "lib/js/legacy/wn/widgets/filters.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/media.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advlist/editor_plugin.js": "1315388112", "lib/py/webnotes/widgets/tags.py": "1315388133", "lib/docs/old/_sources/sitemap.txt": "1310636183", "lib/images/ui/spinner.gif": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/template/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/img/pagebreak.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.BezierCurveRenderer.min.js": "1315388133", "lib/py/webnotes/utils/__init__.py": "1315388133", "lib/py/webnotes/tests/modules.py": "1315388111", "lib/py/build/bundle.py": "1315392289", "lib/docs/README": "1310636182", "lib/js/legacy/widgets/select.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/code.html": "1310636183", "lib/js/legacy/widgets/menu.js": "1315460930", "lib/docs/_build/html/_sources/core.doctype.custom_field.txt": "1310636183", "lib/js/legacy/webpage/history.js": "1315466093", "lib/docs/old/_sources/build_app.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/simple/skins/default/ui.css": "1315388112", "lib/js/legacy/utils/handler.js": "1315388133", "lib/docs/old/_sources/writing_scripts.txt": "1310636183", "lib/py/webnotes/widgets/page_body.py": "1315388111", "lib/attribution.md": "1315468210", "lib/docs/_build/html/_sources/webnotes.utils.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/color_picker.js": "1315388112", "lib/py/webnotes/model/sql_sync.py": "1315388110", "lib/docs/_build/html/core.doctype.custom_field.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/cell.htm": "1315388112", "lib/docs/_build/html/modules.html": "1310636183", "lib/js/legacy/webpage/page.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/style/editor_plugin_src.js": "1315388112", "lib/docs/_static/wnflogo200.gif": "1310636183", "lib/css/legacy/listing.css": "1315388111", "lib/js/legacy/wn/widgets/doc_column_view.js": "1315388112", "lib/py/webnotes/widgets/search.py": "1315388133", "lib/docs/old/_sources/doctype.txt": "1310636183", "lib/docs/old/local_data.html": "1310636183", "lib/docs/_build/doctrees/core.doctype.page.doctree": "1310636182", "lib/js/legacy/widgets/tags.js": "1315388112", "lib/docs/_build/html/_sources/webnotes.install_lib.txt": "1310636183", "lib/js/legacy/utils/printElement.js": "1315388112", "lib/docs/_build/doctrees/core.doctype.property_setter.doctree": "1310636182", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/corners.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/content.css": "1315388112", "lib/js/legacy/webpage/error_console.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.js": "1315388133", "lib/conf/_conf.py": "1314099136", "lib/py/watch.py": "1314101731", "lib/py/webnotes/utils/email_lib/html2text.py": "1315388111", "lib/py/webnotes/utils/archive.py": "1315388111", "lib/docs/_build/html/webnotes.multi_tenant.html": "1310636183", "lib/docs/core.doctype.system_console.txt": "1310636183", "templates/index.html": "1315304305", "lib/js/legacy/tiny_mce_33/plugins/paste/pasteword.htm": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/items.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.trendline.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/abbr.htm": "1315388112", "lib/docs/webnotes.multi_tenant.txt": "1310636183", "lib/docs/old/server_side_api.html": "1310636183", "lib/py/webnotes/install_lib/install.py": "1315388133", "lib/docs/core.doctype.profile.txt": "1310636183", "lib/py/webnotes/model/import_docs.py": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoRenderer.js": "1315388133", "lib/docs/_build/html/_sources/core.doctype.property_setter.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/img/colorpicker.jpg": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/preview/example.html": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ciParser.min.js": "1315388133", "lib/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png": "1315388111", "lib/docs/core.doctype.stylesheet.txt": "1310636183", "lib/py/webnotes/utils/encrypt.py": "1315388111", "lib/js/legacy/widgets/form/attachments.js": "1315388112", "lib/js/legacy/widgets/report_builder/bargraph.js": "1315388112", "lib/py/webnotes/multi_tenant/setup.py": "1315388110", "lib/docs/_build/doctrees/pypi-setup.doctree": "1310636182", "lib/docs/old/server_side_cookbook.html": "1310636183", "lib/docs/old/_static/minus.png": "1310636183", "lib/js/legacy/model/local_data.js": "1315388112", "lib/docs/_build/html/webnotes.modules.html": "1310636183", "favicon.ico": "1311154093", "lib/docs/_build/doctrees/core.doctype.custom_field.doctree": "1310636182", "lib/docs/_build/doctrees/core.doctype.doctree": "1310636182", "lib/py/webnotes/modules/export_module.py": "1315388110", "lib/docs/_build/html/_modules/webnotes/utils/scheduler.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/paste/editor_plugin_src.js": "1315388112", "lib/docs/old/_sources/tabbed_page.txt": "1310636183", "lib/py/webnotes/handler.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/css/advimage.css": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/source_editor.htm": "1315388112", "lib/docs/_build/doctrees/webnotes.modules.doctree": "1310636182", "lib/docs/_build/html/core.doctype.letter_head.html": "1310636183", "lib/docs/core.doctype.page_template.txt": "1310636183", "lib/docs/old/_sources/apps_intro.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/progress.gif": "1315388112", "lib/js/legacy/form.compressed.js": "1315465310", "lib/js/lib/superfish/make_superfish.js": "1313759992", "lib/js/legacy/jquery/jqplot-plugins/jqplot.enhancedLegendRenderer.js": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/buttons.png": "1315388112", "lib/css/legacy/images/ui-icons_888888_256x240.png": "1315388111", "lib/docs/old/report_cookbook.html": "1310636183", "lib/js/legacy/user.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasOverlay.min.js": "1315388133", "lib/docs/core.doctype.letter_head.txt": "1310636183", "lib/css/legacy/doc_column_view.css": "1315388111", "lib/docs/old/modindex.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/dialog.css": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/color_picker.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/rule.htm": "1315388112", "lib/js/legacy/widgets/form/grid.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.funnelRenderer.min.js": "1315388133", "lib/docs/old/_sources/form_server.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils.html": "1310636183", "lib/js/legacy/tiny_mce_33/jquery.tinymce.js": "1315388112", "lib/docs/old/_sources/creating_roles.txt": "1310636183", "lib/conf/__init__.py": "1313737596", "lib/js/legacy/wn/widgets/follow.js": "1315388112", "lib/css/legacy/dialog.css": "1315388111", "lib/docs/_build/html/_modules/webnotes/modules/module_manager.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/example/dialog.htm": "1315388112", "lib/docs/old/client_side_cookbook.html": "1310636183", "lib/images/icons/minus.gif": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/example/img/example.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoAxisRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/ins.htm": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pointLabels.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoAxisRenderer.js": "1315388133", "lib/py/webnotes/modules/__init__.py": "1315391888", "lib/docs/old/form_server.html": "1310636183", "lib/docs/_build/html/_static/pygments.css": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif": "1315388112", "lib/docs/old/_sources/form_widget.txt": "1310636183", "lib/py/webnotes/widgets/follow.py": "1315388111", "INSTALL": "1310447332", "lib/images/icons/icons.png": "1311752688", "lib/js/lib/json2.js": "1313659690", "lib/docs/_build/html/_sources/core.txt": "1310636183", "lib/js/legacy/tiny_mce_33/utils/form_utils.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/simple/img/icons.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/abbr.js": "1315388112", "lib/docs/_build/html/_sources/core.doctype.doctype.txt": "1310636183", "lib/py/webnotes/utils/email_lib/receive.py": "1315388133", "lib/docs/_build/html/_modules/webnotes/widgets/page.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/noneditable/editor_plugin.js": "1315388112", "lib/docs/old/webservice.html": "1310636183", "lib/js/wn/page.js": "1315465871", "lib/docs/old/objects.inv": "1310636183", "lib/docs/_build/doctrees/core.doctype.page_template.doctree": "1310636182", "lib/docs/old/_sources/code.txt": "1310636183", "index.cgi": "1315226068", "lib/docs/old/_sources/dialog.txt": "1310636183", "lib/docs/old/_sources/tree.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/handler.html": "1310636183", "lib/py/build/project.py": "1315392289", "lib/docs/_build/html/_static/wnflogo200.gif": "1310636183", "lib/js/legacy/jquery/jquery-ui.min.js": "1315388112", "lib/docs/_build/html/_static/file.png": "1310636183", "lib/docs/_build/html/webnotes.install_lib.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/model.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg_black.png": "1315388112", "lib/docs/old/_sources/report_builder.txt": "1310636183", "lib/py/build/__init__.py": "1315392289", "lib/js/legacy/tiny_mce_33/plugins/advlink/langs/en_dlg.js": "1315388112", "lib/js/lib/superfish/superfish.js": "1221094330", "lib/js/legacy/webpage/docbrowser.js": "1315388112", "lib/js/wn/assets.js": "1315225379", "lib/js/legacy/report.compressed.js": "1315465312", "lib/js/legacy/tiny_mce_33/plugins/media/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/tiny_mce.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/editor_plugin.js": "1315388112", "lib/docs/core.doctype.txt": "1310636183", "lib/js/legacy/wn/widgets/form/comments.js": "1315388112", "lib/css/legacy/menus.css": "1315388111", "lib/docs/_build/html/_modules/webnotes/tests.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-kiss.gif": "1315388112", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/html2text.html": "1310636183", "lib/docs/old/page_body.html": "1310636183", "lib/docs/old/_sources/concepts.txt": "1310636183", "lib/docs/_static/README": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/bbcode/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/meta.html": "1310636183", "lib/docs/old/email_lib.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advlink/css/advlink.css": "1315388112", "lib/docs/old/_static/banner300910.gif": "1310636183", "lib/docs/_build/html/_sources/index.txt": "1310636183", "lib/docs/webnotes.widgets.txt": "1310636183", "lib/docs/_build/html/_sources/webnotes.modules.txt": "1310636183", "lib/js/legacy/webpage/about.js": "1315388112", "lib/py/webnotes/model/code.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/table/js/table.js": "1315388112", "js/app.js": "1315467009", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-foot-in-mouth.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.donutRenderer.js": "1315388133", "lib/docs/_build/html/_modules/webnotes/utils/transfer.html": "1310636183", "lib/py/webnotes/model/doclist.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/media/img/flash.gif": "1315388112", "lib/docs/old/_sources/page_cookbook.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.barRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/preview/preview.html": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.categoryAxisRenderer.js": "1315388133", "lib/js/wn/xmlhttp.js": "1313753523", "lib/js/legacy/tiny_mce_33/plugins/media/css/content.css": "1315388112", "lib/py/webnotes/defs_template.py": "1315388133", "lib/docs/old/_sources/server_side_script.txt": "1310636183", "lib/docs/_build/html/core.doctype.stylesheet.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/file_manager.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/print/editor_plugin_src.js": "1315388112", "lib/js/legacy/utils/browser_detect.js": "1315388112", "lib/js/legacy/globals.js": "1315296043", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-innocent.gif": "1315388112", "lib/README.md": "1315393952", "lib/docs/old/_static/navigation.png": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/media/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/attributes.js": "1315388112", "lib/docs/_build/doctrees/webnotes.model.doctree": "1310636182", "lib/docs/old/glossary.html": "1310636183", "lib/docs/old/_sources/client_side_cookbook.txt": "1310636183", "lib/docs/old/_sources/webnotes.txt": "1310636183", "lib/py/webnotes/utils/sitemap.py": "1315388111", "lib/docs/_build/html/_sources/webnotes.widgets.txt": "1310636183", "lib/docs/webnotes.utils.txt": "1310636183", "lib/docs/old/page_server.html": "1310636183", "lib/js/legacy/wn/widgets/footer.js": "1315388112", "lib/css/legacy/images/ui-icons_2e83ff_256x240.png": "1315388111", "lib/docs/old/_sources/listing.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes.html": "1310636183", "lib/js/legacy/webpage/search.js": "1315388133", "lib/js/legacy/utils/datatype.js": "1315388112", "lib/py/webnotes/utils/backups.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/legacyoutput/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/db_schema.html": "1310636183", "lib/conf/conf.py": "1314099127", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/editor_plugin.js": "1315388112", "lib/docs/old/_sources/admin_login.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/dialog.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/props.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasTextRenderer.js": "1315388133", "lib/py/webnotes/utils/file_manager.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/table/row.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/css/content.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/acronym.js": "1315388112", "lib/js/legacy/utils/datetime.js": "1315388112", "lib/docs/old/utils_server.html": "1310636183", "lib/docs/_build/doctrees/modules.doctree": "1310636182", "lib/py/webnotes/install_lib/db_init.py": "1315388110", "lib/docs/_build/html/_modules/webnotes/modules.html": "1310636183", "lib/docs/_build/html/_modules/index.html": "1310636182", "lib/js/legacy/tiny_mce_33/license.txt": "1315388112", "lib/docs/_build/html/core.doctype.page.html": "1310636183", "lib/docs/_build/doctrees/index.doctree": "1310636182", "lib/js/core.min.js": "1315467101", "lib/js/legacy/jquery/jqplot-plugins/jqplot.bubbleRenderer.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/nonbreaking/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/menus.html": "1310636183", "lib/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png": "1315388111", "lib/docs/_build/html/search.html": "1310636183", "lib/docs/core.doctype.page.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/alert.gif": "1315388112", "lib/docs/_build/doctrees/core.page.doctree": "1310636182", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/del.js": "1315388112", "lib/docs/_build/html/_sources/core.doctype.stylesheet.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/button.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/editor_plugin_src.js": "1315388112", "lib/js/legacy/widgets/print_query.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/example/editor_plugin_src.js": "1315388112", "lib/docs/_build/doctrees/webnotes.install_lib.doctree": "1310636182", "lib/docs/old/doc.html": "1310636183", "lib/docs/old/_static/default.css": "1310636183", "lib/docs/core.doctype.property_setter.txt": "1310636183", "lib/js/legacy/tiny_mce_33/tiny_mce_popup.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.json2.js": "1315388133", "lib/docs/old/form_widget.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/img/trans.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/fullpage/css/fullpage.css": "1315388112", "lib/docs/_build/html/_modules/core/doctype/stylesheet/stylesheet.html": "1310636182", "lib/py/webnotes/auth.py": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/js/source_editor.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.BezierCurveRenderer.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ciParser.js": "1315388133", "config/conf.py": "1315213903", "lib/docs/old/profile.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/css/cell.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/preview/jscripts/embed.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/insertdatetime/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-smile.gif": "1315388112", "lib/py/webnotes/widgets/form.py": "1315388133", "lib/py/webnotes/widgets/query_builder.py": "1315388133", "lib/docs/old/creating_entities.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.doctype_mapper.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/menu_check.gif": "1315388112", "lib/docs/backupall.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-wink.gif": "1315388112", "lib/docs/old/_sources/doclist.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-cry.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-frown.gif": "1315388112", "lib/docs/core.page.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/anchor.htm": "1315388112", "lib/py/webnotes/modules/patch.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/table/editor_plugin_src.js": "1315388112", "lib/docs/old/_sources/page_server.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/email_lib.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dragable.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.cursor.min.js": "1315388133", "lib/py/webnotes/__init__.py": "1315388133", "lib/py/webnotes/utils/email_lib/__init__.py": "1315388111", "lib/docs/_build/html/_static/underscore.js": "1310636183", "lib/js/legacy/wn/widgets/form/attachments.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/advlink/editor_plugin_src.js": "1315388112", "lib/docs/old/tabbed_page.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/merge_cells.htm": "1315388112", "lib/docs/_build/html/webnotes.utils.email_lib.html": "1310636183", "lib/docs/_build/html/objects.inv": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/template.htm": "1315388112", "lib/docs/core.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/receive.html": "1310636183", "lib/docs/old/db.html": "1310636183", "lib/js/legacy/widgets/form/email.js": "1315388112", "lib/docs/old/doctype.html": "1310636183", "lib/py/webnotes/model/triggers.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/template/css/template.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/contextmenu/editor_plugin.js": "1315388112", "lib/docs/_build/doctrees/core.doctree": "1310636182", "README.md": "1315290621", "lib/docs/_build/html/core.doctype.search_criteria.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/style/css/props.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/js/image.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/page_body.html": "1310636183", "lib/py/webnotes/utils/email_lib/send.py": "1315388111", "lib/docs/_build/html/_sources/backupall.txt": "1310636183", "lib/docs/_build/html/.buildinfo": "1310636182", "lib/js/legacy/widgets/calendar.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/js/props.js": "1315388112", "lib/docs/_build/doctrees/core.doctype.system_console.doctree": "1310636182", "lib/docs/_build/html/_modules/webnotes/session_cache.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/link.js": "1315388112", "lib/py/webnotes/multi_tenant/__init__.py": "1315388110", "lib/docs/old/webnotes.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.barRenderer.js": "1315388133", "lib/js/legacy/wn/widgets/form/sidebar.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/tabs.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/legacyoutput/editor_plugin_src.js": "1315388112", "lib/docs/webnotes.utils.email_lib.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/charmap.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/fullscreen/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/css/searchreplace.css": "1315388112", "lib/py/webnotes/model/__init__.py": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/ui.css": "1315388112", "lib/js/legacy/app.js": "1315460959", "lib/docs/core.doctype.control_panel.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/element_common.js": "1315388112", "lib/docs/index.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/editor_plugin_src.js": "1315388112", "lib/INSTALL.md": "1315394050", "lib/js/legacy/utils/dom.js": "1315292658", "lib/py/webnotes/modules/utils.py": "1315388110", "lib/docs/_build/html/core.doctype.control_panel.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.blockRenderer.js": "1315388133", "lib/docs/_build/html/_sources/modules.txt": "1310636183", "lib/js/legacy/tiny_mce_33/custom_content.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/cite.htm": "1315388112", "lib/css/legacy/grid.css": "1315388111", "lib/docs/_build/html/_modules/webnotes/utils/webservice.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/preview/editor_plugin.js": "1315388112", "lib/py/webnotes/widgets/menus.py": "1315388111", "lib/css/legacy/report.css": "1315388111", "lib/py/webnotes/utils/jslib/jsmin.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/print/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/editor_plugin.js": "1315388112", "lib/docs/old/_sources/server_side_internals.txt": "1310636183", "lib/docs/old/navigation.html": "1310636183", "lib/py/webnotes/session_cache.py": "1315388111", "lib/css/legacy/body.css": "1315388111", "lib/docs/old/_sources/local_data.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/window.css": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/auto_master.html": "1310636183", "lib/docs/old/_sources/client_side_script.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/simple/skins/default/content.css": "1315388112", "lib/js/legacy/tiny_mce_33/utils/validate.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/about.htm": "1315388112", "lib/docs/old/tree.html": "1310636183", "lib/docs/old/_static/contents.png": "1310636183", "lib/js/legacy/webpage/wntoolbar.js": "1315388133", "lib/js/legacy/wn/page_layout.js": "1315388112", "lib/css/ui/overlay.css": "1315470111", "lib/css/legacy/images/ui-icons_222222_256x240.png": "1315388111", "lib/docs/old/creating_roles.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/js/template.js": "1315388112", "lib/docs/old/_sources/email_lib.txt": "1310636183", "lib/docs/old/_sources/what_is_an_app.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/example/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pieRenderer.js": "1315388133", "lib/docs/old/_static/searchtools.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/langs/en_dlg.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dateAxisRenderer.min.js": "1315388133", "lib/docs/old/_static/sphinxdoc.css": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.categoryAxisRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/core.doctype.doctype_mapper.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/nonbreaking/editor_plugin.js": "1315388112", "lib/js/legacy/widgets/report_builder/calculator.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/quicktime.gif": "1315388112", "lib/docs/old/_static/file.png": "1310636183"} \ No newline at end of file +{"lib/js/legacy/widgets/autosuggest.js": "1315388112", "lib/docs/old/menus_server.html": "1310636183", "lib/css/legacy/calendar.css": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/paste/js/pastetext.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/searchreplace.htm": "1315388112", "lib/docs/old/admin_login.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/table/js/row.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/install_lib/install.html": "1310636183", "lib/js/legacy/utils/msgprint.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/css/attributes.css": "1315388112", "lib/js/legacy/jquery/excanvas.min.js": "1315388112", "lib/js/wn/provide.js": "1315299987", "lib/docs/old/auth.html": "1310636183", "lib/docs/old/_sources/page_body.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasTextRenderer.min.js": "1315388133", "lib/images/icons/folder.gif": "1311752688", "lib/js/legacy/build.json": "1315296252", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dragable.min.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dateAxisRenderer.js": "1315388133", "lib/docs/old/_sources/save_submit.txt": "1310636183", "lib/docs/_build/html/core.doctype.system_console.html": "1310636183", "lib/js/legacy/widgets/form/fields.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/autoresize/editor_plugin_src.js": "1315388112", "lib/docs/old/_static/pygments.css": "1310636183", "lib/docs/_build/doctrees/core.doctype.module_def.doctree": "1310636182", "lib/css/legacy/forms.css": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/emotions/editor_plugin.js": "1315388112", "lib/js/legacy/webpage/loaders.js": "1315476890", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/ui_black.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/image.htm": "1315388112", "lib/docs/old/_sources/utils_server.txt": "1310636183", "lib/py/webnotes/.no_timestamps": "1315392243", "lib/docs/old/db_schema.html": "1310636183", "lib/css/ui/buttons.css": "1315475611", "lib/js/lib/superfish/hoverIntent.js": "1201705878", "lib/docs/old/_sources/module.txt": "1310636183", "lib/docs/old/index.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/iespell/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/trans.gif": "1315388112", "lib/docs/old/_sources/profile.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/editor_template_src.js": "1315388112", "lib/js/legacy/widgets/report_builder/report_builder.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/del.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/flv_player.swf": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/contextmenu/editor_plugin_src.js": "1315388112", "lib/js/wn/ui/status_bar.js": "1315303532", "lib/css/legacy/wntoolbar.css": "1315293967", "lib/js/legacy/tiny_mce_33/plugins/media/js/embed.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/simple/skins/o2k7/ui.css": "1315388112", "lib/images/ui/vote_up.gif": "1311752688", "lib/py/webnotes/widgets/__init__.py": "1315388111", "lib/py/webnotes/tests.py": "1315388111", "lib/docs/_static/default.css": "1310636183", "lib/py/webnotes/install_lib/__init__.py": "1315388110", "lib/conf/Framework.sql": "1311752687", "lib/css/legacy/jqplot.css": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.meterGaugeRenderer.min.js": "1315388133", "lib/docs/generate_modules.py": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/langs/en_dlg.js": "1315388112", "lib/images/icons/plus.gif": "1311752688", "lib/docs/_build/html/_modules/webnotes/widgets/form.html": "1310636183", "lib/docs/old/_sources/webservice.txt": "1310636183", "lib/js/legacy/wn/widgets/listing.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-cool.gif": "1315388112", "lib/js/legacy/wn/widgets/page_sidebar.js": "1315388112", "images/module-icons.png": "1315471666", "lib/docs/old/webnotes_intro.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/emotions.htm": "1315388112", "lib/docs/_build/html/_modules/webnotes/modules/import_module.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.min.js": "1315388133", "lib/js/legacy/widgets/form/form_grid.js": "1315388133", "lib/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/autosave/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/_sources/webnotes.utils.email_lib.txt": "1310636183", "lib/docs/_build/doctrees/core.doctype.control_panel.doctree": "1310636182", "lib/js/legacy/model/doclist.js": "1315388112", "lib/docs/_build/html/_sources/core.doctype.module_def.txt": "1310636183", "lib/js/legacy/widgets/tree.js": "1315294071", "lib/docs/webnotes.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/autoresize/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/todo.html": "1310636183", "lib/js/legacy/tiny_mce_33/.no_timpestamps": "1315461100", "lib/js/legacy/jquery/jqplot-plugins/jqplot.enhancedLegendRenderer.min.js": "1315388133", "lib/docs/_build/html/_sources/webnotes.txt": "1310636183", "lib/docs/_build/html/core.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/js/searchreplace.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-tongue-out.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/table/css/table.css": "1315388112", "lib/docs/old/creating_reports.html": "1310636183", "lib/docs/core.doctype.module_def.txt": "1310636183", "lib/py/webnotes/model/meta.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/visualchars/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/insertdatetime/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/template.htm": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/search.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/modules/compress.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/model/doctype.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/query_builder.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.txt": "1310636183", "lib/js/legacy/widgets/form/form_comments.js": "1315388112", "lib/py/tests.py": "1313132642", "lib/docs/old/autosuggest.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.highlighter.min.js": "1315388133", "lib/py/webnotes/utils/transfer.py": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.donutRenderer.min.js": "1315388133", "lib/js/legacy/wn/widgets/dialog.js": "1315293231", "lib/css/legacy/images/ui-icons_cd0a0a_256x240.png": "1315388111", "lib/py/__init__.py": "1313570887", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/ui_silver.css": "1315388112", "lib/js/wn/require.js": "1313755415", "lib/docs/old/_sources/navigation.txt": "1310636183", "lib/docs/old/writing_scripts.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.logAxisRenderer.js": "1315388133", "lib/images/ui/vote_down.gif": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-embarassed.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoRenderer.min.js": "1315388133", "lib/docs/_build/html/_modules/core/doctype/page/page.html": "1310636182", "lib/docs/old/_static/jquery.js": "1310636183", "lib/docs/_build/html/_modules/webnotes/install_lib/db_init.html": "1310636183", "lib/docs/old/sitemap.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/pypi-setup.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/charmap.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ohlcRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-yell.gif": "1315388112", "lib/js/legacy/widgets/report_builder/datatable.js": "1315388112", "lib/docs/old/what_is_an_app.html": "1310636183", "lib/css/legacy/tabs.css": "1315388111", "lib/py/webnotes/widgets/auto_master.py": "1315388111", "lib/docs/_build/html/_sources/pypi-setup.txt": "1310636183", "lib/css/base.css": "1314774281", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/css/popup.css": "1315388112", "lib/docs/_build/html/core.doctype.doctype.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/directionality/editor_plugin.js": "1315388112", "lib/docs/old/_sources/client_side_widgets.txt": "1310636183", "lib/py/webnotes/utils/email_lib/form_email.py": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/example/langs/en.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-sealed.gif": "1315388112", "lib/docs/old/_sources/creating_reports.txt": "1310636183", "lib/docs/_build/html/core.doctype.html": "1310636183", "lib/docs/old/_sources/creating_profiles.txt": "1310636183", "lib/py/webnotes/db.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/preview/editor_plugin_src.js": "1315388112", "lib/py/webnotes/widgets/page.py": "1315388133", "lib/js/legacy/widgets/export_query.js": "1315388112", "lib/docs/_build/html/py-modindex.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/jsmin.html": "1310636183", "lib/js/legacy/webpage/freeze_page.js": "1315476506", "data/master.sql.gz": "1315471662", "lib/js/legacy/tiny_mce_33/plugins/fullpage/fullpage.htm": "1315388112", "lib/docs/old/_sources/report_cookbook.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.json2.min.js": "1315388133", "lib/js/wn/dom.js": "1315303752", "lib/js/legacy/jquery/jqplot-plugins/jqplot.bubbleRenderer.min.js": "1315388133", "lib/docs/old/server_side_script.html": "1310636183", "lib/py/webnotes/widgets/todo.py": "1315388111", "lib/css/ui/status_bar.css": "1315302989", "lib/js/legacy/tiny_mce_33/plugins/advlink/js/advlink.js": "1315388112", "lib/docs/_build/html/core.doctype.property_setter.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.page_template.txt": "1310636183", "lib/css/legacy/jquery-ui.css": "1315388111", "lib/docs/old/database_api.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/visualchars/editor_plugin_src.js": "1315388112", "lib/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png": "1315388111", "lib/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png": "1315388111", "lib/js/legacy/utils/shortcut.js": "1315388112", "lib/py/common.py": "1314349955", "lib/py/webnotes/utils/cache.py": "1315388111", "lib/docs/old/_sources/db.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/paste/editor_plugin.js": "1315388112", "lib/css/legacy/messages.css": "1315388111", "lib/docs/_build/html/webnotes.utils.html": "1310636183", "lib/docs/_build/html/core.doctype.profile.html": "1310636183", "lib/images/icons/wntoolbar-icons.png": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/fullscreen/editor_plugin_src.js": "1315388112", "lib/docs/pypi-setup.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/media/img/shockwave.gif": "1315388112", "lib/docs/old/_sources/creating_pages.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/blank.htm": "1315388112", "lib/docs/old/_sources/db_schema.txt": "1310636183", "lib/docs/old/searchindex.js": "1310636183", "lib/js/lib/history/history.min.js": "1315467128", "lib/js/legacy/tiny_mce_33/plugins/advhr/js/rule.js": "1315388112", "lib/docs/_build/html/_sources/core.page.txt": "1310636183", "lib/docs/old/report_builder.html": "1310636183", "lib/js/legacy/widgets/form/form.js": "1315475714", "lib/js/legacy/jquery/jqplot-plugins/jqplot.meterGaugeRenderer.js": "1315388133", "lib/docs/old/genindex.html": "1310636183", "lib/js/legacy/widgets/form/form_container.js": "1315388112", "lib/docs/old/.buildinfo": "1310636183", "lib/docs/_build/doctrees/webnotes.doctree": "1310636182", "lib/docs/_build/html/_static/searchtools.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/image.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/img/wline.gif": "1315388112", "lib/js/legacy/widgets/tabbedpage.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/realmedia.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/link.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/img/sample.gif": "1315388112", "lib/docs/_build/doctrees/core.doctype.search_criteria.doctree": "1310636182", "lib/docs/old/_static/doctools.js": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/cite.js": "1315388112", "lib/css/legacy/autosuggest.css": "1315388111", "lib/docs/core.doctype.doctype.txt": "1310636183", "lib/py/webnotes/model/modules.py": "1315388110", "lib/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png": "1315388111", "lib/docs/_build/html/webnotes.model.html": "1310636183", "lib/js/legacy/widgets/form/form_header.js": "1315475894", "lib/docs/old/creating_pages.html": "1310636183", "lib/docs/_build/doctrees/core.doctype.doctype.doctree": "1310636182", "lib/py/build/__main__.py": "1315392289", "lib/js/legacy/jquery/jqplot-plugins/jqplot.funnelRenderer.js": "1315388133", "lib/py/build/markdown2_extn.py": "1315392289", "lib/py/build/minify.py": "1315392289", "lib/py/webnotes/utils/jslib/jstimestamp.py": "1315388133", "lib/docs/_build/html/_static/jquery.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/menu_arrow.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/content.css": "1315388112", "lib/js/lib/superfish/css/superfish.css": "1313760672", "lib/js/legacy/tiny_mce_33/plugins/noneditable/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-undecided.gif": "1315388112", "lib/py/webnotes/utils/scheduler.py": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.logAxisRenderer.min.js": "1315388133", "lib/docs/old/client_side_script.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.profile.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/follow.html": "1310636183", "lib/py/webnotes/profile.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/table/table.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/wordcount/editor_plugin_src.js": "1315388112", "lib/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/autosave/langs/en.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/tabfocus/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/editor_plugin_src.js": "1315388112", "lib/docs/old/doclist.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/cache.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/about.js": "1315388112", "lib/docs/_build/html/core.page.html": "1310636183", "lib/js/legacy/utils/rsh.compressed.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/image.htm": "1315388112", "lib/docs/_build/html/_modules/webnotes/modules/export_module.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.trendline.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg.png": "1315388112", "lib/docs/old/search.html": "1310636183", "lib/js/legacy/jquery/jquery.flot.js": "1315388112", "lib/docs/Makefile": "1310636182", "lib/css/legacy/images/ui-icons_454545_256x240.png": "1315388111", "lib/conf/sitemap.xml": "1315388112", "lib/js/legacy/tiny_mce_33/themes/simple/skins/o2k7/img/button_bg.png": "1315388112", "lib/css/legacy/user.css": "1315388111", "lib/docs/old/client_side_widgets.html": "1310636183", "lib/docs/core.doctype.search_criteria.txt": "1310636183", "lib/conf/apache.conf": "1313640120", "lib/js/legacy/tiny_mce_33/plugins/table/js/merge_cells.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/css/media.css": "1315388112", "lib/py/webnotes/tests/__init__.py": "1315388111", "lib/js/legacy/webpage/page_header.js": "1315475725", "lib/js/legacy/jquery/jqplot-plugins/jqplot.blockRenderer.min.js": "1315388133", "lib/js/legacy/jquery/jquery.min.js": "1315388112", "lib/docs/old/_static/plus.png": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-money-mouth.gif": "1315388112", "lib/docs/_build/html/searchindex.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/anchor.js": "1315388112", "lib/docs/core.doctype.custom_field.txt": "1310636183", "lib/docs/_build/html/_sources/core.doctype.search_criteria.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advhr/css/advhr.css": "1315388112", "lib/docs/modules.txt": "1310636183", "lib/docs/_build/html/core.doctype.page_template.html": "1310636183", "lib/py/webnotes/model/utils.py": "1315388133", "lib/docs/old/_static/basic.css": "1310636183", "lib/docs/_build/doctrees/webnotes.utils.email_lib.doctree": "1310636182", "lib/js/legacy/widgets/dialog.js": "1315388112", "lib/js/lib/jquery.min.js": "1313062880", "lib/docs/old/_sources/database_api.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pieRenderer.min.js": "1315388133", "lib/docs/old/server_side_internals.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/paste/js/pasteword.js": "1315388112", "lib/py/webnotes/utils/webservice.py": "1315388111", "lib/js/legacy/tiny_mce_33/plugins/iespell/editor_plugin_src.js": "1315388112", "lib/docs/webnotes.install_lib.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/media/img/windowsmedia.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/attributes.htm": "1315388112", "lib/docs/_build/doctrees/webnotes.widgets.doctree": "1310636182", "lib/py/build/nav.py": "1315392289", "lib/js/lib/superfish/superfish.min.js": "1315465309", "lib/js/legacy/tiny_mce_33/plugins/fullpage/editor_plugin_src.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisLabelRenderer.min.js": "1315388133", "lib/docs/_build/doctrees/core.doctype.letter_head.doctree": "1310636182", "lib/docs/webnotes.modules.txt": "1310636183", "lib/js/legacy/jquery/jquery.jqplot.min.js": "1315388133", "lib/js/legacy/wnf.compressed.js": "1315476896", "lib/css/layout.css": "1313603562", "lib/docs/old/_sources/creating_doctypes.txt": "1310636183", "lib/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png": "1315388111", "lib/js/legacy/tiny_mce_33/themes/advanced/editor_template.js": "1315388112", "lib/js/legacy/widgets/layout.js": "1315388112", "lib/docs/webnotes.model.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/event.html": "1310636183", "lib/docs/old/save_submit.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/fullpage/js/fullpage.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/triggers.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/tabfocus/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/ins.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pointLabels.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/directionality/editor_plugin_src.js": "1315388112", "lib/docs/conf.py": "1315388111", "lib/docs/old/_sources/autosuggest.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/layer/editor_plugin.js": "1315388112", "lib/docs/old/_sources/auth.txt": "1310636183", "lib/py/webnotes/model/doc.py": "1315388110", "lib/js/legacy/tiny_mce_33/themes/simple/editor_template_src.js": "1315388112", "lib/docs/core.doctype.doctype_mapper.txt": "1310636183", "lib/docs/old/_sources/intro.txt": "1310636183", "lib/js/legacy/widgets/listing.js": "1315388112", "lib/docs/old/_sources/menus_server.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/fullpage/editor_plugin.js": "1315388112", "lib/docs/old/creating_profiles.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.system_console.txt": "1310636183", "lib/docs/old/module.html": "1310636183", "lib/css/legacy/bw-icons.css": "1315293977", "lib/docs/_build/doctrees/core.doctype.profile.doctree": "1310636182", "lib/docs/_build/html/_static/default.css": "1310636183", "lib/docs/_build/doctrees/core.doctype.doctype_mapper.doctree": "1310636182", "lib/docs/old/build_app.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/js/cell.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/send.html": "1310636183", "lib/css/legacy/sidebar.css": "1315388111", "lib/js/legacy/tiny_mce_33/themes/simple/skins/o2k7/content.css": "1315388112", "lib/docs/_build/html/genindex.html": "1310636183", "lib/docs/_build/html/_modules/core/doctype/property_setter/property_setter.html": "1310636182", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/css/content.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/langs/en_dlg.js": "1315388112", "lib/js/core.js": "1315467083", "lib/docs/_build/html/_modules/webnotes/utils/archive.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/model/modules.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/modules/patch.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advlink/link.htm": "1315388112", "lib/docs/_build/html/webnotes.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/nestedset.html": "1310636183", "lib/docs/old/code.html": "1310636183", "lib/py/build/timestamps.py": "1315392289", "lib/images/icons/close.gif": "1311752688", "lib/docs/_build/html/_static/doctools.js": "1310636183", "lib/images/ui/button-load.gif": "1311752688", "lib/docs/_build/html/_static/sidebar.js": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advimage/editor_plugin.js": "1315388112", "lib/js/legacy/webpage/spinner.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/db.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/editor_plugin.js": "1315388112", "lib/docs/old/_sources/glossary.txt": "1310636183", "lib/docs/_build/doctrees/core.doctype.stylesheet.doctree": "1310636182", "lib/docs/old/page_cookbook.html": "1310636183", "lib/js/legacy/tiny_mce_33/tiny_mce_src.js": "1315388112", "lib/js/legacy/widgets/form/form_fields.js": "1315476308", "lib/py/webnotes/utils/jslib/jsnamespace.py": "1315388133", "lib/docs/_build/html/_modules/webnotes/profile.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/layer/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/backupall.html": "1310636183", "lib/docs/_build/html/_sources/webnotes.multi_tenant.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/js/emotions.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/langs/en_dlg.js": "1315388112", "lib/docs/old/_sources/javascript_utils.txt": "1310636183", "lib/py/webnotes/utils/nestedset.py": "1315388133", "lib/docs/_build/doctrees/webnotes.utils.doctree": "1310636182", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/ui.css": "1315388112", "lib/js/legacy/tiny_mce_33/utils/mctabs.js": "1315388112", "lib/docs/_build/html/_sources/webnotes.model.txt": "1310636183", "index.html": "1315476897", "lib/docs/_build/html/_static/plus.png": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/encrypt.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/css/row.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/template/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg_silver.png": "1315388112", "lib/js/legacy/webpage/uploader.js": "1315388112", "lib/js/legacy/widgets/form/print_format.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/paste/pastetext.htm": "1315388112", "lib/js/legacy/widgets/list_selector.js": "1315388112", "lib/docs/old/intro.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/img/icons.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ohlcRenderer.js": "1315388133", "lib/docs/_build/doctrees/environment.pickle": "1310636182", "lib/docs/old/listing.html": "1310636183", "lib/docs/old/_sources/webnotes_intro.txt": "1310636183", "lib/py/webnotes/modules/module_manager.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/media/js/media.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/langs/en.js": "1315388112", "lib/docs/old/creating_doctypes.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-surprised.gif": "1315388112", "lib/docs/_build/html/_sources/core.doctype.page.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/model/import_docs.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/save/editor_plugin_src.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisLabelRenderer.js": "1315388133", "lib/py/webnotes/model/db_schema.py": "1315388133", "lib/js/legacy/wn/modules.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasOverlay.js": "1315388133", "lib/py/webnotes/utils/jslib/jsdependency.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/example/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/acronym.htm": "1315388112", "lib/js/wn/ui/button.js": "1315474815", "lib/docs/_build/html/core.doctype.module_def.html": "1310636183", "lib/js/lib/superfish/images/arrows-ffffff.png": "1215426588", "lib/js/legacy/tiny_mce_33/plugins/paste/langs/en_dlg.js": "1315388112", "todo.md": "1315476827", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-laughing.gif": "1315388112", "lib/docs/_build/doctrees/webnotes.multi_tenant.doctree": "1310636182", "lib/docs/_build/html/_static/README": "1310636183", "lib/py/webnotes/defs.py": "1315227569", "lib/js/legacy/tiny_mce_33/plugins/wordcount/editor_plugin.js": "1315388112", "lib/js/legacy/utils/json.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/doc.html": "1310636183", "lib/js/legacy/webpage/body.js": "1315388112", "lib/js/build.json": "1315296571", "lib/js/legacy/tiny_mce_33/plugins/bbcode/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/example/js/dialog.js": "1315388112", "lib/docs/old/javascript_utils.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.control_panel.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advimage/langs/en_dlg.js": "1315388112", "lib/docs/_static/pygments.css": "1310636183", "lib/docs/old/_sources/server_side_api.txt": "1310636183", "lib/docs/old/_sources/creating_entities.txt": "1310636183", "lib/py/webnotes/widgets/event.py": "1315388111", "lib/js/legacy/jquery/jqplot-plugins/jqplot.highlighter.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/fullscreen/fullscreen.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/autosave/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/save/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/multi_tenant/setup.html": "1310636183", "lib/js/wn/ui/overlay.js": "1315302025", "lib/js/legacy/tiny_mce_33/plugins/fullpage/langs/en_dlg.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/doclist.html": "1310636183", "lib/docs/old/apps_intro.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advlink/editor_plugin.js": "1315388112", "lib/docs/_build/html/_static/basic.css": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/form_email.html": "1310636183", "lib/docs/old/dialog.html": "1310636183", "lib/docs/_build/doctrees/backupall.doctree": "1310636182", "lib/docs/old/_sources/doc.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/langs/en_dlg.js": "1315388112", "lib/docs/_build/html/_static/minus.png": "1310636183", "lib/conf/app.js": "1315303458", "lib/docs/_build/html/_modules/core/doctype/page_template/page_template.html": "1310636182", "lib/js/lib/superfish/css/superfish-vertical.css": "1215403280", "lib/conf/index.cgi": "1315226068", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/editor_plugin.js": "1315388112", "lib/docs/old/_sources/server_side_cookbook.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/widgets/tags.html": "1310636183", "lib/js/legacy/tiny_mce_33/utils/editable_selects.js": "1315388112", "lib/js/legacy/widgets/form/clientscriptAPI.js": "1315388133", "lib/css/legacy/default.css": "1315308592", "lib/docs/old/concepts.html": "1310636183", "lib/docs/old/_sources/index.txt": "1310636183", "lib/docs/_build/html/_sources/core.doctype.letter_head.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/sitemap.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/simple/editor_template.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advlist/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/auth.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.cursor.js": "1315388133", "lib/py/webnotes/model/doctype.py": "1315389550", "lib/docs/_build/html/index.html": "1310636183", "lib/js/legacy/tiny_mce_33/langs/en.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/editor_plugin.js": "1315388112", "lib/js/lib/superfish/images/shadow.png": "1215861254", "lib/docs/_build/html/webnotes.widgets.html": "1310636183", "lib/py/webnotes/multi_tenant/query_parser.py": "1315388110", "lib/js/legacy/tiny_mce_33/themes/simple/langs/en.js": "1315388112", "lib/css/skeleton.css": "1313603562", "lib/js/legacy/wn/widgets/filters.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/media.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advlist/editor_plugin.js": "1315388112", "lib/py/webnotes/widgets/tags.py": "1315388133", "lib/docs/old/_sources/sitemap.txt": "1310636183", "lib/images/ui/spinner.gif": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/template/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/img/pagebreak.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.BezierCurveRenderer.min.js": "1315388133", "lib/py/webnotes/utils/__init__.py": "1315388133", "lib/py/webnotes/tests/modules.py": "1315388111", "lib/py/build/bundle.py": "1315392289", "lib/docs/README": "1310636182", "lib/js/legacy/widgets/select.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/code.html": "1310636183", "lib/js/legacy/widgets/menu.js": "1315460930", "lib/docs/_build/html/_sources/core.doctype.custom_field.txt": "1310636183", "lib/js/legacy/webpage/history.js": "1315466093", "lib/docs/old/_sources/build_app.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/simple/skins/default/ui.css": "1315388112", "lib/js/legacy/utils/handler.js": "1315388133", "lib/docs/old/_sources/writing_scripts.txt": "1310636183", "lib/py/webnotes/widgets/page_body.py": "1315470726", "lib/attribution.md": "1315472339", "lib/docs/_build/html/_sources/webnotes.utils.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/color_picker.js": "1315388112", "lib/py/webnotes/model/sql_sync.py": "1315388110", "lib/docs/_build/html/core.doctype.custom_field.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/cell.htm": "1315388112", "lib/docs/_build/html/modules.html": "1310636183", "lib/js/legacy/webpage/page.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/style/editor_plugin_src.js": "1315388112", "lib/docs/_static/wnflogo200.gif": "1310636183", "lib/css/legacy/listing.css": "1315388111", "lib/js/legacy/wn/widgets/doc_column_view.js": "1315388112", "lib/py/webnotes/widgets/search.py": "1315388133", "lib/docs/old/_sources/doctype.txt": "1310636183", "lib/docs/old/local_data.html": "1310636183", "lib/docs/_build/doctrees/core.doctype.page.doctree": "1310636182", "lib/js/legacy/widgets/tags.js": "1315388112", "lib/docs/_build/html/_sources/webnotes.install_lib.txt": "1310636183", "lib/js/legacy/utils/printElement.js": "1315388112", "lib/docs/_build/doctrees/core.doctype.property_setter.doctree": "1310636182", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/corners.gif": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/content.css": "1315388112", "lib/js/legacy/webpage/error_console.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.js": "1315388133", "lib/conf/_conf.py": "1314099136", "lib/py/watch.py": "1315474900", "lib/py/webnotes/utils/email_lib/html2text.py": "1315388111", "lib/py/webnotes/utils/archive.py": "1315388111", "lib/docs/_build/html/webnotes.multi_tenant.html": "1310636183", "lib/docs/core.doctype.system_console.txt": "1310636183", "templates/index.html": "1315304305", "lib/js/legacy/tiny_mce_33/plugins/paste/pasteword.htm": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/items.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.trendline.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/abbr.htm": "1315388112", "lib/docs/webnotes.multi_tenant.txt": "1310636183", "lib/docs/old/server_side_api.html": "1310636183", "lib/py/webnotes/install_lib/install.py": "1315388133", "lib/docs/core.doctype.profile.txt": "1310636183", "lib/py/webnotes/model/import_docs.py": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoRenderer.js": "1315388133", "lib/docs/_build/html/_sources/core.doctype.property_setter.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/img/colorpicker.jpg": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/preview/example.html": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ciParser.min.js": "1315388133", "lib/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png": "1315388111", "lib/docs/core.doctype.stylesheet.txt": "1310636183", "lib/py/webnotes/utils/encrypt.py": "1315388111", "lib/js/legacy/widgets/form/attachments.js": "1315388112", "lib/js/legacy/widgets/report_builder/bargraph.js": "1315388112", "lib/py/webnotes/multi_tenant/setup.py": "1315388110", "lib/docs/_build/doctrees/pypi-setup.doctree": "1310636182", "lib/docs/old/server_side_cookbook.html": "1310636183", "lib/docs/old/_static/minus.png": "1310636183", "lib/js/legacy/model/local_data.js": "1315388112", "lib/docs/_build/html/webnotes.modules.html": "1310636183", "favicon.ico": "1311154093", "lib/docs/_build/doctrees/core.doctype.custom_field.doctree": "1310636182", "lib/docs/_build/doctrees/core.doctype.doctree": "1310636182", "lib/py/webnotes/modules/export_module.py": "1315388110", "lib/docs/_build/html/_modules/webnotes/utils/scheduler.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/paste/editor_plugin_src.js": "1315388112", "lib/docs/old/_sources/tabbed_page.txt": "1310636183", "lib/py/webnotes/handler.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/css/advimage.css": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/source_editor.htm": "1315388112", "lib/docs/_build/doctrees/webnotes.modules.doctree": "1310636182", "lib/docs/_build/html/core.doctype.letter_head.html": "1310636183", "lib/docs/core.doctype.page_template.txt": "1310636183", "lib/docs/old/_sources/apps_intro.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/progress.gif": "1315388112", "lib/js/legacy/form.compressed.js": "1315476315", "lib/js/lib/superfish/make_superfish.js": "1313759992", "lib/js/legacy/jquery/jqplot-plugins/jqplot.enhancedLegendRenderer.js": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/buttons.png": "1315388112", "lib/css/legacy/images/ui-icons_888888_256x240.png": "1315388111", "lib/docs/old/report_cookbook.html": "1310636183", "lib/js/legacy/user.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasOverlay.min.js": "1315388133", "lib/docs/core.doctype.letter_head.txt": "1310636183", "lib/css/legacy/doc_column_view.css": "1315388111", "lib/docs/old/modindex.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/dialog.css": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/color_picker.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advhr/rule.htm": "1315388112", "lib/js/legacy/widgets/form/grid.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.funnelRenderer.min.js": "1315388133", "lib/docs/old/_sources/form_server.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils.html": "1310636183", "lib/js/legacy/tiny_mce_33/jquery.tinymce.js": "1315388112", "lib/docs/old/_sources/creating_roles.txt": "1310636183", "lib/conf/__init__.py": "1313737596", "lib/js/legacy/wn/widgets/follow.js": "1315388112", "lib/css/legacy/dialog.css": "1315388111", "lib/docs/_build/html/_modules/webnotes/modules/module_manager.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/example/dialog.htm": "1315388112", "lib/docs/old/client_side_cookbook.html": "1310636183", "lib/images/icons/minus.gif": "1311752688", "lib/js/legacy/tiny_mce_33/plugins/example/img/example.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoAxisRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/ins.htm": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pointLabels.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.mekkoAxisRenderer.js": "1315388133", "lib/py/webnotes/modules/__init__.py": "1315391888", "lib/docs/old/form_server.html": "1310636183", "lib/docs/_build/html/_static/pygments.css": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif": "1315388112", "lib/docs/old/_sources/form_widget.txt": "1310636183", "lib/py/webnotes/widgets/follow.py": "1315388111", "INSTALL": "1310447332", "lib/images/icons/icons.png": "1311752688", "lib/js/lib/json2.js": "1313659690", "lib/docs/_build/html/_sources/core.txt": "1310636183", "lib/js/legacy/tiny_mce_33/utils/form_utils.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/simple/img/icons.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/abbr.js": "1315388112", "lib/docs/_build/html/_sources/core.doctype.doctype.txt": "1310636183", "lib/py/webnotes/utils/email_lib/receive.py": "1315388133", "lib/docs/_build/html/_modules/webnotes/widgets/page.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/noneditable/editor_plugin.js": "1315388112", "lib/docs/old/webservice.html": "1310636183", "lib/js/wn/page.js": "1315465871", "lib/docs/old/objects.inv": "1310636183", "lib/docs/_build/doctrees/core.doctype.page_template.doctree": "1310636182", "lib/docs/old/_sources/code.txt": "1310636183", "index.cgi": "1315470579", "lib/docs/old/_sources/dialog.txt": "1310636183", "lib/docs/old/_sources/tree.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/handler.html": "1310636183", "lib/py/build/project.py": "1315392289", "lib/docs/_build/html/_static/wnflogo200.gif": "1310636183", "lib/js/legacy/jquery/jquery-ui.min.js": "1315388112", "lib/docs/_build/html/_static/file.png": "1310636183", "lib/docs/_build/html/webnotes.install_lib.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/model.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg_black.png": "1315388112", "lib/docs/old/_sources/report_builder.txt": "1310636183", "lib/py/build/__init__.py": "1315392289", "lib/js/legacy/tiny_mce_33/plugins/advlink/langs/en_dlg.js": "1315388112", "lib/js/lib/superfish/superfish.js": "1221094330", "lib/js/legacy/webpage/docbrowser.js": "1315388112", "lib/js/wn/assets.js": "1315225379", "lib/js/legacy/report.compressed.js": "1315465312", "lib/js/legacy/tiny_mce_33/plugins/media/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/tiny_mce.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/editor_plugin.js": "1315388112", "lib/docs/core.doctype.txt": "1310636183", "lib/js/legacy/wn/widgets/form/comments.js": "1315388112", "lib/css/legacy/menus.css": "1315388111", "lib/docs/_build/html/_modules/webnotes/tests.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-kiss.gif": "1315388112", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/html2text.html": "1310636183", "lib/docs/old/page_body.html": "1310636183", "lib/docs/old/_sources/concepts.txt": "1310636183", "lib/docs/_static/README": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/bbcode/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/meta.html": "1310636183", "lib/docs/old/email_lib.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/advlink/css/advlink.css": "1315388112", "lib/docs/old/_static/banner300910.gif": "1310636183", "lib/docs/_build/html/_sources/index.txt": "1310636183", "lib/docs/webnotes.widgets.txt": "1310636183", "lib/docs/_build/html/_sources/webnotes.modules.txt": "1310636183", "lib/js/legacy/webpage/about.js": "1315388112", "lib/py/webnotes/model/code.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/table/js/table.js": "1315388112", "js/app.js": "1315476842", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-foot-in-mouth.gif": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.donutRenderer.js": "1315388133", "lib/docs/_build/html/_modules/webnotes/utils/transfer.html": "1310636183", "lib/py/webnotes/model/doclist.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/media/img/flash.gif": "1315388112", "lib/docs/old/_sources/page_cookbook.txt": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.barRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/preview/preview.html": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.categoryAxisRenderer.js": "1315388133", "lib/js/wn/xmlhttp.js": "1313753523", "lib/js/legacy/tiny_mce_33/plugins/media/css/content.css": "1315388112", "lib/py/webnotes/defs_template.py": "1315388133", "lib/docs/old/_sources/server_side_script.txt": "1310636183", "lib/docs/_build/html/core.doctype.stylesheet.html": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/file_manager.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/print/editor_plugin_src.js": "1315388112", "lib/js/legacy/utils/browser_detect.js": "1315388112", "lib/js/legacy/globals.js": "1315296043", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-innocent.gif": "1315388112", "lib/README.md": "1315393952", "lib/docs/old/_static/navigation.png": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/media/langs/en_dlg.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/attributes.js": "1315388112", "lib/docs/_build/doctrees/webnotes.model.doctree": "1310636182", "lib/docs/old/glossary.html": "1310636183", "lib/docs/old/_sources/client_side_cookbook.txt": "1310636183", "lib/docs/old/_sources/webnotes.txt": "1310636183", "lib/py/webnotes/utils/sitemap.py": "1315388111", "lib/docs/_build/html/_sources/webnotes.widgets.txt": "1310636183", "lib/docs/webnotes.utils.txt": "1310636183", "lib/docs/old/page_server.html": "1310636183", "lib/js/legacy/wn/widgets/footer.js": "1315388112", "lib/css/legacy/images/ui-icons_2e83ff_256x240.png": "1315388111", "lib/docs/old/_sources/listing.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes.html": "1310636183", "lib/js/legacy/webpage/search.js": "1315388133", "lib/js/legacy/utils/datatype.js": "1315388112", "lib/py/webnotes/utils/backups.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/legacyoutput/editor_plugin.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/model/db_schema.html": "1310636183", "lib/conf/conf.py": "1314099127", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/editor_plugin.js": "1315388112", "lib/docs/old/_sources/admin_login.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/dialog.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/props.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasTextRenderer.js": "1315388133", "lib/py/webnotes/utils/file_manager.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/table/row.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/spellchecker/css/content.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/acronym.js": "1315388112", "lib/js/legacy/utils/datetime.js": "1315388112", "lib/docs/old/utils_server.html": "1310636183", "lib/docs/_build/doctrees/modules.doctree": "1310636182", "lib/py/webnotes/install_lib/db_init.py": "1315388110", "lib/docs/_build/html/_modules/webnotes/modules.html": "1310636183", "lib/docs/_build/html/_modules/index.html": "1310636182", "lib/js/legacy/tiny_mce_33/license.txt": "1315388112", "lib/docs/_build/html/core.doctype.page.html": "1310636183", "lib/docs/_build/doctrees/index.doctree": "1310636182", "lib/js/core.min.js": "1315467101", "lib/js/legacy/jquery/jqplot-plugins/jqplot.bubbleRenderer.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/nonbreaking/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/menus.html": "1310636183", "lib/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png": "1315388111", "lib/docs/_build/html/search.html": "1310636183", "lib/docs/core.doctype.page.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/alert.gif": "1315388112", "lib/docs/_build/doctrees/core.page.doctree": "1310636182", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/del.js": "1315388112", "lib/docs/_build/html/_sources/core.doctype.stylesheet.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/button.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/editor_plugin_src.js": "1315388112", "lib/js/legacy/widgets/print_query.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/example/editor_plugin_src.js": "1315388112", "lib/docs/_build/doctrees/webnotes.install_lib.doctree": "1310636182", "lib/docs/old/doc.html": "1310636183", "lib/docs/old/_static/default.css": "1310636183", "lib/docs/core.doctype.property_setter.txt": "1310636183", "lib/js/legacy/tiny_mce_33/tiny_mce_popup.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.json2.js": "1315388133", "lib/docs/old/form_widget.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/img/trans.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/fullpage/css/fullpage.css": "1315388112", "lib/docs/_build/html/_modules/core/doctype/stylesheet/stylesheet.html": "1310636182", "lib/py/webnotes/auth.py": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/js/source_editor.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.BezierCurveRenderer.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.ciParser.js": "1315388133", "config/conf.py": "1315213903", "lib/docs/old/profile.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/css/cell.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/preview/jscripts/embed.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/insertdatetime/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/editor_plugin_src.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-smile.gif": "1315388112", "lib/py/webnotes/widgets/form.py": "1315388133", "lib/py/webnotes/widgets/query_builder.py": "1315388133", "lib/docs/old/creating_entities.html": "1310636183", "lib/docs/_build/html/_sources/core.doctype.doctype_mapper.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/menu_check.gif": "1315388112", "lib/docs/backupall.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-wink.gif": "1315388112", "lib/docs/old/_sources/doclist.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-cry.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/emotions/img/smiley-frown.gif": "1315388112", "lib/docs/core.page.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/anchor.htm": "1315388112", "lib/py/webnotes/modules/patch.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/table/editor_plugin_src.js": "1315388112", "lib/docs/old/_sources/page_server.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/email_lib.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dragable.js": "1315388133", "lib/js/legacy/jquery/jqplot-plugins/jqplot.cursor.min.js": "1315388133", "lib/py/webnotes/__init__.py": "1315388133", "lib/py/webnotes/utils/email_lib/__init__.py": "1315388111", "lib/docs/_build/html/_static/underscore.js": "1310636183", "lib/js/legacy/wn/widgets/form/attachments.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/advlink/editor_plugin_src.js": "1315388112", "lib/docs/old/tabbed_page.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/table/merge_cells.htm": "1315388112", "lib/docs/_build/html/webnotes.utils.email_lib.html": "1310636183", "lib/docs/_build/html/objects.inv": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/template.htm": "1315388112", "lib/docs/core.txt": "1310636183", "lib/docs/_build/html/_modules/webnotes/utils/email_lib/receive.html": "1310636183", "lib/docs/old/db.html": "1310636183", "lib/js/legacy/widgets/form/email.js": "1315388112", "lib/docs/old/doctype.html": "1310636183", "lib/py/webnotes/model/triggers.py": "1315388110", "lib/js/legacy/tiny_mce_33/plugins/template/css/template.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/contextmenu/editor_plugin.js": "1315388112", "lib/docs/_build/doctrees/core.doctree": "1310636182", "README.md": "1315471573", "lib/docs/_build/html/core.doctype.search_criteria.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/style/css/props.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/advimage/js/image.js": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/page_body.html": "1310636183", "lib/py/webnotes/utils/email_lib/send.py": "1315388111", "lib/docs/_build/html/_sources/backupall.txt": "1310636183", "lib/docs/_build/html/.buildinfo": "1310636182", "lib/js/legacy/widgets/calendar.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/style/js/props.js": "1315388112", "lib/docs/_build/doctrees/core.doctype.system_console.doctree": "1310636182", "lib/docs/_build/html/_modules/webnotes/session_cache.html": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/js/link.js": "1315388112", "lib/py/webnotes/multi_tenant/__init__.py": "1315388110", "lib/docs/old/webnotes.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.barRenderer.js": "1315388133", "lib/js/legacy/wn/widgets/form/sidebar.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/default/img/tabs.gif": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/legacyoutput/editor_plugin_src.js": "1315388112", "lib/docs/webnotes.utils.email_lib.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/charmap.htm": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/fullscreen/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/css/searchreplace.css": "1315388112", "lib/py/webnotes/model/__init__.py": "1315388133", "lib/js/legacy/tiny_mce_33/themes/advanced/skins/o2k7/ui.css": "1315388112", "lib/js/legacy/app.js": "1315460959", "lib/docs/core.doctype.control_panel.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/js/element_common.js": "1315388112", "lib/docs/index.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/pagebreak/editor_plugin_src.js": "1315388112", "lib/INSTALL.md": "1315394050", "lib/js/legacy/utils/dom.js": "1315476082", "lib/py/webnotes/modules/utils.py": "1315388110", "lib/docs/_build/html/core.doctype.control_panel.html": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.blockRenderer.js": "1315388133", "lib/docs/_build/html/_sources/modules.txt": "1310636183", "lib/js/legacy/tiny_mce_33/custom_content.css": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/xhtmlxtras/cite.htm": "1315388112", "lib/css/legacy/grid.css": "1315388111", "lib/docs/_build/html/_modules/webnotes/utils/webservice.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/preview/editor_plugin.js": "1315388112", "lib/py/webnotes/widgets/menus.py": "1315388111", "lib/css/legacy/report.css": "1315388111", "lib/py/webnotes/utils/jslib/jsmin.py": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/print/editor_plugin.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/editor_plugin.js": "1315388112", "lib/docs/old/_sources/server_side_internals.txt": "1310636183", "lib/docs/old/navigation.html": "1310636183", "lib/py/webnotes/session_cache.py": "1315388111", "lib/css/legacy/body.css": "1315388111", "lib/docs/old/_sources/local_data.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/window.css": "1315388112", "lib/docs/_build/html/_modules/webnotes/widgets/auto_master.html": "1310636183", "lib/docs/old/_sources/client_side_script.txt": "1310636183", "lib/js/legacy/tiny_mce_33/themes/simple/skins/default/content.css": "1315388112", "lib/js/legacy/tiny_mce_33/utils/validate.js": "1315388112", "lib/js/legacy/tiny_mce_33/themes/advanced/about.htm": "1315388112", "lib/docs/old/tree.html": "1310636183", "lib/docs/old/_static/contents.png": "1310636183", "lib/js/legacy/webpage/wntoolbar.js": "1315388133", "lib/js/legacy/wn/page_layout.js": "1315388112", "lib/css/ui/overlay.css": "1315470111", "lib/css/legacy/images/ui-icons_222222_256x240.png": "1315388111", "lib/docs/old/creating_roles.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/template/js/template.js": "1315388112", "lib/docs/old/_sources/email_lib.txt": "1310636183", "lib/docs/old/_sources/what_is_an_app.txt": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/example/editor_plugin.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.pieRenderer.js": "1315388133", "lib/docs/old/_static/searchtools.js": "1310636183", "lib/js/legacy/tiny_mce_33/themes/advanced/langs/en_dlg.js": "1315388112", "lib/js/legacy/jquery/jqplot-plugins/jqplot.dateAxisRenderer.min.js": "1315388133", "lib/docs/old/_static/sphinxdoc.css": "1310636183", "lib/js/legacy/jquery/jqplot-plugins/jqplot.categoryAxisRenderer.min.js": "1315388133", "lib/js/legacy/tiny_mce_33/plugins/searchreplace/editor_plugin_src.js": "1315388112", "lib/docs/_build/html/core.doctype.doctype_mapper.html": "1310636183", "lib/js/legacy/tiny_mce_33/plugins/nonbreaking/editor_plugin.js": "1315388112", "lib/js/legacy/widgets/report_builder/calculator.js": "1315388112", "lib/js/legacy/tiny_mce_33/plugins/media/img/quicktime.gif": "1315388112", "lib/docs/old/_static/file.png": "1310636183"} \ No newline at end of file diff --git a/erpnext/home/page/dashboard/dashboard.js b/erpnext/home/page/dashboard/dashboard.js index 15e7cf3fdc0..08be0af675c 100644 --- a/erpnext/home/page/dashboard/dashboard.js +++ b/erpnext/home/page/dashboard/dashboard.js @@ -1,11 +1,11 @@ pscript.onload_dashboard = function() { // load jqplot $.scriptPath = 'js/' - $.require(['jquery/jquery.jqplot.min.js', - 'jquery/jqplot-plugins/jqplot.barRenderer.js', - 'jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.min.js', - 'jquery/jqplot-plugins/jqplot.canvasTextRenderer.min.js', - 'jquery/jqplot-plugins/jqplot.categoryAxisRenderer.min.js']); + wn.require('lib/js/legacy/jquery/jquery.jqplot.min.js'); + wn.require('lib/js/legacy/jquery/jqplot-plugins/jqplot.barRenderer.js'); + wn.require('lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.min.js'); + wn.require('lib/js/legacy/jquery/jqplot-plugins/jqplot.canvasTextRenderer.min.js'); + wn.require('lib/js/legacy/jquery/jqplot-plugins/jqplot.categoryAxisRenderer.min.js'); pscript.dashboard_settings = { diff --git a/erpnext/home/page/event_updates/event_updates.js b/erpnext/home/page/event_updates/event_updates.js index c869eb83ff0..2eda138e9a4 100644 --- a/erpnext/home/page/event_updates/event_updates.js +++ b/erpnext/home/page/event_updates/event_updates.js @@ -123,7 +123,7 @@ HomeWidget = function(parent, heading, item) { this.footer = $a(this.wrapper,'div'); // add button - this.add_btn = $btn(this.footer,'+ Add ' + item,function(){me.add()}); + this.add_btn = $btn(this.footer,'+ Add ' + item,function(){me.add()},null,'cupid-blue'); // refresh this.refresh_btn = $ln(this.footer,'Refresh',function() { me.refresh(); },{fontSize:'11px',marginLeft:'7px',color:'#888'}); @@ -431,7 +431,7 @@ FeedList.prototype.make_head = function() { ); if(has_common(user_roles, ['System Manager','Accounts Manager'])) { - $btn(this.head, 'Dashboard', function() {loadpage('dashboard'); }, {marginLeft:'7px'}) + $btn(this.head, 'Dashboard', function() {loadpage('dashboard'); }, {marginLeft:'7px'}, 'cupid-blue') } } diff --git a/index.html b/index.html index 91b10321ee6..6550dcf4c56 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ ERPNext - +throw new SyntaxError('JSON.parse');};}}());wn.versions.check();wn.require("lib/js/lib/jquery.min.js");wn.require("lib/js/lib/history/history.min.js");$(document).bind('ready',function(){var base=window.location.href.split('#')[0];$.each($('a[softlink!="false"]'),function(i,v){if(v.href.substr(0,base.length)==base){var path=(v.href.substr(base.length));if(path.substr(0,1)!='#'){v.href=base+'#'+path;}}});if(!wn.settings.no_history&&window.location.hash){wn.page.set(window.location.hash.substr(1));}});
From 9b03ec44c42aba3469ba9d1b1a80ab1db6ddcf73 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 15 Sep 2011 12:46:07 +0530 Subject: [PATCH 13/84] versions ready for merge --- .gitignore | 1 + index.html | 11 ++++++----- js/app.js | 10 ++++++++-- versions-master.db | Bin 0 -> 404480 bytes 4 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 versions-master.db diff --git a/.gitignore b/.gitignore index 6c58384a823..7f90378aeca 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ server_tools patch.log lib +versions-local.db diff --git a/index.html b/index.html index f6d1007c306..e28f0069849 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ ERPNext - -
-
@@ -80,4 +78,5 @@ throw new SyntaxError('JSON.parse');};}}());wn.versions.check();wn.require("lib/ +
\ No newline at end of file diff --git a/templates/index.html b/templates/index.html index 7d8ac038688..5a4f9b6c477 100644 --- a/templates/index.html +++ b/templates/index.html @@ -6,8 +6,6 @@ -
-
@@ -19,4 +17,5 @@ +
\ No newline at end of file diff --git a/versions-master.db b/versions-master.db index 047f64d16247db09d4e079667913a51b3f5e07c1..0b3bcb2d3f1a4e0b90546afc23e9513be364809b 100644 GIT binary patch delta 8212 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 X`P43&$Y=g6h4Sgogiv9d4*mZFI`16g delta 3106 zcmZ8jd32S<6`y-&d0Aez_mYr}Y(NZVePpi?5(t855(Kni2}vN25Xnjs42zm*C{!B? z{WO;z46>@HE+xeB)dNc6vFNdOjXb{kZ$(dhpDiSdr$J3cQ*+sB_o}Aq`ns~ZmfEH6Rapl-e&nt! zA4^>@#=qu${5to=53v>F;WTW5`$4exSR2db@A1R@Lw=C|f$ud^?csE)3qt8k4}^MG zR95Ess9GlzPCDKNk@Us};h+mWU>g?MM@4Bg&;w!^^&Ukd>8}TVGUIh88r}<`c5S@K z)7EagWj%z-Q^AMYR$_!-r&Rr1>Y$6I z=yZ%4D3Ge;9ldbUwA>lliHHktqgs}2l+ZajeFuzd(c!Q8tcgyi!h!8ROV$1mVW8H7Dn>6s0$p@ zcXVv!QTp5(r%L;+?r_E&(tC8QbLCK8(?q*%*w$#4LX_tn=zn67AdQ=a;0HU zKM7sN+4LwGpvMkFWUPysrF#$QR;XK%Zc}wD*6m^4=IZ9(yECIAcr5Q?b}i%m{1MKu zAJ^b)_zw0!F}u#Xdm|s(gJSY#RP>t!6>nT9S|M^bGew2#R6=h@@%mSFk+M8vaMM(; z2kM$v)kn{oU-%G}Plt_kOu;-KS9WY-bZm8HYwRzgCsF$Zs2y(s%d6crmCb7!+!~Ix zKC!_1hGtC!O%_D^yqeF)jpz=L*Z3>l-hCPKfM&{?a@HTS|s zO-(x9#;%)bVs3qn`?i--Mh}nu1r%YL%UJU5<2-g%J)O^oxDn0NIGAD7ov-zaUAC%P zZ;9%Pvbu^|cPveff`p*5vSl^Z?z-l(CM|7fwj#8+j(qNcAu5fAF~*Y@Gpw15Xje4E zL7MT!#Vu4415=FsmqJBdOHB>E9Ru}7&{n7M_+T5Y%mAn1b$KOCj{%3V;c_?6%5qUp zCS(|Mh8#2_1D4xex6@YF@^U%|%l;hNk`60)sw>k{-cPS(fDcSEw){52xHRNxynNE% zm~kS(NV?)pV>2PGx9-YzApd+#1{r$E_Z^%Jq9n{43K)NtFX4gs5w>9_+Tb`m5A{&c z8!$c&c>LxB8oL@p&GHvucUUCTyK^t&yLka#!M!*i1-u1M!E|8kW42dkvBM*IbMP=v zQS@p}wEg=bP#X!NcatHQF75}1$lDyKsDDT%nyEc-%y*A}tGz25Whf72{5(IUxBly# z_|v?Wm+?H4>;Gc$A6CK(z9lUvh7U2huCTM4UC1!dR0%uZs>!rkYNno zkJY#d-^7pcDi78rzl1-_P5z~Ju!3fFhydzr5I&~1G?V9A-05T|n0_yU113QUtc9KM z0h~h*jK^76gE_g0)<%jVTZ8C~KsQbIMtN+=WA317~w8at;&U28C|5^kiPNEk} z@Kf5lP={jY7U79_KQ%1G{1N2vix%<#WiP^X`eUL9(qz@7Kkb4Li>y41=pv`-SBlwi zupBoEo4PPpwBG~t<#82GmSG89(&rr2m*IHp;^9D>uN94Ztvf{s z{cQQijG~=G(uS&!c3qK9+UWv+S~w)_X7|^!${y^+i1GD&5}v~a7y!pK8D_I{ z6gD8AkcFMIRXw#2$uJ|T*pIqXz>iwJl+!#nAm0Xfhjv|-XGCsio-*5pWD%nJ6CL|T z4oLOUeS8hM;^i3qVYGSUTj>E2KCGPaqkI#ei8t{OuEiXEUhM}rjAf@N`l{@pm-gv6 zRbA6wp1LYOlLejgRjD<-lTy(ZPM+V(K+W^>MtHsfZDZ(_Ybwypxh7A0D|Ir7mmB8*82q3Mf1T+Yp|Vj-+PG4gvm@0;Pvqy# zllQ3P)F`cIXG
lb3TFzJrfr9Gr&(PzI5#k1f^oFwI(uIWk4NE#wS||H zeZP8Llh{l!f9z41I~GE<8;co#g-^o)O{0tTf%tdW0(05tYzIXSs5X5TMp Date: Fri, 16 Sep 2011 17:28:49 +0530 Subject: [PATCH 37/84] contact address will be fetched in sales invoice onload when come through mapper --- .../accounts/doctype/receivable_voucher/receivable_voucher.js | 2 +- .../accounts/doctype/receivable_voucher/receivable_voucher.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js index e773a95fc89..14a53c416bc 100644 --- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js @@ -33,7 +33,7 @@ cur_frm.cscript.onload_post_render = function(doc, dt, dn) { 'load_default_accounts','', function(r,rt) { refresh_field('entries'); - refresh_field('debit_to'); + cur_frm.cscript.customer(doc,dt,dn); } ); } diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py index f26374a3826..dba08fe8b9d 100644 --- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py @@ -139,7 +139,6 @@ class DocType(TransactionBase): Loads default accounts from items, customer when called from mapper """ self.get_income_account('entries') - self.doc.debit_to = self.get_customer_account() def get_income_account(self,doctype): for d in getlist(self.doclist, doctype): From fdb0e362a7fb8d954dc8c37d2cafca292ab235e1 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 19 Sep 2011 12:22:47 +0530 Subject: [PATCH 38/84] update valuation and bin_aqat patch applicable after 01-09-2009 entries --- erpnext/patches/patch.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index f78736bbef4..c1668be03bc 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 367 +last_patch = 368 #------------------------------------------- @@ -340,12 +340,12 @@ def execute(patch_no): elif patch_no == 365: from patches.delivery_billing_status_patch import run_patch run_patch() - elif patch_no == 366: + elif patch_no == 367: bin = sql("select name from tabBin") for b in bin: bobj = get_obj('Bin',b[0]) - prev_sle = bobj.get_prev_sle(posting_date = '2011-09-15', posting_time = '01:00') - bobj.update_item_valuation(posting_date = '2011-09-15', posting_time = '01:00', prev_sle = prev_sle) - elif patch_no == 367: + prev_sle = bobj.get_prev_sle(posting_date = '2011-09-01', posting_time = '01:00') + bobj.update_item_valuation(posting_date = '2011-09-01', posting_time = '01:00', prev_sle = prev_sle) + elif patch_no == 368: sql("update tabDocPerm set amend = 0 where parent = 'Salary Structure'") sql("update tabDocPerm set cancel = 1 where parent = 'Company' and role = 'System Manager'") From e8475f9b85cb82b8534b7c254e1ffb2b04c11b06 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 22 Sep 2011 11:00:53 +0530 Subject: [PATCH 39/84] Appraisal score allowed to be fraction --- erpnext/hr/doctype/appraisal/appraisal.js | 237 ++++++++-------- erpnext/hr/doctype/appraisal/appraisal.py | 255 +++++++++--------- erpnext/hr/doctype/appraisal/appraisal.txt | 38 +-- .../appraisal_detail/appraisal_detail.txt | 17 +- 4 files changed, 262 insertions(+), 285 deletions(-) diff --git a/erpnext/hr/doctype/appraisal/appraisal.js b/erpnext/hr/doctype/appraisal/appraisal.js index ed531419579..b2683d82de1 100644 --- a/erpnext/hr/doctype/appraisal/appraisal.js +++ b/erpnext/hr/doctype/appraisal/appraisal.js @@ -1,145 +1,150 @@ cur_frm.add_fetch('employee', 'company', 'company'); cur_frm.cscript.onload = function(doc,cdt,cdn){ - if(!doc.status) set_multiple(dt,dn,{status:'Draft'}); - if(doc.employee) cur_frm.cscript.employee(doc,cdt,cdn); - if(doc.amended_from && doc.__islocal) cur_frm.cscript.refresh_appraisal_details(doc, cdt, cdn); + if(!doc.status) set_multiple(dt,dn,{status:'Draft'}); + if(doc.employee) cur_frm.cscript.employee(doc,cdt,cdn); + if(doc.amended_from && doc.__islocal) cur_frm.cscript.refresh_appraisal_details(doc, cdt, cdn); } cur_frm.cscript.refresh = function(doc,cdt,cdn){ - if(user == doc.kra_approver && doc.status == 'Submitted') unhide_field(['Update', 'Declare Completed', 'Calculate Total Score']); - else hide_field(['Update', 'Declare Completed', 'Calculate Total Score']); - - if(!doc.docstatus) unhide_field('Fetch Template'); - else hide_field('Fetch Template'); + if(user == doc.kra_approver && doc.status == 'Submitted') unhide_field(['Update', 'Declare Completed', 'Calculate Total Score']); + else hide_field(['Update', 'Declare Completed', 'Calculate Total Score']); + + if(!doc.docstatus) unhide_field('Fetch Template'); + else hide_field('Fetch Template'); } cur_frm.cscript.refresh_appraisal_details = function(doc, cdt, cdn){ - var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype); - for(var i = 0; iYou wont be able to do any changes after declaring this Appraisal as completed. Are you sure, you want to declare it as completed ?'], - ['HTML', 'Response', '
'], - ['HTML', 'Declare Completed', '
'] - ]); - - var declare_completed_btn1 = $a($i(declare_completed_dialog.widgets['Declare Completed']), 'button', 'button'); - declare_completed_btn1.innerHTML = 'Yes'; - declare_completed_btn1.onclick = function(){ declare_completed_dialog.add(); } - - var declare_completed_btn2 = $a($i(declare_completed_dialog.widgets['Declare Completed']), 'button', 'button'); - declare_completed_btn2.innerHTML = 'No'; - $y(declare_completed_btn2,{marginLeft:'4px'}); - declare_completed_btn2.onclick = function(){ declare_completed_dialog.hide();} - - declare_completed_dialog.onshow = function() { - $i('declare_completed_dialog_response').innerHTML = ''; - } - - declare_completed_dialog.refresh_dt = function(){ - cur_frm.cscript.refresh(this.doc, this.cdt, this.cdn); - msgprint("refersh done"); - $c('webnotes.widgets.form.form_header.refresh_labels',this.doc,function(r,rt){}); - } - - declare_completed_dialog.add = function() { - // sending... - $i('declare_completed_dialog_response').innerHTML = 'Processing...'; - var m_arg = user+ '~~' + this.msg_nm_lst; - - $c_obj(make_doclist(this.doc.doctype, this.doc.name),'declare_completed','', function(r,rt){ - - if(r.message.status == 'Completed'){ - $i('declare_completed_dialog_response').innerHTML = 'Done'; - refresh_field('status'); - declare_completed_dialog.refresh_dt(); - hide_field(['Update', 'Declare Completed', 'Calculate Total Score']); - declare_completed_dialog.hide(); - } - else if(r.message.status == 'Incomplete'){ - $i('declare_completed_dialog_response').innerHTML = 'Incomplete Appraisal'; - } - else if(r.message.status == 'No Score'){ - $i('declare_completed_dialog_response').innerHTML = 'Calculate total score'; - } - }); - } - } - - if(!declare_completed_dialog){ - set_declare_completed_dialog(); - } - declare_completed_dialog.doc = doc; - declare_completed_dialog.cdt = cdt; - declare_completed_dialog.cdn = cdn; - declare_completed_dialog.show(); + var declare_completed_dialog; + + set_declare_completed_dialog = function() { + declare_completed_dialog = new Dialog(400, 200, 'Declare Completed'); + declare_completed_dialog.make_body([ + ['HTML', 'Message', '
You wont be able to do any changes after declaring this Appraisal as completed. Are you sure, you want to declare it as completed ?
'], + ['HTML', 'Response', '
'], + ['HTML', 'Declare Completed', '
'] + ]); + + var declare_completed_btn1 = $a($i(declare_completed_dialog.widgets['Declare Completed']), 'button', 'button'); + declare_completed_btn1.innerHTML = 'Yes'; + declare_completed_btn1.onclick = function(){ declare_completed_dialog.add(); } + + var declare_completed_btn2 = $a($i(declare_completed_dialog.widgets['Declare Completed']), 'button', 'button'); + declare_completed_btn2.innerHTML = 'No'; + $y(declare_completed_btn2,{marginLeft:'4px'}); + declare_completed_btn2.onclick = function(){ declare_completed_dialog.hide();} + + declare_completed_dialog.onshow = function() { + $i('declare_completed_dialog_response').innerHTML = ''; + } + + declare_completed_dialog.refresh_dt = function(){ + cur_frm.cscript.refresh(this.doc, this.cdt, this.cdn); + msgprint("refersh done"); + $c('webnotes.widgets.form.form_header.refresh_labels',this.doc,function(r,rt){}); + } + + declare_completed_dialog.add = function() { + // sending... + $i('declare_completed_dialog_response').innerHTML = 'Processing...'; + var m_arg = user+ '~~' + this.msg_nm_lst; + + $c_obj(make_doclist(this.doc.doctype, this.doc.name),'declare_completed','', function(r,rt){ + + if(r.message.status == 'Completed'){ + $i('declare_completed_dialog_response').innerHTML = 'Done'; + refresh_field('status'); + declare_completed_dialog.refresh_dt(); + hide_field(['Update', 'Declare Completed', 'Calculate Total Score']); + declare_completed_dialog.hide(); + } + else if(r.message.status == 'Incomplete'){ + $i('declare_completed_dialog_response').innerHTML = 'Incomplete Appraisal'; + } + else if(r.message.status == 'No Score'){ + $i('declare_completed_dialog_response').innerHTML = 'Calculate total score'; + } + }); + } + } + + if(!declare_completed_dialog){ + set_declare_completed_dialog(); + } + declare_completed_dialog.doc = doc; + declare_completed_dialog.cdt = cdt; + declare_completed_dialog.cdn = cdn; + declare_completed_dialog.show(); } cur_frm.cscript.score = function(doc,cdt,cdn){ - var d = locals[cdt][cdn]; - if (d.score){ - total = flt(d.per_weightage*d.score)/100; - d.score_earned = total.toPrecision(2); - refresh_field('score_earned', d.name, 'appraisal_details'); - } - else{ - d.score_earned = ''; - refresh_field('score_earned', d.name, 'appraisal_details'); - } - cur_frm.cscript.calculate_total(doc,cdt,cdn); + var d = locals[cdt][cdn]; + if (d.score){ + if (flt(d.score) > 5) { + msgprint("Score must be less than or equal to 5"); + d.score = 0; + refresh_field('score', d.name, 'appraisal_details'); + } + total = flt(d.per_weightage*d.score)/100; + d.score_earned = total.toPrecision(2); + refresh_field('score_earned', d.name, 'appraisal_details'); + } + else{ + d.score_earned = ''; + refresh_field('score_earned', d.name, 'appraisal_details'); + } + cur_frm.cscript.calculate_total(doc,cdt,cdn); } cur_frm.cscript.calculate_total = function(doc,cdt,cdn){ - var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype); - var total =0; - for(var i = 0; i getdate(self.doc.end_date): - msgprint("End Date can not be less than Start Date") - raise Exception - - def validate_existing_appraisal(self): - chk = sql("select name from `tabAppraisal` where employee=%s and (status='Submitted' or status='Completed') and ((start_date>=%s and start_date<=%s) or (end_date>=%s and end_date<=%s))",(self.doc.employee,self.doc.start_date,self.doc.end_date,self.doc.start_date,self.doc.end_date)) - if chk: - msgprint("You have already created Appraisal "+cstr(chk[0][0])+" in the current date range for employee "+cstr(self.doc.employee_name)) - raise Exception - - def validate_curr_appraisal(self): - for d in getlist(self.doclist, 'appraisal_details'): - if d.target_achieved or d.score: - if self.doc.status == 'Draft': - msgprint("Target achieved or Score can be added only for submitted Appraisal") - raise Exception - elif self.doc.status == 'Submitted' and session['user'] != self.doc.kra_approver: - msgprint("Target achieved or Score can be added only by Appraisal Approver") - raise Exception - - def validate_fiscal_year(self): - fy=sql("select year_start_date from `tabFiscal Year` where name='%s'"%self.doc.fiscal_year) - ysd=fy and fy[0][0] or "" - yed=add_days(str(ysd),365) - if str(self.doc.start_date) < str(ysd) or str(self.doc.start_date) > str(yed) or str(self.doc.end_date) < str(ysd) or str(self.doc.end_date) > str(yed): - msgprint("Appraisal date range is not within the Fiscal Year selected") - raise Exception - - def validate(self): - self.validate_dates() - self.validate_existing_appraisal() - self.validate_curr_appraisal() - self.validate_fiscal_year() - - def set_approver(self): - ret={} - approver_lst =[] - emp_nm = self.get_employee_name() - approver_lst1 = get_obj('Authorization Control').get_approver_name(self.doc.doctype,0,self) - if approver_lst1: - approver_lst=approver_lst1 - else: - approver_lst = [x[0] for x in sql("select distinct name from `tabProfile` where enabled=1 and name!='Administrator' and name!='Guest' and docstatus!=2")] - ret = {'app_lst':"\n" + "\n".join(approver_lst), 'emp_nm':cstr(emp_nm)} - return ret - - def calculate_total(self): - total = 0 - for d in getlist(self.doclist, 'appraisal_details'): - if d.score: - total = total + flt(d.score_earned) - ret={'total_score':flt(total)} - return ret - - def declare_completed(self): - ret={} - for d in getlist(self.doclist, 'appraisal_details'): - if not d.target_achieved or not d.score or not d.score_earned: - msgprint("Please add 'Target Achieved' and 'Score' for all KPI") - ret = {'status':'Incomplete'} - return ret - - if not self.doc.total_score: - msgprint("Please calculate total score using button 'Calculate Total Score'") - ret = {'status':'No Score'} - return ret - self.update_appraisal() - #set(self.doc, 'status', 'Completed') - ret = {'status':'Completed'} - return ret - - def update_appraisal(self): - for d in getlist(self.doclist, 'appraisal_details'): - if not d.kra or not d.per_weightage: - msgprint("Please remove the extra blank row added") - raise Exception - d.save() - if self.doc.total_score: - set(self.doc,'total_score',self.doc.total_score) - - def on_update(self): - set(self.doc, 'status', 'Draft') - - def validate_total_weightage(self): - total_w = 0 - for d in getlist(self.doclist, 'appraisal_details'): - total_w = flt(total_w) + flt(d.per_weightage) - - if flt(total_w)>100 or flt(total_w)<100: - msgprint("Total of weightage assigned to KPI is "+cstr(total_w)+".It should be 100(%)") - raise Exception - - def validate_appraisal_detail(self): - if not self.doc.kra_approver: - msgprint("Please mention the name of Approver") - raise Exception - - if not getlist(self.doclist, 'appraisal_details'): - msgprint("Please add KRA Details") - raise Exception - - self.validate_total_weightage() - - def on_submit(self): - self.validate_appraisal_detail() - set(self.doc, 'status', 'Submitted') - - def on_cancel(self): - set(self.doc, 'status', 'Cancelled') \ No newline at end of file + def __init__(self, doc, doclist=[]): + self.doc = doc + self.doclist = doclist + + def get_employee_name(self): + emp_nm = sql("select employee_name from `tabEmployee` where name=%s", self.doc.employee) + emp_nm= emp_nm and emp_nm[0][0] or '' + self.doc.employee_name = emp_nm + return emp_nm + + def fetch_kra(self): + if not self.doc.kra_template: + msgprint("Please select KRA Template to be be fetched") + raise Exception + self.doc.clear_table(self.doclist,'appraisal_details') + get_obj('DocType Mapper', 'KRA Template-Appraisal').dt_map('KRA Template', 'Appraisal', self.doc.kra_template, self.doc, self.doclist, "[['KRA Template','Appraisal'],['KRA Sheet', 'Appraisal Detail']]") + + def validate_dates(self): + if getdate(self.doc.start_date) > getdate(self.doc.end_date): + msgprint("End Date can not be less than Start Date") + raise Exception + + def validate_existing_appraisal(self): + chk = sql("select name from `tabAppraisal` where employee=%s and (status='Submitted' or status='Completed') and ((start_date>=%s and start_date<=%s) or (end_date>=%s and end_date<=%s))",(self.doc.employee,self.doc.start_date,self.doc.end_date,self.doc.start_date,self.doc.end_date)) + if chk: + msgprint("You have already created Appraisal "+cstr(chk[0][0])+" in the current date range for employee "+cstr(self.doc.employee_name)) + raise Exception + + def validate_curr_appraisal(self): + for d in getlist(self.doclist, 'appraisal_details'): + if d.target_achieved or d.score: + if self.doc.status == 'Draft': + msgprint("Target achieved or Score can be added only for submitted Appraisal") + raise Exception + elif self.doc.status == 'Submitted' and session['user'] != self.doc.kra_approver: + msgprint("Target achieved or Score can be added only by Appraisal Approver") + raise Exception + + + def validate_fiscal_year(self): + fy=sql("select year_start_date from `tabFiscal Year` where name='%s'"%self.doc.fiscal_year) + ysd=fy and fy[0][0] or "" + yed=add_days(str(ysd),365) + if str(self.doc.start_date) < str(ysd) or str(self.doc.start_date) > str(yed) or str(self.doc.end_date) < str(ysd) or str(self.doc.end_date) > str(yed): + msgprint("Appraisal date range is not within the Fiscal Year selected") + raise Exception + + def validate(self): + self.validate_dates() + self.validate_existing_appraisal() + self.validate_curr_appraisal() + self.validate_fiscal_year() + + def set_approver(self): + ret={} + approver_lst =[] + emp_nm = self.get_employee_name() + approver_lst1 = get_obj('Authorization Control').get_approver_name(self.doc.doctype,0,self) + if approver_lst1: + approver_lst=approver_lst1 + else: + approver_lst = [x[0] for x in sql("select distinct name from `tabProfile` where enabled=1 and name!='Administrator' and name!='Guest' and docstatus!=2")] + ret = {'app_lst':"\n" + "\n".join(approver_lst), 'emp_nm':cstr(emp_nm)} + return ret + + def calculate_total(self): + total = 0 + for d in getlist(self.doclist, 'appraisal_details'): + if d.score: + total = total + flt(d.score_earned) + ret={'total_score':flt(total)} + return ret + + def declare_completed(self): + ret={} + for d in getlist(self.doclist, 'appraisal_details'): + if not d.target_achieved or not d.score or not d.score_earned: + msgprint("Please add 'Target Achieved' and 'Score' for all KPI") + ret = {'status':'Incomplete'} + return ret + + if not self.doc.total_score: + msgprint("Please calculate total score using button 'Calculate Total Score'") + ret = {'status':'No Score'} + return ret + self.update_appraisal() + #set(self.doc, 'status', 'Completed') + ret = {'status':'Completed'} + return ret + + def update_appraisal(self): + for d in getlist(self.doclist, 'appraisal_details'): + if not d.kra or not d.per_weightage: + msgprint("Please remove the extra blank row added") + raise Exception + d.save() + if self.doc.total_score: + set(self.doc,'total_score',self.doc.total_score) + + def on_update(self): + set(self.doc, 'status', 'Draft') + + def validate_total_weightage(self): + total_w = 0 + for d in getlist(self.doclist, 'appraisal_details'): + total_w = flt(total_w) + flt(d.per_weightage) + + if flt(total_w)>100 or flt(total_w)<100: + msgprint("Total of weightage assigned to KPI is "+cstr(total_w)+".It should be 100(%)") + raise Exception + + def validate_appraisal_detail(self): + if not self.doc.kra_approver: + msgprint("Please mention the name of Approver") + raise Exception + + if not getlist(self.doclist, 'appraisal_details'): + msgprint("Please add KRA Details") + raise Exception + + self.validate_total_weightage() + + def on_submit(self): + self.validate_appraisal_detail() + set(self.doc, 'status', 'Submitted') + + def on_cancel(self): + set(self.doc, 'status', 'Cancelled') diff --git a/erpnext/hr/doctype/appraisal/appraisal.txt b/erpnext/hr/doctype/appraisal/appraisal.txt index 3521c6f8672..e2abb35d337 100644 --- a/erpnext/hr/doctype/appraisal/appraisal.txt +++ b/erpnext/hr/doctype/appraisal/appraisal.txt @@ -5,16 +5,17 @@ { 'creation': '2010-09-01 15:48:05', 'docstatus': 0, - 'modified': '2011-06-27 14:39:10', + 'modified': '2011-09-22 10:59:43', 'modified_by': 'Administrator', 'owner': 'ashwini@webnotestech.com' }, # These values are common for all DocType { - '_last_update': '1308808105', + '_last_update': '1316075905', 'autoname': 'APRSL.#####', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'module': 'HR', 'name': '__common__', @@ -22,7 +23,7 @@ 'section_style': 'Simple', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 160 + 'version': 161 }, # These values are common for all DocField @@ -56,7 +57,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'role': 'System Manager', 'submit': 1, @@ -66,7 +66,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 1, 'role': 'System Manager' }, @@ -77,7 +76,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'System Manager', 'submit': 1, @@ -87,7 +85,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 1, 'role': 'System Manager' }, @@ -98,7 +95,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 0, 'role': 'HR Manager', 'submit': 1, @@ -111,7 +107,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 0, 'role': 'HR User', 'submit': 1, @@ -121,7 +116,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 7, 'permlevel': 1, 'role': 'HR Manager' }, @@ -129,7 +123,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 8, 'permlevel': 1, 'role': 'HR User' }, @@ -138,7 +131,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Employee Details', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -151,9 +143,9 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 2, 'in_filter': 1, 'label': 'Status', + 'no_copy': 1, 'oldfieldname': 'status', 'oldfieldtype': 'Select', 'options': '\nDraft\nSubmitted\nCompleted\nCancelled', @@ -168,7 +160,6 @@ 'doctype': 'DocField', 'fieldname': 'employee', 'fieldtype': 'Link', - 'idx': 3, 'in_filter': 1, 'label': 'Employee', 'oldfieldname': 'employee', @@ -185,7 +176,6 @@ 'doctype': 'DocField', 'fieldname': 'employee_name', 'fieldtype': 'Data', - 'idx': 4, 'in_filter': 1, 'label': 'Employee Name', 'oldfieldname': 'employee_name', @@ -198,7 +188,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 5, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -213,7 +202,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Select', - 'idx': 6, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -227,7 +215,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 7, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -238,7 +225,6 @@ 'doctype': 'DocField', 'fieldname': 'start_date', 'fieldtype': 'Date', - 'idx': 8, 'in_filter': 1, 'label': 'Start Date', 'oldfieldname': 'start_date', @@ -252,7 +238,6 @@ 'doctype': 'DocField', 'fieldname': 'end_date', 'fieldtype': 'Date', - 'idx': 9, 'in_filter': 1, 'label': 'End Date', 'oldfieldname': 'end_date', @@ -267,7 +252,6 @@ 'doctype': 'DocField', 'fieldname': 'kra_approver', 'fieldtype': 'Select', - 'idx': 10, 'in_filter': 0, 'label': 'Approver', 'oldfieldname': 'kra_approver', @@ -282,7 +266,6 @@ 'fieldname': 'amended_from', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 11, 'label': 'Amended From', 'no_copy': 1, 'oldfieldname': 'amended_from', @@ -299,7 +282,6 @@ 'fieldname': 'amendment_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 12, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -316,7 +298,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 13, 'label': 'Declare Completed', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -327,7 +308,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 14, 'oldfieldtype': 'Section Break', 'options': 'Simple', 'permlevel': 0 @@ -340,7 +320,6 @@ 'doctype': 'DocField', 'fieldname': 'kra_template', 'fieldtype': 'Link', - 'idx': 15, 'label': 'KRA Template', 'oldfieldname': 'kra_template', 'oldfieldtype': 'Link', @@ -352,7 +331,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 16, 'label': 'Fetch Template', 'oldfieldtype': 'Button', 'options': 'fetch_kra', @@ -366,7 +344,6 @@ 'doctype': 'DocField', 'fieldtype': 'Button', 'hidden': 1, - 'idx': 17, 'label': 'Update', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -380,7 +357,6 @@ 'doctype': 'DocField', 'fieldname': 'appraisal_details', 'fieldtype': 'Table', - 'idx': 18, 'label': 'Appraisal Details', 'oldfieldname': 'appraisal_details', 'oldfieldtype': 'Table', @@ -393,7 +369,6 @@ 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 19, 'label': 'Calculate Total Score', 'oldfieldtype': 'Button', 'options': 'calculate_total', @@ -405,8 +380,7 @@ 'doctype': 'DocField', 'fieldname': 'total_score', 'fieldtype': 'Currency', - 'idx': 20, - 'label': 'Total Score', + 'label': 'Total Score (Out of 5)', 'no_copy': 1, 'oldfieldname': 'total_score', 'oldfieldtype': 'Currency', diff --git a/erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt b/erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt index fa57bef30e5..771bf4e2013 100644 --- a/erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt +++ b/erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt @@ -5,8 +5,8 @@ { 'creation': '2010-09-01 15:48:05', 'docstatus': 0, - 'modified': '2010-09-20 14:06:57', - 'modified_by': 'rahul@webnotestech.com', + 'modified': '2011-09-22 10:45:37', + 'modified_by': 'Administrator', 'owner': 'ashwini@webnotestech.com' }, @@ -14,13 +14,14 @@ { 'autoname': 'APRSLD.#####', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'istable': 1, 'module': 'HR', 'name': '__common__', 'section_style': 'Simple', 'server_code_error': ' ', - 'version': 13 + 'version': 15 }, # These values are common for all DocField @@ -45,7 +46,6 @@ 'doctype': 'DocField', 'fieldname': 'kra', 'fieldtype': 'Small Text', - 'idx': 1, 'label': 'KRA', 'oldfieldname': 'kra', 'oldfieldtype': 'Small Text', @@ -58,7 +58,6 @@ 'doctype': 'DocField', 'fieldname': 'per_weightage', 'fieldtype': 'Currency', - 'idx': 2, 'label': 'Weightage (%)', 'oldfieldname': 'per_weightage', 'oldfieldtype': 'Currency', @@ -72,7 +71,6 @@ 'doctype': 'DocField', 'fieldname': 'target_achieved', 'fieldtype': 'Small Text', - 'idx': 3, 'label': 'Target Achieved', 'no_copy': 1, 'oldfieldname': 'target_achieved', @@ -86,15 +84,15 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldname': 'score', - 'fieldtype': 'Select', - 'idx': 4, + 'fieldtype': 'Currency', 'label': 'Score (0-5)', 'no_copy': 1, 'oldfieldname': 'score', 'oldfieldtype': 'Select', 'options': '\n0\n1\n2\n3\n4\n5', 'permlevel': 0, - 'trigger': 'Client' + 'trigger': 'Client', + 'width': '60px' }, # DocField @@ -102,7 +100,6 @@ 'doctype': 'DocField', 'fieldname': 'score_earned', 'fieldtype': 'Currency', - 'idx': 5, 'label': 'Score Earned', 'no_copy': 1, 'oldfieldname': 'score_earned', From b3ce0ecb3463db35852c3faf548dcabafefa3562 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 22 Sep 2011 16:10:15 +0530 Subject: [PATCH 40/84] repost account balance through push patch --- erpnext/patches/patch.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index c1668be03bc..9f660355056 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 368 +last_patch = 371 #------------------------------------------- @@ -349,3 +349,29 @@ def execute(patch_no): elif patch_no == 368: sql("update tabDocPerm set amend = 0 where parent = 'Salary Structure'") sql("update tabDocPerm set cancel = 1 where parent = 'Company' and role = 'System Manager'") + elif patch_no == 369: + from webnotes.utils import nestedset + t = [ + ['Account', 'parent_account'], ['Cost Center', 'parent_cost_center'], + ['Item Group', 'parent_item_group'], ['Territory', 'parent_territory'], + ['Customer Group', 'parent_customer_group'], ['Sales Person', 'parent_sales_person'] + ] + for d in t: + nestedset.rebuild_tree(d[0], d[1]) + elif patch_no == 370: + reload_doc('hr', 'doctype', 'appraisal') + reload_doc('hr', 'doctype', 'appraisal_detail') + elif patch_no == 371: + comp = sql("select name from tabCompany where docstatus!=2") + fy = sql("select name from `tabFiscal Year` order by year_start_date asc") + for c in comp: + prev_fy = '' + for f in fy: + fy_obj = get_obj('Fiscal Year', f[0]) + fy_obj.doc.past_year = prev_fy + fy_obj.doc.company = c[0] + fy_obj.doc.save() + fy_obj.repost() + prev_fy = f[0] + sql("commit") + sql("start transaction") From 5941ae3b7515b95e2f19be6fb8d4625bd01c1c12 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 22 Sep 2011 16:10:43 +0530 Subject: [PATCH 41/84] Default account creation order changed --- erpnext/setup/doctype/company/company.py | 204 +++++++++++------------ 1 file changed, 102 insertions(+), 102 deletions(-) diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index 45b4973f9c8..a163870a6a3 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -26,110 +26,110 @@ class DocType: def create_default_accounts(self): self.fld_dict = {'account_name':0,'parent_account':1,'group_or_ledger':2,'is_pl_account':3,'account_type':4,'debit_or_credit':5,'company':6,'tax_rate':7} acc_list_common = [['Application of Funds (Assets)','','Group','No','','Debit',self.doc.name,''], - ['Current Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], - ['Accounts Receivable','Current Assets','Group','No','','Debit',self.doc.name,''], - ['Bank Accounts','Current Assets','Group','No','Bank or Cash','Debit',self.doc.name,''], - ['Cash In Hand','Current Assets','Group','No','Bank or Cash','Debit',self.doc.name,''], - ['Cash','Cash In Hand','Ledger','No','Bank or Cash','Debit',self.doc.name,''], - ['Loans and Advances (Assets)','Current Assets','Group','No','','Debit',self.doc.name,''], - ['Securities and Deposits','Current Assets','Group','No','','Debit',self.doc.name,''], - ['Earnest Money','Securities and Deposits','Ledger','No','','Debit',self.doc.name,''], - ['Stock In Hand','Current Assets','Group','No','','Debit',self.doc.name,''], - ['Stock','Stock In Hand','Ledger','No','','Debit',self.doc.name,''], - ['Tax Assets','Current Assets','Group','No','','Debit',self.doc.name,''], - ['Fixed Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], - ['Capital Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], - ['Computers','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], - ['Furniture and Fixture','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], - ['Office Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], - ['Plant and Machinery','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], - ['Investments','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], - ['Temporary Accounts (Assets)','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], - ['Temporary Account (Assets)','Temporary Accounts (Assets)','Ledger','No','','Debit',self.doc.name,''], - ['Source of Funds (Liabilities)','','Group','No','','Credit',self.doc.name,''], - ['Capital Account','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Reserves and Surplus','Capital Account','Group','No','','Credit',self.doc.name,''], - ['Shareholders Funds','Capital Account','Group','No','','Credit',self.doc.name,''], - ['Current Liabilities','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Accounts Payable','Current Liabilities','Group','No','','Credit',self.doc.name,''], - ['Duties and Taxes','Current Liabilities','Group','No','','Credit',self.doc.name,''], - ['Loans (Liabilities)','Current Liabilities','Group','No','','Credit',self.doc.name,''], - ['Secured Loans','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Unsecured Loans','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Bank Overdraft Account','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Temporary Accounts (Liabilities)','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Temporary Account (Liabilities)','Temporary Accounts (Liabilities)','Ledger','No','','Credit',self.doc.name,''], - ['Income','','Group','Yes','','Credit',self.doc.name,''], - ['Direct Income','Income','Group','Yes','Income Account','Credit',self.doc.name,''], - ['Sales','Direct Income','Ledger','Yes','Income Account','Credit',self.doc.name,''], - ['Service','Direct Income','Ledger','Yes','Income Account','Credit',self.doc.name,''], - ['Indirect Income','Income','Group','Yes','Income Account','Credit',self.doc.name,''], - ['Expenses','','Group','Yes','Expense Account','Debit',self.doc.name,''], - ['Direct Expenses','Expenses','Group','Yes','Expense Account','Debit',self.doc.name,''], - ['Cost of Goods Sold','Direct Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Indirect Expenses','Expenses','Group','Yes','Expense Account','Debit',self.doc.name,''], - ['Advertising and Publicity','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], - ['Bad Debts Written Off','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Bank Charges','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Books and Periodicals','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Charity and Donations','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Commission on Sales','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Conveyance Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Customer Entertainment Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Depreciation Account','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Freight and Forwarding Charges','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], - ['Legal Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Miscellaneous Expenses','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], - ['Office Maintenance Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Office Rent','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Postal Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Print and Stationary','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Rounded Off','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Salary','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Sales Promotion Expenses','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], - ['Service Charges Paid','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Staff Welfare Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Telephone Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Travelling Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Water and Electricity Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''] - ] + ['Current Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], + ['Accounts Receivable','Current Assets','Group','No','','Debit',self.doc.name,''], + ['Bank Accounts','Current Assets','Group','No','Bank or Cash','Debit',self.doc.name,''], + ['Cash In Hand','Current Assets','Group','No','Bank or Cash','Debit',self.doc.name,''], + ['Cash','Cash In Hand','Ledger','No','Bank or Cash','Debit',self.doc.name,''], + ['Loans and Advances (Assets)','Current Assets','Group','No','','Debit',self.doc.name,''], + ['Securities and Deposits','Current Assets','Group','No','','Debit',self.doc.name,''], + ['Earnest Money','Securities and Deposits','Ledger','No','','Debit',self.doc.name,''], + ['Stock In Hand','Current Assets','Group','No','','Debit',self.doc.name,''], + ['Stock','Stock In Hand','Ledger','No','','Debit',self.doc.name,''], + ['Tax Assets','Current Assets','Group','No','','Debit',self.doc.name,''], + ['Fixed Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], + ['Capital Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], + ['Computers','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], + ['Furniture and Fixture','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], + ['Office Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], + ['Plant and Machinery','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], + ['Investments','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], + ['Temporary Accounts (Assets)','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], + ['Temporary Account (Assets)','Temporary Accounts (Assets)','Ledger','No','','Debit',self.doc.name,''], + ['Expenses','','Group','Yes','Expense Account','Debit',self.doc.name,''], + ['Direct Expenses','Expenses','Group','Yes','Expense Account','Debit',self.doc.name,''], + ['Cost of Goods Sold','Direct Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Indirect Expenses','Expenses','Group','Yes','Expense Account','Debit',self.doc.name,''], + ['Advertising and Publicity','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], + ['Bad Debts Written Off','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Bank Charges','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Books and Periodicals','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Charity and Donations','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Commission on Sales','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Conveyance Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Customer Entertainment Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Depreciation Account','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Freight and Forwarding Charges','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], + ['Legal Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Miscellaneous Expenses','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], + ['Office Maintenance Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Office Rent','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Postal Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Print and Stationary','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Rounded Off','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Salary','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Sales Promotion Expenses','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], + ['Service Charges Paid','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Staff Welfare Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Telephone Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Travelling Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Water and Electricity Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], + ['Income','','Group','Yes','','Credit',self.doc.name,''], + ['Direct Income','Income','Group','Yes','Income Account','Credit',self.doc.name,''], + ['Sales','Direct Income','Ledger','Yes','Income Account','Credit',self.doc.name,''], + ['Service','Direct Income','Ledger','Yes','Income Account','Credit',self.doc.name,''], + ['Indirect Income','Income','Group','Yes','Income Account','Credit',self.doc.name,''], + ['Source of Funds (Liabilities)','','Group','No','','Credit',self.doc.name,''], + ['Capital Account','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''], + ['Reserves and Surplus','Capital Account','Group','No','','Credit',self.doc.name,''], + ['Shareholders Funds','Capital Account','Group','No','','Credit',self.doc.name,''], + ['Current Liabilities','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''], + ['Accounts Payable','Current Liabilities','Group','No','','Credit',self.doc.name,''], + ['Duties and Taxes','Current Liabilities','Group','No','','Credit',self.doc.name,''], + ['Loans (Liabilities)','Current Liabilities','Group','No','','Credit',self.doc.name,''], + ['Secured Loans','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''], + ['Unsecured Loans','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''], + ['Bank Overdraft Account','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''], + ['Temporary Accounts (Liabilities)','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''], + ['Temporary Account (Liabilities)','Temporary Accounts (Liabilities)','Ledger','No','','Credit',self.doc.name,''] + ] acc_list_india = [ - ['CENVAT Capital Goods','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['CENVAT','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''], - ['CENVAT Service Tax','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['CENVAT Service Tax Cess 1','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['CENVAT Service Tax Cess 2','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['CENVAT Edu Cess','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''], - ['CENVAT SHE Cess','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''], - ['Excise Duty 4','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'4.00'], - ['Excise Duty 8','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'8.00'], - ['Excise Duty 10','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'10.00'], - ['Excise Duty 14','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'14.00'], - ['Excise Duty Edu Cess 2','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'2.00'], - ['Excise Duty SHE Cess 1','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'1.00'], - ['P L A','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['P L A - Cess Portion','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['Edu. Cess on Excise','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'], - ['Edu. Cess on Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'], - ['Edu. Cess on TDS','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'], - ['Excise Duty @ 4','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'4.00'], - ['Excise Duty @ 8','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'8.00'], - ['Excise Duty @ 10','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'10.00'], - ['Excise Duty @ 14','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'14.00'], - ['Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'10.3'], - ['SHE Cess on Excise','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'], - ['SHE Cess on Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'], - ['SHE Cess on TDS','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'], - ['Professional Tax','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['VAT','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Advertisement)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Commission)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Contractor)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Interest)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Rent)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Salary)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''] - ] + ['CENVAT Capital Goods','Tax Assets','Ledger','No','','Debit',self.doc.name,''], + ['CENVAT','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''], + ['CENVAT Service Tax','Tax Assets','Ledger','No','','Debit',self.doc.name,''], + ['CENVAT Service Tax Cess 1','Tax Assets','Ledger','No','','Debit',self.doc.name,''], + ['CENVAT Service Tax Cess 2','Tax Assets','Ledger','No','','Debit',self.doc.name,''], + ['CENVAT Edu Cess','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''], + ['CENVAT SHE Cess','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''], + ['Excise Duty 4','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'4.00'], + ['Excise Duty 8','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'8.00'], + ['Excise Duty 10','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'10.00'], + ['Excise Duty 14','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'14.00'], + ['Excise Duty Edu Cess 2','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'2.00'], + ['Excise Duty SHE Cess 1','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'1.00'], + ['P L A','Tax Assets','Ledger','No','','Debit',self.doc.name,''], + ['P L A - Cess Portion','Tax Assets','Ledger','No','','Debit',self.doc.name,''], + ['Edu. Cess on Excise','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'], + ['Edu. Cess on Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'], + ['Edu. Cess on TDS','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'], + ['Excise Duty @ 4','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'4.00'], + ['Excise Duty @ 8','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'8.00'], + ['Excise Duty @ 10','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'10.00'], + ['Excise Duty @ 14','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'14.00'], + ['Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'10.3'], + ['SHE Cess on Excise','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'], + ['SHE Cess on Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'], + ['SHE Cess on TDS','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'], + ['Professional Tax','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], + ['VAT','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], + ['TDS (Advertisement)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], + ['TDS (Commission)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], + ['TDS (Contractor)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], + ['TDS (Interest)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], + ['TDS (Rent)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], + ['TDS (Salary)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''] + ] # load common account heads for d in acc_list_common: self.add_acc(d) From a28e366c1570bb9328427b30c1d24e57c45d4f2f Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 22 Sep 2011 16:32:02 +0530 Subject: [PATCH 42/84] deleted duplicate button fron JV --- erpnext/patches/patch.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index 9f660355056..8880e7dc1f4 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 371 +last_patch = 372 #------------------------------------------- @@ -375,3 +375,8 @@ def execute(patch_no): prev_fy = f[0] sql("commit") sql("start transaction") + elif patch_no == 372: + if sql("select count(name) from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1: + sql("delete from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1") + if sql("select count(name) from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1: + sql("delete from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1") From 2736fd59cab91d04bc003d1d49ec902b50fb9a28 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 26 Sep 2011 12:55:52 +0530 Subject: [PATCH 43/84] fixed cancelled gl entry issue in period closing voucher --- .../period_closing_voucher/period_closing_voucher.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py index c7e5db66395..895130ea0fd 100644 --- a/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py +++ b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py @@ -79,8 +79,8 @@ class DocType: # Get account (pl) specific balance #=========================================================== def get_pl_balances(self, d_or_c): - acc_bal = sql("select t1.account, sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) from `tabGL Entry` t1, `tabAccount` t2 where t1.account = t2.name and t2.group_or_ledger = 'Ledger' and ifnull(t2.freeze_account, 'No') = 'No' and t2.is_pl_account = 'Yes' and t2.debit_or_credit = '%s' and t2.docstatus < 2 and t2.company = '%s' and t1.posting_date between '%s' and '%s' group by t1.account " % (d_or_c, self.doc.company, self.year_start_date, self.doc.posting_date)) - return acc_bal + acc_bal = sql("select t1.account, sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) from `tabGL Entry` t1, `tabAccount` t2 where t1.account = t2.name and t2.group_or_ledger = 'Ledger' and ifnull(t2.freeze_account, 'No') = 'No' and ifnull(t2.is_pl_account, 'No') = 'Yes' and ifnull(is_cancelled, 'No') = 'No' and t2.debit_or_credit = '%s' and t2.docstatus < 2 and t2.company = '%s' and t1.posting_date between '%s' and '%s' group by t1.account " % (d_or_c, self.doc.company, self.year_start_date, self.doc.posting_date)) + return acc_bal # Makes GL Entries @@ -185,7 +185,7 @@ class DocType: # ============================================================= def on_cancel(self): # get all submit entries of current closing entry voucher - gl_entries = sql("select account, debit, credit from `tabGL Entry` where voucher_type = 'Period Closing Voucher' and voucher_no = '%s'" % (self.doc.name)) + gl_entries = sql("select account, debit, credit from `tabGL Entry` where voucher_type = 'Period Closing Voucher' and voucher_no = '%s' and ifnull(is_cancelled, 'No') = 'No'" % (self.doc.name)) # Swap Debit & Credit Column and make gl entry for gl in gl_entries: From 5f2046496bff09628506d6fe3c1bbe22df73944a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 26 Sep 2011 18:56:02 +0530 Subject: [PATCH 44/84] Internal Reconciliation: for knock out booking and payment entries --- .../internal_reconciliation/__init__.py | 0 .../internal_reconciliation.js | 21 ++ .../internal_reconciliation.py | 138 +++++++++ .../internal_reconciliation.txt | 266 ++++++++++++++++++ .../internal_reconciliation/test_ir.py | 169 +++++++++++ .../doctype/ir_payment_detail/__init__.py | 0 .../ir_payment_detail/ir_payment_detail.txt | 132 +++++++++ 7 files changed, 726 insertions(+) create mode 100644 erpnext/accounts/doctype/internal_reconciliation/__init__.py create mode 100644 erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.js create mode 100644 erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.py create mode 100644 erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.txt create mode 100644 erpnext/accounts/doctype/internal_reconciliation/test_ir.py create mode 100644 erpnext/accounts/doctype/ir_payment_detail/__init__.py create mode 100644 erpnext/accounts/doctype/ir_payment_detail/ir_payment_detail.txt diff --git a/erpnext/accounts/doctype/internal_reconciliation/__init__.py b/erpnext/accounts/doctype/internal_reconciliation/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.js b/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.js new file mode 100644 index 00000000000..bcd5c442775 --- /dev/null +++ b/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.js @@ -0,0 +1,21 @@ +// Booking Entry Id +// -------------------- + +cur_frm.fields_dict.voucher_no.get_query = function(doc) { + + if (!doc.account) msgprint("Please select Account first"); + else { + return repl("select voucher_no, posting_date \ + from `tabGL Entry` where ifnull(is_cancelled, 'No') = 'No'\ + and account = '%(acc)s' \ + and voucher_type = '%(dt)s' \ + and voucher_no LIKE '%s' \ + ORDER BY posting_date DESC, voucher_no DESC LIMIT 50 \ + ", {dt:session.rev_dt_labels[doc.voucher_type] || doc.voucher_type, acc:doc.account}); + } +} + +cur_frm.cscript.voucher_no =function(doc, cdt, cdn) { + get_server_fields('get_voucher_details', '', '', doc, cdt, cdn, 1) +} + diff --git a/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.py b/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.py new file mode 100644 index 00000000000..7c345467b68 --- /dev/null +++ b/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.py @@ -0,0 +1,138 @@ +# Please edit this list and import only required elements +import webnotes + +from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add +from webnotes.model import db_exists +from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType +from webnotes.model.doclist import getlist, copy_doclist +from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax +from webnotes import session, form, is_testing, msgprint, errprint + +set = webnotes.conn.set +sql = webnotes.conn.sql +get_value = webnotes.conn.get_value +in_transaction = webnotes.conn.in_transaction +convert_to_lists = webnotes.conn.convert_to_lists + +# ----------------------------------------------------------------------------------------- + + +class DocType: + def __init__(self, doc, doclist): + self.doc = doc + self.doclist = doclist + self.acc_type = self.doc.account and sql("select debit_or_credit from `tabAccount` where name = %s", self.doc.account)[0][0].lower() or '' + self.dt = { + 'Sales Invoice': 'Receivable Voucher', + 'Purchase Invoice': 'Payable Voucher', + 'Journal Voucher': 'Journal Voucher' + } + + #-------------------------------------------------- + def get_voucher_details(self): + tot_amt = sql(""" + select sum(%s) from `tabGL Entry` where + voucher_type = %s and voucher_no = %s + and account = %s and ifnull(is_cancelled, 'No') = 'No' + """% (self.acc_type, '%s', '%s', '%s'), (self.dt[self.doc.voucher_type], self.doc.voucher_no, self.doc.account)) + + outstanding = sql(""" + select sum(%s) - sum(%s) from `tabGL Entry` where + against_voucher = %s and voucher_no != %s + and account = %s and ifnull(is_cancelled, 'No') = 'No' + """ % ((self.acc_type == 'debit' and 'credit' or 'debit'), self.acc_type, '%s', '%s', '%s'), (self.doc.voucher_no, self.doc.voucher_no, self.doc.account)) + + ret = { + 'total_amount': flt(tot_amt[0][0]) or 0, + 'pending_amt_to_reconcile': flt(tot_amt[0][0]) - flt(outstanding[0][0]) or 0 + } + + return ret + + + #-------------------------------------------------- + def get_payment_entries(self): + """ + Get payment entries for the account and period + Payment entry will be decided based on account type (Dr/Cr) + """ + + self.doc.clear_table(self.doclist, 'ir_payment_details') + gle = self.get_gl_entries() + self.create_payment_table(gle) + + #-------------------------------------------------- + def get_gl_entries(self): + self.validate_mandatory() + dc = self.acc_type == 'debit' and 'credit' or 'debit' + + cond = self.doc.from_date and " and t1.posting_date >= '" + self.doc.from_date + "'" or "" + cond += self.doc.to_date and " and t1.posting_date <= '" + self.doc.to_date + "'"or "" + + cond += self.doc.amt_greater_than and ' and t2.' + dc+' >= ' + self.doc.amt_greater_than or '' + cond += self.doc.amt_less_than and ' and t2.' + dc+' <= ' + self.doc.amt_less_than or '' + + gle = sql(""" + select t1.name as voucher_no, t1.posting_date, t1.total_debit as total_amt, sum(ifnull(t2.credit, 0)) - sum(ifnull(t2.debit, 0)) as amt_due, t1.remark, t2.against_account, t2.name as voucher_detail_no + from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 + where t1.name = t2.parent + and t1.docstatus = 1 + and t2.account = %s + and ifnull(t2.against_voucher, '')='' and ifnull(t2.against_invoice, '')='' and ifnull(t2.against_jv, '')='' + and t2.%s > 0 + %s + group by t1.name + """% ('%s', dc, cond), self.doc.account, as_dict=1) + + return gle + + #-------------------------------------------------- + def create_payment_table(self, gle): + for d in gle: + ch = addchild(self.doc, 'ir_payment_details', 'IR Payment Detail', 1, self.doclist) + ch.voucher_no = d.get('voucher_no') + ch.posting_date = d.get('posting_date') + ch.amt_due = self.acc_type == 'debit' and flt(d.get('amt_due')) or -1*flt(d.get('amt_due')) + ch.total_amt = flt(d.get('total_amt')) + ch.against_account = d.get('against_account') + ch.remarks = d.get('remark') + ch.amt_to_be_reconciled = flt(ch.amt_due) + ch.voucher_detail_no = d.get('voucher_detail_no') + + #-------------------------------------------------- + def validate_mandatory(self): + if not self.doc.account: + msgprint("Please select Account first", raise_exception=1) + + #-------------------------------------------------- + def reconcile(self): + """ + Links booking and payment voucher + 1. cancel payment voucher + 2. split into multiple rows if partially adjusted, assign against voucher + 3. submit payment voucher + """ + lst = [] + for d in getlist(self.doclist, 'ir_payment_details'): + if d.selected and flt(d.amt_to_be_reconciled) > 0: + args = { + 'voucher_no' : d.voucher_no, + 'voucher_detail_no' : d.voucher_detail_no, + 'against_voucher_type' : self.dt[self.doc.voucher_type], + 'against_voucher' : self.doc.voucher_no, + 'account' : self.doc.account, + 'is_advance' : 'No', + 'dr_or_cr' : self.acc_type=='debit' and 'credit' or 'debit', + 'unadjusted_amt' : flt(d.amt_due), + 'allocated_amt' : flt(d.amt_to_be_reconciled) + } + + lst.append(args) + + if not sql("select name from `tab%s` where name = %s" %(self.dt[self.doc.voucher_type], '%s'), self.doc.voucher_no): + msgprint("Please select valid Voucher No to proceed", raise_exception=1) + if lst: + get_obj('GL Control').reconcile_against_document(lst) + msgprint("Successfully reconciled.") + else: + msgprint("No payment entries selected.", raise_exception=1) diff --git a/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.txt b/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.txt new file mode 100644 index 00000000000..cc1523a9106 --- /dev/null +++ b/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.txt @@ -0,0 +1,266 @@ +# DocType, Internal Reconciliation +[ + + # These values are common in all dictionaries + { + 'creation': '2011-08-30 11:45:50', + 'docstatus': 0, + 'modified': '2011-09-26 14:21:22', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all DocType + { + '_last_update': '1316509358', + 'colour': 'White:FFF', + 'default_print_format': 'Standard', + 'doctype': 'DocType', + 'document_type': 'Other', + 'issingle': 1, + 'module': 'Accounts', + 'name': '__common__', + 'section_style': 'Simple', + 'show_in_menu': 1, + 'version': 35 + }, + + # These values are common for all DocField + { + 'doctype': 'DocField', + 'name': '__common__', + 'parent': 'Internal Reconciliation', + 'parentfield': 'fields', + 'parenttype': 'DocType' + }, + + # These values are common for all DocPerm + { + 'doctype': 'DocPerm', + 'name': '__common__', + 'parent': 'Internal Reconciliation', + 'parentfield': 'permissions', + 'parenttype': 'DocType', + 'read': 1 + }, + + # DocType, Internal Reconciliation + { + 'doctype': 'DocType', + 'name': 'Internal Reconciliation' + }, + + # DocPerm + { + 'create': 1, + 'doctype': 'DocPerm', + 'permlevel': 0, + 'role': 'System Manager', + 'write': 1 + }, + + # DocPerm + { + 'create': 1, + 'doctype': 'DocPerm', + 'permlevel': 0, + 'role': 'Accounts Manager', + 'write': 1 + }, + + # DocPerm + { + 'create': 1, + 'doctype': 'DocPerm', + 'permlevel': 0, + 'role': 'Accounts User', + 'write': 1 + }, + + # DocPerm + { + 'doctype': 'DocPerm', + 'permlevel': 1, + 'role': 'All' + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'permlevel': 0, + 'width': '50%' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'account', + 'fieldtype': 'Link', + 'label': 'Account', + 'options': 'Account', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'voucher_type', + 'fieldtype': 'Select', + 'label': 'Voucher Type', + 'options': 'Sales Invoice\nPurchase Invoice\nJournal Voucher', + 'permlevel': 0 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldname': 'voucher_no', + 'fieldtype': 'Link', + 'label': 'Voucher No', + 'permlevel': 0, + 'trigger': 'Client' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'permlevel': 0, + 'width': '50%' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'total_amount', + 'fieldtype': 'Currency', + 'label': 'Total Amount', + 'permlevel': 1 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'pending_amt_to_reconcile', + 'fieldtype': 'Currency', + 'label': 'Pending Amt To Reconcile', + 'permlevel': 1 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'label': 'Payment Entries', + 'permlevel': 0 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'label': "
Filter payment entries based on date:
", + 'permlevel': 0, + 'width': '50%' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'from_date', + 'fieldtype': 'Date', + 'label': 'From Date', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'to_date', + 'fieldtype': 'Date', + 'label': 'To Date', + 'permlevel': 0 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'label': "
Filter payment entries based on amount:
", + 'permlevel': 0, + 'width': '50%' + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldname': 'amt_greater_than', + 'fieldtype': 'Data', + 'label': 'Amount >=', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'amt_less_than', + 'fieldtype': 'Data', + 'label': 'Amount <=', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'options': 'Simple', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Pull Payment Entries', + 'options': 'get_payment_entries', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'ir_payment_details', + 'fieldtype': 'Table', + 'label': 'Payment Entries', + 'options': 'IR Payment Detail', + 'permlevel': 0 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'HTML', + 'label': 'Reconcile HTML', + 'options': "
Select Payment Voucher and Amount to Reconcile in the above table and then click Reconcile button
", + 'permlevel': 0 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Reconcile', + 'options': 'reconcile', + 'permlevel': 0, + 'trigger': 'Client' + } +] \ No newline at end of file diff --git a/erpnext/accounts/doctype/internal_reconciliation/test_ir.py b/erpnext/accounts/doctype/internal_reconciliation/test_ir.py new file mode 100644 index 00000000000..b35af6eaf6d --- /dev/null +++ b/erpnext/accounts/doctype/internal_reconciliation/test_ir.py @@ -0,0 +1,169 @@ +import unittest +import webnotes + +from webnotes.model.doc import Document +from webnotes.model.code import get_obj +from webnotes.utils import cstr, flt +sql = webnotes.conn.sql + +class TestInternalReco(unittest.TestCase): + def setUp(self): + webnotes.conn.begin() + + comp1.save(1) + cust1.save(1) + bank1.save(1) + rv1.save(1) + rv_gle.save(1) + + + for t in jv1: t.save(1) + for t in jv1[1:]: + sql("update `tabJournal Voucher Detail` set parent = '%s' where name = '%s'" % (jv1[0].name, t.name)) + + ir[0].save() + for t in ir[1:]: + t.save(1) + sql("update `tabIR Payment Detail` set voucher_no = '%s', voucher_detail_no = '%s' where parent = 'Internal Reconciliation'" % (jv1[0].name, jv1[1].name)) + + + sql("update `tabGL Entry` set voucher_no = %s, against_voucher = %s where voucher_no = 'rv1'", (rv1.name, rv1.name)) + sql("update `tabSingles` set value = %s where doctype = 'Internal Reconciliation' and field = 'voucher_no'", rv1.name) + + + self.ir = get_obj('Internal Reconciliation', with_children=1) + self.ir.reconcile() + + #=========================== + def test_jv(self): + """ + Test whether JV has benn properly splitted and against doc has been updated + """ + amt_against_doc = [[cstr(d[0]), flt(d[1]), flt(d[2])]for d in sql("select against_invoice, debit, credit from `tabJournal Voucher Detail` where parent = %s and account = 'cust1 - c1'", jv1[0].name)] + self.assertTrue(amt_against_doc == [[rv1.name, 0, 100.0], ['', 0, 400.0]]) + + #============================ + def test_gl_entry(self): + """ + Check proper gl entry has been made + """ + gle = [[cstr(d[0]), flt(d[1])] for d in sql("select against_voucher, sum(credit) - sum(debit) from `tabGL Entry` where voucher_no = %s and account = 'cust1 - c1' and ifnull(is_cancelled, 'No') = 'No' group by against_voucher", jv1[0].name)] + + self.assertTrue([rv1.name, 100.0] in gle) + self.assertTrue(['', 400.0] in gle) + + #============================ + def test_outstanding(self): + """ + Check whether Outstanding amount has been properly updated in RV + """ + amt = sql("select outstanding_amount from `tabReceivable Voucher` where name = '%s'" % rv1.name)[0][0] + self.assertTrue(amt == 0) + + #============================ + def tearDown(self): + webnotes.conn.rollback() + + + + +# test data +#--------------- +rv1 = Document(fielddata={ + 'doctype':'Receivable Voucher', + 'docstatus':1, + 'debit_to':'cust1 - c1', + 'grand_total': 100, + 'outstanding_amount': 100, + 'name': 'rv1' + }) + +jv1 = [Document(fielddata={ + 'doctype':'Journal Voucher', + 'docstatus':1, + 'cheque_no': '163567', + 'docstatus':1, + 'company': 'comp1', + 'posting_date' : '2011-05-02', + 'remark': 'test data', + 'fiscal_year': '2011-2012', + 'total_debit': 500, + 'total_credit': 500 + }), + Document(fielddata = { + 'parenttype':'Journal Voucher', + 'parentfield':'entries', + 'doctype':'Journal Voucher Detail', + 'account' : 'cust1 - c1', + 'credit':500, + 'debit' : 0, + 'docstatus':1 + }), + Document(fielddata = { + 'parenttype':'Journal Voucher', + 'parentfield':'entries', + 'doctype':'Journal Voucher Detail', + 'account' : 'bank1 - c1', + 'credit':0, + 'debit' : 500, + 'docstatus':1 + })] + +ir = [Document(fielddata = { + 'doctype':'Internal Reconciliation', + 'name' : 'Internal Reconciliation', + 'account':'cust1 - c1', + 'voucher_type' : 'Sales Invoice', + 'voucher_no': 'rv1' + }), + Document(fielddata = { + 'parenttype':'Internal Reconciliation', + 'parentfield':'ir_payment_details', + 'doctype':'IR Payment Detail', + 'parent': 'Internal Reconciliation', + 'voucher_no': 'jv1', + 'name' : '123112', + 'voucher_detail_no' : 'jvd1', + 'selected' : 1, + 'amt_due' : 500, + 'amt_to_be_reconciled':100 + })] + +cust1 = Document(fielddata={ + 'doctype':'Account', + 'docstatus':0, + 'account_name' : 'cust1', + 'debit_or_credit': 'Debit', + 'company' : 'comp1', + 'lft': 1, + 'rgt': 2 + }) + +bank1 = Document(fielddata={ + 'doctype':'Account', + 'docstatus':0, + 'account_name' : 'bank1', + 'debit_or_credit': 'Debit', + 'company' : 'comp1', + 'lft': 3, + 'rgt': 4 + }) + +comp1 = Document(fielddata={ + 'doctype':'Company', + 'abbr': 'c1', + 'company_name' : 'comp1', + 'name': 'comp1' + }) + +rv_gle = Document(fielddata={ + 'doctype':'GL Entry', + 'account': 'cust1 - c1', + 'company' : 'comp1', + 'voucher_no': 'rv1', + 'against_voucher': 'rv1', + 'against_voucher_type': 'Receivable Voucher', + 'voucher_type' : 'Receivable Voucher', + 'debit': 100, + 'credit': 0 + }) diff --git a/erpnext/accounts/doctype/ir_payment_detail/__init__.py b/erpnext/accounts/doctype/ir_payment_detail/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/accounts/doctype/ir_payment_detail/ir_payment_detail.txt b/erpnext/accounts/doctype/ir_payment_detail/ir_payment_detail.txt new file mode 100644 index 00000000000..b35c4977eb4 --- /dev/null +++ b/erpnext/accounts/doctype/ir_payment_detail/ir_payment_detail.txt @@ -0,0 +1,132 @@ +# DocType, IR Payment Detail +[ + + # These values are common in all dictionaries + { + 'creation': '2011-08-30 11:57:48', + 'docstatus': 0, + 'modified': '2011-09-20 15:18:02', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all DocType + { + 'colour': 'White:FFF', + 'default_print_format': 'Standard', + 'doctype': 'DocType', + 'istable': 1, + 'module': 'Accounts', + 'name': '__common__', + 'section_style': 'Simple', + 'show_in_menu': 0, + 'version': 14 + }, + + # These values are common for all DocField + { + 'doctype': 'DocField', + 'name': '__common__', + 'parent': 'IR Payment Detail', + 'parentfield': 'fields', + 'parenttype': 'DocType' + }, + + # DocType, IR Payment Detail + { + 'doctype': 'DocType', + 'name': 'IR Payment Detail' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'selected', + 'fieldtype': 'Check', + 'label': 'Select', + 'permlevel': 0, + 'reqd': 1, + 'width': '60px' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'voucher_no', + 'fieldtype': 'Link', + 'label': 'Voucher No', + 'options': 'Journal Voucher', + 'permlevel': 1, + 'reqd': 0, + 'width': '140px' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'amt_due', + 'fieldtype': 'Currency', + 'label': 'Amt Due', + 'permlevel': 1 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'amt_to_be_reconciled', + 'fieldtype': 'Currency', + 'label': 'Amt to be reconciled', + 'permlevel': 0, + 'reqd': 1 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'posting_date', + 'fieldtype': 'Date', + 'label': 'Posting Date', + 'permlevel': 1 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'total_amt', + 'fieldtype': 'Currency', + 'label': 'Total Amt', + 'permlevel': 1 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'against_account', + 'fieldtype': 'Data', + 'label': 'Against Account', + 'permlevel': 1 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'remarks', + 'fieldtype': 'Small Text', + 'label': 'Remarks', + 'permlevel': 1, + 'width': '200px' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'voucher_detail_no', + 'fieldtype': 'Data', + 'hidden': 1, + 'label': 'Voucher Detail No', + 'no_column': 0, + 'permlevel': 1, + 'print_hide': 1, + 'reqd': 0 + } +] \ No newline at end of file From d223d1230816d317ddf27d57221c0b2882fe33a5 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 26 Sep 2011 18:57:43 +0530 Subject: [PATCH 45/84] Rewritten update_against_document function --- .../doctype/cost_center/cost_center.txt | 35 ++----- .../accounts/doctype/gl_control/gl_control.py | 94 +++++++++++++++++-- erpnext/accounts/doctype/gl_entry/gl_entry.py | 5 +- 3 files changed, 98 insertions(+), 36 deletions(-) diff --git a/erpnext/accounts/doctype/cost_center/cost_center.txt b/erpnext/accounts/doctype/cost_center/cost_center.txt index fab2dd5f4d1..7bc5810f903 100644 --- a/erpnext/accounts/doctype/cost_center/cost_center.txt +++ b/erpnext/accounts/doctype/cost_center/cost_center.txt @@ -5,18 +5,19 @@ { 'creation': '2010-08-08 17:08:56', 'docstatus': 0, - 'modified': '2010-12-29 18:18:55', - 'modified_by': 'umair@iwebnotes.com', + 'modified': '2011-09-26 18:55:05', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1308741898', + '_last_update': '1316075905', 'allow_copy': 1, 'allow_trash': 1, 'autoname': 'field:cost_center_name', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Master', 'in_create': 1, @@ -26,7 +27,7 @@ 'section_style': 'Simple', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 104 + 'version': 107 }, # These values are common for all DocField @@ -60,7 +61,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 1, 'role': 'Accounts Manager', 'submit': 0, @@ -73,7 +73,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'Accounts Manager', 'submit': 0, @@ -86,7 +85,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 1, 'role': 'Accounts User', 'submit': 0, @@ -99,7 +97,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 0, 'role': 'Accounts User', 'submit': 0, @@ -111,7 +108,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 0, 'role': 'System Manager', 'write': 1 @@ -120,7 +116,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 1, 'role': 'All' }, @@ -130,7 +125,6 @@ 'doctype': 'DocField', 'fieldname': 'trash_reason', 'fieldtype': 'Small Text', - 'idx': 1, 'label': 'Trash Reason', 'oldfieldname': 'trash_reason', 'oldfieldtype': 'Small Text', @@ -142,7 +136,6 @@ 'doctype': 'DocField', 'fieldname': 'cost_center_name', 'fieldtype': 'Data', - 'idx': 2, 'in_filter': 0, 'label': 'Cost Center Name', 'no_copy': 1, @@ -159,7 +152,6 @@ 'doctype': 'DocField', 'fieldname': 'parent_cost_center', 'fieldtype': 'Link', - 'idx': 3, 'label': 'Parent Cost Center', 'oldfieldname': 'parent_cost_center', 'oldfieldtype': 'Link', @@ -175,14 +167,12 @@ 'doctype': 'DocField', 'fieldname': 'company_name', 'fieldtype': 'Link', - 'idx': 4, 'label': 'Company', 'oldfieldname': 'company_name', 'oldfieldtype': 'Link', 'options': 'Company', 'permlevel': 0, 'reqd': 1, - 'search_index': 0, 'trigger': 'Client' }, @@ -191,7 +181,6 @@ 'doctype': 'DocField', 'fieldname': 'company_abbr', 'fieldtype': 'Data', - 'idx': 5, 'label': 'Company Abbr', 'oldfieldname': 'company_abbr', 'oldfieldtype': 'Data', @@ -204,8 +193,7 @@ 'doctype': 'DocField', 'fieldname': 'group_or_ledger', 'fieldtype': 'Select', - 'hidden': 1, - 'idx': 6, + 'hidden': 0, 'label': 'Group or Ledger', 'no_copy': 1, 'oldfieldname': 'group_or_ledger', @@ -223,13 +211,11 @@ 'doctype': 'DocField', 'fieldname': 'distribution_id', 'fieldtype': 'Link', - 'idx': 7, 'label': 'Distribution Id', 'oldfieldname': 'distribution_id', 'oldfieldtype': 'Link', 'options': 'Budget Distribution', - 'permlevel': 0, - 'search_index': 0 + 'permlevel': 0 }, # DocField @@ -237,7 +223,6 @@ 'doctype': 'DocField', 'fieldname': 'budget_details', 'fieldtype': 'Table', - 'idx': 8, 'label': 'Budget Details', 'oldfieldname': 'budget_details', 'oldfieldtype': 'Table', @@ -251,7 +236,6 @@ 'fieldname': 'lft', 'fieldtype': 'Int', 'hidden': 1, - 'idx': 9, 'in_filter': 1, 'label': 'lft', 'no_copy': 1, @@ -269,7 +253,6 @@ 'fieldname': 'rgt', 'fieldtype': 'Int', 'hidden': 1, - 'idx': 10, 'in_filter': 1, 'label': 'rgt', 'no_copy': 1, @@ -286,13 +269,13 @@ { 'doctype': 'DocField', 'fieldname': 'old_parent', - 'fieldtype': 'Data', + 'fieldtype': 'Link', 'hidden': 1, - 'idx': 11, 'label': 'old_parent', 'no_copy': 1, 'oldfieldname': 'old_parent', 'oldfieldtype': 'Data', + 'options': 'Cost Center', 'permlevel': 0, 'print_hide': 1, 'report_hide': 1 diff --git a/erpnext/accounts/doctype/gl_control/gl_control.py b/erpnext/accounts/doctype/gl_control/gl_control.py index a346b65a57f..44a9e8d8c9e 100644 --- a/erpnext/accounts/doctype/gl_control/gl_control.py +++ b/erpnext/accounts/doctype/gl_control/gl_control.py @@ -191,6 +191,7 @@ class DocType: else: self.entries.append(le) + # Save GL Entries # ---------------- def save_entries(self, cancel, adv_adj, update_outstanding): @@ -200,7 +201,6 @@ class DocType: tmp=le.debit le.debit, le.credit = abs(flt(le.credit)), abs(flt(tmp)) - le_obj = get_obj(doc=le) # validate except on_cancel if not cancel: @@ -213,10 +213,12 @@ class DocType: # update total debit / credit self.td += flt(le.debit) self.tc += flt(le.credit) - + + # Make Multiple Entries # --------------------- def make_gl_entries(self, doc, doclist, cancel=0, adv_adj = 0, use_mapper='', merge_entries = 1, update_outstanding='Yes'): + self.entries = [] # get entries le_map_list = sql("select * from `tabGL Mapper Detail` where parent = %s", use_mapper or doc.doctype, as_dict=1) self.td, self.tc = 0.0, 0.0 @@ -329,6 +331,7 @@ class DocType: else: msgprint("Allocation amount cannot be greater than advance amount") raise Exception + # Add extra row in jv detail for unadjusted amount #-------------------------------------------------- @@ -351,7 +354,7 @@ class DocType: add.against_account = cstr(jvd[0][3]) add.is_advance = 'Yes' add.save(1) - + # check if advance entries are still valid # ---------------------------------------- def validate_jv_entry(self, d, account_head, dr_or_cr): @@ -359,15 +362,92 @@ class DocType: # 2. check if amount is same # 3. check if is_advance is 'Yes' # 4. check if jv is submitted - ret = sql("select t2.%s from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 where t1.name = t2.parent and (t2.against_voucher = '' or t2.against_voucher is null) and (t2.against_invoice = '' or t2.against_invoice is null) and t2.account = '%s' and t1.name = '%s' and t2.name = '%s' and t2.is_advance = 'Yes' and t1.docstatus=1 and t2.%s = %s" % ( dr_or_cr, account_head, d.journal_voucher, d.jv_detail_no, dr_or_cr, d.advance_amount)) + ret = sql("select t2.%s from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 where t1.name = t2.parent and ifnull(t2.against_voucher, '') = '' and ifnull(t2.against_invoice, '') = '' and t2.account = '%s' and t1.name = '%s' and t2.name = '%s' and t2.is_advance = 'Yes' and t1.docstatus=1 and t2.%s = %s" % (dr_or_cr, account_head, d.journal_voucher, d.jv_detail_no, dr_or_cr, d.advance_amount)) if (not ret): msgprint("Please click on 'Get Advances Paid' button as the advance entries have been changed.") raise Exception return -############################################################################## -# Repair Outstanding Amount -############################################################################## + +###################################################################################################################### + + #------------------------------------------ + def reconcile_against_document(self, args): + """ + Cancel JV, Update aginst document, split if required and resubmit jv + """ + + for d in args: + self.check_if_jv_modified(d) + + against_fld = { + 'Journal Voucher' : 'against_jv', + 'Receivable Voucher' : 'against_invoice', + 'Payable Voucher' : 'against_voucher' + } + + d['against_fld'] = against_fld[d['against_voucher_type']] + + # cancel JV + jv_obj = get_obj('Journal Voucher', d['voucher_no'], with_children=1) + self.make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel =1, adv_adj =1) + + # update ref in JV Detail + self.update_against_doc(d, jv_obj) + + # re-submit JV + jv_obj = get_obj('Journal Voucher', d['voucher_no'], with_children =1) + self.make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel = 0, adv_adj =1) + + #------------------------------------------ + def update_against_doc(self, d, jv_obj): + """ + Updates against document, if partial amount splits into rows + """ + + sql(""" + update `tabJournal Voucher Detail` t1, `tabJournal Voucher` t2 + set t1.%(dr_or_cr)s = '%(allocated_amt)s', t1.%(against_fld)s = '%(against_voucher)s', t2.modified = now() + where t1.name = '%(voucher_detail_no)s' and t1.parent = t2.name""" % d) + + if d['allocated_amt'] < d['unadjusted_amt']: + jvd = sql("select cost_center, balance, against_account, is_advance from `tabJournal Voucher Detail` where name = '%s'" % d['voucher_detail_no']) + # new entry with balance amount + ch = addchild(jv_obj.doc, 'entries', 'Journal Voucher Detail', 1) + ch.account = d['account'] + ch.cost_center = cstr(jvd[0][0]) + ch.balance = cstr(jvd[0][1]) + ch.fields[d['dr_or_cr']] = flt(d['unadjusted_amt']) - flt(d['allocated_amt']) + ch.fields[d['dr_or_cr']== 'debit' and 'credit' or 'debit'] = 0 + ch.against_account = cstr(jvd[0][2]) + ch.is_advance = cstr(jvd[0][3]) + ch.docstatus = 1 + ch.save(1) + + #------------------------------------------ + def check_if_jv_modified(self, args): + """ + check if there is already a voucher reference + check if amount is same + check if jv is submitted + """ + ret = sql(""" + select t2.%(dr_or_cr)s from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 + where t1.name = t2.parent and t2.account = '%(account)s' + and ifnull(t2.against_voucher, '')='' and ifnull(t2.against_invoice, '')='' and ifnull(t2.against_jv, '')='' + and t1.name = '%(voucher_no)s' and t2.name = '%(voucher_detail_no)s' + and t1.docstatus=1 and t2.%(dr_or_cr)s = %(unadjusted_amt)s + """ % (args)) + + if not ret: + msgprint("Payment Entry has been modified after you pulled it. Please pull it again.", raise_exception=1) + +###################################################################################################################### + + + + # Repair Outstanding Amount + #--------------------------------- def repair_voucher_outstanding(self, voucher_obj): msg = [] diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py index 5d3976056c3..cbb5b7fe80e 100644 --- a/erpnext/accounts/doctype/gl_entry/gl_entry.py +++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py @@ -35,7 +35,7 @@ class DocType: if not (flt(self.doc.debit) or flt(self.doc.credit)): msgprint("GL Entry: Debit or Credit amount is mandatory for %s" % self.doc.account) raise Exception - + # Debit and credit can not done at the same time if flt(self.doc.credit) != 0 and flt(self.doc.debit) != 0: msgprint("Sorry you cannot credit and debit under same account head.") @@ -185,7 +185,6 @@ class DocType: bal = flt(sql("select sum(debit)-sum(credit) from `tabGL Entry` where against_voucher=%s and against_voucher_type=%s and ifnull(is_cancelled,'No') = 'No'", (self.doc.against_voucher, self.doc.against_voucher_type))[0][0] or 0.0) tds = 0 - if self.doc.against_voucher_type=='Payable Voucher': # amount to debit bal = -bal @@ -200,7 +199,7 @@ class DocType: raise Exception # Update outstanding amt on against voucher - sql("update `tab%s` set outstanding_amount=%s where name='%s'"% (self.doc.against_voucher_type,bal,self.doc.against_voucher)) + sql("update `tab%s` set outstanding_amount=%s where name='%s'" % (self.doc.against_voucher_type, bal, self.doc.against_voucher)) # Total outstanding can not be greater than credit limit for any time for any customer From 39297e5775c01b4f4ea6a7544c15e6ee29c74188 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 10:36:17 +0530 Subject: [PATCH 46/84] update_nsm_model in cost center on_trash() --- .../doctype/cost_center/cost_center.py | 100 ++++++++++-------- 1 file changed, 53 insertions(+), 47 deletions(-) diff --git a/erpnext/accounts/doctype/cost_center/cost_center.py b/erpnext/accounts/doctype/cost_center/cost_center.py index 521712b1f95..66d22f017d1 100644 --- a/erpnext/accounts/doctype/cost_center/cost_center.py +++ b/erpnext/accounts/doctype/cost_center/cost_center.py @@ -18,51 +18,57 @@ convert_to_lists = webnotes.conn.convert_to_lists class DocType: - def __init__(self,d,dl): - self.doc, self.doclist = d,dl - self.nsm_parent_field = 'parent_cost_center' - - def autoname(self): - #company_abbr = sql("select abbr from tabCompany where name=%s", self.doc.company)[0][0] - self.doc.name = self.doc.cost_center_name + ' - ' + self.doc.company_abbr - - def get_abbr(self): - abbr = sql("select abbr from tabCompany where company_name='%s'"%(self.doc.company_name))[0][0] or '' - ret = { - 'company_abbr' : abbr - } - return ret + def __init__(self,d,dl): + self.doc, self.doclist = d,dl + self.nsm_parent_field = 'parent_cost_center' + + def autoname(self): + self.doc.name = self.doc.cost_center_name + ' - ' + self.doc.company_abbr + + #------------------------------------------------------------------------- + def get_abbr(self): + abbr = sql("select abbr from tabCompany where company_name='%s'"%(self.doc.company_name))[0][0] or '' + ret = { + 'company_abbr' : abbr + } + return ret - def validate(self): - # Cost Center name must be unique - # --------------------------- - if (self.doc.__islocal or (not self.doc.name)) and sql("select name from `tabCost Center` where cost_center_name = %s and company_name=%s", (self.doc.cost_center_name, self.doc.company_name)): - msgprint("Cost Center Name already exists, please rename") - raise Exception - - check_acc_list = [] - for d in getlist(self.doclist, 'budget_details'): - if [d.account, d.fiscal_year] in check_acc_list: - msgprint("Account " + cstr(d.account) + "has been entered more than once for fiscal year " + cstr(d.fiscal_year)) - raise Exception - if [d.account, d.fiscal_year] not in check_acc_list: check_acc_list.append([d.account, d.fiscal_year]) - - def on_update(self): - # update Node Set Model - import webnotes - import webnotes.utils.nestedset - # update Node Set Model - webnotes.utils.nestedset.update_nsm(self) - - def check_if_child_exists(self): - return sql("select name from `tabCost Center` where parent_cost_center = %s and docstatus != 2", self.doc.name, debug=0) - - # On Trash - # -------- - def on_trash(self): - if self.check_if_child_exists(): - msgprint("Child exists for this cost center. You can not trash this account.", raise_exception=1) - - # rebuild tree - set(self.doc,'old_parent', '') - self.update_nsm_model() + #------------------------------------------------------------------------- + def validate(self): + """ + Cost Center name must be unique + """ + if (self.doc.__islocal or not self.doc.name) and sql("select name from `tabCost Center` where cost_center_name = %s and company_name=%s", (self.doc.cost_center_name, self.doc.company_name)): + msgprint("Cost Center Name already exists, please rename", raise_exception=1) + + check_acc_list = [] + for d in getlist(self.doclist, 'budget_details'): + if [d.account, d.fiscal_year] in check_acc_list: + msgprint("Account " + cstr(d.account) + "has been entered more than once for fiscal year " + cstr(d.fiscal_year), raise_exception=1) + else: + check_acc_list.append([d.account, d.fiscal_year]) + + #------------------------------------------------------------------------- + def update_nsm_model(self): + """ + update Nested Set Model + """ + import webnotes.utils.nestedset + webnotes.utils.nestedset.update_nsm(self) + + #------------------------------------------------------------------------- + def on_update(self): + self.update_nsm_model() + + def check_if_child_exists(self): + return sql("select name from `tabCost Center` where parent_cost_center = %s and docstatus != 2", self.doc.name) + + # On Trash + #------------------------------------------------------------------------- + def on_trash(self): + if self.check_if_child_exists(): + msgprint("Child exists for this cost center. You can not trash this account.", raise_exception=1) + + # rebuild tree + set(self.doc,'old_parent', '') + self.update_nsm_model() From 5c55e4323411473e7208ca55c09d015daad5fdc4 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 10:57:14 +0530 Subject: [PATCH 47/84] trend analyzer issue fixed --- .../search_criteria/trend_analyzer/trend_analyzer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js index 72334df1b48..9a87abbd11d 100644 --- a/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js +++ b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js @@ -13,8 +13,8 @@ report.customize_filters = function() { this.add_filter({fieldname:'company', label:'Company', fieldtype:'Link', options:'Company', report_default:sys_defaults.company, ignore : 1, parent:'Profile'}); - this.set_filter_properties('Profile','Fiscal Year',{filter_hide:0, in_first_page:1, report_default: sys_defaults.fiscal_year}); - this.get_filter('Profile', 'Fiscal Year').set_as_single(); + this.add_filter({fieldname:'fiscal_year', label:'Fiscal Year', fieldtype:'Link', options:'Fiscal Year', report_default:sys_defaults.fiscal_year, ignore : 1, parent:'Profile', in_first_page:1}); + // Add Filters this.add_filter({fieldname:'item', label:'Item', fieldtype:'Link', options:'Item', ignore : 1, parent:'Profile'}); @@ -118,4 +118,4 @@ report.get_query = function() { return q; } -} \ No newline at end of file +} From c752d075e6fafadd63d4ac8573db6869d43eaaca Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 11:04:24 +0530 Subject: [PATCH 48/84] fixed issue in reseting in opening balance, clear bal only that company --- .../doctype/fiscal_year/fiscal_year.py | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/erpnext/accounts/doctype/fiscal_year/fiscal_year.py b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py index 48d7d91cde8..74b90ccbb64 100644 --- a/erpnext/accounts/doctype/fiscal_year/fiscal_year.py +++ b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py @@ -21,34 +21,32 @@ class DocType: def __init__(self, d, dl): self.doc, self.doclist = d,dl - def repost(self, account = ''): + def repost(self): if not self.doc.company: msgprint("Please select company", raise_exception=1) if not in_transaction: sql("start transaction") - self.clear_account_balances(account) - self.create_account_balances(account) - self.update_opening(account) - self.post_entries(account) + self.clear_account_balances() + self.create_account_balances() + self.update_opening() + self.post_entries() sql("commit") - msg_cond = account and " and account: " + account or "" - msgprint("Account balance reposted for fiscal year: " + self.doc.name + msg_cond) + msgprint("Account balance reposted for fiscal year: " + self.doc.name) - def clear_account_balances(self, account = ''): + def clear_account_balances(self): # balances clear - `tabAccount Balance` for fiscal year - cond = account and (" and account = '" + account + "'") or '' - sql("update `tabAccount Balance` set opening=0, balance=0, debit=0, credit=0 where fiscal_year=%s %s", (self.doc.name, cond)) + sql("update `tabAccount Balance` t1, tabAccount t2 set t1.opening=0, t1.balance=0, t1.debit=0, t1.credit=0 where t1.fiscal_year=%s and t2.company = %s and t1.account = t2.name", (self.doc.name, self.doc.company)) - def create_account_balances(self, account = ''): + def create_account_balances(self): # get periods period_list = self.get_period_list() cnt = 0 # get accounts - al = account and [[account]] or sql("select name from tabAccount") + al = sql("select name from tabAccount") for a in al: # check @@ -83,14 +81,13 @@ class DocType: return periods # ==================================================================================== - def update_opening(self, account = ''): + def update_opening(self): """ set opening from last year closing """ - cond = account and (" and t2.name = '" + account + "'") or '' - abl = sql("select t1.account, t1.balance from `tabAccount Balance` t1, tabAccount t2 where t1.period= '%s' and t2.company= '%s' and ifnull(t2.is_pl_account, 'No') = 'No' and t1.account = t2.name %s for update" % (self.doc.past_year, self.doc.company, cond)) + abl = sql("select t1.account, t1.balance from `tabAccount Balance` t1, tabAccount t2 where t1.period= '%s' and t2.company= '%s' and ifnull(t2.is_pl_account, 'No') = 'No' and t1.account = t2.name for update" % (self.doc.past_year, self.doc.company)) cnt = 0 for ab in abl: @@ -108,11 +105,10 @@ class DocType: return sql("select debit_or_credit, lft, rgt, is_pl_account from tabAccount where name=%s", account)[0] # ==================================================================================== - def post_entries(self, account = ''): + def post_entries(self): sql("LOCK TABLE `tabGL Entry` WRITE") - cond = account and (" and account = '" + account + "'") or '' # post each gl entry (batch or complete) - gle = sql("select name, account, debit, credit, is_opening, posting_date from `tabGL Entry` where fiscal_year=%s and ifnull(is_cancelled,'No')='No' and company=%s %s", (self.doc.name, self.doc.company, cond)) + gle = sql("select name, account, debit, credit, is_opening, posting_date from `tabGL Entry` where fiscal_year=%s and ifnull(is_cancelled,'No')='No' and company=%s", (self.doc.name, self.doc.company)) account_details = {} cnt = 0 From a77cea2b90632ed0383cbce50d5947f669401017 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 11:14:54 +0530 Subject: [PATCH 49/84] Dont add opening entries in account balance debit, credit column --- erpnext/accounts/doctype/gl_entry/gl_entry.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py index cbb5b7fe80e..c45e1625ac1 100644 --- a/erpnext/accounts/doctype/gl_entry/gl_entry.py +++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py @@ -35,7 +35,7 @@ class DocType: if not (flt(self.doc.debit) or flt(self.doc.credit)): msgprint("GL Entry: Debit or Credit amount is mandatory for %s" % self.doc.account) raise Exception - + # Debit and credit can not done at the same time if flt(self.doc.credit) != 0 and flt(self.doc.debit) != 0: msgprint("Sorry you cannot credit and debit under same account head.") @@ -146,8 +146,8 @@ class DocType: # build dict p = { - 'debit': flt(debit) - ,'credit':flt(credit) + 'debit': self.doc.is_opening=='No' and flt(debit) or 0 + ,'credit':self.doc.is_opening=='No' and flt(credit) or 0 ,'opening': self.doc.is_opening=='Yes' and amt or 0 # end date condition only if it is not opening ,'end_date_condition':(self.doc.is_opening!='Yes' and ("and ab.end_date >= '"+self.doc.posting_date+"'") or '') @@ -185,6 +185,7 @@ class DocType: bal = flt(sql("select sum(debit)-sum(credit) from `tabGL Entry` where against_voucher=%s and against_voucher_type=%s and ifnull(is_cancelled,'No') = 'No'", (self.doc.against_voucher, self.doc.against_voucher_type))[0][0] or 0.0) tds = 0 + if self.doc.against_voucher_type=='Payable Voucher': # amount to debit bal = -bal @@ -199,7 +200,7 @@ class DocType: raise Exception # Update outstanding amt on against voucher - sql("update `tab%s` set outstanding_amount=%s where name='%s'" % (self.doc.against_voucher_type, bal, self.doc.against_voucher)) + sql("update `tab%s` set outstanding_amount=%s where name='%s'"% (self.doc.against_voucher_type,bal,self.doc.against_voucher)) # Total outstanding can not be greater than credit limit for any time for any customer From 3c8a50c257fca2c23bac7977f667d84e7bca2778 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 11:16:30 +0530 Subject: [PATCH 50/84] Trial balance opening issue fixed if there is no prev year --- .../trial_balance/trial_balance.py | 88 +++++++++++-------- 1 file changed, 53 insertions(+), 35 deletions(-) diff --git a/erpnext/accounts/search_criteria/trial_balance/trial_balance.py b/erpnext/accounts/search_criteria/trial_balance/trial_balance.py index fb168e57af7..994a5b8baa5 100644 --- a/erpnext/accounts/search_criteria/trial_balance/trial_balance.py +++ b/erpnext/accounts/search_criteria/trial_balance/trial_balance.py @@ -1,13 +1,13 @@ # Columns #---------- -cl = [['Account','Data', '200px'],['Debit/Credit', 'Data', '100px'], ['Group/Ledger', 'Data', '100px'], ['Is PL Account', 'Data', '100px'], ['Opening','Data', '100px'],['Debit', 'Data', '100px'],['Credit', 'Data', '100px'],['Closing', 'Data', '100px']] +cl = [['Account','Data', '200px'],['Debit/Credit', 'Data', '100px'], ['Group/Ledger', 'Data', '100px'], ['Is PL Account', 'Data', '100px'], ['Opening (Dr)','Data', '100px'], ['Opening (Cr)','Data', '100px'],['Debit', 'Data', '100px'],['Credit', 'Data', '100px'],['Closing (Dr)', 'Data', '100px'],['Closing (Cr)', 'Data', '100px']] for c in cl: colnames.append(c[0]) coltypes.append(c[1]) colwidths.append(c[2]) coloptions.append('') col_idx[c[0]] = len(colnames)-1 - + # transaction date # ------------------ if not filter_values.get('transaction_date') or not filter_values.get('transaction_date1'): @@ -23,7 +23,7 @@ if not sql("select name from `tabFiscal Year` where %s between year_start_date a msgprint("From Date and To Date must be within same year") raise Exception -# get year of the from date and to date +# get year of the from date and to date # -------------------------------------- from_date_year = sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",add_days(from_date, -1)) from_date_year = from_date_year and from_date_year[0][0] or '' @@ -33,11 +33,17 @@ to_date_year = to_date_year and to_date_year[0][0] or '' # if output is more than 500 lines then it will ask to export # ------------------------------------------------------------ -if len(res) > 500 and from_export == 0: +if len(res) > 1000 and from_export == 0: msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please click on 'Export' to open in a spreadsheet") raise Exception + -total_debit, total_credit = 0,0 +acc_dict = {} +for t in sql("select name, debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where docstatus != 2 and company = %s", filter_values['company']): + acc_dict[t[0]] = [t[1], t[2], t[3], t[4], t[5]] + + +total_debit, total_credit, total_opening_dr, total_opening_cr, total_closing_dr, total_closing_cr = 0, 0, 0, 0, 0, 0 glc = get_obj('GL Control') # Main logic @@ -45,47 +51,55 @@ glc = get_obj('GL Control') for r in res: # Fetch account details acc = r[col_idx['Account']].strip() - acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % acc) - r.append(acc_det[0][0]) - r.append(acc_det[0][4]) - r.append(acc_det[0][1]) + r.append(acc_dict[acc][0]) + r.append(acc_dict[acc][4]) + r.append(acc_dict[acc][1]) #if shows group and ledger both but without group balance - if filter_values.get('show_group_ledger') == 'Both But Without Group Balance' and acc_det[0][4] == 'Group': + if filter_values.get('show_group_ledger') == 'Both But Without Group Balance' and acc_dict[acc][4] == 'Group': for i in range(4): r.append('') continue - # opening balance - if from_date_year: - debit_on_fromdate, credit_on_fromdate, opening = glc.get_as_on_balance(acc, from_date_year, add_days(from_date, -1), acc_det[0][0], acc_det[0][2], acc_det[0][3]) - else: # if there is no previous year in system - debit_on_fromdate, credit_on_fromdate, opening = 0, 0, 0 + # Opening Balance + #----------------------------- + if from_date_year == to_date_year: + debit_on_fromdate, credit_on_fromdate, opening = glc.get_as_on_balance(acc, from_date_year, add_days(from_date, -1), acc_dict[acc][0], acc_dict[acc][2], acc_dict[acc][3]) # opening = closing of prev_date + elif acc_dict[acc][1] == 'No': # if there is no previous year in system and not pl account + opening = sql("select opening from `tabAccount Balance` where account = %s and period = %s", (acc, to_date_year)) + debit_on_fromdate, credit_on_fromdate, opening = 0, 0, flt(opening[0][0]) + else: # if pl account and there is no previous year in system + debit_on_fromdate, credit_on_fromdate, opening = 0,0,0 # closing balance - debit_on_todate, credit_on_todate, closing = glc.get_as_on_balance(acc, to_date_year, to_date, acc_det[0][0], acc_det[0][2], acc_det[0][3]) + #-------------------------------- + debit_on_todate, credit_on_todate, closing = glc.get_as_on_balance(acc, to_date_year, to_date, acc_dict[acc][0], acc_dict[acc][2], acc_dict[acc][3]) # transaction betn the period - if from_date_year == to_date_year: - debit = flt(debit_on_todate) - flt(debit_on_fromdate) - credit = flt(credit_on_todate) - flt(credit_on_fromdate) - else: # if from date is start date of the year - debit = flt(debit_on_todate) - credit = flt(credit_on_todate) - + #---------------------------------------- + + debit = flt(debit_on_todate) - flt(debit_on_fromdate) + credit = flt(credit_on_todate) - flt(credit_on_fromdate) + + # Debit / Credit + if acc_dict[acc][0] == 'Credit': + opening, closing = -1*opening, -1*closing + + # Totals + total_opening_dr += opening>0 and flt(opening) or 0 + total_opening_cr += opening<0 and -1*flt(opening) or 0 total_debit += debit total_credit += credit - - if acc_det[0][1] == 'Yes' and from_date_year != to_date_year: - opening = 0 - - if acc_det[0][0] == 'Credit': - opening, closing = -1*opening, -1*closing + total_closing_dr += closing>0 and flt(closing) or 0 + total_closing_cr += closing<0 and -1*flt(closing) or 0 - r.append(flt(opening)) + # Append in rows + r.append(flt(opening>0 and opening or 0)) + r.append(flt(opening<0 and -opening or 0)) r.append(flt(debit)) r.append(flt(credit)) - r.append(flt(closing)) + r.append(flt(closing>0 and closing or 0)) + r.append(flt(closing<0 and -closing or 0)) out =[] @@ -94,14 +108,18 @@ for r in res: # ------------------------------------------------------------------ if filter_values.get('show_zero_balance') != 'No': out.append(r) - elif r[col_idx['Opening']] or r[col_idx['Debit']] or r[col_idx['Credit']] or r[col_idx['Closing']] or (r[col_idx['Group/Ledger']] == 'Group' and filter_values.get('show_group_ledger') == 'Both But Without Group Balance'): + elif r[col_idx['Opening (Dr)']] or r[col_idx['Opening (Cr)']] or r[col_idx['Debit']] or r[col_idx['Credit']] or r[col_idx['Closing (Dr)']] or r[col_idx['Closing (Cr)']] or (r[col_idx['Group/Ledger']] == 'Group' and filter_values.get('show_group_ledger') == 'Both But Without Group Balance'): out.append(r) - + # Total Debit / Credit # -------------------------- if filter_values.get('show_group_ledger') in ['Only Ledgers', 'Both But Without Group Balance']: t_row = ['' for i in range(len(colnames))] t_row[col_idx['Account']] = 'Total' - t_row[col_idx['Debit']] = total_debit - t_row[col_idx['Credit']] = total_credit + t_row[col_idx['Opening (Dr)']] = '%.2f' % total_opening_dr + t_row[col_idx['Opening (Cr)']] = '%.2f' % total_opening_cr + t_row[col_idx['Debit']] = '%.2f' % total_debit + t_row[col_idx['Credit']] = '%.2f' % total_credit + t_row[col_idx['Closing (Dr)']] = '%.2f' % total_closing_dr + t_row[col_idx['Closing (Cr)']] = '%.2f' % total_closing_cr out.append(t_row) From 7e97d1f39076a8745d252dcace722954479fce24 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 11:34:06 +0530 Subject: [PATCH 51/84] rebuild all tree through push_patch Appraisal score allowed to be fraction unhide group/ledger field in cost senter for import purpose update_nsm_model in cost center on_trash() --- erpnext/patches/patch.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index 8880e7dc1f4..79d40c98b07 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -347,9 +347,6 @@ def execute(patch_no): prev_sle = bobj.get_prev_sle(posting_date = '2011-09-01', posting_time = '01:00') bobj.update_item_valuation(posting_date = '2011-09-01', posting_time = '01:00', prev_sle = prev_sle) elif patch_no == 368: - sql("update tabDocPerm set amend = 0 where parent = 'Salary Structure'") - sql("update tabDocPerm set cancel = 1 where parent = 'Company' and role = 'System Manager'") - elif patch_no == 369: from webnotes.utils import nestedset t = [ ['Account', 'parent_account'], ['Cost Center', 'parent_cost_center'], @@ -358,9 +355,11 @@ def execute(patch_no): ] for d in t: nestedset.rebuild_tree(d[0], d[1]) - elif patch_no == 370: + elif patch_no == 369: reload_doc('hr', 'doctype', 'appraisal') reload_doc('hr', 'doctype', 'appraisal_detail') + elif patch_no == 370: + sql("update `tabDocField` set `hidden` = 0 where fieldname = 'group_or_ledger' and parent = 'Cost Center'") elif patch_no == 371: comp = sql("select name from tabCompany where docstatus!=2") fy = sql("select name from `tabFiscal Year` order by year_start_date asc") @@ -376,6 +375,9 @@ def execute(patch_no): sql("commit") sql("start transaction") elif patch_no == 372: + sql("update tabDocPerm set amend = 0 where parent = 'Salary Structure'") + sql("update tabDocPerm set cancel = 1 where parent = 'Company' and role = 'System Manager'") + elif patch_no == 373: if sql("select count(name) from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1: sql("delete from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1") if sql("select count(name) from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1: From 80ed6b25e84d15e7ad8d98fe997bd17479761a73 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 11:53:23 +0530 Subject: [PATCH 52/84] deleted gl_control.js file --- .../accounts/doctype/gl_control/gl_control.js | 367 ------------------ 1 file changed, 367 deletions(-) delete mode 100644 erpnext/accounts/doctype/gl_control/gl_control.js diff --git a/erpnext/accounts/doctype/gl_control/gl_control.js b/erpnext/accounts/doctype/gl_control/gl_control.js deleted file mode 100644 index 8f8d786424d..00000000000 --- a/erpnext/accounts/doctype/gl_control/gl_control.js +++ /dev/null @@ -1,367 +0,0 @@ -class DocType: - def __init__(self,d,dl): - self.doc, self.doclist = d, dl - self.entries = [] - - # Get Company List - # ---------------- - def get_companies(self,arg=''): - d = get_defaults() - ret = sql("select name, abbr from tabCompany where docstatus != 2") - pl = {} - for r in ret: - inc = get_value('Account','Income - '+r[1], 'balance') - exp = get_value('Account','Expenses - '+r[1], 'balance') - pl[r[0]] = flt(flt(inc) - flt(exp)) - return {'cl':[r[0] for r in ret], 'pl':pl} - - # Get current balance - # -------------------- - def get_bal(self,arg): - ac, fy = arg.split('~~~') - det = sql("select t1.balance, t2.debit_or_credit from `tabAccount Balance` t1, `tabAccount` t2 where t1.period = %s and t2.name=%s and t1.parent = t2.name", (fy, ac)) - bal = det and flt(det[0][0]) or 0 - dr_or_cr = det and flt(det[0][1]) or '' - return fmt_money(bal) + ' ' + dr_or_cr - - def get_period_balance(self,arg): - acc, f, t = arg.split('~~~') - c, fy = '', get_defaults()['fiscal_year'] - - det = sql("select debit_or_credit, lft, rgt, is_pl_account from tabAccount where name=%s", acc) - if f: c += (' and t1.posting_date >= "%s"' % f) - if t: c += (' and t1.posting_date <= "%s"' % t) - bal = sql("select sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) from `tabGL Entry` t1 where t1.account='%s' and ifnull(is_opening, 'No') = 'No' %s" % (acc, c)) - bal = bal and flt(bal[0][0]) or 0 - - if det[0][0] != 'Debit': - bal = (-1) * bal - - # add opening for balance sheet accounts - if det[0][3] == 'No': - opening = flt(sql("select opening from `tabAccount Balance` where parent=%s and period=%s", (acc, fy))[0][0]) - bal = bal + opening - - return flt(bal) - - - def get_period_difference(self,arg, cost_center =''): - # used in General Ledger Page Report - # used for Budget where cost center passed as extra argument - acc, f, t = arg.split('~~~') - c, fy = '', get_defaults()['fiscal_year'] - - det = sql("select debit_or_credit, lft, rgt, is_pl_account from tabAccount where name=%s", acc) - if f: c += (' and t1.posting_date >= "%s"' % f) - if t: c += (' and t1.posting_date <= "%s"' % t) - if cost_center: c += (' and t1.cost_center = "%s"' % cost_center) - bal = sql("select sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) from `tabGL Entry` t1 where t1.account='%s' %s" % (acc, c)) - bal = bal and flt(bal[0][0]) or 0 - - if det[0][0] != 'Debit': - bal = (-1) * bal - - return flt(bal) - - # Get Children (for tree) - # ----------------------- - def get_cl(self, arg): - fy = get_defaults()['fiscal_year'] - parent, parent_acc_name, company, type = arg.split(',') - - # get children account details - if type=='Account': - if parent=='Root': - cl = sql("select t1.name, t1.group_or_ledger, t1.debit_or_credit, t2.balance, t1.account_name from tabAccount t1, `tabAccount Balance` t2 where t1.parent_account is NULL or t1.parent_account='' and t1.docstatus != 2 and t1.company=%s and t1.name = t2.parent and t2.period = %s order by t1.name asc", (company, fy),as_dict=1) - else: - cl = sql("select t1.name, t1.group_or_ledger, t1.debit_or_credit, t2.balance, t1.account_name from tabAccount t1, `tabAccount Balance` t2 where t1.parent_account=%s and t1.docstatus != 2 and t1.company=%s and t1.name = t2.parent and t2.period = %s order by t1.name asc",(parent, company, fy) ,as_dict=1) - - # remove Decimals - for c in cl: c['balance'] = flt(c['balance']) - - # get children cost center details - elif type=='Cost Center': - if parent=='Root': - cl = sql("select name,group_or_ledger, cost_center_name from `tabCost Center` where parent_cost_center is NULL or parent_cost_center='' and docstatus != 2 and company_name=%s order by name asc",(company),as_dict=1) - else: - cl = sql("select name,group_or_ledger,cost_center_name from `tabCost Center` where parent_cost_center=%s and docstatus != 2 and company_name=%s order by name asc",(parent,company),as_dict=1) - - return {'parent':parent, 'parent_acc_name':parent_acc_name, 'cl':cl} - - # Add a new account - # ----------------- - def add_ac(self,arg): - arg = eval(arg) - ac = Document('Account') - for d in arg.keys(): - ac.fields[d] = arg[d] - ac.old_parent = '' - ac_obj = get_obj(doc=ac) - ac_obj.validate() - ac_obj.doc.save(1) - ac_obj.on_update() - - return ac_obj.doc.name - - # Add a new cost center - #---------------------- - def add_cc(self,arg): - arg = eval(arg) - cc = Document('Cost Center') - # map fields - for d in arg.keys(): - cc.fields[d] = arg[d] - # map company abbr - other_info = sql("select company_abbr from `tabCost Center` where name='%s'"%arg['parent_cost_center']) - cc.company_abbr = other_info and other_info[0][0] or arg['company_abbr'] - - cc_obj = get_obj(doc=cc) - cc_obj.validate() - cc_obj.doc.save(1) - cc_obj.on_update() - - return cc_obj.doc.name - - - - # Get field values from the voucher - #------------------------------------------ - def get_val(self, src, d, parent=None): - if not src: - return None - if src.startswith('parent:'): - return parent.fields[src.split(':')[1]] - elif src.startswith('value:'): - return eval(src.split(':')[1]) - elif src: - return d.fields.get(src) - - def check_if_in_list(self, le): - for e in self.entries: - if e.account == le.account and (cstr(e.against_voucher)==cstr(le.against_voucher)) and (cstr(e.against_voucher_type)==cstr(le.against_voucher_type)) and (cstr(e.cost_center)==cstr(le.cost_center)): - return [e] - return 0 - - # Make a dictionary(le) for every gl entry and append to a list(self.entries) - #---------------------------------------------------------------------------- - def make_single_entry(self,parent,d,le_map,cancel): - if self.get_val(le_map['account'], d, parent) and (self.get_val(le_map['debit'], d, parent) or self.get_val(le_map['credit'], d, parent)): - flist = ['account','cost_center','against','debit','credit','remarks','voucher_type','voucher_no','transaction_date','posting_date','fiscal_year','against_voucher','against_voucher_type','company','is_opening', 'aging_date'] - - # Check budget before gl entry - #check budget only if account is expense account - is_expense_acct = sql("select name from tabAccount where is_pl_account='Yes' and debit_or_credit='Debit' and name=%s",self.get_val(le_map['account'], d, parent)) - if is_expense_acct and self.get_val(le_map['cost_center'], d, parent): - get_obj('Budget Control').check_budget([self.get_val(le_map[k], d, parent) for k in flist if k in ['account','cost_center','debit','credit','posting_date','fiscal_year','company']],cancel) - - # Create new GL entry object and map values - le = Document('GL Entry') - for k in flist: - le.fields[k] = self.get_val(le_map[k], d, parent) - - # if there is already an entry in this account then just add it to that entry - same_head = self.check_if_in_list(le) - if same_head: - same_head = same_head[0] - same_head.debit = flt(same_head.debit) + flt(le.debit) - same_head.credit = flt(same_head.credit) + flt(le.credit) - else: - self.entries.append(le) - - # Save GL Entries - # ---------------- - def save_entries(self, cancel, adv_adj): - for le in self.entries: - # cancel - if cancel: - tmp=le.debit - le.debit, le.credit = le.credit, tmp - - le_obj = get_obj(doc=le) - # validate except on_cancel - if not cancel: - le_obj.validate() - - # save - le.save(1) - le_obj.on_update(adv_adj) - - # update total debit / credit - self.td += flt(le.debit) - self.tc += flt(le.credit) - - # Make Multiple Entries - # --------------------- - def make_gl_entries(self, doc, doclist, cancel=0, adv_adj = 0): - # get entries - le_map_list = sql("select * from `tabGL Mapper Detail` where parent = %s", doc.doctype, as_dict=1) - - self.td, self.tc = 0.0, 0.0 - - for le_map in le_map_list: - if le_map['table_field']: - for d in getlist(doclist,le_map['table_field']): - # purchase_tax_details is the table of other charges in purchase cycle - if le_map['table_field'] != 'purchase_tax_details' or (le_map['table_field'] == 'purchase_tax_details' and d.fields.get('category') != 'For Valuation'): - self.make_single_entry(doc,d,le_map,cancel) - else: - self.make_single_entry(None,doc,le_map,cancel) - - # save entries - self.save_entries(cancel,adv_adj) - - # check total debit / credit - # Due to old wrong entries (total debit != total credit) some voucher could be cancelled - if abs(self.td - self.tc) > 0.001 and not cancel: - msgprint("Debit and Credit not equal for this voucher: Diff (Debit) is %s" % (self.td-self.tc)) - raise Exception - - # set as cancelled - if cancel: - vt, vn = self.get_val(le_map['voucher_type'], doc, doc), self.get_val(le_map['voucher_no'], doc, doc) - sql("update `tabGL Entry` set is_cancelled='Yes' where voucher_type=%s and voucher_no=%s", (vt, vn)) - - # Get account balance on any date - # ------------------------------- - - def get_as_on_balance(self, account_name, fiscal_year, as_on, credit_or_debit, is_pl, lft, rgt, ysd): - # get total transaction value for the current year - bal = bal = sql("select SUM(t1.debit), SUM(t1.credit) from `tabGL Entry` t1, `tabAccount` t2 WHERE t1.posting_date >= %s AND t1.posting_date <= %s and t1.is_opening = 'No' AND t1.account = t2.name AND t2.lft >= %s AND t2.rgt <= %s and t1.is_cancelled = 'No'", (ysd,as_on,lft, rgt)) - bal = bal and (flt(bal[0][0]) - flt(bal[0][1])) or 0 - - if credit_or_debit == 'Credit' and bal: - bal = -bal - - # Add opening balance with the transaction value - if is_pl=='No': - op = sql("select opening from `tabAccount Balance` where parent=%s and period=%s", (account_name, fiscal_year)) - op = op and op[0][0] or 0 - bal += flt(op) - return flt(bal) - - # ADVANCE ALLOCATION - #------------------- - def get_advances(self, obj, account_head, table_name,table_field_name, dr_or_cr): - jv_detail = sql("select t1.name, t1.remark, t2.%s, t2.name, t1.ded_amount from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 where t1.name = t2.parent and (t2.against_voucher is null or t2.against_voucher = '') and (t2.against_invoice is null or t2.against_invoice = '') and t2.account = '%s' and t2.is_advance = 'Yes' and t1.docstatus = 1 order by t1.voucher_date " % (dr_or_cr,account_head)) - # clear advance table - obj.doc.clear_table(obj.doclist,table_field_name) - # Create advance table - for d in jv_detail: - add = addchild(obj.doc, table_field_name, table_name, 1, obj.doclist) - add.journal_voucher = d[0] - add.jv_detail_no = d[3] - add.remarks = d[1] - add.advance_amount = flt(d[2]) - add.allocate_amount = 0 - if table_name == 'Advance Allocation Detail': - add.tds_amount = flt(d[4]) - - # Clear rows which is not adjusted - #------------------------------------- - def clear_advances(self, obj,table_name,table_field_name): - for d in getlist(obj.doclist,table_field_name): - if not flt(d.allocated_amount): - sql("update `tab%s` set parent = '' where name = '%s' and parent = '%s'" % (table_name, d.name, d.parent)) - d.parent = '' - - # Update aginst document in journal voucher - #------------------------------------------ - def update_against_document_in_jv(self, obj, table_field_name, against_document_no, against_document_doctype, account_head, dr_or_cr,doctype): - for d in getlist(obj.doclist, table_field_name): - self.validate_jv_entry(d, account_head, dr_or_cr) - if flt(d.advance_amount) == flt(d.allocated_amount): - # cancel JV - jv_obj = get_obj('Journal Voucher', d.journal_voucher, with_children=1) - get_obj(dt='GL Control').make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel =1, adv_adj =1) - - # update ref in JV Detail - sql("update `tabJournal Voucher Detail` set %s = '%s' where name = '%s'" % (doctype=='Payable Voucher' and 'against_voucher' or 'against_invoice', cstr(against_document_no), d.jv_detail_no)) - - # re-submit JV - jv_obj = get_obj('Journal Voucher', d.journal_voucher, with_children =1) - get_obj(dt='GL Control').make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel = 0, adv_adj =1) - - elif flt(d.advance_amount) > flt(d.allocated_amount): - # cancel JV - jv_obj = get_obj('Journal Voucher', d.journal_voucher, with_children=1) - get_obj(dt='GL Control').make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel =1, adv_adj = 1) - - # add extra entries - self.add_extra_entry(jv_obj, d.journal_voucher, d.jv_detail_no, flt(d.allocated_amount), account_head, doctype, dr_or_cr, against_document_no) - - # re-submit JV - jv_obj = get_obj('Journal Voucher', d.journal_voucher, with_children =1) - get_obj(dt='GL Control').make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel = 0, adv_adj = 1) - else: - msgprint("Allocation amount cannot be greater than advance amount") - raise Exception - - # Add extra row in jv detail for unadjusted amount - #-------------------------------------------------- - def add_extra_entry(self,jv_obj,jv,jv_detail_no, allocate, account_head, doctype, dr_or_cr, against_document_no): - # get old entry details - - jvd = sql("select %s, cost_center, balance, against_account from `tabJournal Voucher Detail` where name = '%s'" % (dr_or_cr,jv_detail_no)) - advance = jvd and flt(jvd[0][0]) or 0 - balance = flt(advance) - flt(allocate) - - # update old entry - sql("update `tabJournal Voucher Detail` set %s = '%s', %s = '%s' where name = '%s'" % (dr_or_cr, flt(allocate), doctype == "Payable Voucher" and 'against_voucher' or 'against_invoice',cstr(against_document_no), jv_detail_no)) - - # new entry with balance amount - add = addchild(jv_obj.doc, 'entries', 'Journal Voucher Detail', 1, jv_obj.doclist) - add.account = account_head - add.cost_center = cstr(jvd[0][1]) - add.balance = cstr(jvd[0][2]) - add.fields[dr_or_cr] = balance - add.against_account = cstr(jvd[0][3]) - add.is_advance = 'Yes' - add.save(1) - - # check if advance entries are still valid - # ---------------------------------------- - def validate_jv_entry(self, d, account_head, dr_or_cr): - # 1. check if there is already a voucher reference - # 2. check if amount is same - # 3. check if is_advance is 'Yes' - # 4. check if jv is submitted - ret = sql("select t2.%s from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 where t1.name = t2.parent and (t2.against_voucher = '' || t2.against_voucher is null) and (t2.against_invoice = '' || t2.against_invoice is null) and t2.account = '%s' and t1.name = '%s' and t2.name = '%s' and t2.is_advance = 'Yes' and t1.docstatus=1 and t2.%s = %s" % ( dr_or_cr, account_head, d.journal_voucher, d.jv_detail_no, dr_or_cr, d.advance_amount)) - if (not ret): - msgprint("Please click on 'Get Advances Paid' button as the advance entries have been changed.") - raise Exception - return - -############################################################################## -# Repair Outstanding Amount -############################################################################## - def repair_voucher_outstanding(self, voucher_obj): - msg = [] - - # Get Balance from GL Entries - bal = sql("select sum(debit)-sum(credit) from `tabGL Entry` where against_voucher=%s and against_voucher_type=%s", (voucher_obj.doc.name , voucher_obj.doc.doctype)) - bal = bal and flt(bal[0][0]) or 0.0 - if cstr(voucher_obj.doc.doctype) == 'Payable Voucher': - bal = -bal - - # Check outstanding Amount - if flt(voucher_obj.doc.outstanding_amount) != flt(bal): - msgprint('
Difference found in Outstanding Amount of %s : %s (Before : %s; After : %s)
' % (voucher_obj.doc.doctype, voucher_obj.doc.name, voucher_obj.doc.outstanding_amount, bal)) - msg.append('
Difference found in Outstanding Amount of %s : %s (Before : %s; After : %s)
' % (voucher_obj.doc.doctype, voucher_obj.doc.name, voucher_obj.doc.outstanding_amount, bal)) - - # set voucher balance - #sql("update `tab%s` set outstanding_amount=%s where name='%s'" % (voucher_obj.doc.doctype, bal, voucher_obj.doc.name)) - set(voucher_obj.doc, 'outstanding_amount', flt(bal)) - - # Send Mail - if msg: - email_msg = """ Dear Administrator, - -In Account := %s User := %s has Repaired Outstanding Amount For %s : %s and following was found:- - -%s - -""" % (get_value('Control Panel', None,'account_id'), session['user'], voucher_obj.doc.doctype, voucher_obj.doc.name, '\n'.join(msg)) - - sendmail(['jai@webnotestech.com'], subject='Repair Outstanding Amount', parts = [('text/plain', email_msg)]) - # Acknowledge User - msgprint(cstr(voucher_obj.doc.doctype) + " : " + cstr(voucher_obj.doc.name) + " has been checked" + cstr(msg and " and repaired successfully." or ". No changes Found.")) From e76e2a1172a619fb50d0927d74df5f6718aaaade Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 12:45:48 +0530 Subject: [PATCH 53/84] reload internal reconciliation --- erpnext/patches/patch.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index 79d40c98b07..2f826d54e73 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 372 +last_patch = 374 #------------------------------------------- @@ -382,3 +382,7 @@ def execute(patch_no): sql("delete from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1") if sql("select count(name) from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1: sql("delete from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1") + elif patch_no == 374: + reload_doc('accounts', 'doctype', 'internal_reconciliation') + reload_doc('accounts', 'doctype', 'ir_payment_detail') + reload_doc('accounts', 'Module Def', 'Accounts') From e2df68bb5b4c1331f362028330ba9fc8745fd11a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 12:47:09 +0530 Subject: [PATCH 54/84] reload internal reconciliation --- erpnext/accounts/Module Def/Accounts/Accounts.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/Module Def/Accounts/Accounts.txt b/erpnext/accounts/Module Def/Accounts/Accounts.txt index 50a7ac9697f..0a6921a13c2 100644 --- a/erpnext/accounts/Module Def/Accounts/Accounts.txt +++ b/erpnext/accounts/Module Def/Accounts/Accounts.txt @@ -5,7 +5,7 @@ { 'creation': '2010-09-25 10:50:37', 'docstatus': 0, - 'modified': '2011-09-12 13:22:15', + 'modified': '2011-09-27 12:44:04', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -128,6 +128,15 @@ 'doctype': 'Module Def Item' }, + # Module Def Item + { + 'description': 'Link your invoices and payment vouchers to clear/update outstanding amount', + 'display_name': 'Internal Reconciliation', + 'doc_name': 'Internal Reconciliation', + 'doc_type': 'Single DocType', + 'doctype': 'Module Def Item' + }, + # Module Def Item { 'display_name': 'TDS Payment', From ec451da2f43bf1259be19ec150c71925667b87ec Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 12:47:59 +0530 Subject: [PATCH 55/84] Re-written update_against_document_in_jv function in RV and PV --- .../payable_voucher/payable_voucher.py | 38 +++++++++-- .../receivable_voucher/receivable_voucher.py | 67 ++++++++++--------- 2 files changed, 70 insertions(+), 35 deletions(-) diff --git a/erpnext/accounts/doctype/payable_voucher/payable_voucher.py b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py index b403d20c027..39544b0d2a6 100644 --- a/erpnext/accounts/doctype/payable_voucher/payable_voucher.py +++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py @@ -447,12 +447,38 @@ class DocType(TransactionBase): if not submitted: msgprint("Purchase Receipt : "+ cstr(d.purchase_receipt) +" is not submitted") raise Exception , "Validation Error." - - def update_against_document_in_jv(self, against_document_no, against_document_doctype): - get_obj('GL Control').update_against_document_in_jv( self,'advance_allocation_details', against_document_no, against_document_doctype, self.doc.credit_to, 'debit',self.doc.doctype) + + + #-------------------------------------------------------------------- + def update_against_document_in_jv(self): + """ + Links invoice and advance voucher: + 1. cancel advance voucher + 2. split into multiple rows if partially adjusted, assign against voucher + 3. submit advance voucher + """ + + lst = [] + for d in getlist(self.doclist, 'advance_allocation_details'): + if flt(d.allocated_amount) > 0: + args = { + 'voucher_no' : d.journal_voucher, + 'voucher_detail_no' : d.jv_detail_no, + 'against_voucher_type' : 'Payable Voucher', + 'against_voucher' : self.doc.name, + 'account' : self.doc.credit_to, + 'is_advance' : 'Yes', + 'dr_or_cr' : 'debit', + 'unadjusted_amt' : flt(d.advance_amount), + 'allocated_amt' : flt(d.allocated_amount) + } + lst.append(args) + + if lst: + get_obj('GL Control').reconcile_against_document(lst) # On Submit - # ---------- + #-------------------------------------------------------------------- def on_submit(self): self.check_prev_docstatus() @@ -462,7 +488,9 @@ class DocType(TransactionBase): # this sequence because outstanding may get -negative get_obj(dt='GL Control').make_gl_entries(self.doc, self.doclist) - self.update_against_document_in_jv(self.doc.name, self.doc.doctype) + + self.update_against_document_in_jv() + get_obj(dt = 'Purchase Common').update_prevdoc_detail(self, is_submit = 1) diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py index dba08fe8b9d..6d1f80adb98 100644 --- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py @@ -225,40 +225,47 @@ class DocType(TransactionBase): #----------------------------------------------------------------- - # ADVANCE ALLOCATION - #----------------------------------------------------------------- - def update_against_document_in_jv(self,against_document_no, against_document_doctype): - get_obj('GL Control').update_against_document_in_jv( self, 'advance_adjustment_details', against_document_no, against_document_doctype, self.doc.debit_to, 'credit', self.doc.doctype) + def update_against_document_in_jv(self): + """ + Links invoice and advance voucher: + 1. cancel advance voucher + 2. split into multiple rows if partially adjusted, assign against voucher + 3. submit advance voucher + """ + + lst = [] + for d in getlist(self.doclist, 'advance_adjustment_details'): + if flt(d.allocated_amount) > 0: + args = { + 'voucher_no' : d.journal_voucher, + 'voucher_detail_no' : d.jv_detail_no, + 'against_voucher_type' : 'Receivable Voucher', + 'against_voucher' : self.doc.name, + 'account' : self.doc.debit_to, + 'is_advance' : 'Yes', + 'dr_or_cr' : 'credit', + 'unadjusted_amt' : flt(d.advance_amount), + 'allocated_amt' : flt(d.allocated_amount) + } + lst.append(args) + + if lst: + get_obj('GL Control').reconcile_against_document(lst) - - -# ************************************* VALIDATE ********************************************** - # Get Customer Name and address based on Debit To Account selected - # This case arises in case of direct RV where user doesn't enter customer name. - # Hence it should be fetched from Account Head. - # ----------------------------------------------------------------------------- - #def get_customer_details(self): - # get_obj('Sales Common').get_customer_details(self, inv_det_reqd = 1) - # self.get_cust_and_due_date() - - # Validate Customer Name with SO or DN if items are fetched from SO or DN # ------------------------------------------------------------------------ def validate_customer(self): + """ + Validate customer name with SO and DN + """ for d in getlist(self.doclist,'entries'): - customer = '' - if d.sales_order: - customer = sql("select customer from `tabSales Order` where name = '%s'" % d.sales_order)[0][0] - doctype = 'sales order' - doctype_no = cstr(d.sales_order) - if d.delivery_note: - customer = sql("select customer from `tabDelivery Note` where name = '%s'" % d.delivery_note)[0][0] - doctype = 'delivery note' - doctype_no = cstr(d.delivery_note) - if customer and not cstr(self.doc.customer) == cstr(customer): - msgprint("Customer %s do not match with customer of %s %s." %(self.doc.customer,doctype,doctype_no)) - raise Exception , " Validation Error " - + dt = d.delivery_note and 'Delivery Note' or d.sales_order and 'Sales Order' or '' + if dt: + dt_no = d.delivery_note or d.sales_order + cust = sql("select customer from `tab%s` where name = %s" % (dt, '%s'), dt_no) + if cust and cstr(cust[0][0]) != cstr(self.doc.customer): + msgprint("Customer %s does not match with customer of %s: %s." %(self.doc.customer, dt, dt_no), raise_exception=1) + # Validates Debit To Account and Customer Matches # ------------------------------------------------ @@ -545,7 +552,7 @@ class DocType(TransactionBase): self.make_gl_entries() if not cint(self.doc.is_pos) == 1: - self.update_against_document_in_jv(self.doc.name, self.doc.doctype) + self.update_against_document_in_jv() # on submit notification # get_obj('Notification Control').notify_contact('Sales Invoice', self.doc.doctype,self.doc.name, self.doc.email_id, self.doc.contact_person) From d9a16a282c9e6d4da71d9da41fc65bb627e16433 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 15:10:07 +0530 Subject: [PATCH 56/84] deleted gl_entry.js file --- erpnext/accounts/doctype/gl_entry/gl_entry.js | 202 ------------------ 1 file changed, 202 deletions(-) delete mode 100644 erpnext/accounts/doctype/gl_entry/gl_entry.js diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.js b/erpnext/accounts/doctype/gl_entry/gl_entry.js deleted file mode 100644 index 9f34ad87954..00000000000 --- a/erpnext/accounts/doctype/gl_entry/gl_entry.js +++ /dev/null @@ -1,202 +0,0 @@ -class DocType: - def __init__(self,d,dl): - self.doc, self.doclist = d, dl - - # Validate mandatory - #------------------- - def check_mandatory(self): - # Following fields are mandatory in GL Entry - mandatory = ['account','remarks','voucher_type','voucher_no','fiscal_year','company'] - for k in mandatory: - if not self.doc.fields.get(k): - msgprint("%s is mandatory for GL Entry" % k) - raise Exception - - # Zero value transaction is not allowed - if not (flt(self.doc.debit) or flt(self.doc.credit)): - msgprint("GL Entry: Debit or Credit amount is mandatory for %s" % self.doc.account) - raise Exception - - # Debit and credit can not done at the same time - if flt(self.doc.credit) != 0 and flt(self.doc.debit) != 0: - msgprint("Sorry you cannot credit and debit under same account head.") - raise Exception, "Validation Error." - - # Cost center is required only if transaction made against pl account - #-------------------------------------------------------------------- - def pl_must_have_cost_center(self): - if sql("select name from tabAccount where name=%s and is_pl_account='Yes'", self.doc.account): - if not self.doc.cost_center and not self.doc.voucher_type != 'Period Closing Entry': - msgprint("Error: Cost Center must be specified for PL Account: %s" % self.doc.account_name) - raise Exception - else: # not pl - if self.doc.cost_center: - self.doc.cost_center = '' - - # Account must be ledger, active and not freezed - #----------------------------------------------- - def validate_account_details(self, adv_adj): - ret = sql("select group_or_ledger, docstatus, freeze_account, company from tabAccount where name=%s", self.doc.account) - - # 1. Checks whether Account type is group or ledger - if ret and ret[0][0]=='Group': - msgprint("Error: All accounts must be Ledgers. Account %s is a group" % self.doc.account) - raise Exception - - # 2. Checks whether Account is active - if ret and ret[0][1]==2: - msgprint("Error: All accounts must be Active. Account %s moved to Trash" % self.doc.account) - raise Exception - - # 3. Account has been freezed for other users except account manager - if ret and ret[0][2]== 'Yes' and not adv_adj and not 'Accounts Manager' in session['data']['roles']: - msgprint("Error: Account %s has been freezed. Only Accounts Manager can do transaction against this account." % self.doc.account) - raise Exception - - # 4. Check whether account is within the company - if ret and ret[0][3] != self.doc.company: - msgprint("Account: %s does not belong to the company: %s" % (self.doc.account, self.doc.company)) - raise Exception - - # Posting date must be in selected fiscal year and fiscal year is active - #------------------------------------------------------------------------- - def validate_posting_date(self): - fy = sql("select docstatus, year_start_date from `tabFiscal Year` where name=%s ", self.doc.fiscal_year) - ysd = fy[0][1] - yed = get_last_day(get_first_day(ysd,0,11)) - pd = getdate(self.doc.posting_date) - if fy[0][0] == 2: - msgprint("Fiscal Year is not active. You can restore it from Trash") - raise Exception - if pd < ysd or pd > yed: - msgprint("Posting date must be in the Selected Financial Year") - raise Exception - - - # Nobody can do GL Entries where posting date is before freezing date except 'Accounts Manager' - #---------------------------------------------------------------------------------------------- - def check_freezing_date(self, adv_adj): - if not adv_adj: - pd,fd = getdate(self.doc.posting_date),0 - acc_frozen_upto = get_obj(dt = 'Manage Account').doc.acc_frozen_upto or '' - if acc_frozen_upto: - fd = getdate(acc_frozen_upto) - - bde_auth_role = get_value( 'Manage Account', None,'bde_auth_role') - if fd and pd <= fd and (bde_auth_role and not bde_auth_role in session['data']['roles']): - msgprint("Message:You are not authorized to do back dated entries for account: %s before %s." % (self.doc.account, str(fd))) - raise Exception - - # create new bal if not exists - #----------------------------- - def create_new_balances(self, ac_obj, p, amt): - ac = addchild(ac_obj.doc, 'account_balances', 'Account Balance', 1) - ac.period = p[0] - ac.start_date = p[1].strftime('%Y-%m-%d') - ac.end_date = p[2].strftime('%Y-%m-%d') - ac.fiscal_year = p[3] - ac.opening = 0 - ac.balance = amt - ac.save() - - # Post Balance - # ------------ - def post_balance(self, acc): - # get details - lft = sql("select lft, rgt, debit_or_credit from `tabAccount` where name='%s'" % acc) - - # amount to debit - amt = flt(self.doc.debit) - flt(self.doc.credit) - if lft[0][2] == 'Credit': amt = -amt - - # get periods - periods = self.get_period_list(self.doc.posting_date, self.doc.fiscal_year) - - acc_obj = get_obj('Account', self.doc.account) - for p in periods: - if not sql("select name from `tabAccount Balance` where parent=%s and period=%s", (self.doc.account, p[0])): - self.create_new_balances(acc_obj, p, amt) - else: - # update current - pl = sql("update `tabAccount Balance` t1, `tabAccount` t2 set t1.balance = t1.balance + %s where t2.lft<=%s and t2.rgt>=%s and t1.parent = t2.name and t1.period = '%s'" % (amt, cint(lft[0][0]), cint(lft[0][1]), p[0])) - - # update opening - if self.doc.is_opening=='Yes': - pl = sql("update `tabAccount Balance` t1, `tabAccount` t2 set t1.opening = ifnull(t1.opening,0) + %s where t2.lft<=%s and t2.rgt>=%s and t1.parent = t2.name and t1.period = '%s'" % (amt, cint(lft[0][0]), cint(lft[0][1]), self.doc.fiscal_year)) - - # Get periods(month and year) - #----------------------------- - def get_period_list(self, dt, fy): - pl = sql("SELECT name, start_date, end_date, fiscal_year FROM tabPeriod WHERE end_date >='%s' and fiscal_year = '%s' and period_type in ('Month', 'Year')" % (dt,fy)) - return pl - - # Voucher Balance - # --------------- - def update_outstanding_amt(self): - # get final outstanding amt - bal = flt(sql("select sum(debit)-sum(credit) from `tabGL Entry` where against_voucher=%s and against_voucher_type=%s and ifnull(is_cancelled,'No') = 'No'", (self.doc.against_voucher, self.doc.against_voucher_type))[0][0] or 0.0) - tds = 0 - - if self.doc.against_voucher_type=='Payable Voucher': - # amount to debit - bal = -bal - - # Check if tds applicable - tds = sql("select total_tds_on_voucher from `tabPayable Voucher` where name = '%s'" % self.doc.against_voucher) - tds = tds and flt(tds[0][0]) or 0 - - # Validation : Outstanding can not be negative - if bal < 0 and not tds and self.doc.is_cancelled == 'No': - msgprint("Outstanding for Voucher %s will become %s. Outstanding cannot be less than zero. Please match exact outstanding." % (self.doc.against_voucher, fmt_money(bal))) - raise Exception - - # Update outstanding amt on against voucher - sql("update `tab%s` set outstanding_amount=%s where name='%s'"% (self.doc.against_voucher_type,bal,self.doc.against_voucher)) - - - # Total outstanding can not be greater than credit limit for any time for any customer - #--------------------------------------------------------------------------------------------- - def check_credit_limit(self): - #check for user role Freezed - master_type=sql("select master_type from `tabAccount` where name='%s' " %self.doc.account) - tot_outstanding = 0 #needed when there is no GL Entry in the system for that acc head - if (self.doc.voucher_type=='Journal Voucher' or self.doc.voucher_type=='Receivable Voucher') and (master_type and master_type[0][0]=='Customer'): - dbcr=sql("select sum(debit),sum(credit) from `tabGL Entry` where account = '%s' and is_cancelled='No'" % self.doc.account) - if dbcr: - tot_outstanding = flt(dbcr[0][0])-flt(dbcr[0][1])+flt(self.doc.debit)-flt(self.doc.credit) - get_obj('Account',self.doc.account).check_credit_limit(self.doc.account, self.doc.company, tot_outstanding) - - #for opening entry account can not be pl account - #----------------------------------------------- - def check_pl_account(self): - if self.doc.is_opening=='Yes': - is_pl_account=sql("select is_pl_account from `tabAccount` where name='%s'"%(self.doc.account)) - if is_pl_account and is_pl_account[0][0]=='Yes': - msgprint("For opening balance entry account can not be a PL account") - raise Exception - - # Validate - # -------- - def validate(self): # not called on cancel - self.check_mandatory() - self.pl_must_have_cost_center() - self.validate_posting_date() - self.doc.is_cancelled = 'No' # will be reset by GL Control if cancelled - self.check_credit_limit() - self.check_pl_account() - - # On Update - #---------- - def on_update(self,adv_adj): - # Account must be ledger, active and not freezed - self.validate_account_details(adv_adj) - - # Posting date must be after freezing date - self.check_freezing_date(adv_adj) - - # Update current account balance - self.post_balance(self.doc.account) - - # Update outstanding amt on against voucher - if self.doc.against_voucher: - self.update_outstanding_amt() \ No newline at end of file From c8d5625763ce99006bf0e15e13c76395cff18d48 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 15:26:29 +0530 Subject: [PATCH 57/84] removed trashed profile from user search result --- .../doctype/pos_setting/pos_setting.js | 121 ++++++++++++++---- 1 file changed, 96 insertions(+), 25 deletions(-) diff --git a/erpnext/accounts/doctype/pos_setting/pos_setting.js b/erpnext/accounts/doctype/pos_setting/pos_setting.js index 2bbc08cf589..4eed7b6918d 100755 --- a/erpnext/accounts/doctype/pos_setting/pos_setting.js +++ b/erpnext/accounts/doctype/pos_setting/pos_setting.js @@ -1,38 +1,109 @@ -cur_frm.cscript.onload = function(doc,cdt,cdn){ - $c_obj(make_doclist(cdt,cdn),'get_series','',function(r,rt){ - if(r.message) set_field_options('naming_series', r.message); - }); + +//--------- ONLOAD ------------- +cur_frm.cscript.onload = function(doc, cdt, cdn) { + +} + +// Settings Module + +cur_frm.cscript.refresh = function(doc,cdt,cdn){ + + + if(doc.based_on == 'Grand Total' || doc.based_on == 'Average Discount' || doc.based_on == 'Total Claimed Amount' || doc.based_on == 'Not Applicable') hide_field('master_name'); + else unhide_field('master_name'); + if(doc.based_on == 'Not Applicable') hide_field('value'); + else unhide_field('value'); + + if(doc.transaction == 'Expense Voucher' || doc.transaction == 'Appraisal'){ + hide_field(['master_name','system_role', 'system_user']); + unhide_field(['to_emp','to_designation']); + if(doc.transaction == 'Appraisal') hide_field('value'); + else unhide_field('value'); + } + else { + unhide_field(['master_name','system_role', 'system_user','value']); + hide_field(['to_emp','to_designation']); + } } -//cash bank account -//------------------------------------ -cur_frm.fields_dict['cash_bank_account'].get_query = function(doc,cdt,cdn) { - return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"' +cur_frm.cscript.based_on = function(doc){ + if(doc.based_on == 'Grand Total' || doc.based_on == 'Average Discount' || doc.based_on == 'Total Claimed Amount' || doc.based_on == 'Not Applicable'){ + doc.master_name = ''; + refresh_field('master_name'); + hide_field('master_name'); + } + else{ + unhide_field('master_name'); + } + + if(doc.based_on == 'Not Applicable') { + doc.value =0; + refresh_field('value'); + hide_field('value'); + } + else unhide_field('value'); } -// Income Account -// -------------------------------- -cur_frm.fields_dict['income_account'].get_query = function(doc,cdt,cdn) { - return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.account_type ="Income Account" AND tabAccount.%(key)s LIKE "%s"' +cur_frm.cscript.transaction = function(doc,cdt,cdn){ + if(doc.transaction == 'Expense Voucher' || doc.transaction == 'Appraisal'){ + doc.master_name = doc.system_role = doc.system_user = ''; + refresh_many(['master_name','system_role', 'system_user']); + hide_field(['master_name','system_role', 'system_user']); + unhide_field(['to_emp','to_designation']); + if(doc.transaction == 'Appraisal') { + doc.value =0; + refresh_many('value'); + hide_field('value'); + } + else unhide_field('value'); + } + else { + unhide_field(['master_name','system_role', 'system_user','value']); + hide_field(['to_emp','to_designation']); + } + + if(doc.transaction == 'Expense Voucher') doc.based_on = 'Total Claimed Amount'; + if(doc.transaction == 'Appraisal') doc.based_on == 'Not Applicable'; } -// Cost Center -// ----------------------------- -cur_frm.fields_dict['cost_center'].get_query = function(doc,cdt,cdn) { - return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY `tabCost Center`.`name` ASC LIMIT 50'; -} - -//get query select Territory -//================================================================= -cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) { - return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s" ORDER BY `tabTerritory`.`name` ASC LIMIT 50'; +// System User Trigger +// ------------------- +cur_frm.fields_dict['system_user'].get_query = function(doc) { + return 'SELECT tabProfile.name, tabProfile.first_name FROM tabProfile WHERE tabProfile.name not in ("Administrator","Guest") AND tabProfile.docstatus != 2 AND tabProfile.%(key)s LIKE "%s" LIMIT 50' } -// ------------------ Get Print Heading ------------------------------------ -cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) { - return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50'; +// System Role Trigger +// ----------------------- +cur_frm.fields_dict['system_role'].get_query = function(doc) { + return 'SELECT tabRole.name FROM tabRole WHERE tabRole.name not in ("Administrator","Guest","All") AND tabRole.docstatus != 2 AND tabRole.%(key)s LIKE "%s" LIMIT 50' +} + + +// Approving User Trigger +// ----------------------- +cur_frm.fields_dict['approving_user'].get_query = function(doc) { + return 'SELECT tabProfile.name, tabProfile.first_name FROM tabProfile WHERE tabProfile.name not in ("Administrator","Guest") AND tabProfile.docstatus != 2 AND tabProfile.%(key)s LIKE "%s" LIMIT 50' +} + + +// Approving Role Trigger +// ----------------------- +cur_frm.fields_dict['approving_role'].get_query = function(doc) { + return 'SELECT tabRole.name FROM tabRole WHERE tabRole.name not in ("Administrator","Guest","All") AND tabRole.docstatus != 2 AND tabRole.%(key)s LIKE "%s" LIMIT 50' +} + + +// Master Name Trigger +// -------------------- +cur_frm.fields_dict['master_name'].get_query = function(doc){ + if(doc.based_on == 'Customerwise Discount') + return 'SELECT `tabCustomer`.`name` FROM `tabCustomer` WHERE `tabCustomer`.docstatus !=2 and `tabCustomer`.`name` LIKE "%s" ORDER BY `tabCustomer`.`name` DESC LIMIT 50'; + else if(doc.based_on == 'Itemwise Discount') + return 'SELECT `tabItem`.`name` FROM `tabItem` WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` = "0000-00-00" OR `tabItem`.`end_of_life` > NOW()) and `tabItem`.is_sales_item = "Yes" and tabItem.%(key)s LIKE "%s" ORDER BY `tabItem`.`name` DESC LIMIT 50'; + else + return 'SELECT `tabItem`.`name` FROM `tabItem` WHERE `tabItem`.`name` = "cheating done to avoid null" ORDER BY `tabItem`.`name` DESC LIMIT 50'; } From 525887fd8ab7d2aad5ac829ad8365d5bc1a4ab24 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 27 Sep 2011 17:00:01 +0530 Subject: [PATCH 58/84] Error fixed in auth control --- .../authorization_control/authorization_control.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/erpnext/setup/doctype/authorization_control/authorization_control.py b/erpnext/setup/doctype/authorization_control/authorization_control.py index d0494301c80..3ddcab41db8 100644 --- a/erpnext/setup/doctype/authorization_control/authorization_control.py +++ b/erpnext/setup/doctype/authorization_control/authorization_control.py @@ -38,7 +38,7 @@ class DocType(TransactionBase): for d in app_dtl: if(d[0]): appr_users.append(d[0]) if(d[1]): appr_roles.append(d[1]) - + if not has_common(appr_roles, webnotes.user.get_roles()) and not has_common(appr_users, session['user']): msg, add_msg = '','' if max_amount: @@ -117,7 +117,7 @@ class DocType(TransactionBase): # Check for authorization set for individual user based_on = [x[0] for x in sql("select distinct based_on from `tabAuthorization Rule` where transaction = %s and system_user = %s and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, session['user'], company))] - + for d in based_on: self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company) @@ -128,7 +128,13 @@ class DocType(TransactionBase): # Specific Role # =============== # Check for authorization set on particular roles - based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = %s and system_role IN (%s) and based_on IN (%s) and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, "'"+"','".join(webnotes.user.get_roles())+"'", "'"+"','".join(final_based_on)+"'",company))] + based_on = [x[0] for x in sql("""select based_on + from `tabAuthorization Rule` + where transaction = %s and system_role IN (%s) and based_on IN (%s) + and (company = %s or ifnull(company,'')='') + and docstatus != 2 + """ % ('%s', "'"+"','".join(webnotes.user.get_roles())+"'", "'"+"','".join(final_based_on)+"'", '%s'), (doctype_name, company))] + for d in based_on: self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) From fff40599e808e47ea8a81de88d5eb278f7b82d84 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 29 Sep 2011 10:39:44 +0530 Subject: [PATCH 59/84] test field deleted from warehouse --- erpnext/stock/doctype/warehouse/warehouse.txt | 76 ++----------------- 1 file changed, 6 insertions(+), 70 deletions(-) diff --git a/erpnext/stock/doctype/warehouse/warehouse.txt b/erpnext/stock/doctype/warehouse/warehouse.txt index 1363eef7014..da29dfab643 100644 --- a/erpnext/stock/doctype/warehouse/warehouse.txt +++ b/erpnext/stock/doctype/warehouse/warehouse.txt @@ -5,17 +5,18 @@ { 'creation': '2010-08-08 17:09:30', 'docstatus': 0, - 'modified': '2010-12-16 23:57:04', - 'modified_by': 'nabin@webnotestech.com', + 'modified': '2011-09-28 16:19:59', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1300788639', + '_last_update': '1311621379', 'allow_trash': 1, 'autoname': 'field:warehouse_name', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Master', 'module': 'Stock', @@ -24,7 +25,7 @@ 'section_style': 'Tabbed', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 55 + 'version': 56 }, # These values are common for all DocField @@ -58,7 +59,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 2, 'role': 'Material User', 'submit': 0, @@ -71,7 +71,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'Material User', 'submit': 0, @@ -84,7 +83,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 1, 'role': 'Material User', 'submit': 0, @@ -97,7 +95,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 2, 'role': 'Material Manager', 'submit': 0, @@ -110,7 +107,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 0, 'role': 'Material Manager', 'submit': 0, @@ -123,7 +119,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 1, 'role': 'Material Manager', 'submit': 0, @@ -133,7 +128,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 7, 'permlevel': 1, 'role': 'All' }, @@ -144,7 +138,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 8, 'permlevel': 0, 'role': 'Material Master Manager', 'submit': 0, @@ -154,7 +147,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 9, 'permlevel': 1, 'role': 'Material Master Manager' }, @@ -164,7 +156,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 10, 'permlevel': 0, 'role': 'System Manager', 'write': 1 @@ -174,7 +165,6 @@ { 'create': 0, 'doctype': 'DocPerm', - 'idx': 11, 'permlevel': 2, 'role': 'System Manager', 'write': 1 @@ -185,7 +175,6 @@ 'doctype': 'DocField', 'fieldname': 'trash_reason', 'fieldtype': 'Small Text', - 'idx': 1, 'label': 'Trash Reason', 'oldfieldname': 'trash_reason', 'oldfieldtype': 'Small Text', @@ -196,7 +185,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 2, 'label': 'Warehouse Detail', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -207,7 +195,6 @@ 'doctype': 'DocField', 'fieldname': 'warehouse_name', 'fieldtype': 'Data', - 'idx': 3, 'label': 'Warehouse Name', 'oldfieldname': 'warehouse_name', 'oldfieldtype': 'Data', @@ -221,7 +208,6 @@ 'doctype': 'DocField', 'fieldname': 'warehouse_type', 'fieldtype': 'Link', - 'idx': 4, 'label': 'Warehouse Type', 'oldfieldname': 'warehouse_type', 'oldfieldtype': 'Link', @@ -237,14 +223,13 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 5, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', 'oldfieldtype': 'Link', 'options': 'Company', 'permlevel': 0, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -253,7 +238,6 @@ 'fieldname': 'email_id', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 6, 'label': 'Email Id', 'oldfieldname': 'email_id', 'oldfieldtype': 'Data', @@ -267,7 +251,6 @@ 'fieldname': 'auto_indent_mail', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 7, 'label': 'Send Reorder Alert Mail ', 'no_copy': 1, 'oldfieldname': 'auto_indent_mail', @@ -285,7 +268,6 @@ 'doctype': 'DocField', 'fieldname': 'phone_no', 'fieldtype': 'Int', - 'idx': 8, 'label': 'Phone No', 'oldfieldname': 'phone_no', 'oldfieldtype': 'Int', @@ -298,7 +280,6 @@ 'doctype': 'DocField', 'fieldname': 'mobile_no', 'fieldtype': 'Int', - 'idx': 9, 'label': 'Mobile No', 'oldfieldname': 'mobile_no', 'oldfieldtype': 'Int', @@ -310,7 +291,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 10, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -320,7 +300,6 @@ 'doctype': 'DocField', 'fieldname': 'address_line_1', 'fieldtype': 'Data', - 'idx': 11, 'label': 'Address Line 1', 'oldfieldname': 'address_line_1', 'oldfieldtype': 'Data', @@ -332,7 +311,6 @@ 'doctype': 'DocField', 'fieldname': 'address_line_2', 'fieldtype': 'Data', - 'idx': 12, 'label': 'Address Line 2', 'oldfieldname': 'address_line_2', 'oldfieldtype': 'Data', @@ -346,7 +324,6 @@ 'fieldname': 'country', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 13, 'in_filter': 0, 'label': 'Country', 'no_copy': 0, @@ -367,7 +344,6 @@ 'doctype': 'DocField', 'fieldname': 'state', 'fieldtype': 'Select', - 'idx': 14, 'label': 'State', 'oldfieldname': 'state', 'oldfieldtype': 'Select', @@ -380,7 +356,6 @@ 'doctype': 'DocField', 'fieldname': 'city', 'fieldtype': 'Data', - 'idx': 15, 'label': 'City', 'oldfieldname': 'city', 'oldfieldtype': 'Data', @@ -393,7 +368,6 @@ 'doctype': 'DocField', 'fieldname': 'pin', 'fieldtype': 'Int', - 'idx': 16, 'label': 'PIN', 'oldfieldname': 'pin', 'oldfieldtype': 'Int', @@ -404,7 +378,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 17, 'label': 'Repost Stock', 'oldfieldtype': 'Section Break', 'permlevel': 2 @@ -415,46 +388,9 @@ 'doctype': 'DocField', 'fieldtype': 'Button', 'hidden': 0, - 'idx': 18, 'label': 'Repost Stock Ledger', 'oldfieldtype': 'Button', 'options': 'repost_stock', 'permlevel': 2 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'test_field2', - 'fieldtype': 'Data', - 'idx': 19, - 'label': 'Test Field2', - 'oldfieldname': 'test_field2', - 'oldfieldtype': 'Data', - 'permlevel': 0 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'test_field1', - 'fieldtype': 'Data', - 'idx': 20, - 'label': 'Test Field1', - 'oldfieldname': 'test_field1', - 'oldfieldtype': 'Data', - 'permlevel': 0 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'test_field', - 'fieldtype': 'Data', - 'idx': 21, - 'label': 'Test Field', - 'oldfieldname': 'test_field', - 'oldfieldtype': 'Data', - 'permlevel': 0 } ] \ No newline at end of file From 79e8247d82ebcbc9a60aae09d2ee1e0fe0a505ec Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 29 Sep 2011 10:40:04 +0530 Subject: [PATCH 60/84] fix in stock ledger --- erpnext/stock/doctype/stock_ledger/stock_ledger.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/stock_ledger/stock_ledger.py b/erpnext/stock/doctype/stock_ledger/stock_ledger.py index ff6de7083da..c1bfa968d34 100644 --- a/erpnext/stock/doctype/stock_ledger/stock_ledger.py +++ b/erpnext/stock/doctype/stock_ledger/stock_ledger.py @@ -139,7 +139,7 @@ class DocType: elif purpose == 'Sales Return': sql("update `tabSerial No` set status = 'Delivered', purchase_document_type = '', purchase_document_no = '' where name = '%s'" % serial_no) else: - sql("update `tabSerial No` set docstatus = 2, status = 'Not in Use', purchase_document_type = '', purchase_document_no = '', purchase_date = '', purchase_rate = '', supplier = null, supplier_name = '', supplier_address = '', warehouse = '' where name = '%s'" % serial_no) + 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) # ------------------------------- From 31665e538a8e58f4152679d9bd98b39fb4b71136 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 29 Sep 2011 10:41:02 +0530 Subject: [PATCH 61/84] Test Case: stock entry submit and cancel Sandbox created for maintaining testdata and testcases --- erpnext/sandbox/__init__.py | 0 erpnext/sandbox/test_stock_entry.py | 110 +++++++++ erpnext/sandbox/testdata/__init__.py | 0 erpnext/sandbox/testdata/masters.py | 282 ++++++++++++++++++++++++ erpnext/sandbox/testdata/stock_entry.py | 32 +++ 5 files changed, 424 insertions(+) create mode 100644 erpnext/sandbox/__init__.py create mode 100644 erpnext/sandbox/test_stock_entry.py create mode 100644 erpnext/sandbox/testdata/__init__.py create mode 100644 erpnext/sandbox/testdata/masters.py create mode 100644 erpnext/sandbox/testdata/stock_entry.py diff --git a/erpnext/sandbox/__init__.py b/erpnext/sandbox/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/sandbox/test_stock_entry.py b/erpnext/sandbox/test_stock_entry.py new file mode 100644 index 00000000000..273c4424a18 --- /dev/null +++ b/erpnext/sandbox/test_stock_entry.py @@ -0,0 +1,110 @@ +import unittest + +import webnotes +import webnotes.profile +webnotes.user = webnotes.profile.Profile() + + +from webnotes.model.doc import Document +from webnotes.model.code import get_obj +from webnotes.utils import cstr, flt +sql = webnotes.conn.sql + +from sandbox.testdata.masters import * +from sandbox.testdata import stock_entry +#---------------------------------------------------------- + +class TestStockEntry(unittest.TestCase): + def setUp(self): + print "=====================================" + webnotes.conn.begin() + + create_master_records() + print 'Master Data Created' + + for each in stock_entry.mr: + each.save(1) + + for t in stock_entry.mr[1:]: + sql("update `tabStock Entry Detail` set parent = '%s' where name = '%s'" % (stock_entry.mr[0].name, t.name)) + print "Stock Entry Created" + + + #=========================================================================== + def test_stock_entry_onsubmit(self): + print "Test Case: Stock Entry submission" + self.submit_stock_entry() + + expected_sle = (('Stock Entry', stock_entry.mr[0].name, 10, 10, 100, 'No'),) + self.check_sle(expected_sle) + + self.check_bin_qty(10) + self.check_serial_no('submit', 10) + + #=========================================================================== + def test_stock_entry_oncancel(self): + print "Test Case: Stock Entry Cancellation" + self.cancel_stock_entry() + + expected_sle = ( + ('Stock Entry', stock_entry.mr[0].name, 10, 10, 100, 'Yes'), + ('Stock Entry', stock_entry.mr[0].name, -10, None, None, 'Yes'), + ) + self.check_sle(expected_sle) + + self.check_bin_qty(0) + self.check_serial_no('cancel', 10) + + + #=========================================================================== + def submit_stock_entry(self): + ste1 = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) + ste1.validate() + ste1.on_submit() + + ste1.doc.docstatus = 1 + ste1.doc.save() + + print "Stock Entry Submitted" + + + #=========================================================================== + def cancel_stock_entry(self): + self.submit_stock_entry() + + ste1 = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) + ste1.on_cancel() + + ste1.doc.cancel_reason = "testing" + ste1.doc.docstatus = 2 + ste1.doc.save() + + print "Stock Entry Cancelled" + + #=========================================================================== + def check_sle(self, expected): + print "Checking stock ledger entry........." + sle = sql("select voucher_type, voucher_no, actual_qty, bin_aqat, valuation_rate, is_cancelled from `tabStock Ledger Entry` where item_code = 'it' and warehouse = 'wh1'") + self.assertTrue(sle == expected) + + #=========================================================================== + def check_bin_qty(self, expected_qty): + print "Checking Bin qty........." + bin_qty = sql("select actual_qty from tabBin where item_code = 'it' and warehouse = 'wh1'") + self.assertTrue(bin_qty[0][0] == expected_qty) + + #=========================================================================== + def check_serial_no(self, action, cnt): + print "Checking serial nos........" + if action == 'submit': + status, wh, docstatus = 'In Store', 'wh1', 0 + else: + status, wh, docstatus = 'Not in Use', '', 2 + + ser = sql("select count(name) from `tabSerial No` where item_code = 'it' and warehouse = '%s' and status = '%s' and docstatus = %s" % (wh, status, docstatus)) + + self.assertTrue(ser[0][0] == cnt) + + #=========================================================================== + def tearDown(self): + webnotes.conn.rollback() diff --git a/erpnext/sandbox/testdata/__init__.py b/erpnext/sandbox/testdata/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/sandbox/testdata/masters.py b/erpnext/sandbox/testdata/masters.py new file mode 100644 index 00000000000..7f2d67c4da3 --- /dev/null +++ b/erpnext/sandbox/testdata/masters.py @@ -0,0 +1,282 @@ +""" + All master data in one place, can be created by 1 function call + +""" + +import webnotes +from webnotes.model.doc import Document + + +master_groups = { + # Company + #---------------------------------- + 'company': Document( + fielddata={ + 'doctype':'Company', + 'abbr': 'co', + 'company_name' : 'comp', + 'name': 'comp' + } + ), + + # Customer Group + #---------------------------------- + 'customer_group': Document( + fielddata={ + 'doctype':'Customer Group', + 'customer_group_name' : 'cg', + 'name': 'cg', + 'is_group': 'No', + 'parent_customer_group':'', + 'lft' : 1, + 'rgt': 2 + } + ), + + # Item Group + #---------------------------------- + 'item_group': Document( + fielddata = { + 'doctype': 'Item Group', + 'item_group_name': 'ig', + 'lft': 1, + 'rgt': 2, + 'parent_item_group' : '', + 'is_group': 'No', + 'name': 'ig' + } + ), + + # Warehouse Type + #----------------------------- + 'warehouse_type' : Document( + fielddata = { + 'doctype' : 'Warehouse Type', + 'name': 'normal', + 'warehouse_type' : 'normal' + } + ), + + # Supplier Type + #----------------------------- + 'supplier_type' : Document( + fielddata = { + 'doctype': 'Supplier Type', + 'supplier_type': 'stype' + } + ) + +} + + +main_masters = { + # Customer + #---------------------------------- + 'customer': Document( + fielddata={ + 'doctype':'Customer', + 'docstatus':0, + 'customer_name' : 'cust', + 'company' : 'comp', + 'customer_group' : '', + 'name': 'cust' + } + ), + + + # Supplier + #---------------------------------- + 'supplier': Document( + fielddata = { + 'doctype': 'Supplier', + 'supplier_name': 'supp', + 'name': 'supp', + 'supplier_type' : 'stype' + } + ), + + # Customer Account + #---------------------------------- + 'customer_acc': Document( + fielddata={ + 'doctype':'Account', + 'docstatus':0, + 'account_name' : 'cust', + 'debit_or_credit': 'Debit', + 'company' : 'comp', + 'lft': 1, + 'rgt': 2, + 'group_or_ledger' : 'Ledger', + 'is_pl_account': 'No', + 'name' : 'cust - co' + } + ), + + # Customer Account + #---------------------------------- + 'supplier_acc': Document( + fielddata={ + 'doctype':'Account', + 'docstatus':0, + 'account_name' : 'supp', + 'debit_or_credit': 'Credit', + 'company' : 'comp', + 'lft': 5, + 'rgt': 6, + 'group_or_ledger' : 'Ledger', + 'is_pl_account': 'No', + 'name' : 'supp - co' + } + ), + + # Bank Account + #---------------------------------- + 'bank_acc': Document( + fielddata={ + 'doctype':'Account', + 'docstatus':0, + 'account_name' : 'icici', + 'parent_account': '', + 'debit_or_credit': 'Debit', + 'company' : 'comp', + 'lft': 3, + 'rgt': 4, + 'group_or_ledger' : 'Ledger', + 'is_pl_account': 'No', + 'name' : 'icici - co' + } + ), + + # Income Account + #---------------------------------- + 'income_acc': Document( + fielddata={ + 'doctype':'Account', + 'docstatus':0, + 'account_name' : 'income', + 'debit_or_credit': 'Credit', + 'company' : 'comp', + 'lft': 7, + 'rgt': 8, + 'group_or_ledger' : 'Ledger', + 'is_pl_account': 'Yes', + 'name' : 'income - co' + } + ), + + # Expense Account + #---------------------------------- + 'expense_acc': Document( + fielddata={ + 'doctype':'Account', + 'docstatus':0, + 'account_name' : 'expense', + 'debit_or_credit': 'Debit', + 'company' : 'comp', + 'lft': 9, + 'rgt': 10, + 'group_or_ledger' : 'Ledger', + 'is_pl_account': 'Yes', + 'name' : 'expense - co' + } + ), + + # Cost Center + #---------------------------------- + 'cost_center': Document( + fielddata={ + 'doctype':'Cost Center', + 'docstatus':0, + 'cost_center_name' : 'cc', + 'lft': 1, + 'rgt': 2, + 'group_or_ledger' : 'Ledger', + 'name' : 'cc' + } + ), + + # Item + #---------------------------------- + # Stock item / non-serialized + + 'item': [ + Document( + fielddata = { + 'doctype': 'Item', + 'docstatus': 0, + 'name': 'it', + 'item_name': 'it', + 'item_code': 'it', + 'item_group': 'ig', + 'is_stock_item': 'Yes', + 'has_serial_no': 'Yes', + 'stock_uom': 'Nos', + 'is_sales_item': 'Yes', + 'is_purchase_item': 'Yes', + 'is_service_item': 'No', + 'is_sub_contracted_item': 'No', + 'is_pro_applicable': 'Yes', + 'is_manufactured_item': 'Yes' + } + ), + Document( + fielddata = { + 'doctype': 'Ref Rate Detail', + 'parentfield': 'ref_rate_details', + 'parenttype': 'Item', + 'parent' : 'it', + 'price_list_name': 'pl', + 'ref_currency': 'INR', + 'ref_rate': 100 + } + ), + Document( + fielddata = { + 'doctype': 'Item Tax', + 'parentfield': 'item_tax', + 'parenttype': 'Item', + 'parent' : 'it', + 'tax_type' : 'Tax1', + 'tax_rate': 10 + } + ) + ], + + # Warehouse + #----------------------------- + 'warehouse': [ + Document( + fielddata = { + 'doctype': 'Warehouse', + 'name' : 'wh1', + 'warehouse_name' : 'wh1', + 'warehouse_type': 'normal', + 'company': 'comp' + } + ), + Document( + fielddata = { + 'doctype': 'Warehouse', + 'name' : 'wh2', + 'warehouse_name' : 'wh2', + 'warehouse_type': 'normal', + 'company': 'comp' + } + ) + ] +} + + + +# Save all master records +#---------------------------------- +def create_master_records(): + for m in master_groups.keys(): + master_groups[m].save(1) + + for m in main_masters.keys(): + if type(main_masters[m]) == list: + for each in main_masters[m]: + each.save(1) + else: + main_masters[m].save(1) diff --git a/erpnext/sandbox/testdata/stock_entry.py b/erpnext/sandbox/testdata/stock_entry.py new file mode 100644 index 00000000000..e2d1d71c028 --- /dev/null +++ b/erpnext/sandbox/testdata/stock_entry.py @@ -0,0 +1,32 @@ +from webnotes.model.doc import Document + +mr = [ + Document( + fielddata = { + 'doctype': 'Stock Entry', + 'posting_date': '2011-09-01', + 'transfer_date': '2011-09-01', + 'posting_time': '12:00', + 'company': 'comp', + 'fiscal_year' : '2011-2012', + 'purpose': 'Material Receipt', + 'name': 'ste' + } + ), + Document( + fielddata ={ + 'doctype': 'Stock Entry Detail', + 'parenttype': 'Stock Entry', + 'parentfield' : 'mtn_details', + 'parent' : 'ste', + 'item_code' : 'it', + 't_warehouse' : 'wh1', + 'qty' : 10, + 'transfer_qty' : 10, + 'incoming_rate': 100, + 'stock_uom': 'Nos', + 'conversion_factor': 1, + 'serial_no': 'srno1, srno2, srno3, srno4, srno5, srno6, srno7, srno8, srno9, srno10' + } + ) +] From 88f9cb5d24ae9cef2ad9975f8192674e50e03de7 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 30 Sep 2011 17:20:06 +0530 Subject: [PATCH 62/84] Test case added for MTN --- erpnext/sandbox/test_stock_entry.py | 313 ++++++++++++++---- erpnext/sandbox/testdata/stock_entry.py | 37 ++- .../doctype/stock_ledger/stock_ledger.py | 2 +- 3 files changed, 290 insertions(+), 62 deletions(-) diff --git a/erpnext/sandbox/test_stock_entry.py b/erpnext/sandbox/test_stock_entry.py index 273c4424a18..44e1405ac69 100644 --- a/erpnext/sandbox/test_stock_entry.py +++ b/erpnext/sandbox/test_stock_entry.py @@ -8,90 +8,182 @@ webnotes.user = webnotes.profile.Profile() from webnotes.model.doc import Document from webnotes.model.code import get_obj from webnotes.utils import cstr, flt +from webnotes.model.doclist import getlist sql = webnotes.conn.sql from sandbox.testdata.masters import * from sandbox.testdata import stock_entry #---------------------------------------------------------- + class TestStockEntry(unittest.TestCase): + #=========================================================================== + def assertDoc(self, lst): + """assert all values""" + for d in lst: + cl, vl = [], [] + for k in d.keys(): + if k!='doctype': + cl.append('%s=%s' % (k, '%s')) + vl.append(d[k]) + + self.assertTrue(sql("select name from `tab%s` where %s limit 1" % (d['doctype'], ' and '.join(cl)), vl)) + + #=========================================================================== + def assertCount(self, lst): + """assert all values""" + for d in lst: + cl, vl = [], [] + for k in d[0].keys(): + if k!='doctype': + cl.append('%s=%s' % (k, '%s')) + vl.append(d[0][k]) + + self.assertTrue(sql("select count(name) from `tab%s` where %s limit 1" % (d[0]['doctype'], ' and '.join(cl)), vl)[0][0] == d[1]) + + #=========================================================================== def setUp(self): print "=====================================" - webnotes.conn.begin() - + webnotes.conn.begin() create_master_records() print 'Master Data Created' - for each in stock_entry.mr: + #=========================================================================== + # Purpose: Material Receipt + #=========================================================================== + def test_mr_onsubmit(self): + print "Test Case: Stock Entry submission" + self.save_stock_entry('Material Receipt') + + mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) + self.submit_stock_entry(mr) + + # stock ledger entry + print "Checking stock ledger entry........." + self.assertDoc(self.get_expected_sle('mr_submit')) + + # bin qty + print "Checking Bin qty........." + self.assertDoc([{'doctype':'Bin', 'actual_qty':10, 'item_code':'it', 'warehouse':'wh1'}]) + + # serial no + self.assertCount([[{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': 'wh1', 'status': 'In Store', 'docstatus': 0}, 10]]) + + + #=========================================================================== + def test_mr_oncancel(self): + print "Test Case: Stock Entry Cancellation" + self.save_stock_entry('Material Receipt') + + mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) + self.cancel_stock_entry(mr) + + # stock ledger entry + print "Checking stock ledger entry........." + self.assertDoc(self.get_expected_sle('mr_cancel')) + + # bin qty + print "Checking Bin qty........." + self.assertDoc([{'doctype':'Bin', 'actual_qty':0, 'item_code':'it', 'warehouse':'wh1'}]) + + # serial no + self.assertCount([[{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': '', 'status': 'Not in Use', 'docstatus': 2}, 10]]) + + #=========================================================================== + # Purpose: Material Transafer + #=========================================================================== + def test_mtn_onsubmit(self): + print "Test Case: Stock Entry submission" + + self.save_stock_entry('Material Receipt') + mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) + mr = self.submit_stock_entry(mr) + + self.save_stock_entry('Material Transfer') + mtn = get_obj('Stock Entry', stock_entry.mtn[0].name, with_children=1) + tn = self.submit_stock_entry(mtn) + + # stock ledger entry + print "Checking stock ledger entry........." + self.assertDoc(self.get_expected_sle('mtn_submit')) + + # bin qty + print "Checking Bin qty........." + self.assertDoc([ + {'doctype':'Bin', 'actual_qty':5, 'item_code':'it', 'warehouse':'wh1'}, + {'doctype':'Bin', 'actual_qty':5, 'item_code':'it', 'warehouse':'wh2'} + ]) + + # serial no + self.assertCount([ + [{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': 'wh1', 'status': 'In Store', 'docstatus': 0}, 5], + [{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': 'wh2', 'status': 'In Store', 'docstatus': 0}, 5] + ]) + + #=========================================================================== + def test_mtn_oncancel(self): + print "Test Case: Stock Entry Cancellation" + + self.save_stock_entry('Material Receipt') + mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) + mr = self.submit_stock_entry(mr) + + self.save_stock_entry('Material Transfer') + mtn = get_obj('Stock Entry', stock_entry.mtn[0].name, with_children=1) + self.cancel_stock_entry(mtn) + + # stock ledger entry + print "Checking stock ledger entry........." + self.assertDoc(self.get_expected_sle('mtn_cancel')) + + # bin qty + print "Checking Bin qty........." + self.assertDoc([ + {'doctype':'Bin', 'actual_qty':10, 'item_code':'it', 'warehouse':'wh1'}, + {'doctype':'Bin', 'actual_qty':0, 'item_code':'it', 'warehouse':'wh2'} + ]) + + # serial no + self.assertCount([[{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': 'wh1', 'status': 'In Store', 'docstatus': 0}, 10]]) + + #=========================================================================== + def save_stock_entry(self, t): + if t == 'Material Receipt': + data = stock_entry.mr + elif t == 'Material Transfer': + data = stock_entry.mtn + + for each in data: each.save(1) - for t in stock_entry.mr[1:]: - sql("update `tabStock Entry Detail` set parent = '%s' where name = '%s'" % (stock_entry.mr[0].name, t.name)) + for t in data[1:]: + sql("update `tabStock Entry Detail` set parent = '%s' where name = '%s'" % (data[0].name, t.name)) print "Stock Entry Created" - - #=========================================================================== - def test_stock_entry_onsubmit(self): - print "Test Case: Stock Entry submission" - self.submit_stock_entry() - - expected_sle = (('Stock Entry', stock_entry.mr[0].name, 10, 10, 100, 'No'),) - self.check_sle(expected_sle) - - self.check_bin_qty(10) - self.check_serial_no('submit', 10) #=========================================================================== - def test_stock_entry_oncancel(self): - print "Test Case: Stock Entry Cancellation" - self.cancel_stock_entry() - - expected_sle = ( - ('Stock Entry', stock_entry.mr[0].name, 10, 10, 100, 'Yes'), - ('Stock Entry', stock_entry.mr[0].name, -10, None, None, 'Yes'), - ) - self.check_sle(expected_sle) - - self.check_bin_qty(0) - self.check_serial_no('cancel', 10) - - - #=========================================================================== - def submit_stock_entry(self): - ste1 = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) - ste1.validate() - ste1.on_submit() - - ste1.doc.docstatus = 1 - ste1.doc.save() + def submit_stock_entry(self, ste): + ste.validate() + ste.on_submit() + ste.doc.docstatus = 1 + ste.doc.save() + print "Stock Entry Submitted" - + return ste #=========================================================================== - def cancel_stock_entry(self): - self.submit_stock_entry() + def cancel_stock_entry(self, ste): + ste = self.submit_stock_entry(ste) - ste1 = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) - ste1.on_cancel() + ste.on_cancel() - ste1.doc.cancel_reason = "testing" - ste1.doc.docstatus = 2 - ste1.doc.save() + ste.doc.cancel_reason = "testing" + ste.doc.docstatus = 2 + ste.doc.save() print "Stock Entry Cancelled" - - #=========================================================================== - def check_sle(self, expected): - print "Checking stock ledger entry........." - sle = sql("select voucher_type, voucher_no, actual_qty, bin_aqat, valuation_rate, is_cancelled from `tabStock Ledger Entry` where item_code = 'it' and warehouse = 'wh1'") - self.assertTrue(sle == expected) - - #=========================================================================== - def check_bin_qty(self, expected_qty): - print "Checking Bin qty........." - bin_qty = sql("select actual_qty from tabBin where item_code = 'it' and warehouse = 'wh1'") - self.assertTrue(bin_qty[0][0] == expected_qty) + return ste #=========================================================================== def check_serial_no(self, action, cnt): @@ -104,7 +196,110 @@ class TestStockEntry(unittest.TestCase): ser = sql("select count(name) from `tabSerial No` where item_code = 'it' and warehouse = '%s' and status = '%s' and docstatus = %s" % (wh, status, docstatus)) self.assertTrue(ser[0][0] == cnt) - + #=========================================================================== def tearDown(self): webnotes.conn.rollback() + + + # Expected Result Set + #=================================================================================================== + def get_expected_sle(self, action): + expected_sle = { + 'mr_submit': [{ + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh1', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mr[0].name, + 'actual_qty': 10, + 'bin_aqat': 10, + 'valuation_rate': 100, + 'is_cancelled': 'No' + }], + 'mr_cancel': [{ + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh1', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mr[0].name, + 'actual_qty': 10, + 'bin_aqat': 10, + 'valuation_rate': 100, + 'is_cancelled': 'Yes' + },{ + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh1', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mr[0].name, + 'actual_qty': -10, + 'ifnull(bin_aqat, 0)': 0, + 'ifnull(valuation_rate, 0)': 0, + "ifnull(is_cancelled, 'No')": 'Yes' + }], + 'mtn_submit': [{ + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh1', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mtn[0].name, + 'actual_qty': -5, + 'bin_aqat': 5, + 'valuation_rate': 100, + 'is_cancelled': 'No' + }, { + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh2', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mtn[0].name, + 'actual_qty': 5, + 'bin_aqat': 5, + 'valuation_rate': 100, + 'is_cancelled': 'No' + }], + 'mtn_cancel': [{ + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh1', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mtn[0].name, + 'actual_qty': -5, + 'bin_aqat': 5, + #'valuation_rate': 100, + 'is_cancelled': 'Yes' + }, { + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh2', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mtn[0].name, + 'actual_qty': 5, + 'bin_aqat': 5, + 'valuation_rate': 100, + 'is_cancelled': 'Yes' + }, { + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh1', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mtn[0].name, + 'actual_qty': 5, + #'bin_aqat': 10, + #'valuation_rate': 100, + 'is_cancelled': 'Yes' + }, { + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh2', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mtn[0].name, + 'actual_qty': -5, + #'bin_aqat': 0, + #'valuation_rate': 100, + 'is_cancelled': 'Yes' + }] + } + + return expected_sle[action] diff --git a/erpnext/sandbox/testdata/stock_entry.py b/erpnext/sandbox/testdata/stock_entry.py index e2d1d71c028..b224774c899 100644 --- a/erpnext/sandbox/testdata/stock_entry.py +++ b/erpnext/sandbox/testdata/stock_entry.py @@ -10,7 +10,7 @@ mr = [ 'company': 'comp', 'fiscal_year' : '2011-2012', 'purpose': 'Material Receipt', - 'name': 'ste' + 'name': 'mr' } ), Document( @@ -18,7 +18,7 @@ mr = [ 'doctype': 'Stock Entry Detail', 'parenttype': 'Stock Entry', 'parentfield' : 'mtn_details', - 'parent' : 'ste', + 'parent' : 'mr', 'item_code' : 'it', 't_warehouse' : 'wh1', 'qty' : 10, @@ -30,3 +30,36 @@ mr = [ } ) ] + + +mtn = [ + Document( + fielddata = { + 'doctype': 'Stock Entry', + 'posting_date': '2011-09-01', + 'transfer_date': '2011-09-01', + 'posting_time': '13:00', + 'company': 'comp', + 'fiscal_year' : '2011-2012', + 'purpose': 'Material Transfer', + 'name': 'mtn' + } + ), + Document( + fielddata ={ + 'doctype': 'Stock Entry Detail', + 'parenttype': 'Stock Entry', + 'parentfield' : 'mtn_details', + 'parent' : 'mtn', + 'item_code' : 'it', + 's_warehouse' : 'wh1', + 't_warehouse' : 'wh2', + 'qty' : 5, + 'transfer_qty' : 5, + 'incoming_rate': 100, + 'stock_uom': 'Nos', + 'conversion_factor': 1, + 'serial_no': 'srno1, srno2, srno3, srno4, srno5' + } + ) +] diff --git a/erpnext/stock/doctype/stock_ledger/stock_ledger.py b/erpnext/stock/doctype/stock_ledger/stock_ledger.py index c1bfa968d34..5165cc9dbc0 100644 --- a/erpnext/stock/doctype/stock_ledger/stock_ledger.py +++ b/erpnext/stock/doctype/stock_ledger/stock_ledger.py @@ -185,7 +185,7 @@ class DocType: self.check_serial_no_exists(serial_no, d.item_code) self.set_delivery_serial_no_values(obj, serial_no) else: - sql("update `tabSerial No` set docstatus = 0, status = 'In Store', delivery_document_type = '', delivery_document_no = '', delivery_date = '', customer = null, customer_name = '', delivery_address = '', territory = null where name = '%s'" % (serial_no)) + sql("update `tabSerial No` set docstatus = 0, status = 'In Store', delivery_document_type = '', delivery_document_no = '', delivery_date = null, customer = null, customer_name = '', delivery_address = '', territory = null where name = '%s'" % (serial_no)) # --------------------- From 88e5170bd0f1aacf651c38e1dfea383da87b4b85 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 30 Sep 2011 17:21:41 +0530 Subject: [PATCH 63/84] Test case added for MTN --- erpnext/sandbox/test_stock_entry.py | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/erpnext/sandbox/test_stock_entry.py b/erpnext/sandbox/test_stock_entry.py index 44e1405ac69..0f986a89257 100644 --- a/erpnext/sandbox/test_stock_entry.py +++ b/erpnext/sandbox/test_stock_entry.py @@ -185,18 +185,6 @@ class TestStockEntry(unittest.TestCase): print "Stock Entry Cancelled" return ste - #=========================================================================== - def check_serial_no(self, action, cnt): - print "Checking serial nos........" - if action == 'submit': - status, wh, docstatus = 'In Store', 'wh1', 0 - else: - status, wh, docstatus = 'Not in Use', '', 2 - - ser = sql("select count(name) from `tabSerial No` where item_code = 'it' and warehouse = '%s' and status = '%s' and docstatus = %s" % (wh, status, docstatus)) - - self.assertTrue(ser[0][0] == cnt) - #=========================================================================== def tearDown(self): webnotes.conn.rollback() @@ -267,7 +255,6 @@ class TestStockEntry(unittest.TestCase): 'voucher_no': stock_entry.mtn[0].name, 'actual_qty': -5, 'bin_aqat': 5, - #'valuation_rate': 100, 'is_cancelled': 'Yes' }, { 'doctype': 'Stock Ledger Entry', @@ -286,8 +273,6 @@ class TestStockEntry(unittest.TestCase): 'voucher_type': 'Stock Entry', 'voucher_no': stock_entry.mtn[0].name, 'actual_qty': 5, - #'bin_aqat': 10, - #'valuation_rate': 100, 'is_cancelled': 'Yes' }, { 'doctype': 'Stock Ledger Entry', @@ -296,8 +281,6 @@ class TestStockEntry(unittest.TestCase): 'voucher_type': 'Stock Entry', 'voucher_no': stock_entry.mtn[0].name, 'actual_qty': -5, - #'bin_aqat': 0, - #'valuation_rate': 100, 'is_cancelled': 'Yes' }] } From 61985ac5fa3c0d17af6ceb2f9c0a1c673e13780a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 30 Sep 2011 17:46:08 +0530 Subject: [PATCH 64/84] get_query modified for item in quotation --- erpnext/selling/doctype/quotation/quotation.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index 0732e45dc6c..21eceb9c612 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -314,9 +314,9 @@ cur_frm.fields_dict['quotation_details'].grid.get_field('item_code').get_query= var d = locals[cdt][cdn]; var cond = (doc.order_type == 'Maintenance')? " and tabItem.is_service_item = 'Yes'" : " and tabItem.is_sales_item = 'Yes'" if(doc.customer) - return repl("SELECT i.name,i.item_code,concat('Last quoted at - ',cast(quote_rate as char)) as quote_rate,concat('Last sold at - ',cast(sales_rate as char)) as sales_rate FROM\ + return repl("SELECT i.name,i.item_code,concat('Last quoted at - ',cast(quote_rate as char)) as quote_rate,concat('Last sold at - ',cast(sales_rate as char)) as sales_rate, i.item_name, i.description FROM\ (\ - select item_code,name from tabItem where tabItem.%(key)s like '%s' %(cond)s\ + select item_code,name, item_name, description from tabItem where tabItem.%(key)s like '%s' %(cond)s\ )i\ left join\ (\ @@ -339,5 +339,5 @@ cur_frm.fields_dict['quotation_details'].grid.get_field('item_code').get_query= )m where r.item_code=m.item_code and r.voucher_date=m.voucher_date\ )s on i.item_code=s.item_code ORDER BY item_code LIMIT 50",{cust:doc.customer, cond:cond}); else - return repl("SELECT name, item_code FROM tabItem WHERE `tabItem`.%(key)s LIKE '%s' %(cond)s ORDER BY tabItem.item_code DESC LIMIT 50", {cond:cond}); + return repl("SELECT name, item_name, description FROM tabItem WHERE `tabItem`.%(key)s LIKE '%s' %(cond)s ORDER BY tabItem.item_code DESC LIMIT 50", {cond:cond}); } From a970b11cfb1a0d31f08ba9490edda3c99f9460f9 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 30 Sep 2011 18:05:08 +0530 Subject: [PATCH 65/84] Test case added for Material Issue --- erpnext/sandbox/test_stock_entry.py | 100 +++++++++++++++++++++++- erpnext/sandbox/testdata/stock_entry.py | 39 +++++++++ 2 files changed, 135 insertions(+), 4 deletions(-) diff --git a/erpnext/sandbox/test_stock_entry.py b/erpnext/sandbox/test_stock_entry.py index 0f986a89257..f1035bc455a 100644 --- a/erpnext/sandbox/test_stock_entry.py +++ b/erpnext/sandbox/test_stock_entry.py @@ -52,7 +52,7 @@ class TestStockEntry(unittest.TestCase): # Purpose: Material Receipt #=========================================================================== def test_mr_onsubmit(self): - print "Test Case: Stock Entry submission" + print "Test Case: Material Receipt submission" self.save_stock_entry('Material Receipt') mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) @@ -72,7 +72,7 @@ class TestStockEntry(unittest.TestCase): #=========================================================================== def test_mr_oncancel(self): - print "Test Case: Stock Entry Cancellation" + print "Test Case: Material Receipt Cancellation" self.save_stock_entry('Material Receipt') mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) @@ -93,7 +93,7 @@ class TestStockEntry(unittest.TestCase): # Purpose: Material Transafer #=========================================================================== def test_mtn_onsubmit(self): - print "Test Case: Stock Entry submission" + print "Test Case: Material Transfer Note submission" self.save_stock_entry('Material Receipt') mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) @@ -122,7 +122,7 @@ class TestStockEntry(unittest.TestCase): #=========================================================================== def test_mtn_oncancel(self): - print "Test Case: Stock Entry Cancellation" + print "Test Case: Material Transfer Note Cancellation" self.save_stock_entry('Material Receipt') mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) @@ -145,6 +145,64 @@ class TestStockEntry(unittest.TestCase): # serial no self.assertCount([[{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': 'wh1', 'status': 'In Store', 'docstatus': 0}, 10]]) + +#=========================================================================== + # Purpose: Material Issue + #=========================================================================== + def test_mi_onsubmit(self): + print "Test Case: Material Issue submission" + + self.save_stock_entry('Material Receipt') + mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) + mr = self.submit_stock_entry(mr) + + self.save_stock_entry('Material Issue') + mi = get_obj('Stock Entry', stock_entry.mi[0].name, with_children=1) + mi = self.submit_stock_entry(mi) + + # stock ledger entry + print "Checking stock ledger entry........." + self.assertDoc(self.get_expected_sle('mi_submit')) + + # bin qty + print "Checking Bin qty........." + self.assertDoc([ + {'doctype':'Bin', 'actual_qty':6, 'item_code':'it', 'warehouse':'wh1'} + ]) + + # serial no + self.assertCount([ + [{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': 'wh1', 'status': 'In Store', 'docstatus': 0}, 6] + ]) + + #=========================================================================== + def test_mi_oncancel(self): + print "Test Case: Material Issue Cancellation" + + self.save_stock_entry('Material Receipt') + mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1) + mr = self.submit_stock_entry(mr) + + self.save_stock_entry('Material Issue') + mi = get_obj('Stock Entry', stock_entry.mi[0].name, with_children=1) + self.cancel_stock_entry(mi) + + # stock ledger entry + print "Checking stock ledger entry........." + self.assertDoc(self.get_expected_sle('mi_cancel')) + + # bin qty + print "Checking Bin qty........." + self.assertDoc([ + {'doctype':'Bin', 'actual_qty':10, 'item_code':'it', 'warehouse':'wh1'} + ]) + + # serial no + self.assertCount([ + [{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': 'wh1', 'status': 'In Store', 'docstatus': 0}, 10] + ]) + + #=========================================================================== def save_stock_entry(self, t): @@ -152,6 +210,8 @@ class TestStockEntry(unittest.TestCase): data = stock_entry.mr elif t == 'Material Transfer': data = stock_entry.mtn + elif t == 'Material Issue': + data = stock_entry.mi for each in data: each.save(1) @@ -282,7 +342,39 @@ class TestStockEntry(unittest.TestCase): 'voucher_no': stock_entry.mtn[0].name, 'actual_qty': -5, 'is_cancelled': 'Yes' + }], + 'mi_submit': [{'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh1', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mi[0].name, + 'actual_qty': -4, + 'bin_aqat': 6, + 'valuation_rate': 100, + 'is_cancelled': 'No' + }], + 'mi_cancel': [{ + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh1', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mi[0].name, + 'actual_qty': -4, + 'bin_aqat': 6, + 'valuation_rate': 100, + 'is_cancelled': 'Yes' + },{ + 'doctype': 'Stock Ledger Entry', + 'item_code':'it', + 'warehouse':'wh1', + 'voucher_type': 'Stock Entry', + 'voucher_no': stock_entry.mi[0].name, + 'actual_qty': 4, + 'ifnull(bin_aqat, 0)': 0, + 'ifnull(valuation_rate, 0)': 0, + "ifnull(is_cancelled, 'No')": 'Yes' }] + } return expected_sle[action] diff --git a/erpnext/sandbox/testdata/stock_entry.py b/erpnext/sandbox/testdata/stock_entry.py index b224774c899..8f2a30c64af 100644 --- a/erpnext/sandbox/testdata/stock_entry.py +++ b/erpnext/sandbox/testdata/stock_entry.py @@ -1,5 +1,8 @@ from webnotes.model.doc import Document +# Material Receipt +#----------------------- + mr = [ Document( fielddata = { @@ -31,6 +34,8 @@ mr = [ ) ] +# Material Transfer +#-------------------- mtn = [ Document( @@ -63,3 +68,37 @@ mtn = [ } ) ] + +# Material Issue +#-------------------- + +mi = [ + Document( + fielddata = { + 'doctype': 'Stock Entry', + 'posting_date': '2011-09-01', + 'transfer_date': '2011-09-01', + 'posting_time': '14:00', + 'company': 'comp', + 'fiscal_year' : '2011-2012', + 'purpose': 'Material Issue', + 'name': 'mi' + } + ), + Document( + fielddata ={ + 'doctype': 'Stock Entry Detail', + 'parenttype': 'Stock Entry', + 'parentfield' : 'mtn_details', + 'parent' : 'mi', + 'item_code' : 'it', + 's_warehouse' : 'wh1', + 'qty' : 4, + 'transfer_qty' : 4, + 'incoming_rate': 100, + 'stock_uom': 'Nos', + 'conversion_factor': 1, + 'serial_no': 'srno1, srno2, srno3, srno4' + } + ) +] From b30c4a66117f387a3eb4ef0104c395171c10931c Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 5 Oct 2011 11:36:16 +0530 Subject: [PATCH 66/84] Fieldname changed in Features Setup --- erpnext/patches/patch.py | 36 ++++++++- .../doctype/features_setup/features_setup.txt | 43 +++++----- erpnext/startup/startup.js | 81 ++++++++----------- 3 files changed, 91 insertions(+), 69 deletions(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index 2f826d54e73..195c4579ba5 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 374 +last_patch = 376 #------------------------------------------- @@ -386,3 +386,37 @@ def execute(patch_no): reload_doc('accounts', 'doctype', 'internal_reconciliation') reload_doc('accounts', 'doctype', 'ir_payment_detail') reload_doc('accounts', 'Module Def', 'Accounts') + elif patch_no == 375: + from webnotes.modules.module_manager import reload_doc + + reload_doc('setup', 'doctype','features_setup') + flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos'] + + for f in flds: + val = sql("select value from tabSingles where field = '%s' and doctype = 'Features Setup'" % f) + val = val and val[0][0] or 0 + sql("update `tabSingles` set `value` = %s where `field` = '%s' and doctype = 'Features Setup'" % (val, '__'+f)) + + st = "'"+"', '".join(flds)+"'" + sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st) + sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st) + + get_obj('Features Setup', 'Features Setup').doc.save() + + elif patch_no == 376: + from webnotes.modules.module_manager import reload_doc + + reload_doc('setup', 'doctype','features_setup') + flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos'] + + for f in flds: + val = sql("select value from tabSingles where field = '%s' and doctype = 'Features Setup'" % f) + val = val and val[0][0] or 0 + sql("update `tabSingles` set `value` = %s where `field` = '%s' and doctype = 'Features Setup'" % (val, 'fs_'+f)) + + st = "'__"+"', '__".join(flds)+"'" + + sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st) + sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st) + + get_obj('Features Setup', 'Features Setup').doc.save() diff --git a/erpnext/setup/doctype/features_setup/features_setup.txt b/erpnext/setup/doctype/features_setup/features_setup.txt index 224d175a0b5..909882eed97 100644 --- a/erpnext/setup/doctype/features_setup/features_setup.txt +++ b/erpnext/setup/doctype/features_setup/features_setup.txt @@ -3,17 +3,18 @@ # These values are common in all dictionaries { - 'creation': '2011-08-25 16:53:56', + 'creation': '2011-09-07 11:59:05', 'docstatus': 0, - 'modified': '2011-08-31 15:05:53', + 'modified': '2011-10-05 10:50:17', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1314783102', + '_last_update': '1317790484', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'issingle': 1, 'module': 'Setup', @@ -21,7 +22,7 @@ 'name_case': 'Title Case', 'section_style': 'Simple', 'show_in_menu': 1, - 'version': 16 + 'version': 21 }, # These values are common for all DocField @@ -77,7 +78,7 @@ 'colour': 'White:FFF', 'description': 'To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.', 'doctype': 'DocField', - 'fieldname': 'item_searial_nos', + 'fieldname': 'fs_item_serial_nos', 'fieldtype': 'Check', 'label': 'Item Serial Nos' }, @@ -87,7 +88,7 @@ 'colour': 'White:FFF', 'description': 'To track items in sales and purchase documents with batch nos
Preferred Industry: Chemicals etc', 'doctype': 'DocField', - 'fieldname': 'item_batch_nos', + 'fieldname': 'fs_item_batch_nos', 'fieldtype': 'Check', 'label': 'Item Batch Nos' }, @@ -97,7 +98,7 @@ 'colour': 'White:FFF', 'description': 'To track brand name in the following documents
\nDelivery Note, Enuiry, Indent, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Receivable Voucher, Sales BOM, Sales Order, Serial No', 'doctype': 'DocField', - 'fieldname': 'brands', + 'fieldname': 'fs_brands', 'fieldtype': 'Check', 'label': 'Brands' }, @@ -113,7 +114,7 @@ 'colour': 'White:FFF', 'description': '1. To maintain the customer wise item code and to make them searchable based on their code use this option', 'doctype': 'DocField', - 'fieldname': 'item_advanced', + 'fieldname': 'fs_item_advanced', 'fieldtype': 'Check', 'label': 'Item Advanced' }, @@ -123,7 +124,7 @@ 'colour': 'White:FFF', 'description': 'If Sale BOM is defined, the actual BOM of the Pack is displayed as table.\nAvailable in Delivery Note and Sales Order', 'doctype': 'DocField', - 'fieldname': 'packing_details', + 'fieldname': 'fs_packing_details', 'fieldtype': 'Check', 'label': 'Packing Detials' }, @@ -133,7 +134,7 @@ 'colour': 'White:FFF', 'description': 'To get Item Group in details table', 'doctype': 'DocField', - 'fieldname': 'item_group_in_details', + 'fieldname': 'fs_item_group_in_details', 'fieldtype': 'Check', 'label': 'Item Groups in Details' }, @@ -150,7 +151,7 @@ 'colour': 'White:FFF', 'description': 'All export related fields like currency, conversion rate, export total, export grand total etc are available in
\nDelivery Note, POS, Quotation, Sales Invoice, Sales Order etc.', 'doctype': 'DocField', - 'fieldname': 'exports', + 'fieldname': 'fs_exports', 'fieldtype': 'Check', 'label': 'Exports' }, @@ -160,7 +161,7 @@ 'colour': 'White:FFF', 'description': 'All import related fields like currency, conversion rate, import total, import grand total etc are available in
\nPurchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.', 'doctype': 'DocField', - 'fieldname': 'imports', + 'fieldname': 'fs_imports', 'fieldtype': 'Check', 'label': 'Imports' }, @@ -176,7 +177,7 @@ 'colour': 'White:FFF', 'description': 'Field available in Delivery Note, Quotation, Receivable Voucher, Sales Order', 'doctype': 'DocField', - 'fieldname': 'discounts', + 'fieldname': 'fs_discounts', 'fieldtype': 'Check', 'label': 'Discounts' }, @@ -186,7 +187,7 @@ 'colour': 'White:FFF', 'description': 'To track any installation or commissioning related work after sales', 'doctype': 'DocField', - 'fieldname': 'after_sales_installations', + 'fieldname': 'fs_after_sales_installations', 'fieldtype': 'Check', 'label': 'After Sale Installations' }, @@ -195,7 +196,7 @@ { 'description': 'Available in \nBill Of Materials, Delivery Note, Payable Voucher, Production Order, Purchase Order, Purchase Receipt, Receivable Voucher, Sales Order, Stock Entry, Timesheet', 'doctype': 'DocField', - 'fieldname': 'projects', + 'fieldname': 'fs_projects', 'fieldtype': 'Check', 'label': 'Projects' }, @@ -205,7 +206,7 @@ 'colour': 'White:FFF', 'description': 'If you have Sales Team and Sale Partners (Channel Partners) they can be tagged and maintain their contribution in the sales activity', 'doctype': 'DocField', - 'fieldname': 'sales_extras', + 'fieldname': 'fs_sales_extras', 'fieldtype': 'Check', 'label': 'Sales Extras' }, @@ -222,7 +223,7 @@ 'colour': 'White:FFF', 'description': 'If you involve in manufacturing activity
\nEnables item Is Manufactured', 'doctype': 'DocField', - 'fieldname': 'manufacturing', + 'fieldname': 'fs_manufacturing', 'fieldtype': 'Check', 'label': 'Manufacturing' }, @@ -238,7 +239,7 @@ 'colour': 'White:FFF', 'description': 'If you follow Quality Inspection
\nEnables item QA Required and QA No in Purchase Receipt', 'doctype': 'DocField', - 'fieldname': 'quality', + 'fieldname': 'fs_quality', 'fieldtype': 'Check', 'label': 'Quality' }, @@ -248,7 +249,7 @@ 'colour': 'White:FFF', 'description': 'To enable Point of Sale features', 'doctype': 'DocField', - 'fieldname': 'pos', + 'fieldname': 'fs_pos', 'fieldtype': 'Check', 'label': 'Point of Sale' }, @@ -265,7 +266,7 @@ 'colour': 'White:FFF', 'description': 'If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page', 'doctype': 'DocField', - 'fieldname': 'page_break', + 'fieldname': 'fs_page_break', 'fieldtype': 'Check', 'label': 'Page Break' }, @@ -281,7 +282,7 @@ 'colour': 'White:FFF', 'description': 'Enables More Info. in all documents', 'doctype': 'DocField', - 'fieldname': 'more_info', + 'fieldname': 'fs_more_info', 'fieldtype': 'Check', 'label': 'More Info' } diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js index a6bc5944180..a0661ae06f6 100644 --- a/erpnext/startup/startup.js +++ b/erpnext/startup/startup.js @@ -43,7 +43,18 @@ function startup_setup() { // ------------------ $dh(page_body.footer); - pscript.startup_setup_toolbar(); + // for logout and payment + var callback = function(r,rt) { + if(r.message){ + login_file = 'http://' + r.message; + } + else if(pscript.is_erpnext_saas) { + login_file = 'https://www.erpnext.com'; + } + // setup toolbar + pscript.startup_setup_toolbar(); + } + $c_obj('Home Control', 'get_login_url', '', callback); } // ==================================================================== @@ -52,15 +63,6 @@ pscript.startup_make_sidebar = function() { $y(page_body.left_sidebar, {width:(100/6)+'%', paddingTop:'8px'}); var callback = function(r,rt) { - // login url - if(r.login_url){ - login_file = 'http://' + r.message; - } - else if(pscript.is_erpnext_saas) { - login_file = 'https://www.erpnext.com'; - } - - // menu var ml = r.message; @@ -112,7 +114,6 @@ pscript.select_sidebar_menu = function(t, dt, dn) { var body_background = '#e2e2e2'; MenuPointer = function(parent, label) { - var me = this; this.wrapper = $a(parent, 'div', '', {padding:'0px', cursor:'pointer', margin:'2px 0px'}); $br(this.wrapper, '3px'); @@ -124,21 +125,15 @@ MenuPointer = function(parent, label) { // triangle border (?) this.tab.triangle_div = $a($td(this.tab, 0, 1), 'div','', { - borderColor: body_background, + borderColor: body_background + ' ' + body_background + ' ' + body_background + ' ' + 'transparent', borderWidth:'11px', borderStyle:'solid', height:'0px', width:'0px', marginRight:'-11px'}); this.label_area = $a($td(this.tab, 0, 0), 'span', '', '', label); $(this.wrapper) .hover( - function() { - if(!me.selected) - $y(me.label_area, {'color':'#000'}); - }, - function() { - if(!me.selected) - $y(me.label_area, {'color':'#444'}); - } + function() { if(!this.selected)$bg(this, '#eee'); } , + function() { if(!this.selected)$bg(this, body_background); } ) $y($td(this.tab, 0, 0), {borderBottom:'1px solid #ddd'}); @@ -148,8 +143,7 @@ MenuPointer = function(parent, label) { // ==================================================================== MenuPointer.prototype.select = function(grey) { - $y($td(this.tab, 0, 0), {borderBottom:'0px solid #000'}); - $y(this.label_area, {'color':'#fff'}); + $y($td(this.tab, 0, 0), {color:'#fff', borderBottom:'0px solid #000'}); //$gr(this.wrapper, '#F84', '#F63'); $gr(this.wrapper, '#888', '#666'); this.selected = 1; @@ -157,21 +151,14 @@ MenuPointer.prototype.select = function(grey) { if(cur_menu_pointer && cur_menu_pointer != this) cur_menu_pointer.deselect(); - $y(this.tab.triangle_div, {borderColor: - body_background + ' ' + body_background + ' ' + body_background + ' ' + 'transparent'}) - cur_menu_pointer = this; } // ==================================================================== MenuPointer.prototype.deselect = function() { - $y($td(this.tab, 0, 0), {borderBottom:'1px solid #ddd'}); - $y(this.label_area, {'color':'#444'}); - - + $y($td(this.tab, 0, 0), {color:'#444', borderBottom:'1px solid #ddd'}); $gr(this.wrapper, body_background, body_background); - $y(this.tab.triangle_div, {borderColor: body_background}); this.selected = 0; } @@ -565,7 +552,7 @@ Dictionary Format } // ====================================================================*/ pscript.feature_dict = { - 'projects': { + 'fs_projects': { 'Bill Of Materials': {'fields':['project_name']}, 'Delivery Note': {'fields':['project_name']}, 'Payable Voucher': {'fields':['project_name']}, @@ -577,17 +564,17 @@ pscript.feature_dict = { 'Stock Entry': {'fields':['project_name']}, 'Timesheet': {'timesheet_details':['project_name']} }, - 'packing_details': { + 'fs_packing_details': { 'Delivery Note': {'fields':['packing_details','print_packing_slip'],'delivery_note_details':['no_of_packs','pack_gross_wt','pack_nett_wt','pack_no','pack_unit']}, 'Sales Order': {'fields':['packing_details']} }, - 'discounts': { + 'fs_discounts': { 'Delivery Note': {'delivery_note_details':['adj_rate']}, 'Quotation': {'quotation_details':['adj_rate']}, 'Receivable Voucher': {'entries':['adj_rate']}, 'Sales Order': {'sales_order_details':['adj_rate','ref_rate']} }, - 'brands': { + 'fs_brands': { 'Delivery Note': {'delivery_note_details':['brand']}, 'Indent': {'indent_details':['brand']}, 'Item': {'fields':['brand']}, @@ -599,10 +586,10 @@ pscript.feature_dict = { 'Sales Order': {'sales_order_details':['brand']}, 'Serial No': {'fields':['brand']} }, - 'after_sales_installations': { + 'fs_after_sales_installations': { 'Delivery Note': {'fields':['installation_status','per_installed'],'delivery_note_details':['installed_qty']} }, - 'item_batch_nos': { + 'fs_item_batch_nos': { 'Delivery Note': {'delivery_note_details':['batch_no']}, 'Item': {'fields':['has_batch_no']}, 'Purchase Receipt': {'purchase_receipt_details':['batch_no']}, @@ -612,7 +599,7 @@ pscript.feature_dict = { 'Stock Entry': {'mtn_details':['batch_no']}, 'Stock Ledger Entry': {'fields':['batch_no']} }, - 'item_serial_nos': { + 'fs_item_serial_nos': { 'Customer Issue': {'fields':['serial_no']}, 'Delivery Note': {'delivery_note_details':['serial_no'],'packing_details':['serial_no']}, 'Installation Note': {'installed_item_details':['serial_no']}, @@ -626,7 +613,7 @@ pscript.feature_dict = { 'Stock Entry': {'mtn_details':['serial_no']}, 'Stock Ledger Entry': {'fields':['serial_no']} }, - 'item_group_in_details': { + 'fs_item_group_in_details': { 'Delivery Note': {'delivery_note_details':['item_group']}, 'Enquiry': {'enquiry_details':['item_group']}, 'Indent': {'indent_details':['item_group']}, @@ -644,7 +631,7 @@ pscript.feature_dict = { 'Sales Person': {'target_details':['item_group']}, 'Territory': {'target_details':['item_group']} }, - 'page_break': { + 'fs_page_break': { 'Delivery Note': {'delivery_note_details':['page_break'],'packing_details':['page_break']}, 'Indent': {'indent_details':['page_break']}, 'Purchase Order': {'po_details':['page_break']}, @@ -654,7 +641,7 @@ pscript.feature_dict = { 'Receivable Voucher': {'entries':['page_break']}, 'Sales Order': {'sales_order_details':['page_break']} }, - 'exports': { + 'fs_exports': { 'Delivery Note': {'fields':['Note','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'delivery_note_details':['base_ref_rate','export_amount','export_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','export_amount','export_rate']}, @@ -663,16 +650,16 @@ pscript.feature_dict = { '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','export_amount','export_rate']} }, - 'imports': { + 'fs_imports': { 'Payable Voucher': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'entries':['import_amount','import_rate']}, 'Purchase Order': {'fields':['Note HTML','conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'po_details':['import_amount','import_rate']}, 'Purchase Receipt': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'purchase_receipt_details':['import_amount','import_rate']}, 'Supplier Quotation': {'fields':['conversion_rate','currency']} }, - 'item_advanced': { + 'fs_item_advanced': { 'Item': {'fields':['item_customer_details']} }, - 'sales_extras': { + 'fs_sales_extras': { 'Address': {'fields':['sales_partner']}, 'Contact': {'fields':['sales_partner']}, 'Customer': {'fields':['sales_team']}, @@ -681,7 +668,7 @@ pscript.feature_dict = { 'Receivable Voucher': {'fields':['sales_team']}, 'Sales Order': {'fields':['sales_team','Packing List']} }, - 'more_info': { + 'fs_more_info': { 'Customer': {'fields':['More Info']}, 'Delivery Note': {'fields':['More Info']}, 'Enquiry': {'fields':['More Info']}, @@ -696,14 +683,14 @@ pscript.feature_dict = { 'Serial No': {'fields':['More Info']}, 'Supplier': {'fields':['More Info']} }, - 'quality': { + 'fs_quality': { 'Item': {'fields':['Item Inspection Criteria','inspection_required']}, 'Purchase Receipt': {'purchase_receipt_details':['qa_no']} }, - 'manufacturing': { + 'fs_manufacturing': { 'Item': {'fields':['Manufacturing']} }, - 'pos': { + 'fs_pos': { 'Receivable Voucher': {'fields':['is_pos']} } } From a55eec137fb1599b695936c97726e6496a4a88aa Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 5 Oct 2011 11:47:08 +0530 Subject: [PATCH 67/84] Fieldname changed in Features Setup --- erpnext/patches/patch.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index 195c4579ba5..2c74c801ac6 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 376 +last_patch = 377 #------------------------------------------- @@ -420,3 +420,6 @@ def execute(patch_no): sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st) get_obj('Features Setup', 'Features Setup').doc.save() + elif patch_no == 377: + sql("delete from `tabDocField` where fieldname = 'item_searial_nos' and parent = 'Features Setup'") + sql("delete from `tabDefaultValue` where defkey = 'item_searial_nos' and parent = 'Control Panel'") From da50c0859c9d347934295a574afc0c67028e5c7b Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 5 Oct 2011 12:10:08 +0530 Subject: [PATCH 68/84] features by default on --- erpnext/patches/patch.py | 10 +++++++++- erpnext/setup/doctype/features_setup/features_setup.py | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index 2c74c801ac6..f8bc45c7f91 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 377 +last_patch = 378 #------------------------------------------- @@ -423,3 +423,11 @@ def execute(patch_no): elif patch_no == 377: sql("delete from `tabDocField` where fieldname = 'item_searial_nos' and parent = 'Features Setup'") sql("delete from `tabDefaultValue` where defkey = 'item_searial_nos' and parent = 'Control Panel'") + elif patch_no == 378: + rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null") + from webnotes.model.code import get_obj + m = get_obj('Features Setup') + for d in rs: + m.doc.fields[d[0]] = 1 + m.doc.save() + m.validate() diff --git a/erpnext/setup/doctype/features_setup/features_setup.py b/erpnext/setup/doctype/features_setup/features_setup.py index 3a549d9e32f..f12d2824fd3 100644 --- a/erpnext/setup/doctype/features_setup/features_setup.py +++ b/erpnext/setup/doctype/features_setup/features_setup.py @@ -8,6 +8,7 @@ class DocType: """ from webnotes.model import default_fields from webnotes.utils import set_default + for key in self.doc.fields: if key not in default_fields: set_default(key, self.doc.fields[key]) From 1971942db8473292e81e369af4a9c429819ef281 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 5 Oct 2011 14:56:16 +0530 Subject: [PATCH 69/84] purchase tax mapping while pulling --- .../doctype/payable_voucher/payable_voucher.js | 6 +++--- .../doctype/payable_voucher/payable_voucher.py | 10 ++-------- .../stock/doctype/purchase_receipt/purchase_receipt.js | 6 +++--- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/erpnext/accounts/doctype/payable_voucher/payable_voucher.js b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js index e3b986d8a1d..5c276835047 100644 --- a/erpnext/accounts/doctype/payable_voucher/payable_voucher.js +++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js @@ -169,10 +169,10 @@ cur_frm.cscript['Recalculate'] = function(doc, dt, dn) { // ----------------- cur_frm.cscript['Get Items'] = function(doc, dt, dn) { var callback = function(r,rt) { - unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']); - refresh_many(['credit_to','supplier','supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email','entries','purchase_receipt_main','purchase_order_main']); + unhide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile','contact_email']); + refresh_many(['credit_to','supplier','supplier_address','contact_person','supplier_name', 'address_display', 'contact_display','contact_mobile', 'contact_email','entries', 'purchase_receipt_main', 'purchase_order_main', 'purchase_tax_details']); } - get_server_fields('pull_details','','',doc, dt, dn,1,callback); + $c_obj(make_doclist(dt,dn),'pull_details','',callback); } diff --git a/erpnext/accounts/doctype/payable_voucher/payable_voucher.py b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py index 39544b0d2a6..9f2848ad6f7 100644 --- a/erpnext/accounts/doctype/payable_voucher/payable_voucher.py +++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py @@ -78,19 +78,13 @@ class DocType(TransactionBase): def pull_details(self): if self.doc.purchase_receipt_main: self.validate_duplicate_docname('purchase_receipt') - self.doclist = get_obj('DocType Mapper', 'Purchase Receipt-Payable Voucher').dt_map('Purchase Receipt', 'Payable Voucher', self.doc.purchase_receipt_main, self.doc, self.doclist, "[['Purchase Receipt', 'Payable Voucher'],['Purchase Receipt Detail', 'PV Detail']]") + self.doclist = get_obj('DocType Mapper', 'Purchase Receipt-Payable Voucher').dt_map('Purchase Receipt', 'Payable Voucher', self.doc.purchase_receipt_main, self.doc, self.doclist, "[['Purchase Receipt', 'Payable Voucher'], ['Purchase Receipt Detail', 'PV Detail'], ['Purchase Tax Detail','Purchase Tax Detail']]") elif self.doc.purchase_order_main: self.validate_duplicate_docname('purchase_order') - self.doclist = get_obj('DocType Mapper', 'Purchase Order-Payable Voucher').dt_map('Purchase Order', 'Payable Voucher', self.doc.purchase_order_main, self.doc, self.doclist, "[['Purchase Order', 'Payable Voucher'],['PO Detail', 'PV Detail']]") + self.doclist = get_obj('DocType Mapper', 'Purchase Order-Payable Voucher').dt_map('Purchase Order', 'Payable Voucher', self.doc.purchase_order_main, self.doc, self.doclist, "[['Purchase Order', 'Payable Voucher'],['PO Detail', 'PV Detail'], ['Purchase Tax Detail','Purchase Tax Detail']]") ret = self.get_credit_to() - #self.doc.supplier_name = ret['supplier_name'] - #self.doc.supplier_address = ret['supplier_address'] - - #self.doc.cst_no =ret['cst_no'] - #self.doc.bst_no = ret['bst_no'] - #self.doc.vat_tin_no = ret['vat_tin_no'] if ret.has_key('credit_to'): self.doc.credit_to = ret['credit_to'] diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js index e060e3c564d..f6f4984c840 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js @@ -82,10 +82,10 @@ cur_frm.fields_dict.contact_person.on_new = function(dn) { // ----------------- cur_frm.cscript['Pull Purchase Order Details'] = function(doc, dt, dn) { var callback = function(r,rt) { - unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']); - refresh_many(['supplier','supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email','purchase_receipt_details']); + unhide_field(['supplier_address','contact_person','supplier_name','address_display', 'contact_display', 'contact_mobile','contact_email']); + refresh_many(['supplier','supplier_address','contact_person', 'supplier_name', 'address_display', 'contact_display','contact_mobile', 'contact_email', 'purchase_receipt_details', 'purchase_tax_details']); } - get_server_fields('get_po_details','','',doc, dt, dn,1,callback); + $c_obj(make_doclist(dt,dn),'get_po_details','',callback); } From 5630049d2a2d74697d1dd6f4d775fc98fc7d0a81 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 5 Oct 2011 16:57:36 +0530 Subject: [PATCH 70/84] QA Inspection: get_query --- .../qa_inspection_report.js | 56 ++++++++++++------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js index 67281ee303f..a0ee1dcd6f0 100644 --- a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js +++ b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js @@ -1,26 +1,44 @@ 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); + if (doc.item_code) + get_server_fields('get_purchase_receipt_item_details','','',doc,cdt,cdn,1); } cur_frm.cscript.inspection_type = function(doc, cdt, cdn) { - if(doc.inspection_type == 'Incoming'){ - doc.delivery_note_no = ''; - hide_field('delivery_note_no'); - unhide_field('purchase_receipt_no'); - } - else if(doc.inspection_type == 'Outgoing'){ - doc.purchase_receipt_no = ''; - unhide_field('delivery_note_no'); - hide_field('purchase_receipt_no'); + if(doc.inspection_type == 'Incoming'){ + doc.delivery_note_no = ''; + hide_field('delivery_note_no'); + unhide_field('purchase_receipt_no'); + } + else if(doc.inspection_type == 'Outgoing'){ + doc.purchase_receipt_no = ''; + unhide_field('delivery_note_no'); + hide_field('purchase_receipt_no'); - } - else { - doc.purchase_receipt_no = ''; - doc.delivery_note_no = ''; - hide_field('purchase_receipt_no'); - hide_field('delivery_note_no'); - } + } + else { + doc.purchase_receipt_no = ''; + doc.delivery_note_no = ''; + hide_field('purchase_receipt_no'); + hide_field('delivery_note_no'); + } } -cur_frm.cscript.refresh = cur_frm.cscript.inspection_type; \ No newline at end of file +cur_frm.cscript.refresh = cur_frm.cscript.inspection_type; + +// item code based on GRN/DN +cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) { + if (doc.purchase_receipt_no) + return 'SELECT item_code, item_name, description FROM `tabPurchase Receipt Detail` WHERE parent = "'+ doc.purchase_receipt_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50'; + else if (doc.delivery_note_no) + return 'SELECT item_code, item_name, description FROM `tabDelivery Note Detail` WHERE parent = "'+ doc.delivery_note_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50'; + else + return 'SELECT name, item_name, description FROM tabItem WHERE docstatus != 2 AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50'; +} + +// Serial No based on item_code +cur_frm.fields_dict['item_serial_no'].get_query = function(doc, cdt, cdn) { + if (doc.item_code) + return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND item_code = "' + doc.item_code +'" AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50'; + else + return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50'; +} From c68e0450144e9da8f116cc3dcbbce80d83484e97 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 5 Oct 2011 17:01:16 +0530 Subject: [PATCH 71/84] deleted duplicate button from QA inspection report --- erpnext/patches/patch.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index f8bc45c7f91..aebe6e998bf 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 378 +last_patch = 379 #------------------------------------------- @@ -431,3 +431,6 @@ def execute(patch_no): m.doc.fields[d[0]] = 1 m.doc.save() m.validate() + elif patch_no == 379: + if sql("select count(name) from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button'")[0][0] > 1: + sql("delete from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button' limit 1") From 914491f630265aa51da1a45b0b92ea14894d4c0c Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 6 Oct 2011 10:23:26 +0530 Subject: [PATCH 72/84] deleted duplicate button from QA inspection report --- .../qa_inspection_report.txt | 41 +++++-------------- 1 file changed, 10 insertions(+), 31 deletions(-) diff --git a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt index 10890dc8461..de88e1621ee 100644 --- a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt +++ b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt @@ -5,14 +5,17 @@ { 'creation': '2010-08-08 17:09:17', 'docstatus': 0, - 'modified': '2011-04-08 10:53:33', + 'modified': '2011-10-06 10:22:41', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { + '_last_update': '1317365120', + 'autoname': 'QAI/.######', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'module': 'Buying', 'name': '__common__', @@ -21,7 +24,7 @@ 'section_style': 'Simple', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 37 + 'version': 38 }, # These values are common for all DocField @@ -56,7 +59,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'submit': 1, 'write': 1 @@ -65,7 +67,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 1 }, @@ -73,7 +74,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'QA Inspection', 'no_copy': 0, 'oldfieldtype': 'Section Break', @@ -84,7 +84,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 2, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -95,7 +94,6 @@ 'doctype': 'DocField', 'fieldname': 'naming_series', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Naming Series', 'no_copy': 1, 'options': '\nQAI/11-12/', @@ -109,7 +107,6 @@ 'doctype': 'DocField', 'fieldname': 'inspection_type', 'fieldtype': 'Select', - 'idx': 4, 'in_filter': 1, 'label': 'Inspection Type', 'oldfieldname': 'inspection_type', @@ -125,7 +122,6 @@ 'doctype': 'DocField', 'fieldname': 'report_date', 'fieldtype': 'Date', - 'idx': 5, 'in_filter': 1, 'label': 'Report Date', 'oldfieldname': 'report_date', @@ -142,7 +138,6 @@ 'fieldname': 'item_code', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 6, 'in_filter': 1, 'label': 'Item Code', 'oldfieldname': 'item_code', @@ -159,7 +154,6 @@ 'doctype': 'DocField', 'fieldname': 'sample_size', 'fieldtype': 'Currency', - 'idx': 7, 'in_filter': 0, 'label': 'Sample Size', 'oldfieldname': 'sample_size', @@ -174,7 +168,6 @@ 'doctype': 'DocField', 'fieldname': 'description', 'fieldtype': 'Small Text', - 'idx': 8, 'in_filter': 1, 'label': 'Description', 'oldfieldname': 'description', @@ -188,7 +181,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 9, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -200,14 +192,12 @@ 'fieldname': 'item_serial_no', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 10, 'label': 'Item Serial No', 'oldfieldname': 'item_serial_no', 'oldfieldtype': 'Link', 'options': 'Serial No', 'permlevel': 0, - 'print_hide': 0, - 'search_index': 0 + 'print_hide': 0 }, # DocField @@ -215,13 +205,11 @@ 'doctype': 'DocField', 'fieldname': 'batch_no', 'fieldtype': 'Link', - 'idx': 11, 'label': 'Batch No', 'oldfieldname': 'batch_no', 'oldfieldtype': 'Link', 'options': 'Batch', - 'permlevel': 0, - 'search_index': 0 + 'permlevel': 0 }, # DocField @@ -231,7 +219,6 @@ 'fieldname': 'purchase_receipt_no', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 12, 'in_filter': 1, 'label': 'Purchase Receipt No', 'oldfieldname': 'purchase_receipt_no', @@ -249,7 +236,6 @@ 'fieldname': 'delivery_note_no', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 13, 'in_filter': 1, 'label': 'Delivery Note No', 'oldfieldname': 'delivery_note_no', @@ -257,7 +243,7 @@ 'options': 'Delivery Note', 'permlevel': 0, 'print_hide': 0, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -265,7 +251,6 @@ 'doctype': 'DocField', 'fieldname': 'inspected_by', 'fieldtype': 'Data', - 'idx': 14, 'label': 'Inspected By', 'oldfieldname': 'inspected_by', 'oldfieldtype': 'Data', @@ -278,7 +263,6 @@ 'doctype': 'DocField', 'fieldname': 'remarks', 'fieldtype': 'Text', - 'idx': 15, 'label': 'Remarks', 'no_copy': 1, 'oldfieldname': 'remarks', @@ -291,7 +275,6 @@ 'doctype': 'DocField', 'fieldname': 'verified_by', 'fieldtype': 'Data', - 'idx': 16, 'label': 'Verified By', 'oldfieldname': 'verified_by', 'oldfieldtype': 'Data', @@ -303,8 +286,8 @@ 'doctype': 'DocField', 'fieldname': 'amended_from', 'fieldtype': 'Data', - 'idx': 17, 'label': 'Amended From', + 'no_copy': 1, 'oldfieldname': 'amended_from', 'oldfieldtype': 'Data', 'permlevel': 1, @@ -316,8 +299,8 @@ 'doctype': 'DocField', 'fieldname': 'amendment_date', 'fieldtype': 'Date', - 'idx': 18, 'label': 'Amendment Date', + 'no_copy': 1, 'oldfieldname': 'amendment_date', 'oldfieldtype': 'Date', 'permlevel': 1, @@ -328,7 +311,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 19, 'label': 'Specification Details', 'oldfieldtype': 'Section Break', 'options': 'Simple', @@ -339,9 +321,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 20, 'label': 'Get Specification Details', - 'oldfieldtype': 'Button', 'options': 'get_item_specification_details', 'permlevel': 0 }, @@ -351,7 +331,6 @@ 'doctype': 'DocField', 'fieldname': 'qa_specification_details', 'fieldtype': 'Table', - 'idx': 21, 'label': 'QA Specification Details', 'oldfieldname': 'qa_specification_details', 'oldfieldtype': 'Table', From d08fe6099aab2ee42e8e1a15ac71d2094b18660b Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 7 Oct 2011 12:11:19 +0530 Subject: [PATCH 73/84] map schedule date from po to pr --- .../Purchase Order-Purchase Receipt.txt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt index 3e65b2eaefd..c34f00617d5 100644 --- a/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt +++ b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:09:35', 'docstatus': 0, - 'modified': '2011-09-15 15:04:43', + 'modified': '2011-10-07 12:10:26', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -145,6 +145,14 @@ 'to_field': 'amount' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'schedule_date', + 'match_id': 1, + 'to_field': 'schedule_date' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', From 7a941869ab2ddc4273ce31a0d1144a5f52fd55b8 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 7 Oct 2011 12:30:48 +0530 Subject: [PATCH 74/84] clear cache forcefully --- erpnext/patches/patch.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index aebe6e998bf..72d15525f71 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 379 +last_patch = 380 #------------------------------------------- @@ -434,3 +434,6 @@ def execute(patch_no): elif patch_no == 379: if sql("select count(name) from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button'")[0][0] > 1: sql("delete from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button' limit 1") + elif patch_no == 380: + from webnotes.session_cache import clear_cache + clear_cache(webnotes.session['user']) From ddaa5a33fe5b7bcabfd5b79e29bf8c58d30b221b Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 7 Oct 2011 12:36:13 +0530 Subject: [PATCH 75/84] reload PO-PR mapper --- erpnext/patches/patch.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index 72d15525f71..ae73de8bf9d 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 380 +last_patch = 381 #------------------------------------------- @@ -437,3 +437,5 @@ def execute(patch_no): elif patch_no == 380: from webnotes.session_cache import clear_cache clear_cache(webnotes.session['user']) + elif patch_no == 381: + reload_doc('stock', 'DocType Mapper', 'Purchase Order-Purchase Receipt') From 8e54aa882a6ad4add15c0a74ca61c1e042e2d304 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 7 Oct 2011 19:03:19 +0530 Subject: [PATCH 76/84] patch for page break issue --- erpnext/patches/patch.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index ae73de8bf9d..cc4a164f841 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 381 +last_patch = 382 #------------------------------------------- @@ -439,3 +439,12 @@ def execute(patch_no): clear_cache(webnotes.session['user']) elif patch_no == 381: reload_doc('stock', 'DocType Mapper', 'Purchase Order-Purchase Receipt') + elif patch_no == 382: + flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos'] + + st = "'"+"', '".join(flds)+"'" + sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st) + sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st) + + from webnotes.session_cache import clear_cache + clear_cache(webnotes.session['user']) From 6a0561612f5caa59b1f9d962f58f367b2808f1b1 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 10 Oct 2011 12:23:10 +0530 Subject: [PATCH 77/84] cost center groupto ledger and vice versa --- .../doctype/budget_control/budget_control.js | 59 ----------------- .../doctype/cost_center/cost_center.js | 65 ++++++++++++++----- .../doctype/cost_center/cost_center.py | 29 +++++++++ .../doctype/cost_center/cost_center.txt | 26 +++++++- erpnext/patches/patch.py | 4 +- 5 files changed, 104 insertions(+), 79 deletions(-) delete mode 100644 erpnext/accounts/doctype/budget_control/budget_control.js diff --git a/erpnext/accounts/doctype/budget_control/budget_control.js b/erpnext/accounts/doctype/budget_control/budget_control.js deleted file mode 100644 index 3d4d1c1d8c8..00000000000 --- a/erpnext/accounts/doctype/budget_control/budget_control.js +++ /dev/null @@ -1,59 +0,0 @@ -class DocType: - def __init__(self,d,dl): - self.doc, self.doclist = d, dl - - # Get monthly budget - #------------------- - def get_monthly_budget(self, distribution_id, cfy, st_date, post_dt, budget_allocated): - - # get month_list - st_date, post_dt = getdate(st_date), getdate(post_dt) - - if distribution_id: - if st_date.month <= post_dt.month: - tot_per_allocated = sql("select ifnull(sum(percentage_allocation),0) from `tabBudget Distribution Detail` where parent='%s' and idx between '%s' and '%s'" % (distribution_id, st_date.month, post_dt.month))[0][0] - - if st_date.month > post_dt.month: - - tot_per_allocated = flt(sql("select ifnull(sum(percentage_allocation),0) from `tabBudget Distribution Detail` where parent='%s' and idx between '%s' and '%s'" % (distribution_id, st_date.month, 12 ))[0][0]) - tot_per_allocated = flt(tot_per_allocated) + flt(sql("select ifnull(sum(percentage_allocation),0) from `tabBudget Distribution Detail` where parent='%s' and idx between '%s' and '%s'" % (distribution_id, 1, post_dt.month))[0][0]) - - return (flt(budget_allocated) * flt(tot_per_allocated)) / 100 - period_diff = sql("select PERIOD_DIFF('%s','%s')" % (post_dt.strftime('%Y%m'), st_date.strftime('%Y%m'))) - - return (flt(budget_allocated) * (flt(period_diff[0][0]) + 1)) / 12 - - def validate_budget(self, acct, cost_center, actual, budget, action): - # action if actual exceeds budget - if flt(actual) > flt(budget): - msgprint("Your monthly expense "+ cstr((action == 'stop') and "will exceed" or "has exceeded") +" budget for Account - "+cstr(acct)+" under Cost Center - "+ cstr(cost_center) + ""+cstr((action == 'Stop') and ", you can not have this transaction." or ".")) - if action == 'Stop': raise Exception - - def check_budget(self,le_list,cancel): - # get value from record - acct, cost_center, debit, credit, post_dt, cfy, company = le_list - - # get allocated budget - bgt = sql("select t1.budget_allocated, t1.actual, t2.distribution_id from `tabBudget Detail` t1, `tabCost Center` t2 where t1.account='%s' and t1.parent=t2.name and t2.name = '%s' and t1.fiscal_year='%s'" % (acct,cost_center,cfy), as_dict =1) - curr_amt = ((cancel and -1 or 1) * flt(debit)) + ((cancel and 1 or -1) * flt(credit)) - - if bgt and bgt[0]['budget_allocated']: - # check budget flag in Company - bgt_flag = sql("select yearly_bgt_flag, monthly_bgt_flag from `tabCompany` where name = '%s'" % company, as_dict =1) - - if bgt_flag and bgt_flag[0]['monthly_bgt_flag'] in ['Stop', 'Warn']: - # get start date and last date - st_date = get_value('Fiscal Year', cfy, 'year_start_date').strftime('%Y-%m-%d') - lt_date = sql("select LAST_DAY('%s')" % post_dt) - - # get Actual - actual = get_obj('GL Control').get_period_difference(acct + '~~~' + cstr(st_date) + '~~~' + cstr(lt_date[0][0]), cost_center) - - # Get Monthly budget - budget = self.get_monthly_budget(bgt and bgt[0]['distribution_id'] or '' , cfy, st_date, post_dt, bgt[0]['budget_allocated']) - - # validate monthly budget - self.validate_budget(acct, cost_center, flt(actual) + flt(curr_amt), budget, 'monthly_bgt_flag') - - # update actual against budget allocated in cost center - sql("update `tabBudget Detail` set actual = ifnull(actual,0) + %s where account = '%s' and fiscal_year = '%s' and parent = '%s'" % (curr_amt,cstr(acct),cstr(cfy),cstr(cost_center))) \ No newline at end of file diff --git a/erpnext/accounts/doctype/cost_center/cost_center.js b/erpnext/accounts/doctype/cost_center/cost_center.js index 24dc50f2fbc..58f39e0ebf3 100644 --- a/erpnext/accounts/doctype/cost_center/cost_center.js +++ b/erpnext/accounts/doctype/cost_center/cost_center.js @@ -2,38 +2,71 @@ //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 'SELECT DISTINCT `tabAccount`.`name`,`tabAccount`.debit_or_credit,`tabAccount`.group_or_ledger FROM `tabAccount` WHERE `tabAccount`.`company` = "' + doc.company_name + '" AND `tabAccount`.docstatus != 2 AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.debit_or_credit = "Debit" AND `tabAccount`.`group_or_ledger` != "Group" AND `tabAccount`.`group_or_ledger` is not NULL AND `tabAccount`.`name` LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50'; - } + var mydoc = locals[this.doctype][this.docname]; + return 'SELECT DISTINCT `tabAccount`.`name`,`tabAccount`.debit_or_credit,`tabAccount`.group_or_ledger FROM `tabAccount` WHERE `tabAccount`.`company` = "' + doc.company_name + '" AND `tabAccount`.docstatus != 2 AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.debit_or_credit = "Debit" AND `tabAccount`.`group_or_ledger` != "Group" AND `tabAccount`.`group_or_ledger` is not NULL AND `tabAccount`.`name` LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50'; + } cur_frm.fields_dict['parent_cost_center'].get_query = function(doc){ - return 'SELECT DISTINCT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Group" AND `tabCost Center`.docstatus != 2 AND `tabCost Center`.company_name="'+ doc.company_name+'" AND `tabCost Center`.company_name is not NULL AND `tabCost Center`.name LIKE "%s" ORDER BY `tabCost Center`.name LIMIT 50'; + return 'SELECT DISTINCT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Group" AND `tabCost Center`.docstatus != 2 AND `tabCost Center`.company_name="'+ doc.company_name+'" AND `tabCost Center`.company_name is not NULL AND `tabCost Center`.name LIKE "%s" ORDER BY `tabCost Center`.name LIMIT 50'; } //parent cost center cur_frm.cscript.parent_cost_center = function(doc,cdt,cdn){ - if(!doc.company_name){ - alert('Please enter company name first'); - } + if(!doc.company_name){ + alert('Please enter company name first'); + } } //company abbr cur_frm.cscript.company_name = function(doc,cdt,cdn){ - get_server_fields('get_abbr','','',doc,cdt,cdn,1); + get_server_fields('get_abbr','','',doc,cdt,cdn,1); } //onload if cost center is group cur_frm.cscript.onload = function(doc, cdt, cdn) { - - if(!doc.__islocal && doc.docstatus == 0){ - get_field(doc.doctype,'group_or_ledger',doc.name).permlevel = 1; - refresh_field('group_or_ledger'); - get_field(doc.doctype,'company_name',doc.name).permlevel = 1; - refresh_field('company_name'); - } + + if(!doc.__islocal && doc.docstatus == 0){ + get_field(doc.doctype,'group_or_ledger',doc.name).permlevel = 1; + refresh_field('group_or_ledger'); + get_field(doc.doctype,'company_name',doc.name).permlevel = 1; + refresh_field('company_name'); + } } cur_frm.cscript.refresh = function(doc, cdt, cdn) { - + cur_frm.cscript.hide_unhide_group_ledger(doc); +} + + +// Hide/unhide group or ledger +// ----------------------------------------- +cur_frm.cscript.hide_unhide_group_ledger = function(doc) { + hide_field(['Convert to Group', 'Convert to Ledger']); + if (cstr(doc.group_or_ledger) == 'Group') unhide_field('Convert to Ledger'); + else if (cstr(doc.group_or_ledger) == 'Ledger') unhide_field('Convert to Group'); +} + +// Convert group to ledger +// ----------------------------------------- +cur_frm.cscript['Convert to Ledger'] = function(doc, cdt, cdn) { + $c_obj(make_doclist(cdt,cdn),'convert_group_to_ledger','',function(r,rt) { + if(r.message == 1) { + doc.group_or_ledger = 'Ledger'; + refresh_field('group_or_ledger'); + cur_frm.cscript.hide_unhide_group_ledger(doc); + } + }); +} + +// Convert ledger to group +// ----------------------------------------- +cur_frm.cscript['Convert to Group'] = function(doc, cdt, cdn) { + $c_obj(make_doclist(cdt,cdn),'convert_ledger_to_group','',function(r,rt) { + if(r.message == 1) { + doc.group_or_ledger = 'Group'; + refresh_field('group_or_ledger'); + cur_frm.cscript.hide_unhide_group_ledger(doc); + } + }); } diff --git a/erpnext/accounts/doctype/cost_center/cost_center.py b/erpnext/accounts/doctype/cost_center/cost_center.py index 66d22f017d1..d09331ac070 100644 --- a/erpnext/accounts/doctype/cost_center/cost_center.py +++ b/erpnext/accounts/doctype/cost_center/cost_center.py @@ -32,6 +32,35 @@ class DocType: 'company_abbr' : abbr } return ret + + #------------------------------------------------------------------------- + def convert_group_to_ledger(self): + if self.check_if_child_exists(): + msgprint("Cost Center: %s has existing child. You can not convert this cost center to ledger" % (self.doc.name), raise_exception=1) + elif self.check_gle_exists(): + msgprint("Cost Center with existing transaction can not be converted to ledger.", raise_exception=1) + else: + self.doc.group_or_ledger = 'Ledger' + self.doc.save() + return 1 + + #------------------------------------------------------------------------- + def convert_ledger_to_group(self): + if self.check_gle_exists(): + msgprint("Cost Center with existing transaction can not be converted to group.", raise_exception=1) + else: + self.doc.group_or_ledger = 'Group' + self.doc.save() + return 1 + + #------------------------------------------------------------------------- + def check_gle_exists(self): + return sql("select name from `tabGL Entry` where cost_center = %s and ifnull(is_cancelled, 'No') = 'No'", (self.doc.name)) + + + #------------------------------------------------------------------------- + def check_if_child_exists(self): + return sql("select name from `tabCost Center` where parent_cost_center = %s and docstatus != 2", self.doc.name) #------------------------------------------------------------------------- def validate(self): diff --git a/erpnext/accounts/doctype/cost_center/cost_center.txt b/erpnext/accounts/doctype/cost_center/cost_center.txt index 7bc5810f903..94fb02bf447 100644 --- a/erpnext/accounts/doctype/cost_center/cost_center.txt +++ b/erpnext/accounts/doctype/cost_center/cost_center.txt @@ -5,14 +5,14 @@ { 'creation': '2010-08-08 17:08:56', 'docstatus': 0, - 'modified': '2011-09-26 18:55:05', + 'modified': '2011-10-10 12:05:07', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1316075905', + '_last_update': '1317365120', 'allow_copy': 1, 'allow_trash': 1, 'autoname': 'field:cost_center_name', @@ -27,7 +27,7 @@ 'section_style': 'Simple', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 107 + 'version': 109 }, # These values are common for all DocField @@ -206,6 +206,26 @@ 'trigger': 'Client' }, + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Convert to Group', + 'permlevel': 0, + 'trigger': 'Client' + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Convert to Ledger', + 'permlevel': 0, + 'trigger': 'Client' + }, + # DocField { 'doctype': 'DocField', diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index cc4a164f841..1924fdde7b2 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 382 +last_patch = 383 #------------------------------------------- @@ -448,3 +448,5 @@ def execute(patch_no): from webnotes.session_cache import clear_cache clear_cache(webnotes.session['user']) + elif patch_no == 383: + reload_doc('accounts', 'doctype', 'cost_center') From 2810691979babc65fdd9f67b22c4fe4e1944f652 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 10 Oct 2011 12:33:43 +0530 Subject: [PATCH 78/84] field hide/unhide for pos --- .../receivable_voucher/receivable_voucher.js | 359 +++++++++--------- .../receivable_voucher/receivable_voucher.txt | 164 ++------ 2 files changed, 226 insertions(+), 297 deletions(-) diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js index 14a53c416bc..ec8f2918d04 100644 --- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js @@ -13,8 +13,8 @@ $import(SMS Control) // On Load // ------- cur_frm.cscript.onload = function(doc,dt,dn) { - if(!doc.customer && doc.debit_to) get_field(dt, 'debit_to', dn).print_hide = 0; - if (doc.__islocal) { + if(!doc.customer && doc.debit_to) get_field(dt, 'debit_to', dn).print_hide = 0; + if (doc.__islocal) { if(!doc.voucher_date) set_multiple(dt,dn,{voucher_date:get_today()}); if(!doc.due_date) set_multiple(dt,dn,{due_date:get_today()}); if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()}); @@ -22,8 +22,8 @@ cur_frm.cscript.onload = function(doc,dt,dn) { //for previously created sales invoice, set required field related to pos if(doc.is_pos ==1) cur_frm.cscript.is_pos(doc, dt, dn); - hide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); - } + hide_field(['customer_address', 'contact_person', 'customer_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']); + } } cur_frm.cscript.onload_post_render = function(doc, dt, dn) { @@ -48,10 +48,25 @@ cur_frm.cscript.onload_post_render = function(doc, dt, dn) { // Hide Fields // ------------ cur_frm.cscript.hide_fields = function(doc, cdt, cdn) { - if(cint(doc.is_pos) == 1) - hide_field(['project_name', 'due_date', 'posting_time', 'sales_order_main', 'delivery_note_main', 'Get Items']); - else - unhide_field(['project_name', 'due_date', 'posting_time', 'sales_order_main', 'delivery_note_main', 'Get Items']); + par_flds =['project_name', 'due_date', 'posting_time', 'sales_order_main', 'delivery_note_main', 'Get Items', 'company', 'is_opening', 'currency', 'conversion_rate', 'price_list_name', 'cash_bank_account', 'source', 'cancel_reason', 'total_advance', 'gross_profit', 'gross_profit_percent', 'Get Advances Received', 'advance_adjustment_details', 'sales_partner', 'commission_rate', 'total_commission', 'Repair Outstanding Amt']; + + ch_flds = {'entries': ['income_account', 'warehouse', 'cost_center', 'sales_order', 'delivery_note']} + + if(cint(doc.is_pos) == 1) { + hide_field(par_flds); + for(t in ch_flds) { + for(f in ch_flds[t]) { + cur_frm.fields_dict[t].grid.set_column_disp(ch_flds[t][f], false); + } + } + } else { + unhide_field(par_flds); + for (t in ch_flds) { + for (f in ch_flds[t]) { + cur_frm.fields_dict[t].grid.set_column_disp(ch_flds[t][f], true); + } + } + } } @@ -59,53 +74,53 @@ cur_frm.cscript.hide_fields = function(doc, cdt, cdn) { // ------- cur_frm.cscript.refresh = function(doc, dt, dn) { - // Show / Hide button - cur_frm.clear_custom_buttons(); + // Show / Hide button + cur_frm.clear_custom_buttons(); - if(doc.docstatus==1) { - cur_frm.add_custom_button('View Ledger', cur_frm.cscript['View Ledger Entry']); - cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']); - unhide_field('Repair Outstanding Amt'); + if(doc.docstatus==1) { + cur_frm.add_custom_button('View Ledger', cur_frm.cscript['View Ledger Entry']); + cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']); + unhide_field('Repair Outstanding Amt'); - if(doc.is_pos==1 && doc.update_stock!=1) - cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']); + if(doc.is_pos==1 && doc.update_stock!=1) + cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']); - if(doc.outstanding_amount!=0) - cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript['Make Bank Voucher']); - } - else - hide_field('Repair Outstanding Amt'); - cur_frm.cscript.is_opening(doc, dt, dn); - cur_frm.cscript.hide_fields(doc, cdt, cdn); + if(doc.outstanding_amount!=0) + cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript['Make Bank Voucher']); + } + else + hide_field('Repair Outstanding Amt'); + cur_frm.cscript.is_opening(doc, dt, dn); + cur_frm.cscript.hide_fields(doc, cdt, cdn); } //fetch retail transaction related fields //-------------------------------------------- cur_frm.cscript.is_pos = function(doc,dt,dn){ - cur_frm.cscript.hide_fields(doc, cdt, cdn); - if(doc.is_pos == 1){ - if (!doc.company) { - msgprint("Please select company to proceed"); - doc.is_pos = 0; - refresh_field('is_pos'); - } - else { - var callback = function(r,rt){ - cur_frm.refresh(); - } - $c_obj(make_doclist(dt,dn),'set_pos_fields','',callback); - } - } + cur_frm.cscript.hide_fields(doc, cdt, cdn); + if(doc.is_pos == 1){ + if (!doc.company) { + msgprint("Please select company to proceed"); + doc.is_pos = 0; + refresh_field('is_pos'); + } + else { + var callback = function(r,rt){ + cur_frm.refresh(); + } + $c_obj(make_doclist(dt,dn),'set_pos_fields','',callback); + } + } } cur_frm.cscript.warehouse = function(doc, cdt , cdn) { - var d = locals[cdt][cdn]; - if (!d.item_code) {alert("please enter item code first"); return}; - if (d.warehouse) { - arg = "{'item_code':'" + d.item_code + "','warehouse':'" + d.warehouse +"'}"; - get_server_fields('get_actual_qty',arg,'entries',doc,cdt,cdn,1); - } + var d = locals[cdt][cdn]; + if (!d.item_code) {alert("please enter item code first"); return}; + if (d.warehouse) { + arg = "{'item_code':'" + d.item_code + "','warehouse':'" + d.warehouse +"'}"; + get_server_fields('get_actual_qty',arg,'entries',doc,cdt,cdn,1); + } } @@ -113,57 +128,57 @@ cur_frm.cscript.warehouse = function(doc, cdt , cdn) { //Customer cur_frm.cscript.customer = function(doc,dt,dn) { - var callback = function(r,rt) { - var doc = locals[cur_frm.doctype][cur_frm.docname]; - get_server_fields('get_debit_to','','',doc, dt, dn, 0); - cur_frm.refresh(); - } + var callback = function(r,rt) { + var doc = locals[cur_frm.doctype][cur_frm.docname]; + get_server_fields('get_debit_to','','',doc, dt, dn, 0); + cur_frm.refresh(); + } - if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', '', callback); - if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); + if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', '', callback); + if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); } cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { - if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); + if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); } cur_frm.fields_dict.customer_address.on_new = function(dn) { - locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; + locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; + locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; } cur_frm.fields_dict.contact_person.on_new = function(dn) { - locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; + locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; + locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; } cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; + return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; } cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; + return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; } // Set Due Date = posting date + credit days cur_frm.cscript.debit_to = function(doc,dt,dn) { - var callback2 = function(r,rt) { - var doc = locals[cur_frm.doctype][cur_frm.docname]; - cur_frm.refresh(); - } + var callback2 = function(r,rt) { + var doc = locals[cur_frm.doctype][cur_frm.docname]; + cur_frm.refresh(); + } - var callback = function(r,rt) { - var doc = locals[cur_frm.doctype][cur_frm.docname]; - if(doc.customer) $c_obj(make_doclist(dt,dn), 'get_default_customer_address', '', callback2); - if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); - cur_frm.refresh(); - } + var callback = function(r,rt) { + var doc = locals[cur_frm.doctype][cur_frm.docname]; + if(doc.customer) $c_obj(make_doclist(dt,dn), 'get_default_customer_address', '', callback2); + if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); + cur_frm.refresh(); + } - if(doc.debit_to && doc.posting_date){ - get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,callback); - } + if(doc.debit_to && doc.posting_date){ + get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,callback); + } } @@ -172,15 +187,15 @@ cur_frm.cscript.debit_to = function(doc,dt,dn) { //------------------------------------------------- cur_frm.cscript.paid_amount = function(doc,dt,dn){ - doc.outstanding_amount = flt(doc.grand_total) - flt(doc.paid_amount) - flt(doc.write_off_amount); - refresh_field('outstanding_amount'); + doc.outstanding_amount = flt(doc.grand_total) - flt(doc.paid_amount) - flt(doc.write_off_amount); + refresh_field('outstanding_amount'); } //---- get customer details ---------------------------- cur_frm.cscript.project_name = function(doc,cdt,cdn){ $c_obj(make_doclist(doc.doctype, doc.name),'pull_project_customer','', function(r,rt){ - refresh_many(['customer', 'customer_name','customer_address', 'territory']); + refresh_many(['customer', 'customer_name','customer_address', 'territory']); }); } @@ -188,26 +203,26 @@ cur_frm.cscript.project_name = function(doc,cdt,cdn){ //---------------------------------------------- cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){ - cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype); - acc = ''; - cc = ''; + cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype); + acc = ''; + cc = ''; - for(var i = 0; i 0 AND `tabBin`.`warehouse` like '%s' ORDER BY `tabBin`.`warehouse` DESC LIMIT 50"; + var d = locals[cdt][cdn]; + return "SELECT `tabBin`.`warehouse`, `tabBin`.`actual_qty` FROM `tabBin` WHERE `tabBin`.`item_code` = '"+ d.item_code +"' AND ifnull(`tabBin`.`actual_qty`,0) > 0 AND `tabBin`.`warehouse` like '%s' ORDER BY `tabBin`.`warehouse` DESC LIMIT 50"; } // Cost Center in Details Table // ----------------------------- cur_frm.fields_dict.entries.grid.get_field("cost_center").get_query = function(doc) { - return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY `tabCost Center`.`name` ASC LIMIT 50'; + return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY `tabCost Center`.`name` ASC LIMIT 50'; } // Sales Order // ----------- cur_frm.fields_dict.sales_order_main.get_query = function(doc) { - if (doc.customer) - return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.`customer` = "' + doc.customer + '" and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50'; - else - return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50'; + if (doc.customer) + return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.`customer` = "' + doc.customer + '" and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50'; + else + return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50'; } // Delivery Note // -------------- cur_frm.fields_dict.delivery_note_main.get_query = function(doc) { - if (doc.customer) - return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.`customer` = "' + doc.customer + '" and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50'; - else - return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50'; + if (doc.customer) + return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.`customer` = "' + doc.customer + '" and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50'; + else + return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50'; } cur_frm.cscript.income_account = function(doc, cdt, cdn){ - var d = locals[cdt][cdn]; - if(d.income_account){ - var cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype); - for(var i = 0; i < cl.length; i++){ - if(!cl[i].income_account) cl[i].income_account = d.income_account; - } - } - refresh_field(cur_frm.cscript.fname); + var d = locals[cdt][cdn]; + if(d.income_account){ + var cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype); + for(var i = 0; i < cl.length; i++){ + if(!cl[i].income_account) cl[i].income_account = d.income_account; + } + } + refresh_field(cur_frm.cscript.fname); } cur_frm.cscript.cost_center = function(doc, cdt, cdn){ - var d = locals[cdt][cdn]; - if(d.cost_center){ - var cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype); - for(var i = 0; i < cl.length; i++){ - if(!cl[i].cost_center) cl[i].cost_center = d.cost_center; - } - } - refresh_field(cur_frm.cscript.fname); + var d = locals[cdt][cdn]; + if(d.cost_center){ + var cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype); + for(var i = 0; i < cl.length; i++){ + if(!cl[i].cost_center) cl[i].cost_center = d.cost_center; + } + } + refresh_field(cur_frm.cscript.fname); } /* **************************************** Utility Functions *************************************** */ @@ -371,49 +386,49 @@ cur_frm.cscript.cost_center = function(doc, cdt, cdn){ // Details Calculation // -------------------- cur_frm.cscript.calc_adjustment_amount = function(doc,cdt,cdn) { - var doc = locals[doc.doctype][doc.name]; - var el = getchildren('Advance Adjustment Detail',doc.name,'advance_adjustment_details'); - var total_adjustment_amt = 0 - for(var i in el) { - total_adjustment_amt += flt(el[i].allocated_amount) - } - doc.total_advance = flt(total_adjustment_amt); - doc.outstanding_amount = flt(doc.grand_total) - flt(total_adjustment_amt) - flt(doc.paid_amount) - flt(doc.write_off_amount); - refresh_many(['total_advance','outstanding_amount']); + var doc = locals[doc.doctype][doc.name]; + var el = getchildren('Advance Adjustment Detail',doc.name,'advance_adjustment_details'); + var total_adjustment_amt = 0 + for(var i in el) { + total_adjustment_amt += flt(el[i].allocated_amount) + } + doc.total_advance = flt(total_adjustment_amt); + doc.outstanding_amount = flt(doc.grand_total) - flt(total_adjustment_amt) - flt(doc.paid_amount) - flt(doc.write_off_amount); + refresh_many(['total_advance','outstanding_amount']); } // Make Journal Voucher // -------------------- cur_frm.cscript.make_jv = function(doc, dt, dn) { - var jv = LocalDB.create('Journal Voucher'); - jv = locals['Journal Voucher'][jv]; - jv.voucher_type = 'Bank Voucher'; + var jv = LocalDB.create('Journal Voucher'); + jv = locals['Journal Voucher'][jv]; + jv.voucher_type = 'Bank Voucher'; - jv.company = doc.company; - jv.remark = repl('Payment received against invoice %(vn)s for %(rem)s', {vn:doc.name, rem:doc.remarks}); - jv.fiscal_year = doc.fiscal_year; + jv.company = doc.company; + jv.remark = repl('Payment received against invoice %(vn)s for %(rem)s', {vn:doc.name, rem:doc.remarks}); + jv.fiscal_year = doc.fiscal_year; - // debit to creditor - var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries'); - d1.account = doc.debit_to; - d1.credit = doc.outstanding_amount; - d1.against_invoice = doc.name; + // debit to creditor + var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries'); + d1.account = doc.debit_to; + d1.credit = doc.outstanding_amount; + d1.against_invoice = doc.name; - // credit to bank - var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries'); - d1.debit = doc.outstanding_amount; + // credit to bank + var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries'); + d1.debit = doc.outstanding_amount; - loaddoc('Journal Voucher', jv.name); + loaddoc('Journal Voucher', jv.name); } /****************** Get Accounting Entry *****************/ cur_frm.cscript['View Ledger Entry'] = function(){ - var callback = function(report){ - report.set_filter('GL Entry', 'Voucher No',cur_frm.doc.name); - report.dt.run(); - } - loadreport('GL Entry','General Ledger', callback); + var callback = function(report){ + report.set_filter('GL Entry', 'Voucher No',cur_frm.doc.name); + report.dt.run(); + } + loadreport('GL Entry','General Ledger', callback); } diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt index f2f9eafb20b..2f3b48d3fc6 100644 --- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt @@ -5,16 +5,17 @@ { 'creation': '2010-08-08 17:09:18', 'docstatus': 0, - 'modified': '2011-06-20 13:02:04', + 'modified': '2011-10-10 12:29:26', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1309508839', + '_last_update': '1317986484', 'change_log': '1. Change in pull_details method dt.-26-06-2009', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'module': 'Accounts', 'name': '__common__', @@ -24,7 +25,7 @@ 'server_code_error': ' ', 'show_in_menu': 0, 'subject': 'To %(customer_name)s worth %(currency)s %(grand_total_export)s due on %(due_date)s | %(outstanding_amount)s outstanding', - 'version': 356 + 'version': 359 }, # These values are common for all DocField @@ -58,7 +59,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 1, 'role': 'Accounts Manager', 'submit': 0, @@ -71,7 +71,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'Accounts Manager', 'submit': 1, @@ -84,7 +83,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'Accounts User', 'submit': 1, @@ -97,7 +95,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 1, 'role': 'Accounts User', 'submit': 0, @@ -106,18 +103,21 @@ # DocPerm { + 'amend': 0, + 'cancel': 0, + 'create': 0, 'doctype': 'DocPerm', - 'idx': 5, 'match': 'customer', 'permlevel': 0, - 'role': 'Customer' + 'role': 'Customer', + 'submit': 0, + 'write': 0 }, # DocField { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Basic Info', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -128,7 +128,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 2, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 0, @@ -143,7 +142,6 @@ 'doctype': 'DocField', 'fieldname': 'naming_series', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Series', 'no_copy': 1, 'oldfieldname': 'naming_series', @@ -159,7 +157,6 @@ 'doctype': 'DocField', 'fieldname': 'is_pos', 'fieldtype': 'Check', - 'idx': 4, 'label': 'Is POS', 'oldfieldname': 'is_pos', 'oldfieldtype': 'Check', @@ -174,7 +171,6 @@ 'doctype': 'DocField', 'fieldname': 'update_stock', 'fieldtype': 'Check', - 'idx': 5, 'label': 'Update Stock', 'oldfieldname': 'update_stock', 'oldfieldtype': 'Check', @@ -189,7 +185,6 @@ 'doctype': 'DocField', 'fieldname': 'debit_to', 'fieldtype': 'Link', - 'idx': 6, 'in_filter': 1, 'label': 'Debit To', 'oldfieldname': 'debit_to', @@ -209,7 +204,6 @@ 'fieldname': 'customer', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 7, 'label': 'Customer', 'no_copy': 0, 'oldfieldname': 'customer', @@ -225,7 +219,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_address', 'fieldtype': 'Link', - 'idx': 8, 'label': 'Customer Address', 'options': 'Address', 'permlevel': 0, @@ -237,7 +230,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_person', 'fieldtype': 'Link', - 'idx': 9, 'label': 'Contact Person', 'options': 'Contact', 'permlevel': 0, @@ -249,7 +241,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 10, 'label': 'Name', 'oldfieldname': 'customer_name', 'oldfieldtype': 'Data', @@ -261,7 +252,6 @@ 'doctype': 'DocField', 'fieldname': 'address_display', 'fieldtype': 'Small Text', - 'idx': 11, 'label': 'Address', 'permlevel': 1 }, @@ -271,7 +261,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_display', 'fieldtype': 'Small Text', - 'idx': 12, 'label': 'Contact', 'permlevel': 1 }, @@ -281,7 +270,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_mobile', 'fieldtype': 'Text', - 'idx': 13, 'label': 'Mobile No', 'permlevel': 1 }, @@ -291,7 +279,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_email', 'fieldtype': 'Text', - 'idx': 14, 'label': 'Contact Email', 'permlevel': 1, 'print_hide': 1 @@ -302,7 +289,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 15, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -315,7 +301,6 @@ 'doctype': 'DocField', 'fieldname': 'voucher_date', 'fieldtype': 'Date', - 'idx': 16, 'in_filter': 1, 'label': 'Voucher Date', 'no_copy': 1, @@ -334,7 +319,6 @@ 'doctype': 'DocField', 'fieldname': 'due_date', 'fieldtype': 'Date', - 'idx': 17, 'in_filter': 1, 'label': 'Due Date', 'no_copy': 1, @@ -353,7 +337,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_date', 'fieldtype': 'Date', - 'idx': 18, 'in_filter': 1, 'label': 'Posting Date', 'no_copy': 1, @@ -370,7 +353,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_time', 'fieldtype': 'Time', - 'idx': 19, 'label': 'Posting Time', 'no_copy': 1, 'oldfieldname': 'posting_time', @@ -385,7 +367,6 @@ 'doctype': 'DocField', 'fieldname': 'amendment_date', 'fieldtype': 'Date', - 'idx': 20, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -399,8 +380,8 @@ 'doctype': 'DocField', 'fieldname': 'amended_from', 'fieldtype': 'Link', - 'idx': 21, 'label': 'Amended From', + 'no_copy': 1, 'oldfieldname': 'amended_from', 'oldfieldtype': 'Link', 'options': 'Receivable Voucher', @@ -413,7 +394,6 @@ 'doctype': 'DocField', 'fieldname': 'mode_of_payment', 'fieldtype': 'Select', - 'idx': 22, 'label': 'Mode of Payment', 'oldfieldname': 'mode_of_payment', 'oldfieldtype': 'Select', @@ -426,7 +406,6 @@ 'doctype': 'DocField', 'fieldname': 'territory', 'fieldtype': 'Link', - 'idx': 23, 'in_filter': 1, 'label': 'Territory', 'options': 'Territory', @@ -441,14 +420,12 @@ 'doctype': 'DocField', 'fieldname': 'customer_group', 'fieldtype': 'Link', - 'idx': 24, 'in_filter': 1, 'label': 'Customer Group', 'options': 'Customer Group', 'permlevel': 0, 'print_hide': 1, - 'reqd': 1, - 'search_index': 1 + 'search_index': 0 }, # DocField @@ -456,7 +433,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 25, 'label': 'Items', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -467,7 +443,6 @@ 'doctype': 'DocField', 'fieldname': 'price_list_name', 'fieldtype': 'Select', - 'idx': 26, 'label': 'Price List', 'oldfieldname': 'price_list_name', 'oldfieldtype': 'Select', @@ -484,7 +459,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_order_main', 'fieldtype': 'Link', - 'idx': 27, 'label': 'Sales Order', 'oldfieldname': 'sales_order_main', 'oldfieldtype': 'Link', @@ -500,7 +474,6 @@ 'doctype': 'DocField', 'fieldname': 'delivery_note_main', 'fieldtype': 'Link', - 'idx': 28, 'label': 'Delivery Note', 'oldfieldname': 'delivery_note_main', 'oldfieldtype': 'Link', @@ -513,7 +486,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 29, 'label': 'Get Items', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -525,7 +497,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 30, 'permlevel': 0, 'width': '50%' }, @@ -535,7 +506,6 @@ 'doctype': 'DocField', 'fieldname': 'currency', 'fieldtype': 'Select', - 'idx': 31, 'label': 'Currency', 'oldfieldname': 'currency', 'oldfieldtype': 'Select', @@ -551,7 +521,6 @@ 'doctype': 'DocField', 'fieldname': 'conversion_rate', 'fieldtype': 'Currency', - 'idx': 32, 'label': 'Conversion Rate', 'oldfieldname': 'conversion_rate', 'oldfieldtype': 'Currency', @@ -564,7 +533,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 33, 'permlevel': 0 }, @@ -575,7 +543,6 @@ 'doctype': 'DocField', 'fieldname': 'entries', 'fieldtype': 'Table', - 'idx': 34, 'label': 'Entries', 'oldfieldname': 'entries', 'oldfieldtype': 'Table', @@ -588,7 +555,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 35, 'label': 'Re-Calculate Values', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -596,13 +562,27 @@ 'trigger': 'Client' }, + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'permlevel': 0, + 'width': '50%' + }, + # DocField { 'description': 'Will be calculated automatically when you enter the details', 'doctype': 'DocField', 'fieldname': 'net_total', 'fieldtype': 'Currency', - 'idx': 36, 'label': 'Net Total*', 'oldfieldname': 'net_total', 'oldfieldtype': 'Currency', @@ -615,7 +595,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 37, 'label': 'Rates HTML', 'oldfieldtype': 'HTML', 'options': '* Rates in standard currency', @@ -623,14 +602,6 @@ 'print_hide': 1 }, - # DocField - { - 'doctype': 'DocField', - 'fieldtype': 'Section Break', - 'idx': 38, - 'permlevel': 0 - }, - # DocField { 'colour': 'White:FFF', @@ -638,7 +609,6 @@ 'doctype': 'DocField', 'fieldname': 'cash_bank_account', 'fieldtype': 'Link', - 'idx': 39, 'label': 'Cash/Bank Account', 'oldfieldname': 'cash_bank_account', 'oldfieldtype': 'Link', @@ -654,7 +624,6 @@ 'doctype': 'DocField', 'fieldname': 'paid_amount', 'fieldtype': 'Currency', - 'idx': 40, 'label': 'Paid Amount', 'oldfieldname': 'paid_amount', 'oldfieldtype': 'Currency', @@ -667,7 +636,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 41, 'permlevel': 0, 'width': '50%' }, @@ -679,7 +647,6 @@ 'doctype': 'DocField', 'fieldname': 'write_off_account', 'fieldtype': 'Link', - 'idx': 42, 'label': 'Write Off Account', 'options': 'Account', 'permlevel': 0, @@ -693,7 +660,6 @@ 'doctype': 'DocField', 'fieldname': 'write_off_cost_center', 'fieldtype': 'Link', - 'idx': 43, 'label': 'Write Off Cost Center', 'options': 'Cost Center', 'permlevel': 0, @@ -707,7 +673,6 @@ 'doctype': 'DocField', 'fieldname': 'write_off_amount', 'fieldtype': 'Currency', - 'idx': 44, 'label': 'Write Off Amount', 'permlevel': 0, 'print_hide': 1 @@ -717,7 +682,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 45, 'label': 'Taxes', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -728,7 +692,6 @@ 'doctype': 'DocField', 'fieldname': 'charge', 'fieldtype': 'Link', - 'idx': 46, 'label': 'Charge', 'oldfieldname': 'charge', 'oldfieldtype': 'Link', @@ -741,7 +704,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 47, 'label': 'Get Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -756,7 +718,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges', 'fieldtype': 'Table', - 'idx': 48, 'label': 'Taxes1', 'oldfieldname': 'other_charges', 'oldfieldtype': 'Table', @@ -764,24 +725,10 @@ 'permlevel': 0 }, - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'other_charges_total', - 'fieldtype': 'Currency', - 'idx': 49, - 'label': 'Total Charges', - 'oldfieldname': 'other_charges_total', - 'oldfieldtype': 'Currency', - 'permlevel': 1, - 'print_hide': 1 - }, - # DocField { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 50, 'label': 'Calculate Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -789,11 +736,22 @@ 'trigger': 'Client' }, + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'other_charges_total', + 'fieldtype': 'Currency', + 'label': 'Total Charges', + 'oldfieldname': 'other_charges_total', + 'oldfieldtype': 'Currency', + 'permlevel': 1, + 'print_hide': 1 + }, + # DocField { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 51, 'label': 'Other Charges Calculation', 'oldfieldtype': 'HTML', 'permlevel': 0, @@ -805,7 +763,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 52, 'label': 'Terms', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -816,7 +773,6 @@ 'doctype': 'DocField', 'fieldname': 'tc_name', 'fieldtype': 'Link', - 'idx': 53, 'label': 'Select Terms', 'oldfieldname': 'tc_name', 'oldfieldtype': 'Link', @@ -830,7 +786,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 54, 'label': 'Get Terms', 'oldfieldtype': 'Button', 'options': 'get_tc_details', @@ -844,7 +799,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 55, 'label': 'Terms HTML', 'oldfieldtype': 'HTML', 'options': 'You can add Terms and Notes that will be printed in the Transaction', @@ -857,7 +811,6 @@ 'doctype': 'DocField', 'fieldname': 'terms', 'fieldtype': 'Text Editor', - 'idx': 56, 'label': 'Term Details', 'oldfieldname': 'terms', 'oldfieldtype': 'Text Editor', @@ -869,7 +822,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 57, 'label': 'More Info', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -881,7 +833,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 58, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -895,7 +846,6 @@ 'doctype': 'DocField', 'fieldname': 'is_opening', 'fieldtype': 'Select', - 'idx': 59, 'in_filter': 1, 'label': 'Is Opening', 'oldfieldname': 'is_opening', @@ -912,7 +862,6 @@ 'doctype': 'DocField', 'fieldname': 'aging_date', 'fieldtype': 'Date', - 'idx': 60, 'label': 'Aging Date', 'oldfieldname': 'aging_date', 'oldfieldtype': 'Date', @@ -927,7 +876,6 @@ 'doctype': 'DocField', 'fieldname': 'letter_head', 'fieldtype': 'Select', - 'idx': 61, 'label': 'Letter Head', 'oldfieldname': 'letter_head', 'oldfieldtype': 'Select', @@ -941,7 +889,6 @@ 'doctype': 'DocField', 'fieldname': 'source', 'fieldtype': 'Select', - 'idx': 62, 'label': 'Source', 'oldfieldname': 'source', 'oldfieldtype': 'Select', @@ -957,7 +904,6 @@ 'doctype': 'DocField', 'fieldname': 'campaign', 'fieldtype': 'Link', - 'idx': 63, 'label': 'Campaign', 'oldfieldname': 'campaign', 'oldfieldtype': 'Link', @@ -973,7 +919,6 @@ 'doctype': 'DocField', 'fieldname': 'select_print_heading', 'fieldtype': 'Link', - 'idx': 64, 'label': 'Select Print Heading', 'no_copy': 1, 'oldfieldname': 'select_print_heading', @@ -992,7 +937,6 @@ 'doctype': 'DocField', 'fieldname': 'project_name', 'fieldtype': 'Link', - 'idx': 65, 'in_filter': 1, 'label': 'Project Name', 'oldfieldname': 'project_name', @@ -1008,7 +952,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 66, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -1018,7 +961,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 67, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -1035,7 +977,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 68, 'in_filter': 1, 'label': 'Fiscal Year', 'no_copy': 0, @@ -1055,7 +996,6 @@ 'doctype': 'DocField', 'fieldname': 'cancel_reason', 'fieldtype': 'Data', - 'idx': 69, 'label': 'Cancel Reason', 'oldfieldname': 'cancel_reason', 'oldfieldtype': 'Data', @@ -1068,7 +1008,6 @@ 'doctype': 'DocField', 'fieldname': 'remarks', 'fieldtype': 'Small Text', - 'idx': 70, 'label': 'Remarks', 'no_copy': 1, 'oldfieldname': 'remarks', @@ -1083,7 +1022,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 71, 'label': 'Totals', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1095,7 +1033,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 72, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1108,7 +1045,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total', 'fieldtype': 'Currency', - 'idx': 73, 'in_filter': 1, 'label': 'Grand Total', 'oldfieldname': 'grand_total', @@ -1124,7 +1060,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total', 'fieldtype': 'Currency', - 'idx': 74, 'label': 'Rounded Total', 'oldfieldname': 'rounded_total', 'oldfieldtype': 'Currency', @@ -1139,7 +1074,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words', 'fieldtype': 'Data', - 'idx': 75, 'label': 'In Words', 'oldfieldname': 'in_words', 'oldfieldtype': 'Data', @@ -1152,7 +1086,6 @@ 'doctype': 'DocField', 'fieldname': 'total_advance', 'fieldtype': 'Currency', - 'idx': 76, 'label': 'Total Advance', 'oldfieldname': 'total_advance', 'oldfieldtype': 'Currency', @@ -1166,7 +1099,6 @@ 'doctype': 'DocField', 'fieldname': 'outstanding_amount', 'fieldtype': 'Currency', - 'idx': 77, 'label': 'Outstanding Amount', 'no_copy': 1, 'oldfieldname': 'outstanding_amount', @@ -1180,7 +1112,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 78, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1192,7 +1123,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total_export', 'fieldtype': 'Currency', - 'idx': 79, 'label': 'Grand Total (Export)', 'oldfieldname': 'grand_total_export', 'oldfieldtype': 'Currency', @@ -1206,7 +1136,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total_export', 'fieldtype': 'Currency', - 'idx': 80, 'label': 'Rounded Total (Export)', 'oldfieldname': 'rounded_total_export', 'oldfieldtype': 'Currency', @@ -1221,7 +1150,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words_export', 'fieldtype': 'Data', - 'idx': 81, 'label': 'In Words (Export)', 'oldfieldname': 'in_words_export', 'oldfieldtype': 'Data', @@ -1234,7 +1162,6 @@ 'doctype': 'DocField', 'fieldname': 'gross_profit', 'fieldtype': 'Currency', - 'idx': 82, 'label': 'Gross Profit', 'oldfieldname': 'gross_profit', 'oldfieldtype': 'Currency', @@ -1247,7 +1174,6 @@ 'doctype': 'DocField', 'fieldname': 'gross_profit_percent', 'fieldtype': 'Currency', - 'idx': 83, 'label': 'Gross Profit (%)', 'oldfieldname': 'gross_profit_percent', 'oldfieldtype': 'Currency', @@ -1260,7 +1186,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 84, 'label': 'Advances', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1271,7 +1196,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 85, 'label': 'Get Advances Received', 'oldfieldtype': 'Button', 'options': 'get_advances', @@ -1284,7 +1208,6 @@ 'doctype': 'DocField', 'fieldname': 'advance_adjustment_details', 'fieldtype': 'Table', - 'idx': 86, 'label': 'Advance Adjustment Detail', 'oldfieldname': 'advance_adjustment_details', 'oldfieldtype': 'Table', @@ -1297,7 +1220,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 87, 'label': 'Sales Team', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1309,7 +1231,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 88, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1321,7 +1242,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_partner', 'fieldtype': 'Link', - 'idx': 89, 'in_filter': 1, 'label': 'Sales Partner', 'oldfieldname': 'sales_partner', @@ -1337,7 +1257,6 @@ 'doctype': 'DocField', 'fieldname': 'commission_rate', 'fieldtype': 'Currency', - 'idx': 90, 'label': 'Commission Rate (%)', 'oldfieldname': 'commission_rate', 'oldfieldtype': 'Currency', @@ -1352,7 +1271,6 @@ 'doctype': 'DocField', 'fieldname': 'total_commission', 'fieldtype': 'Currency', - 'idx': 91, 'label': 'Total Commission', 'oldfieldname': 'total_commission', 'oldfieldtype': 'Currency', @@ -1366,7 +1284,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 92, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1378,7 +1295,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_team', 'fieldtype': 'Table', - 'idx': 93, 'label': 'Sales Team1', 'oldfieldname': 'sales_team', 'oldfieldtype': 'Table', @@ -1392,7 +1308,6 @@ 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 94, 'label': 'Repair Outstanding Amt', 'oldfieldtype': 'Button', 'options': 'repair_rv_outstanding', @@ -1406,7 +1321,6 @@ 'fieldname': 'against_income_account', 'fieldtype': 'Small Text', 'hidden': 1, - 'idx': 95, 'label': 'Against Income Account', 'no_copy': 1, 'oldfieldname': 'against_income_account', From 15cad19d7c3d4f1c69830a27a9a680ffa70cf411 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 10 Oct 2011 17:10:24 +0530 Subject: [PATCH 79/84] Serial No moved to Stock module from Support module --- erpnext/patches/patch.py | 6 +- erpnext/stock/Module Def/Stock/Stock.txt | 395 +++++------------- erpnext/stock/doctype/serial_no/serial_no.txt | 74 +--- .../support/Module Def/Support/Support.txt | 268 +++--------- 4 files changed, 185 insertions(+), 558 deletions(-) diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index 1924fdde7b2..a3093c1d2d4 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 383 +last_patch = 384 #------------------------------------------- @@ -450,3 +450,7 @@ def execute(patch_no): clear_cache(webnotes.session['user']) elif patch_no == 383: reload_doc('accounts', 'doctype', 'cost_center') + elif patch_no == 384: + reload_doc('stock', 'Module Def', 'Stock') + sql("delete from `tabModule Def Item` where display_name = 'Serial No' and parent = 'Support'") + sql("update `tabDocType` set subject = 'Item Code: %(item_code)s, Warehouse: %(warehouse)s' where name = 'Serial No'") diff --git a/erpnext/stock/Module Def/Stock/Stock.txt b/erpnext/stock/Module Def/Stock/Stock.txt index eae0a2e84cf..4fc87904809 100644 --- a/erpnext/stock/Module Def/Stock/Stock.txt +++ b/erpnext/stock/Module Def/Stock/Stock.txt @@ -1,421 +1,232 @@ +# Module Def, Stock [ + + # These values are common in all dictionaries { - '_last_update': None, - 'creation': '2011-06-30 15:49:38', - 'disabled': 'No', + 'creation': '2011-07-01 17:40:49', 'docstatus': 0, + 'modified': '2011-10-10 17:01:34', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all Module Def Role + { + 'doctype': 'Module Def Role', + 'name': '__common__', + 'parent': 'Stock', + 'parentfield': 'roles', + 'parenttype': 'Module Def' + }, + + # These values are common for all Module Def Item + { + 'doctype': 'Module Def Item', + 'name': '__common__', + 'parent': 'Stock', + 'parentfield': 'items', + 'parenttype': 'Module Def' + }, + + # These values are common for all Module Def + { + 'disabled': 'No', 'doctype': u'Module Def', 'doctype_list': 'DocType Label, QA Inspection Report', - 'file_list': None, - 'idx': None, 'is_hidden': 'No', - 'last_updated_date': None, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', 'module_desc': 'Material Management', 'module_icon': 'Stock.gif', 'module_label': 'Stock', 'module_name': 'Stock', - 'module_page': None, 'module_seq': 7, - 'name': 'Stock', - 'owner': 'Administrator', - 'parent': None, - 'parentfield': None, - 'parenttype': None, - 'trash_reason': None, - 'widget_code': None + 'name': '__common__' }, + + # Module Def, Stock + { + 'doctype': u'Module Def', + 'name': 'Stock' + }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', 'description': 'Item master', 'display_name': 'Item', 'doc_name': 'Item', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': 'name\nitem_group\ndescription', - 'hide': None, - 'icon': None, - 'idx': 1, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01321', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'fields': 'name\nitem_group\ndescription' }, + + # Module Def Item + { + 'description': 'A unique number identifying each entity of an item', + 'display_name': 'Serial No', + 'doc_name': 'Serial No', + 'doc_type': 'Forms', + 'doctype': 'Module Def Item', + 'fields': 'item_code\nstatus\nwarehouse\npr_no\ndelivery_note_no\ncustomer' + }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', 'description': 'Record of items added, removed or moved from one warehouse to another.', 'display_name': 'Stock Entry', 'doc_name': 'Stock Entry', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': 'transfer_date\npurpose\nfrom_warehouse\nto_warehouse\nremarks', - 'hide': None, - 'icon': None, - 'idx': 2, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01322', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'fields': 'transfer_date\npurpose\nfrom_warehouse\nto_warehouse\nremarks' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', 'description': 'Record of items delivered to your customers along with the Printed Note', 'display_name': 'Delivery Note', 'doc_name': 'Delivery Note', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': 'status\ntransaction_date\ncustomer\nterritory\ngrand_total\nper_billed', - 'hide': None, - 'icon': None, - 'idx': 3, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01323', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'fields': 'status\ntransaction_date\ncustomer\nterritory\ngrand_total\nper_billed' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', 'description': 'Record of incoming material from your suppliers', 'display_name': 'Purchase Receipt', 'doc_name': 'Purchase Receipt', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': 'status\ntransaction_date\nsupplier\ngrand_total\nper_billed', - 'hide': None, - 'icon': None, - 'idx': 4, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01324', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'fields': 'status\ntransaction_date\nsupplier\ngrand_total\nper_billed' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', 'description': 'Details of Installation done after delivery', 'display_name': 'Installation Note', 'doc_name': 'Installation Note', 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 5, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01325', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', 'description': 'Create Quality Inspection Report for any item', 'display_name': 'Inspection Report', 'doc_name': 'QA Inspection Report', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': 'inspection_type\nitem_code\nreport_date\npurchase_receipt_no\ndelivery_note_no', - 'hide': None, - 'icon': None, - 'idx': 6, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01326', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'fields': 'inspection_type\nitem_code\nreport_date\npurchase_receipt_no\ndelivery_note_no' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', 'description': 'Reconcile your stock by uploading it form an excel file', 'display_name': 'Stock Reconciliation', 'doc_name': 'Stock Reconciliation', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': 'reconciliation_date\nreconciliation_time\nremark', - 'hide': None, - 'icon': None, - 'idx': 7, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01327', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'fields': 'reconciliation_date\nreconciliation_time\nremark' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', 'description': 'This utility tool will update Stock UOM in Item and will respectively update Actual Qty in Stock Ledger as per Conversion Factor.', 'display_name': 'Stock UOM Replace Utility', 'doc_name': 'Stock UOM Replace Utility', 'doc_type': 'Single DocType', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 8, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01328', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', 'description': 'This utility will help in tracking stock for Sales Return and Purchase Return.', 'display_name': 'Sales and Purchase Return Wizard', 'doc_name': 'Sales and Purchase Return Wizard', 'doc_type': 'Single DocType', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 9, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01329', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 18:57:58', 'description': 'You can create master template for landed cost wizard', 'display_name': 'Landed Cost Master', 'doc_name': 'Landed Cost Master', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': 'accept.gif', - 'idx': 10, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01372', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'icon': 'accept.gif' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 18:57:58', 'description': 'Add extra expenses into Purchase Receipt which should be consider for item valuation. The cost will be added proportionately as per purchase receipt value.', 'display_name': 'Landed Cost Wizard', 'doc_name': 'Landed Cost Wizard', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': 'accept.gif', - 'idx': 11, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01371', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'icon': 'accept.gif' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': None, 'display_name': 'Stock Ledger', 'doc_name': 'Stock Ledger Entry', 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 12, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01330', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': None, 'display_name': 'Stock Level', 'doc_name': 'Bin', 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 13, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01331', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': None, 'display_name': 'Shortage To Indent', 'doc_name': 'Item', 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 14, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01332', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', 'description': 'Stock Value as per Item and Warehouse', 'display_name': 'Stock Report', 'doc_name': 'Stock Ledger Entry', 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 15, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01333', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': None, 'display_name': 'Stock Aging Report', 'doc_name': 'Serial No', 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 16, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01334', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Role { - 'creation': '2011-06-30 15:49:38', - 'docstatus': 0, 'doctype': 'Module Def Role', - 'idx': 1, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDR00336', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'roles', - 'parenttype': 'Module Def', 'role': 'Material User' }, + + # Module Def Role { - 'creation': '2011-06-30 15:49:38', - 'docstatus': 0, 'doctype': 'Module Def Role', - 'idx': 2, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDR00337', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'roles', - 'parenttype': 'Module Def', 'role': 'Material Master Manager' }, + + # Module Def Role { - 'creation': '2011-06-30 15:49:38', - 'docstatus': 0, 'doctype': 'Module Def Role', - 'idx': 3, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDR00338', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'roles', - 'parenttype': 'Module Def', 'role': 'Material Manager' }, + + # Module Def Role { - 'creation': '2011-06-30 15:49:38', - 'docstatus': 0, 'doctype': 'Module Def Role', - 'idx': 4, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDR00339', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'roles', - 'parenttype': 'Module Def', 'role': 'Quality Manager' } ] \ No newline at end of file diff --git a/erpnext/stock/doctype/serial_no/serial_no.txt b/erpnext/stock/doctype/serial_no/serial_no.txt index 9aa6119ffc3..277a2ecc7d2 100644 --- a/erpnext/stock/doctype/serial_no/serial_no.txt +++ b/erpnext/stock/doctype/serial_no/serial_no.txt @@ -5,17 +5,18 @@ { 'creation': '2010-08-08 17:09:23', 'docstatus': 0, - 'modified': '2011-05-17 12:38:15', + 'modified': '2011-10-10 17:08:57', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1305616095', + '_last_update': '1317365120', 'allow_trash': 1, 'autoname': 'field:serial_no', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Master', 'module': 'Stock', @@ -24,9 +25,8 @@ 'section_style': 'Tabbed', 'server_code_error': ' ', 'show_in_menu': 0, - 'subject': '%(item_code)s', 'tag_fields': 'status', - 'version': 188 + 'version': 190 }, # These values are common for all DocField @@ -60,7 +60,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 1, 'role': 'Material Manager', 'submit': 0, @@ -73,7 +72,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'Material Manager', 'submit': 0, @@ -86,7 +84,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 1, 'role': 'Material User', 'submit': 0, @@ -99,7 +96,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 0, 'role': 'Material User', 'submit': 0, @@ -111,7 +107,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 0, 'role': 'System Manager', 'write': 1 @@ -122,7 +117,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 0, 'role': 'Material Master Manager', 'write': 1 @@ -131,7 +125,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 7, 'permlevel': 1, 'role': 'System Manager' }, @@ -139,7 +132,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 8, 'permlevel': 1, 'role': 'Sales Master Manager' }, @@ -148,7 +140,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Details', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -158,7 +149,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 2, 'permlevel': 0 }, @@ -168,7 +158,6 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 3, 'in_filter': 1, 'label': 'Status', 'no_copy': 1, @@ -185,7 +174,6 @@ 'doctype': 'DocField', 'fieldname': 'serial_no', 'fieldtype': 'Data', - 'idx': 4, 'in_filter': 0, 'label': 'Serial No', 'no_copy': 1, @@ -193,7 +181,7 @@ 'oldfieldtype': 'Data', 'permlevel': 0, 'reqd': 1, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -202,7 +190,6 @@ 'doctype': 'DocField', 'fieldname': 'item_code', 'fieldtype': 'Link', - 'idx': 5, 'in_filter': 1, 'label': 'Item Code', 'oldfieldname': 'item_code', @@ -218,7 +205,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 6, 'permlevel': 0 }, @@ -227,7 +213,6 @@ 'doctype': 'DocField', 'fieldname': 'item_name', 'fieldtype': 'Data', - 'idx': 7, 'label': 'Item Name', 'permlevel': 1 }, @@ -237,13 +222,11 @@ 'doctype': 'DocField', 'fieldname': 'description', 'fieldtype': 'Text', - 'idx': 8, 'in_filter': 1, 'label': 'Description', 'oldfieldname': 'description', 'oldfieldtype': 'Text', 'permlevel': 1, - 'reqd': 1, 'search_index': 0, 'width': '300px' }, @@ -253,14 +236,13 @@ 'doctype': 'DocField', 'fieldname': 'item_group', 'fieldtype': 'Link', - 'idx': 9, 'in_filter': 0, 'label': 'Item Group', 'oldfieldname': 'item_group', 'oldfieldtype': 'Link', 'options': 'Item Group', 'permlevel': 1, - 'reqd': 0, + 'reqd': 1, 'search_index': 0 }, @@ -269,7 +251,6 @@ 'doctype': 'DocField', 'fieldname': 'brand', 'fieldtype': 'Link', - 'idx': 10, 'in_filter': 0, 'label': 'Brand', 'oldfieldname': 'brand', @@ -284,7 +265,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 11, 'label': 'Purchase Details', 'permlevel': 0 }, @@ -293,7 +273,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 12, 'permlevel': 0, 'width': '50%' }, @@ -303,7 +282,6 @@ 'doctype': 'DocField', 'fieldname': 'purchase_document_type', 'fieldtype': 'Select', - 'idx': 13, 'label': 'Purchase Document Type', 'no_copy': 1, 'options': '\nPurchase Receipt\nStock Entry', @@ -316,7 +294,6 @@ 'fieldname': 'purchase_document_no', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 14, 'label': 'Purchase Document No', 'no_copy': 1, 'permlevel': 0 @@ -328,7 +305,6 @@ 'doctype': 'DocField', 'fieldname': 'purchase_date', 'fieldtype': 'Date', - 'idx': 15, 'in_filter': 1, 'label': 'Purchase Date', 'no_copy': 1, @@ -345,7 +321,6 @@ 'doctype': 'DocField', 'fieldname': 'purchase_time', 'fieldtype': 'Time', - 'idx': 16, 'label': 'Incoming Time', 'no_copy': 1, 'permlevel': 0, @@ -357,7 +332,6 @@ 'doctype': 'DocField', 'fieldname': 'purchase_rate', 'fieldtype': 'Currency', - 'idx': 17, 'in_filter': 0, 'label': 'Incoming Rate', 'no_copy': 1, @@ -372,7 +346,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 18, 'permlevel': 0, 'width': '50%' }, @@ -382,7 +355,6 @@ 'doctype': 'DocField', 'fieldname': 'warehouse', 'fieldtype': 'Link', - 'idx': 19, 'in_filter': 1, 'label': 'Warehouse', 'no_copy': 1, @@ -399,7 +371,6 @@ 'doctype': 'DocField', 'fieldname': 'supplier', 'fieldtype': 'Link', - 'idx': 20, 'in_filter': 1, 'label': 'Supplier', 'no_copy': 1, @@ -412,7 +383,6 @@ 'doctype': 'DocField', 'fieldname': 'supplier_name', 'fieldtype': 'Data', - 'idx': 21, 'in_filter': 1, 'label': 'Supplier Name', 'no_copy': 1, @@ -424,7 +394,6 @@ 'doctype': 'DocField', 'fieldname': 'address_display', 'fieldtype': 'Text', - 'idx': 22, 'label': 'Supplier Address', 'no_copy': 1, 'permlevel': 1 @@ -434,7 +403,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 23, 'label': 'Delivery Details', 'oldfieldtype': 'Column Break', 'permlevel': 0 @@ -444,7 +412,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 24, 'permlevel': 0, 'width': '50%' }, @@ -454,7 +421,6 @@ 'doctype': 'DocField', 'fieldname': 'delivery_document_type', 'fieldtype': 'Select', - 'idx': 25, 'in_filter': 1, 'label': 'Delivery Document Type', 'no_copy': 1, @@ -467,7 +433,6 @@ 'doctype': 'DocField', 'fieldname': 'delivery_document_no', 'fieldtype': 'Data', - 'idx': 26, 'in_filter': 1, 'label': 'Delivery Document No', 'no_copy': 1, @@ -479,7 +444,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_address', 'fieldtype': 'Text', - 'idx': 27, 'label': 'Customer Address', 'oldfieldname': 'customer_address', 'oldfieldtype': 'Text', @@ -491,7 +455,6 @@ 'doctype': 'DocField', 'fieldname': 'delivery_date', 'fieldtype': 'Date', - 'idx': 28, 'label': 'Delivery Date', 'no_copy': 1, 'oldfieldname': 'delivery_date', @@ -505,7 +468,6 @@ 'doctype': 'DocField', 'fieldname': 'delivery_time', 'fieldtype': 'Time', - 'idx': 29, 'label': 'Delivery Time', 'no_copy': 1, 'permlevel': 1 @@ -517,7 +479,6 @@ 'fieldname': 'is_cancelled', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 30, 'label': 'Is Cancelled', 'oldfieldname': 'is_cancelled', 'oldfieldtype': 'Select', @@ -530,7 +491,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 31, 'permlevel': 0, 'width': '50%' }, @@ -540,7 +500,6 @@ 'doctype': 'DocField', 'fieldname': 'customer', 'fieldtype': 'Link', - 'idx': 32, 'in_filter': 1, 'label': 'Customer', 'no_copy': 1, @@ -559,7 +518,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 33, 'in_filter': 1, 'label': 'Customer Name', 'no_copy': 1, @@ -574,7 +532,6 @@ 'doctype': 'DocField', 'fieldname': 'delivery_address', 'fieldtype': 'Text', - 'idx': 34, 'label': 'Delivery Address', 'no_copy': 1, 'permlevel': 1 @@ -585,7 +542,6 @@ 'doctype': 'DocField', 'fieldname': 'territory', 'fieldtype': 'Link', - 'idx': 35, 'in_filter': 1, 'label': 'Territory', 'no_copy': 1, @@ -601,7 +557,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 36, 'label': 'Warranty / AMC Details', 'permlevel': 0 }, @@ -610,7 +565,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 37, 'permlevel': 0, 'width': '50%' }, @@ -620,7 +574,6 @@ 'doctype': 'DocField', 'fieldname': 'maintenance_status', 'fieldtype': 'Select', - 'idx': 38, 'in_filter': 1, 'label': 'Maintenance Status', 'no_copy': 0, @@ -628,7 +581,7 @@ 'oldfieldtype': 'Select', 'options': '\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC', 'permlevel': 0, - 'search_index': 0, + 'search_index': 1, 'width': '150px' }, @@ -638,7 +591,6 @@ 'doctype': 'DocField', 'fieldname': 'warranty_period', 'fieldtype': 'Int', - 'idx': 39, 'label': 'Warranty Period (Days)', 'oldfieldname': 'warranty_period', 'oldfieldtype': 'Int', @@ -651,7 +603,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 40, 'permlevel': 0, 'width': '50%' }, @@ -661,7 +612,6 @@ 'doctype': 'DocField', 'fieldname': 'warranty_expiry_date', 'fieldtype': 'Date', - 'idx': 41, 'in_filter': 1, 'label': 'Warranty Expiry Date', 'oldfieldname': 'warranty_expiry_date', @@ -675,7 +625,6 @@ 'doctype': 'DocField', 'fieldname': 'amc_expiry_date', 'fieldtype': 'Date', - 'idx': 42, 'in_filter': 1, 'label': 'AMC Expiry Date', 'oldfieldname': 'amc_expiry_date', @@ -689,7 +638,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 43, 'label': 'More Info', 'permlevel': 0 }, @@ -699,7 +647,6 @@ 'doctype': 'DocField', 'fieldname': 'serial_no_details', 'fieldtype': 'Text Editor', - 'idx': 44, 'label': 'Serial No Details', 'permlevel': 0 }, @@ -709,13 +656,12 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Select', - 'idx': 45, 'in_filter': 1, 'label': 'Company', 'options': 'link:Company', 'permlevel': 0, 'reqd': 1, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -723,13 +669,12 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 46, 'in_filter': 1, 'label': 'Fiscal Year', 'options': 'link:Fiscal Year', 'permlevel': 0, 'reqd': 1, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -737,7 +682,6 @@ 'doctype': 'DocField', 'fieldname': 'trash_reason', 'fieldtype': 'Small Text', - 'idx': 47, 'label': 'Trash Reason', 'oldfieldname': 'trash_reason', 'oldfieldtype': 'Small Text', diff --git a/erpnext/support/Module Def/Support/Support.txt b/erpnext/support/Module Def/Support/Support.txt index 9b395727560..9c66c3d1c3d 100644 --- a/erpnext/support/Module Def/Support/Support.txt +++ b/erpnext/support/Module Def/Support/Support.txt @@ -1,281 +1,149 @@ +# Module Def, Support [ + + # These values are common in all dictionaries { - '_last_update': None, - 'creation': '2011-06-30 15:51:59', - 'disabled': 'No', + 'creation': '2011-07-01 17:42:15', 'docstatus': 0, + 'modified': '2011-10-10 16:59:49', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all Module Def Role + { + 'doctype': 'Module Def Role', + 'name': '__common__', + 'parent': 'Support', + 'parentfield': 'roles', + 'parenttype': 'Module Def' + }, + + # These values are common for all Module Def Item + { + 'doctype': 'Module Def Item', + 'name': '__common__', + 'parent': 'Support', + 'parentfield': 'items', + 'parenttype': 'Module Def' + }, + + # These values are common for all Module Def + { + 'disabled': 'No', 'doctype': u'Module Def', 'doctype_list': 'DocType Label, Ticket', - 'file_list': None, - 'idx': None, 'is_hidden': 'No', - 'last_updated_date': None, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', 'module_desc': 'Manage maintenance quotes, orders, schedule etc.', 'module_icon': 'Maintenance.gif', 'module_label': 'Support', 'module_name': 'Support', - 'module_page': None, 'module_seq': 8, - 'name': 'Support', - 'owner': 'Administrator', - 'parent': None, - 'parentfield': None, - 'parenttype': None, - 'trash_reason': None, - 'widget_code': None + 'name': '__common__' }, + + # Module Def, Support { - 'click_function': None, - 'creation': '2011-06-30 15:51:59', - 'description': 'A unique number identifying each entity of an item', - 'display_name': 'Serial No', - 'doc_name': 'Serial No', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': 'item_code\nstatus\npr_no\ndelivery_note_no\ncustomer', - 'hide': None, - 'icon': None, - 'idx': 1, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDI01361', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': u'Module Def', + 'name': 'Support' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:51:59', 'description': "Database of Support Ticket's raised by Customers", 'display_name': 'Support Ticket', 'doc_name': 'Support Ticket', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': 'status\nopening_date\ncustomer\nallocated_to', - 'hide': None, - 'icon': None, - 'idx': 2, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDI01362', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'fields': 'status\nopening_date\ncustomer\nallocated_to' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:51:59', 'description': 'Create schedule based on maintenance order', 'display_name': 'Maintenance Schedule', 'doc_name': 'Maintenance Schedule', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': 'status\ntransaction_date\ncustomer\nsales_order_no', - 'hide': None, - 'icon': None, - 'idx': 3, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDI01363', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'fields': 'status\ntransaction_date\ncustomer\nsales_order_no' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:51:59', 'description': 'Database of issues raised your Customers', 'display_name': 'Customer Issue', 'doc_name': 'Customer Issue', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': 'status\ncomplaint_date\ncustomer\nallocated_to\nallocated_on', - 'hide': None, - 'icon': None, - 'idx': 4, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDI01364', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'fields': 'status\ncomplaint_date\ncustomer\nallocated_to\nallocated_on' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:51:59', - 'description': None, 'display_name': 'Maintenance Visit', 'doc_name': 'Maintenance Visit', 'doc_type': 'Forms', - 'docstatus': 0, 'doctype': 'Module Def Item', - 'fields': 'status\nmntc_date\ncustomer\nmaintenance_type\ncompletion_status', - 'hide': None, - 'icon': None, - 'idx': 5, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDI01365', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'fields': 'status\nmntc_date\ncustomer\nmaintenance_type\ncompletion_status' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:51:59', 'description': 'List of all scheduled mainteance. You can filter by sales person, date, serial no etc. ', 'display_name': 'Maintenance Schedule Details', 'doc_name': 'Maintenance Schedule Detail', 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 6, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDI01366', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:51:59', 'description': 'List of all issues raised by customer', 'display_name': 'Customer Issues', 'doc_name': 'Customer Issue', 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 7, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDI01367', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:51:59', - 'description': None, 'display_name': 'Warranty/AMC Expiry Details', 'doc_name': 'Serial No', 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 8, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDI01368', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:51:59', - 'description': None, 'display_name': 'Warranty/AMC Summary', 'doc_name': 'Serial No', 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 9, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDI01369', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Item { - 'click_function': None, - 'creation': '2011-06-30 15:51:59', - 'description': None, 'display_name': 'Maintenance Orderwise Pending Amount To Bill', 'doc_name': 'Sales Order Detail', 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 10, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDI01370', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'items', - 'parenttype': 'Module Def' + 'doctype': 'Module Def Item' }, + + # Module Def Role { - 'creation': '2011-06-30 15:51:59', - 'docstatus': 0, 'doctype': 'Module Def Role', - 'idx': 1, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDR00342', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'roles', - 'parenttype': 'Module Def', 'role': 'Administrator' }, + + # Module Def Role { - 'creation': '2011-06-30 15:51:59', - 'docstatus': 0, 'doctype': 'Module Def Role', - 'idx': 2, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDR00343', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'roles', - 'parenttype': 'Module Def', 'role': 'Maintenance User' }, + + # Module Def Role { - 'creation': '2011-06-30 15:51:59', - 'docstatus': 0, 'doctype': 'Module Def Role', - 'idx': 3, - 'modified': '2011-07-01 09:36:38', - 'modified_by': 'Administrator', - 'name': 'MDR00344', - 'owner': 'Administrator', - 'parent': 'Support', - 'parentfield': 'roles', - 'parenttype': 'Module Def', 'role': 'Maintenance Manager' } ] \ No newline at end of file From 24ef523cacfa4ffda4c758d83312fba1898b7ef8 Mon Sep 17 00:00:00 2001 From: Ravi Dey Date: Mon, 10 Oct 2011 18:39:49 +0530 Subject: [PATCH 80/84] Issue fixed in setup control --- erpnext/setup/doctype/setup_control/setup_control.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/setup/doctype/setup_control/setup_control.py b/erpnext/setup/doctype/setup_control/setup_control.py index 428c4345bd0..55b967e14ab 100644 --- a/erpnext/setup/doctype/setup_control/setup_control.py +++ b/erpnext/setup/doctype/setup_control/setup_control.py @@ -84,7 +84,7 @@ class DocType: # Set Registration Complete set_default('registration_complete','1') - webnotes.msgprint("Great! Your company has now been created") + msgprint("Great! Your company has now been created") import webnotes.utils return webnotes.utils.get_defaults() @@ -204,4 +204,4 @@ class DocType: if (cp_defaults==args['account_name']) and user_profile and \ (total_users==cint(args['total_users'])): return 'True' - \ No newline at end of file + From 6edb4635e6bb89f05f4b5bb957f8c3680fb28f82 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 11 Oct 2011 10:50:23 +0530 Subject: [PATCH 81/84] fixed bugs --- .../Purchase Order-Purchase Receipt.txt | 2 +- index.html | 2 +- versions-master.db | Bin 461824 -> 591872 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt index c34f00617d5..9a860078c3c 100644 --- a/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt +++ b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:09:35', 'docstatus': 0, - 'modified': '2011-10-07 12:10:26', + 'modified': '2011-10-11 10:01:02', 'modified_by': 'Administrator', 'owner': 'Administrator' }, diff --git a/index.html b/index.html index 64eef0f666a..cedc9dca0ea 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ ERPNext -

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 z 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