Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/.gitignore b/.gitignore
index 56149a0..7f90378 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,5 @@
 .DS_Store
 server_tools
 patch.log
+lib
+versions-local.db
diff --git a/README b/README
deleted file mode 100644
index 3796729..0000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-erpnext
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4ed8f0d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,46 @@
+# ERPNext - Open Source + SAAS ERP
+
+Version 2.0
+
+Includes Accounting, Inventory, CRM, Sales, Purchase, Projects, HRMS
+
+Built on Python / MySQL / wnframework
+
+- [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) (Version 2.0)
+
+## 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)
+
+## Changes from wnframework version 1.7
+
+To update from wnframework version 1.
+
+1. set your html folder to the root of erpnext (rather than wnframework)
+2. create a symlink in erpnext:
+
+    ln -s path/to/wnframework lib
+
+3. to setup the versions db, run:
+
+    python lib/wnf.py setup
+
+4. copy defs.py from cgi-bin/webnotes to py/webnotes
+5. change module_path (point to erpnext/erpnext) in defs.py
+6. delete cgi-bin directory
+7. delete all old module directories from erpnext
+
+## License
+
+ERPNext is available under the GNU/GPL license.
+
diff --git a/accounts/doctype/budget_control/budget_control.js b/accounts/doctype/budget_control/budget_control.js
deleted file mode 100644
index 3d4d1c1..0000000
--- a/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 <b>Account - "+cstr(acct)+" </b> under <b>Cost Center - "+ cstr(cost_center) + "</b>"+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/accounts/doctype/cost_center/cost_center.js b/accounts/doctype/cost_center/cost_center.js
deleted file mode 100644
index 24dc50f..0000000
--- a/accounts/doctype/cost_center/cost_center.js
+++ /dev/null
@@ -1,39 +0,0 @@
- 
-
-//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';
-  }
-
-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';
-}
-
-//parent cost center
-cur_frm.cscript.parent_cost_center = function(doc,cdt,cdn){
-  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);
-}
-
-//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');
-  }
- 
-}
-
-cur_frm.cscript.refresh = function(doc, cdt, cdn) {
-   
-}
diff --git a/accounts/doctype/cost_center/cost_center.py b/accounts/doctype/cost_center/cost_center.py
deleted file mode 100644
index 521712b..0000000
--- a/accounts/doctype/cost_center/cost_center.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self,d,dl):
-    self.doc, self.doclist = d,dl
-    self.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 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()
diff --git a/accounts/doctype/gl_control/gl_control.js b/accounts/doctype/gl_control/gl_control.js
deleted file mode 100644
index 8f8d786..0000000
--- a/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('<div style="color: RED"> Difference found in Outstanding Amount of %s : %s (Before : %s; After : %s) </div>' % (voucher_obj.doc.doctype, voucher_obj.doc.name, voucher_obj.doc.outstanding_amount, bal))
-      msg.append('<div style="color: RED"> Difference found in Outstanding Amount of %s : %s (Before : %s; After : %s) </div>' % (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."))
diff --git a/accounts/doctype/gl_entry/gl_entry.js b/accounts/doctype/gl_entry/gl_entry.js
deleted file mode 100644
index 9f34ad8..0000000
--- a/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
diff --git a/accounts/doctype/pos_setting/pos_setting.js b/accounts/doctype/pos_setting/pos_setting.js
deleted file mode 100755
index 2bbc08c..0000000
--- a/accounts/doctype/pos_setting/pos_setting.js
+++ /dev/null
@@ -1,38 +0,0 @@
-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);
-  });
- 
-  
-}
-
-//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"'
-}
-
-// 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"'
-}
-
-
-// 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';
-}
-
-
-// ------------------ 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';
-}
diff --git a/accounts/doctype/receivable_voucher/receivable_voucher.js b/accounts/doctype/receivable_voucher/receivable_voucher.js
deleted file mode 100644
index e773a95..0000000
--- a/accounts/doctype/receivable_voucher/receivable_voucher.js
+++ /dev/null
@@ -1,419 +0,0 @@
-cur_frm.cscript.tname = "RV Detail";
-cur_frm.cscript.fname = "entries";
-cur_frm.cscript.other_fname = "other_charges";
-cur_frm.cscript.sales_team_fname = "sales_team";
-
-// print heading
-cur_frm.pformat.print_heading = 'Invoice';
-
-$import(Sales Common)
-$import(Other Charges)
-$import(SMS Control)
-
-// On Load
-// -------
-cur_frm.cscript.onload = function(doc,dt,dn) {
-  if(!doc.customer && doc.debit_to) get_field(dt, 'debit_to', dn).print_hide = 0;
-  if (doc.__islocal) {
-		if(!doc.voucher_date) set_multiple(dt,dn,{voucher_date:get_today()});
-		if(!doc.due_date) set_multiple(dt,dn,{due_date:get_today()});
-		if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});
-
-		//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']);
-  }
-}
-
-cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
-	if(doc.customer && doc.__islocal) {
-		// called from mapper, update the account names for items and customer
-		$c_obj(make_doclist(doc.doctype,doc.name),
-			'load_default_accounts','',
-			function(r,rt) {
-				refresh_field('entries');
-				refresh_field('debit_to');
-			}
-		);
-	}
-
-	if(!doc.customer && doc.__islocal) {
-		// new -- load default taxes
-		cur_frm.cscript.load_taxes(doc, cdt, cdn);
-	}
-}
-
-
-// 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']);
-}
-
-
-// Refresh
-// -------
-cur_frm.cscript.refresh = function(doc, dt, dn) {
-
-  // 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.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);
-}
-
-//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.warehouse = function(doc, cdt , cdn) {
-  var d = locals[cdt][cdn];
-  if (!d.item_code) {alert("please enter item code first"); return};
-  if (d.warehouse) {
-    arg = "{'item_code':'" + d.item_code + "','warehouse':'" + d.warehouse +"'}";
-    get_server_fields('get_actual_qty',arg,'entries',doc,cdt,cdn,1);
-  }
-}
-
-
-
-//Customer
-cur_frm.cscript.customer = function(doc,dt,dn) {
-
-  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']);
-}
-
-cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {
-  if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
-}
-
-cur_frm.fields_dict.customer_address.on_new = function(dn) {
-  locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
-  locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
-}
-
-cur_frm.fields_dict.contact_person.on_new = function(dn) {
-  locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
-  locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
-}
-
-cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
-  return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
-
-cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
-  return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
-}
-
-
-// Set Due Date = posting date + credit days
-cur_frm.cscript.debit_to = function(doc,dt,dn) {
-
-  var callback2 = function(r,rt) {
-      var doc = locals[cur_frm.doctype][cur_frm.docname];
-      cur_frm.refresh();
-  }
-
-  var callback = function(r,rt) {
-      var doc = locals[cur_frm.doctype][cur_frm.docname];
-      if(doc.customer) $c_obj(make_doclist(dt,dn), 'get_default_customer_address', '', callback2);
-      if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
-      cur_frm.refresh();
-  }
-
-  if(doc.debit_to && doc.posting_date){
-    get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,callback);
-  }
-}
-
-
-
-//refresh advance amount
-//-------------------------------------------------
-
-cur_frm.cscript.paid_amount = function(doc,dt,dn){
-  doc.outstanding_amount = flt(doc.grand_total) - flt(doc.paid_amount) - flt(doc.write_off_amount);
-  refresh_field('outstanding_amount');
-}
-
-
-//---- get customer details ----------------------------
-cur_frm.cscript.project_name = function(doc,cdt,cdn){
-	$c_obj(make_doclist(doc.doctype, doc.name),'pull_project_customer','', function(r,rt){
-	  refresh_many(['customer', 'customer_name','customer_address', 'territory']);
-	});
-}
-
-//Set debit and credit to zero on adding new row
-//----------------------------------------------
-cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){
-
-  cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype);
-  acc = '';
-  cc = '';
-
-  for(var i = 0; i<cl.length; i++) {
-
-    if (cl[i].idx == 1){
-      acc = cl[i].income_account;
-      cc = cl[i].cost_center;
-    }
-    else{
-      if (! cl[i].income_account) { cl[i].income_account = acc; refresh_field('income_account', cl[i].name, 'entries');}
-      if (! cl[i].cost_center)  {cl[i].cost_center = cc;refresh_field('cost_center', cl[i].name, 'entries');}
-    }
-  }
-}
-
-cur_frm.cscript.is_opening = function(doc, dt, dn) {
-  hide_field('aging_date');
-  if (doc.is_opening == 'Yes') unhide_field('aging_date');
-}
-
-/* **************************** TRIGGERS ********************************** */
-
-
-
-// Posting Date
-// ------------
-//cur_frm.cscript.posting_date = cur_frm.cscript.debit_to;
-
-
-// Get Items based on SO or DN Selected
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
-  var callback = function(r,rt) {
-	  unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
-	  cur_frm.refresh();
-  }
-  get_server_fields('pull_details','','',doc, dt, dn,1,callback);
-}
-
-
-
-// Allocated Amount in advances table
-// -----------------------------------
-cur_frm.cscript.allocated_amount = function(doc,cdt,cdn){
-  cur_frm.cscript.calc_adjustment_amount(doc,cdt,cdn);
-}
-
-//Make Delivery Note Button
-//-----------------------------
-
-cur_frm.cscript['Make Delivery Note'] = function() {
-
-  var doc = cur_frm.doc
-  n = createLocal('Delivery Note');
-  $c('dt_map', args={
-    'docs':compress_doclist([locals['Delivery Note'][n]]),
-    'from_doctype':doc.doctype,
-    'to_doctype':'Delivery Note',
-    'from_docname':doc.name,
-    'from_to_list':"[['Receivable Voucher','Delivery Note'],['RV Detail','Delivery Note Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team']]"
-    }, function(r,rt) {
-       loaddoc('Delivery Note', n);
-    }
-  );
-}
-
-
-
-// Make Bank Voucher Button
-// -------------------------
-cur_frm.cscript['Make Bank Voucher'] = function(doc, dt, dn) {
-  cur_frm.cscript.make_jv(cur_frm.doc);
-}
-
-
-/* ***************************** Get Query Functions ************************** */
-
-// Debit To
-// ---------
-cur_frm.fields_dict.debit_to.get_query = function(doc) {
-  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
-}
-
-// Cash/bank account
-//------------------
-cur_frm.fields_dict.cash_bank_account.get_query = function(doc) {
-  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
-}
-
-// Write off account
-//------------------
-cur_frm.fields_dict.write_off_account.get_query = function(doc) {
-  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "Yes" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
-}
-
-// Write off cost center
-//-----------------------
-cur_frm.fields_dict.write_off_cost_center.get_query = function(doc) {
-  return 'SELECT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Ledger" AND `tabCost Center`.docstatus!=2 AND `tabCost Center`.company_name="'+doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s"'
-}
-
-//project name
-//--------------------------
-cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
-  var cond = '';
-  if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
-  return repl('SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND %(cond)s `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
-}
-
-//Territory
-//-----------------------------
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-  return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"  ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
-}
-
-// Income Account in Details Table
-// --------------------------------
-cur_frm.fields_dict.entries.grid.get_field("income_account").get_query = function(doc) {
-  return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"';
-}
-
-// warehouse in detail table
-//----------------------------
-cur_frm.fields_dict['entries'].grid.get_field('warehouse').get_query= function(doc, cdt, cdn) {
-  var d = locals[cdt][cdn];
-  return "SELECT `tabBin`.`warehouse`, `tabBin`.`actual_qty` FROM `tabBin` WHERE `tabBin`.`item_code` = '"+ d.item_code +"' AND ifnull(`tabBin`.`actual_qty`,0) > 0 AND `tabBin`.`warehouse` like '%s' ORDER BY `tabBin`.`warehouse` DESC LIMIT 50";
-}
-
-// Cost Center in Details Table
-// -----------------------------
-cur_frm.fields_dict.entries.grid.get_field("cost_center").get_query = function(doc) {
-  return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY  `tabCost Center`.`name` ASC LIMIT 50';
-}
-
-// Sales Order
-// -----------
-cur_frm.fields_dict.sales_order_main.get_query = function(doc) {
-  if (doc.customer)
-    return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.`customer` =  "' + doc.customer + '" and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
-  else
-    return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
-}
-
-// Delivery Note
-// --------------
-cur_frm.fields_dict.delivery_note_main.get_query = function(doc) {
-  if (doc.customer)
-    return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.`customer` =  "' + doc.customer + '" and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
-  else
-    return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
-}
-
-
-
-cur_frm.cscript.income_account = function(doc, cdt, cdn){
-  var d = locals[cdt][cdn];
-  if(d.income_account){
-    var cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype);
-    for(var i = 0; i < cl.length; i++){
-      if(!cl[i].income_account) cl[i].income_account = d.income_account;
-    }
-  }
-  refresh_field(cur_frm.cscript.fname);
-}
-
-
-cur_frm.cscript.cost_center = function(doc, cdt, cdn){
-  var d = locals[cdt][cdn];
-  if(d.cost_center){
-    var cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype);
-    for(var i = 0; i < cl.length; i++){
-      if(!cl[i].cost_center) cl[i].cost_center = d.cost_center;
-    }
-  }
-  refresh_field(cur_frm.cscript.fname);
-}
-
-/* **************************************** Utility Functions *************************************** */
-
-// Details Calculation
-// --------------------
-cur_frm.cscript.calc_adjustment_amount = function(doc,cdt,cdn) {
-  var doc = locals[doc.doctype][doc.name];
-  var el = getchildren('Advance Adjustment Detail',doc.name,'advance_adjustment_details');
-  var total_adjustment_amt = 0
-  for(var i in el) {
-      total_adjustment_amt += flt(el[i].allocated_amount)
-  }
-  doc.total_advance = flt(total_adjustment_amt);
-  doc.outstanding_amount = flt(doc.grand_total) - flt(total_adjustment_amt) - flt(doc.paid_amount) - flt(doc.write_off_amount);
-  refresh_many(['total_advance','outstanding_amount']);
-}
-
-
-// Make Journal Voucher
-// --------------------
-cur_frm.cscript.make_jv = function(doc, dt, dn) {
-  var jv = LocalDB.create('Journal Voucher');
-  jv = locals['Journal Voucher'][jv];
-  jv.voucher_type = 'Bank Voucher';
-
-  jv.company = doc.company;
-  jv.remark = repl('Payment received against invoice %(vn)s for %(rem)s', {vn:doc.name, rem:doc.remarks});
-  jv.fiscal_year = doc.fiscal_year;
-
-  // debit to creditor
-  var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
-  d1.account = doc.debit_to;
-  d1.credit = doc.outstanding_amount;
-  d1.against_invoice = doc.name;
-
-
-  // credit to bank
-  var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
-  d1.debit = doc.outstanding_amount;
-
-  loaddoc('Journal Voucher', jv.name);
-}
-
-
-/****************** Get Accounting Entry *****************/
-cur_frm.cscript['View Ledger Entry'] = function(){
-  var callback = function(report){
-    report.set_filter('GL Entry', 'Voucher No',cur_frm.doc.name);
-    report.dt.run();
-  }
-  loadreport('GL Entry','General Ledger', callback);
-}
diff --git a/accounts/search_criteria/trial_balance/trial_balance.py b/accounts/search_criteria/trial_balance/trial_balance.py
deleted file mode 100644
index fb168e5..0000000
--- a/accounts/search_criteria/trial_balance/trial_balance.py
+++ /dev/null
@@ -1,107 +0,0 @@
-# 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']]
-for c in cl:
-	colnames.append(c[0])
-	coltypes.append(c[1])
-	colwidths.append(c[2])
-	coloptions.append('')
-	col_idx[c[0]] = len(colnames)-1
-	
-# transaction date
-# ------------------
-if not filter_values.get('transaction_date') or not filter_values.get('transaction_date1'):
-	msgprint("Please enter From Date and To Date")
-	raise Exception
-else:
-	from_date = filter_values['transaction_date']
-	to_date = filter_values['transaction_date1']
-
-#check for from date and to date within same year
-#------------------------------------------------
-if not 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) and %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",(from_date, to_date)):
-	msgprint("From Date and To Date must be within same year")
-	raise Exception
-
-# 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 ''
-
-to_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)",to_date)
-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:
-	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
-glc = get_obj('GL Control')
-
-# Main logic
-# ----------
-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])
-	
-	#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':
-		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
-
-	# 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])
-
-	# 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)
-		
-	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
-	
-	r.append(flt(opening))
-	r.append(flt(debit))
-	r.append(flt(credit))
-	r.append(flt(closing))
-
-
-out =[]
-for r in res:
-	# Remove accounts if opening bal = debit = credit = closing bal = 0
-	# ------------------------------------------------------------------
-	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'):
-		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
-	out.append(t_row)
diff --git a/buying/doctype/qa_inspection_report/qa_inspection_report.js b/buying/doctype/qa_inspection_report/qa_inspection_report.js
deleted file mode 100644
index 67281ee..0000000
--- a/buying/doctype/qa_inspection_report/qa_inspection_report.js
+++ /dev/null
@@ -1,26 +0,0 @@
-cur_frm.cscript.item_code = function(doc, cdt, cdn) {
-  if (doc.item_code)
-    get_server_fields('get_purchase_receipt_item_details','','',doc,cdt,cdn,1);
-}
-
-cur_frm.cscript.inspection_type = function(doc, cdt, cdn) {
-  if(doc.inspection_type == 'Incoming'){
-    doc.delivery_note_no = '';
-    hide_field('delivery_note_no');    
-    unhide_field('purchase_receipt_no');
-  }
-  else if(doc.inspection_type == 'Outgoing'){
-    doc.purchase_receipt_no = '';
-    unhide_field('delivery_note_no');
-    hide_field('purchase_receipt_no');
-
-  }
-  else {
-    doc.purchase_receipt_no = '';
-    doc.delivery_note_no = '';    
-    hide_field('purchase_receipt_no');
-    hide_field('delivery_note_no');
-  }
-}
-
-cur_frm.cscript.refresh = cur_frm.cscript.inspection_type;
\ No newline at end of file
diff --git a/cgi-bin/README.md b/cgi-bin/README.md
new file mode 100644
index 0000000..0ea0779
--- /dev/null
+++ b/cgi-bin/README.md
@@ -0,0 +1 @@
+## Deprecated
\ No newline at end of file
diff --git a/cgi-bin/getfile.cgi b/cgi-bin/getfile.cgi
new file mode 100755
index 0000000..6b11305
--- /dev/null
+++ b/cgi-bin/getfile.cgi
@@ -0,0 +1,83 @@
+#!/usr/bin/python
+
+try:
+
+	import sys, os
+	
+	sys.path.append('../lib/py')
+	sys.path.append('../erpnext')
+
+	def getTraceback():
+		import sys, traceback, string
+		type, value, tb = sys.exc_info()
+		body = "Traceback (innermost last):\n"
+		list = traceback.format_tb(tb, None) \
+			+ traceback.format_exception_only(type, value)
+		body = body + "%-20s %s" % (string.join(list[:-1], ""), list[-1])
+		return body
+
+	import cgi
+	import webnotes
+	import webnotes.auth
+	import webnotes.utils
+	import webnotes.utils.file_manager
+	import webnotes.db
+	import webnotes.defs
+	
+	sys.path.append(webnotes.defs.modules_path)	
+	
+	form = cgi.FieldStorage()
+	webnotes.form_dict = {}
+	
+	for each in form.keys():
+		webnotes.form_dict[each] = form.getvalue(each)	
+	
+	n = form.getvalue('name')
+
+	# authenticate
+	webnotes.auth.HTTPRequest()
+	
+	# get file
+	res = webnotes.utils.file_manager.get_file(n)
+	
+	fname = res[0]
+	if hasattr(res[1], 'tostring'):
+		fcontent = res[1].tostring()
+	else: 
+		fcontent = res[1]
+
+	if form.getvalue('thumbnail'):
+		tn = webnotes.utils.cint(form.getvalue('thumbnail'))
+		try:
+			from PIL import Image
+			import cStringIO
+			
+			fobj = cStringIO.StringIO(fcontent)
+			image = Image.open(fobj)
+			image.thumbnail((tn,tn*2), Image.ANTIALIAS)
+			outfile = cStringIO.StringIO()
+	
+			if image.mode != "RGB":
+				image = image.convert("RGB")
+	
+			image.save(outfile, 'JPEG')
+			outfile.seek(0)
+			fcontent = outfile.read()
+		except:
+			pass
+
+	import mimetypes
+	print "Content-Type: %s" % (mimetypes.guess_type(fname)[0] or 'application/unknown')
+	print "Content-Disposition: filename="+fname.replace(' ', '_')
+	print "Cache-Control: max-age=3600"
+	print
+	print fcontent
+				
+except Exception, e:
+	print "Content-Type: text/html"
+	try:
+		out = {'message':'', 'exc':getTraceback().replace('\n','<br>')}
+	except:
+		out = {'exc': e}
+	print
+	print str(out)
diff --git a/config/conf.py b/config/conf.py
new file mode 100644
index 0000000..1cf35e2
--- /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/master.sql.gz b/data/master.sql.gz
similarity index 100%
rename from master.sql.gz
rename to data/master.sql.gz
Binary files differ
diff --git a/support/__init__.py b/erpnext/.no_timestamps
similarity index 100%
copy from support/__init__.py
copy 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 71%
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
index 981e64a..9ed756f 100644
--- 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
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:34',
 		'docstatus': 0,
-		'modified': '2011-08-09 11:14:09',
+		'modified': '2011-09-15 15:04:42',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -22,8 +22,6 @@
 	# These values are common for all Field Mapper Detail
 	{
 		'doctype': 'Field Mapper Detail',
-		'map': 'Yes',
-		'match_id': 1,
 		'name': '__common__',
 		'parent': 'Delivery Note-Receivable Voucher',
 		'parentfield': 'field_mapper_details',
@@ -32,7 +30,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Delivery Note',
 		'module': 'Accounts',
 		'name': '__common__',
@@ -42,14 +40,16 @@
 
 	# DocType Mapper, Delivery Note-Receivable Voucher
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Delivery Note-Receivable Voucher'
 	},
 
 	# Field Mapper Detail
 	{
 		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt)) / flt(obj.basic_rate)',
+		'from_field': 'eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt)) / flt(obj.basic_rate) or obj.qty',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'qty'
 	},
 
@@ -57,6 +57,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'parent',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'delivery_note'
 	},
 
@@ -64,6 +66,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'name',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'dn_detail'
 	},
 
@@ -71,6 +75,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'prevdoc_docname',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'sales_order'
 	},
 
@@ -78,6 +84,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'prevdoc_detail_docname',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'so_detail'
 	},
 
@@ -85,6 +93,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: flt(obj.amount) - flt(obj.billed_amt)',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'amount'
 	},
 
@@ -92,9 +102,38 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt)) * flt(obj.export_rate)/flt(obj.basic_rate)',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'export_amount'
 	},
 
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'naming_series',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'naming_series'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'incentives',
+		'map': 'No',
+		'match_id': 3,
+		'to_field': 'incentives'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'serial_no',
+		'map': 'Yes',
+		'match_id': 1,
+		'to_field': 'serial_no'
+	},
+
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
@@ -118,6 +157,17 @@
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
+		'from_field': 'delivery_note_details',
+		'from_table': 'Delivery Note Detail',
+		'match_id': 1,
+		'to_field': 'entries',
+		'to_table': 'RV Detail',
+		'validation_logic': '(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': 'Table Mapper Detail',
 		'from_field': 'other_charges',
 		'from_table': 'RV Tax Detail',
 		'match_id': 2,
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 94%
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
index 0854802..e88f452 100644
--- a/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt
+++ b/erpnext/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:10',
+		'creation': '2010-09-01 15:47:59',
 		'docstatus': 0,
-		'modified': '2010-09-01 14:24:38',
+		'modified': '2011-09-15 15:04:43',
 		'modified_by': 'Administrator',
 		'owner': 'ashwini@webnotestech.com'
 	},
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 77%
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
index aa4e787..1949110 100644
--- 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
@@ -5,8 +5,8 @@
 	{
 		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2011-05-13 11:26:20',
-		'modified_by': 'umair@iwebnotes.com',
+		'modified': '2011-09-15 15:04:43',
+		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
@@ -22,8 +22,6 @@
 	# These values are common for all Field Mapper Detail
 	{
 		'doctype': 'Field Mapper Detail',
-		'map': 'Yes',
-		'match_id': 1,
 		'name': '__common__',
 		'parent': 'Purchase Order-Payable Voucher',
 		'parentfield': 'field_mapper_details',
@@ -32,7 +30,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Purchase Order',
 		'module': 'Accounts',
 		'name': '__common__',
@@ -42,7 +40,7 @@
 
 	# DocType Mapper, Purchase Order-Payable Voucher
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Purchase Order-Payable Voucher'
 	},
 
@@ -50,6 +48,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: flt(obj.qty) - flt(obj.billed_qty)',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'qty'
 	},
 
@@ -57,6 +57,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'purchase_rate',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'rate'
 	},
 
@@ -64,6 +66,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'amount'
 	},
 
@@ -71,6 +75,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'import_amount'
 	},
 
@@ -78,6 +84,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'parent',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'purchase_order'
 	},
 
@@ -85,9 +93,20 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'name',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'po_detail'
 	},
 
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'naming_series',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'naming_series'
+	},
+
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
@@ -111,6 +130,17 @@
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
+		'from_field': 'po_details',
+		'from_table': 'PO Detail',
+		'match_id': 1,
+		'to_field': 'entries',
+		'to_table': 'PV Detail',
+		'validation_logic': 'ifnull(billed_qty,0)  < qty and docstatus = 1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': 'Table Mapper Detail',
 		'from_field': 'purchase_tax_details',
 		'from_table': 'Purchase Tax Detail',
 		'match_id': 2,
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 84%
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
index d363acb..94408e7 100644
--- 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
@@ -5,8 +5,8 @@
 	{
 		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2011-05-13 12:18:34',
-		'modified_by': 'umair@iwebnotes.com',
+		'modified': '2011-09-15 15:04:44',
+		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
@@ -22,8 +22,6 @@
 	# These values are common for all Field Mapper Detail
 	{
 		'doctype': 'Field Mapper Detail',
-		'map': 'Yes',
-		'match_id': 1,
 		'name': '__common__',
 		'parent': 'Purchase Receipt-Payable Voucher',
 		'parentfield': 'field_mapper_details',
@@ -32,7 +30,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Purchase Receipt',
 		'module': 'Accounts',
 		'name': '__common__',
@@ -42,7 +40,7 @@
 
 	# DocType Mapper, Purchase Receipt-Payable Voucher
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Purchase Receipt-Payable Voucher'
 	},
 
@@ -50,6 +48,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: flt(obj.qty) - flt(obj.billed_qty)',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'qty'
 	},
 
@@ -57,6 +57,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'purchase_rate',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'rate'
 	},
 
@@ -64,6 +66,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'amount'
 	},
 
@@ -71,6 +75,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'import_amount'
 	},
 
@@ -78,6 +84,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'parent',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'purchase_receipt'
 	},
 
@@ -85,6 +93,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'prevdoc_docname',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'purchase_order'
 	},
 
@@ -92,6 +102,8 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'name',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'pr_detail'
 	},
 
@@ -99,9 +111,20 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'prevdoc_detail_docname',
+		'map': 'Yes',
+		'match_id': 1,
 		'to_field': 'po_detail'
 	},
 
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'naming_series',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'naming_series'
+	},
+
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
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 76%
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
index f1f7710..630fb15 100644
--- 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
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:36',
 		'docstatus': 0,
-		'modified': '2011-08-08 16:56:40',
+		'modified': '2011-09-15 15:04:45',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -22,7 +22,6 @@
 	# These values are common for all Field Mapper Detail
 	{
 		'doctype': 'Field Mapper Detail',
-		'map': 'Yes',
 		'name': '__common__',
 		'parent': 'Sales Order-Receivable Voucher',
 		'parentfield': 'field_mapper_details',
@@ -31,7 +30,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Sales Order',
 		'module': 'Accounts',
 		'name': '__common__',
@@ -41,7 +40,7 @@
 
 	# DocType Mapper, Sales Order-Receivable Voucher
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Sales Order-Receivable Voucher'
 	},
 
@@ -50,6 +49,7 @@
 		'checking_operator': '=',
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'customer',
+		'map': 'Yes',
 		'match_id': 0,
 		'to_field': 'customer'
 	},
@@ -57,7 +57,8 @@
 	# Field Mapper Detail
 	{
 		'doctype': 'Field Mapper Detail',
-		'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate)',
+		'from_field': 'eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate) or obj.qty',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'qty'
 	},
@@ -66,6 +67,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'parent',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'sales_order'
 	},
@@ -74,6 +76,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'name',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'so_detail'
 	},
@@ -82,6 +85,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval:flt(obj.amount) - flt(obj.billed_amt)',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'amount'
 	},
@@ -90,6 +94,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt))* flt(obj.export_rate)/flt(obj.basic_rate)',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'export_amount'
 	},
@@ -99,6 +104,7 @@
 		'checking_operator': '=',
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'project_name',
+		'map': 'Yes',
 		'match_id': 0,
 		'to_field': 'project_name'
 	},
@@ -107,10 +113,29 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'reserved_warehouse',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'warehouse'
 	},
 
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'naming_series',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'naming_series'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'incentives',
+		'map': 'No',
+		'match_id': 3,
+		'to_field': 'incentives'
+	},
+
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
@@ -128,7 +153,18 @@
 		'match_id': 1,
 		'to_field': 'entries',
 		'to_table': 'RV Detail',
-		'validation_logic': 'amount > ifnull(billed_amt, 0) and docstatus = 1'
+		'validation_logic': 'docstatus = 1'
+	},
+
+	# Table Mapper Detail
+	{
+		'doctype': 'Table Mapper Detail',
+		'from_field': 'sales_order_detail',
+		'from_table': 'Sales Order Detail',
+		'match_id': 1,
+		'to_field': 'entries',
+		'to_table': 'RV Detail',
+		'validation_logic': '(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1'
 	},
 
 	# Table Mapper Detail
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 78%
rename from accounts/Module Def/Accounts/Accounts.txt
rename to erpnext/accounts/Module Def/Accounts/Accounts.txt
index 512b460..0a6921a 100644
--- a/accounts/Module Def/Accounts/Accounts.txt
+++ b/erpnext/accounts/Module Def/Accounts/Accounts.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-25 10:50:34',
+		'creation': '2010-09-25 10:50:37',
 		'docstatus': 0,
-		'modified': '2011-07-28 12:01:10',
+		'modified': '2011-09-27 12:44:04',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -31,7 +31,7 @@
 	# These values are common for all Module Def
 	{
 		'disabled': 'No',
-		'doctype': 'Module Def',
+		'doctype': u'Module Def',
 		'doctype_list': 'GL Mapper, Journal Voucher\nGL Mapper, Payable Voucher\nGL Mapper, Receivable Voucher\nDocType Label, Receivable Voucher\nDocType Label, Payable Voucher',
 		'file_list': 'finance.gif,FileData/00210',
 		'is_hidden': 'No',
@@ -40,13 +40,13 @@
 		'module_icon': 'Accounts.gif',
 		'module_label': 'Accounts',
 		'module_name': 'Accounts',
-		'module_seq': 3,
+		'module_seq': 5,
 		'name': '__common__'
 	},
 
 	# Module Def, Accounts
 	{
-		'doctype': 'Module Def',
+		'doctype': u'Module Def',
 		'name': 'Accounts'
 	},
 
@@ -57,8 +57,7 @@
 		'display_name': 'Chart of Accounts',
 		'doc_name': 'Accounts Browser',
 		'doc_type': 'Pages',
-		'doctype': 'Module Def Item',
-		'idx': 1
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -68,8 +67,7 @@
 		'display_name': 'Chart of Cost Centers',
 		'doc_name': 'Accounts Browser',
 		'doc_type': 'Pages',
-		'doctype': 'Module Def Item',
-		'idx': 2
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -79,8 +77,7 @@
 		'doc_name': 'Journal Voucher',
 		'doc_type': 'Forms',
 		'doctype': 'Module Def Item',
-		'fields': 'voucher_type\nvoucher_date\nfiscal_year\ntotal_debit\ntotal_credit',
-		'idx': 3
+		'fields': 'voucher_type\nvoucher_date\nfiscal_year\ntotal_debit\ntotal_credit'
 	},
 
 	# Module Def Item
@@ -90,8 +87,7 @@
 		'doc_name': 'Receivable Voucher',
 		'doc_type': 'Forms',
 		'doctype': 'Module Def Item',
-		'fields': 'voucher_date\ndue_date\ndebit_to\ngrand_total\noutstanding_amount',
-		'idx': 4
+		'fields': 'voucher_date\ndue_date\ndebit_to\ngrand_total\noutstanding_amount'
 	},
 
 	# Module Def Item
@@ -101,8 +97,7 @@
 		'doc_name': 'Payable Voucher',
 		'doc_type': 'Forms',
 		'doctype': 'Module Def Item',
-		'fields': 'voucher_date\ncredit_to\nbill_no\ngrand_total\noutstanding_amount',
-		'idx': 5
+		'fields': 'voucher_date\ncredit_to\nbill_no\ngrand_total\noutstanding_amount'
 	},
 
 	# Module Def Item
@@ -111,8 +106,7 @@
 		'display_name': 'Lease Agreement',
 		'doc_name': 'Lease Agreement',
 		'doc_type': 'Forms',
-		'doctype': 'Module Def Item',
-		'idx': 6
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -122,8 +116,7 @@
 		'doc_name': 'Financial Statements',
 		'doc_type': 'Pages',
 		'doctype': 'Module Def Item',
-		'icon': 'table.gif',
-		'idx': 7
+		'icon': 'table.gif'
 	},
 
 	# Module Def Item
@@ -132,8 +125,16 @@
 		'display_name': 'Bank Reconciliation',
 		'doc_name': 'Bank Reconciliation',
 		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item',
-		'idx': 8
+		'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
@@ -141,8 +142,7 @@
 		'display_name': 'TDS Payment',
 		'doc_name': 'TDS Payment',
 		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item',
-		'idx': 9
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -150,8 +150,7 @@
 		'display_name': 'TDS Return Acknowledgement',
 		'doc_name': 'TDS Return Acknowledgement',
 		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item',
-		'idx': 10
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -159,8 +158,7 @@
 		'display_name': 'Form 16A',
 		'doc_name': 'Form 16A',
 		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item',
-		'idx': 11
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -169,8 +167,7 @@
 		'display_name': 'Period Closing Voucher',
 		'doc_name': 'Period Closing Voucher',
 		'doc_type': 'Setup Forms',
-		'doctype': 'Module Def Item',
-		'idx': 12
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -179,8 +176,7 @@
 		'display_name': 'Ledger Balance Export',
 		'doc_name': 'Ledger Balance Export',
 		'doc_type': 'Single DocType',
-		'doctype': 'Module Def Item',
-		'idx': 13
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -188,8 +184,7 @@
 		'display_name': 'General Ledger',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 14
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -197,8 +192,7 @@
 		'display_name': 'Accounts Receivable',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 15
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -206,8 +200,7 @@
 		'display_name': 'Accounts Payable',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 16
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -215,8 +208,7 @@
 		'display_name': 'Bank Reconciliation Statement',
 		'doc_name': 'Journal Voucher Detail',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 17
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -224,8 +216,7 @@
 		'display_name': 'Trial Balance',
 		'doc_name': 'Account',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 18
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -233,8 +224,7 @@
 		'display_name': 'Sales Register',
 		'doc_name': 'Receivable Voucher',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 19
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -242,8 +232,7 @@
 		'display_name': 'Purchase Register',
 		'doc_name': 'Payable Voucher',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 20
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -251,8 +240,7 @@
 		'display_name': 'Bank Clearance report',
 		'doc_name': 'Journal Voucher Detail',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 21
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -260,8 +248,7 @@
 		'display_name': 'Monthly Ledger Summary Report',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 22
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -269,8 +256,7 @@
 		'display_name': 'Collection Report',
 		'doc_name': 'Journal Voucher Detail',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 23
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -278,8 +264,7 @@
 		'display_name': 'Total amout collection for a period - Customerwise',
 		'doc_name': 'Account',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 24
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -287,8 +272,7 @@
 		'display_name': 'Payment Report',
 		'doc_name': 'Journal Voucher Detail',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 25
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -296,8 +280,7 @@
 		'display_name': 'Itemwise Sales Register',
 		'doc_name': 'RV Detail',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 26
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -305,8 +288,7 @@
 		'display_name': 'Itemwise Purchase Register',
 		'doc_name': 'PV Detail',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 27
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -314,8 +296,7 @@
 		'display_name': 'Cost Center wise Expense',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 28
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -323,8 +304,7 @@
 		'display_name': 'TDS Return',
 		'doc_name': 'TDS Payment Detail',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 29
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -332,8 +312,7 @@
 		'display_name': 'Budget Variance Report',
 		'doc_name': 'Budget Detail',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 30
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -341,8 +320,7 @@
 		'display_name': 'Payment Receipt Report',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 31
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -351,8 +329,7 @@
 		'display_name': 'Business Associate Commission Report',
 		'doc_name': 'Receivable Voucher',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 32
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -360,8 +337,7 @@
 		'display_name': 'Lease Agreement List',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 33
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -369,8 +345,7 @@
 		'display_name': 'Lease Monthly Future Installment Inflows',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 34
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -378,8 +353,7 @@
 		'display_name': 'Lease Overdue Age Wise',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 35
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -387,8 +361,7 @@
 		'display_name': 'Lease Overdue List',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 36
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -396,17 +369,7 @@
 		'display_name': 'Lease Receipts Client Wise',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 37
-	},
-
-	# Module Def Item
-	{
-		'display_name': 'Lease Receipt Summary Month Wise',
-		'doc_name': 'GL Entry',
-		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 38
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Item
@@ -414,28 +377,26 @@
 		'display_name': 'Lease Yearly Future Installment Inflows',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'doctype': 'Module Def Item',
-		'idx': 39
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'display_name': 'Voucher wise tax details',
+		'doc_name': 'RV Tax Detail',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
 	},
 
 	# Module Def Role
 	{
 		'doctype': 'Module Def Role',
-		'idx': 1,
 		'role': 'Accounts Manager'
 	},
 
 	# Module Def Role
 	{
 		'doctype': 'Module Def Role',
-		'idx': 2,
 		'role': 'Accounts User'
-	},
-
-	# Module Def Role
-	{
-		'doctype': 'Module Def Role',
-		'idx': 3,
-		'role': 'Administrator'
 	}
 ]
\ No newline at end of file
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 \05001-07-2010\051/Rate chart \05001-07-2010\051.txt" "b/erpnext/accounts/TDS Rate Chart/Rate chart \05001-07-2010\051/Rate chart \05001-07-2010\051.txt"
similarity index 100%
rename from "accounts/TDS Rate Chart/Rate chart \05001-07-2010\051/Rate chart \05001-07-2010\051.txt"
rename to "erpnext/accounts/TDS Rate Chart/Rate chart \05001-07-2010\051/Rate chart \05001-07-2010\051.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/__init__.py b/erpnext/accounts/__init__.py
similarity index 100%
rename from accounts/__init__.py
rename to erpnext/accounts/__init__.py
diff --git a/accounts/doctype/__init__.py b/erpnext/accounts/doctype/__init__.py
similarity index 100%
rename from accounts/doctype/__init__.py
rename to erpnext/accounts/doctype/__init__.py
diff --git a/accounts/doctype/account/__init__.py b/erpnext/accounts/doctype/account/__init__.py
similarity index 100%
rename from accounts/doctype/account/__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/account_balance/__init__.py b/erpnext/accounts/doctype/account_balance/__init__.py
similarity index 100%
rename from accounts/doctype/account_balance/__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_adjustment_detail/__init__.py b/erpnext/accounts/doctype/advance_adjustment_detail/__init__.py
similarity index 100%
rename from accounts/doctype/advance_adjustment_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/advance_allocation_detail/__init__.py b/erpnext/accounts/doctype/advance_allocation_detail/__init__.py
similarity index 100%
rename from accounts/doctype/advance_allocation_detail/__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/__init__.py b/erpnext/accounts/doctype/bank_reconciliation/__init__.py
similarity index 100%
rename from accounts/doctype/bank_reconciliation/__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/bank_reconciliation_detail/__init__.py b/erpnext/accounts/doctype/bank_reconciliation_detail/__init__.py
similarity index 100%
rename from accounts/doctype/bank_reconciliation_detail/__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_control/__init__.py b/erpnext/accounts/doctype/budget_control/__init__.py
similarity index 100%
rename from accounts/doctype/budget_control/__init__.py
rename to erpnext/accounts/doctype/budget_control/__init__.py
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_detail/__init__.py b/erpnext/accounts/doctype/budget_detail/__init__.py
similarity index 100%
rename from accounts/doctype/budget_detail/__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/__init__.py b/erpnext/accounts/doctype/budget_distribution/__init__.py
similarity index 100%
rename from accounts/doctype/budget_distribution/__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/budget_distribution_detail/__init__.py b/erpnext/accounts/doctype/budget_distribution_detail/__init__.py
similarity index 100%
rename from accounts/doctype/budget_distribution_detail/__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/cost_center/__init__.py b/erpnext/accounts/doctype/cost_center/__init__.py
similarity index 100%
rename from accounts/doctype/cost_center/__init__.py
rename to erpnext/accounts/doctype/cost_center/__init__.py
diff --git a/erpnext/accounts/doctype/cost_center/cost_center.js b/erpnext/accounts/doctype/cost_center/cost_center.js
new file mode 100644
index 0000000..58f39e0
--- /dev/null
+++ b/erpnext/accounts/doctype/cost_center/cost_center.js
@@ -0,0 +1,72 @@
+ 
+
+//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';
+	}
+
+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';
+}
+
+//parent cost center
+cur_frm.cscript.parent_cost_center = function(doc,cdt,cdn){
+	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);
+}
+
+//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');
+	}
+ 
+}
+
+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
new file mode 100644
index 0000000..d09331a
--- /dev/null
+++ b/erpnext/accounts/doctype/cost_center/cost_center.py
@@ -0,0 +1,103 @@
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+
+class DocType:
+	def __init__(self,d,dl):
+		self.doc, self.doclist = d,dl
+		self.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 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): 
+		"""
+			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()
diff --git a/accounts/doctype/cost_center/cost_center.txt b/erpnext/accounts/doctype/cost_center/cost_center.txt
similarity index 89%
rename from accounts/doctype/cost_center/cost_center.txt
rename to erpnext/accounts/doctype/cost_center/cost_center.txt
index fab2dd5..94fb02b 100644
--- a/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-10-10 12:05:07',
+		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1308741898',
+		'_last_update': '1317365120',
 		'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': 109
 	},
 
 	# 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',
@@ -220,16 +208,34 @@
 
 	# 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',
 		'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 +243,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'budget_details',
 		'fieldtype': 'Table',
-		'idx': 8,
 		'label': 'Budget Details',
 		'oldfieldname': 'budget_details',
 		'oldfieldtype': 'Table',
@@ -251,7 +256,6 @@
 		'fieldname': 'lft',
 		'fieldtype': 'Int',
 		'hidden': 1,
-		'idx': 9,
 		'in_filter': 1,
 		'label': 'lft',
 		'no_copy': 1,
@@ -269,7 +273,6 @@
 		'fieldname': 'rgt',
 		'fieldtype': 'Int',
 		'hidden': 1,
-		'idx': 10,
 		'in_filter': 1,
 		'label': 'rgt',
 		'no_copy': 1,
@@ -286,13 +289,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/accounts/doctype/fiscal_year/__init__.py b/erpnext/accounts/doctype/fiscal_year/__init__.py
similarity index 100%
rename from accounts/doctype/fiscal_year/__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 86%
rename from accounts/doctype/fiscal_year/fiscal_year.py
rename to erpnext/accounts/doctype/fiscal_year/fiscal_year.py
index 6b2dfde..74b90cc 100644
--- a/accounts/doctype/fiscal_year/fiscal_year.py
+++ b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
@@ -21,34 +21,32 @@
 	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 @@
 		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 @@
 		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
@@ -133,8 +129,8 @@
 
 			# build dict
 			p = {
-				'debit': flt(entry[2])
-				,'credit':flt(entry[3])
+				'debit': entry[4]=='No' and flt(entry[2]) or 0
+				,'credit': entry[4]=='No' and flt(entry[3]) or 0
 				,'opening': entry[4]=='Yes' and diff or 0
 				
 				# end date conditino only if it is not opening
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/__init__.py b/erpnext/accounts/doctype/form_16a/__init__.py
similarity index 100%
rename from accounts/doctype/form_16a/__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_ack_detail/__init__.py b/erpnext/accounts/doctype/form_16a_ack_detail/__init__.py
similarity index 100%
rename from accounts/doctype/form_16a_ack_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/form_16a_tax_detail/__init__.py b/erpnext/accounts/doctype/form_16a_tax_detail/__init__.py
similarity index 100%
rename from accounts/doctype/form_16a_tax_detail/__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_control/__init__.py b/erpnext/accounts/doctype/gl_control/__init__.py
similarity index 100%
rename from accounts/doctype/gl_control/__init__.py
rename to erpnext/accounts/doctype/gl_control/__init__.py
diff --git a/accounts/doctype/gl_control/gl_control.py b/erpnext/accounts/doctype/gl_control/gl_control.py
similarity index 85%
rename from accounts/doctype/gl_control/gl_control.py
rename to erpnext/accounts/doctype/gl_control/gl_control.py
index a346b65..44a9e8d 100644
--- a/accounts/doctype/gl_control/gl_control.py
+++ b/erpnext/accounts/doctype/gl_control/gl_control.py
@@ -191,6 +191,7 @@
 			else:
 				self.entries.append(le)
 
+
 	# Save GL Entries
 	# ----------------
 	def save_entries(self, cancel, adv_adj, update_outstanding):
@@ -200,7 +201,6 @@
 				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 @@
 			# 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 @@
 			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 @@
 		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 @@
 		# 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/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/gl_entry/__init__.py b/erpnext/accounts/doctype/gl_entry/__init__.py
similarity index 100%
rename from accounts/doctype/gl_entry/__init__.py
rename to erpnext/accounts/doctype/gl_entry/__init__.py
diff --git a/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py
similarity index 98%
rename from accounts/doctype/gl_entry/gl_entry.py
rename to erpnext/accounts/doctype/gl_entry/gl_entry.py
index 5d39760..c45e162 100644
--- a/accounts/doctype/gl_entry/gl_entry.py
+++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py
@@ -146,8 +146,8 @@
 		
 		# 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 '')
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/bank_reconciliation/__init__.py b/erpnext/accounts/doctype/internal_reconciliation/__init__.py
similarity index 100%
copy from accounts/doctype/bank_reconciliation/__init__.py
copy to erpnext/accounts/doctype/internal_reconciliation/__init__.py
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 0000000..bcd5c44
--- /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 0000000..7c34546
--- /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 0000000..cc1523a
--- /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': "<div class = 'field_description'>Filter payment entries based on date:</div>",
+		'permlevel': 0,
+		'width': '50%'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'from_date',
+		'fieldtype': 'Date',
+		'label': 'From Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'to_date',
+		'fieldtype': 'Date',
+		'label': 'To Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'doctype': 'DocField',
+		'fieldtype': 'Column Break',
+		'label': "<div class = 'field_description'>Filter payment entries based on amount:</div>",
+		'permlevel': 0,
+		'width': '50%'
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'doctype': 'DocField',
+		'fieldname': 'amt_greater_than',
+		'fieldtype': 'Data',
+		'label': 'Amount >=',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'amt_less_than',
+		'fieldtype': 'Data',
+		'label': 'Amount <=',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldtype': 'Section Break',
+		'options': 'Simple',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldtype': 'Button',
+		'label': 'Pull Payment Entries',
+		'options': 'get_payment_entries',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'ir_payment_details',
+		'fieldtype': 'Table',
+		'label': 'Payment Entries',
+		'options': 'IR Payment Detail',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'doctype': 'DocField',
+		'fieldtype': 'HTML',
+		'label': 'Reconcile HTML',
+		'options': "<div class='field_description'>Select Payment Voucher and Amount to Reconcile in the above table and then click Reconcile button</div>",
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'doctype': 'DocField',
+		'fieldtype': 'Button',
+		'label': 'Reconcile',
+		'options': 'reconcile',
+		'permlevel': 0,
+		'trigger': 'Client'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/internal_reconciliation/test_ir.py b/erpnext/accounts/doctype/internal_reconciliation/test_ir.py
new file mode 100644
index 0000000..b35af6e
--- /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/accounts/doctype/tds_payment_detail/__init__.py b/erpnext/accounts/doctype/ir_payment_detail/__init__.py
similarity index 100%
copy from accounts/doctype/tds_payment_detail/__init__.py
copy to erpnext/accounts/doctype/ir_payment_detail/__init__.py
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 0000000..b35c497
--- /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
diff --git a/accounts/doctype/journal_voucher/__init__.py b/erpnext/accounts/doctype/journal_voucher/__init__.py
similarity index 100%
rename from accounts/doctype/journal_voucher/__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/journal_voucher_detail/__init__.py b/erpnext/accounts/doctype/journal_voucher_detail/__init__.py
similarity index 100%
rename from accounts/doctype/journal_voucher_detail/__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_agreement/__init__.py b/erpnext/accounts/doctype/lease_agreement/__init__.py
similarity index 100%
rename from accounts/doctype/lease_agreement/__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/lease_installment/__init__.py b/erpnext/accounts/doctype/lease_installment/__init__.py
similarity index 100%
rename from accounts/doctype/lease_installment/__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_balance_export/__init__.py b/erpnext/accounts/doctype/ledger_balance_export/__init__.py
similarity index 100%
rename from accounts/doctype/ledger_balance_export/__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/ledger_detail/__init__.py b/erpnext/accounts/doctype/ledger_detail/__init__.py
similarity index 100%
rename from accounts/doctype/ledger_detail/__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/mode_of_payment/__init__.py b/erpnext/accounts/doctype/mode_of_payment/__init__.py
similarity index 100%
rename from accounts/doctype/mode_of_payment/__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/payable_voucher/__init__.py b/erpnext/accounts/doctype/payable_voucher/__init__.py
similarity index 100%
rename from accounts/doctype/payable_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 95%
rename from accounts/doctype/payable_voucher/payable_voucher.js
rename to erpnext/accounts/doctype/payable_voucher/payable_voucher.js
index 4a566d3..5c27683 100644
--- a/accounts/doctype/payable_voucher/payable_voucher.js
+++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js
@@ -20,12 +20,15 @@
   }  
   
   if(doc.__islocal){
-    if(doc.supplier) {cur_frm.cscript.supplier(doc,dt,dn)}
-    hide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']);
+    hide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email']);
   }
-  
+}
 
-  if(doc.supplier) unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']);  
+
+//Onload post render
+//------------------------
+cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
+  if(doc.__islocal && doc.supplier) cur_frm.cscript.supplier(doc,dt,dn);
 }
 
 // Refresh
@@ -166,10 +169,10 @@
 // -----------------
 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/accounts/doctype/payable_voucher/payable_voucher.py b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py
similarity index 94%
rename from accounts/doctype/payable_voucher/payable_voucher.py
rename to erpnext/accounts/doctype/payable_voucher/payable_voucher.py
index b403d20..9f2848a 100644
--- a/accounts/doctype/payable_voucher/payable_voucher.py
+++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py
@@ -78,19 +78,13 @@
 	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']
@@ -447,12 +441,38 @@
 				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 +482,9 @@
 		
 		# 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/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/period_closing_voucher/__init__.py b/erpnext/accounts/doctype/period_closing_voucher/__init__.py
similarity index 100%
rename from accounts/doctype/period_closing_voucher/__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 93%
rename from accounts/doctype/period_closing_voucher/period_closing_voucher.py
rename to erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
index c7e5db6..895130e 100644
--- a/accounts/doctype/period_closing_voucher/period_closing_voucher.py
+++ b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
@@ -79,8 +79,8 @@
   # 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 @@
   # =============================================================
   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:
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/pos_setting/__init__.py b/erpnext/accounts/doctype/pos_setting/__init__.py
similarity index 100%
rename from accounts/doctype/pos_setting/__init__.py
rename to erpnext/accounts/doctype/pos_setting/__init__.py
diff --git a/erpnext/accounts/doctype/pos_setting/pos_setting.js b/erpnext/accounts/doctype/pos_setting/pos_setting.js
new file mode 100755
index 0000000..4eed7b6
--- /dev/null
+++ b/erpnext/accounts/doctype/pos_setting/pos_setting.js
@@ -0,0 +1,109 @@
+ 
+
+//--------- 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']);
+  }
+}
+
+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');
+}
+
+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';
+}
+
+
+// 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'
+}
+
+
+// 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';
+}
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/purchase_tax_detail/__init__.py b/erpnext/accounts/doctype/purchase_tax_detail/__init__.py
similarity index 100%
rename from accounts/doctype/purchase_tax_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/pv_detail/__init__.py b/erpnext/accounts/doctype/pv_detail/__init__.py
similarity index 100%
rename from accounts/doctype/pv_detail/__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/receivable_voucher/__init__.py b/erpnext/accounts/doctype/receivable_voucher/__init__.py
similarity index 100%
rename from accounts/doctype/receivable_voucher/__init__.py
rename to erpnext/accounts/doctype/receivable_voucher/__init__.py
diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js
new file mode 100644
index 0000000..ec8f291
--- /dev/null
+++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js
@@ -0,0 +1,434 @@
+cur_frm.cscript.tname = "RV Detail";
+cur_frm.cscript.fname = "entries";
+cur_frm.cscript.other_fname = "other_charges";
+cur_frm.cscript.sales_team_fname = "sales_team";
+
+// print heading
+cur_frm.pformat.print_heading = 'Invoice';
+
+$import(Sales Common)
+$import(Other Charges)
+$import(SMS Control)
+
+// On Load
+// -------
+cur_frm.cscript.onload = function(doc,dt,dn) {
+	if(!doc.customer && doc.debit_to) get_field(dt, 'debit_to', dn).print_hide = 0;
+	if (doc.__islocal) {
+		if(!doc.voucher_date) set_multiple(dt,dn,{voucher_date:get_today()});
+		if(!doc.due_date) set_multiple(dt,dn,{due_date:get_today()});
+		if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});
+
+		//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']);
+	}
+}
+
+cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
+	if(doc.customer && doc.__islocal) {
+		// called from mapper, update the account names for items and customer
+		$c_obj(make_doclist(doc.doctype,doc.name),
+			'load_default_accounts','',
+			function(r,rt) {
+				refresh_field('entries');
+				cur_frm.cscript.customer(doc,dt,dn);
+			}
+		);
+	}
+
+	if(!doc.customer && doc.__islocal) {
+		// new -- load default taxes
+		cur_frm.cscript.load_taxes(doc, cdt, cdn);
+	}
+}
+
+
+// Hide Fields
+// ------------
+cur_frm.cscript.hide_fields = function(doc, cdt, cdn) {
+	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);
+			}
+		}
+	}
+}
+
+
+// Refresh
+// -------
+cur_frm.cscript.refresh = function(doc, dt, dn) {
+
+	// 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.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);
+}
+
+//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.warehouse = function(doc, cdt , cdn) {
+	var d = locals[cdt][cdn];
+	if (!d.item_code) {alert("please enter item code first"); return};
+	if (d.warehouse) {
+		arg = "{'item_code':'" + d.item_code + "','warehouse':'" + d.warehouse +"'}";
+		get_server_fields('get_actual_qty',arg,'entries',doc,cdt,cdn,1);
+	}
+}
+
+
+
+//Customer
+cur_frm.cscript.customer = function(doc,dt,dn) {
+
+	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']);
+}
+
+cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {
+	if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
+}
+
+cur_frm.fields_dict.customer_address.on_new = function(dn) {
+	locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
+	locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
+}
+
+cur_frm.fields_dict.contact_person.on_new = function(dn) {
+	locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer;
+	locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name;
+}
+
+cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) {
+	return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
+
+cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
+	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
+
+
+// Set Due Date = posting date + credit days
+cur_frm.cscript.debit_to = function(doc,dt,dn) {
+
+	var callback2 = function(r,rt) {
+			var doc = locals[cur_frm.doctype][cur_frm.docname];
+			cur_frm.refresh();
+	}
+
+	var callback = function(r,rt) {
+			var doc = locals[cur_frm.doctype][cur_frm.docname];
+			if(doc.customer) $c_obj(make_doclist(dt,dn), 'get_default_customer_address', '', callback2);
+			if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
+			cur_frm.refresh();
+	}
+
+	if(doc.debit_to && doc.posting_date){
+		get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,callback);
+	}
+}
+
+
+
+//refresh advance amount
+//-------------------------------------------------
+
+cur_frm.cscript.paid_amount = function(doc,dt,dn){
+	doc.outstanding_amount = flt(doc.grand_total) - flt(doc.paid_amount) - flt(doc.write_off_amount);
+	refresh_field('outstanding_amount');
+}
+
+
+//---- get customer details ----------------------------
+cur_frm.cscript.project_name = function(doc,cdt,cdn){
+	$c_obj(make_doclist(doc.doctype, doc.name),'pull_project_customer','', function(r,rt){
+		refresh_many(['customer', 'customer_name','customer_address', 'territory']);
+	});
+}
+
+//Set debit and credit to zero on adding new row
+//----------------------------------------------
+cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){
+
+	cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype);
+	acc = '';
+	cc = '';
+
+	for(var i = 0; i<cl.length; i++) {
+
+		if (cl[i].idx == 1){
+			acc = cl[i].income_account;
+			cc = cl[i].cost_center;
+		}
+		else{
+			if (! cl[i].income_account) { cl[i].income_account = acc; refresh_field('income_account', cl[i].name, 'entries');}
+			if (! cl[i].cost_center)	{cl[i].cost_center = cc;refresh_field('cost_center', cl[i].name, 'entries');}
+		}
+	}
+}
+
+cur_frm.cscript.is_opening = function(doc, dt, dn) {
+	hide_field('aging_date');
+	if (doc.is_opening == 'Yes') unhide_field('aging_date');
+}
+
+/* **************************** TRIGGERS ********************************** */
+
+
+
+// Posting Date
+// ------------
+//cur_frm.cscript.posting_date = cur_frm.cscript.debit_to;
+
+
+// Get Items based on SO or DN Selected
+cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
+	var callback = function(r,rt) {
+		unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
+		cur_frm.refresh();
+	}
+	get_server_fields('pull_details','','',doc, dt, dn,1,callback);
+}
+
+
+
+// Allocated Amount in advances table
+// -----------------------------------
+cur_frm.cscript.allocated_amount = function(doc,cdt,cdn){
+	cur_frm.cscript.calc_adjustment_amount(doc,cdt,cdn);
+}
+
+//Make Delivery Note Button
+//-----------------------------
+
+cur_frm.cscript['Make Delivery Note'] = function() {
+
+	var doc = cur_frm.doc
+	n = createLocal('Delivery Note');
+	$c('dt_map', args={
+		'docs':compress_doclist([locals['Delivery Note'][n]]),
+		'from_doctype':doc.doctype,
+		'to_doctype':'Delivery Note',
+		'from_docname':doc.name,
+		'from_to_list':"[['Receivable Voucher','Delivery Note'],['RV Detail','Delivery Note Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team']]"
+		}, function(r,rt) {
+			 loaddoc('Delivery Note', n);
+		}
+	);
+}
+
+
+
+// Make Bank Voucher Button
+// -------------------------
+cur_frm.cscript['Make Bank Voucher'] = function(doc, dt, dn) {
+	cur_frm.cscript.make_jv(cur_frm.doc);
+}
+
+
+/* ***************************** Get Query Functions ************************** */
+
+// Debit To
+// ---------
+cur_frm.fields_dict.debit_to.get_query = function(doc) {
+	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+}
+
+// Cash/bank account
+//------------------
+cur_frm.fields_dict.cash_bank_account.get_query = function(doc) {
+	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+}
+
+// Write off account
+//------------------
+cur_frm.fields_dict.write_off_account.get_query = function(doc) {
+	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "Yes" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
+}
+
+// Write off cost center
+//-----------------------
+cur_frm.fields_dict.write_off_cost_center.get_query = function(doc) {
+	return 'SELECT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Ledger" AND `tabCost Center`.docstatus!=2 AND `tabCost Center`.company_name="'+doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s"'
+}
+
+//project name
+//--------------------------
+cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
+	var cond = '';
+	if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
+	return repl('SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND %(cond)s `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
+}
+
+//Territory
+//-----------------------------
+cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
+	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
+}
+
+// Income Account in Details Table
+// --------------------------------
+cur_frm.fields_dict.entries.grid.get_field("income_account").get_query = function(doc) {
+	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"';
+}
+
+// warehouse in detail table
+//----------------------------
+cur_frm.fields_dict['entries'].grid.get_field('warehouse').get_query= function(doc, cdt, cdn) {
+	var d = locals[cdt][cdn];
+	return "SELECT `tabBin`.`warehouse`, `tabBin`.`actual_qty` FROM `tabBin` WHERE `tabBin`.`item_code` = '"+ d.item_code +"' AND ifnull(`tabBin`.`actual_qty`,0) > 0 AND `tabBin`.`warehouse` like '%s' ORDER BY `tabBin`.`warehouse` DESC LIMIT 50";
+}
+
+// Cost Center in Details Table
+// -----------------------------
+cur_frm.fields_dict.entries.grid.get_field("cost_center").get_query = function(doc) {
+	return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY	`tabCost Center`.`name` ASC LIMIT 50';
+}
+
+// Sales Order
+// -----------
+cur_frm.fields_dict.sales_order_main.get_query = function(doc) {
+	if (doc.customer)
+		return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.`customer` =	"' + doc.customer + '" and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
+	else
+		return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 100 and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
+}
+
+// Delivery Note
+// --------------
+cur_frm.fields_dict.delivery_note_main.get_query = function(doc) {
+	if (doc.customer)
+		return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.`customer` =	"' + doc.customer + '" and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
+	else
+		return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` WHERE `tabDelivery Note`.company = "' + doc.company + '" and `tabDelivery Note`.`docstatus` = 1 and ifnull(`tabDelivery Note`.per_billed,0) < 100 and `tabDelivery Note`.%(key)s LIKE "%s" ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
+}
+
+
+
+cur_frm.cscript.income_account = function(doc, cdt, cdn){
+	var d = locals[cdt][cdn];
+	if(d.income_account){
+		var cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype);
+		for(var i = 0; i < cl.length; i++){
+			if(!cl[i].income_account) cl[i].income_account = d.income_account;
+		}
+	}
+	refresh_field(cur_frm.cscript.fname);
+}
+
+
+cur_frm.cscript.cost_center = function(doc, cdt, cdn){
+	var d = locals[cdt][cdn];
+	if(d.cost_center){
+		var cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype);
+		for(var i = 0; i < cl.length; i++){
+			if(!cl[i].cost_center) cl[i].cost_center = d.cost_center;
+		}
+	}
+	refresh_field(cur_frm.cscript.fname);
+}
+
+/* **************************************** Utility Functions *************************************** */
+
+// Details Calculation
+// --------------------
+cur_frm.cscript.calc_adjustment_amount = function(doc,cdt,cdn) {
+	var doc = locals[doc.doctype][doc.name];
+	var el = getchildren('Advance Adjustment Detail',doc.name,'advance_adjustment_details');
+	var total_adjustment_amt = 0
+	for(var i in el) {
+			total_adjustment_amt += flt(el[i].allocated_amount)
+	}
+	doc.total_advance = flt(total_adjustment_amt);
+	doc.outstanding_amount = flt(doc.grand_total) - flt(total_adjustment_amt) - flt(doc.paid_amount) - flt(doc.write_off_amount);
+	refresh_many(['total_advance','outstanding_amount']);
+}
+
+
+// Make Journal Voucher
+// --------------------
+cur_frm.cscript.make_jv = function(doc, dt, dn) {
+	var jv = LocalDB.create('Journal Voucher');
+	jv = locals['Journal Voucher'][jv];
+	jv.voucher_type = 'Bank Voucher';
+
+	jv.company = doc.company;
+	jv.remark = repl('Payment received against invoice %(vn)s for %(rem)s', {vn:doc.name, rem:doc.remarks});
+	jv.fiscal_year = doc.fiscal_year;
+
+	// debit to creditor
+	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
+	d1.account = doc.debit_to;
+	d1.credit = doc.outstanding_amount;
+	d1.against_invoice = doc.name;
+
+
+	// credit to bank
+	var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
+	d1.debit = doc.outstanding_amount;
+
+	loaddoc('Journal Voucher', jv.name);
+}
+
+
+/****************** Get Accounting Entry *****************/
+cur_frm.cscript['View Ledger Entry'] = function(){
+	var callback = function(report){
+		report.set_filter('GL Entry', 'Voucher No',cur_frm.doc.name);
+		report.dt.run();
+	}
+	loadreport('GL Entry','General Ledger', callback);
+}
diff --git a/accounts/doctype/receivable_voucher/receivable_voucher.py b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py
similarity index 93%
rename from accounts/doctype/receivable_voucher/receivable_voucher.py
rename to erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py
index f26374a..6d1f80a 100644
--- a/accounts/doctype/receivable_voucher/receivable_voucher.py
+++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py
@@ -139,7 +139,6 @@
 			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):			
@@ -226,40 +225,47 @@
 
 
 	#-----------------------------------------------------------------
-	# 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
 	# ------------------------------------------------
@@ -546,7 +552,7 @@
 		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)
diff --git a/accounts/doctype/receivable_voucher/receivable_voucher.txt b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt
similarity index 94%
rename from accounts/doctype/receivable_voucher/receivable_voucher.txt
rename to erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt
index f2f9eaf..2f3b48d 100644
--- a/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,
@@ -598,11 +564,25 @@
 
 	# 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',
@@ -625,20 +604,11 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 38,
-		'permlevel': 0
-	},
-
-	# DocField
-	{
 		'colour': 'White:FFF',
 		'depends_on': 'eval:doc.is_pos==1',
 		'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',
@@ -767,21 +728,7 @@
 	# 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,
@@ -792,8 +739,19 @@
 	# 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',
diff --git a/accounts/doctype/rv_detail/__init__.py b/erpnext/accounts/doctype/rv_detail/__init__.py
similarity index 100%
rename from accounts/doctype/rv_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/rv_tax_detail/__init__.py b/erpnext/accounts/doctype/rv_tax_detail/__init__.py
similarity index 100%
rename from accounts/doctype/rv_tax_detail/__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/__init__.py b/erpnext/accounts/doctype/tds_category/__init__.py
similarity index 100%
rename from accounts/doctype/tds_category/__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_category_account/__init__.py b/erpnext/accounts/doctype/tds_category_account/__init__.py
similarity index 100%
rename from accounts/doctype/tds_category_account/__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_control/__init__.py b/erpnext/accounts/doctype/tds_control/__init__.py
similarity index 100%
rename from accounts/doctype/tds_control/__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_detail/__init__.py b/erpnext/accounts/doctype/tds_detail/__init__.py
similarity index 100%
rename from accounts/doctype/tds_detail/__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/__init__.py b/erpnext/accounts/doctype/tds_payment/__init__.py
similarity index 100%
rename from accounts/doctype/tds_payment/__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_payment_detail/__init__.py b/erpnext/accounts/doctype/tds_payment_detail/__init__.py
similarity index 100%
rename from accounts/doctype/tds_payment_detail/__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_chart/__init__.py b/erpnext/accounts/doctype/tds_rate_chart/__init__.py
similarity index 100%
rename from accounts/doctype/tds_rate_chart/__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_rate_detail/__init__.py b/erpnext/accounts/doctype/tds_rate_detail/__init__.py
similarity index 100%
rename from accounts/doctype/tds_rate_detail/__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/doctype/tds_return_acknowledgement/__init__.py b/erpnext/accounts/doctype/tds_return_acknowledgement/__init__.py
similarity index 100%
rename from accounts/doctype/tds_return_acknowledgement/__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/__init__.py b/erpnext/accounts/page/__init__.py
similarity index 100%
rename from accounts/page/__init__.py
rename to erpnext/accounts/page/__init__.py
diff --git a/accounts/page/accounts_browser/__init__.py b/erpnext/accounts/page/accounts_browser/__init__.py
similarity index 100%
rename from accounts/page/accounts_browser/__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/page/financial_statements/__init__.py b/erpnext/accounts/page/financial_statements/__init__.py
similarity index 100%
rename from accounts/page/financial_statements/__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/__init__.py b/erpnext/accounts/search_criteria/__init__.py
similarity index 100%
rename from accounts/search_criteria/__init__.py
rename to erpnext/accounts/search_criteria/__init__.py
diff --git a/accounts/search_criteria/accounts_payable/__init__.py b/erpnext/accounts/search_criteria/accounts_payable/__init__.py
similarity index 100%
rename from accounts/search_criteria/accounts_payable/__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 98%
rename from accounts/search_criteria/accounts_payable/accounts_payable.py
rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py
index 8c07b68..44daddc 100644
--- a/accounts/search_criteria/accounts_payable/accounts_payable.py
+++ b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py
@@ -90,9 +90,13 @@
 	# supplier type
 	r.append(supp_type_dict.get(r[col_idx['Account']], ''))	
 	
+	if r[col_idx['Voucher Type']] == 'Payable Voucher':
+		r += pv_dict.get(r[col_idx['Voucher No']], ['', '', ''])
+	else:
+		r += ['', '', '']
+	
 	# if entry against Payable Voucher
 	if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Payable Voucher':
-		r += pv_dict.get(r[col_idx['Voucher No']], ['', '', ''])
 		cond = " and ifnull(against_voucher, '') = '%s'" % r[col_idx['Against Voucher']]
 
 	# if entry against JV & and not adjusted within period
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/accounts_receivable/__init__.py b/erpnext/accounts/search_criteria/accounts_receivable/__init__.py
similarity index 100%
rename from accounts/search_criteria/accounts_receivable/__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_clearance_report/__init__.py b/erpnext/accounts/search_criteria/bank_clearance_report/__init__.py
similarity index 100%
rename from accounts/search_criteria/bank_clearance_report/__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/bank_reconciliation_statement/__init__.py b/erpnext/accounts/search_criteria/bank_reconciliation_statement/__init__.py
similarity index 100%
rename from accounts/search_criteria/bank_reconciliation_statement/__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/budget_variance_report/__init__.py b/erpnext/accounts/search_criteria/budget_variance_report/__init__.py
similarity index 100%
rename from accounts/search_criteria/budget_variance_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/business_associate_commission_report/__init__.py b/erpnext/accounts/search_criteria/business_associate_commission_report/__init__.py
similarity index 100%
rename from accounts/search_criteria/business_associate_commission_report/__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/cash_flow_statement/__init__.py b/erpnext/accounts/search_criteria/cash_flow_statement/__init__.py
similarity index 100%
rename from accounts/search_criteria/cash_flow_statement/__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/cenvat_credit___input_or_capital_goods/__init__.py b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py
similarity index 100%
rename from accounts/search_criteria/cenvat_credit___input_or_capital_goods/__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/collection_report/__init__.py b/erpnext/accounts/search_criteria/collection_report/__init__.py
similarity index 100%
rename from accounts/search_criteria/collection_report/__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/cost_center_wise_expense/__init__.py b/erpnext/accounts/search_criteria/cost_center_wise_expense/__init__.py
similarity index 100%
rename from accounts/search_criteria/cost_center_wise_expense/__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/creditors_ledger/__init__.py b/erpnext/accounts/search_criteria/creditors_ledger/__init__.py
similarity index 100%
rename from accounts/search_criteria/creditors_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/debtors_ledger/__init__.py b/erpnext/accounts/search_criteria/debtors_ledger/__init__.py
similarity index 100%
rename from accounts/search_criteria/debtors_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/general_ledger/__init__.py b/erpnext/accounts/search_criteria/general_ledger/__init__.py
similarity index 100%
rename from accounts/search_criteria/general_ledger/__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 66%
rename from accounts/search_criteria/general_ledger/general_ledger.py
rename to erpnext/accounts/search_criteria/general_ledger/general_ledger.py
index 6cba6e4..8c855cf 100644
--- a/accounts/search_criteria/general_ledger/general_ledger.py
+++ b/erpnext/accounts/search_criteria/general_ledger/general_ledger.py
@@ -1,9 +1,11 @@
 #get company letter head
+#---------------------------------------------------------------------
 l_head = sql("select content from `tabLetter Head` where ifnull(is_default, 0) = 1 and ifnull(disabled, 0) = 0")
 l_head = l_head and l_head[0][0] or ''
 
+
 # Posting date, fiscal year and year start date
-#-----------------------------------------------
+#---------------------------------------------------------------------
 if not filter_values.get('posting_date') or not filter_values.get('posting_date1'):
   msgprint("Please enter From Date and To Date")
   raise Exception
@@ -11,11 +13,16 @@
   from_date = filter_values['posting_date']
   to_date = filter_values['posting_date1']
 
-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)",from_date)[0][0]
+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)",from_date)
+if not from_date_year:
+	msgprint("From Date is out of range. Please check.", raise_exception=1)
+else:
+	from_date_year = from_date_year[0][0]
 #to_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)",to_date)[0][0]
 
+
 # define columns
-#---------------
+#---------------------------------------------------------------------
 col = []
 col.append(['Date','Date','80px',''])
 col.append(['Detail','Text','475px',''])
@@ -30,9 +37,9 @@
   col_idx[c[0]] = len(colnames)
 
 
-total_debit, total_credit, total_opening, total_diff = 0,0,0,0
-
 #total query
+#---------------------------------------------------------------------
+total_debit, total_credit, total_opening, total_diff = 0,0,0,0
 q = query.split('WHERE')[1].split('LIMIT')
 if len(q) > 2:
   query_where_clause = 'LIMIT'.join(q[:-1])
@@ -47,27 +54,32 @@
 
 total_diff = total_debit - total_credit
 
-# opening
-account = filter_values.get('account')
-if not account:
-  msgprint('Select an account to proceed',raise_exception=0,small=1)
-
-
-acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % account)
-
-opening_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, from_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
-closing_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, to_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
-if acc_det[0][0] == 'Credit':
-  closing_bal = -1*closing_bal
-  opening_bal = -1*opening_bal
-
 out = []
 
-t_row = ['' for i in range(len(colnames))]
-t_row[1] = 'Opening as on '+formatdate(from_date)
-t_row[col_idx['Debit']-1] = opening_bal
-out.append(t_row)
 
+# If account mentioned, show opening and closing
+#---------------------------------------------------------------------
+account = filter_values.get('account')
+
+if account and (total_debit != 0 or total_credit != 0):
+	acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % account)
+
+	opening_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, add_days(from_date, -1), acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
+	closing_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, to_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
+	
+	if acc_det[0][0] == 'Credit':
+	  closing_bal = -1*closing_bal
+	  opening_bal = -1*opening_bal
+
+	# add opening row
+	t_row = ['' for i in range(len(colnames))]
+	t_row[1] = 'Opening as on '+formatdate(from_date)
+	t_row[col_idx['Debit']-1] = opening_bal
+	out.append(t_row)
+	
+	
+# table output
+#---------------------------------------------------------------------
 count = 0
 for r in res:
   count +=1
@@ -79,6 +91,9 @@
   r[1] = a
   out.append(r)
 
+
+# Total, Difference and closing balance
+#---------------------------------------------------------------------
 if total_debit != 0 or total_credit != 0:
   # Total debit/credit
   t_row = ['' for i in range(len(colnames))]
@@ -87,7 +102,6 @@
   t_row[col_idx['Credit']-1] = total_credit
   out.append(t_row)
 
-
   # diffrence (dr-cr)
   t_row = ['' for i in range(len(colnames))]
   t_row[1] = 'Total(Dr-Cr)'
@@ -101,7 +115,9 @@
     t_row[col_idx['Debit']-1] = flt(closing_bal)
     out.append(t_row)
 
+
 # Print Format
+#---------------------------------------------------------------------
 myheader = """<table width = '100%%'><tr><td>"""+l_head+"""</td>
 </tr>
 <tr> <td>
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_purchase_register/__init__.py b/erpnext/accounts/search_criteria/itemwise_purchase_register/__init__.py
similarity index 100%
rename from accounts/search_criteria/itemwise_purchase_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/itemwise_sales_register/__init__.py b/erpnext/accounts/search_criteria/itemwise_sales_register/__init__.py
similarity index 100%
rename from accounts/search_criteria/itemwise_sales_register/__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_agreement_list/__init__.py b/erpnext/accounts/search_criteria/lease_agreement_list/__init__.py
similarity index 100%
rename from accounts/search_criteria/lease_agreement_list/__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 92%
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
index f47c609..5e84916 100644
--- a/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt
+++ b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-08-29 13:45:35',
+		'creation': '2011-07-27 16:17:04',
 		'docstatus': 0,
-		'modified': '2011-08-29 13:45:35',
+		'modified': '2011-07-27 16:17:04',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -27,4 +27,4 @@
 		'doctype': 'Search Criteria',
 		'name': 'lease_agreement_list'
 	}
-]
\ No newline at end of file
+]
diff --git a/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py
similarity index 100%
rename from accounts/search_criteria/lease_monthly_future_installment_inflows/__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_over_due_list/__init__.py b/erpnext/accounts/search_criteria/lease_over_due_list/__init__.py
similarity index 100%
rename from accounts/search_criteria/lease_over_due_list/__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_overdue_age_wise/__init__.py b/erpnext/accounts/search_criteria/lease_overdue_age_wise/__init__.py
similarity index 100%
rename from accounts/search_criteria/lease_overdue_age_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_receipt_summary_month_wise/__init__.py b/erpnext/accounts/search_criteria/lease_receipt_summary_month_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_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 93%
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
index 6e1b266..e6da15c 100644
--- 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
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-07-27 18:48:29',
+		'creation': '2011-07-27 16:17:04',
 		'docstatus': 0,
-		'modified': '2011-07-28 12:56:35',
+		'modified': '2011-07-27 16:17:04',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -27,4 +27,4 @@
 		'doctype': 'Search Criteria',
 		'name': 'lease_receipt_summary_month_wise'
 	}
-]
\ No newline at end of file
+]
diff --git a/accounts/search_criteria/lease_receipts_client_wise/__init__.py b/erpnext/accounts/search_criteria/lease_receipts_client_wise/__init__.py
similarity index 100%
rename from accounts/search_criteria/lease_receipts_client_wise/__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 99%
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
index b155b39..71c9b0e 100644
--- 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
@@ -28,4 +28,4 @@
 		'doctype': 'Search Criteria',
 		'name': 'lease_receipts_client_wise'
 	}
-]
\ No newline at end of file
+]
diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py
similarity index 100%
rename from accounts/search_criteria/lease_yearly_future_installment_inflows/__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/monthly_ledger_summary_report/__init__.py b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/__init__.py
similarity index 100%
rename from accounts/search_criteria/monthly_ledger_summary_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_receipt_report/__init__.py b/erpnext/accounts/search_criteria/payment_receipt_report/__init__.py
similarity index 100%
rename from accounts/search_criteria/payment_receipt_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/payment_report/__init__.py b/erpnext/accounts/search_criteria/payment_report/__init__.py
similarity index 100%
rename from accounts/search_criteria/payment_report/__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/progressive_total_excise_duty/__init__.py b/erpnext/accounts/search_criteria/progressive_total_excise_duty/__init__.py
similarity index 100%
rename from accounts/search_criteria/progressive_total_excise_duty/__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/purchase_register/__init__.py b/erpnext/accounts/search_criteria/purchase_register/__init__.py
similarity index 100%
rename from accounts/search_criteria/purchase_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/sales_register/__init__.py b/erpnext/accounts/search_criteria/sales_register/__init__.py
similarity index 100%
rename from accounts/search_criteria/sales_register/__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/service_tax_credit_account___inputs/__init__.py b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/__init__.py
similarity index 100%
rename from accounts/search_criteria/service_tax_credit_account___inputs/__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/tds_return/__init__.py b/erpnext/accounts/search_criteria/tds_return/__init__.py
similarity index 100%
rename from accounts/search_criteria/tds_return/__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/total_amout_collection_for_a_period___customerwise/__init__.py b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/__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/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/accounts/search_criteria/trial_balance/__init__.py b/erpnext/accounts/search_criteria/trial_balance/__init__.py
similarity index 100%
rename from accounts/search_criteria/trial_balance/__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/erpnext/accounts/search_criteria/trial_balance/trial_balance.py b/erpnext/accounts/search_criteria/trial_balance/trial_balance.py
new file mode 100644
index 0000000..994a5b8
--- /dev/null
+++ b/erpnext/accounts/search_criteria/trial_balance/trial_balance.py
@@ -0,0 +1,125 @@
+# Columns
+#----------
+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'):
+	msgprint("Please enter From Date and To Date")
+	raise Exception
+else:
+	from_date = filter_values['transaction_date']
+	to_date = filter_values['transaction_date1']
+
+#check for from date and to date within same year
+#------------------------------------------------
+if not 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) and %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",(from_date, to_date)):
+	msgprint("From Date and To Date must be within same year")
+	raise Exception
+
+# 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 ''
+
+to_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)",to_date)
+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) > 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
+	
+
+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
+# ----------
+for r in res:
+	# Fetch account details
+	acc = r[col_idx['Account']].strip()
+	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_dict[acc][4] == 'Group':
+		for i in range(4):
+			r.append('')
+		continue
+
+	# 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_dict[acc][0], acc_dict[acc][2], acc_dict[acc][3])
+
+	# transaction betn the period
+	#----------------------------------------
+
+	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
+	total_closing_dr += closing>0 and flt(closing) or 0
+	total_closing_cr += closing<0 and -1*flt(closing) or 0
+	
+	# 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>0 and closing or 0))
+	r.append(flt(closing<0 and -closing or 0))
+
+
+out =[]
+for r in res:
+	# Remove accounts if opening bal = debit = credit = closing bal = 0
+	# ------------------------------------------------------------------
+	if filter_values.get('show_zero_balance') != 'No':
+		out.append(r)
+	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['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)
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/buying/search_criteria/itemwise_purchase_details/__init__.py b/erpnext/accounts/search_criteria/voucher_wise_tax_details/__init__.py
similarity index 100%
copy from buying/search_criteria/itemwise_purchase_details/__init__.py
copy to erpnext/accounts/search_criteria/voucher_wise_tax_details/__init__.py
diff --git a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js
new file mode 100644
index 0000000..a89fa86
--- /dev/null
+++ b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js
@@ -0,0 +1,47 @@
+report.customize_filters = function() {
+  this.hide_all_filters();
+
+  //Add filter
+  this.add_filter({fieldname:'based_on', label:'Based On', fieldtype:'Select', options:'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Sales Invoice', report_default:'Sales Invoice', ignore : 1,parent:'RV Tax Detail', single_select :1, in_first_page:1});
+  
+  this.add_filter({fieldname:'posting_date', label:'Date', fieldtype:'Date', options:'', ignore : 1,parent:'RV Tax Detail', in_first_page:1});
+  
+  this.add_filter({fieldname:'voucher_id', label:'Voucher Id', fieldtype:'Data', options:'', ignore : 1,parent:'RV Tax Detail', in_first_page:1});
+  
+  this.add_filter({fieldname:'tax_account', label:'Tax Account', fieldtype:'Link', options:'Account', ignore : 1,parent:'RV Tax Detail', in_first_page:1});
+}
+
+
+// hide sections
+//--------------------------------------
+this.mytabs.items['More Filters'].hide();
+this.mytabs.items['Select Columns'].hide();
+
+// Get query
+//--------------------------------------
+report.get_query = function() {
+  based_on = this.get_filter('RV Tax Detail', 'Based On').get_value();
+  from_date = this.get_filter('RV Tax Detail', 'From Date').get_value();
+  to_date = this.get_filter('RV Tax Detail', 'To Date').get_value();
+  vid = this.get_filter('RV Tax Detail', 'Voucher Id').get_value();
+  acc = this.get_filter('RV Tax Detail', 'Tax Account').get_value();
+
+  date_fld = 'transaction_date';
+  if(based_on == 'Sales Invoice') {
+  	based_on = 'Receivable Voucher';
+  	date_fld = 'voucher_date';
+  }
+
+  sp_cond = '';
+  if (from_date) sp_cond += repl(' AND t1.%(dt)s >= "%(from_date)s"', {dt:date_fld, from_date:from_date});
+  if (to_date) sp_cond += repl(' AND t1.%(dt)s <= "%(to_date)s"', {dt:date_fld, to_date:to_date});
+  if (vid) sp_cond += repl(' AND t1.name LIKE "%%(voucher)s%"', {voucher:vid});
+  if (acc) sp_cond += repl(' AND t2.account_head = "%(acc)s"', {acc:acc});
+
+  return repl('SELECT t1.`name`, t1.`%(dt)s`, t1.`customer_name`, t1.net_total, t2.account_head, t2.description, t2.rate, t2.tax_amount \
+  	FROM `tab%(parent)s` t1, `tabRV Tax Detail` t2 \
+  	WHERE t1.docstatus=1 AND t2.`parenttype` = "%(parent)s" \
+  	AND t2.`parent` = t1.`name`  \
+  	%(cond)s ORDER BY t1.`name` DESC, t1.%(dt)s DESC', {parent:based_on, cond:sp_cond, dt:date_fld});
+}
+
diff --git a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py
new file mode 100644
index 0000000..91e90f2
--- /dev/null
+++ b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py
@@ -0,0 +1,22 @@
+if filter_values.get('based_on') == 'Sales Invoice':
+  based_on_dt = 'Receivable Voucher'
+else:
+  based_on_dt = filter_values.get('based_on')
+
+cols = [
+	[filter_values.get('based_on'), 'Link','150px', based_on_dt],
+	['Transaction Date', 'Date', '120px', ''], 
+	['Customer', 'Link','150px','Customer'], 
+	['Net Total', 'Currency', '80px', ''], 
+	['Tax Account', 'Link','150px','Account'], 
+	['Description', 'Text','120px',''], 
+	['Tax Rate', 'Currency', '80px', ''], 
+	['Tax Amount', 'Currency', '80px', '']
+]
+
+for c in cols:
+  colnames.append(c[0])
+  coltypes.append(c[1])
+  colwidths.append(c[2])
+  coloptions.append(c[3])
+  col_idx[c[0]] = len(colnames)-1
diff --git a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt
new file mode 100644
index 0000000..c152c79
--- /dev/null
+++ b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt
@@ -0,0 +1,34 @@
+# Search Criteria, voucher_wise_tax_details
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2011-09-06 15:36:58',
+		'docstatus': 0,
+		'modified': '2011-09-06 15:50:28',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all Search Criteria
+	{
+		'columns': 'RV Tax Detail\x01Type,RV Tax Detail\x01Account Head,RV Tax Detail\x01Cost Center,RV Tax Detail\x01Description,RV Tax Detail\x01Rate,RV Tax Detail\x01Amount*,RV Tax Detail\x01Total*',
+		'criteria_name': 'Voucher wise tax details',
+		'doc_type': 'RV Tax Detail',
+		'doctype': 'Search Criteria',
+		'filters': "{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Fiscal Year':''}",
+		'module': 'Accounts',
+		'name': '__common__',
+		'page_len': 50,
+		'parent_doc_type': 'Delivery Note',
+		'sort_by': '`tabRV Tax Detail`.`parent`',
+		'sort_order': 'DESC',
+		'standard': 'Yes'
+	},
+
+	# Search Criteria, voucher_wise_tax_details
+	{
+		'doctype': 'Search Criteria',
+		'name': 'voucher_wise_tax_details'
+	}
+]
\ No newline at end of file
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/__init__.py b/erpnext/analysis/__init__.py
similarity index 100%
rename from analysis/__init__.py
rename to erpnext/analysis/__init__.py
diff --git a/analysis/doctype/__init__.py b/erpnext/analysis/doctype/__init__.py
similarity index 100%
rename from analysis/doctype/__init__.py
rename to erpnext/analysis/doctype/__init__.py
diff --git a/analysis/doctype/mis_control/__init__.py b/erpnext/analysis/doctype/mis_control/__init__.py
similarity index 100%
rename from analysis/doctype/mis_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/doctype/ta_control/__init__.py b/erpnext/analysis/doctype/ta_control/__init__.py
similarity index 100%
rename from analysis/doctype/ta_control/__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/page/__init__.py b/erpnext/analysis/page/__init__.py
similarity index 100%
rename from analysis/page/__init__.py
rename to erpnext/analysis/page/__init__.py
diff --git a/analysis/search_criteria/__init__.py b/erpnext/analysis/search_criteria/__init__.py
similarity index 100%
rename from analysis/search_criteria/__init__.py
rename to erpnext/analysis/search_criteria/__init__.py
diff --git a/analysis/search_criteria/monthly_transaction_summary/__init__.py b/erpnext/analysis/search_criteria/monthly_transaction_summary/__init__.py
similarity index 100%
rename from analysis/search_criteria/monthly_transaction_summary/__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/trend_analyzer/__init__.py b/erpnext/analysis/search_criteria/trend_analyzer/__init__.py
similarity index 100%
rename from analysis/search_criteria/trend_analyzer/__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 97%
rename from analysis/search_criteria/trend_analyzer/trend_analyzer.js
rename to erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js
index 72334df..9a87abb 100644
--- a/analysis/search_criteria/trend_analyzer/trend_analyzer.js
+++ b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js
@@ -13,8 +13,8 @@
 
   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 @@
    
     return q;
   }
-}
\ No newline at end of file
+}
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/analysis/search_criteria/yearly_transaction_summary/__init__.py b/erpnext/analysis/search_criteria/yearly_transaction_summary/__init__.py
similarity index 100%
rename from analysis/search_criteria/yearly_transaction_summary/__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 98%
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
index 3041218..fe49f49 100644
--- a/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt
+++ b/erpnext/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:34',
 		'docstatus': 0,
-		'modified': '2009-12-30 16:55:33',
+		'modified': '2011-09-15 15:04:42',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
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 96%
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
index d32aeb6..b4dafc9 100755
--- a/buying/DocType Mapper/Sales Order-Indent/Sales Order-Indent.txt
+++ b/erpnext/buying/DocType Mapper/Sales Order-Indent/Sales Order-Indent.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-05-05 15:58:13',
+		'creation': '2011-05-20 10:07:55',
 		'docstatus': 0,
-		'modified': '2011-05-05 16:20:10',
+		'modified': '2011-09-14 12:36:25',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
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/__init__.py b/erpnext/buying/__init__.py
similarity index 100%
rename from buying/__init__.py
rename to erpnext/buying/__init__.py
diff --git a/buying/doctype/__init__.py b/erpnext/buying/doctype/__init__.py
similarity index 100%
rename from buying/doctype/__init__.py
rename to erpnext/buying/doctype/__init__.py
diff --git a/buying/doctype/indent/__init__.py b/erpnext/buying/doctype/indent/__init__.py
similarity index 100%
rename from buying/doctype/indent/__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/indent_detail/__init__.py b/erpnext/buying/doctype/indent_detail/__init__.py
similarity index 100%
rename from buying/doctype/indent_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_detail/__init__.py b/erpnext/buying/doctype/po_detail/__init__.py
similarity index 100%
rename from buying/doctype/po_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/po_raw_material_detail/__init__.py b/erpnext/buying/doctype/po_raw_material_detail/__init__.py
similarity index 100%
rename from buying/doctype/po_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/pr_raw_material_detail/__init__.py b/erpnext/buying/doctype/pr_raw_material_detail/__init__.py
similarity index 100%
rename from buying/doctype/pr_raw_material_detail/__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_common/__init__.py b/erpnext/buying/doctype/purchase_common/__init__.py
similarity index 100%
rename from buying/doctype/purchase_common/__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_order/__init__.py b/erpnext/buying/doctype/purchase_order/__init__.py
similarity index 100%
rename from buying/doctype/purchase_order/__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/purchase_other_charges/__init__.py b/erpnext/buying/doctype/purchase_other_charges/__init__.py
similarity index 100%
rename from buying/doctype/purchase_other_charges/__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_inspection_report/__init__.py b/erpnext/buying/doctype/qa_inspection_report/__init__.py
similarity index 100%
rename from buying/doctype/qa_inspection_report/__init__.py
rename to erpnext/buying/doctype/qa_inspection_report/__init__.py
diff --git a/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js
new file mode 100644
index 0000000..a0ee1dc
--- /dev/null
+++ b/erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.js
@@ -0,0 +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);
+}
+
+cur_frm.cscript.inspection_type = function(doc, cdt, cdn) {
+	if(doc.inspection_type == 'Incoming'){
+		doc.delivery_note_no = '';
+		hide_field('delivery_note_no');		
+		unhide_field('purchase_receipt_no');
+	}
+	else if(doc.inspection_type == 'Outgoing'){
+		doc.purchase_receipt_no = '';
+		unhide_field('delivery_note_no');
+		hide_field('purchase_receipt_no');
+
+	}
+	else {
+		doc.purchase_receipt_no = '';
+		doc.delivery_note_no = '';		
+		hide_field('purchase_receipt_no');
+		hide_field('delivery_note_no');
+	}
+}
+
+cur_frm.cscript.refresh = cur_frm.cscript.inspection_type;
+
+// item code based on GRN/DN
+cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
+	if (doc.purchase_receipt_no)
+		return 'SELECT item_code, item_name, description FROM `tabPurchase Receipt Detail` WHERE parent = "'+ doc.purchase_receipt_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
+	else if (doc.delivery_note_no) 
+		return 'SELECT item_code, item_name, description FROM `tabDelivery Note Detail` WHERE parent = "'+ doc.delivery_note_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
+	else
+		return 'SELECT name, item_name, description FROM tabItem WHERE docstatus != 2 AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
+
+// Serial No based on item_code
+cur_frm.fields_dict['item_serial_no'].get_query = function(doc, cdt, cdn) {
+	if (doc.item_code)
+		return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND item_code = "' + doc.item_code +'" AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+	else
+		return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
+}
diff --git a/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 92%
rename from buying/doctype/qa_inspection_report/qa_inspection_report.txt
rename to erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt
index 10890dc..de88e16 100644
--- a/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',
diff --git a/buying/doctype/qa_specification_detail/__init__.py b/erpnext/buying/doctype/qa_specification_detail/__init__.py
similarity index 100%
rename from buying/doctype/qa_specification_detail/__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/raw_materials_supplied/__init__.py b/erpnext/buying/doctype/raw_materials_supplied/__init__.py
similarity index 100%
rename from buying/doctype/raw_materials_supplied/__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/__init__.py b/erpnext/buying/doctype/supplier/__init__.py
similarity index 100%
rename from buying/doctype/supplier/__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/doctype/supplier_quotation/__init__.py b/erpnext/buying/doctype/supplier_quotation/__init__.py
similarity index 100%
rename from buying/doctype/supplier_quotation/__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/page/__init__.py b/erpnext/buying/page/__init__.py
similarity index 100%
rename from buying/page/__init__.py
rename to erpnext/buying/page/__init__.py
diff --git a/buying/search_criteria/__init__.py b/erpnext/buying/search_criteria/__init__.py
similarity index 100%
rename from buying/search_criteria/__init__.py
rename to erpnext/buying/search_criteria/__init__.py
diff --git a/buying/search_criteria/itemwise_purchase_details/__init__.py b/erpnext/buying/search_criteria/itemwise_purchase_details/__init__.py
similarity index 100%
rename from buying/search_criteria/itemwise_purchase_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/itemwise_receipt_details/__init__.py b/erpnext/buying/search_criteria/itemwise_receipt_details/__init__.py
similarity index 100%
rename from buying/search_criteria/itemwise_receipt_details/__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_bill/__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_bill/__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/pending_po_items_to_receive/__init__.py b/erpnext/buying/search_criteria/pending_po_items_to_receive/__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_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/buying/search_criteria/purchase_in_transit/__init__.py b/erpnext/buying/search_criteria/purchase_in_transit/__init__.py
similarity index 100%
rename from buying/search_criteria/purchase_in_transit/__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/erpnext_version.py b/erpnext/erpnext_version.py
similarity index 100%
rename from erpnext_version.py
rename to erpnext/erpnext_version.py
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/__init__.py b/erpnext/home/doctype/__init__.py
similarity index 100%
rename from home/doctype/__init__.py
rename to erpnext/home/doctype/__init__.py
diff --git a/home/doctype/company_control/__init__.py b/erpnext/home/doctype/company_control/__init__.py
similarity index 100%
rename from home/doctype/company_control/__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 91%
rename from home/doctype/company_control/company_control.py
rename to erpnext/home/doctype/company_control/company_control.py
index cab8e7c..9c055a7 100644
--- a/home/doctype/company_control/company_control.py
+++ b/erpnext/home/doctype/company_control/company_control.py
@@ -53,6 +53,15 @@
 			pr.role = r
 			pr.parentfield = 'userroles'
 			pr.save(1)
+		
+		# Update Membership Type at Gateway
+		if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')):
+			if 'System Manager' in role_list : membership_type = 'Administrator'
+			else : membership_type = 'Member'
+
+			import server_tools.gateway_utils
+			server_tools.gateway_utils.update_membership_type(cstr(arg['usr']), membership_type)
+
 		sql("delete from __SessionCache where user=%s", cstr(arg['usr']))
 
 	# Save profile
@@ -63,10 +72,6 @@
 			p.fields[k] = arg[k]
 		p.save()
 
-	def update_profile_image(self, fid, fname):
-		sql("update tabProfile set file_list = '%s,%s' where name='%s'" % (fname, fid, session['user']))
-		
-
 	def get_login_url(self):
 		return session['data']['login_from']
 		
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/feed/__init__.py b/erpnext/home/doctype/feed/__init__.py
similarity index 100%
rename from home/doctype/feed/__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/home_control/__init__.py b/erpnext/home/doctype/home_control/__init__.py
similarity index 100%
rename from home/doctype/home_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 91%
rename from home/doctype/home_control/home_control.py
rename to erpnext/home/doctype/home_control/home_control.py
index 1f58a5e..8242e74 100644
--- a/home/doctype/home_control/home_control.py
+++ b/erpnext/home/doctype/home_control/home_control.py
@@ -33,9 +33,6 @@
 		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 @@
 			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
 
 	# ----------------------------------------------------------------------------------------------------------------
@@ -121,24 +121,6 @@
 
 	def get_dt_help(self,dt):
 		return sql("select description from tabDocType where name=%s",dt)[0][0] or ''
-		
-	# ----------------------------------------------------------------------------------------
-	def welcome_done(self):
-		if cint(get_defaults().get('welcome_done')):
-			return 'Yes'
-		else:
-			return 'No'
-
-	def set_welcome_done(self):
-		set_default('welcome_done', '1')
-
-	# Check Complete Registration
-	# ----------------------
-	def registration_complete(self):
-		if cint(get_defaults().get('registration_complete')):
-			return 'Yes'
-		else:
-			return 'No'
 
 	# get dashboard counts
 	# --------------------
@@ -235,24 +217,6 @@
 
 	# -------------------------------------------------------------------------------------------------------
 
-	def get_status_details(self, arg=''):
-		# no of users online
-		count = sql("select count(distinct user) from tabSessions t2 where user not in ('Guest','Administrator') and TIMESTAMPDIFF(HOUR,t2.lastupdate,NOW()) <= 1")
-
-		# unread messages
-		unread = sql("select count(t1.name) from `tabMail` t1, `tabMail Participant Details` t2 where t2.participant_name = '%s' and t2.parent = t1.name and (t2.read_status = 'No' or t2.read_status is NULL) and (t2.delete_status = 'No' or t2.delete_status is NULL) and t1.last_updated_by != t2.participant_name" % arg)
-		
-		# system messages
-		msg_id = webnotes.conn.get_global('system_message_id')
-		msg = ''
-				
-		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}
-				
-	# -------------------------------------------------------------------------------------------------------
-
 	def dismiss_message(self, arg=''):
 		msg_id = webnotes.conn.get_global('system_message_id')
 		webnotes.conn.set_global('system_message_id', msg_id, session['user'])
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/doctype/widget_control/__init__.py b/erpnext/home/doctype/widget_control/__init__.py
similarity index 100%
rename from home/doctype/widget_control/__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 78%
rename from home/doctype/widget_control/widget_control.py
rename to erpnext/home/doctype/widget_control/widget_control.py
index fa41cc9..d6bb9d1 100644
--- a/home/doctype/widget_control/widget_control.py
+++ b/erpnext/home/doctype/widget_control/widget_control.py
@@ -27,11 +27,6 @@
       cmt.comment_date = nowdate()
       cmt.comment_time = time.strftime('%H:%M')
       cmt.save(1)
-      
-      try:
-        get_obj('Feed Control').upate_comment_in_feed(args['comment_doctype'], args['comment_docname'])
-      except:
-        pass
 	      
     else:
       raise Exception
@@ -39,7 +34,3 @@
   def remove_comment(self, args):
     args = json.loads(args)
     sql("delete from `tabComment Widget Record` where name=%s",args['id'])
-
-    try:
-      get_obj('Feed Control').upate_comment_in_feed(args['dt'], args['dn'])
-    except: pass
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
Binary files differ
diff --git a/home/page/__init__.py b/erpnext/home/page/__init__.py
similarity index 100%
rename from home/page/__init__.py
rename to erpnext/home/page/__init__.py
diff --git a/home/page/dashboard/__init__.py b/erpnext/home/page/dashboard/__init__.py
similarity index 100%
rename from home/page/dashboard/__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 89%
rename from home/page/dashboard/dashboard.js
rename to erpnext/home/page/dashboard/dashboard.js
index 15e7cf3..08be0af 100644
--- a/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/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
Binary files differ
diff --git a/home/page/event_updates/__init__.py b/erpnext/home/page/event_updates/__init__.py
similarity index 100%
rename from home/page/event_updates/__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 92%
rename from home/page/event_updates/event_updates.js
rename to erpnext/home/page/event_updates/event_updates.js
index e93ed9d..b58a0c0 100644
--- a/home/page/event_updates/event_updates.js
+++ b/erpnext/home/page/event_updates/event_updates.js
@@ -39,9 +39,6 @@
 		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 @@
 				}		
 			}
 		]
-	})
-	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);
 }
 
@@ -134,7 +123,7 @@
 	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'});
@@ -442,7 +431,7 @@
 	);
 	
 	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')
 		
 	}
 }
@@ -618,6 +607,11 @@
 			// 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.message.registration_complete); 
+			}
 			
 			// setup wizard
 			if(r.message.setup_status) {
@@ -629,54 +623,57 @@
 
 // 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('<b>Company Name : </b>'+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);
 		}
+
+		d.make_body([
+			['Data','Company Name','Example: Your Company LLC'],
+	  		['Data','Company Abbreviation', 'Example: YC (all your acconts will have this as a suffix)'],
+	  		['Select','Fiscal Year Start Date'],
+	  		['Select','Default Currency'],
+	  		['Button','Save'],
+		]);
+
+		// if company name is set, set the input value
+		// and disable it
+		if(locals['Control Panel']['Control Panel'].company_name) {
+			d.widgets['Company Name'].value = locals['Control Panel']['Control Panel'].company_name;
+			d.widgets['Company Name'].disabled = 1;
+		}
+		
+
+		//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 = [
+					d.widgets['Company Name'].value,
+					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/home/page/event_updates/event_updates.py b/erpnext/home/page/event_updates/event_updates.py
similarity index 89%
rename from home/page/event_updates/event_updates.py
rename to erpnext/home/page/event_updates/event_updates.py
index 1134273..1d1d1b2 100644
--- a/home/page/event_updates/event_updates.py
+++ b/erpnext/home/page/event_updates/event_updates.py
@@ -24,7 +24,7 @@
 # Get toolbar items
 #	
 def get_status_details(arg=None):
-	from webnotes.utils import cint, date_diff, nowdate
+	from webnotes.utils import cint, date_diff, nowdate, get_defaults
 		
 	online = get_online_users()
 			
@@ -35,7 +35,8 @@
 		'online_users': online or [],
 		'is_trial': webnotes.conn.get_global('is_trial'),
 		'days_to_expiry': (webnotes.conn.get_global('days_to_expiry') or '0'),
-		'setup_status': get_setup_status()
+		'setup_status': get_setup_status(),
+		'registration_complete': cint(get_defaults('registration_complete')) and 'Yes' or 'No'
 	}
 	return ret
 
@@ -53,7 +54,7 @@
 		header = webnotes.conn.get_value('Control Panel', None, 'client_name') or ''
 
 		if header.startswith('<div style="padding:4px; font-size:20px;">'\
-			+webnotes.conn.get_value('Control Panel', None, 'company_name')):
+			+(webnotes.conn.get_value('Control Panel', None, 'company_name') or '')):
 			return False
 			
 		elif 'Banner Comes Here' in header:
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/my_company/__init__.py b/erpnext/home/page/my_company/__init__.py
similarity index 100%
rename from home/page/my_company/__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 94%
rename from home/page/my_company/my_company.js
rename to erpnext/home/page/my_company/my_company.js
index 9da7e9b..40bf155 100644
--- a/home/page/my_company/my_company.js
+++ b/erpnext/home/page/my_company/my_company.js
@@ -322,7 +322,7 @@
 	
 	// show securty settings
 	this.set_security = function() {
-		var d = new wn.widgets.Dialog({
+		var sd = new wn.widgets.Dialog({
 			title: 'Set User Security',
 			width: 500,
 			fields: [
@@ -362,30 +362,72 @@
 				}
 			]
 		});
-		d.onshow = function() {
-			d.set_values({
+
+		me.sec_dialog = sd
+
+		sd.onshow = function() {
+			me.sec_dialog.set_values({
 				restrict_ip: me.profile.restrict_ip || '',
 				login_before: me.profile.login_before || '',
 				login_after: me.profile.login_after || '',
 				new_password: ''
-			})
-		}
-		d.fields_dict.update.input.onclick = function() {
+			});
+		};
+		sd.fields_dict.update.input.onclick = function() {
 			var btn = this;
 			this.set_working();
-			var args = d.get_values();
+			var args = me.sec_dialog.get_values();
 			args.user = me.profile.name;
-			$c_page('home', 'my_company', 'update_security', JSON.stringify(args), function(r,rt) {
-				if(r.exc) {
-					msgprint(r.exc);
+
+			if (args.new_password) {
+				var pass_d = new wn.widgets.Dialog({
+					title: 'Your Password',
+					width: 300,
+					fields: [
+						{
+							label: 'Please Enter Your Password',
+							description: "Your password is required to update the concerned user's password",
+							fieldtype: 'Password',
+							fieldname: 'sys_admin_pwd',
+							reqd: 1		
+						},
+
+						{
+							label: 'Continue',
+							fieldtype: 'Button',
+							fieldname: 'continue'
+						}
+					]
+				});
+
+				pass_d.fields_dict.continue.input.onclick = function() {
+					btn.pwd_dialog.hide();					
+					args.sys_admin_pwd = btn.pwd_dialog.get_values().sys_admin_pwd;					
+					btn.set_working();					
+					me.update_security(args);
 					btn.done_working();
-					return;
 				}
-				$.extend(me.profile, d.get_values());
-				d.hide();
-			});
-		}
-		d.show();
+
+				pass_d.show();
+				btn.pwd_dialog = pass_d;
+				btn.done_working();
+			} else {
+				btn.done_working();
+				me.update_security(args);
+			}			
+		};
+		sd.show();		
+	}
+
+	this.update_security = function(args) {
+		$c_page('home', 'my_company', 'update_security', JSON.stringify(args), function(r,rt) {
+			if(r.exc) {
+				msgprint(r.exc);				
+				return;
+			}
+			me.sec_dialog.hide();
+			$.extend(me.profile, me.sec_dialog.get_values());
+		});
 	}
 	
 	// delete user
diff --git a/home/page/my_company/my_company.py b/erpnext/home/page/my_company/my_company.py
similarity index 96%
rename from home/page/my_company/my_company.py
rename to erpnext/home/page/my_company/my_company.py
index 5d5ed80..3ff1482 100644
--- a/home/page/my_company/my_company.py
+++ b/erpnext/home/page/my_company/my_company.py
@@ -140,8 +140,7 @@
 	if 'new_password' in args:
 		if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')):
 			import server_tools.gateway_utils
-			webnotes.msgprint(server_tools.gateway_utils.change_password('', args['new_password'])['message'])
+			webnotes.msgprint(server_tools.gateway_utils.change_password('', args['new_password'], args['user'], args['sys_admin_pwd'])['message'])
 		else:
 			webnotes.conn.sql("update tabProfile set password=password(%s) where name=%s", (args['new_password'], args['user']))
-
-	webnotes.msgprint('Settings Updated')
\ No newline at end of file
+	else: webnotes.msgprint('Settings Updated')
\ No newline at end of file
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/page/profile_settings/__init__.py b/erpnext/home/page/profile_settings/__init__.py
similarity index 100%
rename from home/page/profile_settings/__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 95%
rename from home/page/profile_settings/profile_settings.js
rename to erpnext/home/page/profile_settings/profile_settings.js
index 10b06d4..425626b 100644
--- a/home/page/profile_settings/profile_settings.js
+++ b/erpnext/home/page/profile_settings/profile_settings.js
@@ -97,7 +97,7 @@
 			]);	
 
 			var w = d.widgets['wrapper'];
-			me.uploader = new Uploader(w, {thumbnail:'80px', server_obj:'Company Control', method:'update_profile_image'}, pscript.user_image_upload)
+			me.uploader = new Uploader(w, {cmd:'home.page.profile_settings.profile_settings.set_user_image'}, pscript.user_image_upload, 1)
 			me.change_dialog = d;
 		}
 		me.change_dialog.show();
diff --git a/home/page/profile_settings/profile_settings.py b/erpnext/home/page/profile_settings/profile_settings.py
similarity index 64%
rename from home/page/profile_settings/profile_settings.py
rename to erpnext/home/page/profile_settings/profile_settings.py
index 56f7f15..d1e091c 100644
--- a/home/page/profile_settings/profile_settings.py
+++ b/erpnext/home/page/profile_settings/profile_settings.py
@@ -2,7 +2,6 @@
 
 from webnotes.utils import load_json, cint, nowdate
 
-
 def change_password(arg):
 	"""
 		Change password
@@ -21,15 +20,40 @@
 		webnotes.msgprint('Password Updated');
 
 def get_user_details(arg=None):
-	"Returns user first name, last name and bio"
-	
+	"""
+		Returns user first name, last name and bio
+	"""
 	return webnotes.conn.sql("select first_name, last_name, bio from tabProfile where name=%s", webnotes.user.name, as_dict=1)[0]
 	
 def set_user_details(arg=None):
-	"updates user details given in argument"
+	"""
+		updates user details given in argument
+	"""
 	from webnotes.model.doc import Document
 	
 	p = Document('Profile', webnotes.user.name)
 	p.fields.update(load_json(arg))
 	p.save()
 	webnotes.msgprint('Updated')
+
+def set_user_image(arg=None):
+	"""
+		Set uploaded image as user image
+	"""
+	from webnotes.utils.upload_handler import UploadHandler
+	
+	uh = UploadHandler()
+	if not uh.file_name:
+		# do nothing - no file found
+		return
+	else:
+		# save the file
+		from webnotes.utils.file_manager import FileAttachments
+		
+		fa = FileAttachments('Profile', webnotes.session['user'])
+		fa.delete_all()
+		fa.add(uh.file_name, uh.content)
+		fa.save()
+		
+		uh.set_callback('window.parent.upload_callback("%s", "%s")' \
+		 	% (webnotes.form_dict['uploader_id'], fa.get_fid(0)))
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/__init__.py b/erpnext/home/search_criteria/__init__.py
similarity index 100%
rename from home/search_criteria/__init__.py
rename to erpnext/home/search_criteria/__init__.py
diff --git a/home/search_criteria/bills_to_be_paid/__init__.py b/erpnext/home/search_criteria/bills_to_be_paid/__init__.py
similarity index 100%
rename from home/search_criteria/bills_to_be_paid/__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/bills_to_be_submitted/__init__.py b/erpnext/home/search_criteria/bills_to_be_submitted/__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_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_billed/__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_billed/__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/delivery_note_to_be_submitted/__init__.py b/erpnext/home/search_criteria/delivery_note_to_be_submitted/__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_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_quotations_to_be_sent/__init__.py b/erpnext/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py
similarity index 100%
rename from home/search_criteria/enquiry_quotations_to_be_sent/__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/enquiry_to_follow_up/__init__.py b/erpnext/home/search_criteria/enquiry_to_follow_up/__init__.py
similarity index 100%
rename from home/search_criteria/enquiry_to_follow_up/__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_purchase_order_to_be_made/__init__.py b/erpnext/home/search_criteria/indent_purchase_order_to_be_made/__init__.py
similarity index 100%
rename from home/search_criteria/indent_purchase_order_to_be_made/__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/indent_to_be_submitted/__init__.py b/erpnext/home/search_criteria/indent_to_be_submitted/__init__.py
similarity index 100%
rename from home/search_criteria/indent_to_be_submitted/__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_overdue/__init__.py b/erpnext/home/search_criteria/invoices_overdue/__init__.py
similarity index 100%
rename from home/search_criteria/invoices_overdue/__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_be_submitted/__init__.py b/erpnext/home/search_criteria/invoices_to_be_submitted/__init__.py
similarity index 100%
rename from home/search_criteria/invoices_to_be_submitted/__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/invoices_to_receive_payment/__init__.py b/erpnext/home/search_criteria/invoices_to_receive_payment/__init__.py
similarity index 100%
rename from home/search_criteria/invoices_to_receive_payment/__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/lead_to_follow_up/__init__.py b/erpnext/home/search_criteria/lead_to_follow_up/__init__.py
similarity index 100%
rename from home/search_criteria/lead_to_follow_up/__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_billed/__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_billed/__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_be_submitted/__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_be_submitted/__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/purchase_order_to_receive_items/__init__.py b/erpnext/home/search_criteria/purchase_order_to_receive_items/__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_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_overdue/__init__.py b/erpnext/home/search_criteria/sales_order_overdue/__init__.py
similarity index 100%
rename from home/search_criteria/sales_order_overdue/__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_billed/__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_billed/__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_delivered/__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_delivered/__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/sales_order_to_be_submitted/__init__.py b/erpnext/home/search_criteria/sales_order_to_be_submitted/__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_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_amc_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_amc_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/serial_no_warranty_expiring_this_month/__init__.py b/erpnext/home/search_criteria/serial_no_warranty_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_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/home/search_criteria/task_open/__init__.py b/erpnext/home/search_criteria/task_open/__init__.py
similarity index 100%
rename from home/search_criteria/task_open/__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 92%
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
index b3081bf..aed4002 100644
--- a/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt
+++ b/erpnext/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:10',
+		'creation': '2010-09-01 15:47:59',
 		'docstatus': 0,
-		'modified': '2010-09-01 14:25:40',
+		'modified': '2011-09-15 15:04:42',
 		'modified_by': 'Administrator',
 		'owner': 'ashwini@webnotestech.com'
 	},
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 95%
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
index 03318a1..0a365d1 100644
--- 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
@@ -3,10 +3,10 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:25',
+		'creation': '2010-12-14 10:33:11',
 		'docstatus': 0,
-		'modified': '2011-02-12 18:31:40',
-		'modified_by': 'umair@iwebnotes.com',
+		'modified': '2011-09-15 15:04:44',
+		'modified_by': 'Administrator',
 		'owner': 'harshada@webnotestech.com'
 	},
 
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/__init__.py b/erpnext/hr/__init__.py
similarity index 100%
rename from hr/__init__.py
rename to erpnext/hr/__init__.py
diff --git a/hr/doctype/__init__.py b/erpnext/hr/doctype/__init__.py
similarity index 100%
rename from hr/doctype/__init__.py
rename to erpnext/hr/doctype/__init__.py
diff --git a/hr/doctype/absent_days_detail/__init__.py b/erpnext/hr/doctype/absent_days_detail/__init__.py
similarity index 100%
rename from hr/doctype/absent_days_detail/__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/__init__.py b/erpnext/hr/doctype/appraisal/__init__.py
similarity index 100%
rename from hr/doctype/appraisal/__init__.py
rename to erpnext/hr/doctype/appraisal/__init__.py
diff --git a/erpnext/hr/doctype/appraisal/appraisal.js b/erpnext/hr/doctype/appraisal/appraisal.js
new file mode 100644
index 0000000..b2683d8
--- /dev/null
+++ b/erpnext/hr/doctype/appraisal/appraisal.js
@@ -0,0 +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);
+}
+
+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');
+}
+
+
+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; i<val.length; i++){
+		set_multiple('Appraisal Detail', val[i].name, {'target_achieved':'', 'score':'', 'scored_earned':''}, 'appraisal_details');
+	}
+	doc.total_score = '';
+	refresh_field('appraisal_details');
+	refresh_field('total_score');
+}
+
+cur_frm.cscript.employee = function(doc,cdt,cdn){
+	if(doc.employee){
+		$c_obj(make_doclist(doc.doctype, doc.name),'set_approver','', function(r,rt){
+			if(r.message){
+				doc.employee_name = r.message['emp_nm'];
+				get_field(doc.doctype, 'kra_approver' , doc.name).options = r.message['app_lst'];				
+				refresh_many(['kra_approver','employee_name']);
+			}		
+		});
+	}
+}
+
+cur_frm.cscript['Calculate Total Score'] = function(doc,cdt,cdn){
+	//get_server_fields('calculate_total','','',doc,cdt,cdn,1);
+	var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype);
+	var total =0;
+	for(var i = 0; i<val.length; i++){
+		total = flt(total)+flt(val[i].score_earned)
+	}
+	doc.total_score = flt(total)
+	refresh_field('total_score')
+}
+
+/*cur_frm.cscript['Declare Completed'] = function(doc,cdt,cdn){
+	$c_obj(make_doclist(doc.doctype, doc.name),'declare_completed','', function(r,rt){
+		if(r.message){
+			refresh_field('Status');
+			cur_frm.cscript.refresh(doc,cdt,cdn);
+		}
+	});
+}*/
+
+cur_frm.cscript['Declare Completed'] = function(doc,cdt,cdn){
+	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', '<div class = "comment">You wont be able to do any changes after declaring this Appraisal as completed. Are you sure, you want to declare it as completed ?</div>'],
+			['HTML', 'Response', '<div class = "comment" id="declare_completed_dialog_response"></div>'],
+			['HTML', 'Declare Completed', '<div></div>']
+		]);
+		
+		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){
+		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<val.length; i++){
+		total = flt(total)+flt(val[i].score_earned);
+	}
+	doc.total_score = flt(total);
+	refresh_field('total_score');
+}
diff --git a/erpnext/hr/doctype/appraisal/appraisal.py b/erpnext/hr/doctype/appraisal/appraisal.py
new file mode 100644
index 0000000..51ce9c8
--- /dev/null
+++ b/erpnext/hr/doctype/appraisal/appraisal.py
@@ -0,0 +1,148 @@
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+
+
+class DocType:
+	def __init__(self, doc, doclist=[]):
+		self.doc = doc
+		self.doclist = doclist
+	
+	def get_employee_name(self):
+		emp_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/hr/doctype/appraisal/appraisal.txt b/erpnext/hr/doctype/appraisal/appraisal.txt
similarity index 93%
rename from hr/doctype/appraisal/appraisal.txt
rename to erpnext/hr/doctype/appraisal/appraisal.txt
index 3521c6f..e2abb35 100644
--- a/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/hr/doctype/appraisal_detail/__init__.py b/erpnext/hr/doctype/appraisal_detail/__init__.py
similarity index 100%
rename from hr/doctype/appraisal_detail/__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 90%
rename from hr/doctype/appraisal_detail/appraisal_detail.txt
rename to erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt
index fa57bef..771bf4e 100644
--- a/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',
diff --git a/hr/doctype/attendance/__init__.py b/erpnext/hr/doctype/attendance/__init__.py
similarity index 100%
rename from hr/doctype/attendance/__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/attendance_control_panel/__init__.py b/erpnext/hr/doctype/attendance_control_panel/__init__.py
similarity index 100%
rename from hr/doctype/attendance_control_panel/__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/branch/__init__.py b/erpnext/hr/doctype/branch/__init__.py
similarity index 100%
rename from hr/doctype/branch/__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/chapter_vi_a_detail/__init__.py b/erpnext/hr/doctype/chapter_vi_a_detail/__init__.py
similarity index 100%
rename from hr/doctype/chapter_vi_a_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/declaration_detail/__init__.py b/erpnext/hr/doctype/declaration_detail/__init__.py
similarity index 100%
rename from hr/doctype/declaration_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_detail/__init__.py b/erpnext/hr/doctype/deduction_detail/__init__.py
similarity index 100%
rename from hr/doctype/deduction_detail/__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/deduction_type/__init__.py b/erpnext/hr/doctype/deduction_type/__init__.py
similarity index 100%
rename from hr/doctype/deduction_type/__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/department/__init__.py b/erpnext/hr/doctype/department/__init__.py
similarity index 100%
rename from hr/doctype/department/__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/designation/__init__.py b/erpnext/hr/doctype/designation/__init__.py
similarity index 100%
rename from hr/doctype/designation/__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/earn_deduction_detail/__init__.py b/erpnext/hr/doctype/earn_deduction_detail/__init__.py
similarity index 100%
rename from hr/doctype/earn_deduction_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_detail/__init__.py b/erpnext/hr/doctype/earning_detail/__init__.py
similarity index 100%
rename from hr/doctype/earning_detail/__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/earning_type/__init__.py b/erpnext/hr/doctype/earning_type/__init__.py
similarity index 100%
rename from hr/doctype/earning_type/__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/__init__.py b/erpnext/hr/doctype/educational_qualifications/__init__.py
similarity index 100%
rename from hr/doctype/educational_qualifications/__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/educational_qualifications_detail/__init__.py b/erpnext/hr/doctype/educational_qualifications_detail/__init__.py
similarity index 100%
rename from hr/doctype/educational_qualifications_detail/__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/__init__.py b/erpnext/hr/doctype/employee/__init__.py
similarity index 100%
rename from hr/doctype/employee/__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 98%
rename from hr/doctype/employee/employee.py
rename to erpnext/hr/doctype/employee/employee.py
index 01ff32d..ba602cf 100644
--- a/hr/doctype/employee/employee.py
+++ b/erpnext/hr/doctype/employee/employee.py
@@ -46,7 +46,7 @@
   # check if salary structure exists
   #========================================================================================================
   def check_sal_structure(self, nm):
-    ret_sal_struct=sql("select name from `tabSalary Structure` where employee='%s' and is_active = 'Yes'"%nm)
+    ret_sal_struct=sql("select name from `tabSalary Structure` where employee='%s' and is_active = 'Yes' and docstatus!= 2"%nm)
     return ret_sal_struct and ret_sal_struct[0][0] or ''
 
   #========================================================================================================
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/employee_profile/__init__.py b/erpnext/hr/doctype/employee_profile/__init__.py
similarity index 100%
rename from hr/doctype/employee_profile/__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/employment_type/__init__.py b/erpnext/hr/doctype/employment_type/__init__.py
similarity index 100%
rename from hr/doctype/employment_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_type/__init__.py b/erpnext/hr/doctype/expense_type/__init__.py
similarity index 100%
rename from hr/doctype/expense_type/__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/__init__.py b/erpnext/hr/doctype/expense_voucher/__init__.py
similarity index 100%
rename from hr/doctype/expense_voucher/__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/expense_voucher_detail/__init__.py b/erpnext/hr/doctype/expense_voucher_detail/__init__.py
similarity index 100%
rename from hr/doctype/expense_voucher_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/experience_in_company_detail/__init__.py b/erpnext/hr/doctype/experience_in_company_detail/__init__.py
similarity index 100%
rename from hr/doctype/experience_in_company_detail/__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/grade/__init__.py b/erpnext/hr/doctype/grade/__init__.py
similarity index 100%
rename from hr/doctype/grade/__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/__init__.py b/erpnext/hr/doctype/holiday_list/__init__.py
similarity index 100%
rename from hr/doctype/holiday_list/__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/holiday_list_detail/__init__.py b/erpnext/hr/doctype/holiday_list_detail/__init__.py
similarity index 100%
rename from hr/doctype/holiday_list_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/invest_80_declaration_detail/__init__.py b/erpnext/hr/doctype/invest_80_declaration_detail/__init__.py
similarity index 100%
rename from hr/doctype/invest_80_declaration_detail/__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/it_checklist/__init__.py b/erpnext/hr/doctype/it_checklist/__init__.py
similarity index 100%
rename from hr/doctype/it_checklist/__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 98%
rename from hr/doctype/it_checklist/it_checklist.py
rename to erpnext/hr/doctype/it_checklist/it_checklist.py
index abed301..182e171 100644
--- a/hr/doctype/it_checklist/it_checklist.py
+++ b/erpnext/hr/doctype/it_checklist/it_checklist.py
@@ -411,9 +411,3 @@
     new_tot_income = cint(self.doc.tax_tot_income) + cint(self.doc.edu_cess) - (cint(ret_income_tax[0][0]) or 0)
     
     self.doc.tax_per_month = new_tot_income/cint(self.doc.rem_months)
-
-  # on update
-  def on_update(self):
-    obj = get_obj('Feed Control', 'Feed Control')
-   
-    obj.make_feed(self.doc)
\ No newline at end of file
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_sheet/__init__.py b/erpnext/hr/doctype/kra_sheet/__init__.py
similarity index 100%
rename from hr/doctype/kra_sheet/__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/kra_template/__init__.py b/erpnext/hr/doctype/kra_template/__init__.py
similarity index 100%
rename from hr/doctype/kra_template/__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_allocation/__init__.py b/erpnext/hr/doctype/leave_allocation/__init__.py
similarity index 100%
rename from hr/doctype/leave_allocation/__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_application/__init__.py b/erpnext/hr/doctype/leave_application/__init__.py
similarity index 100%
rename from hr/doctype/leave_application/__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_control_panel/__init__.py b/erpnext/hr/doctype/leave_control_panel/__init__.py
similarity index 100%
rename from hr/doctype/leave_control_panel/__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/leave_type/__init__.py b/erpnext/hr/doctype/leave_type/__init__.py
similarity index 100%
rename from hr/doctype/leave_type/__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/other_income_detail/__init__.py b/erpnext/hr/doctype/other_income_detail/__init__.py
similarity index 100%
rename from hr/doctype/other_income_detail/__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/payroll_rule/__init__.py b/erpnext/hr/doctype/payroll_rule/__init__.py
similarity index 100%
rename from hr/doctype/payroll_rule/__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/previous_experience_detail/__init__.py b/erpnext/hr/doctype/previous_experience_detail/__init__.py
similarity index 100%
rename from hr/doctype/previous_experience_detail/__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/professional_training_details/__init__.py b/erpnext/hr/doctype/professional_training_details/__init__.py
similarity index 100%
rename from hr/doctype/professional_training_details/__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_slip/__init__.py b/erpnext/hr/doctype/salary_slip/__init__.py
similarity index 100%
rename from hr/doctype/salary_slip/__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/salary_structure/__init__.py b/erpnext/hr/doctype/salary_structure/__init__.py
similarity index 100%
rename from hr/doctype/salary_structure/__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_deduction_detail/__init__.py b/erpnext/hr/doctype/ss_deduction_detail/__init__.py
similarity index 100%
rename from hr/doctype/ss_deduction_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/doctype/ss_earning_detail/__init__.py b/erpnext/hr/doctype/ss_earning_detail/__init__.py
similarity index 100%
rename from hr/doctype/ss_earning_detail/__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/page/__init__.py b/erpnext/hr/page/__init__.py
similarity index 100%
rename from hr/page/__init__.py
rename to erpnext/hr/page/__init__.py
diff --git a/hr/search_criteria/__init__.py b/erpnext/hr/search_criteria/__init__.py
similarity index 100%
rename from hr/search_criteria/__init__.py
rename to erpnext/hr/search_criteria/__init__.py
diff --git a/hr/search_criteria/employee_appraisals/__init__.py b/erpnext/hr/search_criteria/employee_appraisals/__init__.py
similarity index 100%
rename from hr/search_criteria/employee_appraisals/__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_details/__init__.py b/erpnext/hr/search_criteria/employee_details/__init__.py
similarity index 100%
rename from hr/search_criteria/employee_details/__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_in_company_experience/__init__.py b/erpnext/hr/search_criteria/employee_in_company_experience/__init__.py
similarity index 100%
rename from hr/search_criteria/employee_in_company_experience/__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/employee_information/__init__.py b/erpnext/hr/search_criteria/employee_information/__init__.py
similarity index 100%
rename from hr/search_criteria/employee_information/__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/employees_birthday/__init__.py b/erpnext/hr/search_criteria/employees_birthday/__init__.py
similarity index 100%
rename from hr/search_criteria/employees_birthday/__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_balance_leave_report/__init__.py b/erpnext/hr/search_criteria/employeewise_balance_leave_report/__init__.py
similarity index 100%
rename from hr/search_criteria/employeewise_balance_leave_report/__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/employeewise_leave_transaction_details/__init__.py b/erpnext/hr/search_criteria/employeewise_leave_transaction_details/__init__.py
similarity index 100%
rename from hr/search_criteria/employeewise_leave_transaction_details/__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/expense_vouchers/__init__.py b/erpnext/hr/search_criteria/expense_vouchers/__init__.py
similarity index 100%
rename from hr/search_criteria/expense_vouchers/__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_attendance_details/__init__.py b/erpnext/hr/search_criteria/monthly_attendance_details/__init__.py
similarity index 100%
rename from hr/search_criteria/monthly_attendance_details/__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/monthly_salary_register/__init__.py b/erpnext/hr/search_criteria/monthly_salary_register/__init__.py
similarity index 100%
rename from hr/search_criteria/monthly_salary_register/__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/new_or_left_employees_for_a_month/__init__.py b/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/__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/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_appraisals/__init__.py b/erpnext/hr/search_criteria/pending_appraisals/__init__.py
similarity index 100%
rename from hr/search_criteria/pending_appraisals/__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/pending_expense_vouchers/__init__.py b/erpnext/hr/search_criteria/pending_expense_vouchers/__init__.py
similarity index 100%
rename from hr/search_criteria/pending_expense_vouchers/__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_register/__init__.py b/erpnext/hr/search_criteria/salary_register/__init__.py
similarity index 100%
rename from hr/search_criteria/salary_register/__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_slips/__init__.py b/erpnext/hr/search_criteria/salary_slips/__init__.py
similarity index 100%
rename from hr/search_criteria/salary_slips/__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/hr/search_criteria/salary_structure_details/__init__.py b/erpnext/hr/search_criteria/salary_structure_details/__init__.py
similarity index 100%
rename from hr/search_criteria/salary_structure_details/__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/__init__.py b/erpnext/knowledge_base/__init__.py
similarity index 100%
rename from knowledge_base/__init__.py
rename to erpnext/knowledge_base/__init__.py
diff --git a/knowledge_base/doctype/__init__.py b/erpnext/knowledge_base/doctype/__init__.py
similarity index 100%
rename from knowledge_base/doctype/__init__.py
rename to erpnext/knowledge_base/doctype/__init__.py
diff --git a/knowledge_base/doctype/answer/__init__.py b/erpnext/knowledge_base/doctype/answer/__init__.py
similarity index 100%
rename from knowledge_base/doctype/answer/__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/__init__.py b/erpnext/knowledge_base/doctype/question/__init__.py
similarity index 100%
rename from knowledge_base/doctype/question/__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_control/__init__.py b/erpnext/knowledge_base/doctype/question_control/__init__.py
similarity index 100%
rename from knowledge_base/doctype/question_control/__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/doctype/question_tag/__init__.py b/erpnext/knowledge_base/doctype/question_tag/__init__.py
similarity index 100%
rename from knowledge_base/doctype/question_tag/__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/__init__.py b/erpnext/knowledge_base/page/__init__.py
similarity index 100%
rename from knowledge_base/page/__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/question_view/__init__.py b/erpnext/knowledge_base/page/question_view/__init__.py
similarity index 100%
rename from knowledge_base/page/question_view/__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/knowledge_base/page/questions/__init__.py b/erpnext/knowledge_base/page/questions/__init__.py
similarity index 100%
rename from knowledge_base/page/questions/__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/__init__.py b/erpnext/patches/__init__.py
similarity index 100%
rename from patches/__init__.py
rename to erpnext/patches/__init__.py
diff --git a/erpnext/patches/delivery_billing_status_patch.py b/erpnext/patches/delivery_billing_status_patch.py
new file mode 100644
index 0000000..1fcd8bf
--- /dev/null
+++ b/erpnext/patches/delivery_billing_status_patch.py
@@ -0,0 +1,55 @@
+import webnotes
+sql = webnotes.conn.sql
+
+test=1
+
+# Update SO and DN Detail 
+#--------------------------
+def update_delivered_billed_qty():
+	# update billed amt in item table in so and dn
+	sql("""	update `tabSales Order Detail` so
+		set billed_amt = (select sum(amount) from `tabRV Detail` where `so_detail`= so.name and docstatus=1 and parent not like 'old%%'),
+		delivered_qty = (select sum(qty) from `tabDelivery Note Detail` where `prevdoc_detail_docname`= so.name and docstatus=1 and parent not like 'old%%'), 
+		modified = now()
+		where docstatus = 1
+	""")
+
+	sql(""" update `tabDelivery Note Detail` dn
+		set billed_amt = (select sum(amount) from `tabRV Detail` where `dn_detail`= dn.name and docstatus=1 and parent not like 'old%%'), 
+		modified = now()
+		where docstatus = 1
+	""")
+
+# update SO
+#---------------
+def update_percent():
+	# calculate % billed based on item table
+	sql("""	update `tabSales Order` so
+		set per_delivered = (select sum(if(qty > ifnull(delivered_qty, 0), delivered_qty, qty))/sum(qty)*100 from `tabSales Order Detail` where parent=so.name), 
+		per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabSales Order Detail` where parent = so.name), 
+		modified = now()
+		where docstatus = 1
+	""")
+		
+	# update DN	
+	# ---------	
+	sql("""	update `tabDelivery Note` dn
+		set per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabDelivery Note Detail` where parent = dn.name), 
+		modified = now()
+		where docstatus=1
+	""")
+
+# update delivery/billing status 
+#-------------------------------
+def update_status():
+	sql("""update `tabSales Order` set delivery_status = if(ifnull(per_delivered,0) < 0.001, 'Not Delivered', 
+			if(per_delivered >= 99.99, 'Fully Delivered', 'Partly Delivered'))""")
+	sql("""update `tabSales Order` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', 
+			if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""")
+	sql("""update `tabDelivery Note` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', 
+			if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""")
+			
+def run_patch():
+	update_delivered_billed_qty()
+	update_percent()
+	update_status()
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/patches/old_patches/__init__.py b/erpnext/patches/old_patches/__init__.py
similarity index 100%
rename from patches/old_patches/__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 63%
rename from patches/patch.py
rename to erpnext/patches/patch.py
index cf9774b..a3093c1 100644
--- a/patches/patch.py
+++ b/erpnext/patches/patch.py
@@ -1,7 +1,7 @@
 # REMEMBER to update this
 # ========================
 
-last_patch = 355
+last_patch = 384
 
 #-------------------------------------------
 
@@ -251,6 +251,8 @@
 		reload_doc('stock','doctype','item_customer_detail')
 	elif patch_no == 344:
 		sql("delete from `tabDocFormat` where ifnull(format, '') = '' and parent = 'Delivery Note'")
+		reload_doc('stock', 'doctype', 'delivery_note_detail')
+		reload_doc('stock', 'doctype', 'item_customer_detail')
 	elif patch_no == 345:
 		# rerun 343 (merge confict)
 		reload_doc('stock','doctype','item_customer_detail')
@@ -289,9 +291,19 @@
 			ch.format = 'Delivery Note Packing List Wise'
 			ch.save(1)
 	elif patch_no == 353:
-		reload_doc('hr', 'doctype', 'salary_manager')
+		reload_doc('core', 'doctype', 'doctype')
+		sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'")
 	elif patch_no == 354:
-		reload_doc('setup', 'doctype','feature_setup')
+		reload_doc('stock', 'doctype', 'delivery_note')
+		reload_doc('stock', 'doctype', 'delivery_note_detail')
+	elif patch_no == 355:
+		sql("update `tabDocField` set print_hide =1 where fieldname in ('pack_no', 'pack_gross_wt', 'weight_uom', 'pack_nett_wt') and parent = 'Delivery Note Detail'")
+	elif patch_no == 356:
+		sql("update `tabDocField` set print_hide =1 where fieldname = 'print_packing_slip' and parent = 'Delivery Note'")
+	elif patch_no == 357:
+		reload_doc('hr', 'doctype', 'salary_manager')
+	elif patch_no == 358:
+		reload_doc('setup', 'doctype','features_setup')
 		reload_doc('stock','doctype','item')
 		sql("update tabDocField set label='Produced Qty',description='Updated after finished goods are transferred to FG Warehouse through Stock Entry' where parent='Production Order' and fieldname='produced_qty'")
 		rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null")
@@ -300,7 +312,145 @@
 		for d in rs:
 			m.fields[d[0]] = 1
 		m.save()
-	elif patch_no == 355:
+	elif patch_no == 359:
 		reload_doc('hr', 'doctype', 'salary_slip')
 		delete_doc('DocType', 'Salary Control Panel')
+	elif patch_no == 360:
+		sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', 'change_log') or label = 'Template') and parent = 'DocType'")
+	elif patch_no == 361:
+		sql("update `tabModule Def Item` set doc_name = 'GL Entry' where display_name in ('Lease Agreement List', 'Lease Monthly Future Installment Inflows', 'Lease Overdue Age Wise', 'Lease Overdue List', 'Lease Receipts Client Wise', 'Lease Receipt Summary Month Wise', 'Lease Yearly Future Installment Inflows') and parent = 'Accounts'")
+	elif patch_no == 362:
+		sql("update `tabDocField` set no_copy = 1 where fieldname in ('amended_from', 'amendment_date', 'file_list', 'naming_series', 'status')")
+	elif patch_no == 363:
+		reload_doc('accounts', 'search_criteria', 'voucher_wise_tax_details')
+		reload_doc('accounts', 'Module Def', 'Accounts')
+		mappers = sql("select name, module from `tabDocType Mapper`")
+		for d in mappers:
+			if d[0] and d[1]:
+				reload_doc(d[1].lower(), 'DocType Mapper', d[0])
+	elif patch_no == 364:
+		sql("""delete from `tabField Mapper Detail` 
+			where to_field in ('qty', 'amount', 'export_amount') 
+			and parent in ('Sales Order-Receivable Voucher', 'Delivery Note-Receivable Voucher')
+		""")
+		mappers = sql("select name, module from `tabDocType Mapper`")
+		for d in mappers:
+			if d[0] and d[1]:
+				reload_doc(d[1].lower(), 'DocType Mapper', d[0])
+	elif patch_no == 365:
+		from patches.delivery_billing_status_patch import run_patch
+		run_patch()
+	elif patch_no == 367:
+		bin = sql("select name from tabBin")
+		for b in bin:
+			bobj = get_obj('Bin',b[0])
+			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:
+		from webnotes.utils import nestedset
+		t = [
+			['Account', 'parent_account'], ['Cost Center', 'parent_cost_center'], 
+			['Item Group', 'parent_item_group'], ['Territory', 'parent_territory'],
+			['Customer Group', 'parent_customer_group'], ['Sales Person', 'parent_sales_person']
+		]
+		for d in t:
+			nestedset.rebuild_tree(d[0], d[1])
+	elif patch_no == 369:
+		reload_doc('hr', 'doctype', 'appraisal')
+		reload_doc('hr', 'doctype', 'appraisal_detail')
+	elif patch_no == 370:
+		sql("update `tabDocField` set `hidden` = 0 where fieldname = 'group_or_ledger' and parent = 'Cost Center'")
+	elif patch_no == 371:
+		comp = sql("select name from tabCompany where docstatus!=2")
+		fy = sql("select name from `tabFiscal Year` order by year_start_date asc")
+		for c in comp:
+			prev_fy = ''
+			for f in fy:
+				fy_obj = get_obj('Fiscal Year', f[0])
+				fy_obj.doc.past_year = prev_fy
+				fy_obj.doc.company = c[0]
+				fy_obj.doc.save()
+				fy_obj.repost()
+				prev_fy = f[0]
+				sql("commit")
+				sql("start transaction")
+	elif patch_no == 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:
+			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')
+	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()
+	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()
+	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'])
+	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'])
+	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/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 98%
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
index dfbef85..7065fa6 100644
--- 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
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2010-01-27 16:03:20',
+		'modified': '2011-09-15 15:04:42',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
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 98%
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
index 6125d98..3d62811 100644
--- 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
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2010-02-12 12:41:03',
+		'modified': '2011-09-15 15:04:43',
 		'modified_by': 'Administrator',
 		'owner': 'jai@webnotestech.com'
 	},
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 98%
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
index 41c5173..780b841 100644
--- 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
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:36',
 		'docstatus': 0,
-		'modified': '2009-12-21 13:16:59',
+		'modified': '2011-09-15 15:04:45',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
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/__init__.py b/erpnext/production/__init__.py
similarity index 100%
rename from production/__init__.py
rename to erpnext/production/__init__.py
diff --git a/production/doctype/__init__.py b/erpnext/production/doctype/__init__.py
similarity index 100%
rename from production/doctype/__init__.py
rename to erpnext/production/doctype/__init__.py
diff --git a/production/doctype/bill_of_materials/__init__.py b/erpnext/production/doctype/bill_of_materials/__init__.py
similarity index 100%
rename from production/doctype/bill_of_materials/__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 95%
rename from production/doctype/bill_of_materials/bill_of_materials.py
rename to erpnext/production/doctype/bill_of_materials/bill_of_materials.py
index d287d2f..9727a63 100644
--- a/production/doctype/bill_of_materials/bill_of_materials.py
+++ b/erpnext/production/doctype/bill_of_materials/bill_of_materials.py
@@ -499,19 +499,19 @@
   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
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_control/__init__.py b/erpnext/production/doctype/bom_control/__init__.py
similarity index 100%
rename from production/doctype/bom_control/__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_material/__init__.py b/erpnext/production/doctype/bom_material/__init__.py
similarity index 100%
rename from production/doctype/bom_material/__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_operation/__init__.py b/erpnext/production/doctype/bom_operation/__init__.py
similarity index 100%
rename from production/doctype/bom_operation/__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/__init__.py b/erpnext/production/doctype/bom_replace_utility/__init__.py
similarity index 100%
rename from production/doctype/bom_replace_utility/__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_replace_utility_detail/__init__.py b/erpnext/production/doctype/bom_replace_utility_detail/__init__.py
similarity index 100%
rename from production/doctype/bom_replace_utility_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/bom_report_detail/__init__.py b/erpnext/production/doctype/bom_report_detail/__init__.py
similarity index 100%
rename from production/doctype/bom_report_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/flat_bom_detail/__init__.py b/erpnext/production/doctype/flat_bom_detail/__init__.py
similarity index 100%
rename from production/doctype/flat_bom_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/pf_detail/__init__.py b/erpnext/production/doctype/pf_detail/__init__.py
similarity index 100%
rename from production/doctype/pf_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_detail/__init__.py b/erpnext/production/doctype/pp_detail/__init__.py
similarity index 100%
rename from production/doctype/pp_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/pp_so_detail/__init__.py b/erpnext/production/doctype/pp_so_detail/__init__.py
similarity index 100%
rename from production/doctype/pp_so_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/ppw_detail/__init__.py b/erpnext/production/doctype/ppw_detail/__init__.py
similarity index 100%
rename from production/doctype/ppw_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_detail/__init__.py b/erpnext/production/doctype/pro_detail/__init__.py
similarity index 100%
rename from production/doctype/pro_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/pro_pp_detail/__init__.py b/erpnext/production/doctype/pro_pp_detail/__init__.py
similarity index 100%
rename from production/doctype/pro_pp_detail/__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_control/__init__.py b/erpnext/production/doctype/production_control/__init__.py
similarity index 100%
rename from production/doctype/production_control/__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_order/__init__.py b/erpnext/production/doctype/production_order/__init__.py
similarity index 100%
rename from production/doctype/production_order/__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/production_planning_tool/__init__.py b/erpnext/production/doctype/production_planning_tool/__init__.py
similarity index 100%
rename from production/doctype/production_planning_tool/__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/__init__.py b/erpnext/production/doctype/update_delivery_date/__init__.py
similarity index 100%
rename from production/doctype/update_delivery_date/__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/update_delivery_date_detail/__init__.py b/erpnext/production/doctype/update_delivery_date_detail/__init__.py
similarity index 100%
rename from production/doctype/update_delivery_date_detail/__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/doctype/workstation/__init__.py b/erpnext/production/doctype/workstation/__init__.py
similarity index 100%
rename from production/doctype/workstation/__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/__init__.py b/erpnext/production/page/__init__.py
similarity index 100%
rename from production/page/__init__.py
rename to erpnext/production/page/__init__.py
diff --git a/production/page/bill_of_materials/__init__.py b/erpnext/production/page/bill_of_materials/__init__.py
similarity index 100%
rename from production/page/bill_of_materials/__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/__init__.py b/erpnext/production/search_criteria/__init__.py
similarity index 100%
rename from production/search_criteria/__init__.py
rename to erpnext/production/search_criteria/__init__.py
diff --git a/production/search_criteria/consumption_against_production/__init__.py b/erpnext/production/search_criteria/consumption_against_production/__init__.py
similarity index 100%
rename from production/search_criteria/consumption_against_production/__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/delivery_plan/__init__.py b/erpnext/production/search_criteria/delivery_plan/__init__.py
similarity index 100%
rename from production/search_criteria/delivery_plan/__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/itemwise_production_report/__init__.py b/erpnext/production/search_criteria/itemwise_production_report/__init__.py
similarity index 100%
rename from production/search_criteria/itemwise_production_report/__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/production/search_criteria/production_orders_in_process/__init__.py b/erpnext/production/search_criteria/production_orders_in_process/__init__.py
similarity index 100%
rename from production/search_criteria/production_orders_in_process/__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/__init__.py b/erpnext/projects/__init__.py
similarity index 100%
rename from projects/__init__.py
rename to erpnext/projects/__init__.py
diff --git a/projects/doctype/__init__.py b/erpnext/projects/doctype/__init__.py
similarity index 100%
rename from projects/doctype/__init__.py
rename to erpnext/projects/doctype/__init__.py
diff --git a/projects/doctype/activity_type/__init__.py b/erpnext/projects/doctype/activity_type/__init__.py
similarity index 100%
rename from projects/doctype/activity_type/__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/__init__.py b/erpnext/projects/doctype/project/__init__.py
similarity index 100%
rename from projects/doctype/project/__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/__init__.py b/erpnext/projects/doctype/project_activity/__init__.py
similarity index 100%
rename from projects/doctype/project_activity/__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_activity_update/__init__.py b/erpnext/projects/doctype/project_activity_update/__init__.py
similarity index 100%
rename from projects/doctype/project_activity_update/__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_control/__init__.py b/erpnext/projects/doctype/project_control/__init__.py
similarity index 100%
rename from projects/doctype/project_control/__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/project_milestone/__init__.py b/erpnext/projects/doctype/project_milestone/__init__.py
similarity index 100%
rename from projects/doctype/project_milestone/__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/ticket/__init__.py b/erpnext/projects/doctype/ticket/__init__.py
similarity index 100%
rename from projects/doctype/ticket/__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/__init__.py b/erpnext/projects/doctype/timesheet/__init__.py
similarity index 100%
rename from projects/doctype/timesheet/__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/doctype/timesheet_detail/__init__.py b/erpnext/projects/doctype/timesheet_detail/__init__.py
similarity index 100%
rename from projects/doctype/timesheet_detail/__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/__init__.py b/erpnext/projects/page/__init__.py
similarity index 100%
rename from projects/page/__init__.py
rename to erpnext/projects/page/__init__.py
diff --git a/projects/page/projects/__init__.py b/erpnext/projects/page/projects/__init__.py
similarity index 100%
rename from projects/page/projects/__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/__init__.py b/erpnext/projects/search_criteria/__init__.py
similarity index 100%
rename from projects/search_criteria/__init__.py
rename to erpnext/projects/search_criteria/__init__.py
diff --git a/projects/search_criteria/dispatch_report/__init__.py b/erpnext/projects/search_criteria/dispatch_report/__init__.py
similarity index 100%
rename from projects/search_criteria/dispatch_report/__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_delivered_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_delivered_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_pending_qty_and_costs/__init__.py b/erpnext/projects/search_criteria/projectwise_pending_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_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_purchase_details/__init__.py b/erpnext/projects/search_criteria/projectwise_purchase_details/__init__.py
similarity index 100%
rename from projects/search_criteria/projectwise_purchase_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_details/__init__.py b/erpnext/projects/search_criteria/projectwise_sales_details/__init__.py
similarity index 100%
rename from projects/search_criteria/projectwise_sales_details/__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/projectwise_sales_orders/__init__.py b/erpnext/projects/search_criteria/projectwise_sales_orders/__init__.py
similarity index 100%
rename from projects/search_criteria/projectwise_sales_orders/__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/projects/search_criteria/timesheet_report/__init__.py b/erpnext/projects/search_criteria/timesheet_report/__init__.py
similarity index 100%
rename from projects/search_criteria/timesheet_report/__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/stock/doctype/item_tax/__init__.py b/erpnext/sandbox/__init__.py
similarity index 100%
copy from stock/doctype/item_tax/__init__.py
copy to erpnext/sandbox/__init__.py
diff --git a/erpnext/sandbox/test_stock_entry.py b/erpnext/sandbox/test_stock_entry.py
new file mode 100644
index 0000000..f1035bc
--- /dev/null
+++ b/erpnext/sandbox/test_stock_entry.py
@@ -0,0 +1,380 @@
+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
+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()		
+		create_master_records()
+		print 'Master Data Created'
+		
+	#===========================================================================
+	# Purpose: Material Receipt
+	#===========================================================================
+	def test_mr_onsubmit(self):
+		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)
+		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: Material Receipt 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: Material Transfer Note 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: Material Transfer Note 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]])
+		
+#===========================================================================
+	# 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):
+		if t == 'Material Receipt':
+			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)
+
+		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 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, ste):
+		ste = self.submit_stock_entry(ste)
+		
+		ste.on_cancel()
+		
+		ste.doc.cancel_reason = "testing"
+		ste.doc.docstatus = 2
+		ste.doc.save()
+		
+		print "Stock Entry Cancelled"
+		return ste
+		
+	#===========================================================================
+	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,
+							'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,
+							'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,
+							'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/setup/page/import_data/__init__.py b/erpnext/sandbox/testdata/__init__.py
similarity index 100%
copy from setup/page/import_data/__init__.py
copy to erpnext/sandbox/testdata/__init__.py
diff --git a/erpnext/sandbox/testdata/masters.py b/erpnext/sandbox/testdata/masters.py
new file mode 100644
index 0000000..7f2d67c
--- /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 0000000..8f2a30c
--- /dev/null
+++ b/erpnext/sandbox/testdata/stock_entry.py
@@ -0,0 +1,104 @@
+from webnotes.model.doc import Document
+
+# Material  Receipt
+#-----------------------
+
+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': 'mr'
+		}
+	),
+	Document(
+		fielddata  ={
+			'doctype': 'Stock Entry Detail',
+			'parenttype': 'Stock Entry',
+			'parentfield' : 'mtn_details',
+			'parent' : 'mr',
+			'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'	
+		}
+	)
+]
+
+# Material Transfer
+#--------------------
+
+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'	
+		}
+	)
+]
+
+# 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'
+		}
+	)
+]
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 91%
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
index 67abbdc..da8762d 100644
--- 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
@@ -5,8 +5,8 @@
 	{
 		'creation': '2010-08-08 17:09:34',
 		'docstatus': 0,
-		'modified': '2011-05-17 11:42:57',
-		'modified_by': 'umair@iwebnotes.com',
+		'modified': '2011-09-15 15:04:42',
+		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
@@ -31,7 +31,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Delivery Note',
 		'module': 'Selling',
 		'name': '__common__',
@@ -41,7 +41,7 @@
 
 	# DocType Mapper, Delivery Note-Installation Note
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Delivery Note-Installation Note'
 	},
 
@@ -111,6 +111,14 @@
 		'to_field': 'prevdoc_date'
 	},
 
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'serial_no',
+		'match_id': 1,
+		'to_field': 'serial_no'
+	},
+
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
diff --git a/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt b/erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
similarity index 75%
rename from selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
rename to erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
index 4db092d..de6f60d 100644
--- a/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
+++ b/erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
@@ -5,8 +5,8 @@
 	{
 		'creation': '2010-08-08 17:09:34',
 		'docstatus': 0,
-		'modified': '2011-05-10 16:04:40',
-		'modified_by': 'umair@iwebnotes.com',
+		'modified': '2011-09-14 12:36:24',
+		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
@@ -23,7 +23,6 @@
 	# These values are common for all Field Mapper Detail
 	{
 		'doctype': 'Field Mapper Detail',
-		'map': 'Yes',
 		'name': '__common__',
 		'parent': 'Enquiry-Quotation',
 		'parentfield': 'field_mapper_details',
@@ -32,7 +31,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Enquiry',
 		'module': 'Selling',
 		'name': '__common__',
@@ -42,7 +41,7 @@
 
 	# DocType Mapper, Enquiry-Quotation
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Enquiry-Quotation'
 	},
 
@@ -50,6 +49,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'uom',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'stock_uom'
 	},
@@ -58,6 +58,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'name',
+		'map': 'Yes',
 		'match_id': 0,
 		'to_field': 'enq_no'
 	},
@@ -66,6 +67,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'parent',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'prevdoc_docname'
 	},
@@ -74,6 +76,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'parenttype',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'prevdoc_doctype'
 	},
@@ -82,6 +85,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'enquiry_from',
+		'map': 'Yes',
 		'match_id': 0,
 		'to_field': 'quotation_to'
 	},
@@ -90,10 +94,38 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'enquiry_type',
+		'map': 'Yes',
 		'match_id': 0,
 		'to_field': 'order_type'
 	},
 
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'transaction_date',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'transaction_date'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'status',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'status'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'naming_series',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'naming_series'
+	},
+
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
diff --git a/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt b/erpnext/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt
similarity index 93%
rename from selling/DocType Mapper/Lead-Customer/Lead-Customer.txt
rename to erpnext/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt
index 2b7a15a..268834a 100644
--- a/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt
+++ b/erpnext/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:34',
 		'docstatus': 0,
-		'modified': '2010-10-14 13:39:44',
+		'modified': '2011-09-14 12:36:24',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -36,7 +36,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Lead',
 		'module': 'Selling',
 		'name': '__common__',
@@ -45,7 +45,7 @@
 
 	# DocType Mapper, Lead-Customer
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Lead-Customer'
 	},
 
diff --git a/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt b/erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt
similarity index 84%
rename from selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt
rename to erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt
index 4b32723..5dc1c8f 100644
--- a/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt
+++ b/erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:34',
 		'docstatus': 0,
-		'modified': '2010-08-05 20:21:54',
+		'modified': '2011-09-14 12:36:24',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -26,7 +26,6 @@
 	# These values are common for all Field Mapper Detail
 	{
 		'doctype': 'Field Mapper Detail',
-		'map': 'Yes',
 		'match_id': 0,
 		'name': '__common__',
 		'parent': 'Lead-Enquiry',
@@ -36,7 +35,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Lead',
 		'module': 'Selling',
 		'name': '__common__',
@@ -45,7 +44,7 @@
 
 	# DocType Mapper, Lead-Enquiry
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Lead-Enquiry'
 	},
 
@@ -53,6 +52,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'campaign_name',
+		'map': 'Yes',
 		'to_field': 'campaign'
 	},
 
@@ -60,6 +60,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'doctype',
+		'map': 'Yes',
 		'to_field': 'enquiry_from'
 	},
 
@@ -67,9 +68,18 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'name',
+		'map': 'Yes',
 		'to_field': 'lead'
 	},
 
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'status',
+		'map': 'No',
+		'to_field': 'status'
+	},
+
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail'
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 94%
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
index 04f70ad..ee8f8b0 100644
--- a/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt
+++ b/erpnext/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:10',
+		'creation': '2010-09-01 15:47:59',
 		'docstatus': 0,
-		'modified': '2010-09-01 14:23:28',
+		'modified': '2011-09-15 15:04:43',
 		'modified_by': 'Administrator',
 		'owner': 'ashwini@webnotestech.com'
 	},
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 92%
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
index 4d493a6..feadb98 100644
--- a/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt
+++ b/erpnext/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2011-08-25 18:25:02',
+		'modified': '2011-09-14 12:36:24',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -30,7 +30,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Quotation',
 		'module': 'Selling',
 		'name': '__common__',
@@ -40,7 +40,7 @@
 
 	# DocType Mapper, Quotation-Sales Order
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Quotation-Sales Order'
 	},
 
@@ -110,6 +110,15 @@
 		'to_field': 'naming_series'
 	},
 
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'status',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'status'
+	},
+
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
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/__init__.py b/erpnext/selling/__init__.py
similarity index 100%
rename from selling/__init__.py
rename to erpnext/selling/__init__.py
diff --git a/selling/doctype/__init__.py b/erpnext/selling/doctype/__init__.py
similarity index 100%
rename from selling/doctype/__init__.py
rename to erpnext/selling/doctype/__init__.py
diff --git a/selling/doctype/campaign/__init__.py b/erpnext/selling/doctype/campaign/__init__.py
similarity index 100%
rename from selling/doctype/campaign/__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/customer/__init__.py b/erpnext/selling/doctype/customer/__init__.py
similarity index 100%
rename from selling/doctype/customer/__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/__init__.py b/erpnext/selling/doctype/enquiry/__init__.py
similarity index 100%
rename from selling/doctype/enquiry/__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 96%
rename from selling/doctype/enquiry/enquiry.py
rename to erpnext/selling/doctype/enquiry/enquiry.py
index 1259702..773bedf 100644
--- a/selling/doctype/enquiry/enquiry.py
+++ b/erpnext/selling/doctype/enquiry/enquiry.py
@@ -115,26 +115,17 @@
       ch = addchild(ev, 'event_individuals', 'Event User', 0)
       ch.person = d
       ch.save(1)
-    
-    #user_list = ['Sales Manager', 'Sales User']
-    #for d in user_list:
-    #  ch = addchild(ev, 'event_individuals', 'Event User', 0)
-    #  ch.person = d
-    #  ch.save()
+
 
   #--------------Validation For Last Contact Date-----------------
   # ====================================================================================================================
   def set_last_contact_date(self):
-    #if not self.doc.contact_date_ref:
-      #self.doc.contact_date_ref=self.doc.contact_date
-      #self.doc.last_contact_date=self.doc.contact_date_ref
     if self.doc.contact_date_ref and self.doc.contact_date_ref != self.doc.contact_date:
       if getdate(self.doc.contact_date_ref) < getdate(self.doc.contact_date):
         self.doc.last_contact_date=self.doc.contact_date_ref
       else:
         msgprint("Contact Date Cannot be before Last Contact Date")
         raise Exception
-      #set(self.doc, 'contact_date_ref',self.doc.contact_date)
   
   # check if item present in item table
   # ====================================================================================================================
@@ -171,8 +162,6 @@
       raise Exception
     else:
       set(self.doc, 'status', 'Cancelled')
-
-    get_obj('Feed Control').make_feed(self.doc, 'cancelled')
     
   # declare as enquiry lost
   #---------------------------
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_detail/__init__.py b/erpnext/selling/doctype/enquiry_detail/__init__.py
similarity index 100%
rename from selling/doctype/enquiry_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/enquiry_sms_detail/__init__.py b/erpnext/selling/doctype/enquiry_sms_detail/__init__.py
similarity index 100%
rename from selling/doctype/enquiry_sms_detail/__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/follow_up/__init__.py b/erpnext/selling/doctype/follow_up/__init__.py
similarity index 100%
rename from selling/doctype/follow_up/__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/industry_type/__init__.py b/erpnext/selling/doctype/industry_type/__init__.py
similarity index 100%
rename from selling/doctype/industry_type/__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/installation_note/__init__.py b/erpnext/selling/doctype/installation_note/__init__.py
similarity index 100%
rename from selling/doctype/installation_note/__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/installed_item_details/__init__.py b/erpnext/selling/doctype/installed_item_details/__init__.py
similarity index 100%
rename from selling/doctype/installed_item_details/__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/__init__.py b/erpnext/selling/doctype/lead/__init__.py
similarity index 100%
rename from selling/doctype/lead/__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_attachment_detail/__init__.py b/erpnext/selling/doctype/lead_attachment_detail/__init__.py
similarity index 100%
rename from selling/doctype/lead_attachment_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_item_detail/__init__.py b/erpnext/selling/doctype/lead_item_detail/__init__.py
similarity index 100%
rename from selling/doctype/lead_item_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/lead_sms_detail/__init__.py b/erpnext/selling/doctype/lead_sms_detail/__init__.py
similarity index 100%
rename from selling/doctype/lead_sms_detail/__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/plot_control/__init__.py b/erpnext/selling/doctype/plot_control/__init__.py
similarity index 100%
rename from selling/doctype/plot_control/__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/__init__.py b/erpnext/selling/doctype/quotation/__init__.py
similarity index 100%
rename from selling/doctype/quotation/__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 96%
rename from selling/doctype/quotation/quotation.js
rename to erpnext/selling/doctype/quotation/quotation.js
index b3dcde6..21eceb9 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -312,10 +312,11 @@
 //================ Last Quoted Price and Last Sold Price suggestion ======================
 cur_frm.fields_dict['quotation_details'].grid.get_field('item_code').get_query= function(doc, cdt, cdn) {
   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'\
+			select item_code,name, item_name, description from tabItem where tabItem.%(key)s like '%s' %(cond)s\
 		)i\
 		left join\
 		(\
@@ -336,7 +337,7 @@
 			(\
 				select rd.item_code,max(voucher_date) as voucher_date from `tabRV Detail` rd, `tabReceivable Voucher` r where r.name=rd.parent and r.docstatus=1 and customer='%(cust)s' group by rd.item_code\
 			)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});
+		)s on i.item_code=s.item_code ORDER BY item_code LIMIT 50",{cust:doc.customer, cond:cond});
   else
-    return "SELECT name, item_code FROM tabItem WHERE `tabItem`.%(key)s LIKE '%s' ORDER BY tabItem.item_code DESC LIMIT 50";
-}
\ No newline at end of file
+    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});
+}
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/quotation_detail/__init__.py b/erpnext/selling/doctype/quotation_detail/__init__.py
similarity index 100%
rename from selling/doctype/quotation_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/return_detail/__init__.py b/erpnext/selling/doctype/return_detail/__init__.py
similarity index 100%
rename from selling/doctype/return_detail/__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_common/__init__.py b/erpnext/selling/doctype/sales_common/__init__.py
similarity index 100%
rename from selling/doctype/sales_common/__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/__init__.py b/erpnext/selling/doctype/sales_order/__init__.py
similarity index 100%
rename from selling/doctype/sales_order/__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_order_detail/__init__.py b/erpnext/selling/doctype/sales_order_detail/__init__.py
similarity index 100%
rename from selling/doctype/sales_order_detail/__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/sales_team/__init__.py b/erpnext/selling/doctype/sales_team/__init__.py
similarity index 100%
rename from selling/doctype/sales_team/__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/shipping_address/__init__.py b/erpnext/selling/doctype/shipping_address/__init__.py
similarity index 100%
rename from selling/doctype/shipping_address/__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/doctype/sms_center/__init__.py b/erpnext/selling/doctype/sms_center/__init__.py
similarity index 100%
rename from selling/doctype/sms_center/__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/__init__.py b/erpnext/selling/page/__init__.py
similarity index 100%
rename from selling/page/__init__.py
rename to erpnext/selling/page/__init__.py
diff --git a/selling/page/customers/__init__.py b/erpnext/selling/page/customers/__init__.py
similarity index 100%
rename from selling/page/customers/__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_browser/__init__.py b/erpnext/selling/page/sales_browser/__init__.py
similarity index 100%
rename from selling/page/sales_browser/__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/page/sales_dashboard/__init__.py b/erpnext/selling/page/sales_dashboard/__init__.py
similarity index 100%
rename from selling/page/sales_dashboard/__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/__init__.py b/erpnext/selling/search_criteria/__init__.py
similarity index 100%
rename from selling/search_criteria/__init__.py
rename to erpnext/selling/search_criteria/__init__.py
diff --git a/selling/search_criteria/delivered_items_to_be_install/__init__.py b/erpnext/selling/search_criteria/delivered_items_to_be_install/__init__.py
similarity index 100%
rename from selling/search_criteria/delivered_items_to_be_install/__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/delivery_note_itemwise_pending_to_bill/__init__.py b/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/__init__.py
similarity index 100%
rename from selling/search_criteria/delivery_note_itemwise_pending_to_bill/__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/draft_sales_orders/__init__.py b/erpnext/selling/search_criteria/draft_sales_orders/__init__.py
similarity index 100%
rename from selling/search_criteria/draft_sales_orders/__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/follow_up_report/__init__.py b/erpnext/selling/search_criteria/follow_up_report/__init__.py
similarity index 100%
rename from selling/search_criteria/follow_up_report/__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/gross_profit/__init__.py b/erpnext/selling/search_criteria/gross_profit/__init__.py
similarity index 100%
rename from selling/search_criteria/gross_profit/__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_delivery_details/__init__.py b/erpnext/selling/search_criteria/itemwise_delivery_details/__init__.py
similarity index 100%
rename from selling/search_criteria/itemwise_delivery_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/itemwise_sales_details/__init__.py b/erpnext/selling/search_criteria/itemwise_sales_details/__init__.py
similarity index 100%
rename from selling/search_criteria/itemwise_sales_details/__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/monthly_despatched_trend/__init__.py b/erpnext/selling/search_criteria/monthly_despatched_trend/__init__.py
similarity index 100%
rename from selling/search_criteria/monthly_despatched_trend/__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/periodic_sales_summary/__init__.py b/erpnext/selling/search_criteria/periodic_sales_summary/__init__.py
similarity index 100%
rename from selling/search_criteria/periodic_sales_summary/__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_agentwise_commission/__init__.py b/erpnext/selling/search_criteria/sales_agentwise_commission/__init__.py
similarity index 100%
rename from selling/search_criteria/sales_agentwise_commission/__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_order_pending_items1/__init__.py b/erpnext/selling/search_criteria/sales_order_pending_items1/__init__.py
similarity index 100%
rename from selling/search_criteria/sales_order_pending_items1/__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_booking_&_delivery_summary/__init__.py b/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/__init__.py
similarity index 100%
rename from selling/search_criteria/sales_orderwise_booking_&_delivery_summary/__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_amount_to_bill/__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_amount_to_bill/__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_orderwise_pending_qty_to_deliver/__init__.py b/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/__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_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_persons_target_variance_item_group_wise/__init__.py b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/__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_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/sales_personwise_transaction_summary/__init__.py b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/__init__.py
similarity index 100%
rename from selling/search_criteria/sales_personwise_transaction_summary/__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/target_variance_report/__init__.py b/erpnext/selling/search_criteria/target_variance_report/__init__.py
similarity index 100%
rename from selling/search_criteria/target_variance_report/__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/territories_target_variance_item_group_wise/__init__.py b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/__init__.py
similarity index 100%
rename from selling/search_criteria/territories_target_variance_item_group_wise/__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_item_group_wise_gp/__init__.py b/erpnext/selling/search_criteria/territory_item_group_wise_gp/__init__.py
similarity index 100%
rename from selling/search_criteria/territory_item_group_wise_gp/__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/territory_sales___variance_report/__init__.py b/erpnext/selling/search_criteria/territory_sales___variance_report/__init__.py
similarity index 100%
rename from selling/search_criteria/territory_sales___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/total_target_variance_report/__init__.py b/erpnext/selling/search_criteria/total_target_variance_report/__init__.py
similarity index 100%
rename from selling/search_criteria/total_target_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/selling/search_criteria/variance_report/__init__.py b/erpnext/selling/search_criteria/variance_report/__init__.py
similarity index 100%
rename from selling/search_criteria/variance_report/__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/__init__.py b/erpnext/setup/__init__.py
similarity index 100%
rename from setup/__init__.py
rename to erpnext/setup/__init__.py
diff --git a/setup/doctype/__init__.py b/erpnext/setup/doctype/__init__.py
similarity index 100%
rename from setup/doctype/__init__.py
rename to erpnext/setup/doctype/__init__.py
diff --git a/setup/doctype/authorization_control/__init__.py b/erpnext/setup/doctype/authorization_control/__init__.py
similarity index 100%
rename from setup/doctype/authorization_control/__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/erpnext/setup/doctype/authorization_control/authorization_control.py b/erpnext/setup/doctype/authorization_control/authorization_control.py
new file mode 100644
index 0000000..3ddcab4
--- /dev/null
+++ b/erpnext/setup/doctype/authorization_control/authorization_control.py
@@ -0,0 +1,200 @@
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+	
+# -----------------------------------------------------------------------------------------
+from utilities.transaction_base import TransactionBase
+
+class DocType(TransactionBase):
+	def __init__(self, d, dl):
+		self.doc, self.doclist = d, dl
+
+
+	# 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" % ('%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" % ('%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])
+
+			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" % ('%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" % ('%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" % ('%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"% ('%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)
+			
+			
+	# 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)
+
+		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
+		""" % ('%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)
+		
+		# 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)
+
+		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/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/authorization_rule/__init__.py b/erpnext/setup/doctype/authorization_rule/__init__.py
similarity index 100%
rename from setup/doctype/authorization_rule/__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/brand/__init__.py b/erpnext/setup/doctype/brand/__init__.py
similarity index 100%
rename from setup/doctype/brand/__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/company/__init__.py b/erpnext/setup/doctype/company/__init__.py
similarity index 100%
rename from setup/doctype/company/__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/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
new file mode 100644
index 0000000..a163870
--- /dev/null
+++ b/erpnext/setup/doctype/company/company.py
@@ -0,0 +1,238 @@
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+
+# -----------------------------------------------------------------------------------------
+
+
+class DocType:
+	def __init__(self,d,dl):
+		self.doc, self.doclist = d,dl
+	
+	# Create default accounts
+	# ---------------------------------------------------
+	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,''],
+						['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,'']
+						 ]
+		# load common account heads
+		for d in acc_list_common:
+			self.add_acc(d)
+
+		country = sql("select value from tabSingles where field = 'country' and doctype = 'Control Panel'")
+		country = country and cstr(country[0][0]) or ''
+
+		# load taxes (only for India)
+		if country == 'India':
+			for d in acc_list_india:
+				self.add_acc(d)
+
+	# Create account
+	# ---------------------------------------------------
+	def add_acc(self,lst):
+		ac = Document('Account')
+		for d in self.fld_dict.keys():
+			ac.fields[d] = (d == 'parent_account' and lst[self.fld_dict[d]]) and lst[self.fld_dict[d]] +' - '+ self.doc.abbr or lst[self.fld_dict[d]]
+		ac.old_parent = ''
+		ac_obj = get_obj(doc=ac)
+		ac_obj.validate()
+		ac_obj.doc.save(1)
+		ac_obj.on_update()
+		sql("commit")
+		sql("start transaction")
+
+
+	# Set letter head
+	# ---------------------------------------------------
+	def set_letter_head(self):
+		if not self.doc.letter_head:
+			if self.doc.address:
+				header = """ 
+<div><h3> %(comp)s </h3> %(add)s </div>
+
+			""" % {'comp':self.doc.name,
+				 'add':self.doc.address.replace("\n",'<br>')}
+			 
+				self.doc.letter_head = header
+
+	# Set default AR and AP group
+	# ---------------------------------------------------
+	def set_default_groups(self):
+		if not self.doc.receivables_group:
+			set(self.doc, 'receivables_group', 'Accounts Receivable - '+self.doc.abbr)
+		if not self.doc.payables_group:
+			set(self.doc, 'payables_group', 'Accounts Payable - '+self.doc.abbr)
+			
+			
+	# Create default cost center
+	# ---------------------------------------------------
+	def create_default_cost_center(self):
+		glc = get_obj('GL Control')
+		cc_list = [{'cost_center_name':'Root','company_name':self.doc.name,'company_abbr':self.doc.abbr,'group_or_ledger':'Group','parent_cost_center':'','old_parent':''}, {'cost_center_name':'Default CC Ledger','company_name':self.doc.name,'company_abbr':self.doc.abbr,'group_or_ledger':'Ledger','parent_cost_center':'Root - ' + self.doc.abbr,'old_parent':''}]
+		for c in cc_list:
+			glc.add_cc(str(c))
+			
+			
+	# On update
+	# ---------------------------------------------------
+	def on_update(self):
+		self.set_letter_head()
+		ac = sql("select name from tabAccount where account_name='Income' and company=%s", self.doc.name)
+		if not ac:
+			self.create_default_accounts()
+		self.set_default_groups()
+		cc = sql("select name from `tabCost Center` where cost_center_name = 'Root' and company_name = '%s'"%(self.doc.name))
+		if not cc:
+			self.create_default_cost_center()
+
+	# 
+	# ---------------------------------------------------	
+	def on_trash(self):
+		"""
+			Trash accounts and cost centers for this company if no gl entry exists
+		"""
+		rec = sql("SELECT name from `tabGL Entry` where ifnull(is_cancelled, 'No') = 'No' and company = %s", self.doc.name)
+		if not rec:
+			# delete gl entry
+			sql("delete from `tabGL Entry` where company = %s", self.doc.name)
+
+			#delete tabAccount Balance
+			sql("delete ab.* from `tabAccount Balance` ab, `tabAccount` a where ab.account = a.name and a.company = %s", self.doc.name)
+
+			#delete tabAccount
+			sql("delete from `tabAccount` where company = %s order by lft desc, rgt desc", self.doc.name)
+			
+			#delete cost center child table - budget detail
+			sql("delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc where bd.parent = cc.name and cc.company_name = %s", self.doc.name)
+			#delete cost center
+			sql("delete from `tabCost Center` WHERE company_name = %s order by lft desc, rgt desc", self.doc.name)
+			
+			#update value as blank for tabDefaultValue defkey=company
+			sql("update `tabDefaultValue` set defvalue = '' where defkey='company' and defvalue = %s", self.doc.name)
+			
+			#update value as blank for tabSingles Manage Account
+			sql("update `tabSingles` set value = '' where doctype='Manage Account' and field = 'default_company' and value = %s", self.doc.name)
+
+		
+	# on rename
+	# ---------
+	def on_rename(self,newdn,olddn):		
+		sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn))	
+		sql("update `tabSingles` set value = %s where doctype='Manage Account' and field = 'default_company' and value = %s", (newdn, olddn))	
+		if get_defaults('company') == olddn:
+			set_default('company', newdn)
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/contact_control/__init__.py b/erpnext/setup/doctype/contact_control/__init__.py
similarity index 100%
rename from setup/doctype/contact_control/__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/country/__init__.py b/erpnext/setup/doctype/country/__init__.py
similarity index 100%
rename from setup/doctype/country/__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/currency/__init__.py b/erpnext/setup/doctype/currency/__init__.py
similarity index 100%
rename from setup/doctype/currency/__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/customer_group/__init__.py b/erpnext/setup/doctype/customer_group/__init__.py
similarity index 100%
rename from setup/doctype/customer_group/__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/hr/doctype/holiday_list/__init__.py b/erpnext/setup/doctype/email_digest/__init__.py
similarity index 100%
copy from hr/doctype/holiday_list/__init__.py
copy to erpnext/setup/doctype/email_digest/__init__.py
diff --git a/erpnext/setup/doctype/email_digest/email_digest.coffee b/erpnext/setup/doctype/email_digest/email_digest.coffee
new file mode 100644
index 0000000..1b17d5b
--- /dev/null
+++ b/erpnext/setup/doctype/email_digest/email_digest.coffee
@@ -0,0 +1,101 @@
+content_items = ['Sales','Expenses','Bank Balance','Activity']
+
+# 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: (@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))
+				.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 [1..@columns.length-1]
+				check = $a_input $td(@tab, i+1, c), '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]
+				val[check.item] or= {}
+				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]
+				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 
+		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 
+		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/erpnext/setup/doctype/email_digest/email_digest.css b/erpnext/setup/doctype/email_digest/email_digest.css
new file mode 100644
index 0000000..f61dacc
--- /dev/null
+++ b/erpnext/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
diff --git a/erpnext/setup/doctype/email_digest/email_digest.js b/erpnext/setup/doctype/email_digest/email_digest.js
new file mode 100644
index 0000000..ddb13f4
--- /dev/null
+++ b/erpnext/setup/doctype/email_digest/email_digest.js
@@ -0,0 +1,108 @@
+(function() {
+  var CheckGrid, content_items, cx;
+  var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
+  content_items = ['Sales', 'Expenses', 'Bank Balance', 'Activity'];
+  CheckGrid = (function() {
+    function CheckGrid(args) {
+      this.args = args;
+      this.set = __bind(this.set, this);
+      this.get = __bind(this.get, this);
+      $.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)).addClass('check-grid-head gradient').html(this.columns[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]] = {};
+        _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, _name, _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];
+          val[_name = check.item] || (val[_name] = {});
+          val[check.item][check.column] = check.checked ? 1 : 0;
+        }
+      }
+      return val;
+    };
+    CheckGrid.prototype.set = function(val) {
+      var column, item, _i, _j, _len, _len2, _ref, _ref2;
+      _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];
+          if (val[item][column]) {
+            this.checks[item][column].checked = val[item][column];
+          }
+        }
+      }
+    };
+    return CheckGrid;
+  })();
+  cx = cur_frm.cscript;
+  cx.onload = function(doc, dt, dn) {
+    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());
+    return doc.email_config = JSON.stringify(cx.email_grid.get());
+  };
+}).call(this);
diff --git a/erpnext/setup/doctype/email_digest/email_digest.txt b/erpnext/setup/doctype/email_digest/email_digest.txt
new file mode 100644
index 0000000..026caa7
--- /dev/null
+++ b/erpnext/setup/doctype/email_digest/email_digest.txt
@@ -0,0 +1,89 @@
+# DocType, Email Digest
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2011-07-27 14:23:09',
+		'docstatus': 0,
+		'modified': '2011-07-27 17:32:27',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': '1311760331',
+		'colour': 'White:FFF',
+		'doctype': 'DocType',
+		'issingle': 1,
+		'module': 'Setup',
+		'name': '__common__',
+		'section_style': 'Simple',
+		'show_in_menu': 0,
+		'version': 4
+	},
+
+	# 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',
+		'hidden': 1,
+		'idx': 2,
+		'label': 'Content Config'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'email_config',
+		'fieldtype': 'Text',
+		'hidden': 1,
+		'idx': 3,
+		'label': 'Email Config'
+	}
+]
\ No newline at end of file
diff --git a/setup/doctype/email_settings/__init__.py b/erpnext/setup/doctype/email_settings/__init__.py
similarity index 100%
rename from setup/doctype/email_settings/__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/features_setup/__init__.py b/erpnext/setup/doctype/features_setup/__init__.py
similarity index 100%
rename from setup/doctype/features_setup/__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 98%
rename from setup/doctype/features_setup/features_setup.py
rename to erpnext/setup/doctype/features_setup/features_setup.py
index 3a549d9..f12d282 100644
--- a/setup/doctype/features_setup/features_setup.py
+++ b/erpnext/setup/doctype/features_setup/features_setup.py
@@ -8,6 +8,7 @@
 		"""
 		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])
diff --git a/setup/doctype/features_setup/features_setup.txt b/erpnext/setup/doctype/features_setup/features_setup.txt
similarity index 89%
rename from setup/doctype/features_setup/features_setup.txt
rename to erpnext/setup/doctype/features_setup/features_setup.txt
index 224d175..909882e 100644
--- a/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<br><b>Preferred Industry: Chemicals etc</b>',
 		'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<br>\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 <br>\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 <br>\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<br>\nEnables item <b>Is Manufactured</b>',
 		'doctype': 'DocField',
-		'fieldname': 'manufacturing',
+		'fieldname': 'fs_manufacturing',
 		'fieldtype': 'Check',
 		'label': 'Manufacturing'
 	},
@@ -238,7 +239,7 @@
 		'colour': 'White:FFF',
 		'description': 'If you follow Quality Inspection<br>\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 <b>Point of Sale</b> 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 <b>More Info.</b> in all documents',
 		'doctype': 'DocField',
-		'fieldname': 'more_info',
+		'fieldname': 'fs_more_info',
 		'fieldtype': 'Check',
 		'label': 'More Info'
 	}
diff --git a/setup/doctype/import_data_control/__init__.py b/erpnext/setup/doctype/import_data_control/__init__.py
similarity index 100%
rename from setup/doctype/import_data_control/__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/item_group/__init__.py b/erpnext/setup/doctype/item_group/__init__.py
similarity index 100%
rename from setup/doctype/item_group/__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/manage_account/__init__.py b/erpnext/setup/doctype/manage_account/__init__.py
similarity index 100%
rename from setup/doctype/manage_account/__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 98%
rename from setup/doctype/manage_account/manage_account.py
rename to erpnext/setup/doctype/manage_account/manage_account.py
index a0ed2fa..651794f 100644
--- a/setup/doctype/manage_account/manage_account.py
+++ b/erpnext/setup/doctype/manage_account/manage_account.py
@@ -29,7 +29,7 @@
     set_default(defkey, defvalue)
 
     if defkey == 'fiscal_year':
-      ysd = sql("select year_start_date from `tabFiscal Year` where name=%s", defvalue)
+      ysd = sql("select year_start_date from `tabFiscal Year` where name=%s", cstr(defvalue))
       ysd = ysd and ysd[0][0] or ''
       if ysd:
         set_default('year_start_date', ysd.strftime('%Y-%m-%d'))
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/market_segment/__init__.py b/erpnext/setup/doctype/market_segment/__init__.py
similarity index 100%
rename from setup/doctype/market_segment/__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/__init__.py b/erpnext/setup/doctype/naming_series/__init__.py
similarity index 100%
rename from setup/doctype/naming_series/__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/naming_series_options/__init__.py b/erpnext/setup/doctype/naming_series_options/__init__.py
similarity index 100%
rename from setup/doctype/naming_series_options/__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/notification_control/__init__.py b/erpnext/setup/doctype/notification_control/__init__.py
similarity index 100%
rename from setup/doctype/notification_control/__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/order_lost_reason/__init__.py b/erpnext/setup/doctype/order_lost_reason/__init__.py
similarity index 100%
rename from setup/doctype/order_lost_reason/__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/other_charges/__init__.py b/erpnext/setup/doctype/other_charges/__init__.py
similarity index 100%
rename from setup/doctype/other_charges/__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/__init__.py b/erpnext/setup/doctype/period/__init__.py
similarity index 100%
rename from setup/doctype/period/__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/period_control/__init__.py b/erpnext/setup/doctype/period_control/__init__.py
similarity index 100%
rename from setup/doctype/period_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/permission_control/__init__.py b/erpnext/setup/doctype/permission_control/__init__.py
similarity index 100%
rename from setup/doctype/permission_control/__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/personalize/__init__.py b/erpnext/setup/doctype/personalize/__init__.py
similarity index 100%
rename from setup/doctype/personalize/__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/price_list/__init__.py b/erpnext/setup/doctype/price_list/__init__.py
similarity index 100%
rename from setup/doctype/price_list/__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/print_heading/__init__.py b/erpnext/setup/doctype/print_heading/__init__.py
similarity index 100%
rename from setup/doctype/print_heading/__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/role/__init__.py b/erpnext/setup/doctype/role/__init__.py
similarity index 100%
rename from setup/doctype/role/__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_browser_control/__init__.py b/erpnext/setup/doctype/sales_browser_control/__init__.py
similarity index 100%
rename from setup/doctype/sales_browser_control/__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 99%
rename from setup/doctype/sales_browser_control/sales_browser_control.py
rename to erpnext/setup/doctype/sales_browser_control/sales_browser_control.py
index d4c4a13..e9f8242 100644
--- a/setup/doctype/sales_browser_control/sales_browser_control.py
+++ b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.py
@@ -131,7 +131,7 @@
 
     r = eval(args)
     
-    if r['lft'] == 0:
+    if r['lft'] == 0 and r['action'] != 'Create':
       n = sql("select lft,rgt from `tab%s` where name = '%s'"%(r['node_title'],r['nm']))
       r['lft'] = n[0][0]
       r['rgt'] = n[0][1]
@@ -212,4 +212,4 @@
     if res:
       msgprint("'%s' record is already exist."%(r['nm']))
       return 'true'
-    return 'false'      
\ No newline at end of file
+    return 'false'      
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_partner/__init__.py b/erpnext/setup/doctype/sales_partner/__init__.py
similarity index 100%
rename from setup/doctype/sales_partner/__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/sales_person/__init__.py b/erpnext/setup/doctype/sales_person/__init__.py
similarity index 100%
rename from setup/doctype/sales_person/__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/series_detail/__init__.py b/erpnext/setup/doctype/series_detail/__init__.py
similarity index 100%
rename from setup/doctype/series_detail/__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_control/__init__.py b/erpnext/setup/doctype/setup_control/__init__.py
similarity index 100%
rename from setup/doctype/setup_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 97%
rename from setup/doctype/setup_control/setup_control.py
rename to erpnext/setup/doctype/setup_control/setup_control.py
index 61e3a82..55b967e 100644
--- a/setup/doctype/setup_control/setup_control.py
+++ b/erpnext/setup/doctype/setup_control/setup_control.py
@@ -52,8 +52,7 @@
 		self.currency = currency
 		
 		# Fiscal Year
-		master_dict = {'Fiscal Year':{'year':curr_fiscal_year,
-																	'year_start_date':fy_start_date}}
+		master_dict = {'Fiscal Year':{'year':curr_fiscal_year, 'year_start_date':fy_start_date}}
 		self.create_records(master_dict)
 		
 		# Company
@@ -85,6 +84,8 @@
 		# Set Registration Complete
 		set_default('registration_complete','1')
 
+		msgprint("Great! Your company has now been created")
+		
 		import webnotes.utils
 		return webnotes.utils.get_defaults()
 
@@ -203,4 +204,4 @@
 		if (cp_defaults==args['account_name']) and user_profile and \
 		   (total_users==cint(args['total_users'])):
 		   return 'True'
-		
\ No newline at end of file
+		
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/setup_wizard_control/__init__.py b/erpnext/setup/doctype/setup_wizard_control/__init__.py
similarity index 100%
rename from setup/doctype/setup_wizard_control/__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/sms_settings/__init__.py b/erpnext/setup/doctype/sms_settings/__init__.py
similarity index 100%
rename from setup/doctype/sms_settings/__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/state/__init__.py b/erpnext/setup/doctype/state/__init__.py
similarity index 100%
rename from setup/doctype/state/__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/static_parameter_detail/__init__.py b/erpnext/setup/doctype/static_parameter_detail/__init__.py
similarity index 100%
rename from setup/doctype/static_parameter_detail/__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/supplier_type/__init__.py b/erpnext/setup/doctype/supplier_type/__init__.py
similarity index 100%
rename from setup/doctype/supplier_type/__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/target_detail/__init__.py b/erpnext/setup/doctype/target_detail/__init__.py
similarity index 100%
rename from setup/doctype/target_detail/__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/term/__init__.py b/erpnext/setup/doctype/term/__init__.py
similarity index 100%
rename from setup/doctype/term/__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/territory/__init__.py b/erpnext/setup/doctype/territory/__init__.py
similarity index 100%
rename from setup/doctype/territory/__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/uom/__init__.py b/erpnext/setup/doctype/uom/__init__.py
similarity index 100%
rename from setup/doctype/uom/__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/update_series/__init__.py b/erpnext/setup/doctype/update_series/__init__.py
similarity index 100%
rename from setup/doctype/update_series/__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/upload_accounts_transactions/__init__.py b/erpnext/setup/doctype/upload_accounts_transactions/__init__.py
similarity index 100%
rename from setup/doctype/upload_accounts_transactions/__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/warehouse_type/__init__.py b/erpnext/setup/doctype/warehouse_type/__init__.py
similarity index 100%
rename from setup/doctype/warehouse_type/__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_action_detail/__init__.py b/erpnext/setup/doctype/workflow_action_detail/__init__.py
similarity index 100%
rename from setup/doctype/workflow_action_detail/__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_engine/__init__.py b/erpnext/setup/doctype/workflow_engine/__init__.py
similarity index 100%
rename from setup/doctype/workflow_engine/__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/__init__.py b/erpnext/setup/doctype/workflow_rule/__init__.py
similarity index 100%
rename from setup/doctype/workflow_rule/__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/doctype/workflow_rule_detail/__init__.py b/erpnext/setup/doctype/workflow_rule_detail/__init__.py
similarity index 100%
rename from setup/doctype/workflow_rule_detail/__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/__init__.py b/erpnext/setup/page/__init__.py
similarity index 100%
rename from setup/page/__init__.py
rename to erpnext/setup/page/__init__.py
diff --git a/setup/page/import_data/__init__.py b/erpnext/setup/page/import_data/__init__.py
similarity index 100%
rename from setup/page/import_data/__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 94%
rename from setup/page/import_data/import_data.html
rename to erpnext/setup/page/import_data/import_data.html
index 5b30dd2..d227c2c 100644
--- a/setup/page/import_data/import_data.html
+++ b/erpnext/setup/page/import_data/import_data.html
@@ -45,7 +45,7 @@
 <td style="border: 1px solid #AAA; padding: 4px;">
 <h3>Import Log:</h3>
 <div id="import_result_area">
-<iframe src="blank1.html" name="ImportIFrame" style="border: 0px; height: 500px; width: 100%"></iframe>
+<iframe name="ImportIFrame" style="border: 0px; height: 500px; width: 100%"></iframe>
 </div>
 </td>
 </tr>
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/people/__init__.py b/erpnext/setup/page/people/__init__.py
similarity index 100%
rename from setup/page/people/__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/permission_engine/__init__.py b/erpnext/setup/page/permission_engine/__init__.py
similarity index 100%
rename from setup/page/permission_engine/__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/__init__.py b/erpnext/setup/page/setup/__init__.py
similarity index 100%
rename from setup/page/setup/__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 98%
rename from setup/page/setup/setup.js
rename to erpnext/setup/page/setup/setup.js
index b29e7ad..7c1245a 100644
--- a/setup/page/setup/setup.js
+++ b/erpnext/setup/page/setup/setup.js
@@ -172,7 +172,8 @@
     ['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']
   ]};
 
   
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/setup_wizard/__init__.py b/erpnext/setup/page/setup_wizard/__init__.py
similarity index 100%
rename from setup/page/setup_wizard/__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/setup/page/webforms/__init__.py b/erpnext/setup/page/webforms/__init__.py
similarity index 100%
rename from setup/page/webforms/__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/erpnext/startup/__init__.py b/erpnext/startup/__init__.py
new file mode 100644
index 0000000..cea033b
--- /dev/null
+++ b/erpnext/startup/__init__.py
@@ -0,0 +1,7 @@
+# add startup propertes
+
+add_in_head = """
+<style>
+
+</style>
+"""
\ No newline at end of file
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 80%
rename from startup/startup.css
rename to erpnext/startup/startup.css
index 67393aa..f028416 100644
--- a/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;
 }
@@ -21,7 +31,7 @@
 }
 
 .module-icons {
-   background: url(images/user/module-icons.png) no-repeat top left;
+   background: url(images/module-icons.png) no-repeat top left;
    width:16px;
    height:16px;
 }
diff --git a/startup/startup.js b/erpnext/startup/startup.js
similarity index 98%
rename from startup/startup.js
rename to erpnext/startup/startup.js
index 942f4ef..a0661ae 100644
--- a/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -552,7 +552,7 @@
 	}
 // ====================================================================*/
 pscript.feature_dict = {
-	'projects': {
+	'fs_projects': {
 		'Bill Of Materials': {'fields':['project_name']},
 		'Delivery Note': {'fields':['project_name']},
 		'Payable Voucher': {'fields':['project_name']},
@@ -564,17 +564,17 @@
 		'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']},
@@ -586,10 +586,10 @@
 		'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']},
@@ -599,7 +599,7 @@
 		'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']},
@@ -613,7 +613,7 @@
 		'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']},
@@ -631,7 +631,7 @@
 		'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']},
@@ -641,7 +641,7 @@
 		'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']},
@@ -650,16 +650,16 @@
 		'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']},
@@ -668,7 +668,7 @@
 		'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']},
@@ -683,14 +683,14 @@
 		'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']}
 	}
 }
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 94%
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
index e1579f9..69c4fe2 100644
--- a/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt
+++ b/erpnext/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-01 15:48:10',
+		'creation': '2010-09-01 15:47:59',
 		'docstatus': 0,
-		'modified': '2010-09-01 14:25:08',
+		'modified': '2011-09-15 15:04:43',
 		'modified_by': 'Administrator',
 		'owner': 'harshada@webnotestech.com'
 	},
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 93%
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
index 54e272a..c34f006 100644
--- 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
@@ -5,8 +5,8 @@
 	{
 		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2011-05-13 12:42:57',
-		'modified_by': 'umair@iwebnotes.com',
+		'modified': '2011-10-07 12:10:26',
+		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
@@ -31,7 +31,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Purchase Order',
 		'module': 'Stock',
 		'name': '__common__',
@@ -41,7 +41,7 @@
 
 	# DocType Mapper, Purchase Order-Purchase Receipt
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Purchase Order-Purchase Receipt'
 	},
 
@@ -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',
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 84%
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
index 6688f2b..61b33ee 100755
--- 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
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-15 08:39:22',
+		'creation': '2010-12-14 17:56:41',
 		'docstatus': 0,
-		'modified': '2010-12-14 20:43:41',
+		'modified': '2011-09-15 15:04:44',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -22,7 +22,6 @@
 	# These values are common for all Field Mapper Detail
 	{
 		'doctype': 'Field Mapper Detail',
-		'map': 'Yes',
 		'name': '__common__',
 		'parent': 'Receivable Voucher-Delivery Note',
 		'parentfield': 'field_mapper_details',
@@ -31,7 +30,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Receivable Voucher',
 		'module': 'Stock',
 		'name': '__common__',
@@ -41,7 +40,7 @@
 
 	# DocType Mapper, Receivable Voucher-Delivery Note
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Receivable Voucher-Delivery Note'
 	},
 
@@ -49,6 +48,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: flt(obj.qty) - flt(obj.delivered_qty)',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'qty'
 	},
@@ -57,6 +57,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'parent',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'prevdoc_docname'
 	},
@@ -65,6 +66,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'parenttype',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'prevdoc_doctype'
 	},
@@ -73,6 +75,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'name',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'prevdoc_detail_docname'
 	},
@@ -81,6 +84,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'amount'
 	},
@@ -89,6 +93,7 @@
 	{
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)',
+		'map': 'Yes',
 		'match_id': 1,
 		'to_field': 'export_amount'
 	},
@@ -96,11 +101,30 @@
 	# Field Mapper Detail
 	{
 		'doctype': 'Field Mapper Detail',
+		'from_field': 'naming_series',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'naming_series'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
 		'from_field': 'customer_address',
+		'map': 'Yes',
 		'match_id': 0,
 		'to_field': 'delivery_address'
 	},
 
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'serial_no',
+		'map': 'Yes',
+		'match_id': 1,
+		'to_field': 'serial_no'
+	},
+
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
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 89%
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
index f93fadf..561019b 100644
--- 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
@@ -5,8 +5,8 @@
 	{
 		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2011-05-16 11:48:19',
-		'modified_by': 'umair@iwebnotes.com',
+		'modified': '2011-09-14 12:36:25',
+		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
@@ -30,7 +30,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Sales Order',
 		'module': 'Stock',
 		'name': '__common__',
@@ -40,7 +40,7 @@
 
 	# DocType Mapper, Sales Order-Delivery Note
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Sales Order-Delivery Note'
 	},
 
@@ -176,15 +176,6 @@
 
 	# Field Mapper Detail
 	{
-		'doctype': 'Field Mapper Detail',
-		'from_field': 'allocated_amount',
-		'map': 'Yes',
-		'match_id': 0,
-		'to_field': 'customer_mobile_no'
-	},
-
-	# Field Mapper Detail
-	{
 		'checking_operator': '=',
 		'doctype': 'Field Mapper Detail',
 		'from_field': 'project_name',
@@ -203,6 +194,42 @@
 		'to_field': 'customer'
 	},
 
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'naming_series',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'naming_series'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'status',
+		'map': 'No',
+		'match_id': 0,
+		'to_field': 'status'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'incentives',
+		'map': 'No',
+		'match_id': 3,
+		'to_field': 'incentives'
+	},
+
+	# Field Mapper Detail
+	{
+		'doctype': 'Field Mapper Detail',
+		'from_field': 'allocated_amount',
+		'map': 'Yes',
+		'match_id': 0,
+		'to_field': 'customer_mobile_no'
+	},
+
 	# Table Mapper Detail
 	{
 		'doctype': 'Table Mapper Detail',
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/erpnext/stock/Module Def/Stock/Stock.txt b/erpnext/stock/Module Def/Stock/Stock.txt
new file mode 100644
index 0000000..4fc8790
--- /dev/null
+++ b/erpnext/stock/Module Def/Stock/Stock.txt
@@ -0,0 +1,232 @@
+# Module Def, Stock
+[
+
+	# These values are common in all dictionaries
+	{
+		'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',
+		'is_hidden': 'No',
+		'module_desc': 'Material Management',
+		'module_icon': 'Stock.gif',
+		'module_label': 'Stock',
+		'module_name': 'Stock',
+		'module_seq': 7,
+		'name': '__common__'
+	},
+
+	# Module Def, Stock
+	{
+		'doctype': u'Module Def',
+		'name': 'Stock'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Item master',
+		'display_name': 'Item',
+		'doc_name': 'Item',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'name\nitem_group\ndescription'
+	},
+
+	# Module Def Item
+	{
+		'description': 'A unique number identifying each entity of an item',
+		'display_name': 'Serial No',
+		'doc_name': 'Serial No',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'item_code\nstatus\nwarehouse\npr_no\ndelivery_note_no\ncustomer'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Record of items added, removed or moved from one warehouse to another.',
+		'display_name': 'Stock Entry',
+		'doc_name': 'Stock Entry',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'transfer_date\npurpose\nfrom_warehouse\nto_warehouse\nremarks'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Record of items delivered to your customers along with the Printed Note',
+		'display_name': 'Delivery Note',
+		'doc_name': 'Delivery Note',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'status\ntransaction_date\ncustomer\nterritory\ngrand_total\nper_billed'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Record of incoming material from your suppliers',
+		'display_name': 'Purchase Receipt',
+		'doc_name': 'Purchase Receipt',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'status\ntransaction_date\nsupplier\ngrand_total\nper_billed'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Details of Installation done after delivery',
+		'display_name': 'Installation Note',
+		'doc_name': 'Installation Note',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Create Quality Inspection Report for any item',
+		'display_name': 'Inspection Report',
+		'doc_name': 'QA Inspection Report',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'inspection_type\nitem_code\nreport_date\npurchase_receipt_no\ndelivery_note_no'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Reconcile your stock by uploading it form an excel file',
+		'display_name': 'Stock Reconciliation',
+		'doc_name': 'Stock Reconciliation',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'reconciliation_date\nreconciliation_time\nremark'
+	},
+
+	# Module Def Item
+	{
+		'description': 'This utility tool will update Stock UOM in Item and will respectively update Actual Qty in Stock Ledger as per Conversion Factor.',
+		'display_name': 'Stock UOM Replace Utility',
+		'doc_name': 'Stock UOM Replace Utility',
+		'doc_type': 'Single DocType',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'description': 'This utility will help in tracking stock for Sales Return and Purchase Return.',
+		'display_name': 'Sales and Purchase Return Wizard',
+		'doc_name': 'Sales and Purchase Return Wizard',
+		'doc_type': 'Single DocType',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'description': 'You can create master template for landed cost wizard',
+		'display_name': 'Landed Cost Master',
+		'doc_name': 'Landed Cost Master',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'icon': 'accept.gif'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Add extra expenses into Purchase Receipt which should be consider for item valuation. The cost will be added proportionately as per purchase receipt value.',
+		'display_name': 'Landed Cost Wizard',
+		'doc_name': 'Landed Cost Wizard',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'icon': 'accept.gif'
+	},
+
+	# Module Def Item
+	{
+		'display_name': 'Stock Ledger',
+		'doc_name': 'Stock Ledger Entry',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'display_name': 'Stock Level',
+		'doc_name': 'Bin',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'display_name': 'Shortage To Indent',
+		'doc_name': 'Item',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Stock Value as per Item and Warehouse',
+		'display_name': 'Stock Report',
+		'doc_name': 'Stock Ledger Entry',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'display_name': 'Stock Aging Report',
+		'doc_name': 'Serial No',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Role
+	{
+		'doctype': 'Module Def Role',
+		'role': 'Material User'
+	},
+
+	# Module Def Role
+	{
+		'doctype': 'Module Def Role',
+		'role': 'Material Master Manager'
+	},
+
+	# Module Def Role
+	{
+		'doctype': 'Module Def Role',
+		'role': 'Material Manager'
+	},
+
+	# Module Def Role
+	{
+		'doctype': 'Module Def Role',
+		'role': 'Quality Manager'
+	}
+]
\ No newline at end of file
diff --git a/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/__init__.py b/erpnext/stock/__init__.py
similarity index 100%
rename from stock/__init__.py
rename to erpnext/stock/__init__.py
diff --git a/stock/doctype/__init__.py b/erpnext/stock/doctype/__init__.py
similarity index 100%
rename from stock/doctype/__init__.py
rename to erpnext/stock/doctype/__init__.py
diff --git a/stock/doctype/batch/__init__.py b/erpnext/stock/doctype/batch/__init__.py
similarity index 100%
rename from stock/doctype/batch/__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/bin/__init__.py b/erpnext/stock/doctype/bin/__init__.py
similarity index 100%
rename from stock/doctype/bin/__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 99%
rename from stock/doctype/bin/bin.py
rename to erpnext/stock/doctype/bin/bin.py
index 65b8686..cf9509a 100644
--- a/stock/doctype/bin/bin.py
+++ b/erpnext/stock/doctype/bin/bin.py
@@ -42,7 +42,8 @@
 		# update valuation for post dated entry
 		if actual_qty:
 			# check actual qty with total number of serial no
-			self.check_qty_with_serial_no()
+			if serial_no:
+				self.check_qty_with_serial_no()
 			
 			prev_sle = self.get_prev_sle(dt, posting_time, sle_id)
 			cqty = flt(prev_sle.get('bin_aqat', 0))
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/__init__.py b/erpnext/stock/doctype/delivery_note/__init__.py
similarity index 100%
rename from stock/doctype/delivery_note/__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 99%
rename from stock/doctype/delivery_note/delivery_note.py
rename to erpnext/stock/doctype/delivery_note/delivery_note.py
index e5acd16..6d48914 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -443,8 +443,8 @@
   # ==========================================
   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
 
   # ==========================================
diff --git a/stock/doctype/delivery_note/delivery_note.txt b/erpnext/stock/doctype/delivery_note/delivery_note.txt
similarity index 94%
rename from stock/doctype/delivery_note/delivery_note.txt
rename to erpnext/stock/doctype/delivery_note/delivery_note.txt
index 1ab19e0..a3897ec 100644
--- a/stock/doctype/delivery_note/delivery_note.txt
+++ b/erpnext/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,
@@ -370,11 +347,40 @@
 
 	# 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': '<b>NOTE :</b>* 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,7 +1071,6 @@
 		'fieldname': 'installation_status',
 		'fieldtype': 'Select',
 		'hidden': 1,
-		'idx': 69,
 		'label': 'Installation Status',
 		'permlevel': 0,
 		'print_hide': 1
@@ -1124,43 +1078,10 @@
 
 	# 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/__init__.py b/erpnext/stock/doctype/delivery_note_detail/__init__.py
similarity index 100%
rename from stock/doctype/delivery_note_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 94%
rename from stock/doctype/delivery_note_detail/delivery_note_detail.txt
rename to erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt
index a8fea20..be7b98f 100644
--- a/stock/doctype/delivery_note_detail/delivery_note_detail.txt
+++ b/erpnext/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',
@@ -89,10 +86,24 @@
 
 	# 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',
@@ -106,25 +117,8 @@
 	{
 		'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',
diff --git a/stock/doctype/delivery_note_packing_detail/__init__.py b/erpnext/stock/doctype/delivery_note_packing_detail/__init__.py
similarity index 100%
rename from stock/doctype/delivery_note_packing_detail/__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/__init__.py b/erpnext/stock/doctype/item/__init__.py
similarity index 100%
rename from stock/doctype/item/__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_customer_detail/__init__.py b/erpnext/stock/doctype/item_customer_detail/__init__.py
similarity index 100%
rename from stock/doctype/item_customer_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_specification_detail/__init__.py b/erpnext/stock/doctype/item_specification_detail/__init__.py
similarity index 100%
rename from stock/doctype/item_specification_detail/__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/item_tax/__init__.py b/erpnext/stock/doctype/item_tax/__init__.py
similarity index 100%
rename from stock/doctype/item_tax/__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_detail/__init__.py b/erpnext/stock/doctype/landed_cost_detail/__init__.py
similarity index 100%
rename from stock/doctype/landed_cost_detail/__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/__init__.py b/erpnext/stock/doctype/landed_cost_master/__init__.py
similarity index 100%
rename from stock/doctype/landed_cost_master/__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_master_detail/__init__.py b/erpnext/stock/doctype/landed_cost_master_detail/__init__.py
similarity index 100%
rename from stock/doctype/landed_cost_master_detail/__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/landed_cost_wizard/__init__.py b/erpnext/stock/doctype/landed_cost_wizard/__init__.py
similarity index 100%
rename from stock/doctype/landed_cost_wizard/__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/lc_pr_detail/__init__.py b/erpnext/stock/doctype/lc_pr_detail/__init__.py
similarity index 100%
rename from stock/doctype/lc_pr_detail/__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/__init__.py b/erpnext/stock/doctype/purchase_receipt/__init__.py
similarity index 100%
rename from stock/doctype/purchase_receipt/__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 97%
rename from stock/doctype/purchase_receipt/purchase_receipt.js
rename to erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index e060e3c..f6f4984 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -82,10 +82,10 @@
 // -----------------
 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);
 }
 
 
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/purchase_receipt_detail/__init__.py b/erpnext/stock/doctype/purchase_receipt_detail/__init__.py
similarity index 100%
rename from stock/doctype/purchase_receipt_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/ref_rate_detail/__init__.py b/erpnext/stock/doctype/ref_rate_detail/__init__.py
similarity index 100%
rename from stock/doctype/ref_rate_detail/__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_and_purchase_return_wizard/__init__.py b/erpnext/stock/doctype/sales_and_purchase_return_wizard/__init__.py
similarity index 100%
rename from stock/doctype/sales_and_purchase_return_wizard/__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/__init__.py b/erpnext/stock/doctype/sales_bom/__init__.py
similarity index 100%
rename from stock/doctype/sales_bom/__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/sales_bom_detail/__init__.py b/erpnext/stock/doctype/sales_bom_detail/__init__.py
similarity index 100%
rename from stock/doctype/sales_bom_detail/__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/serial_no/__init__.py b/erpnext/stock/doctype/serial_no/__init__.py
similarity index 100%
rename from stock/doctype/serial_no/__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 92%
rename from stock/doctype/serial_no/serial_no.txt
rename to erpnext/stock/doctype/serial_no/serial_no.txt
index 9aa6119..277a2ec 100644
--- a/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/stock/doctype/stock_entry/__init__.py b/erpnext/stock/doctype/stock_entry/__init__.py
similarity index 100%
rename from stock/doctype/stock_entry/__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_entry_detail/__init__.py b/erpnext/stock/doctype/stock_entry_detail/__init__.py
similarity index 100%
rename from stock/doctype/stock_entry_detail/__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/__init__.py b/erpnext/stock/doctype/stock_ledger/__init__.py
similarity index 100%
rename from stock/doctype/stock_ledger/__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 91%
rename from stock/doctype/stock_ledger/stock_ledger.py
rename to erpnext/stock/doctype/stock_ledger/stock_ledger.py
index dca9754..5165cc9 100644
--- a/stock/doctype/stock_ledger/stock_ledger.py
+++ b/erpnext/stock/doctype/stock_ledger/stock_ledger.py
@@ -51,7 +51,8 @@
 	# -----------------------------
 	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 @@
 						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 <b>%s</b>" % 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)
 
 
 	# ------------------------------------
@@ -133,10 +134,12 @@
 		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)
+				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)
 
 
 	# -------------------------------
@@ -182,7 +185,7 @@
 			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))
 
 
 	# ---------------------
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_ledger_entry/__init__.py b/erpnext/stock/doctype/stock_ledger_entry/__init__.py
similarity index 100%
rename from stock/doctype/stock_ledger_entry/__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_reconciliation/__init__.py b/erpnext/stock/doctype/stock_reconciliation/__init__.py
similarity index 100%
rename from stock/doctype/stock_reconciliation/__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/stock_uom_replace_utility/__init__.py b/erpnext/stock/doctype/stock_uom_replace_utility/__init__.py
similarity index 100%
rename from stock/doctype/stock_uom_replace_utility/__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/uom_conversion_detail/__init__.py b/erpnext/stock/doctype/uom_conversion_detail/__init__.py
similarity index 100%
rename from stock/doctype/uom_conversion_detail/__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/valuation_control/__init__.py b/erpnext/stock/doctype/valuation_control/__init__.py
similarity index 100%
rename from stock/doctype/valuation_control/__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/doctype/warehouse/__init__.py b/erpnext/stock/doctype/warehouse/__init__.py
similarity index 100%
rename from stock/doctype/warehouse/__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 85%
rename from stock/doctype/warehouse/warehouse.txt
rename to erpnext/stock/doctype/warehouse/warehouse.txt
index 1363eef..da29dfa 100644
--- a/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
diff --git a/stock/page/__init__.py b/erpnext/stock/page/__init__.py
similarity index 100%
rename from stock/page/__init__.py
rename to erpnext/stock/page/__init__.py
diff --git a/stock/search_criteria/__init__.py b/erpnext/stock/search_criteria/__init__.py
similarity index 100%
rename from stock/search_criteria/__init__.py
rename to erpnext/stock/search_criteria/__init__.py
diff --git a/stock/search_criteria/itemwise_price_list/__init__.py b/erpnext/stock/search_criteria/itemwise_price_list/__init__.py
similarity index 100%
rename from stock/search_criteria/itemwise_price_list/__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/shortage_to_indent/__init__.py b/erpnext/stock/search_criteria/shortage_to_indent/__init__.py
similarity index 100%
rename from stock/search_criteria/shortage_to_indent/__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_aging_report/__init__.py b/erpnext/stock/search_criteria/stock_aging_report/__init__.py
similarity index 100%
rename from stock/search_criteria/stock_aging_report/__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_ledger/__init__.py b/erpnext/stock/search_criteria/stock_ledger/__init__.py
similarity index 100%
rename from stock/search_criteria/stock_ledger/__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_level/__init__.py b/erpnext/stock/search_criteria/stock_level/__init__.py
similarity index 100%
rename from stock/search_criteria/stock_level/__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/stock/search_criteria/stock_report/__init__.py b/erpnext/stock/search_criteria/stock_report/__init__.py
similarity index 100%
rename from stock/search_criteria/stock_report/__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 96%
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
index 75244de..55060ea 100644
--- 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
@@ -5,8 +5,8 @@
 	{
 		'creation': '2010-08-08 17:09:34',
 		'docstatus': 0,
-		'modified': '2011-05-18 13:37:43',
-		'modified_by': 'umair@iwebnotes.com',
+		'modified': '2011-09-15 15:04:41',
+		'modified_by': 'Administrator',
 		'owner': 'ashwini@webnotestech.com'
 	},
 
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 96%
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
index e56c4bd..ccd0e60 100644
--- 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
@@ -5,8 +5,8 @@
 	{
 		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2011-05-18 11:05:26',
-		'modified_by': 'umair@iwebnotes.com',
+		'modified': '2011-09-15 15:04:44',
+		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
 
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 96%
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
index 26a48f8..e4bd45b 100644
--- 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
@@ -5,8 +5,8 @@
 	{
 		'creation': '2010-08-08 17:09:36',
 		'docstatus': 0,
-		'modified': '2011-05-18 13:35:55',
-		'modified_by': 'umair@iwebnotes.com',
+		'modified': '2011-09-15 15:04:45',
+		'modified_by': 'Administrator',
 		'owner': 'ashwini@webnotestech.com'
 	},
 
diff --git a/erpnext/support/Module Def/Support/Support.txt b/erpnext/support/Module Def/Support/Support.txt
new file mode 100644
index 0000000..9c66c3d
--- /dev/null
+++ b/erpnext/support/Module Def/Support/Support.txt
@@ -0,0 +1,149 @@
+# Module Def, Support
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2011-07-01 17:42:15',
+		'docstatus': 0,
+		'modified': '2011-10-10 16:59:49',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all Module Def Role
+	{
+		'doctype': 'Module Def Role',
+		'name': '__common__',
+		'parent': 'Support',
+		'parentfield': 'roles',
+		'parenttype': 'Module Def'
+	},
+
+	# These values are common for all Module Def Item
+	{
+		'doctype': 'Module Def Item',
+		'name': '__common__',
+		'parent': 'Support',
+		'parentfield': 'items',
+		'parenttype': 'Module Def'
+	},
+
+	# These values are common for all Module Def
+	{
+		'disabled': 'No',
+		'doctype': u'Module Def',
+		'doctype_list': 'DocType Label, Ticket',
+		'is_hidden': 'No',
+		'module_desc': 'Manage maintenance quotes, orders, schedule etc.',
+		'module_icon': 'Maintenance.gif',
+		'module_label': 'Support',
+		'module_name': 'Support',
+		'module_seq': 8,
+		'name': '__common__'
+	},
+
+	# Module Def, Support
+	{
+		'doctype': u'Module Def',
+		'name': 'Support'
+	},
+
+	# Module Def Item
+	{
+		'description': "Database of Support Ticket's raised by Customers",
+		'display_name': 'Support Ticket',
+		'doc_name': 'Support Ticket',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'status\nopening_date\ncustomer\nallocated_to'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Create schedule based on maintenance order',
+		'display_name': 'Maintenance Schedule',
+		'doc_name': 'Maintenance Schedule',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'status\ntransaction_date\ncustomer\nsales_order_no'
+	},
+
+	# Module Def Item
+	{
+		'description': 'Database of issues raised your Customers',
+		'display_name': 'Customer Issue',
+		'doc_name': 'Customer Issue',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'status\ncomplaint_date\ncustomer\nallocated_to\nallocated_on'
+	},
+
+	# Module Def Item
+	{
+		'display_name': 'Maintenance Visit',
+		'doc_name': 'Maintenance Visit',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'fields': 'status\nmntc_date\ncustomer\nmaintenance_type\ncompletion_status'
+	},
+
+	# Module Def Item
+	{
+		'description': 'List of all scheduled mainteance. You can filter by sales person, date, serial no etc. ',
+		'display_name': 'Maintenance Schedule Details',
+		'doc_name': 'Maintenance Schedule Detail',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'description': 'List of all issues raised by customer',
+		'display_name': 'Customer Issues',
+		'doc_name': 'Customer Issue',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'display_name': 'Warranty/AMC Expiry Details',
+		'doc_name': 'Serial No',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'display_name': 'Warranty/AMC Summary',
+		'doc_name': 'Serial No',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'display_name': 'Maintenance Orderwise Pending Amount To Bill',
+		'doc_name': 'Sales Order Detail',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Role
+	{
+		'doctype': 'Module Def Role',
+		'role': 'Administrator'
+	},
+
+	# Module Def Role
+	{
+		'doctype': 'Module Def Role',
+		'role': 'Maintenance User'
+	},
+
+	# Module Def Role
+	{
+		'doctype': 'Module Def Role',
+		'role': 'Maintenance Manager'
+	}
+]
\ No newline at end of file
diff --git a/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/__init__.py b/erpnext/support/__init__.py
similarity index 100%
rename from support/__init__.py
rename to erpnext/support/__init__.py
diff --git a/support/doctype/__init__.py b/erpnext/support/doctype/__init__.py
similarity index 100%
rename from support/doctype/__init__.py
rename to erpnext/support/doctype/__init__.py
diff --git a/support/doctype/customer_issue/__init__.py b/erpnext/support/doctype/customer_issue/__init__.py
similarity index 100%
rename from support/doctype/customer_issue/__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/item_maintenance_detail/__init__.py b/erpnext/support/doctype/item_maintenance_detail/__init__.py
similarity index 100%
rename from support/doctype/item_maintenance_detail/__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/__init__.py b/erpnext/support/doctype/maintenance_schedule/__init__.py
similarity index 100%
rename from support/doctype/maintenance_schedule/__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_schedule_detail/__init__.py b/erpnext/support/doctype/maintenance_schedule_detail/__init__.py
similarity index 100%
rename from support/doctype/maintenance_schedule_detail/__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/__init__.py b/erpnext/support/doctype/maintenance_visit/__init__.py
similarity index 100%
rename from support/doctype/maintenance_visit/__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/maintenance_visit_detail/__init__.py b/erpnext/support/doctype/maintenance_visit_detail/__init__.py
similarity index 100%
rename from support/doctype/maintenance_visit_detail/__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/doctype/support_ticket_response/__init__.py b/erpnext/support/doctype/support_ticket_response/__init__.py
similarity index 100%
rename from support/doctype/support_ticket_response/__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/__init__.py b/erpnext/support/search_criteria/__init__.py
similarity index 100%
rename from support/search_criteria/__init__.py
rename to erpnext/support/search_criteria/__init__.py
diff --git a/support/search_criteria/amc_summary/__init__.py b/erpnext/support/search_criteria/amc_summary/__init__.py
similarity index 100%
rename from support/search_criteria/amc_summary/__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/customer_issues/__init__.py b/erpnext/support/search_criteria/customer_issues/__init__.py
similarity index 100%
rename from support/search_criteria/customer_issues/__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_orderwise_pending_amount_to_bill/__init__.py b/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/__init__.py
similarity index 100%
rename from support/search_criteria/maintenance_orderwise_pending_amount_to_bill/__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/maintenance_schedule_details/__init__.py b/erpnext/support/search_criteria/maintenance_schedule_details/__init__.py
similarity index 100%
rename from support/search_criteria/maintenance_schedule_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_expiry_details/__init__.py b/erpnext/support/search_criteria/warranty_amc_expiry_details/__init__.py
similarity index 100%
rename from support/search_criteria/warranty_amc_expiry_details/__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/support/search_criteria/warranty_amc_summary/__init__.py b/erpnext/support/search_criteria/warranty_amc_summary/__init__.py
similarity index 100%
rename from support/search_criteria/warranty_amc_summary/__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/__init__.py b/erpnext/utilities/__init__.py
similarity index 100%
rename from utilities/__init__.py
rename to erpnext/utilities/__init__.py
diff --git a/utilities/doctype/__init__.py b/erpnext/utilities/doctype/__init__.py
similarity index 100%
rename from utilities/doctype/__init__.py
rename to erpnext/utilities/doctype/__init__.py
diff --git a/utilities/doctype/activity_dashboard_control/__init__.py b/erpnext/utilities/doctype/activity_dashboard_control/__init__.py
similarity index 100%
rename from utilities/doctype/activity_dashboard_control/__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/address/__init__.py b/erpnext/utilities/doctype/address/__init__.py
similarity index 100%
rename from utilities/doctype/address/__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/bulk_rename_tool/__init__.py b/erpnext/utilities/doctype/bulk_rename_tool/__init__.py
similarity index 100%
rename from utilities/doctype/bulk_rename_tool/__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/__init__.py b/erpnext/utilities/doctype/contact/__init__.py
similarity index 100%
rename from utilities/doctype/contact/__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/contact_detail/__init__.py b/erpnext/utilities/doctype/contact_detail/__init__.py
similarity index 100%
rename from utilities/doctype/contact_detail/__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_label/__init__.py b/erpnext/utilities/doctype/doctype_label/__init__.py
similarity index 100%
rename from utilities/doctype/doctype_label/__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/doctype_property_setter/__init__.py b/erpnext/utilities/doctype/doctype_property_setter/__init__.py
similarity index 100%
rename from utilities/doctype/doctype_property_setter/__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/file_browser_control/__init__.py b/erpnext/utilities/doctype/file_browser_control/__init__.py
similarity index 100%
rename from utilities/doctype/file_browser_control/__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/__init__.py b/erpnext/utilities/doctype/gl_mapper/__init__.py
similarity index 100%
rename from utilities/doctype/gl_mapper/__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/gl_mapper_detail/__init__.py b/erpnext/utilities/doctype/gl_mapper_detail/__init__.py
similarity index 100%
rename from utilities/doctype/gl_mapper_detail/__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/menu_control/__init__.py b/erpnext/utilities/doctype/menu_control/__init__.py
similarity index 100%
rename from utilities/doctype/menu_control/__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/patch_util/__init__.py b/erpnext/utilities/doctype/patch_util/__init__.py
similarity index 100%
rename from utilities/doctype/patch_util/__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/production_tips_common/__init__.py b/erpnext/utilities/doctype/production_tips_common/__init__.py
similarity index 100%
rename from utilities/doctype/production_tips_common/__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/profile_control/__init__.py b/erpnext/utilities/doctype/profile_control/__init__.py
similarity index 100%
rename from utilities/doctype/profile_control/__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/receiver_detail/__init__.py b/erpnext/utilities/doctype/receiver_detail/__init__.py
similarity index 100%
rename from utilities/doctype/receiver_detail/__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/rename_tool/__init__.py b/erpnext/utilities/doctype/rename_tool/__init__.py
similarity index 100%
rename from utilities/doctype/rename_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/reposting_tool/__init__.py b/erpnext/utilities/doctype/reposting_tool/__init__.py
similarity index 100%
rename from utilities/doctype/reposting_tool/__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_center/__init__.py b/erpnext/utilities/doctype/sms_center/__init__.py
similarity index 100%
rename from utilities/doctype/sms_center/__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_control/__init__.py b/erpnext/utilities/doctype/sms_control/__init__.py
similarity index 100%
rename from utilities/doctype/sms_control/__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/sms_log/__init__.py b/erpnext/utilities/doctype/sms_log/__init__.py
similarity index 100%
rename from utilities/doctype/sms_log/__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/sso_control/__init__.py b/erpnext/utilities/doctype/sso_control/__init__.py
similarity index 100%
rename from utilities/doctype/sso_control/__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/todo_item/__init__.py b/erpnext/utilities/doctype/todo_item/__init__.py
similarity index 100%
rename from utilities/doctype/todo_item/__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/trash_control/__init__.py b/erpnext/utilities/doctype/trash_control/__init__.py
similarity index 100%
rename from utilities/doctype/trash_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/doctype/wn_erp_client_control/__init__.py b/erpnext/utilities/doctype/wn_erp_client_control/__init__.py
similarity index 100%
rename from utilities/doctype/wn_erp_client_control/__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/__init__.py b/erpnext/utilities/page/__init__.py
similarity index 100%
rename from utilities/page/__init__.py
rename to erpnext/utilities/page/__init__.py
diff --git a/utilities/page/file_browser/__init__.py b/erpnext/utilities/page/file_browser/__init__.py
similarity index 100%
rename from utilities/page/file_browser/__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/messages/__init__.py b/erpnext/utilities/page/messages/__init__.py
similarity index 100%
rename from utilities/page/messages/__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 99%
rename from utilities/page/messages/messages.js
rename to erpnext/utilities/page/messages/messages.js
index 258961d..43b4bd7 100644
--- a/utilities/page/messages/messages.js
+++ b/erpnext/utilities/page/messages/messages.js
@@ -529,6 +529,8 @@
   
   // ---- add auto suggest ---- 
   var opts = { script: '', json: true, maxresults: 10, timeout: 10000, delay:250, maxentries:500, cache:false};
+
+  wn.require('lib/js/legacy/widgets/autosuggest.js');
   
   var as = new AutoSuggest(me.msg_parts.inputs['To'], opts);
   as.custom_select = function(txt, sel) {
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/trash/__init__.py b/erpnext/utilities/page/trash/__init__.py
similarity index 100%
rename from utilities/page/trash/__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/utilities/page/wip_monitor/__init__.py b/erpnext/utilities/page/wip_monitor/__init__.py
similarity index 100%
rename from utilities/page/wip_monitor/__init__.py
rename to erpnext/utilities/page/wip_monitor/__init__.py
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/favicon.ico b/favicon.ico
index 8b2106b..794eaaf 100644
--- a/favicon.ico
+++ b/favicon.ico
Binary files differ
diff --git a/hr/doctype/appraisal/appraisal.js b/hr/doctype/appraisal/appraisal.js
deleted file mode 100644
index ed53141..0000000
--- a/hr/doctype/appraisal/appraisal.js
+++ /dev/null
@@ -1,145 +0,0 @@
-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);
-}
-
-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');
-}
-
-
-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; i<val.length; i++){
-    set_multiple('Appraisal Detail', val[i].name, {'target_achieved':'', 'score':'', 'scored_earned':''}, 'appraisal_details');
-  }
-  doc.total_score = '';
-  refresh_field('appraisal_details');
-  refresh_field('total_score');
-}
-
-cur_frm.cscript.employee = function(doc,cdt,cdn){
-  if(doc.employee){
-    $c_obj(make_doclist(doc.doctype, doc.name),'set_approver','', function(r,rt){
-      if(r.message){
-        doc.employee_name = r.message['emp_nm'];
-        get_field(doc.doctype, 'kra_approver' , doc.name).options = r.message['app_lst'];        
-        refresh_many(['kra_approver','employee_name']);
-      }    
-    });
-  }
-}
-
-cur_frm.cscript['Calculate Total Score'] = function(doc,cdt,cdn){
-  //get_server_fields('calculate_total','','',doc,cdt,cdn,1);
-  var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype);
-  var total =0;
-  for(var i = 0; i<val.length; i++){
-    total = flt(total)+flt(val[i].score_earned)
-  }
-  doc.total_score = flt(total)
-  refresh_field('total_score')
-}
-
-/*cur_frm.cscript['Declare Completed'] = function(doc,cdt,cdn){
-  $c_obj(make_doclist(doc.doctype, doc.name),'declare_completed','', function(r,rt){
-    if(r.message){
-      refresh_field('Status');
-      cur_frm.cscript.refresh(doc,cdt,cdn);
-    }
-  });
-}*/
-
-cur_frm.cscript['Declare Completed'] = function(doc,cdt,cdn){
-  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', '<div class = "comment">You wont be able to do any changes after declaring this Appraisal as completed. Are you sure, you want to declare it as completed ?</div>'],
-      ['HTML', 'Response', '<div class = "comment" id="declare_completed_dialog_response"></div>'],
-      ['HTML', 'Declare Completed', '<div></div>']
-    ]);
-    
-    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);
-}
-
-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<val.length; i++){
-    total = flt(total)+flt(val[i].score_earned);
-  }
-  doc.total_score = flt(total);
-  refresh_field('total_score');
-}
diff --git a/hr/doctype/appraisal/appraisal.py b/hr/doctype/appraisal/appraisal.py
deleted file mode 100644
index e13f9f3..0000000
--- a/hr/doctype/appraisal/appraisal.py
+++ /dev/null
@@ -1,147 +0,0 @@
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self, doc, doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-  
-  def get_employee_name(self):
-    emp_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')
\ No newline at end of file
diff --git a/module-icons.png b/images/module-icons.png
similarity index 100%
rename from module-icons.png
rename to images/module-icons.png
Binary files differ
diff --git a/index.cgi b/index.cgi
new file mode 100755
index 0000000..3d61c56
--- /dev/null
+++ b/index.cgi
@@ -0,0 +1,41 @@
+#!/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
+
+webnotes.form = cgi.FieldStorage()
+
+# make the form_dict
+for key in webnotes.form.keys():
+	webnotes.form_dict[key] = webnotes.form.getvalue(key)
+
+# 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
new file mode 100644
index 0000000..64eef0f
--- /dev/null
+++ b/index.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<head>
+	<meta charset="utf-8">
+	<title>ERPNext</title>
+	<meta name="author" content="">
+	<script type="text/javascript">window._version_number="57"
+
+wn={}
+wn.provide=function(namespace){var nsl=namespace.split('.');var l=nsl.length;var parent=window;for(var i=0;i<l;i++){var n=nsl[i];if(!parent[n]){parent[n]={}}
+parent=parent[n];}}
+wn.provide('wn.settings');wn.provide('wn.ui');wn.xmlhttp={request:function(){if(window.XMLHttpRequest)
+return new XMLHttpRequest();else if(window.ActiveXObject)
+return new ActiveXObject("MsXml2.XmlHttp");},complete:function(req,callback,url){if(req.status==200||req.status==304){callback(req.responseText);}else{alert(url+' request error: '+req.statusText+' ('+req.status+')');}},get:function(url,callback,args,async){if(async===null)async=true;var req=wn.xmlhttp.request();req.onreadystatechange=function(){if(req.readyState==4){wn.xmlhttp.complete(req,callback,url)}}
+var sep=((args&&args.indexOf('?'))==-1)?'?':'&';var u=args?(url+sep+args):url;req.open('GET',u,async);req.send(null);if(!async){wn.xmlhttp.complete(req,callback,url)}}}
+wn.versions={is_latest:function(){if(window._version_number==(localStorage?localStorage['_version_number']:null)){return true;}
+return false;},get_diff:function(){if(!localStorage)return;wn.xmlhttp.get('index.cgi',function(txt){r=JSON.parse(txt);if(r.exc){alert(r.exc);}
+wn.versions.set(r.message);},'cmd=get_diff&version_number='+localStorage['_version_number'],false);},set:function(diff){for(var i=0;i<diff.length;i++){localStorage.removeItem(diff[i]);}
+localStorage['_version_number']=_version_number;},check:function(){if(localStorage&&!localStorage['_version_number']){localStorage['_version_number']=_version_number;return;}
+if(!wn.versions.is_latest())wn.versions.get_diff();}}
+wn.assets={executed_:{},exists:function(src){if('localStorage'in window&&localStorage.getItem(src))
+return true},add:function(src,txt){if('localStorage'in window){localStorage.setItem(src,txt);}},get:function(src){return localStorage.getItem(src);},extn:function(src){if(src.indexOf('?')!=-1){src=src.split('?').slice(-1)[0];}
+return src.split('.').slice(-1)[0];},html_src:function(src){if(src.indexOf('/')!=-1){var t=src.split('/').slice(0,-1);t.push('src');t=t.join('/')+'/'+a.split('/').slice(-1)[0];}else{var t='src/'+src;}
+return t;},load:function(src){var t=wn.assets.extn(src)=='html'?wn.assets.html_src(src):src;wn.xmlhttp.get(t,function(txt){wn.assets.add(src,txt);},'q='&Math.floor(Math.random()*1000),false)},execute:function(src){if(!wn.assets.exists(src)){wn.assets.load(src);}
+var type=wn.assets.extn(src);if(wn.assets.handler[type]){wn.assets.handler[type](wn.assets.get(src),src);wn.assets.executed_[src]=1;}},handler:{js:function(txt,src){wn.dom.eval(txt);},css:function(txt,src){var se=document.createElement('style');se.type="text/css";if(se.styleSheet){se.styleSheet.cssText=txt;}else{se.appendChild(document.createTextNode(txt));}
+document.getElementsByTagName('head')[0].appendChild(se);},html:function(txt,src){var page=wn.dom.add($('.outer .inner').get(0),'div','content',null,txt);page.setAttribute("_src",src);},cgi:function(txt,src){wn.dom.eval(txt)}}}
+wn.require=function(items){if(typeof items==="string"){items=[items];}
+var l=items.length;for(var i=0;i<l;i++){var src=items[i];if(!(src in wn.assets.executed_)){wn.assets.execute(src);}}}
+wn.provide('wn.dom');wn.dom.by_id=function(id){return document.getElementById(id);}
+wn.dom.eval=function(txt){var el=document.createElement('script');el.appendChild(document.createTextNode(txt));document.getElementsByTagName('head')[0].appendChild(el);}
+wn.dom.add=function(parent,newtag,className,cs,innerHTML,onclick){if(parent&&parent.substr)parent=wn.dom.by_id(parent);var c=document.createElement(newtag);if(parent)
+parent.appendChild(c);if(className){if(newtag.toLowerCase()=='img')
+c.src=className
+else
+c.className=className;}
+if(cs)wn.dom.css(c,cs);if(innerHTML)c.innerHTML=innerHTML;if(onclick)c.onclick=onclick;return c;}
+wn.dom.css=function(ele,s){if(ele&&s){for(var i in s)ele.style[i]=s[i];};return ele;}
+wn.dom.hide=function(ele){ele.style.display='none';}
+wn.dom.show=function(ele,value){if(!value)value='block';ele.style.display=value;}
+wn.page={set:function(src){var new_selection=$('.inner div.content[_src="'+src+'"]');if(!new_selection.length){wn.assets.execute(src);new_selection=$('.inner div.content[_src="'+src+'"]');}
+$('.inner .current_page').removeClass('current_page');new_selection.addClass('current_page');var title=$('nav ul li a[href*="'+src+'"]').attr('title')||'No Title'
+state=window.location.hash;if(state!=src){window.location.hash=state;}
+else{document.title=title;}}}
+var JSON;if(!JSON){JSON={};}
+(function(){"use strict";function f(n){return n<10?'0'+n:n;}
+if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+'-'+
+f(this.getUTCMonth()+1)+'-'+
+f(this.getUTCDate())+'T'+
+f(this.getUTCHours())+':'+
+f(this.getUTCMinutes())+':'+
+f(this.getUTCSeconds())+'Z':null;};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}
+var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}
+function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}
+if(typeof rep==='function'){value=rep.call(holder,key,value);}
+switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}
+gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null';}
+v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v;}
+if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){if(typeof rep[i]==='string'){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}else{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}
+v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v;}}
+if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' ';}}else if(typeof space==='string'){indent=space;}
+rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}
+return str('',{'':value});};}
+if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}
+return reviver.call(holder,key,value);}
+text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+
+('0000'+a.charCodeAt(0).toString(16)).slice(-4);});}
+if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}
+throw new SyntaxError('JSON.parse');};}}());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));}});</script>
+</head>
+<body>
+	<div id="startup_div" style="padding: 8px; font-size: 14px;"></div>
+
+	<!-- Main Starts -->
+	<div id="body_div"> 
+
+		<!--static (no script) content-->
+		<div class="no_script">
+			
+		</div>
+	</div>
+	<script>wn.require('js/app.js');</script>
+	<div id="dialog_back"></div>
+</body>
\ No newline at end of file
diff --git a/js/app.js b/js/app.js
new file mode 100644
index 0000000..aeb10a1
--- /dev/null
+++ b/js/app.js
@@ -0,0 +1,21 @@
+wn.settings.no_history = true;
+
+wn.require('lib/js/lib/jquery.min.js');
+wn.require('lib/js/legacy/tiny_mce_33/jquery.tinymce.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(40);
+
+wn.require('lib/css/legacy/default.css');
+wn.sb.set_value(70);
+
+$(document).bind('ready', function() {
+	startup();
+});
\ No newline at end of file
diff --git a/patches/delivery_billing_status_patch.py b/patches/delivery_billing_status_patch.py
deleted file mode 100644
index 2f95013..0000000
--- a/patches/delivery_billing_status_patch.py
+++ /dev/null
@@ -1,43 +0,0 @@
-import webnotes
-sql = webnotes.conn.sql
-
-# update SO
-#---------------
-def update_percent():
-	so = sql("select name from 	`tabSales Order` where docstatus = 1")
-	for d in so:
-		sql("""
-			update 
-				`tabSales Order` 
-			set 
-				per_delivered = (select sum(if(qty > ifnull(delivered_qty, 0), delivered_qty, qty))/sum(qty)*100 from `tabSales Order Detail` where parent='%s'), 
-				per_billed = (select sum(if(qty > ifnull(billed_qty, 0), billed_qty, qty))/sum(qty)*100 from `tabSales Order Detail` where parent='%s') 
-			where 
-				name='%s'""" % (d[0], d[0], d[0]))
-
-	# update DN	
-	# ---------
-	dn = sql("select name from 	`tabDelivery Note` where docstatus = 1")
-	for d in dn:
-		sql("""
-			update 
-				`tabDelivery Note` 
-			set 
-				per_billed = (select sum(if(qty > ifnull(billed_qty, 0), billed_qty, qty))/sum(qty)*100 from `tabDelivery Note Detail` where parent='%s') 
-			where 
-				name='%s'""" % (d[0], d[0]))
-	
-
-# update delivery/billing status 
-#-------------------------------
-def update_status():
-	sql("""update `tabSales Order` set delivery_status = if(ifnull(per_delivered,0) < 0.001, 'Not Delivered', 
-			if(per_delivered >= 99.99, 'Fully Delivered', 'Partly Delivered'))""")
-	sql("""update `tabSales Order` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', 
-			if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""")
-	sql("""update `tabDelivery Note` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', 
-			if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""")
-			
-def run_patch():
-	update_percent()
-	update_status()
diff --git a/setup/doctype/authorization_control/authorization_control.py b/setup/doctype/authorization_control/authorization_control.py
deleted file mode 100644
index 4036ecf..0000000
--- a/setup/doctype/authorization_control/authorization_control.py
+++ /dev/null
@@ -1,196 +0,0 @@
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-from utilities.transaction_base import TransactionBase
-
-class DocType(TransactionBase):
-  def __init__(self, d, dl):
-    self.doc, self.doclist = d, dl
-
-
-  # 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 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))
-
-    
-    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
diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py
deleted file mode 100644
index 783a158..0000000
--- a/setup/doctype/company/company.py
+++ /dev/null
@@ -1,251 +0,0 @@
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-	def __init__(self,d,dl):
-		self.doc, self.doclist = d,dl
-	
-	# Create default accounts
-	# ---------------------------------------------------
-	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,'']
-									]
-		
-		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,'']
-										 ]
-		# load common account heads
-		for d in acc_list_common:
-			self.add_acc(d)
-
-		country = sql("select value from tabSingles where field = 'country' and doctype = 'Control Panel'")
-		country = country and cstr(country[0][0]) or ''
-
-		# load taxes (only for India)
-		if country == 'India':
-			for d in acc_list_india:
-				self.add_acc(d)
-
-	# Create account
-	# ---------------------------------------------------
-	def add_acc(self,lst):
-		ac = Document('Account')
-		for d in self.fld_dict.keys():
-			ac.fields[d] = (d == 'parent_account' and lst[self.fld_dict[d]]) and lst[self.fld_dict[d]] +' - '+ self.doc.abbr or lst[self.fld_dict[d]]
-		ac.old_parent = ''
-		ac_obj = get_obj(doc=ac)
-		ac_obj.validate()
-		ac_obj.doc.save(1)
-		ac_obj.on_update()
-		sql("commit")
-		sql("start transaction")
-
-
-	# Set letter head
-	# ---------------------------------------------------
-	def set_letter_head(self):
-		if not self.doc.letter_head:
-			if self.doc.address:
-				header = """ 
-<div><h3> %(comp)s </h3> %(add)s </div>
-
-			""" % {'comp':self.doc.name,
-				 'add':self.doc.address.replace("\n",'<br>')}
-			 
-				self.doc.letter_head = header
-
-	# Set default AR and AP group
-	# ---------------------------------------------------
-	def set_default_groups(self):
-		if not self.doc.receivables_group:
-			set(self.doc, 'receivables_group', 'Accounts Receivable - '+self.doc.abbr)
-		if not self.doc.payables_group:
-			set(self.doc, 'payables_group', 'Accounts Payable - '+self.doc.abbr)
-			
-			
-	# Create default cost center
-	# ---------------------------------------------------
-	def create_default_cost_center(self):
-		glc = get_obj('GL Control')
-		cc_list = [{'cost_center_name':'Root','company_name':self.doc.name,'company_abbr':self.doc.abbr,'group_or_ledger':'Group','parent_cost_center':'','old_parent':''}, {'cost_center_name':'Default CC Ledger','company_name':self.doc.name,'company_abbr':self.doc.abbr,'group_or_ledger':'Ledger','parent_cost_center':'Root - ' + self.doc.abbr,'old_parent':''}]
-		for c in cc_list:
-			glc.add_cc(str(c))
-			
-			
-	# On update
-	# ---------------------------------------------------
-	def on_update(self):
-		self.set_letter_head()
-		ac = sql("select name from tabAccount where account_name='Income' and company=%s", self.doc.name)
-		if not ac:
-			self.create_default_accounts()
-		self.set_default_groups()
-		cc = sql("select name from `tabCost Center` where cost_center_name = 'Root' and company_name = '%s'"%(self.doc.name))
-		if not cc:
-			self.create_default_cost_center()
-
-	# Trash accounts and cost centers for this company
-	# ---------------------------------------------------
-	#def on_trash1(self):
-	#	acc = sql("select name from tabAccount where company = '%s' and docstatus != 2 order by lft desc, rgt desc limit 2" % self.doc.name, debug=1)
-	#	for each in acc:
-	#		get_obj('Account', each[0]).on_trash()
-			
-	#	cc = sql("select name from `tabCost Center` where company_name = '%s' and docstatus != 2" % self.doc.name)
-	#	for each in cc:
-	#		get_obj('Cost Center', each[0]).on_trash()
-		
-	#	msgprint("Company trashed. All the accounts and cost centers related to this company also trashed. You can restore it anytime from Setup -> Manage Trash")
-		
-	def on_trash(self):
-		rec = sql("SELECT sum(ab.opening), sum(ab.balance), sum(ab.debit), sum(ab.credit) FROM `tabAccount Balance` ab, `tabAccount` a WHERE ab.account = a.name and a.company = %s", self.doc.name)
-		if rec[0][0] == 0 and rec[0][1] == 0 and rec[0][2] == 0 and rec[0][3] == 0:
-			#delete tabAccount Balance
-			sql("delete ab.* from `tabAccount Balance` ab, `tabAccount` a where ab.account = a.name and a.company = %s", self.doc.name)
-			#delete tabAccount
-			sql("delete from `tabAccount` where company = %s order by lft desc, rgt desc", self.doc.name)
-			
-			#delete cost center child table - budget detail
-			sql("delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc where bd.parent = cc.name and cc.company_name = %s", self.doc.name)
-			#delete cost center
-			sql("delete from `tabCost Center` WHERE company_name = %s order by lft desc, rgt desc", self.doc.name)
-			
-			#update value as blank for tabDefaultValue defkey=company
-			sql("update `tabDefaultValue` set defvalue = '' where defkey='company' and defvalue = %s", self.doc.name)
-			
-			#update value as blank for tabSingles Manage Account
-			sql("update `tabSingles` set value = '' where doctype='Manage Account' and field = 'default_company' and value = %s", self.doc.name)
-
-	# Restore accounts and cost centers for this company
-	# ---------------------------------------------------
-	def on_restore(self):
-		acc = sql("select name from tabAccount where company = '%s' and docstatus = 2" % self.doc.name)
-		for each in acc:
-			get_obj('Account', each[0]).on_restore()
-			
-		cc = sql("select name from `tabCost Center` where company_name = '%s' and docstatus = 2" % self.doc.name)
-		for each in cc:
-			get_obj('Cost Center', each[0]).on_restore()
-		
-		msgprint("Company restored. All the accounts and cost centers related to this company also restored.")
-		
-	# on rename
-	# ---------
-	def on_rename(self,newdn,olddn):		
-		sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn))						
diff --git a/startup/__init__.py b/startup/__init__.py
deleted file mode 100644
index 5fd6ccd..0000000
--- a/startup/__init__.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# add startup propertes
-
-add_in_head = """
-<style>
-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;
-}
-
-</style>
-"""
\ No newline at end of file
diff --git a/stock/Module Def/Stock/Stock.txt b/stock/Module Def/Stock/Stock.txt
deleted file mode 100644
index eae0a2e..0000000
--- a/stock/Module Def/Stock/Stock.txt
+++ /dev/null
@@ -1,421 +0,0 @@
-[
-	{
-		'_last_update': None,
-		'creation': '2011-06-30 15:49:38',
-		'disabled': 'No',
-		'docstatus': 0,
-		'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
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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/support/Module Def/Support/Support.txt b/support/Module Def/Support/Support.txt
deleted file mode 100644
index 9b39572..0000000
--- a/support/Module Def/Support/Support.txt
+++ /dev/null
@@ -1,281 +0,0 @@
-[
-	{
-		'_last_update': None,
-		'creation': '2011-06-30 15:51:59',
-		'disabled': 'No',
-		'docstatus': 0,
-		'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
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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'
-	},
-	{
-		'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
diff --git a/templates/index.html b/templates/index.html
new file mode 100644
index 0000000..5a4f9b6
--- /dev/null
+++ b/templates/index.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<head>
+	<meta charset="utf-8">
+	<title>ERPNext</title>
+	<meta name="author" content="">
+	<script type="text/javascript">{{ boot }}</script>
+</head>
+<body>
+	<div id="startup_div" style="padding: 8px; font-size: 14px;"></div>
+
+	<!-- Main Starts -->
+	<div id="body_div"> 
+
+		<!--static (no script) content-->
+		<div class="no_script">
+			{{ content }}
+		</div>
+	</div>
+	<script>wn.require('js/app.js');</script>
+	<div id="dialog_back"></div>
+</body>
\ No newline at end of file
diff --git a/todo.md b/todo.md
new file mode 100644
index 0000000..9e2c906
--- /dev/null
+++ b/todo.md
@@ -0,0 +1,18 @@
+x icons - msgprint / toolbar
+x history integration
+x loading bar
+x blank.html issues
+x double (init) loading issue
+x redirect (sid) issue
+x new buttons
+x tinymce issues
+x breakup - form
+x breakup - report
+
+- menus & integration with feature settings
+
+- release
+
+- use wn.require to load forms, reports
+- use wn.xmlhttp
+- try and breakup wnframework
\ No newline at end of file
diff --git a/versions-master.db b/versions-master.db
new file mode 100644
index 0000000..0b3bcb2
--- /dev/null
+++ b/versions-master.db
Binary files differ