From 1ead1fcef1d8fe01fadd56ea6611063924593e76 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 27 Jul 2011 15:41:11 +0530 Subject: [PATCH 001/133] 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 002/133] 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 003/133] 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 f4bbbc705204aa027d2d8fdadcd10f7b401f0172 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 30 Aug 2011 17:40:48 +0530 Subject: [PATCH 004/133] reload delivery note detail and item coustomer details --- patches/patch.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 9a2bb8371c8..f5b7fe8657e 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 343 +last_patch = 344 #------------------------------------------- @@ -1425,3 +1425,6 @@ def execute(patch_no): sql("update `tabDocField` set permlevel = 0 where parent = 'Stock Entry Detail' and fieldname in ('s_warehouse', 't_warehouse', 'fg_item')") elif patch_no == 343: sql("delete from `tabDocFormat` where ifnull(format, '') = '' and parent = 'Delivery Note'") + elif patch_no == 344: + reload_doc('stock', 'doctype', 'delivery_note_detail') + reload_doc('stock', 'doctype', 'item_customer_detail') From 66ac2b018a2d4177264896d564b725602a715a84 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 5 Sep 2011 18:43:09 +0530 Subject: [PATCH 005/133] 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 006/133] 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 009/133] 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 8ccaed3e2d1bc13742f87d2e236b8105768d4675 Mon Sep 17 00:00:00 2001 From: Brahma K Date: Wed, 7 Sep 2011 11:26:17 +0530 Subject: [PATCH 010/133] added feature setup to setup list --- setup/page/setup/setup.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup/page/setup/setup.js b/setup/page/setup/setup.js index b29e7ad9e0a..7c1245ad29a 100644 --- a/setup/page/setup/setup.js +++ b/setup/page/setup/setup.js @@ -172,7 +172,8 @@ SetupData = function(cnty){ ['Property Setter',1,'Property Setter','', 'Customize properties of a Form (DocType) or Field'], ['Letter Head',1,'Letter Head','','Manage different letter heads for Prints'], ['SMS Settings',3,'SMS Settings','','Integrate your personalized SMS gateway which support http web service'], - ['SMS Center',3,'SMS Center','','Send mass sms to your leads, contacts and partners'] + ['SMS Center',3,'SMS Center','','Send mass sms to your leads, contacts and partners'], + ['Features Setup',3,'Features Setup','','Displays fields based on features selected'] ]}; From 8c572e1fb10cb4582743ff4b912c9f6548f1583b Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 11:41:22 +0530 Subject: [PATCH 011/133] corrected spelling mistake in patch --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index e815865e84a..f550aa9b263 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -293,7 +293,7 @@ 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 69d15deb476a850556b8f1ed1b7c141f523b6cc2 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 15:09:51 +0530 Subject: [PATCH 012/133] fixed sql syntax --- stock/doctype/delivery_note/delivery_note.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py index e5acd163a75..00711978a80 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/stock/doctype/delivery_note/delivery_note.py @@ -444,7 +444,7 @@ class DocType(TransactionBase): def update_pack_nett_weight(self): for d in getlist(self.doclist, 'delivery_note_details'): if d.item_name: - item_wt = sql("select nett_weight from `tabItem` where item_name = '%s'" % (d.item_name)) + item_wt = sql("select nett_weight from `tabItem` where item_name = %s", (d.item_name)) d.pack_nett_wt = item_wt and flt(item_wt[0][0])*flt(d.qty) or 0 # ========================================== From 9e79aa814a0affb9ab881a201f564c4efabd6ad4 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 15:12:05 +0530 Subject: [PATCH 013/133] default_print_format added in doctype --- patches/patch.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/patches/patch.py b/patches/patch.py index f550aa9b263..906e039b0ff 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 355 +last_patch = 356 #------------------------------------------- @@ -305,4 +305,6 @@ def execute(patch_no): elif patch_no == 355: reload_doc('hr', 'doctype', 'salary_slip') delete_doc('DocType', 'Salary Control Panel') - + elif patch_no == 356: + reload_doc('doctype', 'core', 'doctype') + sql("update `tabDocType` set default_print_format = 'Standard'") From bdebd71bd7b903ca5d698bc2cb677f13e7821941 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 15:21:40 +0530 Subject: [PATCH 014/133] default_print_format field added --- patches/patch.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index f5f88469dd2..c1e0d5f0433 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 352 +last_patch = 353 #------------------------------------------- @@ -290,3 +290,6 @@ def execute(patch_no): ch = addchild(dt_obj.doc, 'formats', 'DocFormat', 1) ch.format = 'Delivery Note Packing List Wise' ch.save(1) + elif patch_no == 353: + reload_doc('doctype', 'core', 'doctype') + sql("update `tabDocType` set default_print_format = 'Standard'") From 936dcd8d988a969595d0403dc8d8f2d312e82b76 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 15:34:57 +0530 Subject: [PATCH 015/133] delete redundant code fields from doctype --- patches/patch.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 906e039b0ff..9d6e731a9c7 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 356 +last_patch = 357 #------------------------------------------- @@ -308,3 +308,5 @@ def execute(patch_no): elif patch_no == 356: reload_doc('doctype', 'core', 'doctype') sql("update `tabDocType` set default_print_format = 'Standard'") + elif patch_no == 357: + sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', change_log) or label = 'Template') and parent = 'DocType'") From 93fa876c7cbd23c37e98db088371c83ce0cf3d01 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 15:54:22 +0530 Subject: [PATCH 016/133] patch fixed --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 9d6e731a9c7..e4b38d0f621 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -307,6 +307,6 @@ def execute(patch_no): delete_doc('DocType', 'Salary Control Panel') elif patch_no == 356: reload_doc('doctype', 'core', 'doctype') - sql("update `tabDocType` set default_print_format = 'Standard'") + sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") elif patch_no == 357: sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', change_log) or label = 'Template') and parent = 'DocType'") From d89d59bcb2a02492fc846a299d33ea65bd3babcb Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 15:57:51 +0530 Subject: [PATCH 017/133] patch fixed --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index c1e0d5f0433..5534848afc7 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -292,4 +292,4 @@ def execute(patch_no): ch.save(1) elif patch_no == 353: reload_doc('doctype', 'core', 'doctype') - sql("update `tabDocType` set default_print_format = 'Standard'") + sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") From 067559ca9d1f93dffcf9d85a4ca42f1b25bb1e12 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 16:04:55 +0530 Subject: [PATCH 018/133] fixed patch --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 5534848afc7..f89ffc8604c 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -291,5 +291,5 @@ def execute(patch_no): ch.format = 'Delivery Note Packing List Wise' ch.save(1) elif patch_no == 353: - reload_doc('doctype', 'core', 'doctype') + reload_doc('core', 'doctype', 'doctype') sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") From 332d56db387db1aafe751e87b0e793f1ebaf9631 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 16:05:29 +0530 Subject: [PATCH 019/133] fixed patch --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index e4b38d0f621..e5586f8bc81 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -306,7 +306,7 @@ def execute(patch_no): reload_doc('hr', 'doctype', 'salary_slip') delete_doc('DocType', 'Salary Control Panel') elif patch_no == 356: - reload_doc('doctype', 'core', 'doctype') + reload_doc('core', 'doctype', 'doctype') sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") elif patch_no == 357: sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', change_log) or label = 'Template') and parent = 'DocType'") From c6b506158b36aed51d479c1c45c419c54e9c4540 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 16:06:42 +0530 Subject: [PATCH 020/133] fixed patch --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index e4b38d0f621..e5586f8bc81 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -306,7 +306,7 @@ def execute(patch_no): reload_doc('hr', 'doctype', 'salary_slip') delete_doc('DocType', 'Salary Control Panel') elif patch_no == 356: - reload_doc('doctype', 'core', 'doctype') + reload_doc('core', 'doctype', 'doctype') sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") elif patch_no == 357: sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', change_log) or label = 'Template') and parent = 'DocType'") From 1477f23b4c3e724a5a12fcab31eb8c8c01a2301e Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 16:09:41 +0530 Subject: [PATCH 021/133] fixed patch --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index e5586f8bc81..6ca01714f7e 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -309,4 +309,4 @@ def execute(patch_no): reload_doc('core', 'doctype', 'doctype') sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") elif patch_no == 357: - sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', change_log) or label = 'Template') and parent = 'DocType'") + sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', 'change_log') or label = 'Template') and parent = 'DocType'") From 99c1edc86f1b9bb0a55373bf7437340270c29a5f Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 16:10:25 +0530 Subject: [PATCH 022/133] fixed patch --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index e5586f8bc81..6ca01714f7e 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -309,4 +309,4 @@ def execute(patch_no): reload_doc('core', 'doctype', 'doctype') sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") elif patch_no == 357: - sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', change_log) or label = 'Template') and parent = 'DocType'") + sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', 'change_log') or label = 'Template') and parent = 'DocType'") From 20551b6551183d6fe5b2653be16c881c5e5fbe3c Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 16:59:58 +0530 Subject: [PATCH 023/133] fixed patch --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index e4b38d0f621..21d8e2a5321 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -309,4 +309,4 @@ def execute(patch_no): reload_doc('doctype', 'core', 'doctype') sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") elif patch_no == 357: - sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', change_log) or label = 'Template') and parent = 'DocType'") + sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', 'change_log') or label = 'Template') and parent = 'DocType'") From 11e895713e56a82c4d21c5cb9f89a633f60a7659 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 17:06:03 +0530 Subject: [PATCH 024/133] escape sequence in dn query --- stock/doctype/delivery_note/delivery_note.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py index 00711978a80..6d48914429c 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/stock/doctype/delivery_note/delivery_note.py @@ -443,8 +443,8 @@ class DocType(TransactionBase): # ========================================== def update_pack_nett_weight(self): for d in getlist(self.doclist, 'delivery_note_details'): - if d.item_name: - item_wt = sql("select nett_weight from `tabItem` where item_name = %s", (d.item_name)) + if d.item_code: + item_wt = sql("select nett_weight from `tabItem` where name = %s", (d.item_code)) d.pack_nett_wt = item_wt and flt(item_wt[0][0])*flt(d.qty) or 0 # ========================================== From ce419c5f7c72803e9240eeac5ea2a8066137dbe0 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 17:09:15 +0530 Subject: [PATCH 025/133] fixed escape seq error in dn --- stock/doctype/delivery_note/delivery_note.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py index e5acd163a75..6d48914429c 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/stock/doctype/delivery_note/delivery_note.py @@ -443,8 +443,8 @@ class DocType(TransactionBase): # ========================================== def update_pack_nett_weight(self): for d in getlist(self.doclist, 'delivery_note_details'): - if d.item_name: - item_wt = sql("select nett_weight from `tabItem` where item_name = '%s'" % (d.item_name)) + if d.item_code: + item_wt = sql("select nett_weight from `tabItem` where name = %s", (d.item_code)) d.pack_nett_wt = item_wt and flt(item_wt[0][0])*flt(d.qty) or 0 # ========================================== From 9f1bd9e835e90d1659210ee3fe8f6083e31a681b Mon Sep 17 00:00:00 2001 From: Brahma K Date: Wed, 7 Sep 2011 17:18:35 +0530 Subject: [PATCH 026/133] Flat BOM Related modifications --- .../bill_of_materials/bill_of_materials.py | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/production/doctype/bill_of_materials/bill_of_materials.py b/production/doctype/bill_of_materials/bill_of_materials.py index d287d2f9d57..9727a63fa86 100644 --- a/production/doctype/bill_of_materials/bill_of_materials.py +++ b/production/doctype/bill_of_materials/bill_of_materials.py @@ -499,19 +499,19 @@ class DocType: def get_child_flat_bom_items(self, item, d): child_flat_bom_items=[] - if item and (item[0]['is_sub_contracted_item'] == 'Yes' or item[0]['is_pro_applicable'] == 'Yes'): +# if item and (item[0]['is_sub_contracted_item'] == 'Yes' or item[0]['is_pro_applicable'] == 'Yes'): - child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, '%s' as parent_bom, bom_mat_no, 'No' as is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and is_pro_applicable = 'No' and docstatus = 1" % ( d.bom_no, cstr(d.bom_no))) - self.cur_flat_bom_items.append([d.item_code, d.description, flt(d.qty), d.stock_uom, flt(d.moving_avg_rate), flt(d.amount_as_per_mar), flt(d.last_purchase_rate), flt(d.amount_as_per_lpr), flt(d.standard_rate), flt(d.amount_as_per_sr), flt(d.qty_consumed_per_unit), (item[0]['is_sub_contracted_item'] == 'Yes') and d.parent or d.bom_no, d.name, (item[0]['is_sub_contracted_item'] == 'Yes') and 'No' or 'Yes']) + child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, '%s' as parent_bom, bom_mat_no, 'No' as is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and is_pro_applicable = 'No' and docstatus = 1" % ( d.bom_no, cstr(d.bom_no))) + self.cur_flat_bom_items.append([d.item_code, d.description, flt(d.qty), d.stock_uom, flt(d.moving_avg_rate), flt(d.amount_as_per_mar), flt(d.last_purchase_rate), flt(d.amount_as_per_lpr), flt(d.standard_rate), flt(d.amount_as_per_sr), flt(d.qty_consumed_per_unit), (item[0]['is_sub_contracted_item'] == 'Yes') and d.parent or d.bom_no, d.name, (item[0]['is_sub_contracted_item'] == 'Yes') and 'No' or 'Yes']) + return child_flat_bom_items - else: - child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, if(parent_bom = '%s', '%s', parent_bom) as parent_bom, bom_mat_no, is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and docstatus = 1" % ( d.bom_no, d.parent, cstr(d.bom_no))) +# else: +# child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, if(parent_bom = '%s', '%s', parent_bom) as parent_bom, bom_mat_no, is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and docstatus = 1" % ( d.bom_no, d.parent, cstr(d.bom_no))) - if not child_flat_bom_items: - msgprint("Please Submit Child BOM := %s first." % cstr(d.bom_no)) - raise Exception - else: - return child_flat_bom_items +# if not child_flat_bom_items: +# msgprint("Please Submit Child BOM := %s first." % cstr(d.bom_no)) +# raise Exception +# else:""" # Get Current Flat BOM Items From 1dbd2cd7eb91691d863027d852a79ecfd33342c6 Mon Sep 17 00:00:00 2001 From: Brahma K Date: Wed, 7 Sep 2011 17:37:39 +0530 Subject: [PATCH 027/133] Delivery Note: Packing relate fields are hidden in print, PO No and PO Date moved up --- stock/doctype/delivery_note/delivery_note.txt | 174 ++++-------------- .../delivery_note_detail.txt | 78 +++----- 2 files changed, 61 insertions(+), 191 deletions(-) diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt index 1ab19e070c9..a3897ec17b4 100644 --- a/stock/doctype/delivery_note/delivery_note.txt +++ b/stock/doctype/delivery_note/delivery_note.txt @@ -5,7 +5,7 @@ { 'creation': '2011-04-18 15:58:20', 'docstatus': 0, - 'modified': '2011-08-23 15:26:57', + 'modified': '2011-09-07 17:36:34', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,8 +21,9 @@ # These values are common for all DocType { - '_last_update': '1313665263', + '_last_update': '1314093417', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Transaction', 'in_create': 0, @@ -36,7 +37,7 @@ 'show_in_menu': 0, 'subject': 'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed', 'tag_fields': 'billing_status', - 'version': 449 + 'version': 450 }, # These values are common for all DocFormat @@ -71,7 +72,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'role': 'Material User', 'submit': 1, @@ -84,7 +84,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'Sales User', 'submit': 1, @@ -97,7 +96,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'Material Master Manager', 'submit': 1, @@ -110,7 +108,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 0, 'role': 'Material Manager', 'submit': 1, @@ -120,7 +117,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 1, 'role': 'All' }, @@ -128,21 +124,18 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 2, 'role': 'All' }, # DocFormat { - 'doctype': 'DocFormat', - 'idx': 1 + 'doctype': 'DocFormat' }, # DocFormat { - 'doctype': 'DocFormat', - 'idx': 2 + 'doctype': 'DocFormat' }, # DocField @@ -150,7 +143,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Basic Info', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -160,7 +152,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 2, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'trigger': 'Client', @@ -174,7 +165,6 @@ 'doctype': 'DocField', 'fieldname': 'naming_series', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Series', 'no_copy': 1, 'oldfieldname': 'naming_series', @@ -190,7 +180,6 @@ 'doctype': 'DocField', 'fieldname': 'customer', 'fieldtype': 'Link', - 'idx': 4, 'in_filter': 1, 'label': 'Customer', 'oldfieldname': 'customer', @@ -208,7 +197,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_address', 'fieldtype': 'Link', - 'idx': 5, 'in_filter': 1, 'label': 'Shipping Address', 'options': 'Address', @@ -221,7 +209,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_person', 'fieldtype': 'Link', - 'idx': 6, 'in_filter': 1, 'label': 'Contact Person', 'options': 'Contact', @@ -234,7 +221,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 7, 'label': 'Customer Name', 'permlevel': 1 }, @@ -244,7 +230,6 @@ 'doctype': 'DocField', 'fieldname': 'address_display', 'fieldtype': 'Small Text', - 'idx': 8, 'label': 'Shipping Address', 'permlevel': 1 }, @@ -254,7 +239,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_display', 'fieldtype': 'Small Text', - 'idx': 9, 'label': 'Contact', 'permlevel': 1 }, @@ -264,7 +248,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_mobile', 'fieldtype': 'Text', - 'idx': 10, 'label': 'Mobile No', 'permlevel': 1 }, @@ -274,7 +257,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_email', 'fieldtype': 'Text', - 'idx': 11, 'label': 'Contact Email', 'permlevel': 1, 'print_hide': 1 @@ -284,7 +266,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 12, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -297,7 +278,6 @@ 'doctype': 'DocField', 'fieldname': 'transaction_date', 'fieldtype': 'Date', - 'idx': 13, 'in_filter': 1, 'label': 'Voucher Date', 'no_copy': 1, @@ -316,7 +296,6 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 14, 'in_filter': 1, 'label': 'Status', 'no_copy': 1, @@ -338,7 +317,6 @@ 'doctype': 'DocField', 'fieldname': 'per_billed', 'fieldtype': 'Currency', - 'idx': 15, 'in_filter': 1, 'label': '% Amount Billed', 'no_copy': 1, @@ -357,7 +335,6 @@ 'doctype': 'DocField', 'fieldname': 'per_installed', 'fieldtype': 'Currency', - 'idx': 16, 'in_filter': 1, 'label': '% Installed', 'no_copy': 1, @@ -368,13 +345,42 @@ 'search_index': 1 }, + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'po_no', + 'fieldtype': 'Data', + 'hidden': 1, + 'label': 'P.O. No', + 'no_copy': 0, + 'oldfieldname': 'po_no', + 'oldfieldtype': 'Data', + 'permlevel': 1, + 'print_hide': 1, + 'width': '100px' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'po_date', + 'fieldtype': 'Data', + 'hidden': 1, + 'label': 'P.O. Date', + 'no_copy': 0, + 'oldfieldname': 'po_date', + 'oldfieldtype': 'Data', + 'permlevel': 1, + 'print_hide': 1, + 'width': '100px' + }, + # DocField { 'allow_on_submit': 0, 'doctype': 'DocField', 'fieldname': 'amended_from', 'fieldtype': 'Data', - 'idx': 17, 'label': 'Amended From', 'no_copy': 1, 'oldfieldname': 'amended_from', @@ -390,7 +396,6 @@ 'doctype': 'DocField', 'fieldname': 'amendment_date', 'fieldtype': 'Date', - 'idx': 18, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -406,7 +411,6 @@ 'fieldname': 'territory', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 19, 'in_filter': 1, 'label': 'Territory', 'options': 'Territory', @@ -421,7 +425,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_group', 'fieldtype': 'Link', - 'idx': 20, 'in_filter': 1, 'label': 'Customer Group', 'options': 'Customer Group', @@ -434,7 +437,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 21, 'label': 'Transporter Info', 'permlevel': 0 }, @@ -445,7 +447,6 @@ 'doctype': 'DocField', 'fieldname': 'transporter_name', 'fieldtype': 'Data', - 'idx': 22, 'label': 'Transporter Name', 'no_copy': 0, 'oldfieldname': 'transporter_name', @@ -464,7 +465,6 @@ 'doctype': 'DocField', 'fieldname': 'lr_no', 'fieldtype': 'Data', - 'idx': 23, 'label': 'LR No', 'no_copy': 0, 'oldfieldname': 'lr_no', @@ -483,7 +483,6 @@ 'doctype': 'DocField', 'fieldname': 'lr_date', 'fieldtype': 'Date', - 'idx': 24, 'label': 'LR Date', 'no_copy': 0, 'oldfieldname': 'lr_date', @@ -497,7 +496,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 25, 'permlevel': 0, 'width': '50%' }, @@ -507,7 +505,6 @@ 'doctype': 'DocField', 'fieldname': 'challan_no', 'fieldtype': 'Data', - 'idx': 26, 'label': 'Challan No', 'oldfieldname': 'challan_no', 'oldfieldtype': 'Data', @@ -519,7 +516,6 @@ 'doctype': 'DocField', 'fieldname': 'challan_date', 'fieldtype': 'Date', - 'idx': 27, 'label': 'Challan Date', 'oldfieldname': 'challan_date', 'oldfieldtype': 'Date', @@ -531,7 +527,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 28, 'label': 'Items', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -544,7 +539,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_order_no', 'fieldtype': 'Link', - 'idx': 29, 'label': 'Sales Order No', 'no_copy': 0, 'oldfieldname': 'sales_order_no', @@ -559,7 +553,6 @@ 'doctype': 'DocField', 'fieldtype': 'Button', 'hidden': 0, - 'idx': 30, 'label': 'Get Items', 'oldfieldtype': 'Button', 'options': 'pull_sales_order_details', @@ -574,7 +567,6 @@ 'doctype': 'DocField', 'fieldname': 'price_list_name', 'fieldtype': 'Select', - 'idx': 31, 'label': 'Price List', 'oldfieldname': 'price_list_name', 'oldfieldtype': 'Select', @@ -589,7 +581,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 32, 'permlevel': 0, 'width': '50%' }, @@ -601,7 +592,6 @@ 'doctype': 'DocField', 'fieldname': 'currency', 'fieldtype': 'Select', - 'idx': 33, 'label': 'Currency', 'oldfieldname': 'currency', 'oldfieldtype': 'Select', @@ -619,7 +609,6 @@ 'doctype': 'DocField', 'fieldname': 'conversion_rate', 'fieldtype': 'Currency', - 'idx': 34, 'label': 'Conversion Rate', 'no_copy': 0, 'oldfieldname': 'conversion_rate', @@ -633,7 +622,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 35, 'permlevel': 0 }, @@ -642,7 +630,6 @@ 'doctype': 'DocField', 'fieldname': 'delivery_note_details', 'fieldtype': 'Table', - 'idx': 36, 'label': 'Delivery Note Details', 'no_copy': 0, 'oldfieldname': 'delivery_note_details', @@ -657,7 +644,6 @@ 'doctype': 'DocField', 'fieldname': 'net_total', 'fieldtype': 'Currency', - 'idx': 37, 'label': 'Net Total*', 'no_copy': 0, 'oldfieldname': 'net_total', @@ -672,7 +658,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 38, 'label': 'Re-Calculate Values', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -683,7 +668,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 39, 'label': 'Note', 'oldfieldtype': 'HTML', 'options': 'NOTE :* In Base Currency', @@ -696,7 +680,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 40, 'label': 'Taxes', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -709,7 +692,6 @@ 'doctype': 'DocField', 'fieldname': 'charge', 'fieldtype': 'Link', - 'idx': 41, 'label': 'Charge', 'oldfieldname': 'charge', 'oldfieldtype': 'Link', @@ -722,7 +704,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 42, 'label': 'Get Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -735,7 +716,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges', 'fieldtype': 'Table', - 'idx': 43, 'label': 'Other Charges', 'no_copy': 0, 'oldfieldname': 'other_charges', @@ -749,7 +729,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges_total', 'fieldtype': 'Currency', - 'idx': 44, 'label': 'Charges Total', 'oldfieldname': 'other_charges_total', 'oldfieldtype': 'Currency', @@ -762,7 +741,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 45, 'label': 'Calculate Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -774,7 +752,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 46, 'label': 'Other Charges Calculation', 'oldfieldtype': 'HTML', 'permlevel': 0 @@ -785,7 +762,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 47, 'label': 'Totals', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -797,7 +773,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total', 'fieldtype': 'Currency', - 'idx': 48, 'label': 'Grand Total', 'no_copy': 0, 'oldfieldname': 'grand_total', @@ -813,7 +788,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total', 'fieldtype': 'Currency', - 'idx': 49, 'label': 'Rounded Total', 'no_copy': 0, 'oldfieldname': 'rounded_total', @@ -830,7 +804,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words', 'fieldtype': 'Data', - 'idx': 50, 'label': 'In Words', 'no_copy': 0, 'oldfieldname': 'in_words', @@ -844,7 +817,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 51, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -854,7 +826,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total_export', 'fieldtype': 'Currency', - 'idx': 52, 'label': 'Grand Total (Export)', 'no_copy': 0, 'oldfieldname': 'grand_total_export', @@ -870,7 +841,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total_export', 'fieldtype': 'Currency', - 'idx': 53, 'label': 'Rounded Total (Export)', 'no_copy': 0, 'oldfieldname': 'rounded_total_export', @@ -887,7 +857,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words_export', 'fieldtype': 'Data', - 'idx': 54, 'label': 'In Words (Export)', 'no_copy': 0, 'oldfieldname': 'in_words_export', @@ -901,7 +870,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 55, 'label': 'Terms', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -912,7 +880,6 @@ 'doctype': 'DocField', 'fieldname': 'tc_name', 'fieldtype': 'Link', - 'idx': 56, 'label': 'Select Terms', 'oldfieldname': 'tc_name', 'oldfieldtype': 'Link', @@ -926,7 +893,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 57, 'label': 'Get Terms', 'oldfieldtype': 'Button', 'options': 'get_tc_details', @@ -939,7 +905,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 58, 'label': 'Terms HTML', 'oldfieldtype': 'HTML', 'options': 'You can add Terms and Notes that will be printed in the Transaction', @@ -953,7 +918,6 @@ 'doctype': 'DocField', 'fieldname': 'terms', 'fieldtype': 'Text Editor', - 'idx': 59, 'label': 'Term Details', 'oldfieldname': 'terms', 'oldfieldtype': 'Text Editor', @@ -966,7 +930,6 @@ 'description': 'Filling in Additional Information about the Delivery Note will help you analyze your data better.', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 60, 'label': 'More Info', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -979,7 +942,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 61, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -997,7 +959,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 62, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -1018,7 +979,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_date', 'fieldtype': 'Date', - 'idx': 63, 'in_filter': 1, 'label': 'Posting Date', 'no_copy': 1, @@ -1038,7 +998,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_time', 'fieldtype': 'Time', - 'idx': 64, 'in_filter': 0, 'label': 'Posting Time', 'oldfieldname': 'posting_time', @@ -1057,7 +1016,6 @@ 'doctype': 'DocField', 'fieldname': 'project_name', 'fieldtype': 'Link', - 'idx': 65, 'in_filter': 1, 'label': 'Project Name', 'oldfieldname': 'project_name', @@ -1076,7 +1034,6 @@ 'fieldname': 'to_warehouse', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 66, 'label': 'To Warehouse', 'no_copy': 1, 'oldfieldname': 'to_warehouse', @@ -1090,7 +1047,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 67, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -1102,7 +1058,6 @@ 'fieldname': 'billing_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 68, 'label': 'Billing Status', 'no_copy': 1, 'options': '\nNot Billed\nPartly Billed\nFully Billed', @@ -1116,51 +1071,17 @@ 'fieldname': 'installation_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 69, 'label': 'Installation Status', 'permlevel': 0, 'print_hide': 1 }, - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'po_no', - 'fieldtype': 'Data', - 'hidden': 1, - 'idx': 70, - 'label': 'P.O. No', - 'no_copy': 0, - 'oldfieldname': 'po_no', - 'oldfieldtype': 'Data', - 'permlevel': 1, - 'print_hide': 1, - 'width': '100px' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'po_date', - 'fieldtype': 'Data', - 'hidden': 1, - 'idx': 71, - 'label': 'P.O. Date', - 'no_copy': 0, - 'oldfieldname': 'po_date', - 'oldfieldtype': 'Data', - 'permlevel': 1, - 'print_hide': 1, - 'width': '100px' - }, - # DocField { 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldname': 'letter_head', 'fieldtype': 'Select', - 'idx': 72, 'label': 'Letter Head', 'oldfieldname': 'letter_head', 'oldfieldtype': 'Link', @@ -1174,7 +1095,6 @@ 'doctype': 'DocField', 'fieldname': 'source', 'fieldtype': 'Select', - 'idx': 73, 'label': 'Source', 'oldfieldname': 'source', 'oldfieldtype': 'Select', @@ -1190,7 +1110,6 @@ 'doctype': 'DocField', 'fieldname': 'campaign', 'fieldtype': 'Link', - 'idx': 74, 'label': 'Campaign', 'oldfieldname': 'campaign', 'oldfieldtype': 'Link', @@ -1206,7 +1125,6 @@ 'doctype': 'DocField', 'fieldname': 'select_print_heading', 'fieldtype': 'Link', - 'idx': 75, 'label': 'Select Print Heading', 'no_copy': 1, 'oldfieldname': 'select_print_heading', @@ -1224,7 +1142,6 @@ 'doctype': 'DocField', 'fieldname': 'print_without_amount', 'fieldtype': 'Check', - 'idx': 76, 'label': 'Print Without Amount', 'oldfieldname': 'print_without_amount', 'oldfieldtype': 'Check', @@ -1238,7 +1155,6 @@ 'doctype': 'DocField', 'fieldname': 'instructions', 'fieldtype': 'Text', - 'idx': 77, 'label': 'Instructions', 'oldfieldname': 'instructions', 'oldfieldtype': 'Text', @@ -1253,7 +1169,6 @@ 'fieldname': 'cancel_reason', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 78, 'label': 'Cancel Reason', 'no_copy': 1, 'oldfieldname': 'cancel_reason', @@ -1269,7 +1184,6 @@ 'fieldname': 'excise_page', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 79, 'label': 'Excise Page Number', 'oldfieldname': 'excise_page', 'oldfieldtype': 'Data', @@ -1282,7 +1196,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 80, 'label': 'Sales Team', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1293,7 +1206,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 81, 'permlevel': 0, 'width': '50%' }, @@ -1303,7 +1215,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_partner', 'fieldtype': 'Link', - 'idx': 82, 'label': 'Sales Partner', 'no_copy': 0, 'oldfieldname': 'sales_partner', @@ -1320,7 +1231,6 @@ 'doctype': 'DocField', 'fieldname': 'commission_rate', 'fieldtype': 'Currency', - 'idx': 83, 'label': 'Commission Rate (%)', 'no_copy': 0, 'oldfieldname': 'commission_rate', @@ -1337,7 +1247,6 @@ 'doctype': 'DocField', 'fieldname': 'total_commission', 'fieldtype': 'Currency', - 'idx': 84, 'label': 'Total Commission', 'no_copy': 0, 'oldfieldname': 'total_commission', @@ -1351,7 +1260,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 85, 'permlevel': 0, 'width': '50%' }, @@ -1361,7 +1269,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_team', 'fieldtype': 'Table', - 'idx': 86, 'label': 'Sales Team1', 'oldfieldname': 'sales_team', 'oldfieldtype': 'Table', @@ -1375,7 +1282,6 @@ 'doctype': 'DocField', 'fieldtype': 'Section Break', 'hidden': 1, - 'idx': 87, 'label': 'Supplier Details', 'oldfieldtype': 'Section Break', 'options': 'Simple', @@ -1388,7 +1294,6 @@ 'fieldname': 'supplier', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 88, 'label': 'Supplier', 'oldfieldname': 'supplier', 'oldfieldtype': 'Link', @@ -1403,7 +1308,6 @@ 'fieldname': 'supplier_address', 'fieldtype': 'Text', 'hidden': 1, - 'idx': 89, 'label': 'Supplier Address', 'oldfieldname': 'supplier_address', 'oldfieldtype': 'Text', @@ -1418,7 +1322,6 @@ 'fieldname': 'purchase_receipt_no', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 90, 'label': 'Purchase Receipt No', 'no_copy': 1, 'oldfieldname': 'purchase_receipt_no', @@ -1435,7 +1338,6 @@ 'fieldname': 'purchase_order_no', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 91, 'label': 'Purchase Order', 'no_copy': 1, 'oldfieldname': 'purchase_order_no', @@ -1449,7 +1351,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 92, 'label': 'Packing List', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -1460,7 +1361,6 @@ 'doctype': 'DocField', 'fieldname': 'packing_details', 'fieldtype': 'Table', - 'idx': 93, 'label': 'Packing Details', 'oldfieldname': 'packing_details', 'oldfieldtype': 'Table', @@ -1474,7 +1374,6 @@ 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 94, 'label': 'Repair Delivery Note', 'oldfieldtype': 'Button', 'options': 'repair_delivery_note', @@ -1488,7 +1387,6 @@ 'fieldname': 'print_packing_slip', 'fieldtype': 'Text', 'hidden': 1, - 'idx': 95, 'in_filter': 0, 'label': 'Print Packing Slip', 'permlevel': 0, diff --git a/stock/doctype/delivery_note_detail/delivery_note_detail.txt b/stock/doctype/delivery_note_detail/delivery_note_detail.txt index a8fea209c46..be7b98f771f 100644 --- a/stock/doctype/delivery_note_detail/delivery_note_detail.txt +++ b/stock/doctype/delivery_note_detail/delivery_note_detail.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:08:58', 'docstatus': 0, - 'modified': '2011-08-22 12:11:51', + 'modified': '2011-09-07 17:34:13', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,7 +21,7 @@ 'section_style': 'Tray', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 38 + 'version': 40 }, # These values are common for all DocField @@ -44,7 +44,6 @@ 'doctype': 'DocField', 'fieldname': 'item_code', 'fieldtype': 'Link', - 'idx': 1, 'in_filter': 1, 'label': 'Item Code', 'oldfieldname': 'item_code', @@ -63,7 +62,6 @@ 'doctype': 'DocField', 'fieldname': 'item_name', 'fieldtype': 'Data', - 'idx': 2, 'label': 'Item Name', 'oldfieldname': 'item_name', 'oldfieldtype': 'Data', @@ -78,7 +76,6 @@ 'doctype': 'DocField', 'fieldname': 'description', 'fieldtype': 'Small Text', - 'idx': 3, 'label': 'Description', 'oldfieldname': 'description', 'oldfieldtype': 'Small Text', @@ -87,12 +84,26 @@ 'width': '300px' }, + # DocField + { + 'default': '0.00', + 'doctype': 'DocField', + 'fieldname': 'qty', + 'fieldtype': 'Currency', + 'label': 'Quantity', + 'oldfieldname': 'qty', + 'oldfieldtype': 'Currency', + 'permlevel': 0, + 'reqd': 1, + 'trigger': 'Client', + 'width': '100px' + }, + # DocField { 'doctype': 'DocField', 'fieldname': 'stock_uom', 'fieldtype': 'Data', - 'idx': 4, 'label': 'UOM', 'oldfieldname': 'stock_uom', 'oldfieldtype': 'Data', @@ -102,29 +113,12 @@ 'width': '50px' }, - # DocField - { - 'default': '0.00', - 'doctype': 'DocField', - 'fieldname': 'qty', - 'fieldtype': 'Currency', - 'idx': 5, - 'label': 'Quantity', - 'oldfieldname': 'qty', - 'oldfieldtype': 'Currency', - 'permlevel': 0, - 'reqd': 1, - 'trigger': 'Client', - 'width': '100px' - }, - # DocField { 'default': '0.00', 'doctype': 'DocField', 'fieldname': 'ref_rate', 'fieldtype': 'Currency', - 'idx': 6, 'label': 'Ref Rate', 'no_copy': 0, 'oldfieldname': 'ref_rate', @@ -142,7 +136,6 @@ 'doctype': 'DocField', 'fieldname': 'adj_rate', 'fieldtype': 'Float', - 'idx': 7, 'label': 'Discount (%)', 'oldfieldname': 'adj_rate', 'oldfieldtype': 'Float', @@ -157,7 +150,6 @@ 'doctype': 'DocField', 'fieldname': 'export_rate', 'fieldtype': 'Currency', - 'idx': 8, 'label': 'Rate', 'oldfieldname': 'export_rate', 'oldfieldtype': 'Currency', @@ -173,7 +165,6 @@ 'doctype': 'DocField', 'fieldname': 'export_amount', 'fieldtype': 'Currency', - 'idx': 9, 'label': 'Amount', 'oldfieldname': 'export_amount', 'oldfieldtype': 'Currency', @@ -188,7 +179,6 @@ 'doctype': 'DocField', 'fieldname': 'base_ref_rate', 'fieldtype': 'Currency', - 'idx': 10, 'label': 'Ref Rate*', 'oldfieldname': 'base_ref_rate', 'oldfieldtype': 'Currency', @@ -203,7 +193,6 @@ 'doctype': 'DocField', 'fieldname': 'basic_rate', 'fieldtype': 'Currency', - 'idx': 11, 'label': 'Rate*', 'oldfieldname': 'basic_rate', 'oldfieldtype': 'Currency', @@ -219,7 +208,6 @@ 'doctype': 'DocField', 'fieldname': 'amount', 'fieldtype': 'Currency', - 'idx': 12, 'label': 'Amount*', 'oldfieldname': 'amount', 'oldfieldtype': 'Currency', @@ -234,7 +222,6 @@ 'doctype': 'DocField', 'fieldname': 'warehouse', 'fieldtype': 'Link', - 'idx': 13, 'label': 'Warehouse', 'oldfieldname': 'warehouse', 'oldfieldtype': 'Link', @@ -250,7 +237,6 @@ 'doctype': 'DocField', 'fieldname': 'serial_no', 'fieldtype': 'Text', - 'idx': 14, 'in_filter': 1, 'label': 'Serial No', 'no_copy': 1, @@ -266,7 +252,6 @@ 'doctype': 'DocField', 'fieldname': 'batch_no', 'fieldtype': 'Link', - 'idx': 15, 'label': 'Batch No', 'oldfieldname': 'batch_no', 'oldfieldtype': 'Link', @@ -280,7 +265,6 @@ 'doctype': 'DocField', 'fieldname': 'item_group', 'fieldtype': 'Link', - 'idx': 16, 'label': 'Item Group', 'oldfieldname': 'item_group', 'oldfieldtype': 'Link', @@ -294,7 +278,6 @@ 'doctype': 'DocField', 'fieldname': 'brand', 'fieldtype': 'Link', - 'idx': 17, 'label': 'Brand Name', 'oldfieldname': 'brand', 'oldfieldtype': 'Link', @@ -309,9 +292,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_no', 'fieldtype': 'Data', - 'idx': 18, 'label': 'Pack No', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -319,9 +302,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_gross_wt', 'fieldtype': 'Float', - 'idx': 19, 'label': 'Pack Gross Wt', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -329,10 +312,10 @@ 'doctype': 'DocField', 'fieldname': 'weight_uom', 'fieldtype': 'Link', - 'idx': 20, 'label': 'Weight UOM', 'options': 'UOM', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -340,9 +323,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_nett_wt', 'fieldtype': 'Float', - 'idx': 21, 'label': 'Pack Nett Wt', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -350,7 +333,6 @@ 'doctype': 'DocField', 'fieldname': 'no_of_packs', 'fieldtype': 'Int', - 'idx': 22, 'label': 'No of Packs', 'oldfieldname': 'no_of_packs', 'oldfieldtype': 'Int', @@ -364,7 +346,6 @@ 'doctype': 'DocField', 'fieldname': 'pack_unit', 'fieldtype': 'Data', - 'idx': 23, 'label': 'Pack Unit', 'oldfieldname': 'pack_unit', 'oldfieldtype': 'Data', @@ -378,7 +359,6 @@ 'doctype': 'DocField', 'fieldname': 'installed_qty', 'fieldtype': 'Currency', - 'idx': 24, 'label': 'Installed Qty', 'no_copy': 1, 'oldfieldname': 'installed_qty', @@ -393,7 +373,6 @@ 'doctype': 'DocField', 'fieldname': 'actual_qty', 'fieldtype': 'Currency', - 'idx': 25, 'label': 'Available Qty at Warehouse', 'no_copy': 1, 'oldfieldname': 'actual_qty', @@ -408,7 +387,6 @@ 'doctype': 'DocField', 'fieldname': 'billed_amt', 'fieldtype': 'Currency', - 'idx': 26, 'label': 'Billed Amt', 'no_copy': 1, 'permlevel': 1, @@ -423,7 +401,6 @@ 'fieldname': 'prevdoc_docname', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 27, 'in_filter': 1, 'label': 'Against Document No', 'no_copy': 1, @@ -441,7 +418,6 @@ 'fieldname': 'prevdoc_doctype', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 28, 'in_filter': 1, 'label': 'Document Type', 'oldfieldname': 'prevdoc_doctype', @@ -458,7 +434,6 @@ 'fieldname': 'prevdoc_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 29, 'in_filter': 1, 'label': 'Against Document Date', 'oldfieldname': 'prevdoc_date', @@ -473,7 +448,6 @@ 'fieldname': 'prevdoc_detail_docname', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 30, 'in_filter': 1, 'label': 'Against Document Detail No', 'oldfieldname': 'prevdoc_detail_docname', @@ -490,7 +464,6 @@ 'fieldname': 'item_tax_rate', 'fieldtype': 'Small Text', 'hidden': 1, - 'idx': 31, 'label': 'Item Tax Rate', 'oldfieldname': 'item_tax_rate', 'oldfieldtype': 'Small Text', @@ -504,7 +477,6 @@ 'doctype': 'DocField', 'fieldname': 'page_break', 'fieldtype': 'Check', - 'idx': 32, 'label': 'Page Break', 'oldfieldname': 'page_break', 'oldfieldtype': 'Check', From 99f27cbdc4f30ef210c5a76f000707ef7d5afa4d Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 17:42:05 +0530 Subject: [PATCH 028/133] reload delivery note and dn detail --- patches/patch.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 6ca01714f7e..f2748196f5b 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 357 +last_patch = 358 #------------------------------------------- @@ -310,3 +310,6 @@ def execute(patch_no): sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") elif patch_no == 357: sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', 'change_log') or label = 'Template') and parent = 'DocType'") + elif patch_no == 358: + reload_doc('stock', 'doctype', 'delivery_note') + reload_doc('stock', 'doctype', 'delivery_note_detail') From 3465d969c0b95145d810c4cf3f9527079a868470 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 17:50:51 +0530 Subject: [PATCH 029/133] print hide packing_list related flds in dn --- patches/patch.py | 5 +- stock/doctype/delivery_note/delivery_note.txt | 174 ++++-------------- .../delivery_note_detail.txt | 78 +++----- 3 files changed, 65 insertions(+), 192 deletions(-) diff --git a/patches/patch.py b/patches/patch.py index f89ffc8604c..07868bd836f 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 353 +last_patch = 354 #------------------------------------------- @@ -293,3 +293,6 @@ def execute(patch_no): elif patch_no == 353: reload_doc('core', 'doctype', 'doctype') sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") + elif patch_no == 354: + reload_doc('stock', 'doctype', 'delivery_note') + reload_doc('stock', 'doctype', 'delivery_note_detail') diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt index 1ab19e070c9..a3897ec17b4 100644 --- a/stock/doctype/delivery_note/delivery_note.txt +++ b/stock/doctype/delivery_note/delivery_note.txt @@ -5,7 +5,7 @@ { 'creation': '2011-04-18 15:58:20', 'docstatus': 0, - 'modified': '2011-08-23 15:26:57', + 'modified': '2011-09-07 17:36:34', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,8 +21,9 @@ # These values are common for all DocType { - '_last_update': '1313665263', + '_last_update': '1314093417', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Transaction', 'in_create': 0, @@ -36,7 +37,7 @@ 'show_in_menu': 0, 'subject': 'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed', 'tag_fields': 'billing_status', - 'version': 449 + 'version': 450 }, # These values are common for all DocFormat @@ -71,7 +72,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'role': 'Material User', 'submit': 1, @@ -84,7 +84,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'Sales User', 'submit': 1, @@ -97,7 +96,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'Material Master Manager', 'submit': 1, @@ -110,7 +108,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 0, 'role': 'Material Manager', 'submit': 1, @@ -120,7 +117,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 1, 'role': 'All' }, @@ -128,21 +124,18 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 2, 'role': 'All' }, # DocFormat { - 'doctype': 'DocFormat', - 'idx': 1 + 'doctype': 'DocFormat' }, # DocFormat { - 'doctype': 'DocFormat', - 'idx': 2 + 'doctype': 'DocFormat' }, # DocField @@ -150,7 +143,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Basic Info', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -160,7 +152,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 2, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'trigger': 'Client', @@ -174,7 +165,6 @@ 'doctype': 'DocField', 'fieldname': 'naming_series', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Series', 'no_copy': 1, 'oldfieldname': 'naming_series', @@ -190,7 +180,6 @@ 'doctype': 'DocField', 'fieldname': 'customer', 'fieldtype': 'Link', - 'idx': 4, 'in_filter': 1, 'label': 'Customer', 'oldfieldname': 'customer', @@ -208,7 +197,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_address', 'fieldtype': 'Link', - 'idx': 5, 'in_filter': 1, 'label': 'Shipping Address', 'options': 'Address', @@ -221,7 +209,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_person', 'fieldtype': 'Link', - 'idx': 6, 'in_filter': 1, 'label': 'Contact Person', 'options': 'Contact', @@ -234,7 +221,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 7, 'label': 'Customer Name', 'permlevel': 1 }, @@ -244,7 +230,6 @@ 'doctype': 'DocField', 'fieldname': 'address_display', 'fieldtype': 'Small Text', - 'idx': 8, 'label': 'Shipping Address', 'permlevel': 1 }, @@ -254,7 +239,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_display', 'fieldtype': 'Small Text', - 'idx': 9, 'label': 'Contact', 'permlevel': 1 }, @@ -264,7 +248,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_mobile', 'fieldtype': 'Text', - 'idx': 10, 'label': 'Mobile No', 'permlevel': 1 }, @@ -274,7 +257,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_email', 'fieldtype': 'Text', - 'idx': 11, 'label': 'Contact Email', 'permlevel': 1, 'print_hide': 1 @@ -284,7 +266,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 12, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -297,7 +278,6 @@ 'doctype': 'DocField', 'fieldname': 'transaction_date', 'fieldtype': 'Date', - 'idx': 13, 'in_filter': 1, 'label': 'Voucher Date', 'no_copy': 1, @@ -316,7 +296,6 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 14, 'in_filter': 1, 'label': 'Status', 'no_copy': 1, @@ -338,7 +317,6 @@ 'doctype': 'DocField', 'fieldname': 'per_billed', 'fieldtype': 'Currency', - 'idx': 15, 'in_filter': 1, 'label': '% Amount Billed', 'no_copy': 1, @@ -357,7 +335,6 @@ 'doctype': 'DocField', 'fieldname': 'per_installed', 'fieldtype': 'Currency', - 'idx': 16, 'in_filter': 1, 'label': '% Installed', 'no_copy': 1, @@ -368,13 +345,42 @@ 'search_index': 1 }, + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'po_no', + 'fieldtype': 'Data', + 'hidden': 1, + 'label': 'P.O. No', + 'no_copy': 0, + 'oldfieldname': 'po_no', + 'oldfieldtype': 'Data', + 'permlevel': 1, + 'print_hide': 1, + 'width': '100px' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'po_date', + 'fieldtype': 'Data', + 'hidden': 1, + 'label': 'P.O. Date', + 'no_copy': 0, + 'oldfieldname': 'po_date', + 'oldfieldtype': 'Data', + 'permlevel': 1, + 'print_hide': 1, + 'width': '100px' + }, + # DocField { 'allow_on_submit': 0, 'doctype': 'DocField', 'fieldname': 'amended_from', 'fieldtype': 'Data', - 'idx': 17, 'label': 'Amended From', 'no_copy': 1, 'oldfieldname': 'amended_from', @@ -390,7 +396,6 @@ 'doctype': 'DocField', 'fieldname': 'amendment_date', 'fieldtype': 'Date', - 'idx': 18, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -406,7 +411,6 @@ 'fieldname': 'territory', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 19, 'in_filter': 1, 'label': 'Territory', 'options': 'Territory', @@ -421,7 +425,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_group', 'fieldtype': 'Link', - 'idx': 20, 'in_filter': 1, 'label': 'Customer Group', 'options': 'Customer Group', @@ -434,7 +437,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 21, 'label': 'Transporter Info', 'permlevel': 0 }, @@ -445,7 +447,6 @@ 'doctype': 'DocField', 'fieldname': 'transporter_name', 'fieldtype': 'Data', - 'idx': 22, 'label': 'Transporter Name', 'no_copy': 0, 'oldfieldname': 'transporter_name', @@ -464,7 +465,6 @@ 'doctype': 'DocField', 'fieldname': 'lr_no', 'fieldtype': 'Data', - 'idx': 23, 'label': 'LR No', 'no_copy': 0, 'oldfieldname': 'lr_no', @@ -483,7 +483,6 @@ 'doctype': 'DocField', 'fieldname': 'lr_date', 'fieldtype': 'Date', - 'idx': 24, 'label': 'LR Date', 'no_copy': 0, 'oldfieldname': 'lr_date', @@ -497,7 +496,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 25, 'permlevel': 0, 'width': '50%' }, @@ -507,7 +505,6 @@ 'doctype': 'DocField', 'fieldname': 'challan_no', 'fieldtype': 'Data', - 'idx': 26, 'label': 'Challan No', 'oldfieldname': 'challan_no', 'oldfieldtype': 'Data', @@ -519,7 +516,6 @@ 'doctype': 'DocField', 'fieldname': 'challan_date', 'fieldtype': 'Date', - 'idx': 27, 'label': 'Challan Date', 'oldfieldname': 'challan_date', 'oldfieldtype': 'Date', @@ -531,7 +527,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 28, 'label': 'Items', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -544,7 +539,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_order_no', 'fieldtype': 'Link', - 'idx': 29, 'label': 'Sales Order No', 'no_copy': 0, 'oldfieldname': 'sales_order_no', @@ -559,7 +553,6 @@ 'doctype': 'DocField', 'fieldtype': 'Button', 'hidden': 0, - 'idx': 30, 'label': 'Get Items', 'oldfieldtype': 'Button', 'options': 'pull_sales_order_details', @@ -574,7 +567,6 @@ 'doctype': 'DocField', 'fieldname': 'price_list_name', 'fieldtype': 'Select', - 'idx': 31, 'label': 'Price List', 'oldfieldname': 'price_list_name', 'oldfieldtype': 'Select', @@ -589,7 +581,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 32, 'permlevel': 0, 'width': '50%' }, @@ -601,7 +592,6 @@ 'doctype': 'DocField', 'fieldname': 'currency', 'fieldtype': 'Select', - 'idx': 33, 'label': 'Currency', 'oldfieldname': 'currency', 'oldfieldtype': 'Select', @@ -619,7 +609,6 @@ 'doctype': 'DocField', 'fieldname': 'conversion_rate', 'fieldtype': 'Currency', - 'idx': 34, 'label': 'Conversion Rate', 'no_copy': 0, 'oldfieldname': 'conversion_rate', @@ -633,7 +622,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 35, 'permlevel': 0 }, @@ -642,7 +630,6 @@ 'doctype': 'DocField', 'fieldname': 'delivery_note_details', 'fieldtype': 'Table', - 'idx': 36, 'label': 'Delivery Note Details', 'no_copy': 0, 'oldfieldname': 'delivery_note_details', @@ -657,7 +644,6 @@ 'doctype': 'DocField', 'fieldname': 'net_total', 'fieldtype': 'Currency', - 'idx': 37, 'label': 'Net Total*', 'no_copy': 0, 'oldfieldname': 'net_total', @@ -672,7 +658,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 38, 'label': 'Re-Calculate Values', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -683,7 +668,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 39, 'label': 'Note', 'oldfieldtype': 'HTML', 'options': 'NOTE :* In Base Currency', @@ -696,7 +680,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 40, 'label': 'Taxes', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -709,7 +692,6 @@ 'doctype': 'DocField', 'fieldname': 'charge', 'fieldtype': 'Link', - 'idx': 41, 'label': 'Charge', 'oldfieldname': 'charge', 'oldfieldtype': 'Link', @@ -722,7 +704,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 42, 'label': 'Get Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -735,7 +716,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges', 'fieldtype': 'Table', - 'idx': 43, 'label': 'Other Charges', 'no_copy': 0, 'oldfieldname': 'other_charges', @@ -749,7 +729,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges_total', 'fieldtype': 'Currency', - 'idx': 44, 'label': 'Charges Total', 'oldfieldname': 'other_charges_total', 'oldfieldtype': 'Currency', @@ -762,7 +741,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 45, 'label': 'Calculate Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -774,7 +752,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 46, 'label': 'Other Charges Calculation', 'oldfieldtype': 'HTML', 'permlevel': 0 @@ -785,7 +762,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 47, 'label': 'Totals', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -797,7 +773,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total', 'fieldtype': 'Currency', - 'idx': 48, 'label': 'Grand Total', 'no_copy': 0, 'oldfieldname': 'grand_total', @@ -813,7 +788,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total', 'fieldtype': 'Currency', - 'idx': 49, 'label': 'Rounded Total', 'no_copy': 0, 'oldfieldname': 'rounded_total', @@ -830,7 +804,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words', 'fieldtype': 'Data', - 'idx': 50, 'label': 'In Words', 'no_copy': 0, 'oldfieldname': 'in_words', @@ -844,7 +817,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 51, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -854,7 +826,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total_export', 'fieldtype': 'Currency', - 'idx': 52, 'label': 'Grand Total (Export)', 'no_copy': 0, 'oldfieldname': 'grand_total_export', @@ -870,7 +841,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total_export', 'fieldtype': 'Currency', - 'idx': 53, 'label': 'Rounded Total (Export)', 'no_copy': 0, 'oldfieldname': 'rounded_total_export', @@ -887,7 +857,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words_export', 'fieldtype': 'Data', - 'idx': 54, 'label': 'In Words (Export)', 'no_copy': 0, 'oldfieldname': 'in_words_export', @@ -901,7 +870,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 55, 'label': 'Terms', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -912,7 +880,6 @@ 'doctype': 'DocField', 'fieldname': 'tc_name', 'fieldtype': 'Link', - 'idx': 56, 'label': 'Select Terms', 'oldfieldname': 'tc_name', 'oldfieldtype': 'Link', @@ -926,7 +893,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 57, 'label': 'Get Terms', 'oldfieldtype': 'Button', 'options': 'get_tc_details', @@ -939,7 +905,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 58, 'label': 'Terms HTML', 'oldfieldtype': 'HTML', 'options': 'You can add Terms and Notes that will be printed in the Transaction', @@ -953,7 +918,6 @@ 'doctype': 'DocField', 'fieldname': 'terms', 'fieldtype': 'Text Editor', - 'idx': 59, 'label': 'Term Details', 'oldfieldname': 'terms', 'oldfieldtype': 'Text Editor', @@ -966,7 +930,6 @@ 'description': 'Filling in Additional Information about the Delivery Note will help you analyze your data better.', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 60, 'label': 'More Info', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -979,7 +942,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 61, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -997,7 +959,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 62, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -1018,7 +979,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_date', 'fieldtype': 'Date', - 'idx': 63, 'in_filter': 1, 'label': 'Posting Date', 'no_copy': 1, @@ -1038,7 +998,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_time', 'fieldtype': 'Time', - 'idx': 64, 'in_filter': 0, 'label': 'Posting Time', 'oldfieldname': 'posting_time', @@ -1057,7 +1016,6 @@ 'doctype': 'DocField', 'fieldname': 'project_name', 'fieldtype': 'Link', - 'idx': 65, 'in_filter': 1, 'label': 'Project Name', 'oldfieldname': 'project_name', @@ -1076,7 +1034,6 @@ 'fieldname': 'to_warehouse', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 66, 'label': 'To Warehouse', 'no_copy': 1, 'oldfieldname': 'to_warehouse', @@ -1090,7 +1047,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 67, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -1102,7 +1058,6 @@ 'fieldname': 'billing_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 68, 'label': 'Billing Status', 'no_copy': 1, 'options': '\nNot Billed\nPartly Billed\nFully Billed', @@ -1116,51 +1071,17 @@ 'fieldname': 'installation_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 69, 'label': 'Installation Status', 'permlevel': 0, 'print_hide': 1 }, - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'po_no', - 'fieldtype': 'Data', - 'hidden': 1, - 'idx': 70, - 'label': 'P.O. No', - 'no_copy': 0, - 'oldfieldname': 'po_no', - 'oldfieldtype': 'Data', - 'permlevel': 1, - 'print_hide': 1, - 'width': '100px' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'po_date', - 'fieldtype': 'Data', - 'hidden': 1, - 'idx': 71, - 'label': 'P.O. Date', - 'no_copy': 0, - 'oldfieldname': 'po_date', - 'oldfieldtype': 'Data', - 'permlevel': 1, - 'print_hide': 1, - 'width': '100px' - }, - # DocField { 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldname': 'letter_head', 'fieldtype': 'Select', - 'idx': 72, 'label': 'Letter Head', 'oldfieldname': 'letter_head', 'oldfieldtype': 'Link', @@ -1174,7 +1095,6 @@ 'doctype': 'DocField', 'fieldname': 'source', 'fieldtype': 'Select', - 'idx': 73, 'label': 'Source', 'oldfieldname': 'source', 'oldfieldtype': 'Select', @@ -1190,7 +1110,6 @@ 'doctype': 'DocField', 'fieldname': 'campaign', 'fieldtype': 'Link', - 'idx': 74, 'label': 'Campaign', 'oldfieldname': 'campaign', 'oldfieldtype': 'Link', @@ -1206,7 +1125,6 @@ 'doctype': 'DocField', 'fieldname': 'select_print_heading', 'fieldtype': 'Link', - 'idx': 75, 'label': 'Select Print Heading', 'no_copy': 1, 'oldfieldname': 'select_print_heading', @@ -1224,7 +1142,6 @@ 'doctype': 'DocField', 'fieldname': 'print_without_amount', 'fieldtype': 'Check', - 'idx': 76, 'label': 'Print Without Amount', 'oldfieldname': 'print_without_amount', 'oldfieldtype': 'Check', @@ -1238,7 +1155,6 @@ 'doctype': 'DocField', 'fieldname': 'instructions', 'fieldtype': 'Text', - 'idx': 77, 'label': 'Instructions', 'oldfieldname': 'instructions', 'oldfieldtype': 'Text', @@ -1253,7 +1169,6 @@ 'fieldname': 'cancel_reason', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 78, 'label': 'Cancel Reason', 'no_copy': 1, 'oldfieldname': 'cancel_reason', @@ -1269,7 +1184,6 @@ 'fieldname': 'excise_page', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 79, 'label': 'Excise Page Number', 'oldfieldname': 'excise_page', 'oldfieldtype': 'Data', @@ -1282,7 +1196,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 80, 'label': 'Sales Team', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1293,7 +1206,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 81, 'permlevel': 0, 'width': '50%' }, @@ -1303,7 +1215,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_partner', 'fieldtype': 'Link', - 'idx': 82, 'label': 'Sales Partner', 'no_copy': 0, 'oldfieldname': 'sales_partner', @@ -1320,7 +1231,6 @@ 'doctype': 'DocField', 'fieldname': 'commission_rate', 'fieldtype': 'Currency', - 'idx': 83, 'label': 'Commission Rate (%)', 'no_copy': 0, 'oldfieldname': 'commission_rate', @@ -1337,7 +1247,6 @@ 'doctype': 'DocField', 'fieldname': 'total_commission', 'fieldtype': 'Currency', - 'idx': 84, 'label': 'Total Commission', 'no_copy': 0, 'oldfieldname': 'total_commission', @@ -1351,7 +1260,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 85, 'permlevel': 0, 'width': '50%' }, @@ -1361,7 +1269,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_team', 'fieldtype': 'Table', - 'idx': 86, 'label': 'Sales Team1', 'oldfieldname': 'sales_team', 'oldfieldtype': 'Table', @@ -1375,7 +1282,6 @@ 'doctype': 'DocField', 'fieldtype': 'Section Break', 'hidden': 1, - 'idx': 87, 'label': 'Supplier Details', 'oldfieldtype': 'Section Break', 'options': 'Simple', @@ -1388,7 +1294,6 @@ 'fieldname': 'supplier', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 88, 'label': 'Supplier', 'oldfieldname': 'supplier', 'oldfieldtype': 'Link', @@ -1403,7 +1308,6 @@ 'fieldname': 'supplier_address', 'fieldtype': 'Text', 'hidden': 1, - 'idx': 89, 'label': 'Supplier Address', 'oldfieldname': 'supplier_address', 'oldfieldtype': 'Text', @@ -1418,7 +1322,6 @@ 'fieldname': 'purchase_receipt_no', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 90, 'label': 'Purchase Receipt No', 'no_copy': 1, 'oldfieldname': 'purchase_receipt_no', @@ -1435,7 +1338,6 @@ 'fieldname': 'purchase_order_no', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 91, 'label': 'Purchase Order', 'no_copy': 1, 'oldfieldname': 'purchase_order_no', @@ -1449,7 +1351,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 92, 'label': 'Packing List', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -1460,7 +1361,6 @@ 'doctype': 'DocField', 'fieldname': 'packing_details', 'fieldtype': 'Table', - 'idx': 93, 'label': 'Packing Details', 'oldfieldname': 'packing_details', 'oldfieldtype': 'Table', @@ -1474,7 +1374,6 @@ 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 94, 'label': 'Repair Delivery Note', 'oldfieldtype': 'Button', 'options': 'repair_delivery_note', @@ -1488,7 +1387,6 @@ 'fieldname': 'print_packing_slip', 'fieldtype': 'Text', 'hidden': 1, - 'idx': 95, 'in_filter': 0, 'label': 'Print Packing Slip', 'permlevel': 0, diff --git a/stock/doctype/delivery_note_detail/delivery_note_detail.txt b/stock/doctype/delivery_note_detail/delivery_note_detail.txt index a8fea209c46..be7b98f771f 100644 --- a/stock/doctype/delivery_note_detail/delivery_note_detail.txt +++ b/stock/doctype/delivery_note_detail/delivery_note_detail.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:08:58', 'docstatus': 0, - 'modified': '2011-08-22 12:11:51', + 'modified': '2011-09-07 17:34:13', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,7 +21,7 @@ 'section_style': 'Tray', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 38 + 'version': 40 }, # These values are common for all DocField @@ -44,7 +44,6 @@ 'doctype': 'DocField', 'fieldname': 'item_code', 'fieldtype': 'Link', - 'idx': 1, 'in_filter': 1, 'label': 'Item Code', 'oldfieldname': 'item_code', @@ -63,7 +62,6 @@ 'doctype': 'DocField', 'fieldname': 'item_name', 'fieldtype': 'Data', - 'idx': 2, 'label': 'Item Name', 'oldfieldname': 'item_name', 'oldfieldtype': 'Data', @@ -78,7 +76,6 @@ 'doctype': 'DocField', 'fieldname': 'description', 'fieldtype': 'Small Text', - 'idx': 3, 'label': 'Description', 'oldfieldname': 'description', 'oldfieldtype': 'Small Text', @@ -87,12 +84,26 @@ 'width': '300px' }, + # DocField + { + 'default': '0.00', + 'doctype': 'DocField', + 'fieldname': 'qty', + 'fieldtype': 'Currency', + 'label': 'Quantity', + 'oldfieldname': 'qty', + 'oldfieldtype': 'Currency', + 'permlevel': 0, + 'reqd': 1, + 'trigger': 'Client', + 'width': '100px' + }, + # DocField { 'doctype': 'DocField', 'fieldname': 'stock_uom', 'fieldtype': 'Data', - 'idx': 4, 'label': 'UOM', 'oldfieldname': 'stock_uom', 'oldfieldtype': 'Data', @@ -102,29 +113,12 @@ 'width': '50px' }, - # DocField - { - 'default': '0.00', - 'doctype': 'DocField', - 'fieldname': 'qty', - 'fieldtype': 'Currency', - 'idx': 5, - 'label': 'Quantity', - 'oldfieldname': 'qty', - 'oldfieldtype': 'Currency', - 'permlevel': 0, - 'reqd': 1, - 'trigger': 'Client', - 'width': '100px' - }, - # DocField { 'default': '0.00', 'doctype': 'DocField', 'fieldname': 'ref_rate', 'fieldtype': 'Currency', - 'idx': 6, 'label': 'Ref Rate', 'no_copy': 0, 'oldfieldname': 'ref_rate', @@ -142,7 +136,6 @@ 'doctype': 'DocField', 'fieldname': 'adj_rate', 'fieldtype': 'Float', - 'idx': 7, 'label': 'Discount (%)', 'oldfieldname': 'adj_rate', 'oldfieldtype': 'Float', @@ -157,7 +150,6 @@ 'doctype': 'DocField', 'fieldname': 'export_rate', 'fieldtype': 'Currency', - 'idx': 8, 'label': 'Rate', 'oldfieldname': 'export_rate', 'oldfieldtype': 'Currency', @@ -173,7 +165,6 @@ 'doctype': 'DocField', 'fieldname': 'export_amount', 'fieldtype': 'Currency', - 'idx': 9, 'label': 'Amount', 'oldfieldname': 'export_amount', 'oldfieldtype': 'Currency', @@ -188,7 +179,6 @@ 'doctype': 'DocField', 'fieldname': 'base_ref_rate', 'fieldtype': 'Currency', - 'idx': 10, 'label': 'Ref Rate*', 'oldfieldname': 'base_ref_rate', 'oldfieldtype': 'Currency', @@ -203,7 +193,6 @@ 'doctype': 'DocField', 'fieldname': 'basic_rate', 'fieldtype': 'Currency', - 'idx': 11, 'label': 'Rate*', 'oldfieldname': 'basic_rate', 'oldfieldtype': 'Currency', @@ -219,7 +208,6 @@ 'doctype': 'DocField', 'fieldname': 'amount', 'fieldtype': 'Currency', - 'idx': 12, 'label': 'Amount*', 'oldfieldname': 'amount', 'oldfieldtype': 'Currency', @@ -234,7 +222,6 @@ 'doctype': 'DocField', 'fieldname': 'warehouse', 'fieldtype': 'Link', - 'idx': 13, 'label': 'Warehouse', 'oldfieldname': 'warehouse', 'oldfieldtype': 'Link', @@ -250,7 +237,6 @@ 'doctype': 'DocField', 'fieldname': 'serial_no', 'fieldtype': 'Text', - 'idx': 14, 'in_filter': 1, 'label': 'Serial No', 'no_copy': 1, @@ -266,7 +252,6 @@ 'doctype': 'DocField', 'fieldname': 'batch_no', 'fieldtype': 'Link', - 'idx': 15, 'label': 'Batch No', 'oldfieldname': 'batch_no', 'oldfieldtype': 'Link', @@ -280,7 +265,6 @@ 'doctype': 'DocField', 'fieldname': 'item_group', 'fieldtype': 'Link', - 'idx': 16, 'label': 'Item Group', 'oldfieldname': 'item_group', 'oldfieldtype': 'Link', @@ -294,7 +278,6 @@ 'doctype': 'DocField', 'fieldname': 'brand', 'fieldtype': 'Link', - 'idx': 17, 'label': 'Brand Name', 'oldfieldname': 'brand', 'oldfieldtype': 'Link', @@ -309,9 +292,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_no', 'fieldtype': 'Data', - 'idx': 18, 'label': 'Pack No', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -319,9 +302,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_gross_wt', 'fieldtype': 'Float', - 'idx': 19, 'label': 'Pack Gross Wt', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -329,10 +312,10 @@ 'doctype': 'DocField', 'fieldname': 'weight_uom', 'fieldtype': 'Link', - 'idx': 20, 'label': 'Weight UOM', 'options': 'UOM', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -340,9 +323,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_nett_wt', 'fieldtype': 'Float', - 'idx': 21, 'label': 'Pack Nett Wt', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -350,7 +333,6 @@ 'doctype': 'DocField', 'fieldname': 'no_of_packs', 'fieldtype': 'Int', - 'idx': 22, 'label': 'No of Packs', 'oldfieldname': 'no_of_packs', 'oldfieldtype': 'Int', @@ -364,7 +346,6 @@ 'doctype': 'DocField', 'fieldname': 'pack_unit', 'fieldtype': 'Data', - 'idx': 23, 'label': 'Pack Unit', 'oldfieldname': 'pack_unit', 'oldfieldtype': 'Data', @@ -378,7 +359,6 @@ 'doctype': 'DocField', 'fieldname': 'installed_qty', 'fieldtype': 'Currency', - 'idx': 24, 'label': 'Installed Qty', 'no_copy': 1, 'oldfieldname': 'installed_qty', @@ -393,7 +373,6 @@ 'doctype': 'DocField', 'fieldname': 'actual_qty', 'fieldtype': 'Currency', - 'idx': 25, 'label': 'Available Qty at Warehouse', 'no_copy': 1, 'oldfieldname': 'actual_qty', @@ -408,7 +387,6 @@ 'doctype': 'DocField', 'fieldname': 'billed_amt', 'fieldtype': 'Currency', - 'idx': 26, 'label': 'Billed Amt', 'no_copy': 1, 'permlevel': 1, @@ -423,7 +401,6 @@ 'fieldname': 'prevdoc_docname', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 27, 'in_filter': 1, 'label': 'Against Document No', 'no_copy': 1, @@ -441,7 +418,6 @@ 'fieldname': 'prevdoc_doctype', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 28, 'in_filter': 1, 'label': 'Document Type', 'oldfieldname': 'prevdoc_doctype', @@ -458,7 +434,6 @@ 'fieldname': 'prevdoc_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 29, 'in_filter': 1, 'label': 'Against Document Date', 'oldfieldname': 'prevdoc_date', @@ -473,7 +448,6 @@ 'fieldname': 'prevdoc_detail_docname', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 30, 'in_filter': 1, 'label': 'Against Document Detail No', 'oldfieldname': 'prevdoc_detail_docname', @@ -490,7 +464,6 @@ 'fieldname': 'item_tax_rate', 'fieldtype': 'Small Text', 'hidden': 1, - 'idx': 31, 'label': 'Item Tax Rate', 'oldfieldname': 'item_tax_rate', 'oldfieldtype': 'Small Text', @@ -504,7 +477,6 @@ 'doctype': 'DocField', 'fieldname': 'page_break', 'fieldtype': 'Check', - 'idx': 32, 'label': 'Page Break', 'oldfieldname': 'page_break', 'oldfieldtype': 'Check', From 3fe30954f2de9cad9b72018b3ae795cff3a42702 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 19:26:12 +0530 Subject: [PATCH 030/133] on rename of company set company default_value --- setup/doctype/company/company.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py index 783a1585882..a2e333d41c3 100644 --- a/setup/doctype/company/company.py +++ b/setup/doctype/company/company.py @@ -248,4 +248,7 @@ class DocType: # on rename # --------- def on_rename(self,newdn,olddn): - sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn)) + sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn)) + sql("update `tabSingles` set value = %s where doctype='Manage Account' and field = 'default_company' and value = %s", (newdn, olddn)) + if get_defaults('company') == olddn: + set_default('company', newdn) From 94afaa8697a1f69fd11afdc497c547a821991e9e Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 8 Sep 2011 11:37:50 +0530 Subject: [PATCH 031/133] removed single quote from sql query --- .../authorization_control.py | 332 +++++++++--------- 1 file changed, 165 insertions(+), 167 deletions(-) diff --git a/setup/doctype/authorization_control/authorization_control.py b/setup/doctype/authorization_control/authorization_control.py index 4036ecf5944..cce90422e10 100644 --- a/setup/doctype/authorization_control/authorization_control.py +++ b/setup/doctype/authorization_control/authorization_control.py @@ -18,179 +18,177 @@ convert_to_lists = webnotes.conn.convert_to_lists from utilities.transaction_base import TransactionBase class DocType(TransactionBase): - def __init__(self, d, dl): - self.doc, self.doclist = d, dl + def __init__(self, d, dl): + self.doc, self.doclist = d, dl - # Get Names of all Approving Users and Roles - # ------------------------------------------- - def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company): - amt_list, appr_users, appr_roles = [], [], [] - users, roles = '','' - if det: - for x in det: - amt_list.append(flt(x[0])) - max_amount = max(amt_list) - - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and company = '%s' %s" % (doctype_name, flt(max_amount), total, based_on, company, condition)) - if not app_dtl: - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and ifnull(company,'') = '' %s" % (doctype_name, flt(max_amount), total, based_on, condition)) - 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: - dcc = TransactionBase().get_company_currency(self.doc.company) - if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount)) - elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item) - elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%') - - if appr_users: add_msg = "Users : "+cstr(appr_users) - if appr_roles: add_msg = "Roles : "+cstr(appr_roles) - if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles) - msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg)) - raise Exception + # Get Names of all Approving Users and Roles + # ------------------------------------------- + def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company): + amt_list, appr_users, appr_roles = [], [], [] + users, roles = '','' + if det: + for x in det: + amt_list.append(flt(x[0])) + max_amount = max(amt_list) + + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s", (doctype_name, flt(max_amount), total, based_on, company, condition)) + if not app_dtl: + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s", (doctype_name, flt(max_amount), total, based_on, condition)) + 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: + dcc = TransactionBase().get_company_currency(self.doc.company) + if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount)) + elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item) + elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%') + + if appr_users: add_msg = "Users : "+cstr(appr_users) + if appr_roles: add_msg = "Roles : "+cstr(appr_roles) + if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles) + msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg)) + raise Exception - # Check if authorization rule is set specific to user - # ---------------------------------------------------- - def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''): - chk = 1 - add_cond1,add_cond2 = '','' - if based_on == 'Itemwise Discount': - add_cond1 += " and master_name = '"+cstr(item)+"'" - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond1)) - if not itemwise_exists: - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond1)) - if itemwise_exists: - self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) - chk = 0 - if chk == 1: - if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" - appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond2)) - if not appr: - appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond2)) - self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) - - - # Bifurcate Authorization based on type - # -------------------------------------- - def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company): - add_cond = '' - auth_value = av_dis - if val == 1: add_cond += " and system_user = '"+session['user']+"'" - elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')") - else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''" - if based_on == 'Grand Total': auth_value = total - elif based_on == 'Customerwise Discount': - if doc_obj: - if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer - else: customer = doc_obj.doc.customer_name - add_cond = " and master_name = '"+cstr(customer)+"'" - if based_on == 'Itemwise Discount': - if doc_obj: - for t in getlist(doc_obj.doclist, doc_obj.fname): - self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code ) - else: - self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company) + # Check if authorization rule is set specific to user + # ---------------------------------------------------- + def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''): + chk = 1 + add_cond1,add_cond2 = '','' + if based_on == 'Itemwise Discount': + add_cond1 += " and master_name = '"+cstr(item)+"'" + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond1)) + if not itemwise_exists: + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond1)) + if itemwise_exists: + self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) + chk = 0 + if chk == 1: + if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond2)) + if not appr: + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond2)) + self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) + + + # Bifurcate Authorization based on type + # -------------------------------------- + def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company): + add_cond = '' + auth_value = av_dis + if val == 1: add_cond += " and system_user = '"+session['user']+"'" + elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')") + else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''" + if based_on == 'Grand Total': auth_value = total + elif based_on == 'Customerwise Discount': + if doc_obj: + if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer + else: customer = doc_obj.doc.customer_name + add_cond = " and master_name = '"+cstr(customer)+"'" + if based_on == 'Itemwise Discount': + if doc_obj: + for t in getlist(doc_obj.doclist, doc_obj.fname): + self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code ) + else: + self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company) - # Check Approving Authority for transactions other than expense voucher and Appraisal - # ------------------------- - def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''): - if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice' - elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice' - av_dis = 0 - if doc_obj: - ref_rate, basic_rate = 0, 0 - for d in getlist(doc_obj.doclist, doc_obj.fname): - if d.base_ref_rate and d.basic_rate: - ref_rate += flt(d.base_ref_rate) - basic_rate += flt(d.basic_rate) - if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate) + # Check Approving Authority for transactions other than expense voucher and Appraisal + # ------------------------- + def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''): + if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice' + elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice' + av_dis = 0 + if doc_obj: + ref_rate, basic_rate = 0, 0 + for d in getlist(doc_obj.doclist, doc_obj.fname): + if d.base_ref_rate and d.basic_rate: + ref_rate += flt(d.base_ref_rate) + basic_rate += flt(d.basic_rate) + if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate) - final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount'] - # Individual User - # ================ - # 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) - - # Remove user specific rules from global authorization rules - for r in based_on: - if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) - - # 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 docstatus != 2" %(doctype_name, "('"+"','".join(session['data']['profile']['roles'])+"')", "('"+"','".join(final_based_on)+"')"))] - 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))] - for d in based_on: - self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) - - # Remove role specific rules from global authorization rules - for r in based_on: - if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) - - # Global Rule - # ============= - # Check for global authorization - for g in final_based_on: - self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company) - - #======================================================================================================================== - # payroll related check - def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company): - val_lst =[] - val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company)) - if not val: - val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount)) + final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount'] + # Individual User + # ================ + # 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) + + # Remove user specific rules from global authorization rules + for r in based_on: + if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) + + # 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))] + for d in based_on: + self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) + + # Remove role specific rules from global authorization rules + for r in based_on: + if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) + + # Global Rule + # ============= + # Check for global authorization + for g in final_based_on: + self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company) + + #======================================================================================================================== + # payroll related check + def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company): + val_lst =[] + val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company)) + if not val: + val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name, employee, employee, total_claimed_amount)) - - if val: - val_lst = [y[0] for y in val] - else: - val_lst.append(0) - - max_val = max(val_lst) - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1) - if not rule: - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1) + if val: + val_lst = [y[0] for y in val] + else: + val_lst.append(0) + + max_val = max(val_lst) + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1) + if not rule: + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1) - return rule - - #--------------------------------------------------------------------------------------------------------------------- - # related to payroll module only - def get_approver_name(self, doctype_name, total, doc_obj=''): - app_user=[] - app_specific_user =[] - rule ={} - - if doc_obj: - if doctype_name == 'Expense Voucher': - rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company) - elif doctype_name == 'Appraisal': - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1) - if not rule: - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1) - - if rule: - for m in rule: - if m['to_emp'] or m['to_designation']: - if m['approving_user']: - app_specific_user.append(m['approving_user']) - elif m['approving_role']: - user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])] - for x in user_lst: - if not x in app_user: - app_user.append(x) - - if len(app_specific_user) >0: - return app_specific_user - else: - return app_user + return rule + + #--------------------------------------------------------------------------------------------------------------------- + # related to payroll module only + def get_approver_name(self, doctype_name, total, doc_obj=''): + app_user=[] + app_specific_user =[] + rule ={} + + if doc_obj: + if doctype_name == 'Expense Voucher': + rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company) + elif doctype_name == 'Appraisal': + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1) + if not rule: + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1) + + if rule: + for m in rule: + if m['to_emp'] or m['to_designation']: + if m['approving_user']: + app_specific_user.append(m['approving_user']) + elif m['approving_role']: + user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])] + for x in user_lst: + if not x in app_user: + app_user.append(x) + + if len(app_specific_user) >0: + return app_specific_user + else: + return app_user From 4b8c84db9ada4912e518deb56a79079c455b4fb8 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 8 Sep 2011 11:50:45 +0530 Subject: [PATCH 032/133] removed single quote from sql query in auth_control and fixes in company renaming --- .../authorization_control.py | 332 +++++++++--------- setup/doctype/company/company.py | 5 +- 2 files changed, 169 insertions(+), 168 deletions(-) diff --git a/setup/doctype/authorization_control/authorization_control.py b/setup/doctype/authorization_control/authorization_control.py index 4036ecf5944..cce90422e10 100644 --- a/setup/doctype/authorization_control/authorization_control.py +++ b/setup/doctype/authorization_control/authorization_control.py @@ -18,179 +18,177 @@ convert_to_lists = webnotes.conn.convert_to_lists from utilities.transaction_base import TransactionBase class DocType(TransactionBase): - def __init__(self, d, dl): - self.doc, self.doclist = d, dl + def __init__(self, d, dl): + self.doc, self.doclist = d, dl - # Get Names of all Approving Users and Roles - # ------------------------------------------- - def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company): - amt_list, appr_users, appr_roles = [], [], [] - users, roles = '','' - if det: - for x in det: - amt_list.append(flt(x[0])) - max_amount = max(amt_list) - - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and company = '%s' %s" % (doctype_name, flt(max_amount), total, based_on, company, condition)) - if not app_dtl: - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and ifnull(company,'') = '' %s" % (doctype_name, flt(max_amount), total, based_on, condition)) - 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: - dcc = TransactionBase().get_company_currency(self.doc.company) - if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount)) - elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item) - elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%') - - if appr_users: add_msg = "Users : "+cstr(appr_users) - if appr_roles: add_msg = "Roles : "+cstr(appr_roles) - if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles) - msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg)) - raise Exception + # Get Names of all Approving Users and Roles + # ------------------------------------------- + def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company): + amt_list, appr_users, appr_roles = [], [], [] + users, roles = '','' + if det: + for x in det: + amt_list.append(flt(x[0])) + max_amount = max(amt_list) + + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s", (doctype_name, flt(max_amount), total, based_on, company, condition)) + if not app_dtl: + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s", (doctype_name, flt(max_amount), total, based_on, condition)) + 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: + dcc = TransactionBase().get_company_currency(self.doc.company) + if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount)) + elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item) + elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%') + + if appr_users: add_msg = "Users : "+cstr(appr_users) + if appr_roles: add_msg = "Roles : "+cstr(appr_roles) + if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles) + msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg)) + raise Exception - # Check if authorization rule is set specific to user - # ---------------------------------------------------- - def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''): - chk = 1 - add_cond1,add_cond2 = '','' - if based_on == 'Itemwise Discount': - add_cond1 += " and master_name = '"+cstr(item)+"'" - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond1)) - if not itemwise_exists: - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond1)) - if itemwise_exists: - self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) - chk = 0 - if chk == 1: - if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" - appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond2)) - if not appr: - appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond2)) - self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) - - - # Bifurcate Authorization based on type - # -------------------------------------- - def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company): - add_cond = '' - auth_value = av_dis - if val == 1: add_cond += " and system_user = '"+session['user']+"'" - elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')") - else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''" - if based_on == 'Grand Total': auth_value = total - elif based_on == 'Customerwise Discount': - if doc_obj: - if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer - else: customer = doc_obj.doc.customer_name - add_cond = " and master_name = '"+cstr(customer)+"'" - if based_on == 'Itemwise Discount': - if doc_obj: - for t in getlist(doc_obj.doclist, doc_obj.fname): - self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code ) - else: - self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company) + # Check if authorization rule is set specific to user + # ---------------------------------------------------- + def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''): + chk = 1 + add_cond1,add_cond2 = '','' + if based_on == 'Itemwise Discount': + add_cond1 += " and master_name = '"+cstr(item)+"'" + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond1)) + if not itemwise_exists: + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond1)) + if itemwise_exists: + self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) + chk = 0 + if chk == 1: + if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond2)) + if not appr: + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond2)) + self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) + + + # Bifurcate Authorization based on type + # -------------------------------------- + def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company): + add_cond = '' + auth_value = av_dis + if val == 1: add_cond += " and system_user = '"+session['user']+"'" + elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')") + else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''" + if based_on == 'Grand Total': auth_value = total + elif based_on == 'Customerwise Discount': + if doc_obj: + if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer + else: customer = doc_obj.doc.customer_name + add_cond = " and master_name = '"+cstr(customer)+"'" + if based_on == 'Itemwise Discount': + if doc_obj: + for t in getlist(doc_obj.doclist, doc_obj.fname): + self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code ) + else: + self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company) - # Check Approving Authority for transactions other than expense voucher and Appraisal - # ------------------------- - def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''): - if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice' - elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice' - av_dis = 0 - if doc_obj: - ref_rate, basic_rate = 0, 0 - for d in getlist(doc_obj.doclist, doc_obj.fname): - if d.base_ref_rate and d.basic_rate: - ref_rate += flt(d.base_ref_rate) - basic_rate += flt(d.basic_rate) - if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate) + # Check Approving Authority for transactions other than expense voucher and Appraisal + # ------------------------- + def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''): + if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice' + elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice' + av_dis = 0 + if doc_obj: + ref_rate, basic_rate = 0, 0 + for d in getlist(doc_obj.doclist, doc_obj.fname): + if d.base_ref_rate and d.basic_rate: + ref_rate += flt(d.base_ref_rate) + basic_rate += flt(d.basic_rate) + if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate) - final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount'] - # Individual User - # ================ - # 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) - - # Remove user specific rules from global authorization rules - for r in based_on: - if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) - - # 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 docstatus != 2" %(doctype_name, "('"+"','".join(session['data']['profile']['roles'])+"')", "('"+"','".join(final_based_on)+"')"))] - 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))] - for d in based_on: - self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) - - # Remove role specific rules from global authorization rules - for r in based_on: - if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) - - # Global Rule - # ============= - # Check for global authorization - for g in final_based_on: - self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company) - - #======================================================================================================================== - # payroll related check - def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company): - val_lst =[] - val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company)) - if not val: - val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount)) + final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount'] + # Individual User + # ================ + # 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) + + # Remove user specific rules from global authorization rules + for r in based_on: + if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) + + # 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))] + for d in based_on: + self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) + + # Remove role specific rules from global authorization rules + for r in based_on: + if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) + + # Global Rule + # ============= + # Check for global authorization + for g in final_based_on: + self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company) + + #======================================================================================================================== + # payroll related check + def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company): + val_lst =[] + val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company)) + if not val: + val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name, employee, employee, total_claimed_amount)) - - if val: - val_lst = [y[0] for y in val] - else: - val_lst.append(0) - - max_val = max(val_lst) - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1) - if not rule: - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1) + if val: + val_lst = [y[0] for y in val] + else: + val_lst.append(0) + + max_val = max(val_lst) + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1) + if not rule: + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1) - return rule - - #--------------------------------------------------------------------------------------------------------------------- - # related to payroll module only - def get_approver_name(self, doctype_name, total, doc_obj=''): - app_user=[] - app_specific_user =[] - rule ={} - - if doc_obj: - if doctype_name == 'Expense Voucher': - rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company) - elif doctype_name == 'Appraisal': - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1) - if not rule: - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1) - - if rule: - for m in rule: - if m['to_emp'] or m['to_designation']: - if m['approving_user']: - app_specific_user.append(m['approving_user']) - elif m['approving_role']: - user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])] - for x in user_lst: - if not x in app_user: - app_user.append(x) - - if len(app_specific_user) >0: - return app_specific_user - else: - return app_user + return rule + + #--------------------------------------------------------------------------------------------------------------------- + # related to payroll module only + def get_approver_name(self, doctype_name, total, doc_obj=''): + app_user=[] + app_specific_user =[] + rule ={} + + if doc_obj: + if doctype_name == 'Expense Voucher': + rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company) + elif doctype_name == 'Appraisal': + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1) + if not rule: + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1) + + if rule: + for m in rule: + if m['to_emp'] or m['to_designation']: + if m['approving_user']: + app_specific_user.append(m['approving_user']) + elif m['approving_role']: + user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])] + for x in user_lst: + if not x in app_user: + app_user.append(x) + + if len(app_specific_user) >0: + return app_specific_user + else: + return app_user diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py index 783a1585882..a2e333d41c3 100644 --- a/setup/doctype/company/company.py +++ b/setup/doctype/company/company.py @@ -248,4 +248,7 @@ class DocType: # on rename # --------- def on_rename(self,newdn,olddn): - sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn)) + sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn)) + sql("update `tabSingles` set value = %s where doctype='Manage Account' and field = 'default_company' and value = %s", (newdn, olddn)) + if get_defaults('company') == olddn: + set_default('company', newdn) From 410962d3f79f61081cfee597019ceee940d59e83 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 8 Sep 2011 13:48:40 +0530 Subject: [PATCH 033/133] error fixed in auth control --- .../authorization_control/authorization_control.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/setup/doctype/authorization_control/authorization_control.py b/setup/doctype/authorization_control/authorization_control.py index cce90422e10..d0494301c80 100644 --- a/setup/doctype/authorization_control/authorization_control.py +++ b/setup/doctype/authorization_control/authorization_control.py @@ -32,9 +32,9 @@ class DocType(TransactionBase): amt_list.append(flt(x[0])) max_amount = max(amt_list) - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s", (doctype_name, flt(max_amount), total, based_on, company, condition)) + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s" % ('%s', '%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on, company)) if not app_dtl: - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s", (doctype_name, flt(max_amount), total, based_on, condition)) + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s" % ('%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on)) for d in app_dtl: if(d[0]): appr_users.append(d[0]) if(d[1]): appr_roles.append(d[1]) @@ -61,17 +61,17 @@ class DocType(TransactionBase): add_cond1,add_cond2 = '','' if based_on == 'Itemwise Discount': add_cond1 += " and master_name = '"+cstr(item)+"'" - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond1)) + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on, company)) if not itemwise_exists: - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond1)) + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s" % ('%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on)) if itemwise_exists: self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) chk = 0 if chk == 1: if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" - appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond2)) + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on, company)) if not appr: - appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond2)) + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s"% ('%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on)) self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) @@ -128,7 +128,7 @@ 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", (doctype_name, "'"+"','".join(webnotes.user.get_roles())+"'", "'"+"','".join(final_based_on)+"'",company))] for d in based_on: self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) From d030b52394f3362693a6772b8cc2fb8ab9c1057f Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 8 Sep 2011 13:51:58 +0530 Subject: [PATCH 034/133] fixed in auth control --- .../authorization_control/authorization_control.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/setup/doctype/authorization_control/authorization_control.py b/setup/doctype/authorization_control/authorization_control.py index cce90422e10..d0494301c80 100644 --- a/setup/doctype/authorization_control/authorization_control.py +++ b/setup/doctype/authorization_control/authorization_control.py @@ -32,9 +32,9 @@ class DocType(TransactionBase): amt_list.append(flt(x[0])) max_amount = max(amt_list) - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s", (doctype_name, flt(max_amount), total, based_on, company, condition)) + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s" % ('%s', '%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on, company)) if not app_dtl: - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s", (doctype_name, flt(max_amount), total, based_on, condition)) + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s" % ('%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on)) for d in app_dtl: if(d[0]): appr_users.append(d[0]) if(d[1]): appr_roles.append(d[1]) @@ -61,17 +61,17 @@ class DocType(TransactionBase): add_cond1,add_cond2 = '','' if based_on == 'Itemwise Discount': add_cond1 += " and master_name = '"+cstr(item)+"'" - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond1)) + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on, company)) if not itemwise_exists: - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond1)) + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s" % ('%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on)) if itemwise_exists: self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) chk = 0 if chk == 1: if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" - appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond2)) + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on, company)) if not appr: - appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond2)) + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s"% ('%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on)) self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) @@ -128,7 +128,7 @@ 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", (doctype_name, "'"+"','".join(webnotes.user.get_roles())+"'", "'"+"','".join(final_based_on)+"'",company))] for d in based_on: self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) From 5ede3e8411bf216140f6f4f0a5d9af3709de3713 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 8 Sep 2011 14:16:34 +0530 Subject: [PATCH 035/133] 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 269115f191ca19fd727fba20a1524693db912518 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 8 Sep 2011 14:43:23 +0530 Subject: [PATCH 036/133] print hide packing list related flds --- patches/patch.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index f2748196f5b..f1c0fd866e7 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 358 +last_patch = 359 #------------------------------------------- @@ -313,3 +313,5 @@ def execute(patch_no): elif patch_no == 358: reload_doc('stock', 'doctype', 'delivery_note') reload_doc('stock', 'doctype', 'delivery_note_detail') + elif patch_no == 359: + sql("update `tabDocField` set print_hide =1 where fieldname in ('pack_no', 'pack_gross_wt', 'weight_uom', 'pack_nett_wt') and parent = 'Delivery Note Detail'") From 43032187712e80644034a0ac0be9723e9f5c4ee2 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 8 Sep 2011 14:47:35 +0530 Subject: [PATCH 037/133] print hide packing list related flds --- patches/patch.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 07868bd836f..748296a8878 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 354 +last_patch = 355 #------------------------------------------- @@ -296,3 +296,5 @@ def execute(patch_no): elif patch_no == 354: reload_doc('stock', 'doctype', 'delivery_note') reload_doc('stock', 'doctype', 'delivery_note_detail') + elif patch_no == 355: + sql("update `tabDocField` set print_hide =1 where fieldname in ('pack_no', 'pack_gross_wt', 'weight_uom', 'pack_nett_wt') and parent = 'Delivery Note Detail'") From 5caedffff807891f87f3f58024a407e1ce56093b Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 8 Sep 2011 15:45:37 +0530 Subject: [PATCH 038/133] 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 c04e2f304873249a597a6e7efcf88bd893817417 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 14 Sep 2011 15:36:15 +0530 Subject: [PATCH 064/133] fixed issue in serial no warehouse sync validation --- stock/doctype/stock_ledger/stock_ledger.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/stock/doctype/stock_ledger/stock_ledger.py b/stock/doctype/stock_ledger/stock_ledger.py index dca975402c9..f9725918a8b 100644 --- a/stock/doctype/stock_ledger/stock_ledger.py +++ b/stock/doctype/stock_ledger/stock_ledger.py @@ -51,7 +51,8 @@ class DocType: # ----------------------------- def validate_serial_no_warehouse(self, obj, fname): for d in getlist(obj.doclist, fname): - if d.serial_no: + wh = d.warehouse or d.s_warehouse + if d.serial_no and wh: serial_nos = self.get_sr_no_list(d.serial_no) for s in serial_nos: s = s.strip() @@ -60,8 +61,8 @@ class DocType: msgprint("Serial No %s does not exists"%s, raise_exception = 1) elif not sr_war[0][0]: msgprint("Warehouse not mentioned in the Serial No %s" % s, raise_exception = 1) - elif (d.warehouse and sr_war[0][0] != d.warehouse) or (d.s_warehouse and sr_war[0][0] != d.s_warehouse): - msgprint("Serial No : %s for Item : %s doesn't exists in Warehouse : %s" % (s, d.item_code, d.warehouse or d.s_warehouse), raise_exception = 1) + elif sr_war[0][0] != wh: + msgprint("Serial No : %s for Item : %s doesn't exists in Warehouse : %s" % (s, d.item_code, wh), raise_exception = 1) # ------------------------------------ From c3307c5eec9f4173f4ec5bd1a8f40b6a2b548abb Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 14 Sep 2011 17:23:56 +0530 Subject: [PATCH 065/133] fixed issue: warehouse was getting blank on sales return cancel --- stock/doctype/stock_ledger/stock_ledger.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/stock/doctype/stock_ledger/stock_ledger.py b/stock/doctype/stock_ledger/stock_ledger.py index f9725918a8b..ff6de7083da 100644 --- a/stock/doctype/stock_ledger/stock_ledger.py +++ b/stock/doctype/stock_ledger/stock_ledger.py @@ -134,8 +134,10 @@ class DocType: else: if exists and exists[0][1] == 'Delivered' and exists[0][2] != 2: msgprint("Serial No: %s is already delivered, you can not cancel the document." % serial_no, raise_exception=1) - elif purpose in ['Material Transfer', 'Sales Return']: - sql("update `tabSerial No` set status = '%s', purchase_document_type = '', purchase_document_no = '', warehouse = '%s' where name = '%s'" % (purpose == 'Material Transfer' and 'In Store' or 'Delivered', d.s_warehouse, serial_no)) + elif purpose == 'Material Transfer': + sql("update `tabSerial No` set status = 'In Store', purchase_document_type = '', purchase_document_no = '', warehouse = '%s' where name = '%s'" % (d.s_warehouse, serial_no)) + 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) From 9b03ec44c42aba3469ba9d1b1a80ab1db6ddcf73 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 15 Sep 2011 12:46:07 +0530 Subject: [PATCH 066/133] 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 zcmb7J3v`r4maf-df6{q&-VgF5B%N1xC+WNhBcj)AU$ zk^XMmQ1uHT-{X?%2n9|6z!&kW_;0uq7ozXb8|W~)2Q5Vr@ICk>?1vU8fp@?!!Tq3R z!W^FJGRM)@SU_U!ech(MervDIX&UJ>Ik$~ihiqMThqb3~px4;jw?+K6nWko}Jv{}n zv>})=;OOe>@9pYWVPk#(yG3AKeu9m9xvM-hP!%f&dq_si=%1t{CKMx zUKvF<1i@X3{2`lj#6Ik_4R;L=*+%;uBhElYWs!7k5HpZCVB0aQB1PPiBuwd2u`Jb{776;*+S<#=?`LPv>*v%lLhK1~a@BFUM)<2D*S=Lq9{? z&O$P&`JTw@ z-|*tJ7q+^;$RYH1*mY-B!C(NJz}Vt&pER zNHSdsDY)8$n~N61eVgx979(Ck-71j8DT50H`NxjfdApTxu_eZpjaT^7H6nyQ3pdXL znGFijg?K|SLOTpZ<>9q{SeMDGaSrTr{m4LI5Kal)$`m3Dc%7fXAlyy=4%eEh%M{?# zVQIK7SeVa?by^Zk0gfB0T5pxFh7{nA0QoLYMAmdqS##a}J(4OL&(HR=E*0Q|l4=vp zVtj7b&AOWKAiZMZBwP-MZT*9G>##W2`UZMzJB;@X_uD6CV&g(K!+lf$ zS51V+ozg)roN3?iki$MP9-llh9d{%~^wqHn@wtuViO+tPbnzx15J< z6Q5Wzq&vj-H4~(KS5~z6uSdM~;_ab}zwP3^M!Xf&wv)%otqEyp3g|!`z*88YooFTe z8a@Tv!Qa49(O7pfebrM4;dT7sLRv8Km$rMvfe!4vbr&r>xx4+oXLFTPJ_>9C_%wb5 zufhrFJ#-9piI8v+J_qfv0DJ+S0-GlEIg3d>tDt=9id2-~H2ki#(rl^d-cnWCUDngR z#caKumGe{I&{EM?rtVw9EZlXC<|jDwv($Zctc>e_MC17MM^Xqkejr69wmA*iYFG^` z<;Q2JA<3C{Roz#?N@xSO&d{Wc9#4SU>TGl7wW(n>%&dq=;j7O{VaXoM;b4qO!Nl?X znKU-3%~^1#8d1xPR9U`)1dUD$E9Q^xqFIT~ygoH?2`i%fkwR*4ISbaRJIh!htrp?F z*l#zByvY{{g_|qKr<%2t6?l#n6>HvX%gcAo8Lg7#drnuC0RI3wkLpTh_yMLTw$8%@ zC*gOnD7R8<+6jPvjjcEtokmB|Z72p@1#gN*<+aZH68o-Lf-ivD7CwGOisff?atwDF z;L8M!fD3&5TVbl1k0jZ%akwoX#z~^%r{3Mb59PxJ2#xR;^Wl`T?+xyq1#mC?iJ3%G z^dP{K*nx}DpU`j6gD3SlLkO3$C45CX&1e)SXit^RR#mp8q_o;nUQ%MQ8CVU?5@&4j zoZlxxuZ<1}nh_bJ{T4IBW!g%64hJ_lV!ub}%;6GHG!_%N)81iTI& z2M#{96(u8C$H$6D5iMeCNO?SO6S+i{dT!ZlHOY!sErJ?U%i8%^6iwr1N~7YpI@QCf zW^Ftg%V~TUk|W|&k))Zm5(i)Nxs>Fc_jMW-qk>eiReal@#D2*9qpJ5c`q(Quj6ZRWhQtOBemVa>M9vTDC}+)Fe?dy( z|04oSV(_fZY#C|b<8MoeDYIcpExMfDu1HAbCoWT+hWsWzIYM*egI1%FtkLr|yXc}I zj*;EQH;vMaC>7@y7Dx=r?$9eo$8YgNc%4WJ|BPNh!>AHogRj5`;7XVP{s5i@J0>z$ zCE^O!zz>YlJeNvRF{>xlv8o8-7r4}OtYmehRgKpSS!!kpt0fJwE|n@(unHzE6(ntr zFHEU9CR$hxX`YWbcY{>ZYT074L4!7z6#88xJy%?{gvG3y zto=a=zO+(AbTuMztmDXyImacsO}qy$!=dPP^bl%6G4O4;U);)d z;-G#IEI-hYE!D6*x`Katgv94-m9o_O7qeX2?139R@VPjol~XpcMRbD)U8)&=d<8bO zmU@;$*LrxyIi6q8(b84V76x>pr&7T( z`R|XA#2mj^qAfMUX9sl%(Sld9ba72l%(h5fyHby!k)_cN542>ycp)@Qt7(hb0-vS* zugSuFwa`mgDsAy7DF||RE&NiJLR&rfLhY)RdN@@qnKpU|Syq4F))M{{Tpc1jAUy(2 z1N;SkSKMZQg*koz_v7`r5gTzbCTLn@>Ayn-vDFw9t5eR{D$%GOfjjvvcxm^c^@ud4 zfE_^m9tQsk&Vg$%8P>oq;rB=3B>WiOKnu|_WJCKz{__sHg5z)v?iCsHzvGXEt9pJ; z!gI=Hge-qk4|!)N8g=VC&@?(^A`4wgi7iE3Sili*3VZ@7G{81E0uRAg;irfoGg^%X z(E;?lko~2QU4{PvkK^a?d9V|#!=KG6@cc30wP^MVxDc=K{X2K!1o*q0myMeRCQVgz z_4jf)m;YZU`oNWm8-u0ISw&7>gj+QLzA}k7n#(CUxJ3gMP;ik`y`u^kRK3&Wza!-Z zg}5VFkmg>O(=u=a;{Ujxq-3LI%Kv_MWYsw=r}Im9qlQM!wF~f3IU^m{1xxaIyqw7m z8&PJCrl5e_M9$*NHzJE`F6iA1Msl{FIp=IRhxCOydEqU9zBnr96yXiQqZShF8c!VL zMassE7JDAN5B0DG?tzmCqh_(q-@=mE;@j{uVuQa74kJ5y1pPC52Sje_d*YHU+BS=xsvjH zYlN@ahZEh#efY&{SmVC<22SrS1TL{ConmQV1%6FTcPS1-@1iHseP}&+0~`XKC>l<| zL0Akv6E0sS9affuXZ(yLXQ5U>OB8bbjj(mwh)p!}e7p|v^rIw)q89P}5T7)X#0XI% zK&3)gNfQ|lAdccsQq&z$>mNX$>a4#Vu7K2n?#Zy zn<0^r;yIkBPzl9WfH9)DMY8$h9YlxV|MCMOra{WjQc}n#%|zl47ZV*sd`c!3UROy% z5j_2pnUFh+BH-5m#lo*qHM&bw8XrYZqe=8fjBzm@!Bc_XxOq1z`FqXUBHFZD>%dIljEbNyrF`b$41kGDgk`-%6+tJjch z=5^=A4c>8?hVij;Ql=!Ah#0`5#lsIi`JtraZ=91BNph)hSa0Lt@1-anb6z?{!JwuBUBA-Fb%vb znm6&xZ=~G_p5VuyCTYC)ni%c7-$)-yLiR&`wJjd{trW*!ze1JFe+CUj_fa|;AAyzu3~vB&4(~#f?#KnS z3MrE)cdtyRdqa`D#C<-G8qFD^5*Q|)O5uOOo3Jb%Uu{RZ@C$K{r;Bs98*~eAz0KXd zp00*UCBAw#fp?$ppe5-Ep-LGn9vu{iaU?t~Vqq~j103#@9n^#sWp1UayOiK5Q0Zp7 z=%^)RJ)9Bkpp}Q8puZyUDx4AdMqV^Pr_~{wCR)YJ*7`=@Zm+4)~()vJ3iQ4`0WxA4P zzXl?J3E)#AP}PbG|8Gz|ye^WK`(cB4^uA4WnRw1O^rr}UjGxVCK9{2T5n&a#^ex>E 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`cIXGlb3TFzJrfr9Gr&(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 090/133] 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 091/133] 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 092/133] 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 093/133] 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 094/133] 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 095/133] 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 096/133] 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 097/133] 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 098/133] 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 099/133] 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 100/133] 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 101/133] 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 102/133] 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 103/133] 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 104/133] 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 105/133] 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 106/133] 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 107/133] 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 108/133] 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 109/133] 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 110/133] 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 111/133] 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 112/133] 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 113/133] 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 114/133] 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 115/133] 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 116/133] 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 117/133] 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 118/133] 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 119/133] 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 120/133] 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 121/133] 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 122/133] 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 123/133] 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 124/133] 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 125/133] 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 126/133] 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 127/133] 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 128/133] 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 129/133] 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 130/133] 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 131/133] 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 132/133] 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 133/133] 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 +