Resolved conflict after merging with master
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 5f3ecd6..0000000
--- a/README
+++ /dev/null
@@ -1,3 +0,0 @@
-For more info, download, install
-
-http://erpnext.org
\ No newline at end of file
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/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 14a53c4..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');
- 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) {
- 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/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/data/master.sql.gz b/data/master.sql.gz
new file mode 100644
index 0000000..f3eaf34
--- /dev/null
+++ b/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 91%
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 40cdad3..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-09-13 17:35:54',
+ 'modified': '2011-09-15 15:04:42',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -151,6 +151,17 @@
'match_id': 1,
'to_field': 'entries',
'to_table': 'RV Detail',
+ 'validation_logic': 'amount > ifnull(billed_amt, 0) and docstatus = 1'
+ },
+
+ # Table Mapper Detail
+ {
+ 'doctype': 'Table Mapper Detail',
+ 'from_field': 'delivery_note_details',
+ 'from_table': 'Delivery Note Detail',
+ 'match_id': 1,
+ 'to_field': 'entries',
+ 'to_table': 'RV Detail',
'validation_logic': '(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1'
},
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 91%
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 61ee9b6..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,7 +5,7 @@
{
'creation': '2010-08-08 17:09:35',
'docstatus': 0,
- 'modified': '2011-09-13 17:37:09',
+ 'modified': '2011-09-15 15:04:43',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -124,6 +124,17 @@
'match_id': 1,
'to_field': 'entries',
'to_table': 'PV Detail',
+ 'validation_logic': 'ifnull(billed_qty,0) < qty'
+ },
+
+ # 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'
},
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 98%
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 b2baa57..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,7 +5,7 @@
{
'creation': '2010-08-08 17:09:35',
'docstatus': 0,
- 'modified': '2011-09-13 17:27:32',
+ 'modified': '2011-09-15 15:04:44',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
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 92%
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 ebbdbcd..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-09-13 17:36:31',
+ 'modified': '2011-09-15 15:04:45',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -153,6 +153,17 @@
'match_id': 1,
'to_field': 'entries',
'to_table': 'RV Detail',
+ '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'
},
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 96%
rename from accounts/Module Def/Accounts/Accounts.txt
rename to erpnext/accounts/Module Def/Accounts/Accounts.txt
index 50a7ac9..0a6921a 100644
--- a/accounts/Module Def/Accounts/Accounts.txt
+++ b/erpnext/accounts/Module Def/Accounts/Accounts.txt
@@ -5,7 +5,7 @@
{
'creation': '2010-09-25 10:50:37',
'docstatus': 0,
- 'modified': '2011-09-12 13:22:15',
+ 'modified': '2011-09-27 12:44:04',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -130,6 +130,15 @@
# Module Def Item
{
+ 'description': 'Link your invoices and payment vouchers to clear/update outstanding amount',
+ 'display_name': 'Internal Reconciliation',
+ 'doc_name': 'Internal Reconciliation',
+ 'doc_type': 'Single DocType',
+ 'doctype': 'Module Def Item'
+ },
+
+ # Module Def Item
+ {
'display_name': 'TDS Payment',
'doc_name': 'TDS Payment',
'doc_type': 'Setup Forms',
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/accounts/doctype/cost_center/cost_center.py b/erpnext/accounts/doctype/cost_center/cost_center.py
similarity index 72%
rename from accounts/doctype/cost_center/cost_center.py
rename to erpnext/accounts/doctype/cost_center/cost_center.py
index 66d22f0..b97274f 100644
--- a/accounts/doctype/cost_center/cost_center.py
+++ b/erpnext/accounts/doctype/cost_center/cost_center.py
@@ -32,9 +32,38 @@
'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 validate(self):
+ 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
"""
@@ -60,9 +89,6 @@
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):
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 100%
rename from accounts/doctype/fiscal_year/fiscal_year.py
rename to erpnext/accounts/doctype/fiscal_year/fiscal_year.py
diff --git a/accounts/doctype/fiscal_year/fiscal_year.txt b/erpnext/accounts/doctype/fiscal_year/fiscal_year.txt
similarity index 100%
rename from accounts/doctype/fiscal_year/fiscal_year.txt
rename to erpnext/accounts/doctype/fiscal_year/fiscal_year.txt
diff --git a/accounts/doctype/form_16a/__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 100%
rename from accounts/doctype/gl_entry/gl_entry.py
rename to erpnext/accounts/doctype/gl_entry/gl_entry.py
diff --git a/accounts/doctype/gl_entry/gl_entry.txt b/erpnext/accounts/doctype/gl_entry/gl_entry.txt
similarity index 100%
rename from accounts/doctype/gl_entry/gl_entry.txt
rename to erpnext/accounts/doctype/gl_entry/gl_entry.txt
diff --git a/accounts/doctype/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 99%
rename from accounts/doctype/lease_agreement/lease_agreement.js
rename to erpnext/accounts/doctype/lease_agreement/lease_agreement.js
index 8ffd522..7b90be9 100644
--- a/accounts/doctype/lease_agreement/lease_agreement.js
+++ b/erpnext/accounts/doctype/lease_agreement/lease_agreement.js
@@ -75,4 +75,4 @@
cur_frm.fields_dict.invoice.get_query=function(doc){
return "SELECT tv.name FROM `tabReceivable Voucher` tv WHERE debit_to='"+doc.account+"' and tv.%(key)s like '%s' ORDER BY tv.name LIMIT 50"
-}
\ No newline at end of file
+}
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 100%
rename from accounts/doctype/payable_voucher/payable_voucher.js
rename to erpnext/accounts/doctype/payable_voucher/payable_voucher.js
diff --git a/accounts/doctype/payable_voucher/payable_voucher.py b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py
similarity index 95%
rename from accounts/doctype/payable_voucher/payable_voucher.py
rename to erpnext/accounts/doctype/payable_voucher/payable_voucher.py
index 7bc0eb6..178a0cb 100644
--- a/accounts/doctype/payable_voucher/payable_voucher.py
+++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py
@@ -441,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()
@@ -456,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 100%
rename from accounts/doctype/period_closing_voucher/period_closing_voucher.py
rename to erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.txt b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
similarity index 100%
rename from accounts/doctype/period_closing_voucher/period_closing_voucher.txt
rename to erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.txt
diff --git a/accounts/doctype/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 dba08fe..6d1f80a 100644
--- a/accounts/doctype/receivable_voucher/receivable_voucher.py
+++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py
@@ -225,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
# ------------------------------------------------
@@ -545,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 100%
rename from accounts/search_criteria/accounts_payable/accounts_payable.py
rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py
diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.sql b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.sql
similarity index 100%
rename from accounts/search_criteria/accounts_payable/accounts_payable.sql
rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.sql
diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.txt b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt
similarity index 100%
rename from accounts/search_criteria/accounts_payable/accounts_payable.txt
rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt
diff --git a/accounts/search_criteria/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 100%
rename from accounts/search_criteria/general_ledger/general_ledger.py
rename to erpnext/accounts/search_criteria/general_ledger/general_ledger.py
diff --git a/accounts/search_criteria/general_ledger/general_ledger.sql b/erpnext/accounts/search_criteria/general_ledger/general_ledger.sql
similarity index 100%
rename from accounts/search_criteria/general_ledger/general_ledger.sql
rename to erpnext/accounts/search_criteria/general_ledger/general_ledger.sql
diff --git a/accounts/search_criteria/general_ledger/general_ledger.txt b/erpnext/accounts/search_criteria/general_ledger/general_ledger.txt
similarity index 100%
rename from accounts/search_criteria/general_ledger/general_ledger.txt
rename to erpnext/accounts/search_criteria/general_ledger/general_ledger.txt
diff --git a/accounts/search_criteria/itemwise_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/accounts/search_criteria/trial_balance/trial_balance.py b/erpnext/accounts/search_criteria/trial_balance/trial_balance.py
similarity index 100%
rename from accounts/search_criteria/trial_balance/trial_balance.py
rename to erpnext/accounts/search_criteria/trial_balance/trial_balance.py
diff --git a/accounts/search_criteria/trial_balance/trial_balance.txt b/erpnext/accounts/search_criteria/trial_balance/trial_balance.txt
similarity index 100%
rename from accounts/search_criteria/trial_balance/trial_balance.txt
rename to erpnext/accounts/search_criteria/trial_balance/trial_balance.txt
diff --git a/accounts/search_criteria/voucher_wise_tax_details/__init__.py b/erpnext/accounts/search_criteria/voucher_wise_tax_details/__init__.py
similarity index 100%
rename from accounts/search_criteria/voucher_wise_tax_details/__init__.py
rename to erpnext/accounts/search_criteria/voucher_wise_tax_details/__init__.py
diff --git a/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
similarity index 100%
rename from accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js
rename to erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js
diff --git a/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
similarity index 100%
rename from accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py
rename to erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py
diff --git a/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
similarity index 100%
rename from accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt
rename to erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt
diff --git a/accounts/utils/__init__.py b/erpnext/accounts/utils/__init__.py
similarity index 100%
rename from accounts/utils/__init__.py
rename to erpnext/accounts/utils/__init__.py
diff --git a/analysis/Module Def/Analysis/Analysis.txt b/erpnext/analysis/Module Def/Analysis/Analysis.txt
similarity index 100%
rename from analysis/Module Def/Analysis/Analysis.txt
rename to erpnext/analysis/Module Def/Analysis/Analysis.txt
diff --git a/analysis/__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 100%
rename from analysis/search_criteria/trend_analyzer/trend_analyzer.js
rename to erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js
diff --git a/analysis/search_criteria/trend_analyzer/trend_analyzer.py b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.py
similarity index 100%
rename from analysis/search_criteria/trend_analyzer/trend_analyzer.py
rename to erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.py
diff --git a/analysis/search_criteria/trend_analyzer/trend_analyzer.txt b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt
similarity index 100%
rename from analysis/search_criteria/trend_analyzer/trend_analyzer.txt
rename to erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt
diff --git a/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 96%
rename from home/doctype/company_control/company_control.py
rename to erpnext/home/doctype/company_control/company_control.py
index 246b07e..9c055a7 100644
--- a/home/doctype/company_control/company_control.py
+++ b/erpnext/home/doctype/company_control/company_control.py
@@ -72,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 100%
rename from home/doctype/widget_control/widget_control.py
rename to erpnext/home/doctype/widget_control/widget_control.py
diff --git a/home/doctype/widget_control/widget_control.txt b/erpnext/home/doctype/widget_control/widget_control.txt
similarity index 100%
rename from home/doctype/widget_control/widget_control.txt
rename to erpnext/home/doctype/widget_control/widget_control.txt
diff --git a/home/page/.DS_Store b/erpnext/home/page/.DS_Store
similarity index 100%
rename from home/page/.DS_Store
rename to erpnext/home/page/.DS_Store
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 91%
rename from home/page/event_updates/event_updates.js
rename to erpnext/home/page/event_updates/event_updates.js
index 9aa3da2..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'});
@@ -431,18 +420,18 @@
// head
$a(this.head,'h1','', {display:'inline'}, 'Home');
- $a(this.head,'span','link_type', {marginLeft:'7px'}, 'help', function() {
+ $a(this.head,'span','link_type', {marginLeft:'7px', fontSize:'11px'}, 'help', function() {
msgprint('<b>What appears here?</b> This is where you get updates of everything you are permitted to follow')
})
// refresh
$a(this.head,'span','link_type',
- {cursor:'pointer', marginLeft:'7px', fontSize:'11px'}, 'refresh',
+ {marginLeft:'7px', fontSize:'11px'}, 'refresh',
function() { me.run(); }
);
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 100%
rename from home/page/my_company/my_company.js
rename to erpnext/home/page/my_company/my_company.js
diff --git a/home/page/my_company/my_company.py b/erpnext/home/page/my_company/my_company.py
similarity index 100%
rename from home/page/my_company/my_company.py
rename to erpnext/home/page/my_company/my_company.py
diff --git a/home/page/my_company/my_company.txt b/erpnext/home/page/my_company/my_company.txt
similarity index 100%
rename from home/page/my_company/my_company.txt
rename to erpnext/home/page/my_company/my_company.txt
diff --git a/home/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/hr/doctype/appraisal/appraisal.js b/erpnext/hr/doctype/appraisal/appraisal.js
similarity index 100%
rename from hr/doctype/appraisal/appraisal.js
rename to erpnext/hr/doctype/appraisal/appraisal.js
diff --git a/hr/doctype/appraisal/appraisal.py b/erpnext/hr/doctype/appraisal/appraisal.py
similarity index 100%
rename from hr/doctype/appraisal/appraisal.py
rename to erpnext/hr/doctype/appraisal/appraisal.py
diff --git a/hr/doctype/appraisal/appraisal.txt b/erpnext/hr/doctype/appraisal/appraisal.txt
similarity index 100%
rename from hr/doctype/appraisal/appraisal.txt
rename to erpnext/hr/doctype/appraisal/appraisal.txt
diff --git a/hr/doctype/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 100%
rename from hr/doctype/appraisal_detail/appraisal_detail.txt
rename to erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt
diff --git a/hr/doctype/attendance/__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 100%
rename from hr/doctype/it_checklist/it_checklist.py
rename to erpnext/hr/doctype/it_checklist/it_checklist.py
diff --git a/hr/doctype/it_checklist/it_checklist.txt b/erpnext/hr/doctype/it_checklist/it_checklist.txt
similarity index 100%
rename from hr/doctype/it_checklist/it_checklist.txt
rename to erpnext/hr/doctype/it_checklist/it_checklist.txt
diff --git a/hr/doctype/kra_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/patches/delivery_billing_status_patch.py b/erpnext/patches/delivery_billing_status_patch.py
similarity index 100%
rename from patches/delivery_billing_status_patch.py
rename to erpnext/patches/delivery_billing_status_patch.py
diff --git a/patches/erpnext_structure_cleanup.py b/erpnext/patches/erpnext_structure_cleanup.py
similarity index 100%
rename from patches/erpnext_structure_cleanup.py
rename to erpnext/patches/erpnext_structure_cleanup.py
diff --git a/patches/index_patch.py b/erpnext/patches/index_patch.py
similarity index 100%
rename from patches/index_patch.py
rename to erpnext/patches/index_patch.py
diff --git a/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 91%
rename from patches/patch.py
rename to erpnext/patches/patch.py
index b66b4f0..456e936 100644
--- a/patches/patch.py
+++ b/erpnext/patches/patch.py
@@ -1,7 +1,7 @@
# REMEMBER to update this
# ========================
-last_patch = 377
+last_patch = 385
#-------------------------------------------
@@ -376,7 +376,6 @@
sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st)
get_obj('Features Setup', 'Features Setup').doc.save()
-
elif patch_no == 372:
from webnotes.modules.module_manager import reload_doc
@@ -397,7 +396,7 @@
elif patch_no == 373:
sql("delete from `tabDocField` where fieldname = 'item_searial_nos' and parent = 'Features Setup'")
sql("delete from `tabDefaultValue` where defkey = 'item_searial_nos' and parent = 'Control Panel'")
- elif patch_no == 374:
+ elif patch_no == 374:
rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null")
from webnotes.model.code import get_obj
m = get_obj('Features Setup')
@@ -433,3 +432,27 @@
prev_fy = f[0]
sql("commit")
sql("start transaction")
+ elif patch_no == 379:
+ sql("update tabDocPerm set amend = 0 where parent = 'Salary Structure'")
+ sql("update tabDocPerm set cancel = 1 where parent = 'Company' and role = 'System Manager'")
+ elif patch_no == 380:
+ if sql("select count(name) from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1:
+ sql("delete from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1")
+ if sql("select count(name) from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1:
+ sql("delete from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1")
+ elif patch_no == 381:
+ reload_doc('accounts', 'doctype', 'internal_reconciliation')
+ reload_doc('accounts', 'doctype', 'ir_payment_detail')
+ reload_doc('accounts', 'Module Def', 'Accounts')
+ elif patch_no == 382:
+ if sql("select count(name) from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button'")[0][0] > 1:
+ sql("delete from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button' limit 1")
+ elif patch_no == 383:
+ reload_doc('accounts', 'doctype', 'cost_center')
+ elif patch_no == 384:
+ reload_doc('stock', 'Module Def', 'Stock')
+ sql("delete from `tabModule Def Item` where display_name = 'Serial No' and parent = 'Support'")
+ sql("update `tabDocType` set subject = 'Item Code: %(item_code)s, Warehouse: %(warehouse)s' where name = 'Serial No'")
+ elif patch_no == 385:
+ # Patch for adding packing related columns (packed by, checked by, shipping mark etc)
+ reload_doc('stock','doctype','delivery_note')
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 98%
rename from production/doctype/bill_of_materials/bill_of_materials.py
rename to erpnext/production/doctype/bill_of_materials/bill_of_materials.py
index 9727a63..9fcfb81 100644
--- a/production/doctype/bill_of_materials/bill_of_materials.py
+++ b/erpnext/production/doctype/bill_of_materials/bill_of_materials.py
@@ -501,7 +501,7 @@
child_flat_bom_items=[]
# 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)))
+ child_flat_bom_items = sql("select fbom.item_code, fbom.description, fbom.qty_consumed_per_unit, fbom.stock_uom, fbom.moving_avg_rate, fbom.last_purchase_rate, fbom.standard_rate, '%s' as parent_bom, fbom.bom_mat_no, 'No' as is_pro_applicable from `tabFlat BOM Detail` fbom,`tabBill Of Materials` bom where fbom.parent=bom.name and fbom.parent = '%s' and fbom.is_pro_applicable = 'No' and bom.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
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 98%
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 e45c487..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,7 +5,7 @@
{
'creation': '2010-08-08 17:09:34',
'docstatus': 0,
- 'modified': '2011-09-13 17:28:37',
+ 'modified': '2011-09-15 15:04:42',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
diff --git a/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt b/erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
similarity index 98%
rename from selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
rename to erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
index 807a057..de6f60d 100644
--- a/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
+++ b/erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:34',
'docstatus': 0,
- 'modified': '2011-09-07 12:12:30',
+ 'modified': '2011-09-14 12:36:24',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
diff --git a/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt b/erpnext/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt
similarity index 83%
rename from selling/DocType Mapper/Lead-Customer/Lead-Customer.txt
rename to erpnext/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt
index 19a9f8a..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': '2011-09-07 12:11:39',
+ 'modified': '2011-09-14 12:36:24',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -63,6 +63,20 @@
'to_field': 'customer_name'
},
+ # Field Mapper Detail
+ {
+ 'doctype': 'Field Mapper Detail',
+ 'from_field': 'contact_no',
+ 'to_field': 'phone_1'
+ },
+
+ # Field Mapper Detail
+ {
+ 'doctype': 'Field Mapper Detail',
+ 'from_field': 'fax',
+ 'to_field': 'fax_1'
+ },
+
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail'
diff --git a/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt b/erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt
similarity index 97%
rename from selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt
rename to erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt
index 742215b..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': '2011-09-07 12:11:00',
+ 'modified': '2011-09-14 12:36:24',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
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 98%
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 5a529dd..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-09-07 12:08:48',
+ 'modified': '2011-09-14 12:36:24',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
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 98%
rename from selling/doctype/enquiry/enquiry.py
rename to erpnext/selling/doctype/enquiry/enquiry.py
index 4ad1b0a..5748525 100644
--- a/selling/doctype/enquiry/enquiry.py
+++ b/erpnext/selling/doctype/enquiry/enquiry.py
@@ -119,16 +119,12 @@
#--------------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
# ====================================================================================================================
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 100%
rename from selling/doctype/quotation/quotation.js
rename to erpnext/selling/doctype/quotation/quotation.js
diff --git a/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py
similarity index 100%
rename from selling/doctype/quotation/quotation.py
rename to erpnext/selling/doctype/quotation/quotation.py
diff --git a/selling/doctype/quotation/quotation.txt b/erpnext/selling/doctype/quotation/quotation.txt
similarity index 100%
rename from selling/doctype/quotation/quotation.txt
rename to erpnext/selling/doctype/quotation/quotation.txt
diff --git a/selling/doctype/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/setup/doctype/authorization_control/authorization_control.py b/erpnext/setup/doctype/authorization_control/authorization_control.py
similarity index 100%
rename from setup/doctype/authorization_control/authorization_control.py
rename to erpnext/setup/doctype/authorization_control/authorization_control.py
diff --git a/setup/doctype/authorization_control/authorization_control.txt b/erpnext/setup/doctype/authorization_control/authorization_control.txt
similarity index 100%
rename from setup/doctype/authorization_control/authorization_control.txt
rename to erpnext/setup/doctype/authorization_control/authorization_control.txt
diff --git a/setup/doctype/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 100%
rename from setup/doctype/features_setup/features_setup.txt
rename to erpnext/setup/doctype/features_setup/features_setup.txt
diff --git a/setup/doctype/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 100%
rename from setup/doctype/manage_account/manage_account.py
rename to erpnext/setup/doctype/manage_account/manage_account.py
diff --git a/setup/doctype/manage_account/manage_account.txt b/erpnext/setup/doctype/manage_account/manage_account.txt
similarity index 100%
rename from setup/doctype/manage_account/manage_account.txt
rename to erpnext/setup/doctype/manage_account/manage_account.txt
diff --git a/setup/doctype/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 100%
rename from setup/doctype/sales_browser_control/sales_browser_control.py
rename to erpnext/setup/doctype/sales_browser_control/sales_browser_control.py
diff --git a/setup/doctype/sales_browser_control/sales_browser_control.txt b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.txt
similarity index 100%
rename from setup/doctype/sales_browser_control/sales_browser_control.txt
rename to erpnext/setup/doctype/sales_browser_control/sales_browser_control.txt
diff --git a/setup/doctype/sales_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 100%
rename from setup/page/setup/setup.js
rename to erpnext/setup/page/setup/setup.js
diff --git a/setup/page/setup/setup.txt b/erpnext/setup/page/setup/setup.txt
similarity index 100%
rename from setup/page/setup/setup.txt
rename to erpnext/setup/page/setup/setup.txt
diff --git a/setup/page/setup/setup_static.html b/erpnext/setup/page/setup/setup_static.html
similarity index 100%
rename from setup/page/setup/setup_static.html
rename to erpnext/setup/page/setup/setup_static.html
diff --git a/setup/page/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 a0661ae..3e2fde4 100644
--- a/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -43,18 +43,8 @@
// ------------------
$dh(page_body.footer);
- // for logout and payment
- var callback = function(r,rt) {
- if(r.message){
- login_file = 'http://' + r.message;
- }
- else if(pscript.is_erpnext_saas) {
- login_file = 'https://www.erpnext.com';
- }
- // setup toolbar
- pscript.startup_setup_toolbar();
- }
- $c_obj('Home Control', 'get_login_url', '', callback);
+ // setup toolbar
+ pscript.startup_setup_toolbar();
}
// ====================================================================
@@ -299,10 +289,17 @@
// add to menu-item mapper
menu_item_map['Page'][me.det.module_label + ' Custom Reports'] = smi.pointer;
-
}
-
}
+
+ if(r.login_url){
+ login_file = 'http://' + r.login_url;
+ }
+ else if(pscript.is_erpnext_saas) {
+ login_file = 'https://www.erpnext.com';
+ }
+
+
$(me.items_area).slideDown();
// high light
@@ -565,7 +562,7 @@
'Timesheet': {'timesheet_details':['project_name']}
},
'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']},
+ 'Delivery Note': {'fields':['packing_details','print_packing_slip','packing_checked_by','packed_by','pack_size','shipping_mark'],'delivery_note_details':['no_of_packs','pack_gross_wt','pack_nett_wt','pack_no','pack_unit']},
'Sales Order': {'fields':['packing_details']}
},
'fs_discounts': {
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 100%
rename from stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
rename to erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
diff --git a/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt b/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt
similarity index 93%
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 7443731..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': '2011-09-13 17:26:01',
+ 'modified': '2011-09-15 15:04:44',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -110,6 +110,15 @@
# 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,
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 96%
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 9b08913..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,7 +5,7 @@
{
'creation': '2010-08-08 17:09:35',
'docstatus': 0,
- 'modified': '2011-09-13 13:23:26',
+ 'modified': '2011-09-14 12:36:25',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -221,6 +221,15 @@
'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 100%
rename from stock/doctype/bin/bin.py
rename to erpnext/stock/doctype/bin/bin.py
diff --git a/stock/doctype/bin/bin.txt b/erpnext/stock/doctype/bin/bin.txt
similarity index 100%
rename from stock/doctype/bin/bin.txt
rename to erpnext/stock/doctype/bin/bin.txt
diff --git a/stock/doctype/delivery_note/__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/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
new file mode 100644
index 0000000..b49f80c
--- /dev/null
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -0,0 +1,475 @@
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+
+# -----------------------------------------------------------------------------------------
+
+from utilities.transaction_base import TransactionBase
+
+class DocType(TransactionBase):
+ def __init__(self, doc, doclist=[]):
+ self.doc = doc
+ self.doclist = doclist
+ self.tname = 'Delivery Note Detail'
+ self.fname = 'delivery_note_details'
+
+ # Notification objects
+ self.notify_obj = get_obj('Notification Control')
+
+ # Autoname
+ # ---------
+ def autoname(self):
+ self.doc.name = make_autoname(self.doc.naming_series+'.#####')
+
+
+# DOCTYPE TRIGGERS FUNCTIONS
+# ==============================================================================
+#************Fiscal Year Validation*****************************
+ def validate_fiscal_year(self):
+ get_obj('Sales Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Posting Date')
+
+
+ # ****** Get contact person details based on customer selected ****
+ def get_contact_details(self):
+ return get_obj('Sales Common').get_contact_details(self,0)
+
+ # *********** Get Commission rate of Sales Partner ****************
+ def get_comm_rate(self, sales_partner):
+ return get_obj('Sales Common').get_comm_rate(sales_partner, self)
+
+ # *************** Pull Sales Order Details ************************
+ def pull_sales_order_details(self):
+ self.validate_prev_docname()
+ self.doc.clear_table(self.doclist,'other_charges')
+
+ if self.doc.sales_order_no:
+ get_obj('DocType Mapper', 'Sales Order-Delivery Note').dt_map('Sales Order', 'Delivery Note', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Delivery Note'],['Sales Order Detail', 'Delivery Note Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team']]")
+ else:
+ msgprint("Please select Sales Order No. whose details need to be pulled")
+
+ return cstr(self.doc.sales_order_no)
+
+
+
+ #-------------------set item details -uom and item group----------------
+ def set_item_details(self):
+ for d in getlist(self.doclist,'delivery_note_details'):
+ res = sql("select stock_uom, item_group from `tabItem` where name ='%s'"%d.item_code)
+ if not d.stock_uom: d.stock_uom = res and cstr(res[0][0]) or ''
+ if not d.item_group: d.item_group = res and cstr(res[0][1]) or ''
+ d.save()
+
+ # ::::: Validates that Sales Order is not pulled twice :::::::
+ def validate_prev_docname(self):
+ for d in getlist(self.doclist, 'delivery_note_details'):
+ if self.doc.sales_order_no == d.prevdoc_docname:
+ msgprint(cstr(self.doc.sales_order_no) + " sales order details have already been pulled. ")
+ raise Exception, "Validation Error. "
+
+ #Set Actual Qty based on item code and warehouse
+ #------------------------------------------------------
+ def set_actual_qty(self):
+ for d in getlist(self.doclist, 'delivery_note_details'):
+ if d.item_code and d.warehouse:
+ actual_qty = sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (d.item_code, d.warehouse))
+ d.actual_qty = actual_qty and flt(actual_qty[0][0]) or 0
+
+
+ # GET TERMS & CONDITIONS
+ # -------------------------------------
+ def get_tc_details(self):
+ return get_obj('Sales Common').get_tc_details(self)
+
+ #pull project customer
+ #-------------------------
+ def pull_project_customer(self):
+ res = sql("select customer from `tabProject` where name = '%s'"%self.doc.project_name)
+ if res:
+ get_obj('DocType Mapper', 'Project-Delivery Note').dt_map('Project', 'Delivery Note', self.doc.project_name, self.doc, self.doclist, "[['Project', 'Delivery Note']]")
+
+# DELIVERY NOTE DETAILS TRIGGER FUNCTIONS
+# ================================================================================
+
+ # ***************** Get Item Details ******************************
+ def get_item_details(self, item_code):
+ return get_obj('Sales Common').get_item_details(item_code, self)
+
+ # *** Re-calculates Basic Rate & amount based on Price List Selected ***
+ def get_adj_percent(self, arg=''):
+ get_obj('Sales Common').get_adj_percent(self)
+
+ # ********** Get Actual Qty of item in warehouse selected *************
+ def get_actual_qty(self,args):
+ args = eval(args)
+ actual_qty = sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (args['item_code'], args['warehouse']), as_dict=1)
+ ret = {
+ 'actual_qty' : actual_qty and flt(actual_qty[0]['actual_qty']) or 0
+ }
+ return ret
+
+
+# OTHER CHARGES TRIGGER FUNCTIONS
+# ====================================================================================
+
+ # *********** Get Tax rate if account type is TAX ********************
+ def get_rate(self,arg):
+ return get_obj('Sales Common').get_rate(arg)
+
+ # Load Default Charges
+ # ----------------------------------------------------------
+ def load_default_taxes(self):
+ return get_obj('Sales Common').load_default_taxes(self)
+
+
+ # **** Pull details from other charges master (Get Other Charges) ****
+ def get_other_charges(self):
+ return get_obj('Sales Common').get_other_charges(self)
+
+
+ #check in manage account if sales order required or not.
+ # ====================================================================================
+ def so_required(self):
+ res = sql("select value from `tabSingles` where doctype = 'Manage Account' and field = 'so_required'")
+ if res and res[0][0] == 'Yes':
+ for d in getlist(self.doclist,'delivery_note_details'):
+ if not d.prevdoc_docname:
+ msgprint("Sales Order No. required against item %s"%d.item_code)
+ raise Exception
+
+
+
+# VALIDATE
+# ====================================================================================
+ def validate(self):
+ self.so_required()
+ self.validate_fiscal_year()
+ self.validate_proj_cust()
+ sales_com_obj = get_obj(dt = 'Sales Common')
+ sales_com_obj.check_stop_sales_order(self)
+ sales_com_obj.check_active_sales_items(self)
+ sales_com_obj.get_prevdoc_date(self)
+ self.validate_mandatory()
+ #self.validate_prevdoc_details()
+ self.validate_reference_value()
+ self.validate_for_items()
+ sales_com_obj.make_packing_list(self,'delivery_note_details')
+ get_obj('Stock Ledger').validate_serial_no(self, 'packing_details')
+ sales_com_obj.validate_max_discount(self, 'delivery_note_details') #verify whether rate is not greater than max discount
+ sales_com_obj.get_allocated_sum(self) # this is to verify that the allocated % of sales persons is 100%
+ sales_com_obj.check_conversion_rate(self)
+ # ::::::: Get total in Words ::::::::
+ dcc = TransactionBase().get_company_currency(self.doc.company)
+ self.doc.in_words = sales_com_obj.get_total_in_words(dcc, self.doc.rounded_total)
+ self.doc.in_words_export = sales_com_obj.get_total_in_words(self.doc.currency, self.doc.rounded_total_export)
+
+ # ::::::: Set Net Weight of each Packing
+ self.update_pack_nett_weight()
+ self.print_packing_slip()
+ # ::::::: Set actual qty for each item in selected warehouse :::::::
+ self.update_current_stock()
+ # :::::: set DN status :::::::
+
+ self.doc.status = 'Draft'
+ if not self.doc.billing_status: self.doc.billing_status = 'Not Billed'
+ if not self.doc.installation_status: self.doc.installation_status = 'Not Installed'
+
+ # ************** Validate Mandatory *************************
+ def validate_mandatory(self):
+ # :::::::::: Amendment Date ::::::::::::::
+ if self.doc.amended_from and not self.doc.amendment_date:
+ msgprint("Please Enter Amendment Date")
+ raise Exception, "Validation Error. "
+
+ #check for does customer belong to same project as entered..
+ #-------------------------------------------------------------------------------------------------
+ def validate_proj_cust(self):
+ if self.doc.project_name and self.doc.customer:
+ res = sql("select name from `tabProject` where name = '%s' and (customer = '%s' or ifnull(customer,'')='')"%(self.doc.project_name, self.doc.customer))
+ if not res:
+ msgprint("Customer - %s does not belong to project - %s. \n\nIf you want to use project for multiple customers then please make customer details blank in project - %s."%(self.doc.customer,self.doc.project_name,self.doc.project_name))
+ raise Exception
+
+ # Validate values with reference document
+ #----------------------------------------
+ def validate_reference_value(self):
+ get_obj('DocType Mapper', 'Sales Order-Delivery Note', with_children = 1).validate_reference_value(self, self.doc.name)
+
+
+ # ******* Validate Previous Document Details ************
+ def validate_prevdoc_details(self):
+ for d in getlist(self.doclist,'delivery_note_details'):
+
+ prevdoc = d.prevdoc_doctype
+ prevdoc_docname = d.prevdoc_docname
+
+ if prevdoc_docname and prevdoc:
+ # ::::::::::: Validates Transaction Date of DN and previous doc (i.e. SO , PO, PR) *********
+ trans_date = sql("select transaction_date from `tab%s` where name = '%s'" %(prevdoc,prevdoc_docname))[0][0]
+ if trans_date and getdate(self.doc.transaction_date) < (trans_date):
+ msgprint("Your Voucher Date cannot be before "+cstr(prevdoc)+" Date.")
+ raise Exception
+ # ::::::::: Validates DN and previous doc details ::::::::::::::::::
+ get_name = sql("select name from `tab%s` where name = '%s'" % (prevdoc, prevdoc_docname))
+ name = get_name and get_name[0][0] or ''
+ if name: #check for incorrect docname
+ if prevdoc == 'Sales Order':
+ dt = sql("select company, docstatus, customer, currency, sales_partner from `tab%s` where name = '%s'" % (prevdoc, name))
+ cust_name = dt and dt[0][2] or ''
+ if cust_name != self.doc.customer:
+ msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " customer :" + cstr(cust_name) + " does not match with customer : " + cstr(self.doc.customer) + " of current document.")
+ raise Exception, "Validation Error. "
+ sal_partner = dt and dt[0][4] or ''
+ if sal_partner != self.doc.sales_partner:
+ msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " sales partner name :" + cstr(sal_partner) + " does not match with sales partner name : " + cstr(self.doc.sales_partner_name) + " of current document.")
+ raise Exception, "Validation Error. "
+ else:
+ dt = sql("select company, docstatus, supplier, currency from `tab%s` where name = '%s'" % (prevdoc, name))
+ supp_name = dt and dt[0][2] or ''
+ company_name = dt and dt[0][0] or ''
+ docstatus = dt and dt[0][1] or 0
+ currency = dt and dt[0][3] or ''
+ if (currency != self.doc.currency):
+ msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " currency : "+ cstr(currency) + "does not match with Currency: " + cstr(self.doc.currency) + "of current document")
+ raise Exception, "Validation Error."
+ if (company_name != self.doc.company):
+ msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " does not belong to the Company: " + cstr(self.doc.company_name))
+ raise Exception, "Validation Error."
+ if (docstatus != 1):
+ msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " is not Submitted Document.")
+ raise Exception, "Validation Error."
+ else:
+ msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " is not a valid " + cstr(prevdoc))
+ raise Exception, "Validation Error."
+
+
+ # ******************** Validate Items **************************
+ def validate_for_items(self):
+ check_list, chk_dupl_itm = [], []
+ for d in getlist(self.doclist,'delivery_note_details'):
+ ch = sql("select is_stock_item from `tabItem` where name = '%s'"%d.item_code)
+ if d.prevdoc_doctype and d.prevdoc_detail_docname and ch and ch[0][0]=='Yes':
+ self.validate_items_with_prevdoc(d)
+
+ # validates whether item is not entered twice
+ e = [d.item_code, d.description, d.warehouse, d.prevdoc_docname or '', d.batch_no or '']
+ f = [d.item_code, d.description, d.prevdoc_docname or '']
+
+ if ch and ch[0][0] == 'Yes':
+ if e in check_list:
+ msgprint("Please check whether item %s has been entered twice wrongly." % d.item_code)
+ else:
+ check_list.append(e)
+ elif ch and ch[0][0] == 'No':
+ if f in chk_dupl_itm:
+ msgprint("Please check whether item %s has been entered twice wrongly." % d.item_code)
+ else:
+ chk_dupl_itm.append(f)
+
+
+ # check if same item, warehouse present in prevdoc
+ # ------------------------------------------------------------------
+ def validate_items_with_prevdoc(self, d):
+ if d.prevdoc_doctype == 'Sales Order':
+ data = sql("select item_code, reserved_warehouse from `tabSales Order Detail` where parent = '%s' and name = '%s'" % (d.prevdoc_docname, d.prevdoc_detail_docname))
+ if d.prevdoc_doctype == 'Purchase Receipt':
+ data = sql("select item_code, rejected_warehouse from `tabPurchase Receipt Detail` where parent = '%s' and name = '%s'" % (d.prevdoc_docname, d.prevdoc_detail_docname))
+ if not data or data[0][0] != d.item_code or data[0][1] != d.warehouse:
+ msgprint("Item: %s / Warehouse: %s is not matching with Sales Order: %s. Sales Order might be modified after fetching data from it. Please delete items and fetch again." % (d.item_code, d.warehouse, d.prevdoc_docname))
+ raise Exception
+
+
+ # ********* UPDATE CURRENT STOCK *****************************
+ def update_current_stock(self):
+ for d in getlist(self.doclist, 'delivery_note_details'):
+ bin = sql("select actual_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
+ d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
+
+ for d in getlist(self.doclist, 'packing_details'):
+ bin = sql("select actual_qty, projected_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
+ d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
+ d.projected_qty = bin and flt(bin[0]['projected_qty']) or 0
+
+
+# ON SUBMIT
+# =================================================================================================
+ def on_submit(self):
+ set(self.doc, 'message', 'Items against your Order #%s have been delivered. Delivery #%s: ' % (self.doc.po_no, self.doc.name))
+ self.check_qty_in_stock()
+ # Check for Approving Authority
+ get_obj('Authorization Control').validate_approving_authority(self.doc.doctype, self.doc.company, self.doc.grand_total, self)
+ sl_obj = get_obj("Stock Ledger")
+ sl_obj.validate_serial_no_warehouse(self, 'packing_details')
+ sl_obj.update_serial_record(self, 'packing_details', is_submit = 1, is_incoming = 0)
+ get_obj("Sales Common").update_prevdoc_detail(1,self)
+ self.update_stock_ledger(update_stock = 1)
+
+ #------------Check Credit Limit---------------------
+ self.credit_limit()
+
+ # set DN status
+ set(self.doc, 'status', 'Submitted')
+
+ # on submit notification
+ self.notify_obj.notify_contact('Delivery Note',self.doc.doctype,self.doc.name, self.doc.email_id, self.doc.contact_person)
+
+
+ # *********** Checks whether actual quantity is present in warehouse *************
+ def check_qty_in_stock(self):
+ for d in getlist(self.doclist, 'packing_details'):
+ is_stock_item = sql("select is_stock_item from `tabItem` where name = '%s'" % d.item_code)[0][0]
+ if is_stock_item == 'Yes' and d.warehouse and flt(d.qty) > flt(d.actual_qty):
+ msgprint("For Item: " + cstr(d.item_code) + " at Warehouse: " + cstr(d.warehouse) + " Quantity: " + cstr(d.qty) +" is not Available. (Must be less than or equal to " + cstr(d.actual_qty) + " )")
+ raise Exception, "Validation Error"
+
+
+
+# ON CANCEL
+# =================================================================================================
+ def on_cancel(self):
+ sales_com_obj = get_obj(dt = 'Sales Common')
+ sales_com_obj.check_stop_sales_order(self)
+ self.check_next_docstatus()
+ get_obj('Stock Ledger').update_serial_record(self, 'packing_details', is_submit = 0, is_incoming = 0)
+ sales_com_obj.update_prevdoc_detail(0,self)
+ self.update_stock_ledger(update_stock = -1)
+ # :::::: set DN status :::::::
+ set(self.doc, 'status', 'Cancelled')
+
+
+ # ******************** Check Next DocStatus **************************
+ def check_next_docstatus(self):
+ submit_rv = sql("select t1.name from `tabReceivable Voucher` t1,`tabRV Detail` t2 where t1.name = t2.parent and t2.delivery_note = '%s' and t1.docstatus = 1" % (self.doc.name))
+ if submit_rv:
+ msgprint("Sales Invoice : " + cstr(submit_rv[0][0]) + " has already been submitted !")
+ raise Exception , "Validation Error."
+
+ submit_in = sql("select t1.name from `tabInstallation Note` t1, `tabInstalled Item Details` t2 where t1.name = t2.parent and t2.prevdoc_docname = '%s' and t1.docstatus = 1" % (self.doc.name))
+ if submit_in:
+ msgprint("Installation Note : "+cstr(submit_in[0][0]) +" has already been submitted !")
+ raise Exception , "Validation Error."
+
+
+# UPDATE STOCK LEDGER
+# =================================================================================================
+ def update_stock_ledger(self, update_stock, is_stopped = 0):
+ self.values = []
+ for d in self.get_item_list(is_stopped):
+ stock_item = sql("SELECT is_stock_item, is_sample_item FROM tabItem where name = '%s'"%(d[1]), as_dict = 1) # stock ledger will be updated only if it is a stock item
+ if stock_item[0]['is_stock_item'] == "Yes":
+ if not d[0]:
+ msgprint("Message: Please enter Warehouse for item %s as it is stock item."% d[1])
+ raise Exception
+ # if prevdoc_doctype = "Sales Order"
+ if d[3] < 0 :
+ # Reduce Reserved Qty from warehouse
+ bin = get_obj('Warehouse', d[0]).update_bin(0, flt(update_stock) * flt(d[3]), 0, 0, 0, d[1], self.doc.transaction_date)
+
+ # Reduce actual qty from warehouse
+ self.make_sl_entry(d, d[0], - flt(d[2]) , 0, update_stock)
+ get_obj('Stock Ledger', 'Stock Ledger').update_stock(self.values)
+
+
+ # ***************** Gets Items from packing list *****************
+ def get_item_list(self, is_stopped):
+ return get_obj('Sales Common').get_item_list(self, is_stopped)
+
+
+ # ********************** Make Stock Entry ************************************
+ def make_sl_entry(self, d, wh, qty, in_value, update_stock):
+ self.values.append({
+ 'item_code' : d[1],
+ 'warehouse' : wh,
+ 'transaction_date' : self.doc.transaction_date,
+ 'posting_date' : self.doc.posting_date,
+ 'posting_time' : self.doc.posting_time,
+ 'voucher_type' : 'Delivery Note',
+ 'voucher_no' : self.doc.name,
+ 'voucher_detail_no' : '',
+ 'actual_qty' : qty,
+ 'stock_uom' : d[4],
+ 'incoming_rate' : in_value,
+ 'company' : self.doc.company,
+ 'fiscal_year' : self.doc.fiscal_year,
+ 'is_cancelled' : (update_stock==1) and 'No' or 'Yes',
+ 'batch_no' : d[5],
+ 'serial_no' : d[6]
+ })
+
+
+ # SEND SMS
+ # ============================================================================================
+ def send_sms(self):
+ if not self.doc.customer_mobile_no:
+ msgprint("Please enter customer mobile no")
+ elif not self.doc.message:
+ msgprint("Please enter the message you want to send")
+ else:
+ msgprint(get_obj("SMS Control", "SMS Control").send_sms([self.doc.customer_mobile_no,], self.doc.message))
+
+
+#------------ check credit limit of items in DN Detail which are not fetched from sales order----------
+ def credit_limit(self):
+ amount, total = 0, 0
+ for d in getlist(self.doclist, 'delivery_note_details'):
+ if not d.prevdoc_docname:
+ amount += d.amount
+ if amount != 0:
+ total = (amount/self.doc.net_total)*self.doc.grand_total
+ get_obj('Sales Common').check_credit(self, total)
+
+ # on update
+ def on_update(self):
+ self.set_actual_qty()
+ get_obj('Stock Ledger').scrub_serial_nos(self)
+
+ # Repair Delivery Note
+ # ===========================================
+ def repair_delivery_note(self):
+ get_obj('Sales Common', 'Sales Common').repair_curr_doctype_details(self)
+
+ # Packing Slip Related
+ # ==========================================
+ def update_pack_nett_weight(self):
+ for d in getlist(self.doclist, 'delivery_note_details'):
+ 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]) or 0
+
+ # ==========================================
+ def print_packing_slip(self):
+ prev_pack='0'
+ sno=0
+ html=''
+ tot_nett_wt,tot_gross_wt=0,0
+ for d in getlist(self.doclist, 'delivery_note_details'):
+ sno=sno+1
+ if sno!=1 and prev_pack!=d.pack_no:#Footer goes here
+ html+='</table><table style="page-break-after:always" width="100%"><tr><td>CASE NO</td><td>'+cstr(d.pack_no)+'</td><td>NETT WT</td><td>'+cstr(tot_nett_wt)+'</td><td>CHECKED BY</td><td></td></tr><tr><td>SIZE</td><td></td><td>GROSS WT</td><td>'+cstr(tot_gross_wt)+'</td><td>PACKED BY</td><td></td></tr></table></div>'
+ if prev_pack!=d.pack_no: #Prepare Header Here
+ #Header code goes here
+ html+='<div align="center">[HEADER GOES HERE]</div><div><center><h2>Packing Slip</h2></center></div> <table width="100%"><tr><td width="15%">Order No.</td><td width="35%">'+cstr(self.doc.sales_order_no)+'</td><td width="15%">Shipping Marks</td><td>'+cstr(d.shipping_mark)+'</td></tr></table>'
+ html+='<table class="cust_tbl" width="100%"><tr><td>S.NO.</td><td>QUANTITY</td><td>CS.NO.</td><td>DESCRIPTION</td><td>WEIGHT</td><tr>'
+ sno=0
+ tot_nett_wt,to_gross_wt=flt(d.pack_nett_wt),flt(d.pack_gross_wt)
+ #Body code goes here
+ html+='<tr><td>'+cstr(sno+1)+'</td><td>'+cstr(d.qty)+'</td><td>'+d.item_code+'</td><td>'+d.description+'</td><td>'+cstr(d.pack_nett_wt)+'</td></tr>'
+ prev_pack=d.pack_no
+ tot_nett_wt+=flt(d.pack_nett_wt)
+ tot_gross_wt+=flt(d.pack_gross_wt)
+
+ if html!='':
+ html+='</table><table style="page-break-after:always" width="100%"><tr><td>CASE NO</td><td>'+cstr(d.pack_no)+'</td><td>NETT WT</td><td>'+cstr(tot_nett_wt)+'</td><td>CHECKED BY</td><td>'+cstr(self.doc.packing_checked_by)+'</td></tr><tr><td>SIZE</td><td>'+cstr(self.doc.pack_size)+'</td><td>GROSS WT</td><td>'+cstr(tot_gross_wt)+'</td><td>PACKED BY</td><td>'+cstr(self.doc.packed_by)+'</td></tr></table></div>'
+ html+='</html>'
+ self.doc.print_packing_slip=html
diff --git a/stock/doctype/delivery_note/delivery_note.txt b/erpnext/stock/doctype/delivery_note/delivery_note.txt
similarity index 97%
rename from stock/doctype/delivery_note/delivery_note.txt
rename to erpnext/stock/doctype/delivery_note/delivery_note.txt
index a3897ec..9fe13e4 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-09-07 17:36:34',
+ 'modified': '2011-09-20 18:50:41',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -21,7 +21,7 @@
# These values are common for all DocType
{
- '_last_update': '1314093417',
+ '_last_update': '1315560377',
'colour': 'White:FFF',
'default_print_format': 'Standard',
'doctype': 'DocType',
@@ -37,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': 450
+ 'version': 453
},
# These values are common for all DocFormat
@@ -133,11 +133,6 @@
'doctype': 'DocFormat'
},
- # DocFormat
- {
- 'doctype': 'DocFormat'
- },
-
# DocField
{
'colour': 'White:FFF',
@@ -1390,6 +1385,42 @@
'in_filter': 0,
'label': 'Print Packing Slip',
'permlevel': 0,
- 'print_hide': 0
+ 'print_hide': 1
+ },
+
+ # DocField
+ {
+ 'doctype': 'DocField',
+ 'fieldname': 'shipping_mark',
+ 'fieldtype': 'Text',
+ 'label': 'Shipping Mark',
+ 'permlevel': 0
+ },
+
+ # DocField
+ {
+ 'doctype': 'DocField',
+ 'fieldname': 'packed_by',
+ 'fieldtype': 'Text',
+ 'label': 'Packed By',
+ 'permlevel': 0
+ },
+
+ # DocField
+ {
+ 'doctype': 'DocField',
+ 'fieldname': 'packing_checked_by',
+ 'fieldtype': 'Text',
+ 'label': 'Packing Checked By',
+ 'permlevel': 0
+ },
+
+ # DocField
+ {
+ 'doctype': 'DocField',
+ 'fieldname': 'pack_size',
+ 'fieldtype': 'Text',
+ 'label': 'Pack Size',
+ 'permlevel': 0
}
]
\ No newline at end of file
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 100%
rename from stock/doctype/delivery_note_detail/delivery_note_detail.txt
rename to erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt
diff --git a/stock/doctype/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 95%
rename from stock/doctype/item/item.py
rename to erpnext/stock/doctype/item/item.py
index 28f1d12..4dca704 100644
--- a/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -63,6 +63,9 @@
child.conversion_factor = 1
child.save()
+ # On delete 1. Delete BIN (if none of the corrosponding transactions present, it gets deleted. if present, rolled back due to exception)
+ def on_trash(self):
+ sql("delete from tabBin where item_code='%s'"%(self.doc.item_code))
# Check whether Ref Rate is not entered twice for same Price List and Currency
def check_ref_rate_detail(self):
@@ -124,7 +127,7 @@
self.doc.min_order_qty = 0
self.check_non_asset_warehouse()
- if self.doc.is_pro_applicable == 'Yes' and self.doc.is_manufactured_item != 'Yes':
+ if self.doc.is_pro_applicable and self.doc.is_pro_applicable == 'Yes' and self.doc.is_manufactured_item and self.doc.is_manufactured_item != 'Yes':
msgprint("If making Production Order is allowed then, it should also allow to make Bill of Materials. Refer Manufacturing section.")
raise Exception
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/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
new file mode 100644
index 0000000..529c82a
--- /dev/null
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -0,0 +1,62 @@
+import unittest
+import webnotes
+import copy
+
+from webnotes.model.doclist import DocList
+from webnotes.model.doc import Document
+from webnotes.model.code import get_obj
+from webnotes.utils import flt
+
+sql = webnotes.conn.sql
+
+
+class TestItem(unittest.TestCase):
+ def setUp(self):
+ webnotes.conn.begin()
+
+ def tearDown(self):
+ webnotes.conn.rollback()
+
+ def testInsert(self):
+ d = DocList()
+
+ count_before = flt(sql("select count(*) from tab"+_doctype)[0][0])
+ if docok:
+ for i in docok:
+ d.doc = i
+ d.children = None
+ d.doc.fields['__islocal']=1
+ d.save(1)
+ count_after = flt(sql("select count(*) from tab"+_doctype)[0][0])
+ self.assertTrue(count_before+len(docok)==count_after)
+
+ def testFailAssert(self):
+ if docnotok:
+ with self.assertRaises(Exception) as context:
+ d = DocList()
+ d.doc = docnotok[0]
+ d.children = None
+ d.doc.fields['__islocal']=1
+ d.save(1)
+
+# Test Data
+
+tabOK = [
+ {'is_purchase_item': None, 'is_pro_applicable': 'No', 'is_manufactured_item': None, 'description': 'Gel Ink', 'default_warehouse': None, 'item_name': 'Gel Ink', 'item_group': 'Ink', 'item_code': 'GELINK', 'is_sub_contracted_item': None, 'is_stock_item': 'Yes', 'stock_uom': 'Nos', 'docstatus': '0'},
+ {'is_purchase_item': None, 'is_pro_applicable': 'No', 'is_manufactured_item': None, 'description': 'Gel Refill', 'default_warehouse': None, 'item_name': 'Gel Refill', 'item_group': 'Refill', 'item_code': 'GELREF', 'is_sub_contracted_item': None, 'is_stock_item': 'Yes', 'stock_uom': 'Nos', 'docstatus': '0'},
+ {'is_purchase_item': None, 'is_pro_applicable': 'No', 'is_manufactured_item': None, 'description': 'Gel Pen', 'default_warehouse': None, 'item_name': 'Gel Pen', 'item_group': 'Pen', 'item_code': 'GELPEN', 'is_sub_contracted_item': None, 'is_stock_item': 'Yes', 'stock_uom': 'Nos', 'docstatus': '0'}
+ ]
+
+tabNotOK = [
+ {'is_purchase_item': None, 'is_pro_applicable': None, 'is_manufactured_item': None, 'description': 'F Ink', 'default_warehouse': None, 'item_name': 'F Ink', 'item_group': 'F Ink', 'item_code': None, 'is_sub_contracted_item': None, 'is_stock_item': 'No', 'stock_uom': 'Nos', 'docstatus': '0'}
+ ]
+
+_doctype = 'Item'
+
+for i in tabOK: i['doctype']=_doctype
+for i in tabNotOK: i['doctype']=_doctype
+
+docok = [Document(fielddata=r) for r in tabOK]
+docnotok = [Document(fielddata=r) for r in tabNotOK]
+
+
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 100%
rename from stock/doctype/purchase_receipt/purchase_receipt.js
rename to erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
similarity index 100%
rename from stock/doctype/purchase_receipt/purchase_receipt.py
rename to erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.txt
similarity index 100%
rename from stock/doctype/purchase_receipt/purchase_receipt.txt
rename to erpnext/stock/doctype/purchase_receipt/purchase_receipt.txt
diff --git a/stock/doctype/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 91%
rename from stock/doctype/stock_entry/stock_entry.py
rename to erpnext/stock/doctype/stock_entry/stock_entry.py
index 024bd1f..b799eaa 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -122,16 +122,18 @@
def get_raw_materials(self,pro_obj):
# get all items from flat bom except, child items of sub-contracted and sub assembly items and sub assembly items itself.
- flat_bom_items = sql("select item_code, ifnull(sum(qty_consumed_per_unit), 0) * '%s', description, stock_uom from `tabFlat BOM Detail` where parent = '%s' and parent_bom = '%s' and is_pro_applicable = 'No' and docstatus < 2 group by item_code" % ((self.doc.process == 'Backflush') and flt(self.doc.fg_completed_qty) or flt(pro_obj.doc.qty), cstr(pro_obj.doc.bom_no), cstr(pro_obj.doc.bom_no)))
- self.make_items_dict(flat_bom_items)
+# flat_bom_items = sql("select item_code, ifnull(sum(qty_consumed_per_unit), 0) * '%s', description, stock_uom from `tabFlat BOM Detail` where parent = '%s' and parent_bom = '%s' and is_pro_applicable = 'No' and docstatus < 2 group by item_code" % ((self.doc.process == 'Backflush') and flt(self.doc.fg_completed_qty) or flt(pro_obj.doc.qty), cstr(pro_obj.doc.bom_no), cstr(pro_obj.doc.bom_no)))
+# self.make_items_dict(flat_bom_items)
+
if pro_obj.doc.consider_sa_items == 'Yes':
# get all Sub Assembly items only from flat bom
- fl_bom_sa_items = sql("select item_code, ifnull(sum(qty_consumed_per_unit), 0) * '%s', description, stock_uom from `tabFlat BOM Detail` where parent = '%s' and parent_bom != '%s' and is_pro_applicable = 'Yes' and docstatus < 2 group by item_code" % ((self.doc.process == 'Backflush') and flt(self.doc.fg_completed_qty) or flt(pro_obj.doc.qty), cstr(pro_obj.doc.bom_no), cstr(pro_obj.doc.bom_no)))
+ fl_bom_sa_items = sql("select item_code, ifnull(sum(qty_consumed_per_unit), 0) * '%s', description, stock_uom from `tabFlat BOM Detail` where parent = '%s' and parent_bom = '%s' and is_pro_applicable = 'Yes' and docstatus < 2 group by item_code" % ((self.doc.process == 'Backflush') and flt(self.doc.fg_completed_qty) or flt(pro_obj.doc.qty), cstr(pro_obj.doc.bom_no), cstr(pro_obj.doc.bom_no)))
self.make_items_dict(fl_bom_sa_items)
if pro_obj.doc.consider_sa_items == 'No':
# get all sub assembly childs only from flat bom
- fl_bom_sa_child_item = sql("select item_code, ifnull(sum(qty_consumed_per_unit), 0) * '%s', description, stock_uom from `tabFlat BOM Detail` where parent = '%s' and parent_bom in (select distinct parent_bom from `tabFlat BOM Detail` where parent = '%s' and parent_bom != '%s' and is_pro_applicable = 'Yes' and docstatus < 2 ) and is_pro_applicable = 'No' and docstatus < 2 group by item_code" % ((self.doc.process == 'Backflush') and flt(self.doc.fg_completed_qty) or flt(pro_obj.doc.qty), cstr(pro_obj.doc.bom_no), cstr(pro_obj.doc.bom_no), cstr(pro_obj.doc.bom_no)))
+ #select item_code,ifnull(sum(qty_consumed_per_unit),0)*'%s' as qty,description,stock_uom from ( select distinct fb.name,fb.description,fb.item_code,fb.qty_consumed_per_unit,fb.stock_uom from `tabFlat BOM Detail` fb,`tabBOM Material` bm where bm.parent=fb.parent_bom and bm.docstatus<2 and fb.is_pro_applicable='Yes' and fb.docstatus<2 and fb.parent='%s' and bm.bom_no is null)a group by item_code,stock_uom
+ fl_bom_sa_child_item = sql("select item_code,ifnull(sum(qty_consumed_per_unit),0)*'%s' as qty,description,stock_uom from ( select distinct fb.name,fb.description,fb.item_code,fb.qty_consumed_per_unit,fb.stock_uom from `tabFlat BOM Detail` fb,`tabBOM Material` bm where bm.parent=fb.parent_bom and bm.docstatus<2 and fb.is_pro_applicable='Yes' and fb.docstatus<2 and fb.parent='%s' and bm.bom_no is null)a group by item_code,stock_uom" % ((self.doc.process == 'Backflush') and flt(self.doc.fg_completed_qty) or flt(pro_obj.doc.qty), cstr(pro_obj.doc.bom_no)))
self.make_items_dict(fl_bom_sa_child_item)
def add_to_stock_entry_detail(self, pro_obj, item_dict, fg_item = 0):
@@ -165,8 +167,9 @@
self.get_raw_materials(pro_obj)
self.doc.clear_table(self.doclist, 'mtn_details', 1)
-
+
self.add_to_stock_entry_detail(pro_obj, self.item_dict)
+
if self.doc.process == 'Backflush':
item_dict = {cstr(pro_obj.doc.production_item) : [self.doc.fg_completed_qty, pro_obj.doc.description, pro_obj.doc.stock_uom]}
self.add_to_stock_entry_detail(pro_obj, item_dict, fg_item = 1)
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 97%
rename from stock/doctype/stock_ledger/stock_ledger.py
rename to erpnext/stock/doctype/stock_ledger/stock_ledger.py
index ff6de70..5165cc9 100644
--- a/stock/doctype/stock_ledger/stock_ledger.py
+++ b/erpnext/stock/doctype/stock_ledger/stock_ledger.py
@@ -139,7 +139,7 @@
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)
# -------------------------------
@@ -185,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/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..cedc9dc
--- /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="65"
+
+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/master.sql.gz b/master.sql.gz
deleted file mode 100644
index 3d3e220..0000000
--- a/master.sql.gz
+++ /dev/null
Binary files differ
diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py
deleted file mode 100644
index a2e333d..0000000
--- a/setup/doctype/company/company.py
+++ /dev/null
@@ -1,254 +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))
- 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/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/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
deleted file mode 100644
index 6d48914..0000000
--- a/stock/doctype/delivery_note/delivery_note.py
+++ /dev/null
@@ -1,481 +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, doc, doclist=[]):
- self.doc = doc
- self.doclist = doclist
- self.tname = 'Delivery Note Detail'
- self.fname = 'delivery_note_details'
-
- # Notification objects
- self.notify_obj = get_obj('Notification Control')
-
- # Autoname
- # ---------
- def autoname(self):
- self.doc.name = make_autoname(self.doc.naming_series+'.#####')
-
-
-# DOCTYPE TRIGGERS FUNCTIONS
-# ==============================================================================
-#************Fiscal Year Validation*****************************
- def validate_fiscal_year(self):
- get_obj('Sales Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Posting Date')
-
-
- # ****** Get contact person details based on customer selected ****
- def get_contact_details(self):
- return get_obj('Sales Common').get_contact_details(self,0)
-
- # *********** Get Commission rate of Sales Partner ****************
- def get_comm_rate(self, sales_partner):
- return get_obj('Sales Common').get_comm_rate(sales_partner, self)
-
- # *************** Pull Sales Order Details ************************
- def pull_sales_order_details(self):
- self.validate_prev_docname()
- self.doc.clear_table(self.doclist,'other_charges')
-
- if self.doc.sales_order_no:
- get_obj('DocType Mapper', 'Sales Order-Delivery Note').dt_map('Sales Order', 'Delivery Note', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Delivery Note'],['Sales Order Detail', 'Delivery Note Detail'],['RV Tax Detail','RV Tax Detail'],['Sales Team','Sales Team']]")
- else:
- msgprint("Please select Sales Order No. whose details need to be pulled")
-
- return cstr(self.doc.sales_order_no)
-
-
-
- #-------------------set item details -uom and item group----------------
- def set_item_details(self):
- for d in getlist(self.doclist,'delivery_note_details'):
- res = sql("select stock_uom, item_group from `tabItem` where name ='%s'"%d.item_code)
- if not d.stock_uom: d.stock_uom = res and cstr(res[0][0]) or ''
- if not d.item_group: d.item_group = res and cstr(res[0][1]) or ''
- d.save()
-
- # ::::: Validates that Sales Order is not pulled twice :::::::
- def validate_prev_docname(self):
- for d in getlist(self.doclist, 'delivery_note_details'):
- if self.doc.sales_order_no == d.prevdoc_docname:
- msgprint(cstr(self.doc.sales_order_no) + " sales order details have already been pulled. ")
- raise Exception, "Validation Error. "
-
- #Set Actual Qty based on item code and warehouse
- #------------------------------------------------------
- def set_actual_qty(self):
- for d in getlist(self.doclist, 'delivery_note_details'):
- if d.item_code and d.warehouse:
- actual_qty = sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (d.item_code, d.warehouse))
- d.actual_qty = actual_qty and flt(actual_qty[0][0]) or 0
-
-
- # GET TERMS & CONDITIONS
- # -------------------------------------
- def get_tc_details(self):
- return get_obj('Sales Common').get_tc_details(self)
-
- #pull project customer
- #-------------------------
- def pull_project_customer(self):
- res = sql("select customer from `tabProject` where name = '%s'"%self.doc.project_name)
- if res:
- get_obj('DocType Mapper', 'Project-Delivery Note').dt_map('Project', 'Delivery Note', self.doc.project_name, self.doc, self.doclist, "[['Project', 'Delivery Note']]")
-
-# DELIVERY NOTE DETAILS TRIGGER FUNCTIONS
-# ================================================================================
-
- # ***************** Get Item Details ******************************
- def get_item_details(self, item_code):
- return get_obj('Sales Common').get_item_details(item_code, self)
-
- # *** Re-calculates Basic Rate & amount based on Price List Selected ***
- def get_adj_percent(self, arg=''):
- get_obj('Sales Common').get_adj_percent(self)
-
- # ********** Get Actual Qty of item in warehouse selected *************
- def get_actual_qty(self,args):
- args = eval(args)
- actual_qty = sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (args['item_code'], args['warehouse']), as_dict=1)
- ret = {
- 'actual_qty' : actual_qty and flt(actual_qty[0]['actual_qty']) or 0
- }
- return ret
-
-
-# OTHER CHARGES TRIGGER FUNCTIONS
-# ====================================================================================
-
- # *********** Get Tax rate if account type is TAX ********************
- def get_rate(self,arg):
- return get_obj('Sales Common').get_rate(arg)
-
- # Load Default Charges
- # ----------------------------------------------------------
- def load_default_taxes(self):
- return get_obj('Sales Common').load_default_taxes(self)
-
-
- # **** Pull details from other charges master (Get Other Charges) ****
- def get_other_charges(self):
- return get_obj('Sales Common').get_other_charges(self)
-
-
- #check in manage account if sales order required or not.
- # ====================================================================================
- def so_required(self):
- res = sql("select value from `tabSingles` where doctype = 'Manage Account' and field = 'so_required'")
- if res and res[0][0] == 'Yes':
- for d in getlist(self.doclist,'delivery_note_details'):
- if not d.prevdoc_docname:
- msgprint("Sales Order No. required against item %s"%d.item_code)
- raise Exception
-
-
-
-# VALIDATE
-# ====================================================================================
- def validate(self):
- self.so_required()
- self.validate_fiscal_year()
- self.validate_proj_cust()
- sales_com_obj = get_obj(dt = 'Sales Common')
- sales_com_obj.check_stop_sales_order(self)
- sales_com_obj.check_active_sales_items(self)
- sales_com_obj.get_prevdoc_date(self)
- self.validate_mandatory()
- #self.validate_prevdoc_details()
- self.validate_reference_value()
- self.validate_for_items()
- sales_com_obj.make_packing_list(self,'delivery_note_details')
- get_obj('Stock Ledger').validate_serial_no(self, 'packing_details')
- sales_com_obj.validate_max_discount(self, 'delivery_note_details') #verify whether rate is not greater than max discount
- sales_com_obj.get_allocated_sum(self) # this is to verify that the allocated % of sales persons is 100%
- sales_com_obj.check_conversion_rate(self)
- # ::::::: Get total in Words ::::::::
- dcc = TransactionBase().get_company_currency(self.doc.company)
- self.doc.in_words = sales_com_obj.get_total_in_words(dcc, self.doc.rounded_total)
- self.doc.in_words_export = sales_com_obj.get_total_in_words(self.doc.currency, self.doc.rounded_total_export)
-
- # ::::::: Set Net Weight of each Packing
- self.update_pack_nett_weight()
- self.print_packing_slip()
- # ::::::: Set actual qty for each item in selected warehouse :::::::
- self.update_current_stock()
- # :::::: set DN status :::::::
-
- self.doc.status = 'Draft'
- if not self.doc.billing_status: self.doc.billing_status = 'Not Billed'
- if not self.doc.installation_status: self.doc.installation_status = 'Not Installed'
-
- # ************** Validate Mandatory *************************
- def validate_mandatory(self):
- # :::::::::: Amendment Date ::::::::::::::
- if self.doc.amended_from and not self.doc.amendment_date:
- msgprint("Please Enter Amendment Date")
- raise Exception, "Validation Error. "
-
- #check for does customer belong to same project as entered..
- #-------------------------------------------------------------------------------------------------
- def validate_proj_cust(self):
- if self.doc.project_name and self.doc.customer:
- res = sql("select name from `tabProject` where name = '%s' and (customer = '%s' or ifnull(customer,'')='')"%(self.doc.project_name, self.doc.customer))
- if not res:
- msgprint("Customer - %s does not belong to project - %s. \n\nIf you want to use project for multiple customers then please make customer details blank in project - %s."%(self.doc.customer,self.doc.project_name,self.doc.project_name))
- raise Exception
-
- # Validate values with reference document
- #----------------------------------------
- def validate_reference_value(self):
- get_obj('DocType Mapper', 'Sales Order-Delivery Note', with_children = 1).validate_reference_value(self, self.doc.name)
-
-
- # ******* Validate Previous Document Details ************
- def validate_prevdoc_details(self):
- for d in getlist(self.doclist,'delivery_note_details'):
-
- prevdoc = d.prevdoc_doctype
- prevdoc_docname = d.prevdoc_docname
-
- if prevdoc_docname and prevdoc:
- # ::::::::::: Validates Transaction Date of DN and previous doc (i.e. SO , PO, PR) *********
- trans_date = sql("select transaction_date from `tab%s` where name = '%s'" %(prevdoc,prevdoc_docname))[0][0]
- if trans_date and getdate(self.doc.transaction_date) < (trans_date):
- msgprint("Your Voucher Date cannot be before "+cstr(prevdoc)+" Date.")
- raise Exception
- # ::::::::: Validates DN and previous doc details ::::::::::::::::::
- get_name = sql("select name from `tab%s` where name = '%s'" % (prevdoc, prevdoc_docname))
- name = get_name and get_name[0][0] or ''
- if name: #check for incorrect docname
- if prevdoc == 'Sales Order':
- dt = sql("select company, docstatus, customer, currency, sales_partner from `tab%s` where name = '%s'" % (prevdoc, name))
- cust_name = dt and dt[0][2] or ''
- if cust_name != self.doc.customer:
- msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " customer :" + cstr(cust_name) + " does not match with customer : " + cstr(self.doc.customer) + " of current document.")
- raise Exception, "Validation Error. "
- sal_partner = dt and dt[0][4] or ''
- if sal_partner != self.doc.sales_partner:
- msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " sales partner name :" + cstr(sal_partner) + " does not match with sales partner name : " + cstr(self.doc.sales_partner_name) + " of current document.")
- raise Exception, "Validation Error. "
- else:
- dt = sql("select company, docstatus, supplier, currency from `tab%s` where name = '%s'" % (prevdoc, name))
- supp_name = dt and dt[0][2] or ''
- company_name = dt and dt[0][0] or ''
- docstatus = dt and dt[0][1] or 0
- currency = dt and dt[0][3] or ''
- if (currency != self.doc.currency):
- msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " currency : "+ cstr(currency) + "does not match with Currency: " + cstr(self.doc.currency) + "of current document")
- raise Exception, "Validation Error."
- if (company_name != self.doc.company):
- msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " does not belong to the Company: " + cstr(self.doc.company_name))
- raise Exception, "Validation Error."
- if (docstatus != 1):
- msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " is not Submitted Document.")
- raise Exception, "Validation Error."
- else:
- msgprint(cstr(prevdoc) + ": " + cstr(prevdoc_docname) + " is not a valid " + cstr(prevdoc))
- raise Exception, "Validation Error."
-
-
- # ******************** Validate Items **************************
- def validate_for_items(self):
- check_list, chk_dupl_itm = [], []
- for d in getlist(self.doclist,'delivery_note_details'):
- ch = sql("select is_stock_item from `tabItem` where name = '%s'"%d.item_code)
- if d.prevdoc_doctype and d.prevdoc_detail_docname and ch and ch[0][0]=='Yes':
- self.validate_items_with_prevdoc(d)
-
- # validates whether item is not entered twice
- e = [d.item_code, d.description, d.warehouse, d.prevdoc_docname or '', d.batch_no or '']
- f = [d.item_code, d.description, d.prevdoc_docname or '']
-
- if ch and ch[0][0] == 'Yes':
- if e in check_list:
- msgprint("Please check whether item %s has been entered twice wrongly." % d.item_code)
- else:
- check_list.append(e)
- elif ch and ch[0][0] == 'No':
- if f in chk_dupl_itm:
- msgprint("Please check whether item %s has been entered twice wrongly." % d.item_code)
- else:
- chk_dupl_itm.append(f)
-
-
- # check if same item, warehouse present in prevdoc
- # ------------------------------------------------------------------
- def validate_items_with_prevdoc(self, d):
- if d.prevdoc_doctype == 'Sales Order':
- data = sql("select item_code, reserved_warehouse from `tabSales Order Detail` where parent = '%s' and name = '%s'" % (d.prevdoc_docname, d.prevdoc_detail_docname))
- if d.prevdoc_doctype == 'Purchase Receipt':
- data = sql("select item_code, rejected_warehouse from `tabPurchase Receipt Detail` where parent = '%s' and name = '%s'" % (d.prevdoc_docname, d.prevdoc_detail_docname))
- if not data or data[0][0] != d.item_code or data[0][1] != d.warehouse:
- msgprint("Item: %s / Warehouse: %s is not matching with Sales Order: %s. Sales Order might be modified after fetching data from it. Please delete items and fetch again." % (d.item_code, d.warehouse, d.prevdoc_docname))
- raise Exception
-
-
- # ********* UPDATE CURRENT STOCK *****************************
- def update_current_stock(self):
- for d in getlist(self.doclist, 'delivery_note_details'):
- bin = sql("select actual_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
- d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
-
- for d in getlist(self.doclist, 'packing_details'):
- bin = sql("select actual_qty, projected_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
- d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
- d.projected_qty = bin and flt(bin[0]['projected_qty']) or 0
-
-
-# ON SUBMIT
-# =================================================================================================
- def on_submit(self):
- set(self.doc, 'message', 'Items against your Order #%s have been delivered. Delivery #%s: ' % (self.doc.po_no, self.doc.name))
- self.check_qty_in_stock()
- # Check for Approving Authority
- get_obj('Authorization Control').validate_approving_authority(self.doc.doctype, self.doc.company, self.doc.grand_total, self)
- sl_obj = get_obj("Stock Ledger")
- sl_obj.validate_serial_no_warehouse(self, 'packing_details')
- sl_obj.update_serial_record(self, 'packing_details', is_submit = 1, is_incoming = 0)
- get_obj("Sales Common").update_prevdoc_detail(1,self)
- self.update_stock_ledger(update_stock = 1)
-
- #------------Check Credit Limit---------------------
- self.credit_limit()
-
- # set DN status
- set(self.doc, 'status', 'Submitted')
-
- # on submit notification
- self.notify_obj.notify_contact('Delivery Note',self.doc.doctype,self.doc.name, self.doc.email_id, self.doc.contact_person)
-
-
- # *********** Checks whether actual quantity is present in warehouse *************
- def check_qty_in_stock(self):
- for d in getlist(self.doclist, 'packing_details'):
- is_stock_item = sql("select is_stock_item from `tabItem` where name = '%s'" % d.item_code)[0][0]
- if is_stock_item == 'Yes' and d.warehouse and flt(d.qty) > flt(d.actual_qty):
- msgprint("For Item: " + cstr(d.item_code) + " at Warehouse: " + cstr(d.warehouse) + " Quantity: " + cstr(d.qty) +" is not Available. (Must be less than or equal to " + cstr(d.actual_qty) + " )")
- raise Exception, "Validation Error"
-
-
-
-# ON CANCEL
-# =================================================================================================
- def on_cancel(self):
- sales_com_obj = get_obj(dt = 'Sales Common')
- sales_com_obj.check_stop_sales_order(self)
- self.check_next_docstatus()
- get_obj('Stock Ledger').update_serial_record(self, 'packing_details', is_submit = 0, is_incoming = 0)
- sales_com_obj.update_prevdoc_detail(0,self)
- self.update_stock_ledger(update_stock = -1)
- # :::::: set DN status :::::::
- set(self.doc, 'status', 'Cancelled')
-
-
- # ******************** Check Next DocStatus **************************
- def check_next_docstatus(self):
- submit_rv = sql("select t1.name from `tabReceivable Voucher` t1,`tabRV Detail` t2 where t1.name = t2.parent and t2.delivery_note = '%s' and t1.docstatus = 1" % (self.doc.name))
- if submit_rv:
- msgprint("Sales Invoice : " + cstr(submit_rv[0][0]) + " has already been submitted !")
- raise Exception , "Validation Error."
-
- submit_in = sql("select t1.name from `tabInstallation Note` t1, `tabInstalled Item Details` t2 where t1.name = t2.parent and t2.prevdoc_docname = '%s' and t1.docstatus = 1" % (self.doc.name))
- if submit_in:
- msgprint("Installation Note : "+cstr(submit_in[0][0]) +" has already been submitted !")
- raise Exception , "Validation Error."
-
-
-# UPDATE STOCK LEDGER
-# =================================================================================================
- def update_stock_ledger(self, update_stock, is_stopped = 0):
- self.values = []
- for d in self.get_item_list(is_stopped):
- stock_item = sql("SELECT is_stock_item, is_sample_item FROM tabItem where name = '%s'"%(d[1]), as_dict = 1) # stock ledger will be updated only if it is a stock item
- if stock_item[0]['is_stock_item'] == "Yes":
- if not d[0]:
- msgprint("Message: Please enter Warehouse for item %s as it is stock item."% d[1])
- raise Exception
- # if prevdoc_doctype = "Sales Order"
- if d[3] < 0 :
- # Reduce Reserved Qty from warehouse
- bin = get_obj('Warehouse', d[0]).update_bin(0, flt(update_stock) * flt(d[3]), 0, 0, 0, d[1], self.doc.transaction_date)
-
- # Reduce actual qty from warehouse
- self.make_sl_entry(d, d[0], - flt(d[2]) , 0, update_stock)
- get_obj('Stock Ledger', 'Stock Ledger').update_stock(self.values)
-
-
- # ***************** Gets Items from packing list *****************
- def get_item_list(self, is_stopped):
- return get_obj('Sales Common').get_item_list(self, is_stopped)
-
-
- # ********************** Make Stock Entry ************************************
- def make_sl_entry(self, d, wh, qty, in_value, update_stock):
- self.values.append({
- 'item_code' : d[1],
- 'warehouse' : wh,
- 'transaction_date' : self.doc.transaction_date,
- 'posting_date' : self.doc.posting_date,
- 'posting_time' : self.doc.posting_time,
- 'voucher_type' : 'Delivery Note',
- 'voucher_no' : self.doc.name,
- 'voucher_detail_no' : '',
- 'actual_qty' : qty,
- 'stock_uom' : d[4],
- 'incoming_rate' : in_value,
- 'company' : self.doc.company,
- 'fiscal_year' : self.doc.fiscal_year,
- 'is_cancelled' : (update_stock==1) and 'No' or 'Yes',
- 'batch_no' : d[5],
- 'serial_no' : d[6]
- })
-
-
- # SEND SMS
- # ============================================================================================
- def send_sms(self):
- if not self.doc.customer_mobile_no:
- msgprint("Please enter customer mobile no")
- elif not self.doc.message:
- msgprint("Please enter the message you want to send")
- else:
- msgprint(get_obj("SMS Control", "SMS Control").send_sms([self.doc.customer_mobile_no,], self.doc.message))
-
-
-#------------ check credit limit of items in DN Detail which are not fetched from sales order----------
- def credit_limit(self):
- amount, total = 0, 0
- for d in getlist(self.doclist, 'delivery_note_details'):
- if not d.prevdoc_docname:
- amount += d.amount
- if amount != 0:
- total = (amount/self.doc.net_total)*self.doc.grand_total
- get_obj('Sales Common').check_credit(self, total)
-
- # on update
- def on_update(self):
- self.set_actual_qty()
- get_obj('Stock Ledger').scrub_serial_nos(self)
-
- # Repair Delivery Note
- # ===========================================
- def repair_delivery_note(self):
- get_obj('Sales Common', 'Sales Common').repair_curr_doctype_details(self)
-
- # Packing Slip Related
- # ==========================================
- def update_pack_nett_weight(self):
- for d in getlist(self.doclist, 'delivery_note_details'):
- 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
-
- # ==========================================
- def print_packing_slip(self):
- prev_pack='0'
- sno=0
- html=''
- tot_nett_wt,tot_gross_wt=0,0
- for d in getlist(self.doclist, 'delivery_note_details'):
- sno=sno+1
- if sno!=1:#Footer goes here
- html+='</table><table width="100%"><tr><td>CASE NO</td><td>'+cstr(d.pack_no)+'</td><td>NETT WT</td><td>'+cstr(tot_nett_wt)+'</td><td>CHECKED BY</td><td></td></tr><tr><td>SIZE</td><td></td><td>GROSS WT</td><td>'+cstr(tot_gross_wt)+'</td><td>PACKED BY</td><td></td></tr></table>'
- if prev_pack!=d.pack_no: #Prepare Header Here
- #Header code goes here
- html+='<div align="center">[HEADER GOES HERE]</div><div><center><h2>Packing Slip</h2></center></div> <table width="100%"><tr><td>Order No.</td><td>'+cstr(self.doc.sales_order_no)+'</td><td>Shipping Marks</td><td>'+cstr(d.pack_no)+'</td></tr></table>'
- html+='<table class="cust_tbl" style="page-break-after:always" width="100%"><tr><td>S.NO.</td><td>QUANTITY</td><td>CS.NO.</td><td>DESCRIPTION</td><td>WEIGHT</td><tr>'
- sno=0
- tot_nett_wt,to_gross_wt=flt(d.pack_nett_wt),flt(d.pack_gross_wt)
- #Body code goes here
- html+='<tr><td>'+cstr(sno+1)+'</td><td>'+cstr(d.qty)+'</td><td></td><td>'+d.item_code+'</td><td>'+cstr(d.pack_nett_wt)+'</td></tr>'
- prev_pack=d.pack_no
- tot_nett_wt+=flt(d.pack_nett_wt)
- tot_gross_wt+=flt(d.pack_gross_wt)
- html+='</html>'
- self.doc.print_packing_slip=html
-
-
-
-
-
-
-
-
-
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..3ffd092
--- /dev/null
+++ b/versions-master.db
Binary files differ